本文为AI研习社编译的技术博客,原标题 An analysis on computer vision problems,作者为 Shravan Murali 。翻译 | 狒狒 黄伟聪 Lamaric 校对 | Lamaric 整理 | MY
至少在过去十年间,解决计算机视觉领域内各种问题的技术已经有了很大的进步,其中一些值得注意的问题有图像分类、对象检测、图像分割、图像生成、图像字幕生成等。在这篇博客文章中,我将简要地解释其中的一些问题,并尝试从人类如何解读图像的角度比较这些技术。我还将把这篇文章引导到 AGI(人工智能)领域并加入我的一些想法。
在我们深入研究之前,让我们从一些公司如何创造性地使用计算机视觉技术的例子中获得一些动力。据我所知,其中一个最酷的初创公司是 clarifai.com(http://clarifai.com/)。Clarifai 由 Matthew Zeiler (http://www.matthewzeiler.com/)创立,他的团队在 2013 年赢得了 imageNet 挑战(http://www.image-net.org/challenges/LSVRC/)。他的模型将图像分类中的错误率比前一年的最佳精度降低了近 4%。Clarifai 基本上是一个为视觉识别任务提供 API 的 AI 公司,如图像和视频标签。Clarifai 在这里有一个示例。该公司非常有前途,它的图像和视频识别技术非常准确。现在让我们转到 Facebook 的自动图像标记。下次登录你自己的 Facebook 帐户时,右键单击任何图像,然后单击审查元素(这是用于 chrome;其他浏览器上有相同的内容)。查看 img 标记中的 alt 属性(应该看起来像这样:<img src = “…” alt = “…” />
)。您会发现 alt 属性的文本前缀为“Image 可能包含:......”。这项技术现在也很精确。这项技术可以识别人、文本、山脉、天空、树木、植物、户外和自然等等。另一个很酷的技术是 Google 的技术。转到 photos.google.com 并在搜索栏中输入内容。假设您输入的是“山脉”,那么您将准确地将得到所有照片内容都包含山脉的搜索结果,谷歌搜图也是如此。关于图像搜索的最核心部分是,反过来也有效,即,您可以上传图像并获得图像的最佳描述,并获得与上载图像类似的图像。这项技术也很有意义。
好的,我希望你现在已经有了足够的兴趣与动力。但肯定有很多其他类似但是我不曾介绍的技术,事实上仅仅一篇博文不足以让我阐述所有。现在让我们来看看一些计算机视觉领域的问题吧!
图像分类
图像分类基本上仅涉及基于图像的内容标记图像。通常会有一组固定的标签,您的模型必须预测最适合图像的标签。这个问题对于机器来说肯定很难,因为它看到的只是图像数据中的一连串数字。
上图来自 Google 图片
并且,世界各地通常会举办许多图像分类竞赛。Kaggle 是一个去找到这种比赛的一个非常好的平台。其中最著名的竞赛之一是 ImageNet 挑战赛。ImageNet 根本上说是一个庞大的图像数据库(在撰写本文时大约有 1400 万个图像),包含 20000 多个图像标签。它由斯坦福大学的计算机视觉实验室维护。ImageNet 挑战或者说大规模视觉识别挑战(LSVRC)是一年一度的竞赛,它有各种子类挑战,例如对象分类,对象检测和对象定位。在 LSVRC 中,特别是对象分类挑战,从 2012 年开始获得了很多关注,当时 Alex Krizhevsky 使用了着名的 AlexNet,通过它使得图像的错误率降低到 15.7% 而抢尽风头(当时从未实现过)。而且,看看最新的结果,微软的 ResNet 实现了 3.57% 的错误率,谷歌的 Inception-v3 则达到了 3.46% 错误率,而 Inception-v4 已经在此方面走得更远了。
该图像来自 Alfredo Canziani,Adam Paszke 和 Eugenio Culurciello 在 2017 年撰写的论文
对象检测
图像中的对象检测涉及识别各种子图像并在每个识别的子图像周围绘制边界框。以下是一个例子:
上图来自 Google 图片
与图像分类相比,这个解决起来要稍微复杂一些。在这里你必须更多地处理图像坐标。目前最著名的检测方法叫做 Faster-RCNN。RCNN 是区域卷积神经网络(Region Convolutional Neural Network)。它使用一种名为候选区域网络(Region Proposal Network)的技术,该技术负责从根本上对图像中需要分类和处理的区域进行局部化。这个 RCNN 模型后来被调整并且效率更高了,现在称为 Faster-RCNN。卷积神经网络通常用作候选区域方法的一部分来生成区域。最近的图像网络挑战(LSVRC 2017)有一个对象探测的挑战,并由一个名为 BDAT 的队包揽前三,该队成员来自南京信息科技大学和伦敦帝国理工学院。
图像分割
图像分割涉及基于现有对象对图像进行分割,具有精确的边界。
图像分割有两种类型,语义分割和实例分割。在语义分割中,您必须通过类对象标记每个像素。基本上,在这种情况下,属于同一类(比如每只猫)的每个对象都将被着色。而在实例分割中,每个对象的分类都不同。这意味着图片中的每只猫都会有不同的颜色。
以深蓝色着色的汽车为例的语义分割:
这是实例分割的典型例子:
上图来自 Google 图片
由上同样可以看出,语义分割是实例分割的子集。因此,接下来我们将着手怎样解决实例分割。
解决此问题的最新已知技术名为 Mask R-CNN,总的来说它是基于我们之前看到的 R-CNN 技术里的几个卷积层。微软、Facebook 和 Mighty Ai 联合放出了这个名为COCO(http://cocodataset.org/)的数据集。它类似于 ImageNet,但主要用于分割和检测。
图像描述
这是最酷炫的计算机视觉课题之一,它要结合一点点自然语言处理知识。它包含生成最适合你图像的描述。
上图来自 Google 图片
图像描述根本上是图像检测+描述。图像检测是通过我们之前看到的相同 的 Faster R-CNN 方法完成的。描述使用 RNN(递归神经网络)完成。更确切地说,使用的是 RNN 的高级版本,LSTM(长短期记忆网络)。这些 RNN 网络与我们的常规深度神经网络非常相似,只是这些 RNN 取决于之前的网络状态。你可以把它想象成一个神经网络,神经元随着时间和空间构建。在结构上,RNN 看起来像这样:
通常,这些 RNN 用于数据与时间相关性较大的问题。例如,如果您想预测句子中的下一个单词,那么新单词取决于前一个时间步骤中显示的所有单词。现在让我们更深入一点,着眼于人类的视觉理解。
在深入了解壮丽的人类大脑的细节之前,我想先讨论这些深度神经网络的缺点。
虽然深度神经网络似乎很精彩和神奇,但遗憾的是它们很容易被愚弄。看看这个 :
上图来自 Andrej Karpathy 的博客
如图所示,每张图像都是用一个噪点图像处理之后的,它在视觉上根本不会改变原始图像,但却被错误分类为鸵鸟!
此类攻击称为深度神经网络上的对抗攻击。他们最初由 Szegedy 等人在 2013 年提出。然后由 Goodfellow 等人在 2014 年进一步发展。在此基础上我们发现,可以通过优化图像中的像素强度来找到最小噪声信号,以优先考虑深度神经网络中的不同类而不是当前的类。这促成了生成模型的发展。目前有 3 种众所周知的生成模型,即 Pixel RNN / Pixel CNN,变分自动编码器和生成性对抗网络。
尽管我们在开发与计算机视觉相关的炫酷技术方面已经取得了长足的进步,但从长远来看,人类在图像理解方面比其他任何技术都要好得多。这是因为,机器是非常狭隘的,它们只是通过浏览固定类别的图像来学习东西。虽然他们可能从大量的图像中学习(通常大约有一百万数量级的图像网络挑战),但它并不像人类可以做的那样接近。我想主要归结于这样人的大脑,正是对人的大脑新皮层。大脑皮层是大脑的一部分,负责模式识别,认知和其他更高阶的功能,如感知。我们的大脑设计错综复杂,它可以帮助我们记住内容,而不必像硬盘那样直接将所需数据转储到内存中。大脑相当存储我们见证的东西的模式,并在必要时随后检索它们。
此外,与机器不同,人类在生命的每个阶段都会不断收集数据(例如,通过视觉收集图像)。我们来举个例子吧。我们大多数人几乎每天都会看到狗。这也意味着我们会看到不同姿势和不同角度的狗。因此,给定一个有狗的图像,我们很有可能在图片中识别出一只狗。但这对于机器来说并非如此。机器可能仅针对一定数量的狗图像进行训练,因此可能很容易被愚弄。如果您以略微不同的姿势训练同一只狗的图像,它可能会被错误分类。
嗯,这在过去是一个非常有争议的话题。让我们一起来分析吧!
在 Jeff Dean 的一次演讲中,他提到了自 2011 年以来大部分已发布的神经网络构成深度神经网络的参数数量。如果你注意到,对于人类来说,他提到了「100 兆」。虽然他似乎已经考虑过一些类似笑话的东西,但考虑到人类大脑可以处理的复杂事物的数量,这似乎是相当真实的。假设我们的大脑是那么复杂,那么设计一个有这么多参数的系统是否实用?
是的,人工智能领域近期有一些重大突破,例如 AlphaGo 在围棋对弈中击败世界冠军,OpenAI 的 Dota2 机器人在 Dota2 游戏中击败游戏专家等等。然而,从某种意义上说,这些东西看起来非常狭小,Dota2 机器人特定使用于 Dota2,而不是其他任何东西。相反,人类的大脑非常通用。我们几乎所有的日常活动都会使用到大脑。由此我想说的是,为了与哺乳动物的大脑之间竞争,我们需要一个通用的人工智能!
我想说使用强化学习(RL)(特别是深度强化学习:DRL)让我们更接近解决一般情况。在 RL 中,agent 通过试探行为对环境的影响来发现采取行动的最佳方式。这似乎也类似于人类学习东西的方式。人类通过了解他们的行为是否正确来学习做事。以同样的方式,在强化学习中,agent 执行随机动作,并且每个动作都具有相关的奖励。agent 从奖励中获知它为动作获得的动作,即 agent 以这样的方式选择动作,使得它获得的总未来奖励最大化。
这是一个活跃的研究领域,涉及像 DeepMind 和 OpenAI 这样的巨头。事实上,DeepMind 的座右铭是“解决通用人工智能”!
原文链接:https://medium.com/deep-dimension/an-analysis-on-computer-vision-problems-6c68d56030c3
点击文末【阅读原文】即可观看更多精彩内容:
针对 3D 计算机视觉的简介
十大预训练模型助你学习深度学习 —— 计算机视觉篇
在树莓派上实现人脸识别
用深度学习技术,让你的眼睛可以控制电脑
斯坦福CS231n李飞飞计算机视觉经典课程(中英双语字幕+作业讲解+实战分享)
等你来译:
神经网络中的梯度优化算法
使用转置卷积进行上采样
在容器生态中运行 GPU
医学图像文本注释的实例