计算机视觉的科学计算,计算机视觉发展的四个主要阶段1:马尔计算视觉

尽管人们对计算机视觉这门学科的起始时间和发展历史有不同的看法,但应该说, 1982年马尔( David Marr )《视觉》(Marr, 1982)一书的问世,标志着计算机视觉成为了一门独立学科。计算机视觉的研究内容,大体可以分为物体视觉(object vision)和空间视觉(spatial vision)二大部分. 物体视觉在于对物体进行精细分类和鉴别,而空间视觉在于确定物体的位置和形状,为“动作(action)” 服务。正像认知心理学家J.J. Gibson 所言,视觉的主要功能在于“适应外界环境,控制自身运动”。 适应外界环境和控制自身运动,是生物生存的需求,这些功能的实现需要靠物体视觉和空间视觉协调完成。

计算机视觉40多年的发展中,尽管人们提出了大量的理论和方法,但总体上说,计算机视觉经历了4个主要历程。即: 马尔计算视觉、主动和目的视觉、多视几何与分层三维重建和基于学习的视觉。下面将对这4项主要内容进行简要介绍。

马尔计算视觉(Computational Vision)

现在很多计算机视觉的研究人员,恐怕对“马尔计算视觉”根本不了解,这不能不说是一件非常遗憾的事。目前,在计算机上调“深度网络”来提高物体识别的精度似乎就等于从事“视觉研究”。事实上,马尔的计算视觉的提出,不论在理论上还是研究视觉的方法论上,均具有划时代的意义。

马尔的计算视觉分为三个层次: 计算理论、表达和算法以及算法实现。由于马尔认为算法实现并不影响算法的功能和效果,所以,马尔计算视觉理论主要讨论“计算理论”和“表达与算法”二部分内容。马尔认为,大脑的神经计算和计算机的数值计算没有本质区别,所以马尔没有对“算法实现”进行任何探讨。从现在神经科学的进展看,“神经计算”与数值计算在有些情况下会产生本质区别,如目前兴起的神经形态计算( Neuromorphological computing),但总体上说,“数值计算”可以“模拟神经计算”。至少从现在看,“算法的不同实现途径”,并不影响马尔计算视觉理论的本质属性。

1)计算理论(Computational Theory)

计算理论需要明确视觉目的, 或视觉的主要功能是什么。上世纪70年代,人们对大脑的认识还非常粗浅,目前普遍使用的非创伤型成像手段,如功能核磁共振(FMRI)等,还没有普及。所以,人们主要靠病理学和心理学结果来推断生理功能。即使目前,人们对“视觉的主要功能”到底是什么,也仍然没有定论。如近几年,MIT的 DiCarlo等人提出了所谓的“目标驱动的感知信息建模”方法(Yamins &DiCarlo et al. 2016a)。他们猜测,猴子IT区(IT: interiortemporal cortex, 物体识别区)的神经元对物体的响应(neuronal responses)“可以通过层次化的卷积神经网络”(HCNN: Hierarchical Convolutional Neural Networks )来建模。他们认为,只要对HCNN在图像物体分类任务下进行训练,则训练好的HCNN 可以很好定量预测IT 区神经元的响应(Yamins et al. 2014, 2016b)。由于仅仅“控制图像分类性能”对IT神经元响应(群体神经元对某一输入图像物体的响应,就是神经元对该物体的表达或编码)进行定量预测,所以他们将这种框架称之为“目标驱动的框架”。目标驱动的框架提供了一种新的比较通用的建模群体神经元编码的途径,但也存在很大的不足。能否像作者所言的那样,仅仅靠“训练图像分类的HCNN”就可以定量预测神经元对图像物体的响应,仍是一个有待进一步深入研究的课题。

马尔认为视觉不管有多少功能,主要功能在于“从视网膜成像的二维图像来恢复空间物体的可见三维表面形状”,称之为“三维重建”(3D reconstruction)。而且,马尔认为,这种重建过程不是天生就有的,而是可以通过计算完成的。J.J. Gibson 等心理学家,包括格式塔心里学学派( Gestalt psychology),认为视觉的很多功能是天生就有的。可以想想,如果一种视觉功能与生具有,不可建模,就谈不上计算,也许就不存在今天的“计算机视觉”这门学科了。

那么,马尔的计算理论是什么呢?这一方面,马尔在其书中似乎并不是介绍得特别具体。他举了一个购买商品的例子,说明计算理论的重要性。如商店结账要用加法而不是乘法。试想如果用乘法结账,每个商品1元钱,则不管你购买多少件商品,你仅仅需要付一元钱。

