
3.4 立体视觉成像
立体视觉是人类视觉功能之一,主要指人通过双眼观察获得深度信息。在计算机视觉中,利用双目成像可获得同一场景的两幅视点不同的图像(类似人眼),从而可进一步获得深度信息。双目成像模型可看作由两个单目成像模型组合而成的模型。在实际成像时,既可用两个单目系统同时采集,也可用一个单目系统先后在两个位姿状态下分别采集(这时一般设被摄物和光源没有运动变化)。另外,还可以利用多个摄像机构成多目成像系统,但其基本原理与双目成像系统类似,下面仅讨论双目成像。
根据两个摄像机相对位姿的不同,双目成像可有多种模式,下面介绍几种典型的情况。
3.4.1 双目横向模式
图3-9给出双目横向模式成像示意。两个镜头(可能包含多个透镜)的焦距均为λ,其中心之间的连线称为系统的基线B。两个摄像机坐标系的各对应轴是完全平行(X轴重合)的,两个像平面均与世界坐标系的XY平面平行。一个3D空间点W的Z坐标在两个摄像机坐标系下是一样的。
1.视差与深度
由图3-9可见,同一个3D空间点分别成像在两个像平面上,这两个像点(与各自坐标参考点)之间的位置差称为视差。下面借助图3-10讨论双目横向模式中视差与深度(物距)之间的关系,这里给出两个镜头连线所在平面(XZ平面)的示意图。其中,世界坐标系与第一个摄像机坐标系重合,与第二个摄像机坐标系仅在X轴方向上有一个平移量B。

图3-9 双目横向模式成像示意

图3-10 双目横向成像中的视差
考虑3D空间点W的坐标X与在第一个像平面上投影点坐标x1间的几何关系可得

再考虑3D空间点W的坐标X与在第二个像平面上投影点坐标x2间的几何关系可得

两式联立,消去X,得到视差:

从中解出Z为

式(3-30)把物体与像平面的距离Z(3D信息中的深度)同视差d直接联系起来。反过来也表明视差的大小与深度有关,即视差中包含了3D物体的空间信息。根据式(3-30),当已知基线和焦距时,在确定视差d后计算点W的Z坐标是很简单的。另外,在Z坐标确定后,点W的世界坐标X和Y可用(x1,y1)或(x2,y2)参照式(3-27)或式(3-28)算得。
❑ 例3-2 相对深度的测量误差
式(3-30)给出了绝对深度与视差的关系表达。借助微分,可知深度变化与视差变化的关系为

两边同乘以1/Z,则

所以,

如果视差与视差变化均以像素为单位测量,则可知在场景中对相对深度的测量误差①正比于像素尺寸,②正比于深度Z,③反比于摄像机间基线B的长度。
另外,还可由式(3-32)得到

可见相对深度的测量误差和相对视差的测量误差在数值上是相等的。❑
❑ 例3-3 两个摄像机的测量误差
假设用两个摄像机观察一个具有局部半径为r的圆形截面的圆柱形物体,如图3-11所示。两个摄像机视线的交点与圆形截面边界点之间有一定的距离,这就是误差δ,现在要获得计算误差δ的公式。

图3-11 计算测量误差的几何结构示意
为简化计算,假设边界点在连接两个摄像机投影中心的正交平分线处。简化后的几何结构如图3-12(a)所示,误差的细节图如图3-12(b)所示。
由图3-12可得,d=rsec(θ/2)-r,tan(θ/2)=B/2Z,把θ替换掉,得到

可见,误差正比于r和Z-2。

图3-12 简化后的计算测量误差的几何结构示意
2.角度扫描成像
在双目横向模式中,为确定3D空间点的信息,需要保证该点处于两个摄像机的公共视场内。如果让两个摄像机(绕X轴)旋转,可增加公共视场并采集全景图像。这可称为用角度扫描摄像机进行立体镜成像,即双目角度扫描模式,其中成像点的坐标是由摄像机的方位角和仰角确定的。在图3-13中,θ1和θ2为方位角(对应绕由纸面向外的Y轴的扫视运动),仰角ϕ为XZ平面与由两个光心与点W确定的平面间的夹角。

图3-13 角度扫描摄像机进行立体镜成像
一般可借助镜头的方位角来表示物像之间的空间距离。利用如图3-13所示的坐标系,有

联立消去X,得点W的Z坐标为

式(3-37)实际上将物体和像平面之间的距离Z(3D信息中的深度)与两个方位角的正切值直接联系了起来。对比式(3-37)和式(3-30)可见,这里视差和焦距的影响都隐含在方位角中。根据空间点W的Z坐标,还可分别得到其X和Y坐标:

3.4.2 双目会聚横向模式
为了获得更大的视场重合,可以将两个摄像机并排放置但使两光轴会聚。这种双目会聚横向模式可看作双目横向模式的推广(此时双目之间的聚散度不为零)。
1.视差与深度
仅考虑如图3-14所示的情况,它是将图3-10中的两个单目系统围绕各自中心相向旋转得到的。图3-14给出两镜头连线所在的平面(XZ平面)。两镜头中心间的距离(基线长度)是B。两光轴在XZ平面相交于点(0,0,Z),交角为2θ。如果已知两个像平面坐标点(x1,y1)和(x2,y2),应如何求取3D空间点W的坐标(X,Y,Z)?

