有共视平面的影像间H矩阵推导

空间中多影像若同时观测到一物方平面,那么该平面对应的像方部分之间肯定存一定的H矩阵映射关系,已知此物方平面及影像在世界坐标系中或影像之间的相对位姿,怎么推导影像之间的H矩阵呢?

推导至物方

引入一平面纹理坐标系,推导所有影像至此纹理坐标系的H矩阵:

已知:投影矩阵 \(P\)

未知:像方至纹理的单应矩阵 \(H\)

  • 像方坐标系-->纹理坐标系 \[ \begin{equation} \begin{bmatrix}X_t\\Y_t\\1 \end{bmatrix} = H\cdot \begin{bmatrix}u\\v\\1 \end{bmatrix} \end{equation} \]

  • 世界坐标系-->像方坐标系 \[ \begin{equation} \begin{bmatrix}u\\v\\1 \end{bmatrix}= P \cdot \begin{bmatrix}X_w\\Y_w\\Z_w\\1 \end{bmatrix} \end{equation} \]

  • 纹理坐标系-->世界坐标系 \[ \begin{equation} \begin{bmatrix}X_w\\Y_w\\Z_w\\1 \end{bmatrix}= \begin{bmatrix} R_{t2w} &t_{t2w}\\ 0&1 \end{bmatrix}\cdot \begin{bmatrix}X_t\\Y_t\\0\\1 \end{bmatrix} \end{equation} \]

  • 将公式(2)代入公式(1) 建立像方坐标系和物方纹理坐标系之间的关系 \[ \begin{equation} \begin{bmatrix}u\\v\\1 \end{bmatrix}= P \cdot \begin{bmatrix} R_{t2w} &t_{t2w}\\ 0&1 \end{bmatrix}\cdot \begin{bmatrix}X_t\\Y_t\\0\\1 \end{bmatrix} \end{equation} \]

  • 将公式(3)后部分展开 \[ \begin{equation} \begin{bmatrix}u\\v\\1 \end{bmatrix}= P \cdot \begin{bmatrix} r_{11_{t2w}}&r_{12_{t2w}}&r_{13_{t2w}}&t_{1_{t2w}}\\ r_{21_{t2w}}&r_{22_{t2w}}&r_{23_{t2w}}&t_{2_{t2w}}\\ r_{31_{t2w}}&r_{32_{t2w}}&r_{33_{t2w}}&t_{3_{t2w}}\\ \end{bmatrix}\cdot \begin{bmatrix}X_t\\Y_t\\0\\1 \end{bmatrix} \end{equation} \]

  • 由公式(4)可知,\([r_{13_{t2w}} r_{23_{t2w}} r_{33_{t2w}}]^T\)都是与零相乘,因此该列可以为任何值,则可以改写成 \[ \begin{equation} \begin{bmatrix}u\\v\\1 \end{bmatrix}= P \cdot \begin{bmatrix} r_{11_{t2w}}&r_{12_{t2w}}&0&t_{1_{t2w}}\\ r_{21_{t2w}}&r_{22_{t2w}}&0&t_{2_{t2w}}\\ r_{31_{t2w}}&r_{32_{t2w}}&0&t_{3_{t2w}}\\ \end{bmatrix}\cdot \begin{bmatrix}X_t\\Y_t\\0\\1 \end{bmatrix} \end{equation} \]

  • 将公式(5)进一步简化,得到像方影像和纹理坐标系平面之间的关系 \[ \begin{equation} \begin{bmatrix}u\\v\\1 \end{bmatrix}= P \cdot \begin{bmatrix} r_{11_{t2w}}&r_{12_{t2w}}&t_{1_{t2w}}\\ r_{21_{t2w}}&r_{22_{t2w}}&t_{2_{t2w}}\\ r_{31_{t2w}}&r_{32_{t2w}}&t_{3_{t2w}}\\ \end{bmatrix}\cdot \begin{bmatrix}X_t\\Y_t\\1 \end{bmatrix} \end{equation} \]

  • 设中间矩阵 \(h\)\[ \begin{equation} h=P \cdot \begin{bmatrix} r_{11_{t2w}}&r_{12_{t2w}}&t_{1_{t2w}}\\ r_{21_{t2w}}&r_{22_{t2w}}&t_{2_{t2w}}\\ r_{31_{t2w}}&r_{32_{t2w}}&t_{3_{t2w}}\\ \end{bmatrix} \end{equation} \]

  • 则像素坐标系-->纹理坐标系 \[ \begin{equation} \begin{bmatrix}X_t\\Y_t\\1 \end{bmatrix} = h^{\text{-1}} \cdot \begin{bmatrix}u\\v\\1 \end{bmatrix} \end{equation} \]

  • 注意,像方坐标系和物方坐标系的尺度不统一,而且转换后的坐标可能出现负值,因此还需要添加坐标偏置和尺度如公式(9),其中\({\lambda}\)为尺度、\(\Delta x\)\(\Delta y\)为偏置。 \[ \begin{equation} \begin{bmatrix}X_t\\Y_t\\1 \end{bmatrix}= \begin{bmatrix} \lambda&0&\lambda \Delta x\ \\ 0&\lambda&\lambda \Delta y\ \\ 0&0&1 \end{bmatrix} \cdot\ h^{\text{-1}}\cdot \begin{bmatrix}u\\v\\1 \end{bmatrix} \end{equation} \]

  • 最终 \(H\)\[ \begin{equation} H= \begin{bmatrix} \lambda&0&\lambda \Delta x\ \\ 0&\lambda&\lambda \Delta y\ \\ 0&0&1 \end{bmatrix} \cdot\ h^{\text{-1}} \end{equation} \]

