高仙技术家|SLAM(二) 完善回环检测的视觉SLAM

时间:
2018-12-24
发布者:
高仙动态

高仙是全球较早从事自主移动技术研发与应用探索的机器人公司之一。成立至今,高仙不断打磨并完善了机器人全场景移动技术,并通过全球超过50+机型、1万+机器人终端在5000+行业的落地积累,实现了从室内到室外等不同环境、从清洁到安防等不同业务领域的广泛应用。高仙机器人全场景移动技术给越来越多的机器人赋予了自主移动必需的“躯壳”、“大脑”和“灵魂”。

在上篇高仙技术家文章中,我们介绍了激光SLAM方案,并在文章末端强调了闭环检测的重要性。在闭环检测的过程中,单一的激光检测方法在现实应用中存在着局限性,想要高效得到全局一致的高精地图,基于视觉的回环检测必不可少。

回环检测的定义和作用

在SLAM系统中,传感器数据噪声和算法本身都会导致前端估算的载具位姿存在一定的误差,该误差会随着时间不断积累.最显著的情况下,当机器人完成一个环形的运动之后,SLAM算法计算出的路径会由于积累误差而无法完全闭合。如图1所示, 载具绕建筑物一圈之后, 当前位置和起始位置的墙(分别用蓝色和红色虚线标出)没有完全重合。

回环检测的定义和方法

回环检测本质上说是一个匹配问题, 只要能达到目的,可以有非常多的解决办法。因此,试图对回环检测方法进行分类难免以偏概全,这里简单作出归纳,并且不局限于视觉和激光,以供参考[1][2]:

  • 地图与地图的匹配

  • 特征点与特征点的匹配

  • 特征点与地图的匹配

  • 图像与图像的匹配

需要说明的是,这里的”图像”指图像全局信息,所谓的图像到图像的匹配也是在全局信息层面的匹配。其中的地图与地图的匹配,多应用于激光SLAM和RGBD SLAM。而所谓的特征点, 指从图像或者激光数据中提取的具有代表性的关键点。

下面介绍两种具有代表性的回环检测方法:

DBOW

熟悉视觉SLAM的读者应该不会对DBOW陌生, 它是一个基于词袋模型(BOW,BagofWord)的回环检测开源框架,属于上述方法中的特征点到特征点的匹配方法[3][4]。DBOW使用词袋模型对图像特征点进行了分类,在匹配时只需要和属于同一类的特征进行匹配就可以起到加速的作用。这里使用图的方式对其算法框架进行梳理,一方面可以帮助读者理解回环检测的过程,另一方面是因为许多视觉回环检测方法都与之类似:

可以看出来,DBOW算法通过了多层筛选,以保证结果的可靠性。同时,其使用机器学习方法进行特征分类,通过大量的数据训练,保证了分类的准确性。 但是,万事都有两面性,过多的判断和筛选增加了算法的复杂性。比如,算法中有很多参数需要使用者根据经验去设置,对于不同的场景又需要不同的参数,这就增加了使用的难度。再者,训练的词袋模型不可能适用于任何场景,对于某些特定场景,需要特定的场景数据进行重新训练。而许多学术论文中所提出的词袋模型加载时间过长问题,当设备运算量足够,且不需要频繁启动的情况下,其实可以忽略。

目前GITHUB上DBOW,DBOW2和DBOW3可供大家使用。其中,最新的DBOW3对DBOW2进行了加速方面的改进。

HALOC

HALOC是另外一个优秀的回环检测开源框架, 属于图像到图像的匹配,当然在筛选过程中也使用了特征点与特征点的匹配[1][5]。

图像与图像之间的匹配, 是在图像全局信息层面的匹配, 即直接判断历史图像是否和当前图像数据相似。然而, 直接对比图像的每一个像素是一个相当复杂和耗时的过程。理所当然的思路是通过某种统计方法对整个图像的信息进行统计或者说压缩, 再进行对比。常见的方法有:

  • 基于图像外观的统计方法。如纹理信息,颜色信息,频域信息,图像矩阵分解等。

  • 基于特征点的统计方法。

比如,可以统计图像某个或多个颜色通道的直方图, 利用直方图的相似度来判断整个图像是否相似。

HALOC算法是一种基于特征点统计的全局图像匹配方法。简单来说,就是统计图像中特征点的信息,作为该图像的标签。在特征检测时,就可利用该标签进行快速匹配。那么,如何得到图像标签呢? 其实,所谓的标签,就是一个向量,该向量是对图像整体特征信息的浓缩,如下图所示:

如上图所示,将图像当中的所有特征的描述子按照一定的顺序进行排列,组成一个特征描述子矩阵,将该矩阵进行压缩之后就可以得到一个数组形式的图像标签。由此,该标签足够代表图像的总体特征信息,同时匹配速度也非常快。在此基础上,进一步进行类似于DBOW的多层筛选,即可得到最优的回环匹配结果。

相比于DBOW算法,HALOC算法不需要词袋的训练和加载,框架上也更加简答易用。

高仙如何实施回环检测

高仙是全球较早从事SLAM算法研究的公司之一。多年以来,得到了业界的广泛肯定,并获得了相关领域的多项殊荣和奖励。这些都离不开每一位研究者对创新的不懈追求,和扎根现场,落地为本的求是精神。通过不断地积累,高仙已经建立了一套完整和可靠的SLAM技术方案,融合了20多种传感器,并且通过实时的数据反馈、测试反馈、仿真反馈形成完整的开发闭环,保证了算法的性能。

高仙的SLAM方案融合了激光和视觉SLAM方案。其中,激光传感器提供的几何数据精度高,某些激光型号能提供的反射率信息更能帮助提取场景的特征,在此基础上,图像数据又提供了足够的颜色特征,便于完成精准的place recognition。在回环检测成功后,使用激光和视觉共同筛选过的稳定几何特征可以进一步能够建立structural constraints,优化地图和位姿。在闭环检测上,高仙将视觉回环检测方法和激光检测方法结合起来,形成了一套准确并且高效的回环检测方案,并在不同场景中进行了大量的测试,确保了算法的鲁棒性。最终, 达到全局一致的高精地图。

最后,作为一个刚从学校踏入社会的应届生,本人由衷地感谢高仙对我的培养和认可。入职以来,接触了视觉SLAM,激光SLAM,以及传感器驱动的开发等工作。通过在实践中不断地打磨自己,增强了自身硬实力。同时,自动驾驶领域的快速发展,也让我体会到站在浪潮之巅的激动与自豪。高仙热烈欢迎从事相关领域的研究者和在校生加入到公司发展的快车道上来,与高仙一起创造更好的未来!

[1] Carrasco P L N, Bonin-Font F, Oliver-Codina G. Global image signature for visual loop-closure detection[J]. Autonomous Robots, 2016, 40(8):1403-1417.
[2] Williams B, Cummins M, Neira J, et al. A comparison of loop closing techniques in monocular SLAM.[J]. Robotics & Autonomous Systems, 2009, 57(12):1188-1197.
[3] Dorian Gálvez-López. DBoW2[EB/OL]. https://github.com/dorian3d/DBoW2
[4] GalvezlóPez D, Tardós J D. Bags of Binary Words for Fast Place Recognition in Image Sequences[J]. IEEE Transactions on Robotics, 2012, 28(5):1188-1197.
[5]Negre Carrasco, Pep Lluis. libhaloc[EB/OL]. https://github.com/srv/libhaloc