ORB-SLAM2从理论到代码实现(三):ORB特征提取和匹配理论和代码详解

欢迎交流,本人邮箱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)图像。另外,降采样时,

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值