深度解读计算机视觉技术

如果有人朝你扔过来一个球,通常你会怎么办?——当然是马上把它接住。

这个问题是不是很弱智?但实际上,这一过程是最复杂的处理过程之一,实际上的过程大概如下:首先球进入人类的视网膜,一番元素分析后,发送到大脑,视觉皮层会更加彻底地去分析图像,把它发送到剩余的皮质,与已知的任何物体相比较,进行物体和纬度的归类,最终决定你下一步的行动:举起双手、拿起球(之前已经预测到它的行进轨迹)。

上述过程只在零点几秒内发生,几乎都是完全下意识的行为,也很少会出差错。因此,重塑人类的视觉并不只是单一一个困难的课题,而是一系列、环环相扣的过程。

计算机视觉技术的概念

正像其它学科一样,一个大量人员研究了多年的学科,却很难给出一个严格的定义,模式识别如此,目前火热的人工智能如此,计算机视觉亦如此。与计算机视觉密切相关的概念有视觉感知(visual perception),视觉认知(visual cognition),图像和视频理解( image and video understanding)。这些概念有一些共性之处,也有本质不同。

从广义上说,计算机视觉就是“赋予机器自然视觉能力”的学科。自然视觉能力,就是指生物视觉系统体现的视觉能力。一则生物自然视觉无法严格定义,在加上这种广义视觉定义又“包罗万象”,同时也不太符合40多年来计算机视觉的研究状况,所以这种“广义计算机视觉定义”,虽无可挑剔,但也缺乏实质性内容,不过是一种“循环式游戏定义”而已。

实际上,计算机视觉本质上就是研究视觉感知问题。视觉感知,根据维科百基(Wikipedia)的定义, 是指对“环境表达和理解中,对视觉信息的组织、识别和解释的过程”。根据这种定义,计算机视觉的目标是对环境的表达和理解,核心问题是研究如何对输入的图像信息进行组织,对物体和场景进行识别,进而对图像内容给予解释。

计算机视觉(Computer Vision, CV)是一门研究如何让计算机达到人类那样“看”的学科。更准确点说,它是利用摄像机和电脑代替人眼使得计算机拥有类似于人类的那种对目标进行分割、分类、识别、跟踪、判别决策的功能。

计算机视觉是使用计算机及相关设备对生物视觉的一种模拟,是人工智能领域的一个重要部分,它的研究目标是使计算机具有通过二维图像认知三维环境信息的能力。计算机视觉是以图象处理技术、信号处理技术、概率统计分析、计算几何、神经网络、机器学习理论和计算机信息处理技术等为基础,通过计算机分析与处理视觉信息。

通常来说,计算机视觉定义应当包含以下三个方面:

  • 1、对图像中的客观对象构建明确而有意义的描述;

  • 2、从一个或多个数字图像中计算三维世界的特性;

  • 3、基于感知图像做出对客观对象和场景有用的决策。

作为一个新兴学科,计算机视觉是通过对相关的理论和技术进行研究,从而试图建立从图像或多维数据中获取“信息”的人工智能系统。计算机视觉是一门综合性的学科,其中包括计算机科学和工程、信号处理、物理学、应用数学和统计学,神经生理学和认知科学等,同时与图像处理,模式识别,投影几何,统计推断,统计学习等学科密切相关,近年来,与计算机图形学,三维表现等学科也发生了很强的联系。

人工智能与计算机视觉

计算机视觉与人工智能有密切联系,但也有本质的不同。人工智能的目的是让计算机去看、去听和去读。图像、语音和文字的理解,这三大部分基本构成了我们现在的人工智能。而在人工智能的这些领域中,视觉又是核心。大家知道,视觉占人类所有感官输入的80%,也是最困难的一部分感知。如果说人工智能是一场革命,那么它将发轫于计算机视觉,而非别的领域。

人工智能更强调推理和决策,但至少计算机视觉目前还主要停留在图像信息表达和物体识别阶段。“物体识别和场景理解”也涉及从图像特征的推理与决策,但与人工智能的推理和决策有本质区别。

