Have a Question?

对极约束 (Epipolar Constraint)

You are here:

1 定义

对极约束满足如下公式:
\boldsymbol{x}_{2}^{T} \boldsymbol{E} \boldsymbol{x}_{1}=\boldsymbol{p}_{2}^{T} \boldsymbol{F} \boldsymbol{p}_{1}=0\tag{1}
其中:

  • \boldsymbol{p}_1\boldsymbol{p}_2 代表像素上点的位置。
  • \boldsymbol{x}_{1}=\boldsymbol{K}^{-1} \boldsymbol{p}_{1}\boldsymbol{x}_{2}=\boldsymbol{K}^{-1} \boldsymbol{p}_{2} 代表像素点对应的归一化平面上点位置。
  • \boldsymbol{E}=\boldsymbol{t}^{\wedge} \boldsymbol{R} 代表本质矩阵 (Essential Matrix)。
  • \boldsymbol{F}=\boldsymbol{K}^{-T} \boldsymbol{E} \boldsymbol{K}^{-1} 代表基础矩阵 (Fundamental Matrix)。

2 证明

如图所示设空间中的三维点 \boldsymbol{P}=[X, Y, Z]^{T},根据真空相机投影模型:
Z\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]=\boldsymbol{K}\left(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t}\right)=\boldsymbol{K} \boldsymbol{T} \boldsymbol{P}\tag{2}
在两幅图像中像素点的位置为:
s_{1} \boldsymbol{p}_{1}=\boldsymbol{K} \boldsymbol{P}, \quad s_{2} \boldsymbol{p}_{2}=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t})\tag{3}
由于齐次坐标乘以非零常量后表示同一个投影点(参见 补充说明),如果使用齐次坐标,我们也可以把上式写成在乘以非零常数下成立的(up to a scale)等式:
\boldsymbol{p}_{1}=\boldsymbol{K} \boldsymbol{P}, \quad \boldsymbol{p}_{2}=\boldsymbol{K}(\boldsymbol{R} \boldsymbol{P}+\boldsymbol{t})\tag{4}

取:
\boldsymbol{x}_{1}=\boldsymbol{K}^{-1} \boldsymbol{p}_{1}, \quad \boldsymbol{x}_{2}=\boldsymbol{K}^{-1} \boldsymbol{p}_{2}\tag{5}
将公式 (4) 带入后得到:
\boldsymbol{x}_{2}=\boldsymbol{R} \boldsymbol{x}_{1}+\boldsymbol{t}\tag{6}
两边同时左乘 \boldsymbol{t}^{\wedge} 得到:
\boldsymbol{t}^{\wedge} \boldsymbol{x}_{2}=\boldsymbol{t}^{\wedge} \boldsymbol{R} \boldsymbol{x}_{1}\tag{7}
两边同时左乘 \boldsymbol{x}_{2}^{\wedge} 得到:
\boldsymbol{x}_{2}^{T} \boldsymbol{t}^{\wedge} \boldsymbol{x}_{2}=\boldsymbol{x}_{2}^{T} \boldsymbol{t}^{\wedge} \boldsymbol{R} \boldsymbol{x}_{1}\tag{8}
由于 \boldsymbol{t}^{\wedge} \boldsymbol{x}_{2} 是一个和 \boldsymbol{t}\boldsymbol{x}_{2} 都垂直的向量,二者内积为 0,因此得到:
\boldsymbol{x}_{2}^{T} \boldsymbol{t}^{\wedge} \boldsymbol{R} \boldsymbol{x}_{1}=0\tag{9}
重新带入公式 (5) 得到:
\boldsymbol{p}_{2}^{T} \boldsymbol{K}^{-T} \boldsymbol{t}^{\wedge} \boldsymbol{R} \boldsymbol{K}^{-1} \boldsymbol{p}_{1}=0\tag{10}

补充说明

关于“齐次坐标乘以非零常量后表示同一个投影点”说明:

如上图所示,点 P_1P_2P_3 都有同一个投影点。投影方程写成齐次坐标形式:
Z\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]=\left[\begin{array}{ccc} f_{x} & 0 & c_{x} \\ 0 & f_{y} & c_{y} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} X \\ Y \\ Z \end{array}\right]\tag{11}

则有:
\begin{aligned} Z_1 * p = K * P_1 \\ Z_2 * p = K * P_2 \\ Z_3 * p = K * P_3 \end{aligned}\tag{12}

p = (K * P_1 ) / Z_1 = (K * P_2 ) / Z_2 = (K * P_3 ) / Z_3, 显然齐次坐标 p = (u, v, 1)^{T} 乘以非零常数后依然表示同一个投影点,只不过空间点 P 位置变了,但都在 \overrightarrow{Op} 这条射线上,齐次坐标 p 乘以不同的非零常数表示不同距离的空间点在像素平面的投影,就是这条射线上的点均投影到 p 点。

参考文献

[1] 《视觉SLAM十四讲》
[2] https://www.cxyzjd.com/article/Zkangsen/100010742

上一个 三角化 (Triangulation)

Add a Comment

Your email address will not be published.

Table of Contents