深度学习在计算机视觉中的 9 个应用

计算机视觉领域正在从统计方法转向深度学习神经网络方法。

计算机视觉中仍有许多具有挑战性的问题需要解决。然而,深度学习方法在某些特定问题上正在取得最先进的成果。

深度学习模型在基准问题上的性能并非最有趣的;有趣的是,单个模型可以从图像中学习含义并执行视觉任务,从而无需专门和手工制作方法组成的流水线。

在这篇文章中,您将发现深度学习方法正在取得进展的九个有趣的计算机视觉任务。

通过我的新书《深度学习在计算机视觉中的应用启动您的项目,包括分步教程和所有示例的Python源代码文件。

让我们开始吧。

概述

在这篇文章中,我们将探讨深度学习已应用于以下计算机视觉问题:

  1. 图像分类
  2. 带定位的图像分类
  3. 目标检测
  4. 目标分割
  5. 图像风格迁移
  6. 图像上色
  7. 图像重建
  8. 图像超分辨率
  9. 图像合成
  10. 其他问题

请注意,关于图像分类(识别)任务,本文采用了ILSRVC的命名约定。尽管这些任务主要关注图像,但它们可以推广到视频帧。

我试图关注您可能感兴趣的最终用户问题类型,而不是深度学习表现良好的更具学术性的子问题。

每个示例都提供了问题的描述、一个示例以及演示方法和结果的论文参考文献。

您是否有未列出的深度学习在计算机视觉中特别喜欢的应用?
在下面的评论中告诉我。

图像分类

图像分类涉及为整个图像或照片分配一个标签。

这个问题也称为“目标分类”,或者更普遍地称为“图像识别”,尽管后者可能适用于更广泛的与图像内容分类相关的任务集。

图像分类的一些例子包括:

  • 将X光片标记为有癌症或无癌症(二元分类)。
  • 对手写数字进行分类(多类分类)。
  • 为一张人脸照片分配一个名字(多类分类)。

一个流行的图像分类基准问题是MNIST数据集

Example of Handwritten Digits From the MNIST Dataset

MNIST数据集中的手写数字示例

一个流行的真实世界数字照片分类版本是街景门牌号 (SVHN) 数据集

有关这些及其他图像分类任务的最先进成果和相关论文,请参阅:

有许多图像分类任务涉及物体的照片。两个流行的例子包括CIFAR-10和CIFAR-100数据集,它们分别包含需要分类到10个和100个类别的照片。

Example of Photographs of Objects From the CIFAR-10 Dataset

CIFAR-10 数据集中的物体照片示例

大规模视觉识别挑战赛(ILSVRC)是一项年度竞赛,团队在从ImageNet数据库中提取的数据上,就一系列计算机视觉任务争夺最佳性能。图像分类的许多重要进展都来自于该挑战赛任务或相关任务发表的论文,最著名的是关于图像分类任务的早期论文。例如:

想通过深度学习实现计算机视觉成果吗?

立即参加我为期7天的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

带定位的图像分类

带定位的图像分类涉及为图像分配一个类别标签,并通过边界框(在物体周围绘制一个框)显示图像中物体的位置。

这是图像分类的一个更具挑战性的版本。

带定位的图像分类的一些例子包括:

  • 将X光片标记为有癌症或无癌症,并在癌变区域周围绘制一个框。
  • 对动物照片进行分类,并在每个场景中的动物周围绘制一个框。

用于带定位图像分类的经典数据集是PASCAL视觉对象分类数据集,简称PASCAL VOC(例如VOC 2012)。这些数据集多年来一直用于计算机视觉挑战赛。

Example of Image Classification With Localization of a Dog from VOC 2012

VOC 2012 中狗的带定位图像分类示例

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

Example of Image Classification With Localization of Multiple Chairs From VOC 2012

VOC 2012 中多个椅子的带定位图像分类示例

用于带定位图像分类的ILSVRC2016数据集是一个流行的数据集,包含15万张照片,涵盖1000个物体类别。

一些关于带定位图像分类的论文示例包括:

目标检测

