分享

多视图几何学2-3D射影几何及变换

 SLAM之路 2022-04-24
第二部分,主要讲解3维射影空间的性质及基本要素,许多内容是平面射影的泛化推广,如第一部分讲解。例如,P3三维射影空间中用无穷远平面上的理想点集把三维欧式空间加以扩展。无穷远平面类似于P2二维射影空间的无穷远直线。平行直线、平行平面与无穷远平面相交。毫无疑问,齐次坐标同样起着重要作用,这里在三维基础上增加1。但是,因为维度的增加也会导致其他性质产生。例如,两条直线总是在射影平面相交,但在三维则不会。
在开始第二部分前,读者应熟悉第一部分内容。我们会重点关注维度增加产生的区别及其他几何性质。
3.1 点和射影变换
三维空间点X,其齐次坐标形式是4维向量。确切地说,齐次向量X=[X1,X2,X3,X4]T,X4≠0,表示R3空间的点(X,Y,Z)T,其非齐次坐标是
X=X1/X4,Y=X2/X4,Z=X3/X4
例如,点(X,Y,Z)T的齐次坐标形式是X=(X,Y,Z,1)T。若齐次坐标中X4=0,则表示无穷远点。
作用于P3的射影变换是非奇异性4×4矩阵H,它对4维齐次向量产生线性变换,表示为X'=HX。矩阵H表示变换,具有15个自由度,即16个元素减整体比例系数1。
在平面射影变换的例子中,映射是共线性的(即直线映射到直线),这保留相交关系,如直线和平面的交点,和接触顺序。
3.2 平面、直线、二次曲面的表示方法及变换
在P3中,点和平面是对偶的,它们的表示及推导类似于P2中点和直线的对偶关系。此外,在P3中,直线也关于自身对偶。
3.2.1 平面
三维空间平面可以写为,
π1X+π2Y3Z+π4=0     (3.1)
显然,该方程不会因乘非零系数而受影响,所以该平面系数只有三个独立比值(π1:π2:π3:π4)最重要,也就是说三维空间平面具有三自由度,平面的齐次形式为4维向量π=(π1π2π3,π4)T
将3.1用X->X1/X4,Y->X2/X4,Z->X3/X4替换为齐次形式,
π1X1+π2X23X34X4=0
更为简洁的写法:
πTX=0     (3.2)
该方程表示点X在平面π上。
π的前三个参数对应于欧式几何中平面法线-使用非齐次符号写法,平面方程可以写作三维向量形式,即n.X'+d=0,其中n=(π1π2π3)TX'=(X,Y,Z)T,X4=1,d=π4。在这种形式下,d/||n||是原点到平面的距离。
Join and incidence relations.在P3空间中,平面、点、直线存在多种几何关系,例如,
  1. 三点唯一确定平面,或一条直线和点唯一确定平面(三点不共线,或点不在直线上);
  2. 两个不同平面相交唯一确定直线;
  3. 三个不同平面相交唯一确定点;
这些关系有相应的代数表达形式,首先讨论点和平面的情况,涉及直线的表达形式并不那么简单,将在后续文章单独讲解。
三点定义平面.假设三个点Xi都在平面π上,那么每个点都满足(3.2),因此
πTXi=0,i=1,2,3。三个方程合并成矩阵,
因为三个点不共线且相互独立,所以三点分别为行构成的3×4矩阵秩是3。三点定义的平面π可唯一确定(按比例),因此平面是3×4矩阵的一维零空间。如果矩阵秩为2,即零空间维度也是2,那么点就是共线点,所以将定义许多平面,且平面以共点线为轴。
在P2中,点与直线对偶,经过点xy的直线l也可根据xTyT为行构成的2×3矩阵的零空间。但是,更为方便的计算公式是l=x×y。在P3中,类似表达式可根据行列式和子式得到。
我们从矩阵M=[X,X1,X2,X3]开始,该矩阵是由一般点X和三个定义平面π的点Xi组成。当X在平面π上时,行列式值detM=0,因为点X可以利用Xi的线性组合表示。按X列展开行列式,
detM=x1D234-x2D134+x3D124-x4D123
其中,Djkl是4×3矩阵[X1,X2,X3]的第jkl行的行列式值。因为点在平面上detM=0,我们可以读取出平面系数是,
π=(D234,-D134,D124,-D123)T                              (3.4)
这就是(3.3)的解向量(零空间)。
例3.1.假设定义平面的三点是,
       
