第七讲
特征点法
特征点法是视觉里程计的主流方法,特征点是图像的一些特殊地方,例如角点、边缘和区块等,但是易受分辨率的影响。流行的局部图像特征有:SIFT,SURF和ORB。好的特征点应具有如下的性质:
- 可重复性,相同的“区域”可以在不同的图像中被找到;
- 可区别性,不同的“区域”有不同的表达;
- 高效,同一图像中,特征点的数量应远小于像素的数量;
- 局部性,特征仅与一小片区域有关。
特征点由关键点和描述子构成,关键点是指该特征点在图像里的位置,有些特征点还具有朝向、大小等信息。描述子通常是一个向量,按照某种人为设计的方式,描述了该关键点周围像素的信息。描述子是按照“外观相似的特征应该有相似的描述子”的原则设计的。两个特征点的描述子在向量空间上的距离相近,就可以认为它们是同样的特征点。
SIFT (尺度不变特征变换)考虑全面而计算量大,FAST 关键点属于计算特别快的一种特征点(注意这里“关键点”的用词,说明它没有描述子),ORB(Oriented FAST and Rotated BRIEF)特征则是目前看来非常具有代表性的实时图像特征。
ORB 特征
ORB 特征亦由关键点和描述子两部分组成。它的关键点称为“Oriented FAST”,是一种改进的FAST 角点,它的描述子称为BRIEF(Binary Robust Independent Elementary Features)。因此,提取ORB 特征分为两个步骤:
- FAST 角点提取,找出图像的角点。
- BRIEF 描述子,对特征点周围的图像进行描述。
FAST 关键点主要检测局部图像灰度变化明显的地方,以速度快著称。想法是如果一个像素与它邻域的像素亮度差别较大(过亮或过暗,只考虑亮度), 那它更可能是角点。
- 选取一个特征点 p,获取它的亮度 $I_p$ ;
- 设计一个阈值 T (例如 $I_p$ 的20%);
- 选取周围半径为 3 的圆的16个像素点;
- 假设有连续 N 个点的亮度大于 $I_p(1+T)$ 或者 $I_p(1-T)$ ,那么像素 p 可以认为特征点;
- 循环这 4 个步骤。
执行 4 时,可以添加一个预操作,直接检测邻域圆上的第1,5,9,13 个像素的亮度。四个中有三个同时满足条件时进行下一步检测。FAST 特征点的问题:1 特征点数量大且不确定,2 角点不具有方向信息,3 半径存在尺度问题(放缩)。
ORB 特征的改进在于:第一可以指定要提取的角点数量 N,第二是添加了尺度和旋转的描述。
尺度不变性由构建图像金字塔(金字塔是指对图像进行不同层次的降采样,以获得不同分辨率的图像),在金字塔每一层上检测角点来实现。
特征的变换是由灰度质心法实现的,质心指的是图像灰度值作为权重的中心:通过图像的矩找到它的质心,连接几何中心和质心得到方向向量,求出方向向量的角度($\theta=\arctan(y/x)$)。
ORB 使用改进的BRIEF 特征描述。
特征匹配解决了SLAM 中的数据关联问题(data association),场景中经常存在大量的重复纹理,使得特征描述非常相似,快速近似最近邻(FLANN)算法更加适合于匹配点数量极多的情况。
单目相机的对极几何
对极几何:两个相机在不同位置拍摄的两张图,这个模型就是对极几何。
$O_1$ 的坐标系中的 $\overrightarrow{O_1P}$,经过 $\overrightarrow{O_1O_2}$ 的旋转和平移,变成了 $O_2$ 的坐标系中的 $\overrightarrow{O_2P}=Rx_1+t$($x_1=\overrightarrow{O_1P}$)
$\overrightarrow{O_1P},\overrightarrow{O_2P},\overrightarrow{O_1O_2}$ 三个向量在同一平面中:$\overrightarrow{O_2P}\cdot(\overrightarrow{O_1P}\times\overrightarrow{O_1O_2})=0$。
将这个式子在 $O_2$ 坐标系中表示:$x_2\cdot(t\times(Rx_1))=0$,然后将其写成矩阵形式 $x^T_2(t^\wedge R)x_1=0$。其中,$t^\wedge R$ 是本征矩阵,本征矩阵包含了坐标平移和旋转的信息。
本征矩阵:反映空间中一点P的像点在不同摄像机视角下的摄像机坐标系之间的联系。
基础矩阵:反映空间中一点P的像素在不同摄像机坐标系下图像坐标系之间的联系,本质矩阵和相机内参数矩阵相乘可以得到基础矩阵。
单应矩阵:一个平面到另外一个平面的投影映射,一个二维平面上的点映射到摄像机成像仪上的映射就是平面单应性的例子。
v1.5.2