论文“Motion and Structure from Motion in a Piecewise Planar Environment”下载链接
概念
其实单应矩阵描述的就是同一平面的点在不同图像之间的映射关系,相比于基础矩阵或本质矩阵而言,单应矩阵的特点是强调多视图共视点在同一平面上,且用的点更少(4个),因为在单应矩阵 H H H推导的过程中会涉及到该平面上的法向量 n n n和平面到相机中心的距离 d d d。
功能
在共视点在同一平面的情况下,通过俩帧图像对同一些点的共视关系解算出图像帧的相对位姿变换( R , t R,t R,t)。
步骤
- 通过相机与空间点所在平面构建匹配的特征点对之间的关系并引出单应矩阵
H
H
H
2
n
T
P
=
d
n
T
P
d
=
1
p
2
⋍
K
(
R
P
+
t
)
⋍
K
(
R
P
+
t
∗
(
n
T
P
d
)
)
⋍
K
(
R
−
t
n
T
d
)
P
⋍
K
(
R
−
t
n
T
d
)
K
−
1
p
1
\begin{gathered}{2}n^TP=d \\\frac{n^TP}{d}=1\\\\p_2\backsimeq K\left (RP+t \right)\\\backsimeq K(RP+t*(\frac{n^TP}{d}))\\\backsimeq K(R-\frac{tn^T}{d})P\\\backsimeq K(R-\frac{tn^T}{d})K^-1p_1\end{gathered}
2nTP=ddnTP=1p2⋍K(RP+t)⋍K(RP+t∗(dnTP))⋍K(R−dtnT)P⋍K(R−dtnT)K−1p1
其中 K ( R − t n T d ) K − 1 K(R-\frac{tn^T}{d})K^-1 K(R−dtnT)K−1就是单应矩阵 H H H, K K K对应相机内参矩阵, p 1 , p 2 p_1,p_2 p1,p2分别是俩帧图像对同一空间点在像素平面上的像素坐标。 - 求解
H
H
H矩阵:
( u 2 v 2 1 ) ⋍ ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) ( u 1 v 1 1 ) \begin{pmatrix} u_2 \\ v_2 \\ 1 \end{pmatrix}\backsimeq \begin{pmatrix} h_1&h_2&h_3\\ h_4&h_5&h_6\\ h_7&h_8&h_9 \end{pmatrix} \begin{pmatrix} u_1\\ v_1\\ 1 \end{pmatrix} ⎝⎛u2v21⎠⎞⋍⎝⎛h1h4h7h2h5h8h3h6h9⎠⎞⎝⎛u1v11⎠⎞
取 h 9 = 1 h_9=1 h9=1时上述矩阵方程可以获取以下俩个线性方程。
h 1 u 1 + h 2 v 1 + h 3 − h 7 u 1 u 2 − h 8 v 1 u 2 = u 2 h 4 u 1 + h 5 v 1 + h 6 − h 7 u 1 v 2 − h 8 v 1 v 2 = v 2 \begin{gathered} h_1u_1+h_2v_1+h_3 -h_7u_1u_2-h_8v_1u_2=u_2\\ h_4u_1+h_5v_1+h_6 -h_7u_1v_2-h_8v_1v_2=v_2 \end{gathered} h1u1+h2v1+h3−h7u1u2−h8v1u2=u2h4u1+h5v1+h6−h7u1v2−h8v1v2=v2
取 h 9 = 0 h_9=0 h9=0时上述矩阵方程可以获取以下俩个线性方程。
h 1 u 1 + h 2 v 1 + h 3 − h 7 u 1 u 2 − h 8 v 1 u 2 = 0 h 4 u 1 + h 5 v 1 + h 6 − h 7 u 1 v 2 − h 8 v 1 v 2 = 0 \begin{gathered} h_1u_1+h_2v_1+h_3 -h_7u_1u_2-h_8v_1u_2=0\\ h_4u_1+h_5v_1+h_6 -h_7u_1v_2-h_8v_1v_2=0 \end{gathered} h1u1+h2v1+h3−h7u1u2−h8v1u2=0h4u1+h5v1+h6−h7u1v2−h8v1v2=0
每对匹配的特征点都可以构建2个线性方程,因此求解 H H H矩阵需要4对匹配的特征点对(任意3个对应的空间点不能共线),通过求解下列线性方程组获取单应矩阵。
( u 1 1 v 1 1 1 0 0 0 − u 1 1 u 2 1 − v 1 1 u 2 1 0 0 0 u 1 1 v 1 1 1 − u 2 1 v 2 1 − v 1 1 v 2 1 u 1 2 v 1 2 1 0 0 0 − u 1 2 u 2 2 − v 1 2 u 2 2 0 0 0 u 1 2 v 1 2 1 − u 2 2 v 2 2 − v 1 2 v 2 2 u 1 3 v 1 3 1 0 0 0 − u 1 3 u 2 3 − v 1 3 u 2 3 0 0 0 u 1 3 v 1 3 1 − u 2 3 v 2 3 − v 1 3 v 2 3 u 1 4 v 1 4 1 0 0 0 − u 1 4 u 2 4 − v 1 4 u 2 4 0 0 0 u 1 4 v 1 4 1 − u 2 4 v 2 4 − v 1 4 v 2 4 ) ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 ) = ( 0 0 0 0 0 0 0 0 ) \begin{pmatrix} u^1_1& v^1_1&1&0&0&0&-u^1_1u^1_2&-v^1_1u^1_2 \\0&0&0&u^1_1& v^1_1&1&-u^1_2v^1_2&-v^1_1v^1_2\\u^2_1& v^2_1&1&0&0&0&-u^2_1u^2_2&-v^2_1u^2_2 \\0&0&0&u^2_1& v^2_1&1&-u^2_2v^2_2&-v^2_1v^2_2\\u^3_1& v^3_1&1&0&0&0&-u^3_1u^3_2&-v^3_1u^3_2 \\0&0&0&u^3_1& v^3_1&1&-u^3_2v^3_2&-v^3_1v^3_2\\u^4_1& v^4_1&1&0&0&0&-u^4_1u^4_2&-v^4_1u^4_2 \\0&0&0&u^4_1& v^4_1&1&-u^4_2v^4_2&-v^4_1v^4_2\\ \end{pmatrix} \begin{pmatrix}h_1\\h_2\\h_3\\h_4\\h_5\\h_6\\h_7\\h_8\end{pmatrix}= \begin{pmatrix}0\\0\\0\\0\\0\\0\\0\\0 \end{pmatrix} ⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛u110u120u130u140v110v120v130v140101010100u110u120u130u140v110v120v130v1401010101−u11u21−u21v21−u12u22−u22v22−u13u23−u23v23−u14u24−u24v24−v11u21−v11v21−v12u22−v12v22−v13u23−v13v23−v14u24−v14v24⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛h1h2h3h4h5h6h7h8⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛00000000⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞ - 从 H H H矩阵中解算旋转矩阵和平移向量,根据“Motion and Structure from Motion in a Piecewise Planar Environment”中的推导过程结合 d ′ > 0 d'>0 d′>0和 d ′ < 0 d'<0 d′<0俩种情况共有8种解,通过给定的数据判断那种解更符合实际情况,偏差最小,该解就是正确的解。
链接
单应矩阵原理说明
单应矩阵推导过程
单应矩阵解算
R
,
t
R,t
R,t公式推导