SLAM学习 | 论文研读《ORB: an efficient alternative to SIFT or SURF》


链接:ORB: an efficient alternative to SIFT or SURF

概要: SLAM是一个大系统,其前端主要是计算机视觉(Computer Vision, CV)的内容,后端主要是优化(Optimization)的内容。前者又主要包括几何视觉(Geometric Vision)和图像理解(Image Interpretation),几何视觉主要与相机视角的转变、坐标系的转换等问题相关,图像理解主要与特征提取、图像匹配等问题相关;后者主要包括以拓展卡尔曼滤波(EKF)为代表的滤波法(拓展卡尔曼滤波EKF-无迹卡尔曼滤波UKF-粒子滤波PF等一脉相承)和以图优化(Graph optimization)为代表的优化的方法。从这里开始,我开始研读SLAM及其子领域内的经典论文,并形成一个相对比较完整的系列。这一系列的第一篇就是《ORB: an efficient alternative to SIFT or SURF》
关键字: SLAM论文学习; ORB特征
 

1 文章翻译

   我将在这一部分简要翻译这篇论文,并不全文逐句翻译,有的地方只概要性地把握原文大意。

Abstract(摘要)

   特征匹配是计算机视觉中的基础问题,而当前的特征提取算法过于耗时。这这篇文章中我们提出了一种基于BRIEF的快速二进制描述子,命名为ORB,它具有旋转不变性和抗噪性。我们通过实验证明ORB特征比当前主流的SIFT特征的运算速度快了两个数量级,同时在很多应用(包括目标检测和图像匹配等实际应用)中不降低使用效果。

1 Introduction(介绍)

   SIFT是一个古老而有效的特征,已经在很多应用中证明了其有效性,然而它的一个大问题是计算量过大,不能支持实时和低功耗应用。针对这一问题有两种改进思路,一是改进特征,SURF是其中最好的一个改进版(速度提高了约一个数量级);二是使用GPU加速。

   在这篇文章中我们致力于寻找一个计算简单的特征替代SIFT,同时希望它具有较强的抗噪性并可实时计算。需要说明的是,我们的主要目的是使替代特征在一些常见的图像匹配应用中发挥作用,例如,使低功耗设备无需GPU加速即可实现每种形式的全景拼接和面片跟踪,并减少在标准PC机上进行基于特征的目标检测的时间(换句话说,替代特征并不需要全方位地超越SIFT和SURF,最关键的是要减少计算量)。最后我们找到了ORB,它在速度比SITF快了两个数量级的同时保持了和SIFT近乎相当的效果,同时比SURF的效果好。

   我们提出的特征基于知名的FAST角点和近来新提出的BRIEF描述子(补充一个常识:特征包含角点和描述子),因此我们将其命名为ORB(Oriented FAST and Rotated BRIEF,定向FAST和可旋转BRIEF)。角点和描述子分别选择FAST和BRIEF是因为这两项技术都很符合我们的需求,都以计算量小闻名。但是,FAST和BRIEF各自也具有局限性,本文中对它们进行了改进。我们的主要贡献如下:

   1- 给 FAST 角点添加方向(克服了FAST特征点没有方向的劣势);
   2- 一种 oriented BRIEF 的高效计算方法;
   3- 对 oriented BRIEF 特征的方差和相关进行分析;
   4- 一种在旋转不变性下对 BRIEF 特征进行去相关的学习方法,在最近邻应用中获得更好的性能。(这一条还不太懂)

   为了验证ORB的性能,我们在纯匹配和匹配应用这两个方面分别做实验比较了ORB和SIFT与SURF。另外,ORB的使用并不会受到SIFT和SURF的使用许可的限制。(注意,SIFT和SURF都是有专利的)

