0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

剖析深度学习与传统计算机视觉之间的关系

新机器视觉 来源:雷锋网 作者:雷锋网 2021-04-22 10:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

某种程度上,深度学习最大的优势就是自动创建没有人会想到的特性能力。

如今,深度学习在众多领域都有一席之地,尤其是在计算机视觉领域。尽管许多人都为之深深着迷,然而,深网就相当于一个黑盒子,我们大多数人,甚至是该领域接受过培训的科学家,都不知道它们究竟是如何运作的。

大量有关深度学习的成功或失败事例给我们上了宝贵的一课,教会我们正确处理数据。在这篇文章中,我们将深入剖析深度学习的潜力,深度学习与经典计算机视觉的关系,以及深度学习用于关键应用程序的潜在危险。

视觉问题的简单与复杂

首先,我们需要就视觉/计算机视觉问题提出一些看法。原则上它可以这样理解,人们给定一幅由摄像机拍摄的图像,并允许计算机回答关于与该图像内容的相关问题。

问题的范围可以从“图像中是否存在三角形”,“图像中是否有人脸”等简单问题到更为复杂的问题,例如“图像中是否有狗在追逐猫”。尽管这类的问题看起来很相似,对于人类来说甚至有点微不足道,但事实证明,这些问题所隐藏的复杂性存在巨大差异。

虽然回答诸如“图像中是否有红圈”或“图像中有多少亮点”之类的问题相对容易,但其他看似简单的问题如“图像中是否有一只猫”,则要复杂得多。“简单”视觉问题和“复杂”视觉问题之间的区别难以界限。

这一点值得注意,因为对于人类这种高度视觉化的动物来说,上述所有问题都是不足以成为难题,即便是对孩子们来说,回答上述视觉问题也并不困难。然而,处在变革时期的深度学习却无法回答这些问题。

传统计算机视觉V.S.深度学习

传统计算机视觉是广泛算法的集合,允许计算机从图像中提取信息(通常表示为像素值数组)。目前,传统计算机视觉已有多种用途,例如对不同的对象进行去噪,增强和检测。

一些用途旨在寻找简单的几何原语,如边缘检测,形态分析,霍夫变换,斑点检测,角点检测,各种图像阈值化技术等。还有一些特征代表技术,如方向梯度直方图可以作为机器学习分类器的前端,来构建更复杂的检测器。

与普遍的看法相反,上面讨论的工具结合在一起可以造出针对特定对象的检测器,这种检测器性能强,效率高。除此之外,人们还可以构建面部检测器,汽车检测器,路标检测器,在精准度和计算复杂性等方面,这些检测器很可能优于深度学习。

但问题是,每个检测器都需要由有能力的人从头开始构建,这一行为低效又昂贵。因此,从历史上看,表现优良的探测器只适用于那些必须经常被检测,并且能够证明前期投资是明智的对象。

这些探测器中有许多是专有的,不向公众开放,比如人脸检测器,车牌识别器等等。但是,没有一个心智正常的人会花钱编写狗探测器或分类器,以便从图像中对狗的品种进行分类。于是,深度学习就派上了用场。

尖子生的启迪

假设你正在教授计算机视觉课程,在课程的前半部分,你要带领学生们复习大量的专业知识,然后留时间给学生完成任务,也就是收集图像内容并提问。任务一开始很简单,例如通过询问图像中是否有圆形或正方形,再到更复杂的任务,例如区分猫和狗。

学生每周都要编写计算机程序来完成任务,而你负责查看学生编写的代码,并运行查看它们的效果如何。

这个学期,一名新生加入了你的班级。他不爱说话,不爱社交,也没有提过什么问题。但是,当他提交自己的第一个任务方案时,你感到有点意外。这名新生编写的代码让人难以理解,你从来都没见过这样的代码。看起来他像是用随机的过滤器对每幅图像进行卷积,然后再用非常奇怪的逻辑来得到最终的答案。

你运行了这段代码,效果非常好。你心想,虽然这个解决方案非同寻常,但只要它有效就足够了。几周过去了,学生们需要完成的任务难度越来越高,你也从这名新生那里得到了越来越复杂的代码。他的代码出色地完成了难度日益增大的任务,但你无法真正理解其中的内容。

期末的时候,你给学生们布置了一项作业,用一组真实的图片来区分猫和狗。结果,没有学生能够在这项任务上达到超过65%的准确率,但是新生编写的代码准确率高达95%,你大吃一惊。你开始在接下来的几天中深入分析这些高深莫测的代码。你给它新的示例,然后进行修改,试着找出影响程序决策的因素,对其进行反向工程。

最终你得出一个非常令人惊讶的结论:代码会检测出狗的标签。如果它能检测到标签,那么它就可以判断对象的下部是否为棕色。如果是,则返回“cat”,否则返回“dog”。如果不能检测到标签,那么它将检查对象的左侧是否比右侧更黄。如果是,则返回“dog”,否则返回“cat”。

你邀请这名新生到办公室,并把研究结果呈给他。你向他询问,是否认为自己真的解决了问题?在长时间的沉默之后,他终于喃喃自语道,他解决了数据集显示的任务,但他并不知道狗长什么样,也不知道狗和猫之间有什么不同……

