计算机视觉(Computer Vision)研究如何让计算机可以像人类一样去理解图片、视频等多媒体资源内容。例如用摄影机和计算机代替人眼对目标进行识别、
跟踪和测量等,并进一步处理成更适合人眼观察或进行仪器检测的图像。
-
图像处理和计算机视觉
图像处理:对输入的图像做某种变换,输出仍然是图像,基本不涉及或者很少涉及图像内容的分析。比较典型的有图像变换,图像增强,图像去噪,图
像压缩,图像恢复,二值图像处理等。
计算机视觉:对图像的内容进行分析,提取出有意义的特征,再对得到的特征进行分析,提取场景的语义表示,从而让计算机具有人眼和人脑的能力。
它处理的是多幅图像或者序列图像,当然也包括部分单幅图像。
计算机视觉更关注于图像中的高层语义,可以认为是图像理解。图像处理关注于图像中的低层信息,不涉及理解。另外,计算机视觉中还包括三维重建
等不包含在图像处理中的内容。如今计算机视觉跟机器学习,模式识别,深度学习等紧密相关,图像处理可以是计算机视觉的一个小的部分。
-
计算机视觉发展史
1. 二维数字图像的分析和识别
20世纪50年代,Russell和他的同学研制了一台可以把图片转化为被二进制机器所理解的灰度值的仪器——这是第一台数字图像扫描仪,使处理数
字图像开始成为可能。这一时期,研究的主要对象如光学字符识别、工件表面、显微图片和航空图片的分析和解释等。
2. 三维视觉理解
20世纪60年代,人们已不满足于仅对图像进行简单的处理,而是希望计算机能像人一样去理解图像的内容,描述它所看到的东西,更具体来讲就是
希望计算机能回答:目标是什么、目标在三维空间中的位置关系、目标的三维形状及其改变、目标的位移、符号。
首先想到的是从人类看东西的方法中获得借鉴:
1)当时人们认为,人类能看到并理解事物,是因为人类通过两只眼睛可以立体地观察事物。因此要想让计算机理解它所看到的图像,必须先将事物
的三维结构从二维的图像中恢复出来,这就是所谓的“三维重建”的方法。
2)人们认为人之所以能识别出一个苹果,是因为人们已经知道了苹果的先验知识,比如苹果是红色的、圆的、表面光滑的,如果给机器也建立一个
这样的知识库,让机器将看到的图像与库里的储备知识进行匹配,是否可以让机器识别乃至理解它所看到的东西呢?这是所谓的“先验知识库”。
1965年,Lawrence Roberts在《三维固体的机器感知》描述了从二维图片中推导三维信息的过程。这本书被广泛认为是现代计算机视觉的前导之一,
开创了理解三维场景为目的的计算机视觉研究。利用计算机程序将数字图像处理成线条,然后把这些物体表示为基本几何形状的组合,再到知识库中
去搜索可能的视角投影,跟待识别的图像进行匹配。
3. 马尔计算机视觉理论
1977年David Marr在MIT的AI实验室提出了计算机视觉理论(Computational Vision),这是与Lawrence Roberts当初引领的积木世界分析方法截然
不同的理论。计算机视觉理论成为80年代计算机视觉重要理论框架,标志着计算机视觉成为了一门独立的学科。
Marr将系统分为基元图、2.5维图(部分的、不完整的三维信息,缺少深度信息)和三维模型三个层次来表达视觉信息的处理过程,而每层的表达将
适当的信息明朗化。
1)基元图:使亮度变化(边沿)的信息明朗化,如角点、边缘、纹理、线条、边界等基本特征。
2)2.5维图:使表面朝向的信息明朗化,如场景可见部分的深度、法线方向、轮廓等。
3)三维模型:物体的形状与空间位置信息明朗化。
马尔认为,大脑的神经计算和计算机的数值计算没有本质区别,所以,马尔没有对“算法实现”进行任何探讨。从现在神经科学的进展看,神经计算
与数值计算在有些情况下会产生本质区别。
4. 多视几何与分层三维重建
多视图几何是主要研究用几何的方法,通过若干幅多视图几何二维图像,来恢复三维物体。
分层三维重建,就是指从多幅二维图像恢复欧几里德空间的三维结构,不是从图像一步到欧几里德空间下的三维结构,而是分步分层地进行。即先
从多幅图像的对应点重建射影空间下的对应空间点,然后把射影空间下重建的点提升到仿射空间下,最后把仿射空间下重建的点再提升到欧几里德
空间。
5. 基于学习的视觉
指以机器学习为主要技术手段的计算机视觉研究。基于学习的视觉研究,文献中大体上分为二个阶段:21世纪初的以流形学习( manifold Learning)
为代表的子空间法( subspace method)和目前以深度神经网络和深度学习(deep neural networks and deep learning)为代表的视觉方法。
深度学习是人工神经网络的一个分支,具有深度网络结构的人工神经网络是深度学习最早的网络模型。
1980年,基于传统的感知器结构,深度学习创始人杰弗里·辛顿采用多个隐含层的深度结构来代替代感知器的单层结构,多层感知器模型是其中最
具代表性的,而且多层感知器也是最早的深度学习网络模型。
1986年,深度学习之父杰弗里·辛顿提出了一种适用于多层感知器的反向传播算法——BP算法。BP算法在传统神经网络正向传播的基础上,增加了
误差的反向传播过程。反向传播过程不断地调整神经元之间的权值和阈值,直到输出的误差减小到允许的范围之内。
但是由于八十年代计算机的硬件水平有限,如:运算能力跟不上,这就导致当神经网络的规模增大时,再使用BP算法会出现“梯度消失”的问题,很
容易在训练网络参数时收敛于局部极小值。此外,反向传播法训练网络需要大量的标签样本,权值的修正随着反向传播层数的增加逐渐削弱。这使得
BP算法的发展受到了很大的限制。再加上90年代中期,以SVM为代表的其它浅层机器学习算法被提出,并在分类、回归问题上均取得了很好的效果,其
原理又明显不同于神经网络模型,所以人工神经网络的发展进入了瓶颈期。
浅层学习模型能够有效地解决简单或者具有复杂条件限制的问题,但受限于只含一个隐含层,所以浅层学习模型特征构造的能力有限,不能有效处理
包含复杂特征的问题。2006年,杰弗里·辛顿提出了深度学习的概念,随后与其团队在文章《A fast Learning Algorithm for Deep Belief Nets》中
提出了深度学习模型之一——深度信念网络(DBN),并给出了一种高效的半监督算法:逐层贪心算法,来训练深度信念网络的参数,打破了长期以来深
度网络难以训练的僵局。受DBN方法的启发,2007年,另一位深度学习大牛Benigo将DBN中的每层RBM替换为自动编码机,提出了层叠自动编码机(SAE)
的深度结构。此时,深度学习的三种常用的基本架构就是DBN结构、SAE结构与1998年LeCun提出的卷积神经网络结构(CNN)。
. 2012年,在著名的ImageNet图像识别大赛中,杰弗里·辛顿领导的小组采用深度学习模型AlexNet一举夺冠。AlexNet采用ReLU激活函数,从根本上解决
了梯度消失问题,并采用GPU极大的提高了模型的运算速度。
随着深度学习技术的不断进步以及数据处理能力的不断提升,2014年,Facebook基于深度学习技术的DeepFace项目,在人脸识别方面的准确率已经能达
到97%以上,跟人类识别的准确率几乎没有差别。这样的结果也再一次证明了深度学习算法在图像识别方面的一骑绝尘。
-
计算机视觉的主要研究方向
计算机视觉本身包括了诸多不同的研究方向,比较基础和热门的几个方向主要有:
1. 图像分类:给定一组各自被标记为单一类别的图像,我们对一组新的测试图像的类别进行预测,并测量预测的准确性结果。图像分类问题需要面临以
下几个挑战:视点变化,尺度变化,类内变化,图像变形,图像遮挡,照明条件和背景杂斑。目前较为流行的图像分类架构是卷积神经网络(CNN),
将图像送入网络,然后网络对图像数据进行分类。在2012年出现的AlexNet网络之后,又涌现了很多种使用卷积神经网络作为核心,并取得优秀成果的
模型,如 ZFNet(2013),GoogLeNet(2014), VGGNet(2014), RESNET(2015),DenseNet(2016)等。
2. 物体识别和检测(Object Detection):给定一张输入图片,算法能够自动找出图片中的常见物体,并将其所属类别及位置输出出来,简言之,就
是将物体在原图中框出。因此,衍生了人脸检测、车辆检测、文字识别等细分检测算法。常用的模型有R-CNN,Fast R-CNN,近年来,主要的目标检
测算法已经转向更快、更高效的检测系统。这种趋势在 You Only Look Once(YOLO),Single Shot MultiBox Detector(SSD)和基于区域的全卷
积网络( R-FCN )算法中尤为明显,这三种算法转向在整个图像上共享计算。
3. 语义分割(Semantic Segmentation):将输入图像的每一个像素点进行归类,用一张图可以清晰地描述出来其内层意义。例如,我们可能需要区分
图像中属于汽车的所有像素,并把这些像素涂成蓝色。常用的模型有全卷积网络( FCN ),SegNet等。
4. 运动和跟踪(Motion & Tracking):在一段给定的视频中,在第一帧给出被跟踪物体的位置及尺度大小,在后续的视频当中,跟踪算法需要从视频
中寻找被跟踪物体的位置,并适应视频中光照变化、运动模糊及表观的变化等。而实际上,跟踪是一个不适定问题,比如跟踪一辆车,如果从车尾开
始跟踪,如果车辆在行进过程中外观发生很大变化,如旋转180度,现在的跟踪算法可能会出现“跟丢”的情况。所以,这一研究领域还有极大提升空
间,也不属于非常热门的方向。鉴于 CNN 在图像分类和目标检测方面的优势,它已成为计算机视觉和视觉跟踪的主流深度模型。 一般来说,大规模
的卷积神经网络可作为分类器和跟踪器来训练。具有代表性的跟踪算法有全卷积网络跟踪器( FCNT )和多域卷积神经网络( MD Net )。
5. 视觉问答(Visual Question & Answering):视觉问题的研究目的是根据输入图像,由用户进行提问,而算法自动根据提问内容进行回答。除此之
外,还有一种标题生成算法,即计算机根据图像自动生成一段描述该图像的文本,而不进行问答。对于此类跨越两种数据形态(如文本和图像)的算
法,也可称之为多模态或跨模态问题。
6. 动作识别(Action Recognition):识别视频中的动作是一个充满挑战而又具有较高实际应用价值的任务。相比图像来说,视频内容和背景更加复杂
多变,不同的动作类别之间具有相似性,而相同的类别在不同环境下又有着不同的特点。此外,由于拍摄造成的遮挡、抖动、视角变化等也为动作识别
进一步带来了困难。在实际应用中,精确的动作识别有助于舆情监控,广告投放,以及很多其他视频理解相关的任务。
7. 三维重建(3D Reconstruction):通过摄像机获取场景物体的二维数据图像,并对此图像进行分析处理,再结合计算机视觉知识推导出现实环境中
物体的三维信息。
2D视觉领域几乎被基于学习的方法统治,尤其是深度学习;3D视觉领域仍以基于几何的方法为主,比如三维重建、视觉SLAM等。