计算机视觉(和卷积神经网络)简史
尽管计算机视觉(CV)直到最近才出现爆炸式增长(2012年AlexNet赢得ImageNet是一个突破性的时刻),但它肯定不是一个新的科学领域。
在本文中,我将尝试阐明主要由卷积神经网络驱动的现代CV系统是如何形成的。
我将从上世纪50年代末发表的一篇与软件工程无关的文章开始。
计算机视觉领域最具影响力的论文之一是由两位神经生理学家——David Hubel和Torsten Wiesel于1959年发表的。他们发表了题为《猫的纹状皮层中单个神经元的感受野 (Receptive fields of single neurons in the cat’s striate cortex)》的论文,描述了视觉皮层神经元的核心反应特性,以及猫的视觉体验如何塑造其皮层结构。
两人进行了一些精心设计的实验。他们将电极植入一只被麻醉的猫的大脑初级视觉皮层区域,试图观察在向动物展示各种图像时该区域的神经活动。他们的第一次努力没有结果;他们无法让神经细胞对任何东西做出反应。
然而,在研究进行了几个月后,他们意外地发现,当他们把一张新幻灯片滑入投影仪时,一个神经元被激活了。这是一次幸运的意外!在最初的困惑之后,Hubel和Wiesel意识到让神经元兴奋的是由玻璃片的锋利边缘的阴影所产生的线条的运动。
研究人员通过实验确定,初级视觉皮层中有简单的神经元,也有复杂的神经元,视觉处理总是从简单的结构开始,比如定向边缘。
听起来很熟悉?是的,这基本上是深度学习背后的核心原则。
CV历史上的下一个亮点是第一台数字图像扫描仪的发明。
1959年,Russell Kirsch和他的同事开发了一种设备,可以将图像转换成数字网格——二进制语言机器可以理解。正是因为他们的工作,我们现在才能够以各种方式处理数字图像。
首批数字扫描照片之一是拉罗素幼子的照片。它只是一张5厘米×5厘米的颗粒状照片,为30,976像素(176x176),但它已经变得非常着名,原始图像现在存储在波特兰艺术博物馆。
接下来,让我们讨论劳伦斯·罗伯茨的“ 三维固体机器感知”,该机构于1963年出版,被广泛认为是现代计算机视觉的先驱之一。
接下来,让我们来讨论劳伦斯·罗伯茨(Lawrence Roberts) 1963年出版的《三维实体的机器感知》(Machine perception of three-dimensional solids),这本书被广泛认为是现代计算机视觉的先驱之一。
在那篇博士论文中,拉里描述了从2D照片中获取立体物体三维信息的过程。他基本上把视觉世界简化成简单的几何形状。
他在论文中开发和描述的程序的目标是将2D照片处理成线条图,然后从这些线构建3D表示,最后显示删除了所有隐藏线的对象的3D结构。
Larry写道,从2D到3D构建,然后是3D到2D显示的过程,是未来计算机辅助3D系统研究的良好起点。他非常正确。
值得注意的是劳伦斯并没有在计算机视觉领域呆太久。相反,他后来加入了美国国防部高级研究计划局(DARPA),现在被称为互联网的发明者之一。
20世纪60年代,人工智能成为了一门学术学科,一些对该领域的未来极为乐观的研究人员认为,制造出与人类一样智能的电脑不需要25年的时间。就在这个时候,麻省理工学院人工智能实验室的教授西摩·佩珀特(Seymour Papert)决定启动 Summer Vision Project ,在几个月内解决机器视觉问题。
他认为麻省理工学院的一群学生有能力在一个夏天开发出视觉系统的重要部分。学生们在Seymour和Gerald Sussman的协调下,设计了一个能够自动进行背景/前景分割并从真实图像中提取非重叠对象的平台。
这个项目并不成功。50年后的今天,我们离解决计算机视觉还差得很远。然而,在许多人看来,这个项目是CV作为一个科学领域的正式诞生。
1982年,英国神经学家大卫·马尔(David Marr)发表了另一篇颇具影响力的论文——《Vision: a computational investigation In the human representation and processing of visual information》。
基于Hubel和Wiesel(他们发现视觉处理不是从整体对象开始的)的观点,David给了我们下一个重要的见解:他确立了视觉是层次化的。他认为,视觉系统的主要功能是创建环境的3D表示,这样我们就可以与之交互。
他提出了一种视觉框架,在该框架中,检测边缘、曲线、角落等的低级算法被用作实现对视觉数据的高级理解的跳板。
David Marr视觉表征框架包括:
- 图像的原始草图,其中表示边缘,条形,边界等(这显然受到Hubel和Wiesel研究的启发);
- 2½D草图表示,其中表面、关于图像深度和不连续性的信息被拼接在一起;
- 根据表面和体积原语分层组织的3D模型。
David Marr的作品当时是开创性的,但它非常抽象和高级。它没有包含任何可以在人工视觉系统中使用的数学建模的信息,也没有提到任何类型的学习过程。
大约在同一时间,日本计算机科学家福岛国彦(Kunihiko Fukushima)也深受Hubel和Wiesel的启发,建立了一个由简单和复杂细胞组成的自组织人工网络,可以识别模式,不受位置变化的影响。这个名为Neocognitron的网络包括几个卷积层,这些层(通常是矩形的)感受野具有权重向量(称为filters)。
这些filters的功能是在输入值的二维数组(例如图像像素)上滑动,并在执行某些计算后,生成激活事件(2D数组),这些事件将用作网络后续层的输入。
福岛的Neocognitron可以说是有史以来第一个名副其实的神经网络;它是当今convnets的前身。
几年后,也就是1989年,年轻的法国科学家扬·勒存(Yann LeCun)将一种支持式学习算法应用于福岛的卷积神经网络架构。经过几年的努力,LeCun发布了LeNet-5——第一个现代的convnet,它引入了一些我们今天仍在使用的CNN的基本成分。
LeCun决定将他的发明应用于字符识别,甚至发布了用于阅读邮政编码的商业产品。
除此之外,他的工作导致创建手写数字的MNIST数据集 - 机器学习中最著名的基准数据集。
1997年,一位名叫Jitendra Malik的伯克利教授(以及他的学生Jianbo Shi)发表了一篇论文,描述了他试图解决感知分组的尝试。
研究人员试图让机器使用图论算法将图像分割成合理的部分(自动确定图像上的哪些像素属于一起,并将对象与周围环境区分开来)。
知觉分组的问题仍然是CV专家正在努力解决的问题。
在20世纪90年代末,计算机视觉作为一个领域,在很大程度上转移了它的焦点。
大约在1999年,许多研究人员停止尝试通过创建它们的3D模型(Marr提出的路径)来重建对象,而是将他们的努力转向基于特征的对象识别。David Lowe的著作《Object Recognition from Local Scale-Invariant Features》特别说明了这一点。
论文描述了一种视觉识别系统,该系统使用对旋转,位置和部分照明变化不变的局部特征。根据Lowe的说法,这些特征有点类似于在颞下皮层中发现的神经元的特性,这些特征涉及灵长类视觉中的物体检测过程。
不久之后,在2001年,保罗·维奥拉和迈克尔·琼斯推出了第一个实时工作的人脸检测框架。虽然不是基于深度学习,但算法仍然具有深刻的学习风格,因为在处理图像时,它了解 哪些特征(非常简单,类似Haar的特征) 可以帮助定位面部。
Viola / Jones面部探测器仍被广泛使用。它是一个强大的二元分类器,由几个弱分类器构成; 在学习阶段,在这种情况下非常耗时,使用Adaboost训练弱级分类器的级联。
为了找到感兴趣的对象(人脸),该模型将输入图像分割成矩形块,并将它们全部提交给弱检测器的级联。如果一个patch通过了级联的每个阶段,它就被归为正数,如果不是,算法就会立即拒绝它。这个过程在不同的尺度上重复很多次。
论文发表五年后,富士通发布了一款基于Viola/Jones算法的实时人脸检测相机。
随着计算机视觉领域的不断发展,人们迫切需要一个基准图像数据集和标准评估指标来比较其模型的性能。
2006年,Pascal VOC项目启动。它提供了用于对象分类的标准化数据集以及用于访问所述数据集和注释的一组工具。创始人还在2006年至2012年期间举办了年度竞赛,该竞赛允许评估不同对象类识别方法的表现。
2009年,Pedro Felzenszwalb、David McAllester和Deva Ramanan开发了另一个重要的基于特征的模型—— the Deformable Part Model.
本质上,它将对象分解为多个部分的集合(基于Fischler和Elschlager在20世纪70年代引入的pictorial models),在它们之间强制执行一组几何约束,并对作为潜在变量的潜在对象中心建模。
DPM在对象检测任务(使用边界框来定位对象)和beat模板匹配以及当时流行的其他对象检测方法中表现出了出色的性能。
您可能听说过的ImageNet大型视觉识别竞赛(ILSVRC)始于2010年。继PASCAL VOC之后,它也每年运行一次,包括一个赛后研讨会,参与者讨论他们从最具创新性的条目中学到了什么。
与只有20个对象类别的Pascal VOC不同,ImageNet数据集包含超过一百万个图像,跨越1k个对象类。
自成立以来,ImageNet挑战就已经成为了在大量对象类别中进行对象类别分类和对象检测的基准。
在2010年和2011年,ILSVRC的图像分类错误率徘徊在26%左右。但在2012年,多伦多大学的一个研究小组将卷积神经网络模型(tional neural network model, AlexNet)加入了比赛,这改变了一切。该模型的架构类似于Yann LeCun的LeNet-5,错误率为16.4%。
这是CNN的突破性时刻。
在接下来的几年中,ILSVRC中图像分类的错误率下降到几个百分点,自2012年以来,获胜者一直是卷积神经网络。
正如我前面提到的,自20世纪80年代以来,卷积神经网络已经存在。那么为什么它们需要这么长时间才能变得流行呢?
我们当前的卷积神经网络(CNN)大爆发有三个因素:
- 得益于摩尔定律,与20世纪90年代LeNet-5发布时相比,我们的机器现在速度更快,功能更强大。
- NVIDIA的可并行化图形处理单元帮助我们在深度学习方面取得了重大进展。
- 最后,今天的研究人员可以访问大型,标记的高维视觉数据集(ImageNet,Pascal等)。因此,他们可以充分训练他们的深度学习模型,避免过度拟合。
结论
尽管取得了一些进展,但我们还没有解决计算机视觉问题。已经有多个医疗机构和企业找到了将由CNN驱动的CV系统应用于实际问题的方法。这种趋势不太可能很快停止。