推导至像方

推导所有影像至某一张影像的H矩阵

已知:影像间相对位姿 \(R_{12}\)\(t_{12}\);物方平面方程

未知:影像间单应矩阵 \(H_{12}\)

思路:像素坐标系1 --> 相机坐标系1 --> 相机坐标系2 --> 像素坐标系2

  • 像素坐标系1-->像素坐标系2 \[ \begin{equation} \begin{bmatrix}u_2\\v_2\\1 \end{bmatrix}=H_{12}\cdot \begin{bmatrix}u_1\\v_1\\1 \end{bmatrix} \end{equation} \]

  • 相机坐标系1-->像素坐标系1 \[ \begin{equation} \begin{bmatrix}u_1\\v_1\\1 \end{bmatrix}=K_1\cdot \begin{bmatrix}X_1\\Y_1\\Z_1 \end{bmatrix} \end{equation} \]

  • 相机坐标系2-->像素坐标系2 \[ \begin{equation} \begin{bmatrix}u_2\\v_2\\1 \end{bmatrix}=K_2\cdot \begin{bmatrix}X_2\\Y_2\\Z_2 \end{bmatrix} \end{equation} \]

  • 相机坐标系1-->相机坐标系2 \[ \begin{equation} \begin{bmatrix}X_2\\Y_2\\Z_2 \end{bmatrix}=R_{12}\cdot \begin{bmatrix}X_1\\Y_1\\Z_1 \end{bmatrix}+t_{12} \end{equation} \]

  • 设物方平面方程为 \(ax + by + cz +d = 0\) ,平面法向量 \(n=[a, b, c]\) ,则在相机坐标系1下此平面法向量 \(n_1\)\(d_1\)\[ \begin{equation} d_1 = n\cdot C_1 +d \end{equation} \]

    \[ \begin{equation} n_1=R_1\cdot n \end{equation} \]

  • 将相机坐标系1下的平面方程左右同时除以 \(d\) 得到 \[ \begin{equation} -\frac{n_1}{d_1}\cdot \begin{bmatrix}X_1\\Y_1\\Z_1\end{bmatrix}= 1 \end{equation} \]

  • 将(18)代入(15)进行 “1的替换” 得到 \[ \begin{equation} \begin{bmatrix}X_2\\Y_2\\Z_2 \end{bmatrix}=R_{12}\cdot \begin{bmatrix}X_1\\Y_1\\Z_1 \end{bmatrix}+t_{12}\cdot -\frac{n_1}{d_1}\cdot \begin{bmatrix}X_1\\Y_1\\Z_1\end{bmatrix} \end{equation} \]

    \[ \begin{equation} \begin{bmatrix}X_2\\Y_2\\Z_2 \end{bmatrix}=(R_{12}-\frac{t_{12}\cdot n_1}{d_1}) \begin{bmatrix}X_1\\Y_1\\Z_1\end{bmatrix} \end{equation} \]

  • 将(13)(14) 代入(20)得 \[ \begin{equation} K_2^{-1}\cdot \begin{bmatrix}u_2\\v_2\\1 \end{bmatrix} = (R_{12}-\frac{t_{12}\cdot n_1}{d_1})\cdot K_1 ^{-1}\cdot \begin{bmatrix}u_1\\v_1\\1 \end{bmatrix} \end{equation} \]

  • 整理可得 \[ \begin{equation} \begin{bmatrix}u_2\\v_2\\1 \end{bmatrix} = K_2\cdot (R_{12}-\frac{t_{12}\cdot n_1}{d_1})\cdot K_1 ^{-1}\cdot \begin{bmatrix}u_1\\v_1\\1 \end{bmatrix} \end{equation} \]

  • 最终 \[ \begin{equation} H_{12} = K_2\cdot (R_{12}-\frac{t_{12}\cdot n_1}{d_1})\cdot K_1 ^{-1} \end{equation} \]