来源:电子发烧友

深度学习只是一种计算机视觉工具,而不是包治百病的良药,不要因为流行就一味地使用它。传统的计算机视觉技术仍然可以大显身手,了解它们可以为你省去很多的时间和烦恼;并且掌握传统计算机视觉确实可以让你在深度学习方面做得更好。这是因为你可以更好地理解深度学习的内部状况,并可执行预处理步骤改善深度学习结果。

本文的灵感同样来自论坛中的一个常见问题:

深度学习已经取代了传统的计算机视觉吗?

或是换种说法:

既然深度学习看起来如此有效,是否还有必要学习传统的计算机视觉技术?

这个问题很好。深度学习确实给计算机视觉和人工智能领域带来了革命性的突破。许多曾经看似困难的问题,现在机器可以比解决的比人类还好。图像分类就是最好的印证。确实,如从前所述,深度学习有责任将计算机视觉纳入行业版图。

但深度学习仍然只是计算机视觉的一个工具,且显然不是解决所有问题的灵丹妙药。因此,本文会对此进行详细阐述。也就是说,我将说明传统的计算机视觉技术为何仍十分有用,值得我们继续学习并传授下去。

本文分为以下几个部分/论点:

深度学习需要大数据

深度学习有时会做过了头

传统计算机视觉将会提升你的深度学习水平

进入正文之前,我认为有必要详细解释一下什么是“传统计算机视觉”,什么是深度学习,及其革命性。

背景知识

在深度学习出现以前,如果你有一项诸如图像分类的工作,你会进行一步叫做“特征提取”的处理。所谓“特征”就是图像中“有趣的”、描述性的、或是提供信息的小部分。你会应用我在本文中称之为的“传统计算机视觉技术”的组合来寻找这些特征,包括边缘检测、角点检测、对象检测等等。

在使用这些与特征提取和图像分类相关的技术时,会从一类对象(例如:椅子、马等等)的图像中提取出尽可能多的特征,并将其视为这类对象的“定义”(称作“词袋”)。接下来你要在其它图像中搜索这些“定义”。如果在另一个图像中存在着词袋中相当一部分的特征,那么这个图像就被归为包含那个特定对象(如椅子、马等等)的分类。

这种图像分类的特征提取方法的难点在于你必须在每张图像中选择寻找哪些特征。随着你试图区分的类别数目开始增长,比如说超过 10 或 20,这就会变得非常麻烦甚至难以实现。你要寻找角点?边缘?还是纹理信息?不同类别的对象最好要用不同种类型的特征来描述。如果你选择使用很多的特征,你就不得不处理海量的参数,而且还需要自己来微调。

深度学习引入了“端到端学习”这一概念,(简而言之)让机器在每个特定类别的对象中学习寻找特征,即最具描述性、最突出的特征。换句话说,让神经网络去发现各种类型图像中的潜在模式。

因此,借助端到端学习,你不再需要手动决定采用哪种传统机器视觉技术来描述特征。机器为你做好了这一切。《连线》杂志如此写道:

举例来说,如果你想教会一个 [深度] 神经网络识别一只猫,你不必告诉它去寻找胡须、耳朵、毛或是眼睛。你只需展示给它成千上万的猫的图像,它自然会解决这一问题。如果它总是会将狐狸误认为是猫,你也不用重写代码。你只需对它继续进行训练。

下图描述了特征提取(使用传统计算机视觉)和端到端学习之间的这种区别:

以上就是背景介绍。现在接着讨论为什么传统计算机视觉仍然必不可少,而且学习它仍大有裨益。

深度学习需要大量数据

首先,深度学习需要数据,许许多多的数据。前文提到过的著名图像分类模型的训练都基于庞大的数据集。排名前三的训练数据集分别是:

ImageNet——150 万图像,1000 个对象分类/类别;

COCO——250 万图像,91 个对象分类;

PASCAL VOC——50 万图像,20 个对象分类。

