[三维重建] 对极几何约束、本质矩阵、基础矩阵、单应矩阵

一、对极几何约束在这里插入图片描述

假设相机从 O 1 O_1 O1经过旋转平移运动, R , t R,t Rt,到达新的位置 O 2 O_2 O2 I 1 , I 2 I_1,I_2 I1I2分别为相机在两个位置的成像平面,空间中同一点 P P P,在两个成像平面上的投影分别为 p 1 , p 2 p_1,p_2 p1p2

极平面: O 1 , P , O 2 O_1,P,O_2 O1PO2三点确定的平面( Δ O 1 P O 2 \Delta O_1PO_2 ΔO1PO2所在的平面)
极点: O 1 , O 2 O_1,O_2 O1O2连线与两个成像平面 I 1 , I 2 I_1,I_2 I1I2的交点 e 1 , e 2 e_1,e_2 e1e2
基线:两个相机光心的连线 O 1 O 2 O_1O_2 O1O2
极线:极平面与两个成像平面之间的相交线 l 1 , l 2 l_1,l_2 l1l2

1、本质矩阵

假设在第一帧所在坐标系下,点P的坐标为:
P = [ X Y Z ] P=\begin{bmatrix} X\\ Y\\ Z\\ \end{bmatrix} P= XYZ
根据针孔相机模型的投影公式,两个成像平面上像素点 p 1 , p 2 p_1,p_2 p1p2的坐标位置为:
s 1 p 1 = K P (1) s_1p_1=KP\tag{1} s1p1=KP(1)
s 2 p 2 = K ( R P + t ) (2) s_2p_2=K(RP+t)\tag{2} s2p2=K(RP+t)(2)
这里, K K K 3 × 3 3×3 3×3的相机内参数矩阵; R , t R,t Rt为相机的运动,具体来说,这里应该是 R 21 , t 21 R_{21},t_{21} R21t21,将 O 1 O_1 O1坐标系下的坐标 P P P转换到了 O 2 O_2 O2坐标系下的坐标 ( R 21 P + t 21 ) (R_{21}P+t_{21}) (R21P+t21) s 1 s_1 s1为深度信息,即空间点 P P P到相机光心 O 1 O_1 O1的距离, s 2 s_2 s2则为空间点 P P P到相机光心 O 2 O_2 O2的距离,两者并不相等; p 1 , p 2 p_1,p_2 p1p2 3 × 1 3\times 1 3×1的齐次坐标形式, P P P 3 × 1 3\times 1 3×1的欧氏坐标形式。

根据针孔相机模型的投影公式:
Z [ u v 1 ] = K [ X Y Z ] Z\begin{bmatrix}u\\v\\1\end{bmatrix}=K\begin{bmatrix}X\\Y\\Z\end{bmatrix} Z uv1 =K XYZ
令等式两边同时乘 1 Z \frac{1}{Z} Z1
[ u v 1 ] = K [ X Z Y Z 1 ] \begin{bmatrix}u\\v\\1\end{bmatrix}=K\begin{bmatrix}\frac{X}{Z}\\\\\frac{Y}{Z}\\\\1\end{bmatrix} uv1 =K ZXZY1
令等式两边同时左乘 K − 1 K^{-1} K1
K − 1 [ u v 1 ] = [ X Z Y Z 1 ] K^{-1}\begin{bmatrix}u\\v\\1\end{bmatrix}=\begin{bmatrix}\frac{X}{Z}\\\\\frac{Y}{Z}\\\\1\end{bmatrix} K1 uv1 = ZXZY1
可以看出,对像素点二维坐标的齐次坐标左乘 K − 1 K^{-1} K1后,并不能恢复到空间点的三维坐标 [ X Y Z ] \begin{bmatrix} X\\ Y\\ Z\\ \end{bmatrix} XYZ ,而是得到这个三维坐标在归一化平面( Z = 1 的平面 Z=1的平面 Z=1的平面)上的坐标: [ X Z Y Z 1 ] \begin{bmatrix}\frac{X}{Z}\\\\\frac{Y}{Z}\\\\1\end{bmatrix} ZXZY1

现在,取:
x 1 = K − 1 p 1 (3) x_1=K^{-1}p_1\tag{3} x1=K1p1(3)
x 2 = K − 1 p 2 (4) x_2=K^{-1}p_2\tag{4} x2=K1p2(4)

