
2.1 几何成像模型
图像采集的过程从几何角度可看作一个将客观世界的场景通过投影进行空间转化的过程,例如用照相机或摄像机进行图像采集时要将3-D空间的客观场景投影到2-D空间的图像平面。这个投影过程可用投影变换(也称为成像变换或几何透视变换)来描述。
2.1.1 投影成像几何
投影成像涉及在不同坐标系统之间的转换。利用齐次坐标可将这些转换线性化。
1. 坐标系统
如果考虑到图像采集的最终结果是要得到计算机里的数字图像,在对3-D空间景物成像时涉及的坐标系统主要有以下四种。
(1)世界坐标系统
客观世界的绝对坐标系统(所以也称客观坐标系统,真实或现实世界坐标系统),记为XYZ。一般的3-D场景都是用这个坐标系统来表示的。
(2)摄像机坐标系统
以摄像机为中心制订的坐标系统,记为xyz,一般取摄像机的光学轴为z轴。
(3)像平面坐标系统
在摄像机内所形成像平面上的坐标系统,记为x'y′。一般取像平面与摄像机坐标系统的xy平面平行,且x轴与x'轴、y轴与y'轴分别重合,这样像平面原点就在摄像机的光学轴上。
(4)计算机图像坐标系统
在计算机内部数字图像所用的坐标系统,记为MN。数字图像最终由计算机内的存储器存放,所以要将像平面坐标系统中的坐标转换到计算机图像坐标系统中。
根据以上几个坐标系统不同的相互关系,可以得到不同类型的成像模型。其中侧重前三个坐标系统相互关系的模型也称摄像机模型。这里仅讨论摄像机模型,所以只涉及前三个坐标系统。
2. 齐次坐标
在讨论不同坐标系统之间的转换时,如果能将坐标系统用齐次坐标的形式来表达,就可将各坐标系统之间的转换表示成线性矩阵形式。
例2.1.1 直线和点的齐次表达
平面上的一条直线可用直线方程ax+by+c=0来表示。不同的a,b,c可表示不同的直线,所以一条直线也可用矢量l=[a, b, c]T来表示。因为直线ax+by+c=0和直线(ka)x+(kb)y+kc=0当k不为0时是相同的,所以当k不为0时,矢量[a, b, c]T和矢量k[a, b, c]T表示同一条直线。事实上,仅差一个尺度的这些矢量可认为是等价的。满足这种等价关系的矢量集合称为齐次矢量,任何一个特定的矢量[a, b, c]T都是该矢量集合的代表。
对一条直线l=[a, b, c]T,当且仅当ax+by+c=0时点x=[x, y]T在这条直线上。这可用对应点的矢量[x, y, 1]与对应直线的矢量[a, b, c]T的内积来表示,即[x, y, 1]•[a, b, c]T=[x, y, 1]•l=0。这里,点矢量[x, y]T用一个加了值为1作为最后一项的3-D矢量来表示。注意,对任意的非零常数k和任意的直线l,当且仅当[x, y, 1]•l=0时有[kx, ky, k]•l=0。因此,可以认为所有矢量[kx, ky, k]T(由k变化得到)是点[x, y]T的表达。这样,如同直线一样,点也可用齐次矢量来表示。
一般情况下,空间一个点所对应的笛卡儿坐标XYZ的齐次坐标定义为(kX, kY, kZ, k),其中k是一个任意的非零常数。很明显,要从齐次坐标变换回到笛卡儿坐标可用第4个坐标量去除前3个坐标量而得到。这样,一个笛卡儿世界坐标系统中的点可用矢量形式表示为

它对应的齐次坐标可表示为

2.1.2 基本成像模型
先考虑一个简化的成像过程基本几何模型,更一般的情况可见下一小节。
1. 投影变换
图像的成像过程是一个从3-D空间向2-D平面投影的过程。图2.1.1所示的是成像模型的示意图,其中摄像机坐标系统xyz中的图像平面与xy平面重合而光学轴(由镜头中心给出)沿z轴方向。此时图像平面的中心处于原点,镜头中心的坐标是(0, 0, λ),λ是镜头的焦距。为简便起见,这里先假设摄像机坐标系统xyz中的各坐标轴分别与世界坐标系统XYZ中的各坐标轴平行。

