计算机视觉领域正在从统计方法转向深度学习神经网络方法。
计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法在某些特定问题上正在取得最先进的成果。
深度学习模型在基准问题上的性能并非最有趣的;有趣的是,单个模型可以从图像中学习含义并执行视觉任务,从而无需专门和手工制作方法组成的流水线。
在这篇文章中,您将发现深度学习方法正在取得进展的九个有趣的计算机视觉任务。
通过我的新书《深度学习在计算机视觉中的应用》启动您的项目,包括分步教程和所有示例的Python源代码文件。
让我们开始吧。
概述
在这篇文章中,我们将探讨深度学习已应用于以下计算机视觉问题:
- 图像分类
- 带定位的图像分类
- 目标检测
- 目标分割
- 图像风格迁移
- 图像上色
- 图像重建
- 图像超分辨率
- 图像合成
- 其他问题
请注意,关于图像分类(识别)任务,本文采用了ILSRVC的命名约定。尽管这些任务主要关注图像,但它们可以推广到视频帧。
我试图关注您可能感兴趣的最终用户问题类型,而不是深度学习表现良好的更具学术性的子问题。
每个示例都提供了问题的描述、一个示例以及演示方法和结果的论文参考文献。
您是否有未列出的深度学习在计算机视觉中特别喜欢的应用?
在下面的评论中告诉我。
图像分类
图像分类涉及为整个图像或照片分配一个标签。
这个问题也称为“目标分类”,或者更普遍地称为“图像识别”,尽管后者可能适用于更广泛的与图像内容分类相关的任务集。
图像分类的一些例子包括:
- 将X光片标记为有癌症或无癌症(二元分类)。
- 对手写数字进行分类(多类分类)。
- 为一张人脸照片分配一个名字(多类分类)。
一个流行的图像分类基准问题是MNIST数据集。

MNIST数据集中的手写数字示例
一个流行的真实世界数字照片分类版本是街景门牌号 (SVHN) 数据集。
有关这些及其他图像分类任务的最先进成果和相关论文,请参阅:
有许多图像分类任务涉及物体的照片。两个流行的例子包括CIFAR-10和CIFAR-100数据集,它们分别包含需要分类到10个和100个类别的照片。

CIFAR-10 数据集中的物体照片示例
大规模视觉识别挑战赛(ILSVRC)是一项年度竞赛,团队在从ImageNet数据库中提取的数据上,就一系列计算机视觉任务争夺最佳性能。图像分类的许多重要进展都来自于该挑战赛任务或相关任务发表的论文,最著名的是关于图像分类任务的早期论文。例如:
- 基于深度卷积神经网络的ImageNet分类, 2012.
- 用于大规模图像识别的超深度卷积网络, 2014.
- 使用卷积网络更深入, 2015.
- 用于图像识别的深度残差学习, 2015.
想通过深度学习实现计算机视觉成果吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
带定位的图像分类
带定位的图像分类涉及为图像分配一个类别标签,并通过边界框(在物体周围绘制一个框)显示图像中物体的位置。
这是图像分类的一个更具挑战性的版本。
带定位的图像分类的一些例子包括:
- 将X光片标记为有癌症或无癌症,并在癌变区域周围绘制一个框。
- 对动物照片进行分类,并在每个场景中的动物周围绘制一个框。
用于带定位图像分类的经典数据集是PASCAL视觉对象分类数据集,简称PASCAL VOC(例如VOC 2012)。这些数据集多年来一直用于计算机视觉挑战赛。

VOC 2012 中狗的带定位图像分类示例
该任务可能涉及在图像中同一物体的多个实例周围添加边界框。因此,此任务有时可能被称为“目标检测”。