X'=(X,Y,Z)T[注X'表示X~]。那么,


对于其他组成部分,采用相类似算法,
这是一个熟悉的结论,例如,平面法线计算后也是,
三平面定义点.这部分推导类似于三点定义平面。三个平面πi的交点X3×4矩阵的零空间,该矩阵是由平面系数作为行向量构成的。
     (3.5)

X最直接的解类似于(3.4)以3×3的子矩阵的行列式值,具体的数值计算方法会在后面介绍。
接下来的两个结论,是2维对应物的直接类比。
射影变换.在点变换作用下X'=HX,平面变换是,
π'=H-Tπ           (3.6)
平面上点的参数化.平面π上点X可以写成,
X=Mx          (3.7)
这里,4×3矩阵M的各列生成πT的秩3的零空间,也就是说,πTM=0,3维向量x(它是射影平面P2的点)是平面π上的点的参数化表示。当然,M并不是独一无二。假设平面π=(a,b,c,d)T,a非零,那MT可写成[p|I3×3],这里p=(-b/a,-c/a,-d/a)T
3.2.2 直线
两点连接确定直线、或两平面相交确定直线。直线在三维空间有4自由度。明确直线自由度比较有说服力的方法是,想象直线是由两个正交平面相交确定,如图3.1,每个平面上相交的点都是由两个参数确定,产生自由度为4的直线。
直线很难在三维空间中表示,因为四自由度的物体最自然的表示方法是齐次五维向量,问题在于,五维齐次向量不易于与四维向量表示的点和平面在数学表达式匹配计算。为克服这一问题,许多直线表示法提出,并在数学复杂度上各不相同。我们调研了其中三种表示法。每种方法中,表示法都会提供定义直线的机理,分别根据:两点连接、两平面相交定义直线、两种定义的映射。表示法也使计算连接或相交成为可能,例如,直线与平面的相交点。
Ⅰ.零空间和生成子空间表示
这种表示是基于直观的几何概念,直线是许多共线点的集合,根据其中任意两点确定直线。类似地,直线是许多平面的轴,根据其中任意两个平面相交部分确定直线。在这两种情况下,具体点或平面并不重要(事实上,两点有6自由度,可以表示为两个四维向量-参数过多)。这种概念在数学上是将直线表示为两个向量的生成的子空间空间表示。假设AB是两个非重合的空间点,那么连接两点的直线可通过2×4矩阵W的行空间生成,矩阵W是由ATBT为行向量:
那么:
  1. WT生成的空间是在直线上的点集λAB
  2. W的2维零向量生成的空间是许多以该直线为轴的平面。
显然,同样也在直线上的两点A'TB'T也会生成矩阵W',并且与W具有相同的生成空间,所以生成空间以及表示法并不依赖具体的点。
为证明零空间的性质,假设PQ都是零空间的基向量,那么WP=0,所以ATP=BTP=0,因此P是平面,并包含点AB,即AB既在平面P又在平面Q,所以W定义的直线是平面的交线。那么以直线为轴的任意平面可由λ’P+μ'Q生成的空间确定。
可以采用类似方法,直线的对偶表达是两平面PQ相交的部分。直线可以表示为2×4矩阵W*行向量生成的空间,矩阵W*由PTQT为行组成:
具有如下性质:
  1. W*T生成的空间是许多以直线为轴的平面集合λ’P+μ'Q
  2. W*的二维零空间生成的空间是许多在直线上的点;
两种表示方法的关系是W*WT=WW*T=02×2
例3.2.X轴表示为,
这里,点AB分别是圆点和X方向理想点;平面PQ分别是XY平面和XZ平面。
连接和相交关系也可根据零空间计算:
  1. X和直线W连接确定平面π,可根据M的零空间得到:

    如果M的零空间是2维,那么XW上,否则=0.
  1. 直线W和平面π的交点X可根据M的零空间得到:

       如果M的零空间是2维,那么直线W在平面π上,否则MX=0.