图2.1.1 投影变换成像的基本模型示意图
下面讨论在投影变换成像中,空间点坐标和图像点坐标之间的几何关系。设(X, Y, Z)是3-D空间中任意点W的世界坐标。在以下的讨论中假设Z>λ,即所有客观场景中感兴趣的点都在镜头的前面。空间点W(X, Y, Z)与其投影到图像平面的坐标之间的联系可以借助相似三角形方便地得到。参看图2.1.1,有如下两式成立:

式中,X和Y前的负号代表图像点反转了。由这两式可得到3-D空间点投影后的图像平面坐标:

上述投影变换会将3-D空间中的线段投影为图像平面上的线段(除去空间线段沿投影方向的情况)。如果在3-D空间中互相平行的线段也平行于投影平面,则这些线段在投影后仍然互相平行。一个3-D空间的矩形投影到图像平面后可能为任意四边形,由4个顶点所确定。因此,可将投影变换称为4-点映射。
式(2.1.5)和式(2.1.6)都是非线性的,因为它们分母中含变量Z。为将它们表示成线性矩阵形式,可以借助齐次坐标来表达世界坐标系统XYZ和摄像机坐标系统xyz。如果定义投影变换矩阵为

将它和Wh的乘积PWh赋予一个记为ch的矢量:

这里ch的元素是齐次形式的摄像机坐标,这些坐标可用ch的第4项分别去除前3项而转换成笛卡儿形式。所以,摄像机坐标系统中任一点的笛卡儿坐标可表示为矢量形式:

其中c的前两项是3-D空间点(X, Y, Z)投影到图像平面后的坐标(x, y)。
2. 逆投影变换
逆投影变换是从2-D平面到3-D空间的变换,即要根据2-D图像坐标来确定3-D客观景物的坐标,或者说要将一个2-D图像点反过来映射回3-D空间。利用矩阵运算规则,从式(2.1.8)可得:

其中逆投影变换矩阵P−1是:

利用上述逆投影变换矩阵能从2-D图像坐标点确定出对应的3-D客观景物点的坐标吗?设一个图像点的坐标为(x', y', 0),其中位于z位置的0仅表示图像平面位于z=0处。这个点可用齐次矢量形式表示为

代入式(2.1.10),得到齐次形式的世界坐标矢量:

相应的笛卡儿坐标系中的世界坐标矢量是:

式(2.1.14)表明由图像点(x', y')并不能唯一确定3-D点的Z坐标(因为它对任何一个3-D点都给出Z=0)。这里的问题是由3-D客观场景映射到图像平面这个多对一的变换所产生的。图像点(x',y')现在对应于过(x', y', 0)和(0, 0, λ)的直线上的所有共线3-D点的集合(参见图2.1.1中图像点和空间点间的连线)。这条直线的方程在世界坐标系统中可由式(2.1.5)和式(2.1.6)表示,从中反解出X和Y,得到:

上两式表明除非对投影到图像点的3-D空间点有一些先验知识(如知道它的Z坐标),否则不可能将一个3-D点的坐标从它的图像中完全恢复过来。事实上,空间场景经过投影变换损失了一部分信息,仅利用逆投影变换不可能恢复这些信息。要利用逆投影变换将3-D空间点从其图像上的投影点恢复出来,需要知道该点的至少一个世界坐标。
2.1.3 一般成像模型
下面考虑摄像机坐标系统与世界坐标系统分开,但摄像机坐标系统与像平面坐标系统重合时的一般情况。图2.1.2所示是一个此时成像过程的几何模型示意图。像平面中心(原点)与世界坐标系统的位置偏差记为矢量D,其分量分别为Dx,Dy,Dz。这里假设摄像机分别以γ角(γ是x和X轴间的夹角)扫视和以α角(α是z和Z轴间的夹角)倾斜。形象地说,如果取XY平面为地球的赤道面,Z轴指向地球北极,则扫视角对应经度而倾斜角对应纬度。

