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_1\)、\(P_2\)、\(P_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

Add a Comment

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

Table of Contents