单应变换 (Homography)
1 定义
单应 (Homography) 是射影几何中的概念,又称为射影变换。它把一个射影平面上的点 (三维齐次矢量) 映射到另一个射影平面上,并且把直线映射为直线,具有保线性质。总的来说,单应是关于三维齐次矢量的一种线性变换,可以用一个 3 \times 3 的非奇异矩阵 H 表示。
设两幅图像上有一对平面上的齐次坐标 \boldsymbol{p}_{1}=\begin{bmatrix} x_1 \\ y_1 \\ 1 \end{bmatrix} 和 \boldsymbol{p}_{2}=\begin{bmatrix} x_2 \\ y_2 \\ 1 \end{bmatrix}。二者之间满足如下关系:
\begin{bmatrix} x_2 \\ y_2 \\ 1 \end{bmatrix} = H \begin{bmatrix} x_1 \\ y_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} x_1 \\ y_1 \\ 1 \end{bmatrix}\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{P}=\begin{bmatrix} X \\ Y \\ Z \end{bmatrix} 在两幅图像上匹配好的特征点 \boldsymbol{p}_{1} 和 \boldsymbol{p}_{2}。这些特征点落在某平面上。设这个平面满足方程:
\boldsymbol{n}^{T} \boldsymbol{P}+d=0\tag{2}
整理得:
-\frac{\boldsymbol{n}^{T} \boldsymbol{P}}{d}=1\tag{3}
再由相机模型投影公式:
s_{1} \boldsymbol{p}_{1}=\boldsymbol{K} \boldsymbol{P}, \quad s_{2} \boldsymbol{p}_{2}=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t})\tag{4}
可得:
\begin{aligned}
\boldsymbol{p}_{2} &=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t}) \\
&=\boldsymbol{K}\left(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t} \cdot\left(-\frac{\boldsymbol{n}^{T} \boldsymbol{P}}{d}\right)\right) \\
&=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t} \boldsymbol{n}^{T}}{d}\right) \boldsymbol{P} \\
&=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t} \boldsymbol{n}^{T}}{d}\right) \boldsymbol{K}^{-1} \boldsymbol{p}_{1}
\end{aligned}\tag{5}
则可得单应矩阵为:
\boldsymbol{p}_{2}=\boldsymbol{H} \boldsymbol{p}_{1}=\boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t n}^{T}}{d}\right) \boldsymbol{K}^{-1} \boldsymbol{p}_{1}\tag{6}
所以:
\boldsymbol{H} = \boldsymbol{K}\left(\boldsymbol{R}-\frac{\boldsymbol{t n}^{T}}{d}\right) \boldsymbol{K}^{-1}\tag{7}
参考文献
[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 十四讲》