很明显,他作弊了,因为他解决任务目的和你想要的目的无关。不过,他又没有作弊,因为他的解决方案确实是有效的。然而,其他学生的表现都不怎么样。他们试图通过问题来解决任务,而不是通过原始数据集。虽然,他们的程序运行得并不好,倒也没有犯奇怪的错误。

深度学习的祝福和诅咒

深度学习是一种技术,它使用一种称为梯度反向传播的优化技术来生成“程序”(也称为“神经网络”),就像上面故事中学者学生编写的那些程序一样。这些“程序”和优化技术对世界一无所知,它所关心的只是构建一组转换和条件,将正确的标签分配给数据集中的正确图像。

通过向训练集添加更多的数据,可以消除虚假的偏差,但是,伴随着数百万个参数和数千个条件检查,反向传播生成的“程序”会非常大,非常复杂,因此它们可以锁定更细微偏差的组合。任何通过分配正确标签,来统计优化目标函数的方法都可以使用,不管是否与任务的“语义精神”有关。

这些网络最终能锁定“语义正确”的先验吗?当然可以。但是现在有大量的证据表明,这并不是这些网络分内之事。相反的例子表明,对图像进行非常微小的、无法察觉的修改就可以改变检测结果。

研究人员对训练过的数据集的新示例进行了研究,结果表明,原始数据集之外的泛化要比数据集内的泛化弱得多,因此说明,网络所依赖的给定数据集具有特定的低层特性。在某些情况下,修改单个像素就足以产生一个新的深度网络分类器。

在某种程度上,深度学习最大的优势就是自动创建没有人会想到的特性能力,这同时也是它最大的弱点,因为大多数这些功能至少在语义上看起来,可以说是“可疑的”。

什么时候有意义,什么时候没有意义?

深度学习对于计算机视觉系统来说无疑是一个有趣的补充。我们现在可以相对容易地“训练”探测器来探测那些昂贵且不切实际的物体。我们还可以在一定程度上扩展这些检测器,以使用更多的计算能力。

但我们为这种奢侈付出的代价是高昂的:我们不知道深度学习是如何做出判断,而且我们确实知道,分类的依据很可能与任务的“语义精神”无关。而且,只要输入数据违反训练集中的低水平偏差,检测器就会出现失效。这些失效条件目前尚且不为人知。

因此,在实践中,深度学习对于那些错误不是很严重,并且保证输入不会与训练数据集有很大差异的应用程序非常有用,这些应用能够承受5%以内的错误率就没问题,包括图像搜索、监视、自动化零售,以及几乎所有不是“关键任务”的东西。

具有讽刺意味的是,大多数人认为深度学习是应用领域的一次革命,因为深度学习的决策具有实时性,错误具有重大性,甚至会导致致命的结果,如自动驾驶汽车,自主机器人(例如,最近的研究表明,基于深层神经网络的自主驾驶确实容易受到现实生活中的对抗性攻击)。我只能将这种信念描述为对“不幸”的误解。

一些人对深度学习在医学和诊断中的应用寄予厚望。然而,在这方面也有一些令人担忧的发现,例如,针对一个机构数据的模型未能很好地检测另一个机构数据。这再次印证了一种观点:这些模型获取的数据要比许多研究人员所希望的更浅。

数据比我们想象的要浅

出人意料的是,深度学习教会了我们一些关于视觉数据(通常是高维数据)的东西,这个观点十分有趣:在某种程度上,数据比我们过去认为的要“浅”得多。

似乎有更多的方法来统计地分离标有高级人类类别的可视化数据集,然后有更多的方法来分离这些“语义正确”的数据集。换句话说,这组低水平的图像特征比我们想象的更具“统计意义”。这是深度学习的伟大发现。

如何生成“语义上合理”的方法来分离可视数据集模型的问题仍然存在,事实上,这个问题现在似乎比以前更难回答。

结论

深度学习已经成为计算机视觉系统的重要组成部分。但是传统的计算机视觉并没有走到那一步,而且,它仍然可以用来建造非常强大的探测器。这些人工制作的检测器在某些特定的数据集度量上可能无法实现深度学习的高性能,但是可以保证依赖于输入的“语义相关”特性集。

深度学习提供了统计性能强大的检测器,而且不需要牺牲特征工程,不过仍然需要有大量的标记数据、大量GPU,以及深度学习专家。然而,这些强大的检测器也会遭遇意外的失败,因为它们的适用范围无法轻易地描述(或者更确切地说,根本无法描述)。

需要注意的是,上面的讨论都与“人工智能”中的AI无关。我不认为像深度学习与解决人工智能的问题有任何关系。但我确实认为,将深度学习、特性工程和逻辑推理结合起来,可以在广泛的自动化空间中实现非常有趣和有用的技术能力。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5099

    浏览量

    134449
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261486
  • 计算机视觉
    +关注

    关注

    9

    文章

    1714

    浏览量

    47450
  • 数据集
    +关注

    关注

    4

    文章

    1230

    浏览量

    26046