这些性质几乎都根据观察推得。例如,第一个等同于三点确定平面(3.3)。生成表示法在实际数值应用中非常实用,因为大多数矩阵使用SVD算法计算零空间非常简单。这种表示法在估计问题中也非常实用,在估计问题中,被估计量过参数化并不是问题。

Ⅱ.Plucker矩阵.

这种方法,直线表示为4×4反对称齐次矩阵。尤其是,连接两点AB的直线用矩阵L表示,其元素,

lij=AiBj-BiAj
或写作向量形式,
L=ABT-BAT              (3.8)
关于L的几个性质:
  1. L秩为2。它的二维零空间由以该直线为轴的平面束生成(事实上,LW*T=0,0是4×2的零矩阵);
  2. 这种表示法要求直线有四自由度。根据下面计数自由度:反对称矩阵有6个独立的非零元素,但只有五个比值重要,并且detL=0元素满足二次曲面约束,所以自由度是4。
  3. L=ABT-BAT是根据P2中两点xy定义直线向量叉积l=x×y在4维空间的推广。
  4. 矩阵L独立于所用的具体点AB,因为如果使用直线上不同的点CC=AB,那么结果矩阵是,

    v. 在点的变换作用下X'=HX,矩阵变换为L'=HLHT,也就是说valency-2 tensor。
例3.3.根据(3.8),X轴表示为,
这里,点AB分别是原点和X方向的理想点。
直线的Plucker对偶式可通过两平面PQ的相交部分得到,
(3.9)
L*具有类似L的性质。在点变换X'=HX作用下,矩阵L*变换为L*'=H-TLH-1
。矩阵L*可通过简单的规则根据L得到,
对应规则很简单:对偶和原直线矩阵的同一位置元素序号包括{1,2,3,4},所以如果原矩阵序号是ij,那对偶序号就是{1,2,3,4}排除ij后其他数值,如12->34.
连接和相交性质采用这种形式表示非常好:
  1. 连接点X和直线L确定的平面是,

π=L*X
      此外,当且仅当点X在直线L上时,L*X=0。
    ii. 平面π和直线L确定的交点X是,
X=
此外,当且仅当直线L在平面π上时,=0。
两条或多条直线L1,L2......的性质可根据矩阵M=[L1,L2......]的零空间得到。例如,如果若干条直线共面,那么MT有一维零空间,对应于直线所处的平面π
例3.4.直线X轴和平面X=1确定的交点,可根据X=Lπ确定:
则点X的非齐次坐标(X,Y,Z)T=(1,0,0)T
Ⅲ.Plucker直线坐标.Plucker直线坐标是具有六个非零元素的4×4反对称Plucker矩阵(3.8),即
ζ={l12,l13,l14,l23,l42,l34}                 (3.11)
这是齐次六维向量,因此是P5空间元素。它满足detL=0,因此坐标满足方程,
l12l34+l13l42+l14l23=0                  (3.12)
如果六维ζ满足(3.12),那ζ仅对应于三维空间的直线。这种约束的几何解释是,P3空间的直线定义了P5空间的平面,称之为克莱因二次型Klein quadric。

假设两直线ζζ'分别是点AB、点A'和B’的连线,当且仅当四点共面时,两直线相交。该结论的充要条件是,det[A,B,A',B']=0。这表明,行列式展开为,

