基本矩阵与本质矩阵
基本矩阵与本质矩阵的数学推导:
假设空间中一点(P = [X, Y, Z]^T)。
P在相机A相平面坐标为(P_A = [x_A, y_A, 1]^T);
P在相机B相平面坐标为(P_B = [x_B, y_B, 1]^T);
相机A与相机B的内参矩阵为(K),即可以假设A、B是同一个相机,但是空间位姿不同。
假设:
- (P_A = K · (R_A · P + T_A)) (0)
- (P_A = K · P) (1)
即,设(P)相对与相机A的旋转矩阵(R_A)与平移矩阵(T_A)为初始值((R_A = I, T_A = 0)),因为总要有一个参考系,此处就是假设相机A为参考系。
对相机B又可以得到:
- (P_B = K · (R_B · P + T_B)) (2)
此处,(R_B)、(T_B)示在(P)相机B坐标系的相对于在相机A(初始)坐标系下的旋转与平移。
由(1)得到(P = K^{-1} · P_A) ,
代入(2)得到:
- $P_B = K · (R_B · K^{-1} · P_A + T_B) $ (3)
给"="左右左乘上(K^{-1}),则有:
- (K^{-1} · P_B = R_B · K^{-1} · P_A + T_B) (4)
左右左乘(T_{Bx}) ( (T_{Bx}) 满足 (T_{Bx} · C = T_B imes C))消去(T_B),得到:
- (T_{Bx} · K^{-1} · P_B = T_{Bx} · R_B · K^{-1} · P_A) (5)
对(5)左右左乘((K^{-1} · P_B)^T)得到:
- ((K^{-1} · P_B)^T · T_{Bx} · K^{-1} · P_B = (K^{-1} · P_B)^T · T_{Bx} · R_B · K^{-1} · P_A) (6)
由于(T_{Bx} · (K^{-1} · P_B)) 垂直与 (T_B) 与((K^{-1} · P_B)) ,所以(6)“=” 左边为0, 即:
- ((K^{-1} · P_B)^T · T_{Bx} · R_B · K^{-1} · P_A = 0) (7)
整理得:
- (P_B^T · {K^{-1}}^T · T_{Bx} · R_B · K^{-1} · P_A = 0) (8)
得到的(8)即为最终表达式,又:
- (F = {K^{-1}}^T · T_{Bx} · R_B · K^{-1}) (基础矩阵)
- (E = T_{Bx} · R_B) (本质矩阵)
从而,(B^T · F · P_A = 0) (×)
极线推导:
对(×),可以知道,不同两个位姿拍摄的同一地点的两个(或一个)相机,获取的基础矩阵(F)是固定的。
那么,不妨代入一已知点(P_t = [x_t, y_t, 1]^T),令(P_A = P_t),得:
- (P^T · F · P_t = 0) (9)
其中(F)为[3 x 3]矩阵,(P_t)为[3 x 1]矩阵,那么(F · P_A) 为一个[3 x 1]矩阵,记为(Q = [fp_1, fp_2, fp3]^T)
又(P^T) 为 [1 x 3]矩阵,(P^T = [x, y, 1]),则(P · Q = 0)展开为:
- (x imes fp_1 + y imes fp_2 + fp_3= 0) (10)
因(Q)为已知,故(10)为二元一次方程,可以确定一条直线,称为极线