VOC 2012 中多个椅子的带定位图像分类示例
用于带定位图像分类的ILSVRC2016数据集是一个流行的数据集,包含15万张照片,涵盖1000个物体类别。
一些关于带定位图像分类的论文示例包括:
- 用于目标识别的选择性搜索, 2013.
- 用于精确目标检测和语义分割的丰富特征层次结构, 2014.
- 快速R-CNN, 2015.
目标检测
目标检测是带定位的图像分类任务,但图像可能包含多个需要定位和分类的物体。
这比简单的图像分类或带定位的图像分类更具挑战性,因为图像中通常存在不同类型的多个物体。
通常,为带定位的图像分类开发的技术被用于并演示目标检测。
目标检测的一些例子包括:
- 在街景中为每个物体绘制边界框并进行标注。
- 在室内照片中为每个物体绘制边界框并进行标注。
- 在风景中为每个物体绘制边界框并进行标注。
PASCAL 视觉对象分类数据集,简称 PASCAL VOC(例如 VOC 2012),是目标检测的常用数据集。
另一个用于多种计算机视觉任务的数据集是微软的通用对象上下文数据集,通常称为MS COCO。

MS COCO 数据集上 Faster R-CNN 的目标检测示例
一些关于目标检测的论文示例包括:
- OverFeat:使用卷积网络的集成识别、定位和检测, 2014.
- Faster R-CNN:迈向实时目标检测,采用区域提议网络, 2015.
- You Only Look Once:统一、实时目标检测, 2015.
目标分割
目标分割,或语义分割,是目标检测任务,其中在图像中检测到的每个目标周围绘制一条线。图像分割是更普遍的将图像分成若干区域的问题。
目标检测有时也指目标分割。
与使用边界框识别目标不同,目标分割识别图像中属于目标的特定像素。它就像一种精细的定位。
更一般地说,“图像分割”可能指的是将图像中的所有像素分割成不同类别的对象。
同样,VOC 2012 和 MS COCO 数据集可用于目标分割。

COCO 数据集上的目标分割示例
摘自“Mask R-CNN”。
KITTI视觉基准套件是另一个流行的目标分割数据集,提供街道图像,用于训练自动驾驶汽车模型。
一些关于目标分割的论文示例包括:
- 同时检测与分割, 2014.
- 用于语义分割的全卷积网络, 2015.
- 用于目标分割和精细定位的超列, 2015.
- SegNet:一种用于图像分割的深度卷积编码器-解码器架构, 2016.
- Mask R-CNN, 2017.
风格迁移
风格迁移或神经风格迁移是学习一个或多个图像的风格并将其应用于新图像的任务。
这项任务可以被视为一种照片滤镜或转换,可能没有客观的评估标准。
例子包括将特定著名艺术作品(例如巴勃罗·毕加索或文森特·梵高)的风格应用于新照片。
数据集通常涉及使用公共领域的著名艺术作品和标准计算机视觉数据集中的照片。

著名艺术作品到照片的神经风格迁移示例
摘自“A Neural Algorithm of Artistic Style”
一些论文包括:
- 艺术风格的神经算法, 2015.
- 使用卷积神经网络进行图像风格迁移, 2016.
图像上色
图像上色或神经上色涉及将灰度图像转换为全彩图像。
这项任务可以被视为一种照片滤镜或转换,可能没有客观的评估标准。
例子包括为旧黑白照片和电影上色。
数据集通常涉及使用现有的照片数据集,并创建模型的灰度版本,模型必须学习如何为这些灰度照片上色。

照片上色示例
摘自“Colorful Image Colorization”
一些论文包括:
- 彩色图像上色, 2016.
- 让色彩出现吧!:全局和局部图像先验的联合端到端学习,用于自动图像着色和同时分类, 2016.
- 深度上色, 2016.
图像重建
图像重建和图像修复是填充图像中缺失或损坏部分的任务。
这项任务可以被视为一种照片滤镜或转换,可能没有客观的评估标准。
例子包括重建旧的、损坏的黑白照片和电影(例如照片修复)。
数据集通常涉及使用现有照片数据集,并创建照片的损坏版本,模型必须学习修复这些损坏版本。

照片修复示例。
摘自“Image Inpainting for Irregular Holes Using Partial Convolutions”
一些论文包括:
- 像素循环神经网络, 2016.
- 使用部分卷积修复不规则孔洞的图像, 2018.
- 使用带通滤波器的深度神经网络进行高度可扩展的图像重建, 2018.
图像超分辨率
图像超分辨率是生成比原始图像具有更高分辨率和细节的新图像的任务。
通常,为图像超分辨率开发的模型可用于图像修复和修补,因为它们解决了相关问题。
数据集通常涉及使用现有照片数据集,并创建照片的缩小版本,模型必须学习为这些缩小版本创建超分辨率版本。