可知, x 1 , x 2 x_1,x_2 x1x2是两个像素点的归一化平面上的坐标。

联立式(1)(2)(3)(4):

s 2 p 2 = K ( R P + t ) s_2p_2=K(RP+t) s2p2=K(RP+t)等式两边左乘 K − 1 K^{-1} K1
K − 1 s 2 p 2 = R P + t K^{-1}s_2p_2=RP+t K1s2p2=RP+t
s 2 K − 1 p 2 = R P + t s_2K^{-1}p_2=RP+t s2K1p2=RP+t
s 2 x 2 = R P + t (5) s_2x_2=RP+t\tag{5} s2x2=RP+t(5)
s 1 p 1 = K P s_1p_1=KP s1p1=KP等式两边左乘 K − 1 K^{-1} K1
K − 1 s 1 p 1 = P K^{-1}s_1p_1=P K1s1p1=P
s 1 K − 1 p 1 = P s_1K^{-1}p_1=P s1K1p1=P
s 1 x 1 = P s_1x_1=P s1x1=P
s 1 x 1 = P s_1x_1=P s1x1=P代入式(5),得:
s 2 x 2 = R s 1 x 1 + t s_2x_2=Rs_1x_1+t s2x2=Rs1x1+t
在等式两侧同时左乘 t ∧ t^{\wedge} t
s 2 t ∧ x 2 = s 1 t ∧ R x 1 + t ∧ t = s 1 t ∧ R x 1 ( 后面那块 t × t 的结果是零向量,所以没有了 ) s_2t^{\wedge}x_2=s_1t^{\wedge}Rx_1+t^{\wedge}t\\ =s_1t^{\wedge}Rx_1\\ (后面那块t\times t的结果是零向量,所以没有了) s2tx2=s1tRx1+tt=s1tRx1(后面那块t×t的结果是零向量,所以没有了)
∧ ^{\wedge} 的定义:在《视觉SLAM十四讲》中, a ∧ a^{\wedge} a是与向量 a a a一一对应的一个反对称矩阵, a ∧ b = a × b a^{\wedge}b=a\times b ab=a×b,实际上就是一个叉乘的矩阵表达形式,在某些地方 a ∧ a^{\wedge} a也可能写成 a × a_{×} a×,知道是同一个意思就好

上式中,再同时左乘 x 2 T x_2^T x2T
s 2 x 2 T t ∧ x 2 = s 1 x 2 T t ∧ R x 1 s_2x_2^Tt^{\wedge}x_2=s_1x_2^Tt^{\wedge}Rx_1 s2x2Ttx2=s1x2TtRx1
观察上述等式的左侧, t ∧ x 2 t^{\wedge}x_2 tx2的结果是一个与 t , x 2 t,x_2 tx2均垂直的向量,左乘 x 2 T x_2^T x2T相当于 x 2 x_2 x2点乘向量 t ∧ x 2 t^{\wedge}x_2 tx2。由于向量 t ∧ x 2 t^{\wedge}x_2 tx2必定与 x 2 x_2 x2垂直,因此 x 2 x_2 x2点乘向量 t ∧ x 2 t^{\wedge}x_2 tx2的结果自然是0。
s 2 s 1 x 2 T t ∧ x 2 = x 2 T t ∧ R x 1 \frac{s_2}{s_1}x_2^Tt^{\wedge}x_2=x_2^Tt^{\wedge}Rx_1 s1s2x2Ttx2=x2TtRx1
由于 x 2 T t ∧ x 2 = 0 x_2^Tt^{\wedge}x_2=0 x2Ttx2=0 s 1 , s 2 s_1,s_2 s1s2是常数,最终得到结果:
x 2 T t ∧ R x 1 = 0 (6) x_2^Tt^{\wedge}Rx_1=0\tag{6} x2TtRx1=0(6)
将式(6)的中间部分 t ∧ R t^{\wedge}R tR记作 E E E ,即本质矩阵:
x 2 T E x 1 = 0 x_2^TEx_1=0 x2TEx1=0

从式子中可以看到,本质矩阵约束了空间中同一个三维点,在两个归一化平面坐标之间的联系

2、基础矩阵

