深度学习在计算机视觉领域的潜力在于,模型可以通过更多数据获得更好的性能,同时训练和操作所需的数字信号处理专业知识更少。
关于深度学习方法有很多炒作和夸大其词的说法,但除了炒作之外,深度学习方法正在解决具有挑战性的问题上取得最先进的成果。尤其是在图像分类、物体识别和人脸检测等计算机视觉任务上。
在这篇文章中,您将了解深度学习方法在解决计算机视觉问题方面的具体承诺。
阅读本文后,你将了解:
- 深度学习在计算机视觉领域的承诺。
- 深度学习已经或正在实现其承诺的例子。
- 计算机视觉的关键深度学习方法和应用。
通过我的新书《计算机视觉深度学习》启动您的项目,其中包括所有示例的分步教程和Python源代码文件。
让我们开始吧。

深度学习在计算机视觉领域的潜力简介
图片由osamu okamoto拍摄,保留部分权利。
概述
本教程分为三个部分;它们是:
- 深度学习的承诺
- 深度学习网络模型类型
- 计算机视觉问题类型
深度学习的承诺
深度学习方法之所以受欢迎,主要是因为它们正在兑现其承诺。
这并不是说这项技术没有炒作,而是说这种炒作是基于计算机视觉和自然语言处理等一系列极具挑战性的人工智能问题上所展示的真实成果。
深度学习能力最早的大规模演示之一是在计算机视觉领域,特别是图像识别。最近则是在物体检测和人脸识别领域。
在这篇文章中,我们将探讨深度学习方法在计算机视觉领域的五个具体承诺。
总而言之,它们是:
- 自动特征提取的承诺。特征可以从原始图像数据中自动学习和提取。
- 端到端模型的承诺。单个端到端模型可以取代专业模型的流水线。
- 模型重用的承诺。学习到的特征甚至整个模型都可以在不同任务中重用。
- 卓越性能的承诺。这些技术在具有挑战性的任务上表现出更好的技能。
- 通用方法的承诺。单一通用方法可用于一系列相关任务。
我们现在将更详细地探讨每个承诺。
深度学习在计算机视觉领域还有其他承诺;这些只是我选择强调的五个。
您认为深度学习在计算机视觉领域的承诺是什么?
在下面的评论中告诉我。
承诺1:自动特征提取
计算机视觉领域研究的一个主要焦点是检测和提取数字图像特征的技术。
提取的特征为图像推断提供了上下文,通常特征越丰富,推断越好。
精巧的手工设计特征,例如尺度不变特征变换(SIFT)、Gabor滤波器和定向梯度直方图(HOG),在一段时间内一直是计算机视觉特征提取的焦点,并取得了良好的成功。
深度学习的承诺是,复杂而有用的特征可以直接从大型图像数据集中自动学习。更具体地说,通过神经网络模型的多个深层,可以学习并自动提取图像的丰富特征的深层层次。
它们拥有更深层的架构,能够学习比浅层更复杂的特征。此外,其表达能力和鲁棒的训练算法允许学习信息丰富的对象表示,而无需手动设计特征。
— 基于深度学习的物体检测:综述,2018。
深度神经网络模型正在实现这一承诺,最显著的体现是标准计算机视觉基准数据集和竞赛(如ImageNet大规模视觉识别挑战赛 (ILSVRC))中,从SIFT等复杂的手工特征检测方法转向深度卷积神经网络。
过去五年,ILSVRC 为计算机视觉领域的多项突破铺平了道路。类别物体识别领域发生了巨大的演变……从编码的SIFT特征开始,发展到大型卷积神经网络在图像分类、单物体定位和物体检测这三项任务中占据主导地位。
——ImageNet 大规模视觉识别挑战赛,2015。
想通过深度学习实现计算机视觉成果吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
承诺2:端到端模型
解决计算机视觉任务传统上涉及使用模块化模型系统。
每个模型都设计用于特定任务,例如特征提取、图像对齐或分类。这些模型以流水线方式使用,一端是原始图像,另一端是结果,例如预测。
这种流水线方法可以并且仍然与深度学习模型一起使用,其中特征检测器模型可以被深度神经网络取代。
此外,深度神经网络允许单个模型包含两个或更多传统模型,例如特征提取和分类。通常使用直接在原始像素值上训练的单个模型进行图像分类,并且有一种趋势是使用深度神经网络模型替换流水线,其中单个模型直接进行端到端训练。
随着大量训练数据(以及高效的算法实现和GPU计算资源)的可用,直接从图像数据中学习神经网络成为可能,而无需创建多阶段、手工调整的特征提取和判别分类器流水线。
——ImageNet 大规模视觉识别挑战赛,2015。
一个很好的例子是物体检测和人脸识别,最初通过使用深度卷积神经网络仅进行特征提取获得了卓越的性能,而最近,端到端模型直接使用多输出模型(例如,类别和边界框)和/或新的损失函数(例如,对比损失函数或三元组损失函数)进行训练。
承诺 3:模型重用
通常,为数据集准备的特征检测器对该数据集具有高度特异性。
这很有道理,因为您可以在模型中使用更多的领域信息,模型在该领域中的表现就越好。
深度神经网络通常在比传统数据集大得多的数据集上进行训练,例如数百万或数十亿张图像。这使得模型能够学习跨照片通用的特征和特征层次结构,这本身就是了不起的。
如果这个原始数据集足够大且足够通用,那么预训练网络学习到的空间特征层次结构可以有效地充当视觉世界的通用模型,因此它的特征可以证明对许多不同的计算机视觉问题有用,即使这些新问题可能涉及与原始任务完全不同的类别。
— 第143页,《Python深度学习》,2017。
例如,通常直接或作为起点,在大型ImageNet数据集或该数据集的子集上训练的深度模型用于一系列计算机视觉任务。
...通常使用在 ImageNet 上训练的卷积网络的特征来解决其他计算机视觉任务。
— 第426页,《深度学习》,2016。
这被称为迁移学习,使用预训练模型已成为标准做法,这些模型可能需要数天甚至数周才能训练完成。
预训练模型可用于从数字图像中提取有用的通用特征,也可进行微调,以适应新任务的具体要求。这可以节省大量时间和资源,并几乎立即产生非常好的结果。
在小型图像数据集上进行深度学习的一种常见且高效的方法是使用预训练网络。
— 第143页,《Python深度学习》,2017。
承诺4:卓越性能
深度神经网络在计算机视觉领域的一个重要承诺是更好的性能。
正是深度神经网络显著提升的性能,成为了深度学习领域增长和兴趣的催化剂。尽管这些技术已经存在了几十年,但其爆发点是Alex Krizhevsky等人于2012年在图像分类方面取得的卓越成就。
深度学习目前商业兴趣的强度始于 Krizhevsky 等人 (2012) 赢得了 ImageNet 对象识别挑战赛……
— 第371页,《深度学习》,2016。
他们的深度卷积神经网络模型,当时被称为SuperVision,后来被称为AlexNet,导致了分类准确性的大幅提升。
我们还将该模型的一个变体参加了 ILSVRC-2012 竞赛,并取得了 15.3% 的获胜前5测试错误率,而第二名仅为 26.2%。
— 使用深度卷积神经网络进行 ImageNet 分类,2012。
该技术随后被应用于一系列极具挑战性的计算机视觉任务,包括物体检测,其模型性能也比当时的最新传统方法有了大幅提升。
物体检测领域的第一个突破是RCNN,它使性能比以前的最新技术提高了近30%。
— 使用深度学习的现代物体检测文献综述,2018。
这种改进趋势在各种计算机视觉任务中逐年持续。
性能如此显著,以至于以前认为计算机难以解决且用作CAPTCHA以防止垃圾邮件的任务(例如预测照片是狗还是猫)实际上已“解决”,并且人脸识别等问题的模型甚至取得了超越人类的性能。
自2012年深度学习进入该领域以来,我们可以观察到性能(平均精度)的显著提升。最佳检测器的性能每年都在显著提高。
— 深度学习在通用物体检测中的应用:综述,2018。
承诺5:通用方法
也许深度学习最重要的承诺是,表现最佳的模型都由相同的基本组件开发而来。
令人印象深刻的结果来自一种叫做卷积神经网络的网络,它由卷积层和池化层组成。它专门为图像数据设计,可以直接在像素数据上进行训练(只需进行一些微小的缩放)。
卷积网络提供了一种将神经网络专门化以处理具有清晰网格结构拓扑数据的方法,并能将此类模型扩展到非常大的规模。这种方法在二维图像拓扑上取得了最大的成功。
— 第372页,《深度学习》,2016。
这与更广泛的领域不同,该领域可能需要为手写识别、字符识别、人脸识别、物体检测等开发专门的特征检测方法。相反,单一通用模型类别可以直接配置并用于各种计算机视觉任务。
这是机器学习的普遍承诺;令人印象深刻的是,计算机视觉领域已经发现并证明了如此多功能的技
此外,该模型相对容易理解和训练,尽管可能需要现代GPU硬件才能在大数据集上高效训练,并且可能需要对模型超参数进行调优才能实现最前沿的性能。
深度学习网络模型类型
深度学习是一个广阔的研究领域,并非所有内容都与计算机视觉相关。
很容易陷入特定的优化方法或模型类型的扩展中,这些方法或扩展旨在提升性能。
从宏观角度来看,深度学习中有一种方法在计算机视觉应用方面最值得关注。那就是:
- 卷积神经网络 (CNNs)。
卷积神经网络之所以成为深度学习模型的关注焦点,是因为它们是专门为图像数据设计的。
此外,以下两种网络类型都可能有助于解释或开发由 CNN 学习和提取的特征的推理模型;它们是:
- 多层感知器 (MLP)。
- 循环神经网络 (RNNs)。
MLP 或全连接型神经网络层对于开发能够根据 CNN 提取的学习特征进行预测的模型非常有用。RNN(例如 LSTM)在处理随时间变化的图像序列(例如视频)时可能会有所帮助。
计算机视觉问题类型
深度学习不会解决计算机视觉或人工智能问题。
迄今为止,深度学习方法已在更广泛的计算机视觉问题套件上进行了评估,并在小部分问题上取得了成功,这里的成功是指性能或能力达到或超过以前其他方法所能达到的水平。
重要的是,深度学习方法取得最大成功的领域,恰恰是那些面向终端用户、具有挑战性且可能更有趣的问题。
五个例子包括:
- 光学字符识别。
- 图像分类。
- 物体检测。
- 人脸检测。
- 人脸识别。
所有五项任务都属于“物体识别”的范畴,指的是涉及识别、定位和/或从数字照片中提取特定内容的任务。
大多数用于计算机视觉的深度学习都以某种形式用于物体识别或检测,无论是报告图像中存在哪些物体,用边界框标注每个物体,从图像中转录符号序列,还是用物体身份标记图像中的每个像素。
— 第453页,《深度学习》,2016。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
书籍
- 深度学习, 2016.
- 使用 Python 进行深度学习, 2017.
论文
- ImageNet 大规模视觉识别挑战赛, 2015.
- 使用深度卷积神经网络进行 ImageNet 分类, 2012.
- 基于深度学习的物体检测:综述, 2018.
- 使用深度学习的现代物体检测文献综述, 2018.
- 深度学习在通用物体检测中的应用:综述, 2018.
总结
在这篇文章中,您发现了深度学习方法在解决计算机视觉问题方面的具体承诺。
具体来说,你学到了:
- 深度学习在计算机视觉领域的承诺。
- 深度学习已经或正在实现其承诺的例子。
- 计算机视觉的关键深度学习方法和应用。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
您认为图像分类会在捕获设备上(例如相机)完成,并以额外的META类型数据(如Exif头)编码的时代吗?在我看来,现在是提出这个讨论的理想时机。
与其担心深度学习算法、额外的训练要求以及通过精心建模的ML/DL稍后发现这一点,不如在图像实际捕获时完成大部分工作。
您对此有何看法?
是的,像新的谷歌Pixel手机这样的相机大部分已经是软件了。
在捕获时问题并没有感觉更容易——如果您是这个意思的话。
先生,我需要您的帮助。我需要使用卷积神经网络检测糖尿病视网膜病变的源代码。
听起来是个很棒的项目。
您具体遇到什么问题?
你好,Jason,首先我是深度学习的新手,我必须说你把这个话题讲得非常清晰明了。我目前正在尝试使用深度学习方法解决从CT图像中去除环形伪影的问题,正如你提到的深度学习模型类型中CNN是用于图像的,我能知道U-Net属于CNN的一部分吗?
不胜感激,谢谢
这听起来是个很棒的问题。
U-Net 是一种模型架构。
U-Net 用于图像生成/合成。通常作为图像转换类型模型的一部分。
感谢教授提供如此重要的信息。我是一名硕士研究生,对手语识别很感兴趣,我能否使用CNN模型同时进行手部识别和面部表情识别,以获得更准确的结果并获取每个手语最重要的特征?我需要CNN模型的推荐。
谢谢
也许您可以找到一个已经为此目的训练好的模型并重新使用或重新训练它?
否则,可以从VGG模型或类似模型开始,并使用迁移学习来适应您的新数据集。
尊敬的Jason教授,
感谢您有益的介绍。我是博士生,打算研究微波成像,包括头部成像以检测和分类脑卒中并确定其位置。计划是使用人工神经网络和深度学习处理来自人体模型的反向散射信号,以找到上述脑卒中所需的信息,所以我的问题是我们如何做到这一点?
谢谢
嗨,Ammar……虽然我们无法针对您的项目提供具体方法,但我们可以帮助解答有关我们内容的问题。我建议您明确建立模型的目标……分类、回归、时间序列预测等……
一旦确定了目标,您就可以在这里建立一条合适的路径来提高您的技能。
https://machinelearning.org.cn/start-here/