OpenCV_Group_3D关系部分

01 视图关系

本质矩阵E(Essential Matrix)

  • 定义:反映空间一点PP在不同摄像机归一化坐标系之间的关系

  • 表达式:E=t×RE = t _{\times} R

  • 理论推导:

    ​ 图1.1 相机部分运动过程

    • 过程描述:1.设相机一次运动过程为O1O_1运动到O2O_2,观察世界坐标系下的一点PP

      ​ 2.观测结果投影到归一化平面上,得到点p1,p2p_1,p_2,且p1p_1在向量O1P\overrightarrow{O_1P}上,p2p_2在向量O2P\overrightarrow{O_2P}

      ​ 3.向量O1PO2PO1O2\overrightarrow{O_1P}、\overrightarrow{O_2P}、\overrightarrow{O_1O_2}共面,则O2P(O1O2×O1P)=0{\overrightarrow{O_2P}} \cdot (\overrightarrow{O_1O_2} \times \overrightarrow{O_1P})=0

    • 公式描述:

      • 设投影到归一化平面点坐标:

      PO1O1P=x1PO2O2P=x2点P在O_1视角下坐标:\overrightarrow{O_1P} = x_1\\ 点P在O_2视角下坐标:\overrightarrow{O_2P} = x_2\\

      • O1O_1运动到O2O_2的变换关系:

        \begin{align}t = O_1O_2 \nonumber \\ O_1O_2表示平移向量&:x_2 = Rx_1+t \end{align}

      • 根据共面关系:

    \begin{align} &\because \begin{cases} {\overrightarrow{O_2P}} \cdot (\overrightarrow{O_1O_2} _{\times} \overrightarrow{O_1P})=0\\ x_2=Rx_1+t \end{cases} \\ &\therefore x_2^T \cdot [t_{\times} (Rx_1+t)] = 0\\ &\therefore x_2^T \cdot [t_{\times} Rx_1 + t_{\times}t] = 0\\ &\therefore x_2^T \cdot (t_{\times}R) \cdot x_1 = 0 \end{align}

    • 其中t×Rt_{\times}R描述了O1O_1运动到O2O_2观察点PP所包含的平面信息,将其定义为Essential MatrixEssential \space Matrix,即

    E=t×R E = t_{\times}R

  • 估计方法:八点法

    • 算法根据:E=t×RE=t_{\times}Rsize=3×3=9size = 3\times3 = 9,本质矩阵中有9个未知数对应9个自由度,考虑到EE本身的尺度缩放性,减少一个自由度,因此需要8个方程求解,即需要8对点,也叫8点法。

      • 数据量等于8对点:应用八点法求解
      • 数据量大于8对点:超定方程或RANSAC
    • 公式描述:

      • 以第一对点为例:

        [x21y211][e11e12e13e21e22e23e31e32e33][x11y111]=0\left[ \begin{matrix} x_2^1 & y_2^1 & 1 \end{matrix} \right] \cdot \left[ \begin{matrix} e_{11} & e_{12} & e_{13} \\ e_{21} & e_{22} & e_{23}\\ e_{31} & e_{32} & e_{33} \end{matrix} \right] \cdot \left[ \begin{matrix} x_1^1 \\ y_1^1 \\ 1 \end{matrix} \right] = 0

  • 展开上述结果则有:

    [x21x11x21y11x21y21x11y21y11y21x11y111][e11e12e13e21e22e23e31e32e33]=0\left[ \begin{matrix} x_2^1 x_1^1 & x_2^1 y_1^1 & x_2^1 & y_2^1 x_1^1 & y_2^1 y_1^1 & y_2^1 & x_1^1 & y_1^1 & 1 \end{matrix} \right] \cdot \left[ \begin{matrix} e_{11} \\ e_{12} \\ e_{13} \\ e_{21} \\ e_{22} \\ e_{23}\\ e_{31} \\ e_{32} \\ e_{33} \end{matrix} \right] = 0

  • 则对于8对点都有:

    [x21x11x21y11x21y21x11y21y11y21x11y111x22x12x22y12x22y22x12y22y12y22x12y121x28x18x28y18x28y28x18y28y18y28x18y181][e11e12e13e21e22e23e31e32e33]=0\left[ \begin{matrix} x_2^1 x_1^1 & x_2^1 y_1^1 & x_2^1 & y_2^1 x_1^1 & y_2^1 y_1^1 & y_2^1 & x_1^1 & y_1^1 & 1 \\ x_2^2 x_1^2 & x_2^2 y_1^2 & x_2^2 & y_2^2 x_1^2 & y_2^2 y_1^2 & y_2^2 & x_1^2 & y_1^2 & 1 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ x_2^8 x_1^8 & x_2^8 y_1^8 & x_2^8 & y_2^8 x_1^8 & y_2^8 y_1^8 & y_2^8 & x_1^8 & y_1^8 & 1 \\ \end{matrix} \right] \cdot \left[ \begin{matrix} e_{11} \\ e_{12} \\ e_{13} \\ e_{21} \\ e_{22} \\ e_{23}\\ e_{31} \\ e_{32} \\ e_{33} \end{matrix} \right] = 0

  • 超定方程:对应方程组数大于未知数维度时,应用最小二乘法,目标函数设为

    argmin x2iTEx1iarg min \space \sum{x_2^i}^TE^*x_1^i

  • RANSAC:1.随机采样8对点进行一次估计E

    ​ 2.应用其他点对计算误差,在设定误差阈值内的记为内点(好点),记录此次估计中内点的个数

    ​ 3.重复上述过程N次,选择内点数量最多的估计结果

    ​ 4.用这些内点重新估计E(超定方程)