计算机视觉和人工智能的关系:

  • 第一, 它是一个人工智能需要解决的很重要的问题。

  • 第二, 它是目前人工智能的很强的驱动力。因为它有很多应用,很多技术是从计算机视觉诞生出来以后,再反运用到AI领域中去。

  • 第三, 计算机视觉拥有大量的量子AI的应用基础。

计算机视觉技术的原理

计算机视觉就是用各种成象系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。计算机视觉的最终研究目标就是使计算机能象人那样通过视觉观察和理解世界,具有自主适应环境的能力。在实现最终目标以前,人们努力的中期目标是建立一种视觉系统,这个系统能依据视觉敏感和反馈的某种程度的智能完成一定的任务。例如,计算机视觉的一个重要应用领域就是自主车辆的视觉导航,还没有条件实现象人那样能识别和理解任何环境,完成自主导航的系统。因此,人们努力的研究目标是实现在高速公路上具有道路跟踪能力,可避免与前方车辆碰撞的视觉辅助驾驶系统。

这里要指出的一点是在计算机视觉系统中计算机起代替人脑的作用,但并不意味着计算机必须按人类视觉的方法完成视觉信息的处理。计算机视觉可以而且应该根据计算机系统的特点来进行视觉信息的处理。但是,人类视觉系统是迄今为止,人们所知道的功能最强大和完善的视觉系统,对人类视觉处理机制的研究将给计算机视觉的研究提供启发和指导。因此,用计算机信息处理的方法研究人类视觉的机理,建立人类视觉的计算理论,也是一个非常重要和信人感兴趣的研究领域。

这一领域的深入研究是从20世纪50年代开始的,走的是三个方向——即复制人眼;复制视觉皮层;以及复制大脑剩余部分。

复制人眼——让计算机“去看”

目前做出最多成效的领域就是在“复制人眼”这一领域。在过去的几十年,科学家已经打造了传感器和图像处理器,这些与人类的眼睛相匹配,甚至某种程度上已经超越。通过强大、光学上更加完善的镜头,以及纳米级别制造的半导体像素,现代摄像机的精确性和敏锐度达到了一个惊人的地步。它们同样可以拍下每秒数千张的图像,并十分精准地测量距离。

但是问题在于,虽然我们已经能够实现输出端极高的保真度,但是在很多方面来说,这些设备并不比19世纪的针孔摄像机更为出色:它们充其量记录的只是相应方向上光子的分布,而即便是最优秀的摄像头传感器也无法去“识别”一个球,遑论将它抓住。

换而言之,在没有软件的基础上,硬件是相当受限制的。因此这一领域的软件才是要投入解决的更加棘手的问题。不过现在摄像头的先进技术,的确为这软件提供了丰富、灵活的平台就是了。

复制视觉皮层——让计算机“去描述”

要知道,人的大脑从根本上就是通过意识来进行“看”的动作的。比起其他的任务,在大脑中相当的部分都是专门用来“看”的,而这一专长是由细胞本身来完成的——数十亿的细胞通力合作,从嘈杂、不规则的视网膜信号中提取模式。

如果在特定角度的一条沿线上出现了差异,或是在某个方向上出现了快速运动,那么神经元组就会兴奋起来。较高级的网络会将这些模式归纳进元模式(meta-pattern)中:它是一个朝上运动的圆环。同时,另一个网络也相应而成:这次是带红线的白色圆环。而还有一个模式则会在大小上增长。从这些粗糙但是补充性的描述中,开始生成具体的图像。

使用人脑视觉区域相似的技术,定位物体的边缘和其他特色,从而形成的“方向梯度直方图”

由于这些网络一度被认为是“深不可测的复杂”,因此 在计算机视觉研究的早期,采用的是别的方式:即“自上而下的推理”模式——比如一本书看起来是“这样”,那么就要注意与“这个”类似的模式。而一辆车看起来是“这样”,动起来又是“这样”。

