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

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

3天内不再提示

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

8g3K_AI_Thinker 来源:未知 作者:李倩 2018-04-02 10:37 次阅读

当你辗转于各种论坛时,相信会经常看到这样的问题:深度学习是否会取代传统的计算机视觉?或者说,当深度学习看起来如此有效时,是否还有必要研究传统的计算机视觉技术?

这是一个非常好的问题。

深度学习已经彻底改变了计算机视觉和人工智能这一领域,许多曾经看起来不可能解决的问题,深度学习都能够解决——尤其是在图像识别和分类问题上,机器已经超越人类。事实上,深度学习也强化了计算机视觉在行业中的重要地位。

但是,深度学习对计算机视觉来说仅仅是一种工具,它不可能成为解决所有问题的万能药。所以,在这篇文章中,我想阐述一下为什么传统计算机视觉技术仍然很重要,并且值得我们去深入学习和研究。

本文将分为以下三个部分:

深度学习需要大数据

深度学习有时过于深度(杀鸡焉用牛刀)

传统的计算机视觉有助于更好的使用深度学习

首先我需要解释下什么是传统的计算机视觉技术,什么是深度学习,以及深度学习为什么如此具有革命性。

▌背景知识

在深度学习出现之前,如果你想对图像进行分类,首先需要执行一个特征提取(wiki:http://t.cn/RnzvIJ8)的步骤。特征是图像中比较小的“有趣的”、具有描述性的或包含信息的块。在这篇文章中你将会了解到传统的计算机视觉技术,包括边缘检测(wiki:http://t.cn/RnzvqtE),角点检测(wiki:http://t.cn/RnzvSVQ),对象检测(wiki:http://t.cn/RnzvpqH)等等。

就特征提取和图像分类而言,使用这些技术的思路是:从统一类别对象的图像中(椅子、马等)提取尽可能多的特征,并将这些特征视为对象的一个“定义”(众所周知的词袋模型),然后在其他图像中搜索这些“定义”,如果词袋模型中有相当一部分的特征都可以在这幅图像中找到,那么这幅图像被分类为包含该特定对象的类别(椅子,马等)。

这种特征提取方法的难点在于,在给定图像中,必须选择需要查找哪些特征。当图像中类别过多时(如10或20个类别),就会变得复杂而难以分类。角点?边缘?还是纹理特征?只有使用不同的特征才可以更好地描述不同类别的对象。如果你在分类时使用很多特征,就必须对大量的参数进行微调。

深度学习为我们展示了端到端学习(end-to-endlearning)这一概念,简而言之,针对每个特定类别的对象,机器会自动学习需要查找什么特征。它为每个对象提供了最具描述性和显著性的特征。换句话说,神经网络可以探索图像类别中的底层模式。

因此,通过端到端的学习,你不再需要自己动手来决定使用哪种传统计算机视觉技术来描述这些特征,机器将会替你做这些工作。《连线》杂志这样描述:

“举个例子来说,如果你想训练一个[深度]神经网络来识别一只猫,你不需要告诉它要寻找图像上的胡须、耳朵、毛发和眼睛。你需要做的就是向它展示成千上万张猫的照片,这就能解决问题。如果它将狐狸误认为猫,你也不需要重写代码,只需要继续训练即可。”

下图展示了特征提取(使用传统的计算机视觉技术)和端到端学习二者之间的差异:

下面我们将继续讨论,传统的计算机视觉为什么仍然有必要且值得我们去学习。

▌深度学习需要大数据

首先,深度学习需要数据,并且是大量的数据!上面提到的那些经典的图像分类模型都是在大型数据集上进行训练的。常用于训练的三种数据集分别是:

ImageNet数据集——包含150万张图像,有1000个类别。

MicrosoftCommon Objects in Context(COCO)数据集——包含250万张图像,有91个类别。

PASCAL VOC数据集——包含500万张图像,有20个类别。

比图像分类简单的任务或许并不需要如此多数据,但也少不到哪里去。你必须在你所拥有的数据上进行训练(有些技巧能够增强训练数据,但也都是人为处理的方法)。

在训练数据范围之外的数据上,已训练模型的表现就会很差,这是因为机器并没有理解这个问题,所以不能在没有训练过的数据上进行泛化。

我们很难看到训练过的模型的内在机制,手动调参也相当困难,因为深度学习模型里面有数百万个参数——每个参数在训练过程中都需要调整。从某种意义上来说,深度学习模型就是一个黑匣子。

传统的计算机视觉具有充分的透明度,这能够使你对解决方案能否在训练环境之外运行做一个更好的评估和判断。你可以更容易地了解算法中存在的问题,弄清楚什么地方需要调整。

▌杀鸡焉用牛刀

这也许是我支持继续研究传统计算机视觉技术的最佳理由。

训练一个深度神经网络需要很长时间。如果使用专用硬件(例如高性能GPU)训练最先进的图像分类模型,也得需要将近一天的时间;如果使用标准笔记本电脑进行训练,甚至需要一周或者更长的时间。

此外,如果你的训练模型表现不佳应该怎么办?你必须重来一遍,使用不同的训练参数重新进行训练,而且这个过程有时候还得重复数百次。

并不是所有问题需要使用深度学习。在某些问题上,传统的计算机视觉技术的表现比深度学习更好,而且需要的代码更少。

例如,我曾经参与过一个项目——检测每个通过传送带的锡罐中是否有红色的勺子。你可以训练一个深度神经网络来检测勺子并完成上述过程,但这比较耗费时间;或者你也可以编写一个简单的关于红色的颜色阈值算法(在红色范围内的任何像素都标记成白色,其他像素则都是黑色),然后计算有多少白色像素,这样就可以快速检测勺子。第二个方法很简单,并且能在一个小时以内完成!

了解传统的计算机视觉技术会为你节省大量时间以及减少不必要的麻烦。

▌理解传统的计算机视觉方法可以提升你的深度学习技巧

理解传统的计算机视觉实际上真的有助于你更好的使用深度学习。例如,计算机视觉中最常见的神经网络是卷积神经网络。但是什么是卷积?它实际上是一种广泛使用的图像处理技术(例如Sobel边缘检测)。了解卷积有助于了解神经网络的内在机制,在解决问题时,它可以帮助你设计和调整模型。

其次是预处理,这通常是针对训练数据而言。预处理这一步骤用到的主要是传统的计算机视觉技术。例如,如果你没有足够多的训练数据,则可以采用数据增强的方法来处理:通过对原来的图像进行随机旋转、移位、剪切的方式来创建“新”的图像。这些操作可以大大增加训练数据的数量。

▌结论

在这篇文章中,我解释了为什么深度学习仍然没有取代传统的计算机视觉技术,以及传统的计算机视觉技术为何值得我们去学习和研究。

首先,深度学习通常需要大量的数据才能达到较好的性能,但是有时候这是不可能实现的。在这些情况下,传统的计算机视觉技术就可以成为替代方案。

其次,对于某些特定的任务来说,有时候深度学习过于深度。在这种情况下,标准的计算机视觉技术可以更有效地解决问题,并且使用较少的代码。

第三,了解传统的计算机视觉技术实际上可以让你更好地使用深度学习。这是因为通过传统的计算机视觉,你可以更好地了解深度学习的内在机制,并且可以执行某些预处理步骤来提升深度学习的性能。

简而言之,深度学习只是计算机视觉的一种工具,并不是万能药。不要因为深度学习现在较为流行就只使用深度学习。传统的计算机视觉技术仍然非常重要,它可以为你节省很多时间,并减少许多不必要的麻烦。

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

    关注

    0

    文章

    81

    浏览量

    13435
  • 大数据
    +关注

    关注

    64

    文章

    8652

    浏览量

    136602
  • 深度学习
    +关注

    关注

    73

    文章

    5239

    浏览量

    119920

原文标题:为什么深度学习不能取代传统的计算机视觉技术?

文章出处:【微信号:AI_Thinker,微信公众号:人工智能头条】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问计算机视觉深度学习要看什么书?

    计算机视觉深度学习,看这本书就够了
    发表于 05-21 12:43

    汇总 |计算机视觉系统学习资料下载 精选资料分享

    计算机视觉干货资料,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、姿态估计、多视图几何、多传感器融合等方向【
    发表于 07-27 07:51

    深度学习计算机视觉领域图像应用总结 精选资料下载

    突破的领域,真正让大家大吃一惊的颠覆传统方法的应用领域是语音识别,做出来的公司是微软,而不是当时如日中天的谷歌。计算机视觉应用深度学习堪称突
    发表于 07-28 08:22

    超全!深度学习计算机视觉领域应用一览(附链接)精选资料分享

    这是一份深度学习计算机视觉领域的超全应用预览~简单回顾的话,2006年Geof...
    发表于 07-28 07:35

    计算机视觉应用深度学习

    怎样从传统机器学习方法过渡到深度学习
    发表于 10-14 06:51

    深度学习传统计算机视觉简介

    文章目录1 简介1.1 深度学习传统计算机视觉1.2 性能考量1.3 社区支持2 结论3 参考在计算机
    发表于 12-23 06:17

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

    深度学习只是一种 计算机视觉 工具,而不是包治百病的良药,不要因为流行就一味地使用它。传统计算机
    的头像 发表于 04-05 11:37 4555次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>不能<b class='flag-5'>取代</b><b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>技术背后的真正原因

    技术 | 深度学习计算机视觉领域的瓶颈已至

    霍金的弟子,约翰霍普金斯大学教授Alan Yuille提出“深度学习计算机视觉领域的瓶颈已至。
    的头像 发表于 07-05 10:07 2360次阅读

    深度学习计算机视觉上的四大应用

    计算机视觉中比较成功的深度学习的应用,包括人脸识别,图像问答,物体检测,物体跟踪。
    的头像 发表于 08-24 16:16 4077次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>在<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>上的四大应用

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

    本文作者认为,深度学习只是一种计算机视觉工具,而不是包治百病的良药,不要因为流行就一味地使用它。
    的头像 发表于 10-23 11:24 1558次阅读
    为什么<b class='flag-5'>深度</b><b class='flag-5'>学习</b>还没有<b class='flag-5'>取代</b><b class='flag-5'>传统计算机</b><b class='flag-5'>视觉</b>技术?

    DL和传统计算机视觉的比较

    将分析每种方法的优缺点。本文的目的是促进有关是否应保留经典计算机视觉技术知识的讨论。本文还将探讨如何将计算机视觉的两个方面结合起来。评论了几
    的头像 发表于 10-31 11:06 4839次阅读
    DL和<b class='flag-5'>传统计算机</b><b class='flag-5'>视觉</b>的比较

    计算机视觉为何重要?

    计算机视觉是一个研究领域,旨在助力计算机使用复杂算法(可以是传统算法,也可以是基于深度学习的算法
    的头像 发表于 04-29 14:21 2979次阅读

    深度学习传统计算机视觉技术在新兴领域的比较

    是不是深度学习就可以解决所有问题呢?是不是它就比传统计算机视觉方法好呢?但是深度学习无法解决所有
    的头像 发表于 11-28 11:01 1196次阅读

    计算机视觉中的九种深度学习技术

    计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法正在针对某些特定问题取得最新成果。 在最基本的问题上,最有趣的不仅仅是深度
    发表于 08-21 09:56 361次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>中的九种<b class='flag-5'>深度</b><b class='flag-5'>学习</b>技术

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

    某种程度上,深度学习最大的优势就是自动创建没有人会想到的特性能力。如今,深度学习在众多领域都有一席之地,尤其是在计算机
    的头像 发表于 09-12 08:29 407次阅读
    反思<b class='flag-5'>深度</b><b class='flag-5'>学习</b>与<b class='flag-5'>传统计算机</b><b class='flag-5'>视觉</b>的关系