第五章基于几何光学的单幅二维图像深度估计第五章基于几何光学的单幅二维图像深度估计由上一章的内容可知,图像大小恒常性计算的关键在于正确地估计二维图像的深度。
二维图像深度估计也是计算视觉中的重点与难点。
视觉心理学家通过经验观察和对人的统计实验,总结了人类视觉系统深度感知规律。
在上一章的实验表明,应用这些规律建立的单幅二维图像深度模型基本上是有效的,但也存在一些没有很好解决的矛盾,如各种深度线索间的冲突。
其次,这些规律是建立在人的主观实验之上的,本质上也需要进一步从物理学的角度进行解释。
再次,虽然照相机与人眼在光学成像原理上是基本相同的,但在实现细节上还是存在一些差异。
所以本章从几何光学出发,提出了一种基于几何光学的二维图像深度计算方法,并与上一章的基于心理学的深度模型实验结果进行比较,探讨心理学结论应用到计算机视觉问题中的适应性问题。
5.1 引言尽管学者已从不同的角度对二维图像深度估计问题进行了卓有成效的研究,基于单幅图像(Single-image based)的深度计算仍然是一个挑战性问题。
现有的各种方法都存在一定的局限性。
用阴影求深度方法(Depth from shading)依赖太多的假定[Forsyth 2003, pp80-85][Castelan 2004][严涛2000]。
在这些假定中,多数假定与客观世界的自然场景不完全一致。
用模型求深度的方法(Depth from model)需要物体或场景模型的先验知识[Jelinek 2001][Ryoo 2004][Wilczkowiak 2001]。
当物体或场景很难建模,或者模型库变得很大时,这种方法就会失效。
用机器学习求深度的方法(Depth from learning)要对大量的范例进行训练[Torralba 2002][Battiato 2004][Nagai 2002],而且它们的泛化能力是很弱的。
用主动视觉求深度方法(Depth from active vision)如编码结构光(Coded structured light)、激光条纹(Laser stripe scanning)扫描等需要昂贵的辅助光源设备来产生显著的对应点(对应元素)[Forsyth 2003, pp467-491][Wong 2005][Nehab 2005]。
它轻易解决了图像体视匹配(Image stereo matching)难题,代价是丢失了物体或场景的其它的重要表面属性,如强度、颜色、纹理等。
各种方法的比较见本章表5-4。
然而,人类视觉系统能轻易地、完美地感知单幅图像深度,即使只用一只眼睛看图片时也是如此。
而且,人类视觉系统在完成这项任务时,好像毫不费65视觉心理学在计算机视觉中的应用研究力,也不需要意识努力,基本上是自动的加工过程。
故可以断言,人类视觉系统使用了某种固定的、简单的图像深度感知规则,并避免了复杂的计算。
以此类推,计算机自动估计单幅图像深度也应该是非常简单,非常准确的,其计算量也应该是非常小的。
基于这些考虑,我们先从分析人类视觉的成像特点及观察习惯开始。
5.2 感知深度及模型在本章上述介绍的方法中,图像点的深度被定义为该图像点对应的场景点到相机光心(Pinhole)的距离。
实际上,这种对图像点深度的定义与人的感知习惯是不一致的。
根据视觉心理学理论与人们的日常体会,人类视觉基本上在无意识水平上运用三个规则来估计自我(Ego)与场景物体间的距离。
首先,人眼位于头上,而头又在身体上,身体由四肢支撑,四肢站在地面上[Gibson 1979, pp111, 205]。
这意味着,人眼在观察时离地面有一定的高度。
类似的,人们在照相时,相机光心(Pinhole)离地面也有一定的高度。
即使趴在地上照相,也是如此,因为相机本身具有一定的高度。
在本章的研究中,我们特别强调相机光心离地面的高度,这是第一条规则。
其次,人类视觉把人脚到物体脚之间的距离感知为物体的深度(脚到脚,foot-to-foot),而不是人身体的其它部分到物体的其它部分的距离。
这是因为支持物体的地面是人类视觉深度感知最重要的参考面[Gibson 1979, pp156-164]。
例如,图5-1中的场景点P’, Q’有相同的深度,因为两点在同一竖线上,它们有相同的脚。
最后,如果在平坦地面上的直线与视网膜平面(即像平面,Imaging plane)平行,那么在这条直线上所有的点将会被感知有相同的深度。
这是因为当估计物体的距离时,人类视觉系统通常会调整或想象调整头或身体以保持眼睛正对着物体(面对面,Face-to -face) [Gibson 1979, pp111-126]。
例如,图5-1中直线L1与像平面Ⅱ平行,所以在L1上的点都与点P’有相同的深度。
这样,整个图像深度的估计便归结为垂直中轴线上各点的深度估计。
根据这些说明,我们把图像点的深度定义为遵守上述三条规则的、图像点对应场景点到相机光心的距离,而且称这种深度为感知深度(Perceived Depth, 缩写为PD)。
例如,图5-1中,图像点P的感知深度是场景点P’到点E(相机光心在地面的投影点)的物理距离。
这种定义与本文4.5.4中的实验结果是一致的。
现在给出本章使用的图像感知深度(PD)估计模型,见图5-1。
这个模型的输66第五章 基于几何光学的单幅二维图像深度估计67入是单幅由被动视觉方法得到的二维图像;它的输出是图像垂直中轴线上各点的深度,这代表整个图像的深度;相机模型是考虑实际地面的针孔成像模型,在此模型中,相机离地面的高度是重要的深度感知因素;相机像平面被假定是与实际地面垂直的(后面的实验表明这个假定是不必要的)。
地面被假定是平的,这合乎人的感知经验[Gibson 1979, pp10,33,131]。
因为我们的目的仅是验证感知深度估计模型的有效性,所以对图像中的地面、物体等区域的分离都是手工进行的,因为图像分割技术目前还不是很成熟。
这个感知深度模型有很多实际应用,如移动机器人定位、基于计算机视觉的车辆自动导航和上一章的大小恒常性计算等。
在这些应用中,地面几乎是理想平坦的。
其实,日常生活中,平坦的视觉局部参考地面是处处存在的。
当我们观察桌子上的物品时,桌子就是参考地面。
当我们欣赏湖光水色时,水面就是理想参考地面。
当我们散步时,路面就是理想参考地面。
图5-1 考虑实际地面的相机针孔成像模型示意图(图像平面的比例被相对放大了)。
在此模型中,相机光心离地面的物理高度(h c )是重要的感知因素。
像平面(Image plane )Ⅱ中的点U, P, Q 分别是场景点U ’, P ’, Q ’ 所对应的像点。
实际地平面Ⅰ被假定是理想平面。
通过场景点E , U ’, P ’ 的直线是相机光轴(Optical axis )在地平面Ⅰ上的垂直投影,其中点E 是相机针孔 (Pinhole) O 在地平面Ⅰ上的垂直投影。
点P, P ’, U,U ’,Q,Q ’,E,A,V 与针孔O 共面,这个平面记作Ⅲ,它既垂直于平面Ⅰ又垂直于平面Ⅱ。
灭点(Vanishing point )V 是相机光轴穿过相机图像平面Ⅱ所形成的交点,它一般位于平面Ⅱ的中心,即相机胶卷平面的中心。
像平面Ⅱ的中间线L 3把整个图像平面分成两部分:图像天空(Image sky ,下面部分)与图像地面(Image ground, 上面部分)。
h g 是图像地面的图像高度,h p 是图像点的图像高度(图像高度的概念在本章5.3介绍)。
z p 是的图像点P 感知深度(PD )。
视觉心理学在计算机视觉中的应用研究5.3 基于几何光学的感知深度估计根据几何光学知识与图5-1中的成像模型,客观世界中位于实际天空与实际地面之间的地平线(灭线),一定会沿着光轴投影到像平面Ⅱ上,并形成一条直线,记作L3。
该线也一定会与地面平行(见图5-1)。
如第四章4.2节所述,称L3为像平面的中间线,并称L3的中点为像平面的灭点(Vanishing point),因为该点具有最大的感知深度。
L3也必然将像平面分成两部分:图像地面与图像天空,它们分别是由实际的地面与实际的天空投影形成的。
在本章中,我们仅计算图像地面的PD图,图像天空的PD图可用完全相同的方式来计算。
因为机械相机的胶片或数码相机的CCD图像传感器通常是矩形的,它们的尺寸是有限的,像平面顶部边界L4上点的PD在图像地面中是最小的,等于从场景点E到场景直线L2的距离,因为直线L2投影产生像平面顶部边界L4(见图5-1)。
所以我们称L4的中点U为像平面Ⅱ的近点(Closest point),因在图像地面中点U的PD值最小。
按照PD的定义,像平面上位于同一行(水平线)上的像点的PD是相同的,所以计算整个图像地面的PD图便归结为计算线段UV上每一像点的PD。
设点P是线段UV上的任意一个像点,下面我们来推导点P的PD 的计算公式。
根据图5-1成像模型,像平面Ⅱ上的像点U, P, V,针孔O,及地平面Ⅰ上的场景点P’, U’, E是共面的,记作平面Ⅲ。
根据平面几何知识,三角形POV与三角形OP’E是相似的,即,△POV ∽△OP’E (5-1)我们把点P到中间线L3在图像平面上的距离称作图像高度(Image Height),并记作h p(也即像平面Ⅱ上线段PV的长度,单位毫米)。
点P的PD(感知深度)是场景点P’到点E在实际地平面Ⅰ上的距离),并记作z P (也即线段的P’E长度,单位米)。
从O到Ⅱ的距离记作f(也即线段OV的长度,单位毫米)。
从相机针孔O到地平面Ⅰ为相机高度记作h c (也即线段OE)的长度(单位米)。
因此,将这些记号代入式(5-1),可得到下式:z p = h c×f / h p(5-2)68第五章基于几何光学的单幅二维图像深度估计然而,在图像中,h p通常使用像素单位(Pixel unit), 在此单位下,记它的值为h p-pixel。
不失一般性,设CCD传感器上每像素的高度是s毫米,s的单位是毫米/像素,则有h p = s×h p-pixel(5-3)现将式(5-3)代入式(5-2),可得到z p = k / h p-pixel(5-4)这里k = h c×f /s对每一输入图像是一常量,所以z p能被1/h p-pixel唯一决定,这就是像点P的相对感知深度(PD)。
如图5-1所示,记整个图像地面的图像高度为h g,单位是像素。
不失一般性,可设输入图像是直立(即图像天空在图像的上部,而图像地面在图像的下部),输入图像矩阵维数为m×n (宽×高),单位为像素,坐标原点在图像矩阵的左上角。
同时设像点P的矩阵坐标为(p x , p y),图像地面的图像高度记为h g,则有h p-pixel =|p y –n+h g|,代入式(5-4),可得z p = k / | p y–n + h g|(5-5)因为像平面Ⅱ被假定是与实际地平面Ⅰ垂直的,而且CCD传感器通常在制造时是对称的,这就能保证灭点V与CCD传感器的中心位置对齐。