图3-14 双目会聚横向模式中的视差
首先观察由两世界坐标轴及摄像机光轴围成的三角形,可知

现从点W分别向两摄像机光轴做垂线,因为这两垂线与X轴的夹角都是θ,所以根据相似三角形的关系可得

其中,r为从(任一)镜头中心到两光轴会聚点的距离。
将式(3-41)和式(3-42)联立并消去r和X得到(参照图3-14)

将式(3-43)代入式(3-40)可得

式(3-44)与式(3-30)一样把物体和像平面之间的距离Z与视差d直接联系了起来。另外,由图3-14可以得到

代入式(3-41)或式(3-42)可得到点W的X坐标的绝对值:

2.图像矫正
双目会聚的情况也可转换为双目平行的情况。图像矫正就是对由光轴会聚的摄像机获得的图像进行几何变换以得到用光轴平行的摄像机获得的图像的过程。考虑图3-15中矫正前后的图像,从目标点W来的光线在矫正前后分别与左图像交于(x,y)和(X,Y)。在矫正前,图像上的各点都可连线到镜头中心并扩展为与矫正后的图像相交,所以对于矫正前图像上的各点,可以确定其在矫正后图像上的对应点。矫正前后点的坐标通过投影变换联系(a1到a8为投影变换矩阵的系数):

式(3-47)和式(3-48)中的8个系数可借助矫正前后图像上的4组对应点来确定。这里可考虑借助水平极线(由基线和场景中一点构成的平面与成像平面的交线,见6.2节)进行,为此需要在矫正前的图像中选择两条极线并将它们映射到矫正后图像中的两条水平线上,如图3-16所示。对应关系为


图3-15 利用投影变换矫正用光轴会聚的两个摄像机获得的图像

图3-16 矫正前后图像示意
上述对应关系能保持图像矫正前后的宽度,但在垂直方向上(为了将非水平的极线映射为水平的极线)会产生尺度变化。对于矫正后图像上的每个点(X,Y),需要用式(3-47)和式(3-48)在矫正前图像上找到对应的点(x,y),而且,要把点(x,y)处的灰度值赋给点(X,Y)。
上述过程对右图像也要进行。为了保证在矫正后的左图像和右图像上的对应极线代表相同的扫描线,需要将矫正前图像上的对应极线映射到矫正后图像上的同一条扫描线上,所以在矫正左图像和右图像时都要使用式(3-50)中的Y坐标。
3.4.3 双目轴向模式
在使用双目横向模式或双目会聚横向模式时,都需要根据三角形法来计算,所以基线不能太短,否则会影响深度计算的精度。但当基线较长时,视场不重合带来的问题会较严重。为避免基线选择的困难,可考虑采用双目轴向模式,也称为双目纵向模式,即将两个摄像机沿着光轴线依次排列。这种情况也可看作使摄像机沿光轴方向运动,在比采集第1幅图像更接近被摄物处采集第2幅图像,如图3-17所示。图3-17仅画出了X Z平面,Y轴由纸内向外,获取第1幅图像和第2幅图像的两个摄像机坐标系的原点只在Z方向上相差B,B也是两个摄像机光心间的距离(这种模式下的基线)。

图3-17 双目轴向模式成像
根据图3-17中的几何关系,有

联立式(3-51)和式(3-52)可得(仅考虑X,Y的情况与此类似)

与双目横向模式相比,双目轴向模式的两个摄像机的公共视场就是前一个摄像机(图3-17中获取第2幅图像的那个摄像机)的视场,所以公共视场的边界很容易确定,并且可基本避免由遮挡造成的3D空间点仅被一个摄像机看到的问题。不过,由于此时两个摄像机基本上从同一个角度观察物体,所以加长基线对深度计算精度的好处不能完全体现。另外,视差及深度计算的精度均与3D空间点距摄像机光轴的距离[如在式(3-54)中,深度Z与|x2|的距离]有关,这是与双目横向模式不同的。
❑ 例3-4 相对高度的测量
可以在飞机上利用携带的相机在空中对目标拍摄两幅图像以获得地物的相对高度。在图3-18中,W为相机移动的距离,H为相机高度,h为两个测量点A和B之间的相对高度差,(d1-d2)为两幅图像中A和B之间的视差。在d1和d2远小于W且h远小于H的情况下,h可通过如下方式简化计算:

如果上述条件不满足,则图像中的x和y坐标需要进行如下校正:


图3-18 用立体视觉测量相对高度
在目标相距较近时,可以通过转动目标来获得两幅图像。如图3-19(a)所示,其中δ代表给定的旋转角度。此时两个目标点A和B之间的水平距离在两幅图像中不同,分别为d1和d2,如图3-19(b)所示。它们之间的连接角度θ和高度差h为


图3-19 转动目标获得两幅图像以测量相对高度