目标检测是带定位的图像分类任务,但图像可能包含多个需要定位和分类的物体。

这比简单的图像分类或带定位的图像分类更具挑战性,因为图像中通常存在不同类型的多个物体。

通常,为带定位的图像分类开发的技术被用于并演示目标检测。

目标检测的一些例子包括:

  • 在街景中为每个物体绘制边界框并进行标注。
  • 在室内照片中为每个物体绘制边界框并进行标注。
  • 在风景中为每个物体绘制边界框并进行标注。

PASCAL 视觉对象分类数据集,简称 PASCAL VOC(例如 VOC 2012),是目标检测的常用数据集。

另一个用于多种计算机视觉任务的数据集是微软的通用对象上下文数据集,通常称为MS COCO。

Example of Object Detection With Faster R-CNN on the MS COCO Dataset

MS COCO 数据集上 Faster R-CNN 的目标检测示例

一些关于目标检测的论文示例包括:

目标分割

目标分割,或语义分割,是目标检测任务,其中在图像中检测到的每个目标周围绘制一条线。图像分割是更普遍的将图像分成若干区域的问题。

目标检测有时也指目标分割。

与使用边界框识别目标不同,目标分割识别图像中属于目标的特定像素。它就像一种精细的定位。

更一般地说,“图像分割”可能指的是将图像中的所有像素分割成不同类别的对象。

同样,VOC 2012 和 MS COCO 数据集可用于目标分割。

Example of Object Segmentation on the COCO Dataset

COCO 数据集上的目标分割示例
摘自“Mask R-CNN”。

KITTI视觉基准套件是另一个流行的目标分割数据集,提供街道图像,用于训练自动驾驶汽车模型。

一些关于目标分割的论文示例包括:

风格迁移

风格迁移或神经风格迁移是学习一个或多个图像的风格并将其应用于新图像的任务。

这项任务可以被视为一种照片滤镜或转换,可能没有客观的评估标准。

例子包括将特定著名艺术作品(例如巴勃罗·毕加索或文森特·梵高)的风格应用于新照片。

数据集通常涉及使用公共领域的著名艺术作品和标准计算机视觉数据集中的照片。

Example of Neural Style Transfer from Famous Artworks to a Photograph

著名艺术作品到照片的神经风格迁移示例
摘自“A Neural Algorithm of Artistic Style”

一些论文包括:

图像上色

图像上色或神经上色涉及将灰度图像转换为全彩图像。

这项任务可以被视为一种照片滤镜或转换,可能没有客观的评估标准。

例子包括为旧黑白照片和电影上色。

数据集通常涉及使用现有的照片数据集,并创建模型的灰度版本,模型必须学习如何为这些灰度照片上色。

Examples of Photo Colorization

照片上色示例
摘自“Colorful Image Colorization”

一些论文包括:

图像重建

图像重建和图像修复是填充图像中缺失或损坏部分的任务。

这项任务可以被视为一种照片滤镜或转换,可能没有客观的评估标准。

例子包括重建旧的、损坏的黑白照片和电影(例如照片修复)。

数据集通常涉及使用现有照片数据集,并创建照片的损坏版本,模型必须学习修复这些损坏版本。

Example of Photo Inpainting

照片修复示例。
摘自“Image Inpainting for Irregular Holes Using Partial Convolutions”

一些论文包括:

图像超分辨率

图像超分辨率是生成比原始图像具有更高分辨率和细节的新图像的任务。

通常,为图像超分辨率开发的模型可用于图像修复和修补,因为它们解决了相关问题。

数据集通常涉及使用现有照片数据集,并创建照片的缩小版本,模型必须学习为这些缩小版本创建超分辨率版本。

Example of the results from Different Super-Resolution Techniques

不同超分辨率技术的结果示例。
摘自“使用生成对抗网络进行照片级单图像超分辨率”

一些论文包括:

图像合成

图像合成是生成现有图像的定向修改或全新图像的任务。

这是一个非常广泛且发展迅速的领域。

