尺度不确定/不一致性
通过分解本质矩阵可以反推t和R。由于
X1Tt×RX2=0=X1Tst×RX2X_1^Tt^\times R X_2=0=X_1^Tst^\times R X_2X1Tt×RX2=0=X1Tst×RX2
求出来的t也是无尺度的。
对同一场景中的三帧,我们通过求解和分解本质矩阵的方法求出它们之间的相对位姿T12,T23,T13T_{12},T_{23},T_{13}T12,T23,T13,由于单独两帧求解时存在尺度的不确定性,因此求出来的位置具有尺度不一致性,即
T12T23≠T13T_{12}T_{23}\neq T_{13}T12T23=T13
尺度约束
直觉上同一场景的三帧必然能求出唯一尺度,对上面的情形我们假设已经求出了一致的T12=(R12,t12),T23=(R23,st23)T_{12}=(R_{12},t_{12}),T_{23}=(R_{23},s t_{23})T12=(R12,t12),T23=(R23,st23),其中s表示两个pose之间的尺度差(即st23st_{23}st23与t13t_{13}t13具有尺度上的一致性)。同样由投影方程有
Pc1=T13Pc3=R13P3+t13P_{c1}=T_{13}P_{c3}=R_{13}P_3+t_{13}Pc1=T13Pc3=R13P3+t13
Pc2=T23Pc3=R23P3+st23 P_{c2}=T_{23}P_{c3}=R_{23}P_3+st_{23}Pc2=T23Pc3=R23P3+st23
从而可以推导出
R31Pc1+t31=R32Pc2+st32R_{31}P_{c1}+t_{31} = R_{32}P_{c2}+st_{32}R31Pc1+t31=R32Pc2+st32
→z1R31X1+t31=z2R32X2+st32\to z_1R_{31}X_1+t_{31} = z_2R_{32}X_2+st_{32}→z1R31X1+t31=z2R32X2+st32
令u=R31X1×R32X2\mathbf u=R_{31}X_1\times R_{32}X_2u=R31X1×R32X2,左右两边点乘u,我们可以得到
u⋅t31=su⋅t32\mathbf u\cdot t_{31}=s\mathbf u\cdot t_{32}u⋅t31=su⋅t32
由此,我们可以解出s。用这种方法,我们可以使得使用极线几何解出的pose具有尺度上的一致性。