图2.1.2 世界坐标系统与摄像机坐标系统不重合时的投影成像示意图
上述模型可通过以下一系列步骤转换为世界坐标系统与摄像机坐标系统重合时的摄像机模型(见图2.1.1):① 将像平面原点按矢量D移出世界坐标系统的原点;② 以某个γ角(绕z轴)扫视x轴;③ 以某个α角将z轴倾斜(绕x轴旋转)。
将摄像机相对于世界坐标系统的运动也等价于将世界坐标系统相对于摄像机逆运动。具体来说可对每个世界坐标系统中的点分别进行如上几何关系转换所采取的三个步骤。平移世界坐标系统的原点到像平面原点可用下列平移矩阵完成:

换句话说,位于坐标为(Dx, Dy, Dz)的齐次坐标点Dh经过变换TDh后位于变换后新坐标系统的原点。
进一步考虑如何将坐标轴重合的问题。扫视角γ是x和X轴间的夹角,在正常(标称)位置这两个轴是平行的。为了以需要的γ角度扫视x轴,只需将摄像机逆时针(以从旋转轴正向看原点来定义)绕z轴旋转γ角,即

没有旋转(γ=0°)的情况对应x和X轴平行。类似地,倾斜角α是z和Z轴间的夹角,可以将摄像机逆时针绕x轴旋转α角以达到倾斜摄像机α角的效果,即

没有倾斜(α=0°)的情况对应z和Z轴平行。
分别完成以上两个旋转的变换矩阵可以级联起来成为一个单独的旋转矩阵:

这里R代表了摄像机在空间旋转带来的影响。
如果对空间点的齐次坐标Wh进行上述一系列变换RTWh就可把世界坐标系统与摄像机坐标系统重合起来。一个满足图2.1.2所示几何关系的摄像机观察到的齐次世界坐标点在摄像机坐标系统中具有如下齐次表达(其中P为投影变换矩阵):

用Ch的第四项去除它的第一和第二项可以得到世界坐标点成像后的笛卡儿坐标(x, y)。展开式(2.1.21)并将它转为笛卡儿坐标得到

它们给出世界坐标系统中点W(X, Y, Z)在像平面中的坐标。
例2.1.2 一般成像模型中的像平面坐标计算
设将一摄像机如图2.1.3所示安置以观察场景。设摄像机中心位置为(0, 0, 1),摄像机的焦距为0.05 m,扫视角为135°,倾斜角为135°,现需要确定此时图中空间点W(1, 1, 0)的像平面坐标。

图2.1.3 摄像机观察三维场景示意图
为此可考虑将摄像机由图2.1.4(a)所示正常方位移动到图2.1.3所示方位所需的步骤。第一步是移出原点,结果如图2.1.4(b)所示。注意此步骤后世界坐标系统只用做角度的参考,即所有旋转都是绕新(即摄像机)坐标轴进行的。第二步是绕z轴旋转扫视,表示沿摄像机z轴扫视的观察面见图2.1.4(c),其中z轴的指向为从纸中出来。注意,这里摄像机绕z轴的旋转是逆时针的,所以γ为正。第三步是绕x轴旋转倾斜,表示摄像机绕x轴旋转并相对z轴倾斜的观察面见图2.1.4(d),其中x轴的指向为从纸中出来。摄像机绕x轴的旋转也是逆时针的,所以α为正。在图2.1.4(c)和图2.1.4(d)中,世界坐标轴用虚线表示,以强调它们只用来建立角α和角γ的原始参考。

图2.1.4 对摄像机的平移和旋转
将问题所给出的各参数值代入式(2.1.22)和式(2.1.23),可算得W(1, 1, 0)点的像坐标为x=0 m和y=–0.008837488 m。