SLAM学习——特征点SIFT、SURF、ORB

SLAM的本质问题在于让计算机识别出连续两幅图像之间的姿态变化,通常需要在图像中选取一些特征点作为标识用来计算相机位姿变化。注意特征点不是角点,不仅包括点的位置,还包括点的特征描述。
常用的特征点包括:

1)SIFT特征点(尺度不变特征变换,ScaleInvariant Feature Transform)

SIFT特征点属于最常见的特征点,它充分考虑了在图像变换过程中出现
的光照,尺度,旋转等变化,但随之而来的是极大的计算量。由于整个 SLAM 过程中,图
像特征的提取与匹配仅仅是诸多环节中的一个,到目前(2016 年)为止,普通 PC 的 CPU
还无法实时地计算 SIFT 特征,进行定位与建图。所以在 SLAM 中我们甚少使用这种“奢
侈”的图像特征

2)SURF特征点

后续补充吧

3)ORB特征点

ORB 特征亦由关键点和描述子两部分组成。它的关键点称为“Oriented FAST”,是一种改进的 FAST 角点,它的描述子称为 BRIEF(Binary Robust Independent Elementary Features)。因此,提取 ORB 特征分为两个步骤:

  1. FAST 角点提取:找出图像中的” 角点”。相较于原版的 FAST, ORB 中计算了特征
    点的主方向,为后续的 BRIEF 描述子增加了旋转不变特性。(FAST 是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与它邻域的像素差别较大(过亮或过暗) , 那它更可能是角点。相比于其他角点检测算法, FAST 只需比较像素亮度的大小,十分快捷。)
  2. BRIEF 描述子:对前一步提取出特征点的周围图像区域进行描述。(BRIEF 是一种二进制描述子,它的描述向量由许多个 0 和 1 组成,这里的 0 和 1 编码了关键点附近两个像素(比如说 p 和 q)的大小关系:如果 p 比 q 大,则取 1,反之就取 0。如果我们取了 128 个这样的 p; q,最后就得到 128 维由 0, 1 组成的向量。)

根据测试,在同一幅图像中同时提取约 1000 个特征点的情况下,SIFT 约花费 5228.7ms, SURF 约花费 217.3ms, ORB 约要花费 15.3ms。由此可以看出 ORB 在保持了特征子具有旋转,尺度不变性的同时,速度方面提升明显,对于实时性要求很高的 SLAM 来说是一个很好的选择。

你可能感兴趣的:(SLAM)