不同超分辨率技术的结果示例。
摘自“使用生成对抗网络进行照片级单图像超分辨率”
一些论文包括:
- 使用生成对抗网络实现照片级单图像超分辨率, 2017.
- 用于快速准确超分辨率的深度拉普拉斯金字塔网络, 2017.
- 深度图像先验, 2017.
图像合成
图像合成是生成现有图像的定向修改或全新图像的任务。
这是一个非常广泛且发展迅速的领域。
它可能包括对图像和视频的小幅修改(例如图像到图像的转换),例如:
- 改变场景中物体的风格。
- 向场景添加一个物体。
- 向场景添加一张脸。

斑马和马的造型示例。
摘自“使用循环一致对抗网络的未配对图像到图像转换”
它还可能包括生成全新的图像,例如:
- 生成人脸。
- 生成浴室。
- 生成衣服。

生成浴室示例。
摘自“使用深度卷积生成对抗网络的无监督表征学习”
一些论文包括:
- 使用深度卷积生成对抗网络的无监督表征学习, 2015.
- 使用PixelCNN解码器的条件图像生成, 2016.
- 使用循环一致对抗网络的未配对图像到图像转换, 2017.
其他问题
还有其他重要而有趣的问题,我没有涵盖,因为它们不纯粹是计算机视觉任务。
值得注意的例子是图像到文本和文本到图像。
- 图像字幕:生成图像的文本描述。
- 展示与讲述:一个神经图像字幕生成器, 2014.
- 图像描述:生成图像中每个对象的文本描述。
- 用于生成图像描述的深度视觉语义对齐, 2015.
- 文本到图像:根据文本描述合成图像。
大概,人们学会了在其他模态和图像之间进行映射,例如音频。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
调查论文
- 基于深度学习的目标检测:综述, 2018.
- 深度学习在现代目标检测文献中的应用综述, 2018.
- 深度学习在医学图像分析中的应用综述, 2017.
数据集
- MNIST 数据集
- 街景门牌号 (SVHN) 数据集
- ImageNet 数据集
- 大规模视觉识别挑战赛(ILSVRC)
- ILSVRC2016 数据集
- PASCAL 视觉对象分类主页
- MS COCO 数据集.
- KITTI 视觉基准套件
文章
参考文献
总结
在这篇文章中,你发现了深度学习在计算机视觉任务中的九个应用。
你最喜欢的深度学习在计算机视觉中的应用是否遗漏了?
请在评论中告诉我。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
嗨,Jason,
谢谢这篇好文章!你打算出版一本关于CV的书吗?它还会包含带有OpenCV的CV基础知识吗?
祝好,
Elie
谢谢。
我不打算涵盖OpenCV,但我计划涵盖计算机视觉的深度学习。我希望很快能出版一本关于这个主题的书。
嗨,Jason,
太棒了!!
但是,但是……
计算机视觉(相对而言)很简单,到处都有涵盖。
请,请涵盖使用 TIMIT 数据集进行声音识别。
我将不胜感激!
祝好!
巴特
附言:我指的是 TIMIT 数据集,具体是音素分类。
这难道不令人兴奋吗?
https://github.com/llSourcell/Neural_Network_Voices
声音/语音识别更具挑战性,因此很少有人涵盖……
感谢您的建议。
一如既往的精彩内容!你的新书/书籍什么时候出版?我很乐意购买 🙂 谢谢你的出色工作 🙂
可能还需要几周。
你好 Jason,
谢谢这篇好文章。
请问,你能讲讲如何从图像中提取其他信息,比如深度和运动吗?
有趣的问题。
抱歉,我暂时不确定。
我真的很喜欢阅读你的文章。
谢谢。
你好,杰森,你过得好吗?愿上帝保佑你。
你没有谈论卫星图像分析这个最重要的领域
谢谢,很棒的建议!
感谢您的精彩文章
不客气,我很高兴它有所帮助。
尊敬的Jason先生,
感谢您的优秀博客。
我是你博客的忠实读者,也购买了一些你的电子书。
请在未来涵盖 CNN + LSTM 的组合主题
很好的建议,谢谢。
你好,Jason。
很棒的帖子!内容非常丰富!(一如既往地🙂)
尽管它很好地涵盖了用于图像分析的计算机视觉,但我仍然缺乏关于使用深度学习进行图像序列(视频)的类似信息——例如动作识别、视频字幕、视频“超分辨率”(时间轴上)等。
此外,我赞同 Abkul 的建议,即撰写一篇关于语音和其他序列数据集/问题的文章。
非常感谢这篇帖子!
盖伊
谢谢盖伊!
好帖子!
谢谢。
那么,在学习了这本书之后,您能推荐哪些博士研究方向,这本书会大有帮助呢?
我的书是为实践者准备的,不过,学者们也可能发现它在定义用于比较的基础模型以及学习如何有效地使用 Keras 库进行计算机视觉应用方面很有用。
计算机视觉中有很多东西需要学习和应用。很棒的文章。非常感谢 Jason 提供了这些见解。
谢谢,很高兴对您有帮助。
嗨,杰森,感谢您对计算机视觉的深刻见解……
我的问题是关于计算机视觉中的人脸识别,即从人脸A、人脸B、人脸C等中识别出特定人脸,就像微软人脸识别引擎那样,或者检测一系列具有不同/变化尺寸、不同用途相关、标记磨损、割伤、因使用造成的变形的相似类型物体,或者像检测纸币或金属硬币,并且每个都能被引擎识别。
构建一个类似的引擎,即使准确度不如(微软的),需要哪些学习材料、技术和工具?
您的出版物中哪些材料可以涵盖上述主题?
您能估计一下开发这样一个引擎或一个 MVP 版本的成本(时间和金钱)吗?您是否可以承担这项任务?
感谢您宝贵的时间。
此致。
这可能是一个很好的起点
https://machinelearning.org.cn/introduction-to-deep-learning-for-face-recognition/
写得非常好。谢谢你的博客,先生。我总是喜欢阅读你的博客。
谢谢,很高兴它帮到了你!
嗨,杰森,谢谢你的这篇文章。
我是一名投资分析师,想知道哪些公司在这个领域处于领先地位?计算机视觉领域似乎有大量有待爆发的潜力——硬件、软件……以及受益的行业。但我很难看到哪些公司目前正在从中盈利。
再次感谢!
这不是我的领域,抱歉我不知道。
我只是帮助开发人员使用这些技术获得结果。
嗨,杰森,这是一篇非常好的文章。
我更想了解如何实现“基于质量的图像分类”——您能帮我提供一些相关内容吗?我知道BRISK和BIQA是几种这样的方法,但如果您有更好、更成熟的方法,那就太好了。
谢谢。
抱歉,我对这个问题不了解,具体是什么呢?
假设有大量预扫描图像,并且您知道这些图像扫描不正确。是否有可能对这些图像进行分类并根据质量对其进行标记:好、差、更差……质量特征可能是噪声、模糊、倾斜、对比度等。是否有方法在输出中提供质量元数据并建议需要改进什么以及如何改进,以便图像可以进一步用于OCR和文本转换等?
是的,您可以根据质量对图像进行分类。
我不了解提供图像质量元数据的现有模型。
你好,不好意思,我的评论与文章无关。我是计算机视觉新手,我需要一些关于计算机视觉问题的科学论文,我不知道如何以及在哪里开始寻找。请问我能得到帮助吗?
如果你想开始学习深度学习的计算机视觉,你可以从这里开始:
https://machinelearning.org.cn/start-here/#dlfcv
如果你对某篇论文有疑问,或许可以直接联系作者。
嗨,Jason。
这个问题是针对应用2:带定位的图像分类
如果对于给定的标记X光图像,我们要提取骨移植/植入物的轮廓,然后对植入物进行分类,我们是否会使用与带定位图像分类相同的技术?
有没有相关的参考文献?
谢谢!
我建议在 scholar.google.com 上查找相关文献。