欢迎交流,本人邮箱jinbo666888@qq.com
我将在写Tracking.cc的博客前,先写一下ORBextractor.cc、ORBmatcher.cc和Frame.cc。
三 特征提取和匹配
1. 理论知识
特征点由关键点(Key-point)和描述子(Descriptor)两部分组成。ORB特征点(Oriented FAST and Rotated BRIEF)是由Oriented FAST角点和 BRIEF (Binary Robust Independent Elementary Features)描述子构成,其计算速度是sift特征点的100倍,是surf特征点的10倍。
a.Fast 角点提取
FAST 是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思 想是:如果一个像素与它邻域的像素差别较大(过亮或过暗), 那它更可能是角点。相比于 其他角点检测算法,FAST 只需比较像素亮度的大小,十分快捷。
提取步骤:
1. 在图像中选取像素 p,假设它的亮度为 Ip。
2. 设置一个阈值 T(比如 Ip 的 20%)。
3. 以像素 p 为中心, 选取半径为 3 的圆上的 16 个像素点。
4. 假如选取的圆上,有连续的 N 个点的亮度大于 Ip + T 或小于 Ip −T,那么像素 p 可以被认为是特征点 (N 通常取 12,即为 FAST-12。其它常用的 N 取值为 9 和 11, 他们分别被称为 FAST-9,FAST-11)。
5. 循环以上四步,对每一个像素执行相同的操作。
为了提高效率,可以采用额外的加速办法。具体操作为,对于每个像素,直接检测邻域圆上的第 1,5,9,13 个像素的亮度。至少有3个和候选点的灰度值同时大于 Ip + T 或小于 Ip −T 时,当前像素才有可能是一个角点,否则应该直接排除。为了提高比较的效率,通常只使用N个周边像素来比较,也就是大家经常说的FAST-N,其中Fast-9,Fast-12使用最多。
Fast角点本不具有方向,但是由于特征点匹配需要,ORB对Fast角点进行了改进,,改进后的 FAST 被称为 Oriented FAST,具有旋转和尺度的描述。
尺度不变性是由构建图像金字塔,并在金字塔的每一层上检测角点来实现,这在SLAM十四讲中并没有具体介绍。这里进行介绍。
高斯金字塔构建:
- 对图像做不同尺度的高斯模糊
为了让尺度体现其连续性,高斯金字塔在简单降采样的基础上加上了高斯滤波。将图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组(Octave),金字塔每层只有一组图像,组数和金字塔层数相等,使用下列公式计算,每组含有多张(也叫层Interval)图像。另外,降采样时,