2 Related Work(文献综述)

   关键点 FAST和它的变种是实时系统中用于视觉特征匹配查找关键点的主要方法,比如在PTAM中的使用(PTAM是一种SLAM解决方案)。尽管SIFT仍然需要金字塔模型在尺度上对该方法进行增强,但这个方法还是可以很有效地查找合理的角关键点,在我们的例子中,使用哈里斯角点滤波器滤除边缘并提供了一个合理的分值。

   很多关键点检测模型都包含了定向算子(比如SIFT和SURF),FAST却没有。有很多方法可以描述关键点的方向信息,大多采用方向梯度直方图(HOG)计算——比如SIFT,或者类似于SURF图案区块。这些方法要么计算量要求大,要么像SURF那样只是近似估计。论文[22]分析了各种测量角点方向的方法,我们借用了其中的质心法。与SIFT中的定位算子中单个关键点有多个值的状况有所不同,质心算子只给出一个主要的结果。(避免了多解的发生)

   描述子 BRIEF是特征向量描述子,其结果是在平滑图像块中使用简单的二进制比较两个像素的值。在很多方面和SIFT的性能非常相近,包括对于光照,模糊,图像变形的鲁棒性。但它对于平面旋转非常敏感。

   RIEF起源于使用二进制测试训练一组分类树的研究。一旦训练了一组大约500个典型的关键点,这些树就可以用来返回任意关键点的特征(signature),因此,我们寻找对方向最不敏感的测试 。寻找不相关测试的经典方法是主成分分析,例如,SIFT的主成分分析可以帮助去除大量的冗余信息。然而,可能的二进制测试空间太大,无法执行主成分分析,而是使用穷举搜索。

   视觉字典方法采用离线聚类查找不相关的样本用于匹配。这些方法用于搜索不相关的二进制测试(binary tests)也有可能有用。

   与ORB最相似的方法是论文3,它提出了一种多尺度 Harris 关键点和定向图块描述子。这种描述子用于图像配置和拼接,表现出良好的旋转和尺度不变特性。但计算效率没有我们的高。

3 oFAST: FAST Keypoint Orientation(FAST角点的方向)

   FAST角点因计算量极小而受广泛欢迎,但是它没有方向,本章将给出一种计算FAST角点方向的简单算法。

3.1 FAST Detector(FAST角点提取器)

   本节简单介绍FAST角点的计算思路,详细内容发表在文献[23]中(这也是一篇必读的经典文献)。本节还提到FAST本身不对角点进行测量,因此会误检出大量边缘,可以用Harris corner measure减少对边缘的误判(这也是一个宽进严留的选择机制)。

   同时,FAST本身不具备尺度不变性,因此需要用特征金字塔解决尺度不变性问题,在金字塔的每层采用 Harris 滤波器生成FAST关键点。

3.2 Orientation by Intensity Centroid(用密度质心法确定方向)

   本节根据文献[22]中的方法,利用数学中矩(moment)的概念,用局部图像的灰度质心为FAST角点定向,文中的公式(1)-(3)给出了具体的计算方法。

   (倒数第二段)为了提升FAST的旋转不变性,我们确保在矩的计算中x和y保持在一个半径为r的圆形区域内。就经验而言,我们选择块尺寸作为这个参数r,因此x和y的取值范围就是[-r,r]。(实际上是正方形而非圆形)我们发现一个问题:当矩的模长接近0时,该测量将变得不稳定,但是对于FAST角点而言,我们发现这种情况很少出现。

   (最后一段)我们对比了质心定向法与基于梯度的方法,BIN(直方图概念相关)和MAX(高等数学方向导数和梯度)。在这两种方法中,可以通过计算平滑图像的X和Y梯度。MAX选择图像区块关键点中最大的梯度方向。BIN在10度区间里面选择最大的形成直方图的梯度方向。尽管只选择了一个方向,但BIN和SIFT算法比较类似。图2给出了平面旋转带噪声的图像的数据集上的方差比较。两种基于梯度的方法(MAX,BIN)都没那么好,但质心定向法结果很好,即使在有噪声的情况下。(本段大意是说:对比了基于质心的方法和其他两种基于梯度的方法,结论是基于质心的方法(本方法)更优,即使在带噪条件下。)