在某些受控的情况下,确实能够对少数几个物体完成这一过程,但如果要描述身边的每个物体,包括所有的角度、光照变化、运动和其他上百个要素,即便是咿呀学语的婴儿级别的识别,也需要难以想象的庞大数据。

而如果不用“自上而下”,改用“自下而上”的办法,即去模拟大脑中的过程,则看上去前景更加美好:计算机可以在多张图中,对一张图片进行一系列的转换,从而找到物体的边缘,发现图片上的物体、角度和运动。就像人类的大脑一样,通过给计算机观看各种图形,计算机会使用大量的计算和统计,试着把“看到的”形状与之前训练中识别的相匹配。

科学家正在研究的,是让智能手机和其他的设备能够理解、并迅速识别出处在摄像头视场里的物体。如上图,街景中的物体都被打上了用于描述物体的文本标签,而完成这一过程的处理器要比传统手机处理器快上120倍。

随着近几年并行计算领域的进步,相关的屏障逐渐被移除。目前出现了关于模仿类似大脑机能研究和应用的爆发性增长。模式识别的过程正在获得数量级的加速,我们每天都在取得更多的进步。

复制大脑剩余部分——让计算机“去理解”

当然,光是“识别”“描述”是不够的。一台系统能够识别苹果,包括在任何情况、任何角度、任何运动状态,甚至是否被咬等等等等。但它仍然无法识别一个橘子。并且它甚至都不能告诉人们:啥是苹果?是否可以吃?尺寸如何?或者具体的用途。

前面说过,没有软件,硬件的发挥非常受限。但现在的问题是,即便是有了优秀的软硬件,没有出色的操作系统,也“然并卵”。

对于人们来说,大脑的剩余部分由这些组成,包括长短期记忆、其他感官的输入、注意力和认知力、从世界中万亿级别的交互中收获的十亿计知识,这些知识将通过我们很难理解的方式,被写入互联的神经。而要复制它,比起我们遇到过的任何事情都要更加复杂。

计算机视觉技术的图像处理方法

计算机视觉系统中,视觉信息的处理技术主要依赖于图像处理方法,它包括图像增强、数据编码和传输、平滑、边缘锐化、分割、特征抽取、图像识别与理解等内容。经过这些处理后,输出图像的质量得到相当程度的改善,既改善了图像的视觉效果,又便于计算机对图像进行分析、处理和识别。

图像的增强

图像的增强用于调整图像的对比度,突出图像中的重要细节,改善视觉质量。通常采用灰度直方图修改技术进行图像增强。图像的灰度直方图是表示一幅图像灰度分布情况的统计特性图表,与对比度紧密相连。通过灰度直方图的形状,能判断该图像的清晰度和黑白对比度。如果获得一幅图像的直方图效果不理想,可以通过直方图均衡化处理技术作适当修改,即把一幅已知灰度概率分布图像中的像素灰度作某种映射变换,使它变成一幅具有均匀灰度概率分布的新图像,实现使图像清晰的目的。

图像的平滑

图像的平滑处理技术即图像的去噪声处理,主要是为了去除实际成像过程中因成像设备和环境所造成的图像失真,提取有用信息。众所周知,实际获得的陶像在形成、传输、接收和处理的过程中,不可避免地存在着外部干扰和内部干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程的量化噪声、传输过程中的误差以及人为因素等.均会使图像变质。因此,去除噪声,恢复原始图像是图像处理中的一个重要内容。

图像的数据编码和传输

数字图像的数据量是相当庞大的,一幅512。512个像素的数字图像的数据量为256 K字节,若假设每秒传输25帧图像,则传输的信道速率为52.4M比特/秒。高信道速率意味瞢高投资,也意味著普及难度的增加,因此。传输过程中,对图像数据进行压缩显得非常重要。数据的压缩主要通过图像数据的编霄和变换压缩完成。图像数据编码一般采用预测编码.即将图像数据的空间变化规律和序列变化规律用一个预测公式表示.如果知道了,某一像素的前面各相邻像素值之后.可以用公式预测该像素值。该方法可将一幅图像的数据压缩到为数不多的几十个特传输,在接收端再变换回去即可。

