附录B 摄象机模型和外极线几何 B.1 摄象机模型 B.1.1 针孔模型和透视投影 B.1.2 摄象机外参数 B.1.3 摄象机内参数和归一化摄象机 B.1.4 透视矩阵的一般形式 B.2 透视投影的各种线性近似 B.2.1 正投影(orthographic projection) B.2.2 弱透视(weak perspective) B.2.3 平行透视(paraperspective projection) B.2.4 仿射摄象机 B.3 透视投影下的外极线几何 B.3.1 外极线几何中的概念 B.3.2 归一化坐标系中的外极线方程 B.3.3 像素坐标系中的外极线方程 B.3.4 投影矩阵下的外极线方程 B.3.5 基础矩阵和外极几何变换 B.1 摄象机模型 在大部分应用环境中可以用理想的针孔模型来近似实际摄象机。针孔模型的几何关系就是透视投影。下面我们先介绍透视投影的几何关系。 B.1.1 针孔模型和透视投影 针孔摄象机的模型在第五章中已有介绍。在那里我们使用了矢量代数的表示方法,下面我们用坐标变换的方法来推导之。 我们定义的第一个坐标系是摄象机坐标系。该坐标系的原点在焦心C,X、Y、Z轴由A、H’和V’决定,其中A为光轴方向,H’和V’是正交的方向,三者组成右手直角坐标系。三维点在该坐标系中的坐标Mc记为(Xc,Yc,Zc)T。 为表示透视模型我们还需要在图象平面中建立图象坐标系。这是一个二维坐标系,其原点位于光轴和图象平面的交点c(称为主点,principal point),两坐标轴与H’和V’平行且反向。在该坐标系中像点m的坐标表示为(u,v)T。 在定义了这两个坐标系后,投影模型可表示为  (B.1) 其中f为焦心到图象平面的距离,即焦距。 摄象机坐标系和图象坐标系如图B.1所示。  图B.1 针孔模型,其中过焦心C和图象平面平行的平面称为焦平面 在实际应用中物体离焦心的距离一般都远大于焦距。因此我们常在光轴上和实际图象平面关于焦心对称的位置上设置一个虚拟图象平面,如图B.2。并在该虚拟平面上建立二维坐标系。原点在光轴和该平面的交点,两坐标轴与H’和V’平行并且方向相同。把像平面上的点经焦心作中心对称映射到该虚拟平面上。这样该平面上点的二维坐标与三维点的摄象机坐标系坐标同样满足上面的投影模型。以后我们一般把此虚拟平面称为像平面。  图B.2 使用虚拟图象平面的针孔模型 对任一坐标值x=(x1,x2,…)T,我们用表示x的齐次坐标。它由x的所有分量加上一个为1的元素生成,即。 在投影模型中如果我们使用m点的齐次坐标(U,V,S)T,则有  (B.2) 其中U,V,S满足S(0且u=U/S,v=V/S。另外,我们用Pc表示3*4矩阵,则上式可写成线性形式  (B.3) 其中s=S为一比例因子。 B.1.2 摄象机外参数 上面的讨论都是在摄象机坐标系(C,Xc,Yc,Zc)中进行的,不过在实际应用中,摄象机的位置和方向并不总是固定不变的,因此我们需要用固定的世界坐标系(O,X,Y,Z)来表示三维点。记Pc在世界坐标系中的坐标为M=(X,Y,Z)T,则两坐标系的关系可用Mc=RM+t来表示,R是旋转矩阵,它表示摄象机的方向;t则与摄象机的位置有关,它实际是世界坐标系原点在摄象机坐标系中的坐标。这两者被称为摄象机的外参数。 如果我们使用齐次坐标,上面的坐标系间的关系可写成  (B.4) 其中,03=[0,0,0]T (B.5) 结合(B.3)和(B.4)式,我们有  (B.6) 其中P=PcD为世界坐标系中的投影矩阵。 B.1.3 摄象机内参数和归一化摄象机 下面我们考虑图象平面上的坐标变换。它在实际应用中十分重要,这是因为: 像素坐标系的原点不一定与光轴和图象平面的交点(即主点)重合; 像素坐标系中两坐标轴的单位由实际设备的采样率决定,它们不一定相同; 像素坐标系中两坐标轴不一定成直角。 为了处理这些问题,我们需要建立图象坐标系和像素坐标系间的仿射变换关系。如图B.3所示,(c,x,y)是上一节介绍的图象坐标系。它是直角坐标系,并且两个轴向上的单位相同。(o,u,v)则是像素坐标系,其原点常位于图象的左上角而不是主点c,像素也常常不是方的。设ku、kv是u,v轴上的单位在图象坐标系中的度量值,(是u,v两轴的夹角,(u0,v0)是c在像素坐标系中的坐标。这五个参数就是摄象机的内参数。  图B.3 摄象机的内参数,图象平面上的坐标变换 令mold=[x,y]T为图象坐标系中的坐标值,mnew=[u,v]T则是像素坐标。显然有 , 其中。另外,根据(B.3)式,我们有,代入上式,得  其中 (B.7) Pnew即像素坐标表示的投影矩阵。从中我们可以看到真正起作用的是(u=fku和(v=fkv,即焦距的变化和像素尺度的变化在最终的图象上是不可区分的。 在实际应用中为简化公式,我们常常使用所谓的归一化坐标系。该坐标系也是定义在图象平面上的二维坐标系,如果用该坐标系表示图象平面上的点,则投影矩阵PN有非常简单的形式 (B.8) 对摄象机坐标系中的点(Xc,Yc,Zc),其像点的归一化坐标(xN,yN)满足 xN=Xc/Zc, yN=Yc/Zc (B.9) 根据PN和Pnew的定义,我们可以看到PN和Pnew满足 Pnew=APN (B.10) 其中, (B.11) 而归一化坐标(xN,yN)T和像素坐标(u,v)T满足  (B.12) 使用归一化坐标系实际是把摄象机的内外参数分解开来考虑,这样当我们关注于摄象机的外参数变化的情况(例如运动视觉)时就不必考虑使用的是什么样的摄象机。 B.1.4 透视矩阵的一般形式 同时考虑摄象机的内外参数,即建立像素坐标系中点m与三维对应点在世界坐标系中的坐标值Mw之间的映射关系,我们有  (B.13) 其中 (B.14) 其中A,R,t如上两节所述。 透视矩阵P为3*4矩阵,由于可相差一个尺度,因此只有11个独立参量。 记pij为P中i行j列的元素,消去尺度因子s,我们得到  (B.15)  (B.16) 上两式可用于标定摄象机。如果有六个以上的像点和三维点的对应就可求出P,然后从P中分解出内外参数。这方面的内容就不详述了。 根据P我们还可以求出焦心C在世界坐标系中的坐标。令P=[B b],其中B为3*3矩阵,b为三维列向量。显然有,即,故 Cw=(B(1b (B.17) 根据P和一个像点m我们可以得到空间中的一条射线,该射线由焦心和m决定,并且其上的所有点都透视投影为m。这条射线的参数方程为,其中(为任一正实数。 B.2 透视投影的各种线性近似 从上节的讨论可以知道,透视投影实际是一个非线性映射。这在实际求解时可能需要大的计算量;更重要的是,如果透视效果并不明显,直接使用该模型可能会使实际问题称为病态问题。另外,在某些条件下,例如,摄象机的视场很小,并且物体的尺寸相对于到观察者的距离也很小,透视模型可以很好地用线性模型近似。这种近似可大大简化推导和计算。 为简单起见,如果不作特别说明的话,下面的讨论都认为像点用其归一化坐标表示,三维点用其在摄象机坐标系中的坐标表示。 B.2.1 正投影(orthographic projection) 最简单的线性近似称为正投影。这种近似完全忽略了深度信息。在这种投影方式下,物体到摄象机的垂直距离(深度信息)和物体到光轴的距离(位置信息)都完全丢失了。因此,它只在这两种信息确实可以忽略时才可使用。 正投影的公式为x=X, y=Y。 B.2.2 弱透视(weak perspective) 如果物体的尺寸相对其到摄象机的距离很小的话,物体上各点的深度可以用一共同的深度值Z0近似,这个值一般取物体质心的深度。这样透视模型可近似为  (B.18) 这种近似可以看作两阶段投影的合成。第一步,整个物体按平行于光轴的方向正投影到经过物体质心并与图象平面平行的平面上;第二步,再按透视模型投影到图象平面上,这一步实际是全局的放缩。因此,弱透视也被称为放缩正投影(scaled orthographic projection)。 令 (B.19) 则弱透视模型可写成与透视投影类似的形式 。将摄象机的内外参数都考虑进来,我们有 ,其中s为一比例因子,A和D如上节定义。消去比例因子,我们看到二维点和三维点的对应关系确实是线性的。 下面我们来推导这种近似带来的误差。现在我们又回到归一化坐标系和摄象机坐标系。设三维点M的真正深度值为Z=Z0+(Z。该点按透视模型投影为mp,而弱透视的结果为mwp,我们用泰勒公式把Z在Z0处展开并略去高阶项,得到两者的差merror为  我们可以看到有两种原因带来误差,一是,即物体的深度信息;二是,即位置信息。误差对物体的不同部分是不同的。在实际应用中为使用弱透视模型,一般要求Z0>10*|(Z|。 B.2.3 平行透视(paraperspective projection) 在弱透视投影中,三维点先被正投影到过物体质心并与图象平面平行的平面上。这一过程中丢失了物体的位置信息。如果物体离光轴较远,弱透视带来的误差是很大的。在平行透视中,投影过程仍可分为两步,第一步仍是把物体平行投影到过质心且与象平面平行的平面上,不过这次的投影线不是平行于光轴,而是平行于质心G和焦心C的连线CG。 容易得到平行透视的公式为  (B.20) 其中(X0,Y0,Z0)为质心的三维坐标。 为将该模型写成与透视投影类似的形式,我们令  (B.21) 则。即使考虑了摄象机的内外参数,二维点与三维点间的对应关系也仍是线性的。 最后我们也来看看平行透视引入的误差。令(X,Y,Z)T=(X0+(X,Y0+(Y,Z0+(Z)T,我们用与上节类似的方法得到  可以看到,像点误差是三维点误差的二阶无穷小。而在弱透视的情况下,像点误差是三维点误差的一阶无穷小。这说明,平行透视确实是比弱透视更好的近似。 图B.4是各种线性近似和透视模型的比较。从图中可看到,各模型的近似程度和我们前面的分析是一致的。  图B.4 透视模型及其各种线性近似的比较 图中xorth、xwp、xpp和xp分别是物体上的三维点M在正投影、弱透视、平行透视和透视投影下的投影点。G为物体的质心。 透视投影还有一种误差更小的线性近似,即正透视(orthoperspective)。同样从两阶段过程来考虑,正透视与平行透视的区别在于第一阶段的投影平面不是与图象平面平行,而是经过质心和CG(即焦心和质心的连线)垂直。它也可被看作以下三步操作的合成: 摄象机绕焦心C旋转,直至光轴与CG重合; 进行弱透视投影; 将摄象机旋转回原位置,这引起图象平面上的一个仿射变换。 正透视的数学表示形式很复杂,在这里就不给出其公式了。 B.2.4 仿射摄象机 观察在正投影、弱透视和平行透视下的投影矩阵,我们发现它们都具有如下的形式:  (B.22) PA是一3*4矩阵,它决定了一个三维空间到二维平面的线性映射(用齐次坐标表示),所以我们把PA称为仿射摄象机。与透视投影矩阵类似,PA也可相差一个尺度因子,因此它只有8个自由参量。它可由4组二维点和三维点的对应决定。 如果用非齐次坐标,仿射摄象机可表示为 m=TAM+tA (B.23) 其中TA为一2*3矩阵,其元素Tij=Pij/P34,而tA为二维向量[P14/P34,P24/P34]T。 仿射摄象机的一个重要性质是保平行性:三维空间的平行线投影为二维空间的平行线。这和透视投影是不同的。证明很简单:设M1(()=Ma+(*u和M1(()=Mb+(*u是三维空间的两平行线,其中u是三维方向向量,(和(是直线参数。投影结果为m1(()=(TAMa+tA)+(TAu和m2(()=(TAMb+tA)+( TAu,显然它们都平行于方向向量TAu。 仿射摄象机的另一个重要性质是它把三维点集的质心投影为对应二维投影点的质心。这也是透视投影不具有的性质。 仿射摄象机的缺点是几何意义不明显。它当然是前几节介绍的各种透视投影线性近似的推广。这种推广可按下面两种方式来理解: (1) 允许三维物体作某种非刚性变形。实际上,如果对PA右乘这样的三维仿射变换,其中M为3*3矩阵,而t为三维列向量,相乘的结果仍是仿射摄象机。 (2) 无需标定摄象机内参数。实际上,对PA左乘这样的二维仿射变换,其中B1为2*2矩阵,而b为二维列向量,相乘的结果也仍是仿射摄象机。 即使不标定摄象机的内参数,我们仍能从图象中提取出如平行性、定长度比这样的仿射度量。对于某些视觉任务来说,这样的仿射度量就足够了。 最后需要指出的是仿射摄象机是实际摄象机的近似。它只在感兴趣目标的深度变化相对其深度而言可忽略不计时才适用。 B.3 透视投影下的外极线几何 本节我们介绍透视投影下的外极线几何,并讨论其概念和数学表示。 B.3.1 外极线几何中的概念 外极线几何讨论的是两摄象机图象平面间的关系。考虑图B.5中的两个摄象机。设C为第一个摄象机的焦心,C’为第二个摄象机焦心;m为第一个摄象机图象平面I上的点,m’为其在第二个摄象机图象平面I’上的对应点(即两者是同一三维点M分别在两个像平面上的投影)。则m’必然位于该像平面内由m决定的一条直线lm’上。其中lm’是I’和由三维点M、两焦心C、C’决定的平面((称为外极平面)的交线。这是因为在I上的投影点是m的三维点必然在射线CM上,而CM在I’上的投影为lm’。 lm’称为m决定的外极线。不仅如此,我们还发现,I’上所有的外极线交于同一点e’,此点称为外极点。它是CC’和I’的交点。这可以这样解释:任给I上一点m,它在I’上决定的外极线lm’是I’与(m的交线,其中(m是由m决定的外极平面。这样所有的(m形成过CC’的平面族,这个平面族与CC’的交点位于所有外极线上,因而是外极点e’。由于两摄象机的地位是完全对称的,因而类似的分析可发现,I’上任一点m’在I上决定一条外极线lm’,I上所有外极线交于外极点e。e和e’都在直线CC’上。m、m’、C和C’四点共面(其中m和m’是对应点),这被称为共面约束。它在已知摄象机内参数的情况下从运动求解结构中有重要作用。  图B.5 外极线几何 利用外极线的概念可大大减少在两幅图象间匹配对应点的计算量。由于I中点m在I’中的对应点在由m决定的外极线上,因此搜索空间的维数由二维降为一维。该约束称为外极线约束。 如果两焦心的连线CC’与一个或两个摄象机的像平面平行,那么该像平面上的外极点就位于无穷远处。这说明该平面上的外极线彼此平行。另外,如果还有CC’与摄象机的水平扫描线平行,则外极线也是水平的。实际上,很多立体视觉算法都假设外极线与水平扫描线平行。 下面我们考虑两摄象机间的方向和位置关系。设第二个摄象机坐标系可由第一个摄象机坐标系经由旋转R和平移t得到。这样同一三维点在第一个坐标系中的坐标(X,Y,Z)和其在第二个摄象机坐标系中的坐标(X’,Y’,Z’)满足  (B.24) 其中。 R中只有三个自由参量,因为旋转矩阵R满足RRT=I且det(A)=1,这将提供六个约束。 从下节开始我们将首先推导归一化坐标系中的外极线方程,然后把它扩展到像素坐标系的情形,最后给出直接利用投影矩阵表示的形式。 B.3.2 归一化坐标系中的外极线方程 设M=(X,Y,Z)T在两摄象机像平面中的投影分别为m=(x,y)T和m’=(x’,y’)T。像平面上的点用其归一化坐标表示,M是三维点在第一个摄象机坐标系中的坐标。再设M’=(X’,Y’,Z’)T是同一三维点在第二个摄象机坐标系中的坐标。根据针孔摄象机的透视模型,我们有 。 利用(B.24)消去M和M’,则有 , 其中仍有两个与三维点有关的参数Z和Z’。为此我们用t对上式两边作叉乘,得到 ,然后再两边都与作点积(即内积),最后得到  (B.25) 上式中不再含有Z和Z’。 (B.25)式在根据运动求解结构中十分重要。它的几何意义是十分明显的:CC’、和三向量共面。如果用第一个摄象机坐标系中的坐标表示这三个向量,它们分别是t、和。上节提到的共面约束决定了这三个向量的混合积为零,这就是(B.25)式。 下面我们定义一个从三维向量到3*3反对称矩阵的变换:它将向量(x1,x2,x3)T映射为矩阵,记该反对称矩阵为。 利用上面的定义我们可以将两向量的叉乘表示成矩阵与向量的乘积,容易验证,其中a,b为任意两个三维向量。因此(B.25)式可写成  (B.26) 其中 (B.27) (B.26)式称为外极线方程。其中E称为本质矩阵(Essential Matrix)。它最早由Longuest-Higgins在1981年由从运动到结构的求解中导出。该矩阵仅由两摄象机间的旋转和平移决定。由于是反对称矩阵,因此det(E)=0。实际上,E的秩为2。 在具体分析(B.26)式前,我们首先来讨论二维平面中直线的表示方法。二维空间里的任何直线可用方程ax+by+c=0来表示。这就是说,直线可用一个三维向量l=(a,b,c)T表示,该直线上的所有点满足。当然l可相差一个比例因子。实际上,l乘以任一非零的比例因子(后得到的向量(l表示的是同一条直线。如果一条直线过m1和m2两点,则我们有,因此  (B.28) 下面我们讨论在第一个摄象机像平面内外极线的表示。设m’=(x’,y’)T为第二个摄象机像平面的一点,其对应的三维点M’必在由C’和决定的射线上,其中是该射线上的无穷远点。也在该射线上。根据透视模型我们有,  (B.29) 这实际上就是射线的参数表示。而该三维点M’在第一个摄象机坐标系中的坐标。记lm’为在第一个摄象机图象平面I中的投影,即m’在I中决定的外极线。 这条直线可由两个点确定。为求得第一个点,我们用(=0代入的参数方程,它的投影点为,其中tZ为t的第三个分量。这是第二个摄象机焦心在I上的投影,即外极点。为得到第二个点,我们令,这样我们得到,其中r3为R的第三行。根据前面对直线表示方法的讨论((B.28)式),我们有  (B.30) 由于可忽略比例因子,所以我们丢掉了向量前的系数和。 同样的推导过程可以得出。即外极线可以由E表出。外极线方程实际是外极线约束的代数表示。 下面我们来讨论e和e’的性质。由于e是第一个摄象机像平面上所有外极线的交点,因此对任何有成立,这就是说,即,由于R可逆,故,。这里我们又得到了外极点的坐标表示。 同样的推导,,故,(为某个非零比例因子。,其中,i=1,2,3是R的列标号。 e是无穷远点对应于tZ=0;e’是无穷远点则对应于,即第一个摄象机的焦心位于第二个摄象机的焦平面(即过焦心和图象平面平行的平面)内。如果还要求两个焦平面重合,那么除了tZ=0外还有r13=r23=0,r33=1,故R形如,即两坐标系间只有绕光轴的旋转。 将上面的t及R的特殊形式代入(B.27),我们有  (B.31) 如果将E的具体形式代入(B.26),我们发现外极线方程对所有的图象坐标值都是线性的。这说明两个像平面上的外极线都是平行的,并且方向和像点没有关系。 B.3.3 像素坐标系中的外极线方程 现在m和m’是两摄象机像平面上用像素坐标表示的一组对应点。显然有  (B.32) 其中,F=A(TEA’(1 (B.33) A和A’为两摄象机的内参数矩阵。 上式的推导十分简单。只要把像素坐标和归一化坐标的关系(B.12)代入(B.26)式即得。方程(B.32)是两帧图象间对应像素满足的基本约束。上式也可直接用透视模型来从头推导。我们设世界坐标系和第二个摄象机坐标系重合,则 , 用与上节类似的方法消去M’,s和s’,我们就可得到(B.32)式。 3*3矩阵F称为基础矩阵。由于E秩为2,F的秩也为2。另外,和E一样,F也可相差一比例因子。因此F也只有7个自由参量。 下面我们推导这时外极点e和e’的形式。显然e是C’的投影,而C’=0,故我们有 ,故即为向量At被它的第三个分量除的结果。 同理,e’是C的投影,而由(B.17)知C=(R(1t,代入,得,即为向量被它的第三个分量除的结果。 现在我们来推导外极线的表示。为求出第一个摄象机图象平面上由m’决定的外极线lm’,我们需要lm’上的两个点。一个点是已求出的e,另一个点可以是射线上的任一点,我们选择使,即该点的比例因子s为1。这样,该点在第一个摄象机图象平面I上的投影点m0满足。 根据和,我们得到  易证对所有的可逆阵A成立,再加上lm’可相差一比例因子,故,其中F为基础矩阵。 类似地,我们有,推导如下: 为求出l’m我们同样需要e’之外的另一点。这次我们选择射线上的点M0满足,同样比例因子为1。这样,该点在第二个摄象机像平面I’上的投影满足,因此有  推导过程中我们已在l’m上添加了比例因子se’s0’。 外极点的位置也可根据外极线方程求出。由于外极点是所有外极线的交点,故对所有m和m’,有和成立。此即且。将F的具体形式代入,我们最终得到和,和以前的结论相同。 B.3.4 投影矩阵下的外极线方程 在某些应用(例如立体视觉)中,摄象机投影矩阵P是我们的已知量。因而我们希望直接用P表示外极线几何,而不再使用A,R,t等量。 设P和P’分别为一、二台摄象机的投影矩阵。我们记P=[B b],其中B为3*3矩阵,b为三维向量。类似地有P’=[B’ b’]。 根据透视模型,我们有 ,,其中M是三维点在世界坐标系中的坐标。如果B和B’可逆,则 , 从中消去M,并且两边都左乘B,有 , 再两边都与作叉乘,则 , 又与作点积,我们得到 ,其中,这就是用投影矩阵表示的外极线方程。 下面我们来推导外极点的表示。根据(B.17),我们有,故;同理,。 外极线方向的推导与上两节完全类似,最后的结论,也与上节相同。 注意,本节我们将P分解为B和b,并且要求B可逆。实际上可将这一表示法推广,改用P和P’来直接表示外极线方程,这方面的内容我们就不详述了。 B.3.5 基础矩阵和外极几何变换 本节我们讨论基础矩阵在外极几何变换中的作用。所谓外极几何变换,是指两个像平面间外极点和外极线的几何变换关系。 设m’为第二个摄象机像平面上的任一点,它在第一个摄象机的像平面上决定了一条外极线。它必然经过外极点和m’的对应点,故lm’有两种表示方法。现在我们都使用像点的齐次坐标。同样,m决定的外极线l’m过外极点和m的对应点,l’m同样有两种表示方法。 为建立外极线间的关系,我们首先确定外极点的坐标。根据和,我们可以求得  (B.34) 和  (B.35) e和e’的三坐标值可相差一个比例因子。 确定了外极点,外极线的方向可由其方向决定。考虑,设其方向向量为,故l’m可表示成参数形式,其中(’为参数。m’决定的外极线为 (B.36) 另外,我们设lm’的方向向量为,利用lm’的另一种表示方法,则有 (B.37) 其中表示在相差一个比例因子的意义下相等。由于(B.36)和(B.37)是同一直线的两种表示,令它们相等。得到  (B.38) 其中a=F12,b=F11,c=(F22,d=(F21。 上式写成矩阵形式如下:  (B.39) (为比例因子。这种关系被称为(和(’的同构关系。我们也可以说两幅图象间的外极线有同构关系。 当然上面的推导只在外极线方向的第一个分量不为零时才成立。如果第一个分量为零,我们只要设该方向为,就能得到类似的结果。 从上面的推导可以看到,外极几何变换由外极点、、以及同构中的四个参数a、b、c、d确定。外极点坐标可相差一比例因子,同构参数也可相差一比例因子,因此一共有7个自由参数。这刚好是基础矩阵中自由参数的数量。 如果我们确定了外极几何变换,即求出了两个外极点和四个同构参数,则能用它们表出基础矩阵。关系如下:  (B.40) 参考文献: [Xug 96] Xu,G. and Zhang, Z. Y., Epipolar geometry in stereo, motion and object recognition, a unified approach, Kluwer Academic Publishers, 1996.