4 rBRIEF: Rotation-Aware Brief(具备旋转不变性的BRIEF描述子)

   首先介绍了steered BRIEF(这也是本文所提出的),介绍了如何计算并证明该方法不具备很好的旋转不变性;然后介绍了寻找具有更低相关度的二进制测试——rBRIEF——的学习步骤,并给出了rBRIEF与SIFT和SURF的对比。

   首先介绍了steered BRIEF(这也是本文所提出的),介绍了如何计算并证明该方法不具备很好的旋转不变性;然后介绍了寻找具有更低相关度的二进制测试——rBRIEF——的学习步骤,并给出了rBRIEF与SIFT和SURF的对比。

4.1 Efficient Rotation of the BRIEF Operator(BRIEF描述子的旋转有效性)

BRIEF描述子简介

   本节简单介绍BRIEF描述子的计算方法,详细内容参考文献[6](这也是一篇必读的经典文献)。根据公式(4)-(5)可以得到BRIEF的计算方法,这里也不妨给出:

S1:以特征点为中心,取rxr的邻域窗口。在窗口内随机选取一对(两个)点,比较二者像素的大小,进行如公式(4)二进制赋值。
S2:其中p(x)和p(y)分别是在点x(u1,v1)和y(u2,v2)处的像素值。
S3:在窗口中随机选取 N 对随机点,重复步骤 2 的二进制赋值,形成一个二进制编码,这个编码就是对特征点的描述,即特征描述子。(一般N=256)
注意:关于一对随机点的选择方法,文献[6]作者测试了5种方法,这个看原文。

   最后需要注意,在构造 BRIEF 描述子时,只考虑了单个像素处的像素值,因此BRIEF对噪声非常敏感。通过对区域进行预平滑可以降低这种敏感性,从而提高描述子的稳定性和可重复性。

Steered BRIEF

   (这是作者提出的针对BRIEF不具有旋转不变性的一个改进版本,本节简要地进行了讨论并给出计算方法)

   我们希望BRIEF能够对平面内的旋转保持不变性。然而图 7 表明事实上BRIEF并不具备这样的能力,它在平面旋转若干度数时匹配效果便急剧下降。文章[6]的原作者提出的方法是对每一个图像块做透视变换后的旋转点集计算BRIEF描述子,但是这种方法所花费的成本是巨大的。为此,本文提出steered BRIEF。

   接下来的三个公式给出了steered BRIEF的计算方法,这里不赘述了。

   (最后一段)我们将角度离散为2π/30(12度)的增量,并构造一个预计算的简短模式的查找表,只要关键点的方向θ在视图中是一致的,就可以使用正确的点集Sθ来计算其描述符。

4.2 Variance and Correlation(方差和相关性)

   (本节讨论 BRIEF 的方差和相关性)

   BRIEF 的一个良好的性质是每一个bit都有较大的方差以及接近0.5的均值(每一个bit只能在0,1中取值,因此均值为0.5,而对一个特征位来说,均值0.5的最大样本方差是0.25),图3展示了超过100k个(典型高斯图块,typical Gaussian BRIEF pattern)关键点的256-bit BRIEF描述子的每一bit均值的分布。另一方面,一旦 BRIEF 沿着关键点的方向定向(即:采用了steered BRIEF),均值就会分部得更开(更加分散),而不是像BRIEF一样集中在0.5附近。对这种情况的理解是,具有方向的角点关键点对二值比较结果具有更高的均衡性。

   更大的方差使得特征更加显著,因为它对不同的输入有不同的反应。另一个希望有的性质是让binary test不相关,这样每一个test都将影响最终的result。为了分析BRIEF向量中这些test的相关性和方差,我们看图4。对100k个特征点的 256-bit BRIEF、steered BRIEF、rBRIEF描述子做PCA分析,取前40个主成分(40之后 BRIEF 和 steered BRIEF 就收敛了,也就是图中红线和蓝线重合)BRIEF和steered-BRIEF都具有较高的初始特征值,表明二元检验之间的相关性:基本上所有信息都包含在前10或15个主成分中。steered BRIEF 的方差显著更低,因为它的主成分对应特征值更小,因此显著性更差。显然,BRIEF 依赖于关键点的随机方向获得高性能,另一个关于 steered BRIEF 效果的视角是图5,该图显示了 inliers 与 outliers 的距离分布。注意,对于steered BRIEF,outliers 的平均值被向左推,并且与 inliers.有更多的重叠。(见图5的注释)