基础矩阵 F(Fundamental Matrix)

  • 定义:反映空间一点PP在不同摄像机像素坐标系之间的关系

  • 表达式:F=K1EK1F = K^{-1}EK^{-1}

  • 理论推导:

    ​ 图1.2 相机部分运动过程

    • 过程描述:通过本质矩阵,投影平面更换为像素平面

    • 公式描述:

      • 投影到像素平面点坐标与归一化坐标点的关系:

        x~1=Kx1x~2=Kx2\widetilde{x}_1 = K \cdot x_1 \\ \widetilde{x}_2 = K \cdot x_2 \\

      • 根据本质矩阵关系:

        \begin{align} \because \space &x_2^T E x_1 = 0 \\ \therefore \space (K^{-1}\widetilde{x}_2)^T & \cdot E \cdot (K^{-1}\widetilde{x}_1) = 0 \\ \therefore \space \widetilde{x}_2^T (K^{-T} & \cdot E \cdot K^{-1})\widetilde{x}_1 = 0 \end{align}

      • 其中KTEK1K^{-T} \cdot E \cdot K^{-1}定义为Fundamental MatrixFundamental \space Matrix,即

        F=KTEK1F =K^{-T} \cdot E \cdot K^{-1}

  • 估计方法:八点法(同本质矩阵E)

  • 改进方法:对输入数据较为敏感,引入数据归一化

    • 步骤一:x>Txx->Tx,这里的归一化TT矩阵为:

      T=[sX0XmeansX0sYYmeansY001]T = \left[ \begin{matrix} sX & 0 & -X_{mean} \cdot sX \\ 0 & sY & -Y_{mean} \cdot sY \\ 0 & 0 & 1 \end{matrix} \right]

      • 其中,XmeanX_{mean}是横坐标均值,YmeanY_{mean}是纵坐标均值,sX=11NXmeanxisX = \frac{1}{\frac{1}{N}\sum|X_{mean}-x_i|}sY=11NYmeanyisY = \frac{1}{\frac{1}{N}\sum|Y_{mean}-y_i|}sXsYsX、sY代表缩放因子
    • 步骤二:应用八点法求解坐标平移后的两幅图像所对应的FF'矩阵

    • 步骤三:矩阵还原,即F=T1FT1F=T^{-1}F'T^{-1}

单应矩阵H(Homography Matrix)

  • 定义:反映处于同一平面上两幅图像的直接变换关系
  • 表达式:H=K(RtnTd)K1H = K(R-\frac{tn^T}{d})K^{-1}
  • 应用场景
    • 透视矫正