但是一个训练不良的模型在你的训练数据之外很可能表现糟糕,因为机器并没有对于问题的洞察力,也就不能在没看到数据的情况下进行概括归纳。而且对你来说查看训练模型内部并进行手动调整又太过困难,因为一个深度学习模型内部拥有数以百万计的参数——每个参数在训练期间都会被调整。某种程度上说,一个深度学习模型就是一个黑箱。

传统的计算机视觉完全透明,允许你更好地评估判断你的解决方案是否在训练环境之外依然有效。你对问题的深入见解可以放进你的算法之中。并且如果任何地方出现故障,你也可以更轻易地弄清楚什么需要调整,在哪里调整。

深度学习有时做过了头

这大概是我最喜欢的支持研究传统计算机视觉技术的理由。

训练一个深度神经网络需要很长的时间。你需要专门的硬件(例如高性能 GPU)训练最新、最先进的图像分类模型。你想在自己还不错的笔记本上训练?去度个一周的假吧,等你回来的时候训练很可能仍未完成。

此外,如果你的训练模型表现不佳呢?你不得不返回原点,用不同的训练参数重做全部工作。这一过程可能会重复数百次。

但有时候所有这些完全没必要。因为传统计算机视觉技术可以比深度学习更有效率地解决问题,而且使用的代码更少。例如,我曾经参与的一个项目是检查每个通过传送带的罐子里是否有一个红勺子。现在你可以通过前文叙述的旷日持久的过程来训练一个深度神经网络去检测勺子,或者你也可以写一个简单的以红色为阈值的算法(将任何带有一定范围红色的像素都标记为白色,所有其它的像素标记为黑色),然后计算有多少白色的像素。简简单单,一个小时就可以搞定!

掌握传统的计算机视觉技术可能会为你节省大量的时间并减少不必要的烦恼。

传统计算机视觉会提升你的深度学习技巧

理解传统的计算机视觉实际上能帮你在深度学习上做得更好。

举例来说,计算机视觉领域最为普遍使用的神经网络是卷积神经网络。但什么是卷积?卷积事实上是一种被广泛使用的图像处理技术(比如,索贝尔边缘检测)。了解这一点可以帮助你理解神经网络内部究竟发生了什么,从而进行设计和微调以更好地解决你的问题。

还有一件事叫做预处理。你输入给模型的数据往往要经过这种处理,以便为接下来的训练做准备。这些预处理步骤主要是通过传统的计算机视觉技术完成的。例如,如果你没有足够的训练数据,你可以进行一个叫做数据增强的处理。数据增强是指对你训练数据集中的图像进行随机的旋转、移动、裁剪等,从而创造出“新”图像。通过执行这些计算机视觉操作,可以极大地增加你的训练数据量。

结论

本文阐述了为什么深度学习还没有取代传统计算机视觉技术,以及后者仍值得学习和传授。首先,本文将目光放在了深度学习往往需要大量数据才能表现良好这一问题上。有时并不具备大量数据,而传统计算机视觉在这种情况下可作为一种替代方案。第二,深度学习针对特定的任务偶尔会做过头。在这些任务中,标准的计算机视觉比起深度学习可以更为高效地解决问题,并且使用更少的代码。第三,掌握传统计算机视觉确实可以让你在深度学习方面做得更好。这是因为你可以更好地理解深度学习的内部状况,并可执行预处理步骤改善深度学习结果。

总而言之,深度学习只是一种计算机视觉的工具,而不是包治百病的良药。不要因为流行就一味地使用它。传统的计算机视觉技术仍然可以大显身手,了解它们可以为你省去很多的时间和烦恼。

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

