SLAM前端:本质矩阵、基础矩阵、单应矩阵

本质矩阵描述了相机内参已知的情况下同一个点不同视角下的关系,5自由度。即已知同一个点在两帧图像下的座标,两个座标、相机内参、本质矩阵满足对极约束条件(1-1)。

基础矩阵描述了同一个点在不同视角下的关系,7自由度。

单应矩阵描述了同一平面上的点在不同视角下的关系、即两个相机座标系下的变换关系,9自由度。

这三个矩阵都用于求解相机的位姿,单应矩阵适合平面场景,其余两个适合普通场景。

1 本质矩阵(Essential Matrix)

本质矩阵由对极约束定义,对极约束的推导过程见SLAM前端:对极几何、三角测量对极约束如下:

                                                                             p_2^T{K^{-1}}^Tt^\wedge RK^{-1}p_1 = 0                                       (1-1)

本质矩阵的定义:

                                                                                      E= t^\wedge R                                                       (1-2)

一般对极几何求解R、t时不通过直接求解方程组得到,一般通过求解本质矩阵E再矩阵分解得到R与t。由于矩阵E包含了旋转信息R(3自由度)与平移信息t(3自由度),并且对于式(1-2)等式左右乘以一个数等式依旧成立,一次本质矩阵E没有尺度信息,少一个自由度,因此为5自由度。

2 基础矩阵(Fundamental Matrix)

基础矩阵同样由对极约束定义,满足对极约束条件(1-1),定义如下:

                                                                              F= {K^{-1}}^Tt^\wedge RK^{-1}                                               (1-3)

相比本质矩阵E,基础矩阵包含了相机内参信息K。基础矩阵F的自由度为7,9个位置参数满足尺度统一性并且F的行列式为0。为什么F的行列式为0?因为t^\wedge R的秩为2,并且K矩阵满秩可逆。矩阵乘以可逆矩阵,该矩阵的秩不变。

为什么t^\wedge R的秩为2?因为R可逆,矩阵t^\wedge的秩为2。

为什么矩阵t^\wedge的秩为2?对其进行初等变换如下:

                                          $\left[ \begin{matrix} 0 & -t_3 &t_2 \\ t_3 & 0 &-t_1\\ -t_2 & t_1 & 0 \end{matrix} \right] -> $\left[ \begin{matrix} 0 & -t_3 &t_2 \\ t_2t_3 & 0 &-t_2t_1\\ -t_2t_3 & t_1t_3 & 0 \end{matrix} \right] -> $\left[ \begin{matrix} 0 & 0 &0 \\ 0 & t_3 &-t_2\\ -t_2 & t_1 & 0 \end{matrix} \right] $

初等变换不改变矩阵的秩。也可以直接用定理:反对称矩阵的行列式为0,矩阵不满秩。

3 单应矩阵

单应矩阵用于描述共同平面上的点在两张图之间的对应关系。如果图像I_1,I_2上的匹配点p_1,p_2位于平面P(x,y,z)上,则有:            

                                                                                      n^TP+d=0

n为法向量。可以得到:

                                                                                       -\frac{n^TP}{d}=0

对于平面P上的某一点P_0,假设在I_1上的投影点为p_1,在I_2上的投影点为p_2I_1,I_2的变换关系为R,t。可以得到:

                                          p_2 = K(RP_0+t)= K(RP_0+t\cdot (-\frac{n^TP_0}{d}))=K(R-\frac{tn^T}{d})P_0

p_1 = KP_0,即P_0 = K^{-1}p_1得到:

                                                                              p_2 =K(R-\frac{tn^T}{d})K^{-1}p_1

定义单应矩阵为:

                                                                              H =K(R-\frac{tn^T}{d})K^{-1}

自由度为9。

参考链接:多视图几何

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章