边缘锐化

图像边缘锐化处理主要是加强图像中的轮廓边缘和细节,形成完整的物体边界.达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。它是早期视觉理论和算法中的基本问题.也是中期和后期视觉成败的重要因素之一。

图像的分割

图像分割是将图像分成若干部分,每一部分对应于某一物体表面.在进行分割时.每一部分的灰度或纹理符合某一种均匀测度度量。某本质是将像素进行分类。分类的依据是像素的灰度值、颜色、频谱特性、空间特性或纹理特性等。图像分割是图像处理技术的基本方法之一,应用于诸如染色体分类、景物理解系统、机器视觉等方面。图像分割主要有两种方法:一是鉴于度量宅问的灰度闾值分割法。它是根据图像灰度直方图来决定图像空间域像素聚类。二是空间域区域增长分割方法。它是对在某种意义上(如灰度级、组织、梯度等)具有相似性质的像素连通集构成分割区域,该方法有很好的分割效果,但缺点是运算复杂.处理速度慢。

数据驱动的分割

常见的数据驱动分割包括基于边缘检测的分割、基于区域的分割、边缘与区域相结合的分割等。对于基于边缘检测的分割,其基本思想是先检测图像中的边缘点,再按一定策略连接成轮廓,从而构成分割区域。难点在于边缘检测时抗噪声性能和检测精度的矛盾,若提高检测精度,则噪声产生的伪边缘会导致不合理的轮廓;若提高抗噪声性能,则会产生轮廓漏检和位置偏差。为此,人们提出各种多尺度边缘检测方法,根据实际问题设计多尺度边缘信息的结合方案,以较好地兼顾抗噪声性能和检测精度。

基于区域的分割的基本思想是根据图像数据的特征将图像空间划分成不同的区域。常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征。方法有阈值法、区域生长法、聚类法、松弛法等。

边缘检测能够获得灰度或彩色值的局部变化强度,区域分割能够检测特征的相似性与均匀性。将两者结合起来,通过边缘点的限制,避免区域的过分割;同时通过区域分割补充漏检的边缘,使轮廓更加完整。例如,先进行边缘检测与连接,再比较相邻区域的特征(灰度均值、方差),若相近则合并;对原始图像分别进行边缘检测和区域生长,获得边缘图和区域片段图后,再按一定的准则融合,得到最终分割结果。

模型驱动的分割

常见的模型驱动分割包括基于动态轮廓(Snakes)模型、组合优化模型、目标几何与统计模型。Snakes模型用于描述分割目标的动态轮廓。由于其能量函数采用积分运算,具有较好的抗噪声性,对目标的局部模糊也不敏感,因而适用性很广。但这种分割方法容易收敛到局部最优,因此要求初始轮廓应尽可能靠近真实轮廓。

近年来对通用分割方法的研究倾向于将分割看作一个组合优化问题,并采用一系列优化策略完成图像分割任务。主要思路是在分割定义的约束条件之外,根据具体任务再定义一个优化目标函数,所求分割的解就是该目标函数在约束条件下的全局最优解。以组合优化的观点处理分割问题,主要是利用一个目标函数综合表示分割的各种要求和约束,将分割变为目标函数的优化求解。由于目标函数通常是一个多变量函数,可采用随机优化方法。

基于目标几何与统计模型的分割是将目标分割与识别集成在一起的方法,常称作目标检测或提取。基本思想是将有关目标的几何与统计知识表示成模型,将分割与识别变为匹配或监督分类。常用的模型有模板、特征矢量模型、基于连接的模型等。这种分割方法能够同时完成部分或全部识别任务,具有较高的效率。然而由于成像条件变化,实际图像中的目标往往与模型有一定的区别,需要面对误检与漏检的矛盾,匹配时的搜索步骤也颇为费时。