再将归一化坐标与像素点坐标的关系 x 1 = K − 1 p 1 x_1=K^{-1}p_1 x1=K1p1 x 2 = K − 1 p 2 x_2=K^{-1}p_2 x2=K1p2 代入式(6),得:
( K − 1 p 2 ) T t ∧ R K − 1 p 1 = 0 (K^{-1}p_2)^Tt^{\wedge}RK^{-1}p_1=0 (K1p2)TtRK1p1=0
p 2 T K − T t ∧ R K − 1 p 1 = 0 (7) p_2^TK^{-T}t^{\wedge}RK^{-1}p_1=0\tag{7} p2TKTtRK1p1=0(7)
将式(7)的中间部分 K − T t ∧ R K − 1 K^{-T}t^{\wedge}RK^{-1} KTtRK1记作 F F F ,即基础矩阵:
p 2 T F p 1 = 0 p_2^TFp_1=0 p2TFp1=0
从式子中可以看到,基础矩阵约束了空间中同一个三维点,在两个成像平面上,像素坐标之间的联系,记住这里的 p 1 , p 2 p_1,p_2 p1p2 3 × 1 3\times 1 3×1 的齐次坐标形式。

可以看出,基础矩阵 F F F 与本质矩阵 E E E 之间只相差相机内参数矩阵 K K K
F = K − T E K − 1 F=K^{-T}EK^{-1} F=KTEK1

3、单应矩阵

(1)前置知识:

平面的表示形式:
n T P + d = 0 n^TP+d=0 nTP+d=0
其中,n是平面的单位法向量,P是平面上一点,d是该平面距离坐标原点的有向距离,如果平面面向原点,则d为正,如果平面背向原点,则d为负。

推导:来自于平面的一般式
A x + B y + C z + D = 0 Ax+By+Cz+D=0 Ax+By+Cz+D=0
一般式中,(A,B,C)为平面的法向量,(x,y,z)为平面上任意一点。而D实际是平面距原点的有向距离。

(0,0,0)到平面的距离:
d = ∣ A × 0 + B × 0 + C × 0 + D ∣ A 2 + B 2 + C 2 = ∣ D ∣ 1 = ∣ D ∣ d=\frac{|A×0+B×0+C×0+D|}{\sqrt{A^2+B^2+C^2}}=\frac{|D|}{1}=|D| d=A2+B2+C2 A×0+B×0+C×0+D=1D=D
在这里,d是无向距离,D是有向距离,有正负的。

所以,由一般式:
A x + B y + C z + 有向距离 = 0 Ax+By+Cz+有向距离=0 Ax+By+Cz+有向距离=0
n T P + 有向距离 = 0 n^TP+有向距离=0 nTP+有向距离=0

(2)单应矩阵:

单应矩阵用于描述处于共同平面上的一些点(三维空间中)在两张图像(二维图像)之间的对应关系。
在这里插入图片描述
如上图所示,空间中存在一平面Π,平面的单位法向量为n,平面上一点P在两台摄像机所拍摄到的图像上的投影为 p 1 , p 2 p_1,p_2 p1p2

设平面Π满足方程:
n T P + d = 0 n^TP+d=0 nTP+d=0
− n T P d = 1 -\frac{n^TP}{d}=1 dnTP=1
由于P在图像 I 2 I_2 I2上的投影为 p 2 p_2 p2
s 2 p 2 = K ( R P + t ) s_2p_2=K(RP+t) s2p2=K(RP+t)
= K ( R P + t ⋅ ( − n T P d ) ) =K(RP+t·(-\frac{n^TP}{d})) =K(RP+t(dnTP))
将P提公因式:
= K ( R − t n T d ) P =K(R-\frac{tn^T}{d})P =K(RdtnT)P
由于:
s 1 p 1 = K P s_1p_1=KP s1p1=KP
s 1 K − 1 p 1 = P s_1K^{-1}p_1=P s1K1p1=P
有:
s 2 p 2 = K ( R − t n T d ) s 1 K − 1 p 1 s_2p_2=K(R-\frac{tn^T}{d})s_1K^{-1}p_1 s2p2=K(RdtnT)s1K1p1
s 2 s 1 p 2 = K ( R − t n T d ) K − 1 p 1 \frac{s_2}{s_1}p_2=K(R-\frac{tn^T}{d})K^{-1}p_1 s1s2p2=K(RdtnT)K1p1

s 1 , s 2 s_1,s_2 s1s2 为尺度,在尺度等价下,有:

p 2 ≅ K ( R − t n T d ) K − 1 p 1 p_2\cong K(R-\frac{tn^T}{d})K^{-1}p_1 p2K(RdtnT)K1p1


