2D-2D:对极约束
上一篇博客记录了3D-2D:PnP算法,本篇博客记录一下2D-2D:对极约束算法,并简单谈一下自己理解。
1. 对极约束
首先我们要先搞清楚对极约束是用来干什么用的,然后在来搞清楚它的原理。
那么,对极约束是用来干什么用的呢?
答:在已知 2D 的像素坐标的前提下,根据两幅图像间多组2D像素点对来估计相机的运动。
搞清对极约束的用途之后,我们接着说它的原理。
1.1 物理意义
假设我们从两张图像中得到了一对配对好的特征点,那我们就来看看两个图像当中的匹配点有什么样的几何关系。
以上图为例,我们希望求取两帧图像之间的运动,设第一帧到第二帧的运动为R, t。两个相机中心分别为 O 1 , O 2 。现在,考虑第一幅图像中有一个特征点 p1 ,它在第二幅图像中对应着特征点 p2 。我们知道这对特征点是通过特征匹配得到的。如果匹配正确,说明它们确实是同一个空间点在两个成像平面上的投影。
这里我们需要一些术语来描述它们之间的几何关系。首先,连线 O1p1 和连线 O2p2 在三维空间中会相交于点 P 。这时候点O1 , O2 , P 三个点可以确定一个平面,称为极平面(Epipolar plane)。O1O2 连线与像平面 I1 , I2 的交点分为 e1 , e2 。e1 , e2 ,称为极点(Epipoles),O1O2 被称为基线(Baseline)。称极平面与两个像平面 I1 , I2 之间的相交线 L1 , L2 为极线(Epipolar line)。
直观上讲,从第一帧的角度上看,射线 O1p1 是某个像素可能出现的空间位置——因为该射线上的所有点都会投影到同一个像素点。同时,如果不知道 P 的位置,那么当我们在第二个图像上看时,连线 e2p2 (也就是第二个图像中的极线)就是 P 可能出现的投影的位置,也就是射线 O1p1 在第二个相机中的投影。现在,由于我们通过特征点匹配,确定了 p2 的像素位置,所以能够推断 P 的空间位置,以及相机的运动。
对极约束