深度学习不能取代计算机视觉技术背后的真正原因相关推荐

  1. 深度学习实践:计算机视觉_深度学习与传统计算机视觉技术:您应该选择哪个?

    深度学习实践:计算机视觉 计算机视觉 (Computer Vision) Deep Learning(DL) is undeniably one of the most popular tools u ...

  2. 为什么深度学习没有取代传统的计算机视觉?

    摘要: 深度学习大潮为什么淹没传统的计算机视觉技术?听听大牛怎么说~ 这篇文章是受到论坛中经常出现的问题所创作的: 深度学习是否可以取代传统的计算机视觉? 这明显是一个很好的问题,深度学习(DL)已经 ...

  3. 深度学习 VS 传统计算机视觉

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:机器之心 作者:Niall O' Mahony等  | ...

  4. 深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  5. 反思深度学习与传统计算机视觉的关系

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 某种程度上,深度学习最大的优势就是自动创建没 ...

  6. 基于深度学习的目标检测技术演进:从目标检测到人脸检测

    本篇博客主要转载两篇写得好的分别介绍基于深度学习的目标检测和人脸检测的文章,最近在调研基于深度学习的人脸检测相关的文章,在网上查相关资料时,有幸看到.文末附带基于深度学习的目标检测和人脸检测相关经典文 ...

  7. 深度学习时代的计算机视觉

    在上世纪50年代,数学家图灵提出判断机器是否具有人工智能的标准:图灵测试.图灵测试是指测试者在与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问.进行多次测试后,如果 ...

  8. 七月二十一日!! NVIDIA DLI 深度学习入门课程——计算机视觉

    介绍 NVIDIA 深度学习学院聚焦于人工智能和深度学习,致力于在全世界范围内提供支持,解决最具挑战性的问题.通过线上自主学习,或者线下由NVIDIA 认证的讲师来教授的培训课程,我们可以帮助开发者. ...

  9. 五月两场!! NVIDIA DLI 深度学习入门课程——计算机视觉

    介绍 NVIDIA 深度学习学院聚焦于人工智能和深度学习,致力于在全世界范围内提供支持,解决最具挑战性的问题.通过线上自主学习,或者线下由NVIDIA 认证的讲师来教授的培训课程,我们可以帮助开发者. ...

最新文章

  1. 一个基于SpringBoot + Mybatis + Vue的代码生成器
  2. 多视图几何三维重建实战系列之R-MVSNet
  3. 在团800运维工作总结之squid做回源图片的二级缓存
  4. 重温C# clr 笔记总结
  5. 码农口述:AI创业两年,积蓄花光,重回职场敲代码
  6. 非凸函数上,随机梯度下降能否收敛?能,但有条件,且比凸函数收敛更难
  7. DDOS学习笔记(《破坏之王-DDOS攻击与防范深度剖析》)
  8. Android app native代码性能分析
  9. 《软件建模与设计: UML、用例、模式和软件体系结构》一一3.2 设计验证和确认...
  10. 向Redis中存入JSON格式数据
  11. postgre帮助文档。
  12. linux没有.brashrc文件,Linux 安装 Redis4.0.6
  13. Navicat 添加唯一索引
  14. python 日期选择(包含时间选择)
  15. 赛车!赛车!Wipe out everything!
  16. Focal Loss讲解
  17. JS导入Excel实战
  18. 「hdu6608」Fansblog 威尔逊定理
  19. SpringBoot @Around环绕通知错误
  20. java编程实现求回文数_Java编程之回文数

热门文章

  1. 人工智能中图神经网络GNN是什么?
  2. 跨学科整合,打造大数据最强集团军:清华大学大数据能力提升项目宣讲会来了!...
  3. 报名 | 首届!Apache Flink 极客挑战赛强势来袭,重磅奖项等你拿,快来组队报名啦!...
  4. 一文读懂神经网络初始化!吴恩达Deeplearning.ai最新干货
  5. 68页PPT教你撰写一篇优秀的机器学习研究论文!
  6. 【中文字幕】加州理工《数据学习:机器学习课程》视频及ppt分享
  7. 一篇文章7.4万,Nature 33种期刊开放获取新政引争议,社区斥其「寄生虫」
  8. 泰晤士高等教育2020年新兴经济体大学排名出炉,81所中国大陆高校上榜!
  9. SAP MM 启用了Advanced Return Management之后采购订单上的一些变化
  10. Facebook最新语音算法曝光!自监督语音识别,错误率低至2.43%