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