接上一篇文章中有关对极几何约束的知识,这里主要针对本质矩阵或基础矩阵的一些相关知识进行总结。
概念
在対极几何中 p 2 t K − T t ^ R K − 1 p − 1 = 0 p_{2}^tK^{-T}\hat tRK^{-1}p^{-1}=0 p2tK−Tt^RK−1p−1=0 通过构建俩帧图像中匹配的特征点在归一化平面坐标信息的等式约束关系将旋转矩阵 R R R和平移向量 t t t引入,其中 K − T t ^ R K − 1 K^{-T}\hat tRK^{-1} K−Tt^RK−1就是基础矩阵 F F F, t ^ R \hat tR t^R就是本质矩阵 E E E,俩者之间只相差了相机内参矩阵 K K K,一般情况下内参矩阵都视已知的,因此,可以认为基础矩阵和本质矩阵是一样的,为了方便起见,我们通常用本质矩阵求解相对位姿变换。 F = K − T t ^ R K − 1 F=K^{-T}\hat tRK^{-1} F=K−Tt^RK−1 E = t ^ R E=\hat tR E=t^R
功能
通过配对成功的特征点对获取相对位姿变换信息( R , t R,t R,t)。
步骤
- 构建本质矩阵和旋转矩阵、平移向量之间的等式关系: p 2 T K − T t ^ R K − 1 p − 1 = 0 p_{2}^TK^{-T}\hat tRK^{-1}p^{-1}=0 p2TK−Tt^RK−1p−1=0 x 2 T t ^ R x − 1 = 0 x_{2}^T\hat tRx^{-1}=0 x2Tt^Rx−1=0 [ 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 \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 [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
于是通过八点法,即通过引入8对匹配特征点即可构建出一个8*9的线性方程组,求解的 e 1 ⋯ e 9 e_1 \cdots e_9 e1⋯e9(这里为什么可以通过8线性方程组获取9个未知变量的值,我觉得本质矩阵行列式等于0就是求解最后一个变量的条件)。 - 上述求解获取本质矩阵 E E E可以分解出4格解,通过带入其他的匹配点对进行验证,获取正确的位姿变换信息。 E = U Σ V T E=U\Sigma V^T E=UΣVT W = [ 0 − 1 0 1 0 0 0 0 1 ] W= \begin{bmatrix} 0&-1&0\\1&0&0\\0&0&1\end{bmatrix} W=⎣⎡010−100001⎦⎤ R 1 = U W V T R_1=UWV^T R1=UWVT t ^ 1 = U W U T \hat t_1=UWU^T t^1=UWUT R 2 = U W T V T R_2=UW^TV^T R2=UWTVT t ^ 2 = U W T U T \hat t_2=UW^TU^T t^2=UWTUT
相关链接
求解本质矩阵
E
E
E
在该文章中
S
=
k
U
Z
U
T
S=kUZU^T
S=kUZUT的等式关系是根据反对称矩阵性质获取的,即
S
=
−
S
T
S=-S^T
S=−ST
补充
有关单位旋转矩阵的知识补充
本质矩阵的内在一致性证明
通过上述SVD分解求得的本质矩阵
E
E
E,没有考虑到其内在性质,需要进行调节。
E
=
U
[
1
0
0
0
1
0
0
0
0
]
V
T
E=U\begin{bmatrix} 1&0&0\\0&1&0\\0&0&0\end{bmatrix}V^T
E=U⎣⎡100010000⎦⎤VT