K ( R − t n T d ) K − 1 = H K(R-\frac{tn^T}{d})K^{-1}=H K(RdtnT)K1=H
即单应矩阵

p 2 ≅ H p 1 p_2\cong Hp_1 p2Hp1

观察 H H H 的形式能发现,单应矩阵的定义中包含了摄像机的旋转、平移以及平面的相关参数。

4、总结

本质矩阵

x 2 T E x 1 = 0 x_2^TEx_1=0 x2TEx1=0
E = t ∧ R E=t^{\wedge}R E=tR
本质矩阵约束了空间中同一个三维点,在两个归一化平面坐标之间的联系。(归一化平面即Z=1的平面)

基础矩阵

p 2 T F p 1 = 0 p_2^TFp_1=0 p2TFp1=0
F = K − T t ∧ R K − 1 F=K^{-T}t^{\wedge}RK^{-1} F=KTtRK1
F = K − T E K − 1 F=K^{-T}EK^{-1} F=KTEK1
基础矩阵约束了空间中同一个三维点,在两个成像平面上的像素坐标之间的联系。

且基础矩阵 F F F 与本质矩阵 E E E 之间只相差相机内参数矩阵 K K K

单应矩阵

p 2 ≅ H p 1 p_2\cong Hp_1 p2Hp1
H = K ( R − t n T d ) K − 1 H=K(R-\frac{tn^T}{d})K^{-1} H=K(RdtnT)K1
单应矩阵约束了空间中处于某一已知平面上的同一个三维点,在两个成像平面上的像素坐标之间的联系

二、本质矩阵求解

本质矩阵的自由度: E = t ∧ R E=t^{\wedge}R E=tR,是一个 3 × 3 3\times 3 3×3的矩阵,内有9个未知数,因此存在9个自由度。

1.八点法

由于对极约束 x 2 T E x 1 = 0 x_2^TEx_1=0 x2TEx1=0 是等式为零的约束,意思是中间的本质矩阵 E E E 即使经过任意常数 k k k 倍的缩放,等式仍然成立: x 2 T k E x 1 = 0 x_2^TkEx_1=0 x2TkEx1=0
意味着本质矩阵 E E E 与它的 k k k 倍缩放 k E kE kE 是等价效果的,即 E E E 在不同尺度下是等价的:
E ≃ k E E\simeq kE EkE
由于这种性质,可以将 E E E 中所有元素均除以矩阵内任意一个非零元素,如 e 1 e_1 e1
E = [ e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ] ≃ [ e 1 e 1 e 2 e 1 e 3 e 1 e 4 e 1 e 5 e 1 e 6 e 1 e 7 e 1 e 8 e 1 e 9 e 1 ] ≃ [ 1 e 2 e 1 e 3 e 1 e 4 e 1 e 5 e 1 e 6 e 1 e 7 e 1 e 8 e 1 e 9 e 1 ] E=\begin{bmatrix} e_1&e_2&e_3\\ e_4&e_5&e_6\\ e_7&e_8&e_9 \end{bmatrix}\simeq\begin{bmatrix} \frac{e_1}{e_1}&\frac{e_2}{e_1}&\frac{e_3}{e_1}\\ \frac{e_4}{e_1}&\frac{e_5}{e_1}&\frac{e_6}{e_1}\\ \frac{e_7}{e_1}&\frac{e_8}{e_1}&\frac{e_9}{e_1} \end{bmatrix}\simeq\begin{bmatrix} 1&\frac{e_2}{e_1}&\frac{e_3}{e_1}\\ \frac{e_4}{e_1}&\frac{e_5}{e_1}&\frac{e_6}{e_1}\\ \frac{e_7}{e_1}&\frac{e_8}{e_1}&\frac{e_9}{e_1} \end{bmatrix} E= e1e4e7e2e5e8e3e6e9 e1e1e1e4e1e7e1e2e1e5e1e8e1e3e1e6e1e9 1e1e4e1e7e1e2e1e5e1e8e1e3e1e6e1e9
使其中某个元素处的值为1,从而减少一个自由度

在这种情况下,9个自由度的本质矩阵 E E E 可变成8个自由度

