跳到主要内容

9.1 对极几何

来源:Richard Hartley 与 Andrew Zisserman 的 Multiple View Geometry in Computer Vision,第 9 章 Epipolar Geometry and the Fundamental Matrix,9.1 小节 Epipolar geometry。

这篇笔记只整理 9.1 的几何直观。下一小节才会正式进入 fundamental matrix FF 的代数表达。

这一章在解决什么问题

两视图几何研究的是:同一个三维点 X\mathbf{X} 被两个相机拍到后,两个图像点 x\mathbf{x}x\mathbf{x}' 之间有什么约束。

如果:

xx\mathbf{x} \leftrightarrow \mathbf{x}'

是一对匹配点,那么它们不是随便分布在两张图上的。它们必须满足由两台相机相对位置决定的对极几何约束。

后面用 fundamental matrix 表示时,会写成:

xTFx=0\mathbf{x}'^T F \mathbf{x} = 0

但在 9.1 里,重点不是矩阵 FF,而是这条约束背后的空间几何。

两个相机与一个三维点

设两个相机中心分别为:

C,C\mathbf{C}, \quad \mathbf{C}'

三维点为:

X\mathbf{X}

它在两张图像中的投影为:

x,x\mathbf{x}, \quad \mathbf{x}'

这些对象有一个关键几何关系:

C, C, X, x, x\mathbf{C},\ \mathbf{C}',\ \mathbf{X},\ \mathbf{x},\ \mathbf{x}'

都位于同一个平面相关的结构中。严格地说,两个相机中心和三维点 X\mathbf{X} 决定一个空间平面 π\pi,两条反投影射线都位于这个平面内。

这个平面就是 epipolar plane,中文常译为“对极平面”。

baseline:基线

两个相机中心连成的直线叫做 baseline:

CC\overline{\mathbf{C}\mathbf{C}'}

中文常译为“基线”。

基线是对极几何的轴。所有对极平面都必须包含这条基线。

提示

只要相机位置不同,就可以想象有一条连接两个相机中心的基线。后面所有对极线、对极点、对极平面都围绕这条线展开。

epipole:对极点

基线与图像平面的交点叫做 epipole:

e,e\mathbf{e}, \quad \mathbf{e}'

理解方式有三种:

  1. e\mathbf{e} 是第二个相机中心 C\mathbf{C}' 在第一张图像中的投影。
  2. e\mathbf{e}' 是第一个相机中心 C\mathbf{C} 在第二张图像中的投影。
  3. epipole 也是相机平移方向在图像中的消失点。

也就是说,对极点代表“另一个相机在哪里”。

如果另一个相机中心落在当前图像外,那么 epipole 也会在可见图像区域外。

epipolar plane:对极平面

任何包含 baseline 的平面都是 epipolar plane。

如果三维点 X\mathbf{X} 和两个相机中心 C,C\mathbf{C},\mathbf{C}' 共面,那么这个平面可记为:

π=C,C,X\pi = \langle \mathbf{C}, \mathbf{C}', \mathbf{X} \rangle

随着三维点 X\mathbf{X} 的位置变化,对极平面会围绕 baseline 旋转。

所有这些平面组成一个一参数平面族,称为 epipolar pencil

epipolar line:对极线

对极平面 π\pi 与图像平面的交线叫做 epipolar line。

在第一张图像中:

l\mathbf{l}

在第二张图像中:

l\mathbf{l}'

同一个对极平面与两张图像分别相交,得到一对对应的对极线:

πimage1=l\pi \cap \text{image}_1 = \mathbf{l} πimage2=l\pi \cap \text{image}_2 = \mathbf{l}'

所有对极线都会经过对应图像中的 epipole:

el,el\mathbf{e} \in \mathbf{l}, \qquad \mathbf{e}' \in \mathbf{l}'

为什么匹配点必须落在对极线上

假设第一张图像中已知点 x\mathbf{x}

它反投影到三维空间中不是一个唯一点,而是一条经过第一个相机中心的射线:

xray(C,x)\mathbf{x} \quad \Longrightarrow \quad \text{ray}(\mathbf{C}, \mathbf{x})

真实三维点 X\mathbf{X} 必须在这条射线上。

这条射线和 baseline 一起决定一个对极平面 π\pi。当这个平面与第二张图像平面相交时,就得到第二张图像中的对极线 l\mathbf{l}'

因此,第二张图中的匹配点 x\mathbf{x}' 必须满足:

xl\mathbf{x}' \in \mathbf{l}'

这就是对极约束的几何版本。

信息

换句话说:第一张图中的一个点 x\mathbf{x},不会在第二张图中对应任意位置,而只能对应到一条特定的对极线 l\mathbf{l}' 上。

对立体匹配的意义

如果没有对极几何,寻找匹配点需要在第二张图像的整个二维区域中搜索。

有了对极约束后:

二维搜索  ->  一维搜索

也就是从整张图找点,变成沿着一条对极线找点。

这对 stereo matching 非常重要,因为它显著降低了搜索范围。

点到线的映射

9.1 最后为 9.2 做铺垫:一个图像点会对应另一张图像中的一条线。

也就是:

xl\mathbf{x} \mapsto \mathbf{l}'

反过来也有:

xl\mathbf{x}' \mapsto \mathbf{l}

在 9.2 中,这个映射会用 fundamental matrix 表示:

l=Fx\mathbf{l}' = F\mathbf{x} l=FTx\mathbf{l} = F^T\mathbf{x}'

并且匹配点满足:

xTFx=0\mathbf{x}'^T F\mathbf{x}=0

但在 9.1 中,你只需要先记住几何含义:点的匹配被限制在对应的对极线上。

特殊情况:对极点在无穷远

如果相机运动近似为平行于图像平面的平移,那么 baseline 与图像平面的交点可能在无穷远处。

此时:

  • epipole 在无穷远处。
  • epipolar lines 近似平行。
  • 匹配搜索仍然沿对极线进行,只是这些线彼此平行。

这类情况在图像只发生水平平移时很常见。

术语表

英文中文含义
baseline基线两个相机中心的连线
epipole对极点baseline 与图像平面的交点
epipolar plane对极平面包含 baseline 的空间平面
epipolar line对极线对极平面与图像平面的交线
epipolar pencil对极平面束围绕 baseline 旋转的一族对极平面
correspondence对应;匹配两张图像中来自同一三维点的图像点
back-projection反投影图像点对应到空间射线
stereo matching立体匹配在两张图像中寻找对应点

和前面章节的关系

6.2 中我们已经知道,图像点反投影到三维空间是一条射线:

X(λ)=P+x+λC\mathbf{X}(\lambda) = P^+\mathbf{x}+\lambda \mathbf{C}

9.1 正是把这个射线放到双目相机中理解:

  1. 第一张图的点 x\mathbf{x} 反投影成一条射线。
  2. 这条射线和第二个相机中心共同决定对极平面。
  3. 对极平面与第二张图像相交得到对极线 l\mathbf{l}'
  4. 匹配点 x\mathbf{x}' 必须落在 l\mathbf{l}' 上。

本节记忆点

  • 对极几何是两视图之间的内在射影几何。
  • 它只依赖相机内参和相对位姿,不依赖具体场景结构。
  • baseline 是两个相机中心的连线。
  • epipole 是另一个相机中心在当前图像中的投影。
  • epipolar line 是对应点必须落在的线。
  • 对极约束把匹配搜索从二维区域降到一维直线。
  • 9.2 会用 fundamental matrix FF 把这种几何关系写成代数形式。

后续问题

读完 9.1 后,可以继续追问:

  • 如何从点 x\mathbf{x} 算出对应的对极线 l\mathbf{l}'
  • 为什么 fundamental matrix 的秩是 2?
  • 为什么所有对极线都经过 epipole?
  • 如何从匹配点估计 FF
  • 相机做纯平移时,对极线为什么会呈放射状或平行?