图像的识别

图像的识别过程实际上可以看作是一个标记过程,即利用识别算法来辨别景物中已分割好的各个物体.给这螳物体赋予特定的标记,它是汁算机视觉系统必须完成的一个任务。按照网像识别从易到难.町分为i类问题?第一类识别问题中.图像中的像素表达了某一物体的某种特定信息。第二类问题中,待识别物是有形的整体。二维图像信息已经足够识别该物体.如文字识别、某些具有稳定可视表面的三维体识别等。第三类问题是由输入的二维图、要素图、2x5维图等.得出被测物体的三维表示。这里存着如何将隐含的三维信息提取出来的问题.当是今研究的热点。

目前用于图像识别的方法主要分为决策理论和结构方法。决策理论方法的基础是决策函数,利用它对模式向量进行分类识别.是以定时描述(如统计纹理)为基础的:结构方法的核心是将物体分解成』'模式或模式基元,而不同的物体结构有不同的基元串(或称字符串),通过对未知物体利用给定的模式基元求出编码边界,得到字符串,冉根据字符串判断它的属类。这是一种依赖于符号描述被测物体之间关系的方法。

计算机视觉的应用领域

计算机视觉的应用领域主要包括对照片、视频资料如航空照片、卫星照片、视频片段等的解释、精确制导、移动机器人视觉导航、医学辅助诊断、工业机器人的手眼系统、地图绘制、物体三维形状分析与识别及智能人机接口等。

早期进行数字图像处理的目的之一就是要通过采用数字技术提高照片的质量,辅助进行航空照片和卫星照片的读取判别与分类。由于需要判读的照片数量很多,于是希望有自动的视觉系统进行判读解释,在这样的背景下,产生了许多航空照片和卫星照片判读系统与方法。自动判读的进一步应用就是直接确定目标的性质,进行实时的自动分类,并与制导系统相结合。目前常用的制导方式包括激光制导、电视制导和图像制导,在导弹系统中常常将惯性制导与图像制导结合,利用图像进行精确的末制导。

工业机器人的手眼系统是计算机视觉应用最为成功的领域之一,由于工业现场的诸多因素,如光照条件、成像方向均是可控的,因此使得问题大为简化,有利于构成实际的系统。与工业机器人不同,对于移动机器人而言,由于它具有行为能力,于是就必须解决行为规划问题,即是对环境的了解。随着移动式机器人的发展,越来越多地要求提供视觉能力,包括道路跟踪、回避障碍、特定目标识别等。目前移动机器人视觉系统研究仍处于实验阶段,大多采用遥控和远视方法。

在医学上采用的图像处理技术大致包括压缩、存储、传输和自动/辅助分类判读,此外还可用于医生的辅助训练手段。与计算机视觉相关的工作包括分类、判读和快速三维结构的重建等方面。长期以来,地图绘制是一件耗费人力、物力和时间的工作。以往的做法是人工测量,现在更多的是利用航测加上立体视觉中恢复三维形状的方法绘制地图,大大提高了地图绘制的效率。同时,通用物体三维形状分析与识别一直是计算机视觉的重要研究目标,并在景物的特征提取、表示、知识的存储、检索以及匹配识别等方面都取得了一定的进展,构成了一些用于三维景物分析的系统。

近年来,基于生物特征(biometrics)的鉴别技术得到了广泛重视,主要集中在对人脸、虹膜、指纹、声音等特征上,这其中大多都与视觉信息有关。与生物特征识别密切相关的另一个重要应用是用于构成智能人机接口。现在计算机与人的交流还是机械式的,计算机无法识别用户的真实身份,除键盘、鼠标外,其他输入手段还不成熟。利用计算机视觉技术可以使计算机检测到用户是否存在、鉴别用户身份、识别用户的体势(如点头、摇头)。此外,这种人机交互方式还可推广到一切需要人机交互的场合,如入口安全控制、过境人员的验放等。

微信公众号微信公众号