考虑一对匹配点,它们的归一化坐标为 x 1 = [ U 1 V 1 1 ] x_1=\begin{bmatrix}U_1\\V_1\\1\end{bmatrix} x1= U1V11 x 2 = [ U 2 V 2 1 ] x_2=\begin{bmatrix}U_2\\V_2\\1\end{bmatrix} x2= U2V21 ,根据本质矩阵约束有:
x 2 T E x 1 = [ U 2 V 2 1 ] [ e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ] [ U 1 V 1 1 ] = 0 x_2^TEx_1=\begin{bmatrix} U_2&V_2&1 \end{bmatrix} \begin{bmatrix} e_1&e_2&e_3\\ e_4&e_5&e_6\\ e_7&e_8&e_9 \end{bmatrix} \begin{bmatrix} U_1\\V_1\\1 \end{bmatrix}=0 x2TEx1=[U2V21] e1e4e7e2e5e8e3e6e9 U1V11 =0
[ U 2 U 1 U 2 V 1 U 2 V 2 U 1 V 2 V 1 V 2 U 1 V 1 1 ] [ e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ] = 0 \begin{bmatrix} U_2U_1&U_2V_1&U_2&V_2U_1&V_2V_1&V_2&U_1&V_1&1 \end{bmatrix}\begin{bmatrix} e_1\\e_2\\e_3\\e_4\\e_5\\e_6\\e_7\\e_8\\e_9 \end{bmatrix}=0 [U2U1U2V1U2V2U1V2V1V2U1V11] e1e2e3e4e5e6e7e8e9 =0
可见,一对匹配点能得到一条方程,求解一个未知数,针对本质矩阵 E E E 的八个自由度,需要求解八个未知数,即需要八对匹配点,组成一个齐次线性方程组:
[ U 2 1 U 1 1 U 2 1 V 1 1 U 2 1 V 2 1 U 1 1 V 2 1 V 1 1 V 2 1 U 1 1 V 1 1 1 U 2 2 U 1 2 U 2 2 V 1 2 U 2 2 V 2 2 U 1 2 V 2 2 V 1 2 V 2 2 U 1 2 V 1 2 1 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ U 2 8 U 1 8 U 2 8 V 1 8 U 2 8 V 2 8 U 1 8 V 2 8 V 1 8 V 2 8 U 1 8 V 1 8 1 ] 8 × 9 [ e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 ] = 0 \begin{bmatrix} U_2^1U_1^1&U_2^1V_1^1&U_2^1&V_2^1U_1^1&V_2^1V_1^1&V_2^1&U_1^1&V_1^1&1\\ U_2^2U_1^2&U_2^2V_1^2&U_2^2&V_2^2U_1^2&V_2^2V_1^2&V_2^2&U_1^2&V_1^2&1\\ \vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\ U_2^8U_1^8&U_2^8V_1^8&U_2^8&V_2^8U_1^8&V_2^8V_1^8&V_2^8&U_1^8&V_1^8&1 \end{bmatrix}_{8\times 9}\begin{bmatrix} e_1\\e_2\\e_3\\e_4\\e_5\\e_6\\e_7\\e_8\\e_9 \end{bmatrix}=0 U21U11U22U12U28U18U21V11U22V12U28V18U21U22U28V21U11V22U12V28U18V21V11V22V12V28V18V21V22V28U11U12U18V11V12V18111 8×9 e1e2e3e4e5e6e7e8e9 =0
解上述齐次线性方程组,即可得到本质矩阵 E E E

2.五点法

本质矩阵 E = t ∧ R E=t^{\wedge}R E=tR,根据本质矩阵的定义,平移有3个自由度,旋转有3个自由度,因此本质矩阵可以缩小到6个自由度,再根据八点法中提到的尺度等价约束,可以再缩小一个自由度,最终本质矩阵实际上可以是5个自由度,即由5对匹配点就可以进行求解。

但由于这种做法形式复杂,而从工程实际角度考虑,实际上两幅图片大概率会有非常多对匹配点,甚至多达上百对,从八点法降低到五点法的意义并不明显。

参考:
1.对极几何 Epipolar Geometry
https://zhuanlan.zhihu.com/p/79845576
2.《视觉SLAM十四讲》——高翔、张涛
3.视觉SLAM中,本质矩阵、基础矩阵、单应性矩阵自由度和秩分析。
https://blog.csdn.net/Walking_roll/article/details/119343924
4.SLAM基础知识补充:多视图几何
https://note.youdao.com/ynoteshare1/index.html?id=5e98f487c40ef22f90e1177f29271be5&type=note

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值