它可能包括对图像和视频的小幅修改(例如图像到图像的转换),例如:

  • 改变场景中物体的风格。
  • 向场景添加一个物体。
  • 向场景添加一张脸。
Example of Styling Zebras and Horses

斑马和马的造型示例。
摘自“使用循环一致对抗网络的未配对图像到图像转换”

它还可能包括生成全新的图像,例如:

  • 生成人脸。
  • 生成浴室。
  • 生成衣服。
Example of Generated Bathrooms

生成浴室示例。
摘自“使用深度卷积生成对抗网络的无监督表征学习”

一些论文包括:

其他问题

还有其他重要而有趣的问题,我没有涵盖,因为它们不纯粹是计算机视觉任务。

值得注意的例子是图像到文本和文本到图像。

大概,人们学会了在其他模态和图像之间进行映射,例如音频。

进一步阅读

如果您想深入了解,本节提供了更多关于该主题的资源。

调查论文

数据集

文章

参考文献

总结

在这篇文章中,你发现了深度学习在计算机视觉任务中的九个应用。

你最喜欢的深度学习在计算机视觉中的应用是否遗漏了?
请在评论中告诉我。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

立即开发用于视觉的深度学习模型!

Deep Learning for Computer Vision

在几分钟内开发您自己的视觉模型

...只需几行python代码

在我的新电子书中探索如何实现
用于计算机视觉的深度学习

它提供关于以下主题的自学教程
分类物体检测(YOLO和R-CNN)人脸识别(VGGFace和FaceNet)数据准备等等……

最终将深度学习引入您的视觉项目

跳过学术理论。只看结果。

查看内容

深度学习在计算机视觉中的9个应用的39条回复

  1. Elie Kawerk 2019年3月14日 上午12:07 #

    嗨,Jason,

    谢谢这篇好文章!你打算出版一本关于CV的书吗?它还会包含带有OpenCV的CV基础知识吗?

    祝好,
    Elie

    • Jason Brownlee 2019年3月14日 上午9:24 #

      谢谢。

      我不打算涵盖OpenCV,但我计划涵盖计算机视觉的深度学习。我希望很快能出版一本关于这个主题的书。

  2. Bart 2019年3月14日 上午7:57 #

    嗨,Jason,

    太棒了!!

    但是,但是……

    计算机视觉(相对而言)很简单,到处都有涵盖。

    请,请涵盖使用 TIMIT 数据集进行声音识别。

    我将不胜感激!

    祝好!
    巴特

  3. Ab 2019年3月15日 上午6:18 #

    一如既往的精彩内容!你的新书/书籍什么时候出版?我很乐意购买 🙂 谢谢你的出色工作 🙂

  4. Temo 2019年3月15日 上午7:28 #

    你好 Jason,
    谢谢这篇好文章。
    请问,你能讲讲如何从图像中提取其他信息,比如深度和运动吗?

  5. ohoud Aziz 2019年3月15日 上午7:36 #

    我真的很喜欢阅读你的文章。

  6. SHAHEEN ALHIRMIZY 2019年3月15日 下午5:41 #

    你好,杰森,你过得好吗?愿上帝保佑你。
    你没有谈论卫星图像分析这个最重要的领域

  7. P.ananth raj 2019年3月15日 下午7:15 #

    感谢您的精彩文章

  8. abkul 2019年3月15日 下午7:37 #

    尊敬的Jason先生,
    感谢您的优秀博客。

    我是你博客的忠实读者,也购买了一些你的电子书。
    请在未来涵盖 CNN + LSTM 的组合主题

  9. Guy Koren 2019年3月23日 下午6:08 #

    你好,Jason。
    很棒的帖子!内容非常丰富!(一如既往地🙂)
    尽管它很好地涵盖了用于图像分析的计算机视觉,但我仍然缺乏关于使用深度学习进行图像序列(视频)的类似信息——例如动作识别、视频字幕、视频“超分辨率”(时间轴上)等。
    此外,我赞同 Abkul 的建议,即撰写一篇关于语音和其他序列数据集/问题的文章。

    非常感谢这篇帖子!
    盖伊

  10. Bashir 2019年3月28日 下午8:32 #

    好帖子!

  11. Dee Dee 2019年5月27日 上午7:38 #

    那么,在学习了这本书之后,您能推荐哪些博士研究方向,这本书会大有帮助呢?

    • Jason Brownlee 2019年5月27日 下午2:37 #

      我的书是为实践者准备的,不过,学者们也可能发现它在定义用于比较的基础模型以及学习如何有效地使用 Keras 库进行计算机视觉应用方面很有用。

  12. Manohar 2019年7月11日 下午8:08 #

    计算机视觉中有很多东西需要学习和应用。很棒的文章。非常感谢 Jason 提供了这些见解。

  13. Jonny Braidy 2019年7月29日 下午8:14 #

    嗨,杰森,感谢您对计算机视觉的深刻见解……

    我的问题是关于计算机视觉中的人脸识别,即从人脸A、人脸B、人脸C等中识别出特定人脸,就像微软人脸识别引擎那样,或者检测一系列具有不同/变化尺寸、不同用途相关、标记磨损、割伤、因使用造成的变形的相似类型物体,或者像检测纸币或金属硬币,并且每个都能被引擎识别。

    构建一个类似的引擎,即使准确度不如(微软的),需要哪些学习材料、技术和工具?

    您的出版物中哪些材料可以涵盖上述主题?

    您能估计一下开发这样一个引擎或一个 MVP 版本的成本(时间和金钱)吗?您是否可以承担这项任务?

    感谢您宝贵的时间。

    此致。

  14. Sandeep Panchal 2019年9月6日 下午10:49 #

    写得非常好。谢谢你的博客,先生。我总是喜欢阅读你的博客。

  15. Stephen Mc 2020年1月17日 下午10:51 #

    嗨,杰森,谢谢你的这篇文章。

    我是一名投资分析师,想知道哪些公司在这个领域处于领先地位?计算机视觉领域似乎有大量有待爆发的潜力——硬件、软件……以及受益的行业。但我很难看到哪些公司目前正在从中盈利。

    再次感谢!

    • Jason Brownlee 2020年1月18日 上午8:47 #

      这不是我的领域,抱歉我不知道。

      我只是帮助开发人员使用这些技术获得结果。

  16. Sanchit 2020年2月9日 上午2:51 #

    嗨,杰森,这是一篇非常好的文章。
    我更想了解如何实现“基于质量的图像分类”——您能帮我提供一些相关内容吗?我知道BRISK和BIQA是几种这样的方法,但如果您有更好、更成熟的方法,那就太好了。

    • Jason Brownlee 2020年2月9日 上午6:24 #

      谢谢。

      抱歉,我对这个问题不了解,具体是什么呢?

      • Sanchit 2020年2月9日 下午11:00 #

        假设有大量预扫描图像,并且您知道这些图像扫描不正确。是否有可能对这些图像进行分类并根据质量对其进行标记:好、差、更差……质量特征可能是噪声、模糊、倾斜、对比度等。是否有方法在输出中提供质量元数据并建议需要改进什么以及如何改进,以便图像可以进一步用于OCR和文本转换等?

        • Jason Brownlee 2020年2月10日 上午6:31 #

          是的,您可以根据质量对图像进行分类。

          我不了解提供图像质量元数据的现有模型。

  17. apache 2021年1月7日 上午10:52 #

    你好,不好意思,我的评论与文章无关。我是计算机视觉新手,我需要一些关于计算机视觉问题的科学论文,我不知道如何以及在哪里开始寻找。请问我能得到帮助吗?

  18. Vidya 2021年3月1日 下午1:54 #

    嗨,Jason。

    这个问题是针对应用2:带定位的图像分类

    如果对于给定的标记X光图像,我们要提取骨移植/植入物的轮廓,然后对植入物进行分类,我们是否会使用与带定位图像分类相同的技术?
    有没有相关的参考文献?

    谢谢!

    • Jason Brownlee 2021年3月2日 上午5:39 #

      我建议在 scholar.google.com 上查找相关文献。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。