多视图几何总结——基础矩阵、本质矩阵和单应矩阵的自由度分析
多视图几何总结——基础矩阵、本质矩阵和单应矩阵的自由度分析
总结
首先给出结论,矩阵的自由度反应了矩阵中每个元素的约束的状态,基础矩阵(Fundmental Matrix)具有7个自由度,本质矩阵(Essential Matrix)具有5个自由度,单应矩阵(Homography Matrix)具有8个自由度,通过对自由度的分析,可以进一步了解各个矩阵的性质,下面逐个对其自由度进行分析
基础矩阵自由度
基础矩阵的定义:在对极几何中存在一个从一幅图像上的点到另一幅图像与之对应的极线的映射,基础矩阵即表示该射影映射
(1)几何推导
基本矩阵(F矩阵)可以分解为两步,第一步是将
x
x
x通过射影变换映射到
x
′
x'
x′;第二步是连接
x
′
x'
x′和极点
e
′
e'
e′即获得对极线
l
′
l'
l′。
第一步可以通过下图理解,
X
X
X是空间中的点,而
x
,
x
′
x,x'
x,x′分别是它在两幅图像上的投影点,应为
x
,
x
′
x,x'
x,x′在同意平面上,因此存在一个射影变换
H
π
H_\pi
Hπ。
下图是多视图几何第二章中解释射影变换的几个例子,对极几何就属于其中的第一种。
第二步可以理解为,过
x
′
x'
x′和极点
e
′
e'
e′的对极线可以记为
l
′
=
e
′
×
x
′
=
[
e
′
]
×
x
‘
l' = e'×x'=[e']_×x‘
l′=e′×x′=[e′]×x‘ 。
综上两步有
l
’
=
[
e
′
]
×
H
π
x
=
F
x
l’=[e']_×H_\pi x=Fx
l’=[e′]×Hπx=Fx由此可以过得F矩阵的几何定义形式,
[
e
′
]
×
[e']_×
[e′]×秩为2(反对称矩阵的秩为偶数,可以通过SVD分解证明),
H
π
H_\pi
Hπ的秩为3,因此F矩阵的秩为2,因此F矩阵是不可逆矩阵。
下面来分析F矩阵的自由度,首先F矩阵是三阶的,最高自由度为9,然后其满足尺度等价性(因为图像坐标是通过齐次坐标表示,因此你矩阵同乘一个常数,最后求得的坐标其实是一致的,可以理解为
H
33
H_{33}
H33衡等于1,或者满足一个约束等式),因此自由度减一,再其次其满足不可逆矩阵的性质,行列式为零的约束等式,因此自由度再减一,因此自由度为7
(2)代数推导
代数的推导可以参看这个知乎知乎回答本质矩阵和基础矩阵的区别是什么,我觉得已经回答得很好了,就不再复述了(主要是敲公式实在太慢),大致思想就是把一幅图像上的投影点通过反投影获得空间中的点,然后将这个空间点和这幅图像对应的相机中心(也是一个空间点)投影到另外一幅图像上去,作这两个点的叉乘就可以获得对极线,推得结果如下 l ′ = [ P ′ C ] × P ′ P † x = [ e ′ ] × P ′ P † x = F x l' = [P'C]_{\times} {P}'{P}^\dagger x = [{e}']_{\times} {P}'{P}^\dagger x = Fx l′=[P′C]×P′P†x=[e′]×P′P†x=Fx其中, C C C就是摄像机的中心,满足 P C = 0 PC=0 PC=0(其实 C = ( 0 , 0 , 1 ) T C=(0,0,1)^T C=(0,0,1)T),上述结果和几何推导的结果是一致的,其自由度分析也同上。
(3)直观理解
假设 l , l ′ l,l' l,l′是两幅图像的对极线,则 l l l上的所有点都可以映射到同一极线 l ′ l' l′上,即这个点到线的映射是不存在逆映射的,因此 F F F矩阵不是满秩的,自由度分析同上。
补充:在相机纯平移运动时,F矩阵自由度退化为2,在纯平面运动时,自由度退化为6。
本质矩阵自由度
本质矩阵是归一化坐标系下基础矩阵的特殊形式,通过上面的推到已经知道F矩阵满足: F = [ e ′ ] × P ′ P † = [ P ′ C ] × P ′ P † {F} = [{e}']_{\times} {P}'{P}^\dagger = [P'C]_{\times} {P}'{P}^\dagger F=[e′]×P′P†=[P′C]×P′P†假设 F F F矩阵是两个个已标定的摄像机的变换矩阵且世界坐标系在第一个摄像机上: P = K [ I ∣ 0 ] P ′ = K ′ [ R ∣ t ] P = K[I|0]\space\space\space\space\space\space P'=K'[R|t] P=K[I∣0] P′=K′[R∣t] E E E矩阵是归一化坐标系下的变换矩阵,因此 K K K和 K ′ K' K′可以视为单位矩阵,带入上式即可得 E = [ t ] × R E=[t]_×R E=[t]×R由此可得,本质矩阵(E矩阵)平移 t t t的待自由度是3(xyz三个方向),旋转矩阵 R R R的自由度是3(row,pitch,yaw三个方向),所以其自由度最高是6,同时 E E E满足尺度等价性约束,所以 E E E的自由度减一,其自由度为5。
单应矩阵自由度
单应矩阵所有的空间点都再同一个平面上,则两幅图像中的点都满足同一个射影变换,该射影变换即单应矩阵,射影变换的自由度为9,其同样具有尺度等价性(因为图像坐标是通过齐次坐标表示,因此你矩阵同乘一个常数,最后求得的坐标其实是一致的),因此自由度减一,其自由度为8。
上述自由度分析或者推导中如有问题,欢迎指正。
此外,对SLAM算法感兴趣的同学可以看考我的博客SLAM算法总结——经典SLAM算法框架总结