4.3 Learning Good Binary Features(学习一种优质的二进制特征)

   (目标就是找到一种算法,该算法可以选取优质的 binary tests,其中的优质是指“大方差”和“低相关性”)

   本节给出了一种学习算法,通过该算法可以选取具有大方差值和低相关性的binary tests,算法的具体流程在原文中分3点列出。

   (最后一段)像这样通过贪婪搜索获得的 256-bit 描述子叫做 rBRIEF。rBRIEF 在方差和相关性方面比 steered BRIEF 有着显著的性能提升,如图4,rBRIEF 的PCA特征值更高,且降落得没那么快。通过这种算法产生的高方差 binary tests 如图6所示,未经学习的 tests 有一个非常明显的垂直趋势(左图),这表明了高度的相关性,学习之后选取的 tests 有着更大的差异性和更低的相关性。

4.4 Evaluation(评估)

   本节测试oFAST和rBRIEF的组合体,也就是ORB特征的性能。测试在两个数据集上进行,分别是一组简单的人造数据(原图和它经过平面旋转后加高斯噪声处理后得到的图像)和一组用相机从不同角度实际拍摄的图像。测试对比了ORB与SIFT包括SURF相比在抗噪性、旋转不变性以及实际的图像匹配应用中的效果。测试的结果如原文中图7-图9所示。

   图7展示了在加噪旋转下不同描述子的正确匹配率。可以看到:BRIEF 描述子在旋转度数稍有增加(10度)后即迅速失效,SIFT比SURF更好,ORB最好。

   图8表明,相较于SIFT,ORB对高斯噪声的抵抗力更强。随着高斯噪声以5dB依次增加,SIFT的匹配效果大约依次下降10个百分点,而ORB虽然也下降,但是下降幅度更小。

   图9的实地实验结果表明,在室外场景中,ORB表现优于SIFT和SURF,而在室内场景中,三者效果相似。

5 Scalable Matching of Binary Features(尺度可伸缩匹配)

   本章我们证明ORB在大量图像的最近邻(NN)匹配中比SIFT/SURF表现更好。ORB的一个关键部分是方差的恢复,这使得NN搜索更加有效。

5.1 Locality Sensitive Hashing for rBrief(rBRIEF的局部敏感哈希)

   因为 rBRIEF 是一个二进制特征,我们选择局部敏感哈希(LSH)作为最邻近快速查找。在 LSH 中,点存储在几个散列表/哈希表中,并在不同的 buckets 中散列(被哈希到不同的 buckets 里)。给定一个查询描述符(query descriptor),使用蛮力匹配检索其匹配的 bucket 并比较其元素。 这种技术的强大之处在于它能够在给定足够的哈希表的情况下,以高概率检索最近的邻居。

   我们使用多探针LSH,来增强传统LSH方法;哈希映射变换后,原始空间中相邻的数据落入相同的 bucket 内,那么在该数据集合中进行近邻查找就变得容易了,我们查找特征描述子落入的相邻的 bucket 。然而,这可能需要确认更多的匹配,需要的表的数量少一些,更长的子集,因此可以用小一点的 bucket。

5.2 Correlation and Leveling(相关性和分层)

   rBRIEF 通过使散列表的 buckets 更加均匀提高了LSH的速度:由于这些 bit 的相关性较小,散列函数在对数据进行分区方面做得更好。如图10所示,相较于 BRIEF 和 steered BRIEF,rBRIEF 的 bucket size 平均更小。