马尔的计算理论认为,图像是物理空间在视网膜上的投影,所以图像信息蕴含了物理空间的内在信息,因此,任何计算视觉计算理论和方法都应该从图像出发,充分挖掘图像所蕴含的对应物理空间的内在属性。也就是说,马尔的视觉计算理论就是要“挖掘关于成像物理场景的内在属性来完成相应的视觉问题计算”。因为从数学的观点看,仅仅从图像出发,很多视觉问题具有“歧义性”,如典型的左右眼图像之间的对应问题。如果没有任何先验知识,图像点对应关系不能确定。不管任何动物或人,生活的环境都不是随机的,不管有意识或无意识,时时刻刻都在利用这些先验知识,来解释看到的场景和指导日常的行为和行动。如桌子上放一个水杯的场景,人们会正确地解释为桌子上放了一个水杯,而不把他们看作一个新物体。当然,人类也会经常出错,如大量错觉现象。从这个意义上来说,让计算机来模仿人类视觉是否一定是一条好的途径也是一个未知的命题。飞机的飞行需要借助空气动力学知识,而不是机械地模仿鸟如何飞。

2)表达和算法(Representationand Algorithm)

识别物体之前,不管是计算机还是人,大脑(或计算机内存)中事先要有对该物体的存储形式,称之为物体表达(object representation). 马尔视觉计算理论认为,物体的表达形式为该物体的三维几何形状。马尔当时猜测,由于人在识别物体时与观察物体的视角无关,而不同视角下同一物体在视网膜上的成像又不同,所以物体在大脑中的表达不可能是二维的,可能是三维形状,因为三维形状不依赖于观察视角。另外,当时病理学研究发现,有些病人无法辨认“茶杯”,但可以毫无困难地画出茶杯的形状,因此马尔觉得,这些病人也佐证了他的猜测。从目前对大脑的研究看,大脑的功能是分区的。物体的“几何形状”和“语义”储存在不同的脑区。另外,物体识别也不是确切要与视角无关,仅仅在一个比较小的变化范围内与视角无关。所以,从当前的研究看,马尔的物体的“三维表达”猜测基本上是不正确的,至少是不完全正确的,但马尔的计算理论仍具有重要的理论意义和应用价值。

简言之,马尔视觉计算理论的“物体表达”,是指“物体坐标系下的三维形状表达”。注意,从数学上来说,一个三维几何形状,选取的坐标系不同,表达函数亦不同。如一个球体,如果以球心为坐标原点,则球面可以简单表达为:x^2+y^2+z^2=1。 但如果观测者在x轴上2倍半径处观测,则可见球面部分在观测者坐标系下的方程为:x=2-sqrt(1-y^2-z^2)。由此可见,同一物体,选用的坐标系不同,表达方式亦不同。马尔将“观测者坐标系下的三维几何形状表达”称之为“2.5维表达”,物体坐标系下的表达为“三维表达”。所以,在后续的算法部分,马尔研究了如何从图像先计算“2.5维表达”,然后转化为“三维表达”的计算方法和过程。

算法部分是马尔计算视觉的主体内容。马尔认为,从图像到三维表达,要经过三个计算层次:首先从图像得到一些基元(primal sketch), 然后通过立体视觉(stereopsis)等模块将基元提升到2.5维表达,提升到三维表达。

马尔计算理论中算法的三个计算层次,首先从图像提取边缘信息(二阶导数的过零点),然后提取点状基元(blob, 线状基元(edge)和杆状基元 (bar), 进而对这些初级基元(raw primal sketch)组合形成完整基元(full primal sketch),上述过程为视觉计算理论的特征提取阶段。在此基础上,通过立体视觉和运动视觉等模块,将基元提升到2.5维表达。将2.5维表达提升到三维表达。在马尔的《视觉》一书中,着重介绍了特征提取和2.5维表达对应的计算方法。在2.5维表达部分,也仅仅着重介绍了立体视觉和运动视觉部分。由于当双眼(左右相机)的相互位置已知时(计算机视觉中称之为相机外参数),立体视觉就转化为“左右图像点的对应问题”(image point correspondence), 所以,马尔在立体视觉部分着重介绍了图像点之间的匹配问题,即如何剔除误匹配,并给出了对应算法。

立体视觉等计算得到的三维空间点仅仅是在“观测者坐标系下的坐标”,是物体的2.5维表示。如何进一步提升到物体坐标系下的三维表示,马尔给出了一些思路,但这方面都很粗泛。如确定物体的旋转主轴等等,这部分内容,类似于后来人们提出的“骨架模型”(skeleton model)构造.

你可能感兴趣的:(计算机视觉的科学计算)