对极几何是两幅视图之间内在的射影几何。存在3维空间点,在两个不同的视角拍摄,在两幅图中分别存在两个图像点,这两个图像点之间具有某种几何关系。本文就主要推导他们之间的关系。
O1和O2 为两个相机中心, O1与O2的连线与两幅图的交点e1和e2称为极点,p1和p2 分别是世界坐标点P在两个相机上的投影点。p1e1、p2e2为极线,PO1O2构成的平面为极平面。
令p1e1的线为l1, p2e2的直线为l2。事实上P在O1上的投影点p1, 如果想确定P在O2的投影位置,那么p2一定在O2中的l2线上。
根据相机投影关系,以O1为世界坐标的原点。
M 1 = K [ I ∣ 0 ] , M 2 = K [ R ∣ t ] M_1 = K[I|0], M_2=K[R|t] M1=K[I∣0],M2=K[R∣t]
为了方便讨论,这里令p1和p2为归一化平面的坐标点,x1和x2为对应点像素坐标。
用p2点表示p1,则:
p
2
=
R
p
1
+
t
∵
p
1
=
R
T
(
p
2
−
t
)
p2 = Rp1+t \\ \because{p1=R^T(p2-t)}
p2=Rp1+t∵p1=RT(p2−t)
根据相机模型,计算相机O2在相机O1的向量:
相机O1O2的向量为
R
T
t
R^Tt
RTt,
这两个向量都在极平面上。根据叉乘原理,那么得到的结果向量垂直于极平面。
(
R
T
t
)
×
(
R
T
(
p
2
−
t
)
)
=
(
R
T
t
)
×
(
R
T
p
2
)
=
R
T
(
t
×
p
2
)
(R^Tt)\times(R^T(p_2-t))=(R^Tt)\times(R^Tp_2)=R^T(t\times{p_2})
(RTt)×(RT(p2−t))=(RTt)×(RTp2)=RT(t×p2)
向量p1与上式向量是垂直关系,那么两个向量的点乘结果为0.
(
R
T
(
t
×
p
2
)
)
T
p
1
=
0
∵
(
t
×
p
2
)
T
R
p
1
=
0
(R^T(t\times{p_2}))^Tp_1=0 \\ \because (t\times{p_2})^TRp_1=0
(RT(t×p2))Tp1=0∵(t×p2)TRp1=0
根据两个向量叉乘的性质:
a
=
[
a
0
a
1
a
2
]
T
a
×
b
=
[
0
−
a
2
a
1
a
2
0
−
a
0
−
a
1
a
0
0
]
=
[
a
×
]
b
a=\left[\begin{matrix} a_0 & a_1 & a_2\end{matrix}\right]^T \\ a\times{b}=\left[\begin{matrix} 0 & -a_2 & a_1 \\ a_2 & 0 & -a_0 \\ -a_1 & a_0 & 0\end{matrix}\right] = [a_\times]b
a=[a0a1a2]Ta×b=⎣⎡0a2−a1−a20a0a1−a00⎦⎤=[a×]b
所以有
(
t
×
p
2
)
T
R
p
1
=
(
[
t
×
]
p
2
)
T
R
p
1
p
2
T
[
t
×
]
T
R
p
1
=
0
(t\times{p_2})^TRp_1=([t_\times]p_2)^TRp_1\\p^{T}_{2}[t_\times]^TRp_1=0
(t×p2)TRp1=([t×]p2)TRp1p2T[t×]TRp1=0
其中: [ t × ] R = E [t_\times]R=E [t×]R=E,则 p 2 T E p 1 = 0 p^{T}_{2}Ep_1=0 p2TEp1=0
由于p1,p2 为归一化坐标,那么考虑到内参矩阵K和像素坐标x1、x2的关系:
p
1
=
K
−
1
x
1
p
2
=
K
−
1
x
2
p_1= K^{-1}x_1 \\ p_2=K^{-1}x_2
p1=K−1x1p2=K−1x2
代入上式:
(
K
−
1
x
2
)
T
E
K
−
1
x
1
=
x
2
T
K
−
T
E
K
−
1
x
1
∵
K
−
T
E
K
−
1
=
F
x
2
T
F
x
1
=
0
(K^{-1}x_2)^TEK^{-1}x_1 \\ = x^T_{2}K^{-T}EK^{-1}x_1\\ \because{K^{-T}EK^{-1}=F} \\ x^T_{2}Fx_1=0
(K−1x2)TEK−1x1=x2TK−TEK−1x1∵K−TEK−1=Fx2TFx1=0
那么基础矩阵和本质矩阵之间的关系:
K
−
T
E
K
−
1
=
F
{K^{-T}EK^{-1}=F}
K−TEK−1=F
基础矩阵表达的是两个图像的像素点之间的关系,而本质矩阵与相机的内参有关,表达的是相机坐标点之间的关系,根据E矩阵,可以分解出两个视图之间的姿态R和t,一般先计算出F矩阵,K矩阵已知,那么就可以就求出E矩阵,分解出相机的姿态。
基础矩阵的性质:
- 已知第一幅图像素点坐标x1,那么第二幅图的极线为 l2 = Fx1
- 已知第二幅图像素点坐标x2,那么第一幅图的极线为 l1 = F’x2
- F是奇异矩阵,秩为2,是一个由两维到一维的映射
- F是3x3的矩阵,自由度为7
本质矩阵的性质:
- 已知O1的相机坐标为p1,那么O2相机对应的极线为 l2 = Ep1
- 已知O2的相机坐标为p2,那么O1相机对应的极线为 l1 = E’p2
- E是奇异矩阵,秩为2
- E是3x3的矩阵,自由度为5
关于F矩阵和E矩阵的求解,下篇文章再续。
参考:
https://web.stanford.edu/class/cs231a/course_notes/03-epipolar-geometry.pdf
http://vision.stanford.edu/teaching/cs231a_autumn1112/lecture/lecture9_epipolar_geometry_cs231a.pdf