Have a Question?

单应变换 | Homography

You are here:

1 定义


单应 (Homography) 是射影几何中的概念,又称为射影变换。它把一个射影平面上的点 (三维齐次矢量) 映射到另一个射影平面上,并且把直线映射为直线,具有保线性质。总的来说,单应是关于三维齐次矢量的一种线性变换,可以用一个 \(3 \times 3\) 的非奇异矩阵 \(H\) 表示。

设两幅图像上有一对平面上的齐次坐标 \(\boldsymbol{p}_{1}=\begin{bmatrix} u_1 \\ v_1 \\ 1 \end{bmatrix}\) 和 \(\boldsymbol{p}_{2}=\begin{bmatrix} u_2 \\ v_2 \\ 1 \end{bmatrix}\)。二者之间满足如下关系:

\(\boldsymbol{p}_{2} = \begin{bmatrix} u_2 \\ v_2 \\ 1 \end{bmatrix} = H \begin{bmatrix} u_1 \\ v_1 \\ 1 \end{bmatrix} = \begin{bmatrix} h_{00} & h_{01} & h_{02} \\ h_{10} & h_{11} & h_{12} \\ h_{20} & h_{21} & h_{22} \\ \end{bmatrix} \begin{bmatrix} u_1 \\ v_1 \\ 1 \end{bmatrix}=H \boldsymbol{p}_{1}\tag{1}\)

其中 \(H = \begin{bmatrix} h_{00} & h_{01} & h_{02} \\ h_{10} & h_{11} & h_{12} \\ h_{20} & h_{21} & h_{22} \\ \end{bmatrix}\) 就是单应性矩阵。

2 推导


考虑在图像 \(I_1\) 和 \(I_2\),以及空间中的特征点 \(\boldsymbol{X}=\begin{bmatrix} X \\ Y \\ Z \end{bmatrix}\) 在两幅图像对应的归一化图像平面上的点分别为 \(\boldsymbol{x}_{1}=\begin{bmatrix} x_1 \\ y_1 \\ 1 \end{bmatrix}\) 和 \(\boldsymbol{x}_{2}=\begin{bmatrix} x_2 \\ y_2 \\ 1 \end{bmatrix}\)。这些特征点 \(\boldsymbol{X}\) 都落在某平面上。设这个平面满足方程:
\(\boldsymbol{n}^{T} \boldsymbol{X}+d=0\tag{2}\)
整理得:
\(-\frac{\boldsymbol{n}^{T} \boldsymbol{X}}{d}=1\tag{3}\)

再由相机模型投影公式:
\(s_{1} \boldsymbol{x}_{1}=\boldsymbol{K} \boldsymbol{X}, \quad s_{2} \boldsymbol{x}_{2}=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{X}+\boldsymbol{t})\tag{4}\)

可得:
\(\begin{aligned}
s_{2}\boldsymbol{x}_{2} &=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{X}+\boldsymbol{t}) \\
&=\boldsymbol{K}\left(\boldsymbol{R} \boldsymbol{X}+\boldsymbol{t} \cdot\left(-\frac{\boldsymbol{n}^{T} \boldsymbol{X}}{d}\right)\right) \\
&=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t} \boldsymbol{n}^{T}}{d}\right) \boldsymbol{X} \\
&=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t} \boldsymbol{n}^{T}}{d}\right) s_{1}\boldsymbol{K}^{-1} \boldsymbol{x}_{1}
\end{aligned}\tag{5}\)

则可得单应矩阵为:
\(s\boldsymbol{x}_{2}=\boldsymbol{H} \boldsymbol{x}_{1}=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t n}^{T}}{d}\right) \boldsymbol{K}^{-1} \boldsymbol{x}_{1}\tag{6}\)

其中 \(s=\frac{s_2}{s_1}\)。
从归一化图像平面坐标 \(\boldsymbol{x}_{2}\) 到 \(\boldsymbol{H}\boldsymbol{x}_{1}\) 存在一个尺度因子,因此可以认为近似相等:
\(\boldsymbol{x}_{2} \simeq
\boldsymbol{H} \boldsymbol{x}_{1}\tag{7}\)

所以我们推导出单应矩阵的表达式:
\(\boldsymbol{H} = \boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t n}^{T}}{d}\right) \boldsymbol{K}^{-1}\tag{8}\)

参考文献

[1] https://zh.wikipedia.org/wiki/%E5%8D%95%E5%BA%94%E6%80%A7
[2] https://www.cnblogs.com/wangguchangqing/p/8287585.html
[3] https://scm_mos.gitlab.io/vision/homography-matrix/
[4] 《视觉 SLAM 十四讲》
[5] https://blog.csdn.net/heyijia0327/article/details/53782094
[6] https://www.cnblogs.com/wangguchangqing/p/8287585.html
[7] https://blog.csdn.net/heyijia0327/article/details/53782094

Add a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

Table of Contents