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

摘要: 深度学习大潮为什么淹没传统的计算机视觉技术?听听大牛怎么说~


这篇文章是受到论坛中经常出现的问题所创作的:

深度学习是否可以取代传统的计算机视觉?

这明显是一个很好的问题,深度学习(DL)已经彻底改变了计算机视觉(CV)和人工智能。许多曾经看起来不可能解决的问题都解决了,机器获得比人类更好的结果。图像分类可能就是最好的例子。

但深度学习仍然只是解决计算机视觉领域内问题的工具之一。它并不是解决该所有问题的万能药。在这篇文章中,我想详细说明这一点。也就是说,我想阐述一下为什么传统的计算机视觉技术仍然非常有用

我将把这篇文章分成以下部分:

  • 深度学习需要大数据。
  • 深度学习有时是过拟合的。
  • 传统的计算机视觉知识可以将帮助你进行深度学习。

但在我讨论这些论点之前,我认为有必要首先详细解释什么是传统的计算机视觉、深度学习是什么以及它为什么如此有破坏力。

背景知识

在进行深度学习之前,如果你有诸如图像分类之类的任务,这时你需要执行一个称为特征提取的步骤,特征提取是非常有趣的。我这篇文章中将要提到一些传统的计算机视觉技术(包括诸如边缘检测角点检测物体检测等等)。

在使用这些技术时,例如在特征提取和图像分类方面,我们想的是从一类对象(例如椅子,马等)的图像中提取尽可能多的特征,并将这些特征视为一种“定义”(被称为“袋”)的对象。然后,你会在其他图像中搜索这些定义。如果一个袋子中的大量特征位于另一个图像中,则该图像被分类为包含该特定对象(即椅子,马等)。

这种图像分类特征提取方法的难点在于,你必须选择在每个给定图像中查找哪些特征。当你尝试分类的类别数量开始增加,例如1020时,这会变得很麻烦并且变得几乎不可能。你是否寻找边缘?纹理信息?使用不同类型的功能可以更好地描述不同类别的对象。如果你选择使用许多特征,则必须处理大量参数,所有这些参数都必须由你进行微调。

那么,深度学习介绍了端到端的学习概念,其中(简而言之)机器被告知要针对每个特定类别的对象学习要寻找什么。它为每个对象提供了最具描述性和显着的特征。换句话说,神经网络已经被告知发现图像类别中的底层模式。

因此,通过端到端的学习,你不再需要手动决定使用传统计算机视觉技术来描述你的特征。有线杂志这样说道:

例如,如果你想教一个神经网络来识别一只猫,那么你不要告诉它寻找胡须,耳朵,毛皮和眼睛。你只需要展示成千上万张猫的照片,最终就能解决问题。如果它将狐狸误分类为猫,你不需要重写代码,你只需要做的是继续训练。

下面的图片描绘了特征提取(使用传统的方法)和端到端学习之间的差异:


所以,这是整篇文章的背景。接下来,让我们来看看为什么传统的计算机视觉仍然是必要的,有益的。

深度学习需要大数据

首先,深度学习需要数据,很多很多的数据。上面提到的那些著名的图像分类模型都是在大数据集上进行训练的,这些用于训练的数据集的前三名是:

  • ImageNet——包含 1000个对象类别/类的 150万个图像。
  • 上下文中的Microsoft通用对象(COCO)——250万个图像,91个对象类别。
  • PASCAL VOC数据集 ——500K图像,20个对象类别。

比一般图像分类更容易的任务不需要这么多的数据,但你仍然需要很多数据。如果你无法获得那么多的数据,你根本不知道会发生什么?(确实也有一些技巧可以提高你的训练数据量,但这些是人为的方法)。

没有充足的数据,训练出来的模型一般表现都不好,因为一台机器没有洞察能力,它不能在没有看到数据的情况下概括它看到的东西。

对于你来说,看到训练好的模型并且手动调整一些东西太困难了,因为深度学习模型里面有数百万个参数,其中每个参数在训练过程中都会被调整。从某种意义上说,深度学习模式是一个黑匣子。

传统的计算机视觉为你提供了充分的透明度,使你能够更好地评估和判断你的解决方案是否可以在训练环境之外进行工作。你可以深入了解算法中存在的问题,如果有任何不妥,你可以很容易地弄清楚在哪里以及需要调整什么。

深度学习有时会发生过度拟合:

这可能是我支持传统计算机视觉技术研究的最佳理由。训练深度神经网络需要很长时间,你需要专用硬件(例如,高性能GPU),在很长的时间内训练最新的最先进的图像分类模型。

此外,如果你的训练模型表现不佳,会发生什么?你必须返回并用不同的训练参数重做整个过程,而且这个过程有时可能重复数百次。

但有时候这些都是不必要的,因为有时传统的CV技术可以比DL更有效地解决问题,并且代码行数更少例如,我曾经参与过一个项目,以检测通过传送带的每个锡罐是否有红色的勺子。现在,你可以训练一个深度神经网络来检测勺子,或者你可以对红色上编写简单的颜色阈值算法(红色的某个范围内的任何像素都是白色的,每个其他像素是黑色的),然后计算你有多少白色像素。

了解传统的计算机视觉可能会为你节省大量时间和减少一些不必要的麻烦。

传统的计算机视觉将提高你的深度学习技能:

理解传统的计算机视觉实际上可以帮助你更好地进行深度学习。

例如,计算机视觉中使用的最常见的神经网络是卷积神经网络。但什么是卷积?它实际上是一种广泛使用的图像处理技术(例如参见Sobel边缘检测)。了解这可以帮助你了解你的神经网络做了什么,因此可以更好地设计和调整你尝试解决的任务。

然后还有一件事叫做预处理。这是经常对你提供的模型的数据进行准备以进行训练。这些预处理步骤主要通过传统的计算机视觉技术来完成。例如,如果你没有足够的训练数据,则可以执行称为数据增加的任务。数据增加可以包括对训练集中的图像执行随机旋转,移位,剪切等,以创建图像。通过执行这些计算机视觉操作,你可以大大增加你拥有的训练数据量。

结论:

在这篇文章中,我解释了为什么深度学习没有取代传统的计算机视觉技术,为什么后者仍应该学习。首先,我发现了DL经常需要大量数据才能执行的问题。其次,深度学习对于特定任务来说可能会出现过度拟合现象。在这样的任务中,标准的计算机视觉可以比DL更有效地解决问题,并且代码行数更少。第三,认识传统的计算机视觉实际上可以让你更好地进行深度学习。这是因为你可以更好地了解DL到底正在做什么,并且你可以执行某些预处理步骤来改善DL结果。

简而言之,深度学习只是计算机视觉的工具,当然不是万能药。不要只用它,因为它现在是新潮。传统的计算机视觉技术仍然非常有用,知道它们可以为你节省时间和解决许多麻烦。

本文由阿里云云栖社区组织翻译。

文章原标题《Why Deep Learning Has Not Superseded Traditional Computer Vision》

作者:Zbigniew

译者:虎说八道,审校:。

原文地址

干货好文,请关注扫描以下二维码:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

赋能网安生态通信服务器操作系统,紫光展锐打造操作系统生态,赋能万物互联智能时代...

本周,以“象由芯生科技服务人民”为主题的2020紫光展锐市场峰会重磅开启,广大生态合作伙伴共聚一堂,共话数字世界新未来。在今天举办的“操作系统OS研讨会”上,来自紫光展锐工程一线的架构师带来了一场整个操作系统领域的饕餮盛宴…

如何利用秒级监控进行mongodb故障排查

摘要: 在我们平时的数据库使用当中,监控系统,作为排查故障,告警故障的重要辅助系统,对dba、运维、业务开发同学进行问题诊断、排查、分析有着重要的作用。并且一个监控系统的好坏,也很大程度上影响了能否精…

工作流实战_06_flowable 流程定义的删除

List item 由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,我师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:63316…

百度Q2智能云增长强劲;据悉史上最大 AI 芯片诞生!中兴与奇瑞成立合资公司一起加快开发5G汽车……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 华为推出旗下第一款可穿戴智…

python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程

笔者思虑再三还是决定选择图文(因为百家的视频发布画质真不怎么样【囧】)。 笔者学习编程的时间也挺长的,因为业余,因为时间不多,各种原因,自学编程的路特别难走。然后笔者发现,自己能为小白贡献…

从事数据科学前必须知道的五件事儿

摘要: 本文讲解了从事数据科学前应该了解的五件事情,主要是关于学习数据科学时候应该注意的一些事项。目前,人工智能行业非常火热,对应的数据科学分析岗位需求也非常大。很多程序员纷纷转行从事人工智能相关岗位,那么对…

