对极几何
-
在第一帧坐标系下,设空间: P = [ x , y , z ] T {P=[x,y,z]^T} P=[x,y,z]T
-
基于针孔相机,两个像素点的位置 s 1 p 1 = K P s_1 p_1 = KP s1p1=KP 和 s 2 p 2 = K ( R P + t ) s_2 p_2 = K(RP+t) s2p2=K(RP+t)
- 其中, R , t R,t R,t为两个坐标系的运动
- 若使用 齐次坐标,则: p 1 = K P p_1 = KP p1=KP 和 p_2 = K(RP+t)$
-
取 x 1 = K − 1 p 1 x_1 = K^{-1}p_1 x1=K−1p1 , x 1 = K − 1 p 2 x_1 = K^{-1}p_2 x1=K−1p2
- 则有: x 2 = R x 1 + t {x_2 = Rx_1 + t} x2=Rx1+t
- 两边同时乘以 t ∧ {t^\wedge} t∧,有: t ∧ x 2 = t ∧ R x 1 {t^\wedge x_2 = t^\wedge Rx_1} t∧x2=t∧Rx1
- 两侧同时乘以 x 2 T x_2^T x2T,有: x 2 T t ∧ x 2 = x 2 T t ∧ R x 1 {x_2^Tt^\wedge x_2 = x_2^T t^\wedge Rx_1} x2Tt∧x2=x2Tt∧Rx1
- 因 t ∧ x 2 {t^\wedge x_2} t∧x2是与 t , x 2 t,x_2 t,x2都垂直的向量,则坐标为0,有: x 2 T t ∧ R x 1 = 0 {x_2^T t^\wedge Rx_1=0} x2Tt∧Rx1=0
-
得到: p 2 T K − T t ∧ R K − 1 p 1 = 0 {p_2^T K^{-T} t^\wedge RK^{-1}p_1 =0} p2TK−Tt∧RK−1p1=0
-
此式为对极几何约束
-
E = t ∧ R E=t^\wedge R E=t∧R 为本质矩阵
-
F = K − T E K − 1 {F=K^{-T}EK^{-1}} F=K−TEK−1 为基础矩阵
-
p 2 T F p 1 = 0 {p_2^T F p_1 =0} p2TFp1=0
-
-
由于 E , F E,F E,F只相差了相机内参,而内参通常在
slam
中是已知的,所以实践当中使用更简单的 E E E。
5点法
- 约束求解:
- 首先对极几何约束: p 2 T F p = 0 {p_2^T F p =0} p2TFp=0
- 可在不知道校准矩阵的情况下考虑基本矩阵,此外,若 k 1 , k 2 {k_1,k_2} k1,k2已知,称相机已经校准,再次情况下,假设图像上的点 p , p 2 p,p_2 p,p2已经预乘了,因此对极几何: p 2 T E p = 0 {p_2^T E p =0} p2TEp=0
- 若把 E E E的9个成员变量完全展开,救护得到一个线性方程,每一个匹配点,可得到一个线性方程,5点法即可得到5个方程。
- 但 E E E 是 3 × 3 3 \times 3 3×3 的矩阵,有9个成员变量,只有5个线性方程,故会得到一个线性解空间,这个解空间有4个自由度。
- 故我们会得到线性解空间: E = x X + y Y + z Z + w W {E=xX+yY+zZ +wW} E=xX+yY+zZ+wW
// Todo