5.3 Evaluation(评估)

   我们使用 FLANN(一个快速最近邻逼近搜索函数库)对比了 rBRIEF 描述子的 LSH搜索和 SIFT 描述子的 kdtree 搜索 两者的性能,我们在 Pascal2009 数据集上训练了不同的描述子并使用 [1] 中相同的仿射变换在这些图像的扭曲采样版本上测试这些描述子。

   我们的多点探测局部敏感哈希方法采用二值数据加速了对哈希查找表的键值搜索。它也可以用来计算两个特征描述子的汉明距离。

   图11给出了kd树下SIFT、rBRIEF和steered BRIEF三种描述子运算速度和匹配准确率的关联。当在正确的数据库图像中匹配到50个以上的描述子时,将成功匹配测试图像。我们注意到 LSH 比 kd树更快,这很可能是由于它的简单性和距离计算的快速性(hamming距离)。LSH也提供了更多准确度方面的灵活性,这在袋特征方法上比较有趣。我们还可以注意到,由于 buckets 不均匀,steered BRIEF 的速度要慢得多。

6 Applications(应用)

6.1 Benchmarks(耗时评测)

   本节给出ORB特征的三个计算子过程(特征金字塔、oFAST、rBRIEF)在测试中各自的平均耗时,以及ORB、SIFT和SURF三者的平均计算耗时,结果很明显,ORB完胜。

6.2 Textured object detection(纹理目标检测)

   本节用ORB做了一个纹理目标检测。

   我们的数据集包括了49个居家物品,每一个物品都使用了2D摄像机和微软的 Kinect 设备从24个不同角度拍摄了照片。测试数据是上述二维图像的子集,这些图像是同一个物体在不同角度和遮挡情况下拍摄得到的。要进行匹配,我们需要匹配描述子,也需要计算姿势。最后,我们的 pipeline 检索了图12中 61% 的对象。

   该算法在 200MB 中处理一个由 1.2M 个描述子组成的数据库,其时间与我们之前显示的时间相当(平均检测时间为 14ms,平均 LSH 匹配时间为17ms)。通过不将所有查询描述子与训练数据匹配,可以大大加快流水线(pipeline)的(运行)速度,但我们的目标只是展示使用ORB进行目标检测的可行性。

6.3 Embedded real-time feature tracking(嵌入式实时特征追踪)

   本节验证ORB在嵌入式平台上实时运行特征追踪的可行性。

   现在虽然有可以在手机上实时运行的特征追踪系统,但是它们多是只能处理特征量很少的小图(如120*160)。和本系统相类似的[30]每张图也要处理超过1秒,而本系统可以在 512M 内存和 1GHz ARM处理器的手机上以每秒7张图的速率处理 640*480 分辨率的图像。在实现过程中我们使用了安卓系统的 OpenCV 端口。最后给出了每张图处理400个特征点时的耗时。

7 Conclusion(总结)

   在本文中我们定义了一个新的角点特征——ORB,并通过和其他流行描述子对比证明了它的优秀性能,ORB已经在openCV中实现并公开。我们没有充分解决的问题之一是尺度不变性,虽然我们使用了特征金字塔,但是我们没有从 depth cues 探索每一个关键点尺度,没有改变 octaves 的数量,等等。后续的工作还包括 GPU/SSE 优化,这可能使计算时间再降低一个数量级。

2 文献读后感

   这篇文献提出了一种新的特征——ORB,它以改进后的oFAST为角点,以具备旋转不变性特征的rBRIEF为描述子,具备抗噪性、尺度不变性、旋转不变性、计算简便等优点。与SIFT和SURF等经典特征相比,ORB的显著优胜之处在于其计算资源消耗极小,计算耗时比SIFT少了两个数量级以上,非常适用于有低功耗和实时计算需求的场合(例如SLAM等)。

   本文提出的特征是ORB-SLAM的基础,同时又是在FAST和BRIEF的基础上改进得到的,是学习视觉SLAM绕不开的一个keypoint。ORB的代码在openCV中已有实现。

3 文献脉络

   本文与其他相关文献的关系如图1所示(初步脉络图,后期会有增删改)。

图1 本文献所在位置(箭头表示引证于或支持)
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值