工作流实战_07_flowable 流程定义查看流程图和xml

由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,我师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:633168411 里面都…

这项技术:华为、BAT要力捧!程序员:我彻底慌了... ​

人工智能离我们还遥远吗?海底捞斥资1.5亿打造了中国首家火锅无人餐厅;阿里酝酿了两年之久的全球首家无人酒店也正式开始运营,百度无人车彻底量产。李彦宏称,这是中国第一款能够量产的无人驾驶乘用车。而阿里的这家无人酒店&#x…

手把手教你理解卷积神经网络

摘要: 卷积神经网络是一种识别和理解图像的神经网络。本文将从不同的层次来介绍卷积神经网络。手把手教你理解卷积神经网络(一)本文将继续为你介绍关于卷积神经网络的知识。为了保持文章的简洁性和全面性我将为你提供研究论文的链接&#xff…

工作流实战_09_flowable 流程实例挂起与激活

由于群里有些朋友对这个flowable还不是 很熟悉,在群里的小伙伴的建议下,我师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:633168411 里面都…

2018深圳云栖拉开帷幕,飞天技术汇五大专场邀你参加~

摘要: 感受万物互联的智能时代,洞察数字化转型的全新未来。云栖大会将情景化展示智能城市、智能生活、智能制造、智慧门店等阿里云IoT生态全景,20专场,覆盖AI、新零售等全行业数字化转型解决方案。 飞天技术汇作为阿里云的技术传播…

学了阿里中台,却依然做不好系统? 聊聊阿里的项目管理

戳蓝字“CSDN云计算”关注我们哦!作者 | 墨玖来源| 阿里技术导读:在技术公司、尤其是互联网公司,技术人员作为PM(项目经理)是非常常见的。有些同学得心应手,有条不紊,能得到清晰稳定的预期结果;有些同学则…

视频直播常见问题与解决办法汇总【系列三—直播推流】

摘要: 直播推流初始化设置 要进行直播推流,您必须开启直播加速 > 配置直播域名 > 直播推流,详情参考 快速开始。 如何获取推流地址 直播加速配置成功后,您可以通过以下方式获取对应的推流地址。 登录 视频直播控制台。 直播…

工作流实战_10_flowable 流程实例的删除

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码2.1. 删除实例命令2.2. 执行删除动作1. 演示 …

深入了解机器学习

摘要: 了解机器学习发展史、机器学习是什么?机器学习有什么?看看本文就够了。如今机器学习已经成为了这个时代的热门话题。机器学习已经存在了几十年,但直到最近我们才得以利用这项技术。接下来,让我们一起回顾一下机器…

python程序设计的基本步骤_Python程序设计课程教与学(54、72、80学时教学大纲)...

原标题:Python程序设计课程教与学(54、72、80学时教学大纲)《算法与程序设计》课程教学大纲 Programming and Algorithm Fundamentals (Python-based) 一.基本信息 课程学分:4 ; 面向专业:计算机…

百分点10周年乔迁新址 数据智能服务更上一层楼

戳蓝字“CSDN云计算”关注我们哦!作者 | 刘丹2019年8月,是百分点值得纪念和庆祝的日子,随着百分点团队的迅速扩大与蓬勃发展,全国各地业务开展的有声有色,业绩快速增长,在企业成立十周年之际,更…

用Python及深度学习实现iPhone X的FaceID功能

摘要: 本文主要是展示FaceID解锁机器的基本工作机制,采用的方法是基于人脸映射和孪生卷积神经网络,Github上附详细代码。对于果粉们来说,对新出的iPhone X讨论最多的是其解锁方式,TouchID的继承者——FaceID。对于新一…

工作流实战_11_flowable 流程实例 跟踪流程

项目地址https://gitee.com/lwj/flowable.git代码分支flowable-base视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid94579 用户名密码0000001test0000002test0000003test0000004test文章目录1. 演示2. 代码分享1. 演示 2. 代码分享 public byte[] cre…

企业如何采用机器学习

摘要: 向机器学习专家学习如何理解机器学习开发生命周期,以及如何建立一个团队通过机器学习来解决他们的业务问题。毫无疑问,任何企业都可以利用机器学习的优势将机器学习应用到他们的业务过程中。而机器学习的意义将取决于它是如何被应用的&…