det[A,B,A',B']=l12l'34+l'12l34+l13l'42+l'13l42+l14l'23+l'14l23=(ζ|ζ')
(3.13)
因为定义Plucker坐标不依赖具体坐标,双线性积(ζ|ζ')不依赖于推导过程中所用的点,仅依赖于直线ζ和ζ'。那么,结论如下,
结论3.5.当且仅当(ζ|ζ')=0时,两直线ζ和ζ'共面。
这种乘积出现在许多公式当中。
  1. 如果(ζ|ζ)=0,那六维向量ζ仅表示P3空间直线。这只是简单重复上面的克莱因二次型约束。
  2. 假设两直线ζ和ζ'分别是平面PQ,平面P'和Q'的交线,那么
(ζ|ζ')=det[P,Q,P',Q']
此外,当且仅当(ζ|ζ')=0时,两直线相交。
   iii. 如果直线ζ是两平面PQ的交线,ζ'是两点AB的连线,那么
(ζ|ζ')=(PTA)(QTB)-(QTA)(PTB)                 (3.14)
Plucker坐标在代数推导中非常有用,它们常用于定义三维空间直线到其图像的映射中。
3.2.3 二次曲面及其对偶
二次曲面是P3空间的曲面,由以下方程定义:
XTQX=0            (3.15)
Q是4×4对称矩阵。通常来说,矩阵Q和其定义的二次曲面是不做区分的,简单称之为二次曲面Q。
二次曲面许多性质与2.2.3节二次曲线的性质相类似,主要有几点:
  1. 二次曲面有9个自由度。这对应于4×4对称矩阵中10个元素减去比例1。
  2. 9个点(一般位置上)定义二次曲面。
  3. 如果矩阵Q是奇异矩阵,那么二次曲面是退化的,可以以少于9个点定义。
  4. 二次曲面定义点和平面间Polarity关系,类似于二次曲线中点和直线间的polarity关系。平面π=QX,是点X关于Q的极平面,在这种情况下,Q是非奇异矩阵,X是二次曲面外的点,极平面由经过点X且与Q正切的射线锥体与二次曲面的交点定义。如果点X在Q上,那么QX是在点X与Q正切的平面
  5. 平面π与二次曲面Q的相交部分是二次曲线C。计算二次曲线比较难,因为这要求平面的坐标系根据(3.7),平面的坐标系由π的补空间定义X=Mx。如果XTQX=xTMTQMx=0,平面π上的点也在Q上。这二店在二次曲线C上,因为xTCx=0,C=MTQM。
  6. 在点变换作用下X'=HX,二次(点)曲面变换为,
Q'=H-TQH-1                     (3.16)
二次曲面的对偶也是二次曲面。对偶二次曲面是关于平面上的方程:二次(点)曲面Q的正切平面π满足πTQ*π=0,Q*是Q的伴随矩阵,如果Q可逆,Q*是Q-1。在点变换作用下X'=HX,对偶二次曲面变换为,
Q*'=HQ*HT                 (3.17)
3.2.4 二次曲面分类
因为表示二次曲面的矩阵Q是对称的,所以该矩阵可以分解为Q=UTDU,U是实正交矩阵,D是实对角阵。通过对矩阵U的行合理缩放,可以进一步写成,Q=HTDH,D的对角元素只等于1、0、-1,我们进一步保证,零元素出现在矩阵U对角线的最后,+1出现在最靠前。由D替换Q=HTDH等同于射影变换受矩阵H影响。因此,达到射影等价,我们认为,二次曲面可以用给定形式更简单的矩阵D表示。
对角矩阵D的特征,记作σ(D),定义为+1的数量减-1的数量。这种定义方法拓展到任意实对称矩阵Q,σ(Q)=σ(D),因此Q=HTDH,H是实矩阵。这种特征定义非常友好,并且独立于具体的H矩阵。因为表示二次曲面的矩阵的特征形式,我们认为其特征只有非负数。那么,二次曲面的射影类型仅取决于它的秩和特征,这使我们能列举出不同射影等价类型的二次曲面。
对角矩阵diag(d1,d2,d3,d4)表示的二次曲线,对应于一些列点,这些点满足方程d1X2+d2Y2+d3Z2+d4T2=0。设定T=1,则得到二次曲面上有限点的方程,参考表格3。图3.2-3.4展示二次曲面的实例。
Ruled quadrics直二次曲面.二次曲面分为两类-规则和不规则二次曲。规则二次曲面包含直线。更特别得是,如图3.3所示,非退化规则二次曲面(单叶双曲面)包含两个系列直线“generators”。
二次曲面最为有趣的是秩为4的两个方程。注:这两个二次曲面甚至在拓扑型都不相同。特征是2的二次曲面,其拓扑型是球体,而单叶双曲面子拓扑型上并不会球体。事实上,它的拓扑型是torus。这明确了两种在射影并不等价。



    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多