原文标题:反思深度学习与传统计算机视觉的关系

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    ,形成\"传统视觉算法→深度学习建模→工业级部署\"的完整技术链,帮助学员掌握从0到1搭建缺陷检测系统的能力,响应制造业\"提质降本增效\"的核心需求。 团购课程
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战可(11大系列课程,共5000+分钟)

    %)为主要就业领域 本次团购通过整合11大系列课程,形成\"传统视觉算法→深度学习建模→工业级部署\"的完整技术链,帮助学员掌握从0到1搭建缺陷检测系统的能力,响应制造业\"提
    发表于 12-03 13:50

    使用代理式AI激活传统计算机视觉系统的三种方法

    当前的计算机视觉系统擅长于识别物理空间与流程中的事件,却难以诠释场景细节及其意义,也无法推理后续可能发生的情况。
    的头像 发表于 12-01 09:44 327次阅读

    如何在机器视觉中部署深度学习神经网络

    人士而言往往难以理解,人们也常常误以为需要扎实的编程技能才能真正掌握并合理使用这项技术。事实上,这种印象忽视了该技术为机器视觉(乃至生产自动化)带来的潜力,因为深度学习并非只属于计算机
    的头像 发表于 09-10 17:38 679次阅读
    如何在机器<b class='flag-5'>视觉</b>中部署<b class='flag-5'>深度</b><b class='flag-5'>学习</b>神经网络

    易控智驾荣获计算机视觉顶会CVPR 2025认可

    近日,2025年国际计算机视觉与模式识别顶级会议(IEEE/CVF Conference on Computer Vision and Pattern Recognition,CVPR 2025)在美国田纳西州纳什维尔召开。
    的头像 发表于 07-29 16:54 980次阅读

    自动化计算机的功能与用途

    工业自动化是指利用自动化计算机来控制工业环境中的流程、机器人和机械,以制造产品或其部件。工业自动化的目的是提高生产率、增加灵活性,并提升制造过程的质量。工业自动化在汽车制造中体现得最为明显,其中许多
    的头像 发表于 07-15 16:32 527次阅读
    自动化<b class='flag-5'>计算机</b>的功能与用途

    工业计算机与商用计算机的区别有哪些

    工业计算机是一种专为工厂和工业环境设计的计算系统,具有高可靠性和稳定性,能够应对恶劣环境下的自动化、制造和机器人操作。其特点包括无风扇散热技术、无电缆连接和防尘防水设计,使其在各种工业自动化场景中
    的头像 发表于 07-10 16:36 516次阅读
    工业<b class='flag-5'>计算机</b>与商用<b class='flag-5'>计算机</b>的区别有哪些

    一文带你了解工业计算机尺寸

    一项艰巨的任务。本博客将指导您了解关键的工业计算机尺寸、使用案例。关键工业计算机外形要素及其使用案例一、工业微型PC尺寸范围:宽度:100毫米-180毫米深度:10
    的头像 发表于 04-24 13:35 790次阅读
    一文带你了解工业<b class='flag-5'>计算机</b>尺寸

    英飞凌边缘AI平台通过Ultralytics YOLO模型增加对计算机视觉的支持

    计算机视觉的支持,扩大了当前对音频、雷达和其他时间序列信号数据的支持范围。在增加这项支持后,该平台将能够用于开发低功耗、低内存的边缘AI视觉模型。这将给诸多应用领域的机器学习开发人员
    的头像 发表于 03-11 15:11 656次阅读
    英飞凌边缘AI平台通过Ultralytics YOLO模型增加对<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的支持

    Arm KleidiCV与OpenCV集成助力移动端计算机视觉性能优化

    生成式及多模态人工智能 (AI) 工作负载的广泛增长,推动了对计算机视觉 (CV) 技术日益高涨的需求。此类技术能够解释并分析源自现实世界的视觉信息,并可应用于人脸识别、照片分类、滤镜处理及增强现实
    的头像 发表于 02-24 10:15 876次阅读

    BP神经网络与深度学习关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本
    的头像 发表于 02-12 15:15 1340次阅读

    AR和VR中的计算机视觉

    ):计算机视觉引领混合现实体验增强现实(AR)和虚拟现实(VR)正在彻底改变我们与外部世界的互动方式。即便是在引人入胜的沉浸式
    的头像 发表于 02-08 14:29 2124次阅读
    AR和VR中的<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>

    【「具身智能机器人系统」阅读体验】+两本互为支持的书

    最近在阅读《具身智能机器人系统》这本书的同时,还读了 《计算机视觉之PyTorch数字图像处理》一书,这两本书完全可以视为是互为依托的姊妹篇。《计算机视觉之PyTorch数字图像处理》
    发表于 01-01 15:50

    云端超级计算机使用教程

    云端超级计算机是一种基于云计算的高性能计算服务,它将大量计算资源和存储资源集中在一起,通过网络向用户提供按需的计算服务。下面,AI部落小编为
    的头像 发表于 12-17 10:19 942次阅读

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    力的研究工具。在深度学习中,我们会经常接触到两个名称,图像处理和计算机视觉,它们之间有什么区别呢?图像处理(ImageProcessing)
    的头像 发表于 12-14 09:10 1260次阅读
    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV