点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
01.计算机视觉概论
什么是计算机视觉?为什么值得我们花时间去了解?它是怎么工作的?什么样的应用程序有商业价值?今天我们就一起来看看这个问题吧。
什么是计算机视觉?
计算机视觉指使用计算机自动执行人类视觉系统可以完成的任务。与人眼从外部环境接收光刺激类似,计算机使用数码相机接受这一信息,输入信息在大脑中进行处理,计算机则是使用某一种算法来处理获得的图像。
人眼与计算机的眼睛
目前的技术已经解决了获取图像不准确的问题,而且在过去的十年中也已经解决了数字图像中的标注工作。在2012年版的ILSVRC(ImageNet大型视觉识别挑战赛)中,来自世界各地的挑战研究小组在1000对象类在其ImageNet数据集中的超过一万张图片进行分类,深度学习在图像分类中也首次获得了第一名。
AlexNet [2]深度学习方法(第一作者Alex Krizhevsky)由多伦多大学SuperVision团队提出。他们利用了卷积神经网络(CNN)架构获得亚军!相比之下,Andrej Karpathy训练的图像分类器,获得了5.1%的错误率。2014年的最佳方法GoogLeNet [3],而且Karpathy本人指如果不好好训练的话图像分类器表现要差得多。显然,并非所有人都对大型模式识别有耐心和训练:
这是否意味着计算机现在能够像人类一样“看见”?答案当然不是。2015年,研究人员发现,许多先进的计算机视觉模型都容易受到恶意设计的高频模式的攻击,这些模式被称为“对抗性攻击”[4],从而诱骗模型修改其预测而我们却发现不了。
向“熊猫”添加高频“线虫”噪声会诱使网络预测“长臂猿”
这是另一个对抗性攻击如何欺骗计算机视觉算法的幽默示例。麻省理工学院的研究人员开发了一种特殊的图案,将它们放在专门设计的玩具乌龟上,以欺骗网络以预测“步枪”。
为什么要研究机器视觉?
除了对抗性攻击之外,还有高度专业化的研究人员,为什么我们还要关心计算机视觉?与Andrej Karpathy原因相同-大规模视觉识别需要大量的训练和时间。最终,仍然会有人为错误。根据Karpathy在ILSVRC中与计算方法竞争的单一经验,他已经放弃了以下想法:
l将任务外包给多个人以赚钱(例如,将其外包给Amazon Mechanical Turk上的付费本科生或付费贴标商)
l将任务外包给无薪的学术研究人员
最后,Karpathy决定独自执行所有任务,以减少标签不一致问题。Karpathy说,他花了大约1分钟的时间才能在较小的测试集中识别出1,500张图像中的每张图像。相比之下,现代的卷积神经网络可以使用不错的GPU在不到一秒钟的时间内识别图像中的对象。如果我们必须识别100,000张图像的完整测试集呢?尽管开发计算机视觉处理系统需要开发时间和专业知识,但是计算机可以比人类更一致地执行视觉识别,并且在需要时可以更好地扩展。
计算机视觉如何实现?
对于计算机,图像是像素强度的2D阵列。如果图像是黑白图像,则每个像素有一个通道。如果图像是彩色的,则每个像素通常有三个通道。如果图像来自视频,则还存在时间分量。由于阵列很容易在数