移动机器人视觉SLAM回环检测原理、现状及趋势

作者 | 小B机器人 编辑 | 3D视觉开发者社区

导读

随着移动机器人的日益发展,SLAM也有了长足的进步。与激光SLAM相比,视觉SLAM的感知以及重定位能力更强。其次,它的安装方式比较多元化以及价格低廉,这些优势使它受到更多的关注,大量视觉SLAM算法被提出。

视觉SLAM框架包括传感器数据、前端、后端、回环检测和建图,如图1所示。回环检测是SLAM系统中重要的组成部分,对消除累积误差有着非常重要的作用,没有回环检测,SLAM系统就会等同于一个里程计,在长期大范围的导航和定位中产生的累计误差是的不可规避的。

仅仅依靠里程计进行的状态估计会导致比较严重的偏差,错误回环信息会使整个算法收敛到一个错误的值,尽管也有许多能够降低错误回环影响的图优化算法,但是这些并不可能从根本上消除回环带来的影响,并且会给整个定位系统带来一定计算负担。所以,回环检测在后期的地图优化中起着十分重要的作用

图1 视觉SLAM经典框架

目前视觉SLAM回环检测主要方式有传统的词袋模型以及基于概率和词袋模型的一些改进算法,但是传统方式依然存在过多的人工干预,对于场景中动态对象的处理不是十分理想,并且计算量较大,响应比较慢。而深度学习技术的出现及发展在回环检测问题的解决上提供了新的方向。

本文首先对回环检测的问题进行描述,对目前使用较多的传统回环检测方法进行梳理,总结与深度学习及语义分割等技术相结合的回环检测方法,在此基础上分析不同神经网络在公开数据集下的性能对比。介绍目前所使用的公开数据集及相关开源库。同时,分别从结合深度学习的回环检测、结合语义分割的回环检测和加入回环检测后的后端优化几个方面对回环检测目前所面临的挑战进行阐述,探讨视觉SLAM回环检测未来的发展热点趋势和方向,期望可以对回环检测技术研究人员提供新的思路。


1.回环检测问题描述 

当移动机器人经过一定时间的运动后回到原点,但是由于随着时间产生位姿漂移,此时的位置估计值并不是最初值,如果知道机器人是回到原点,把位置估计值拉回去,就可以消除漂移,起到减小累积误差的作用,在地图构建上减小误差,回环检测就可以起到这样的作用,如图2所示,正确的回环信息可以修正里程计误差,从而得到信息一致的地图。

图2 回环检测校正效果

在视觉SLAM问题中,位姿的估计是一个递推的过程,当前帧的位姿由上一帧位姿推算,其中的误差传递下去产生累积误差

如图3所示,一般情况下,第五帧位通过第四帧推算出来,当找到与第一帧的关系时,便可以由第一帧推算,此时只有两个约束的误差,累积误差就会减小,像这样与之前的某一帧建立位姿约束关系就叫做回环。减少约束数因而减小累积误差。回环检测就是检验这种历史帧的位姿约束问题。

图3 回环检测问题描述模型

2.主流回环检测方法

2.1 根据路标点先验信息

回环检测的一种方式是根据路标点的先验信息,在检测时检索到与先验信息相同的信息即认为产生回环。但是存在以下两个缺点:首先,如果使用人工设置的路标点,由于人力不够会导致路标点数量有限,机器人移动范围受限;其次,如果装载GPS装置,虽然免去人工路标点的设置环节,却增加机器人的载荷,当机器人在弱GPS信号的环境中定位精度就会受到影响。所以,这种基于路标点的方式使用情况并不多。

2.2 词袋模型

回环检测中最常用的词袋模型是将图像中的特征处理成单词,不同的单词代表不同的特征,对两张图片中单词进行对比,判断两张图片是否相似,为将所有特征类比成一个个单词,就需要训练一个词典,如图4所示,这个词典包含所有可能的单词集合,通过训练大量的数据可以使字典通用性更高。

图4 词袋模型模型实现过程

2.2.1 特征提取与描述

在视觉SLAM系统中,人为设计特征提取的方法包括SIFT、SURF和ORB算法三大类。

SIFT算法最早是由LoweDG提出的,由于它能够在空间尺度中找到极值点,从而在实验中提取的点具有尺度、位置、及旋转不变的特点。

SURF(Speeded Up Robust Features)算法是由HerbertBay等人提出,此算法是SIFT算法的一种改进算法,运行效率更加高效,但是,寻找主方向步骤很大程度上取决于局部区域像素的梯度方向,即使偏差角度不大,只要主方向不准确,特征匹配的误差就会比较大,导致匹配出错。

Galvez-Lopez D提出ORB(FAST+Brief)也比较具有代表性,它的运行效率是SIFT的十倍,是SURF的一百倍,在提取FAST特征点时比较简单,选择一个以3为半径的像素点作为中心点,并逐一比较中心点周围的十六个像素点,如果灰度差异值大于12时,当前中心点判断为特征点。除了局部特征方法外,全局图像描述符GIST也被用于视觉SLAM中。表1总结归纳几种特征提取方式。

表 1 特征提取方式对比表

2.2.2 聚类算法及相似性判断

在回环检测中,传统的方法词袋模型首先训练一个词典,之后需要产生一个数据库,用来记录查词典时所用的单词。训练词典即特征聚类的过程,假设所有的图片中需要提取N个特征,可以聚类成N/1000个单词,用这N/1000个单词来匹配,每个特征需要比较N/1000次才可以找到对应单词,为解决效率不高的问题,字典在训练过程中构建一个树,有k个分支,深度为d,根节点是粗分类,越下层分类越细,直至叶子结点。

利用k-d树进行特征匹配,速度得到提升,并将时间复杂度降低到对数级别。词袋模型核心内容就是使用K-means聚类算法,此算法比其他聚类算法更简单,执行速度更快,可以用于很多常规的数据集,是一种硬聚类算法,在无监督学习实验中广泛使用。

传统词袋模型算法中,相似性判断通常使用词频-逆文档频率(TF-IDF,Term Frequency–Inverse Document Frequency)算法,其中,TF指的是词频,表示在图像中提取的词汇的频率,频率越高,识别度就越高,IDF指的是逆文档频率,它表示在图像中提取的词汇出现频率越低区分度越高。

2.2.3 实验评估

传统的词袋模型在牛津大学公开数据集NewCollege以及CityCenter上的时间性能评估及相关信息如表2所示,图5展示了两种数据集利用词袋模型方法下的准确率—回环率曲线对比。

表2 词袋模型在不同数据集下训练时间表(单位:秒)

图5 词袋模型进行回环检测在不同数据集下的PR(准确率-回环率)曲线

 

2.3 基于词袋模型和概率的改进算法

最常用的基于词袋模型的方法仍然存在一定的局限性,这种方法将不同位置的相似场景错误判断为同一场景,针对这个问题,一些基于词袋模型和概率的改进方法也被提出。

根据概率生成一个概率分布,机器人回到地图上此点的可能性大小是通过每个点的概率,贝叶斯模型是最常使用的模型。

3.传统回环检测算法改进

在回环检测阶段,为了将高维度的图片进行实时性的比较与匹配,采用了提取图像特征点及其附属描述子的方式,并对两帧图像间描述子的相似度进行度量,与预设阈值进行比较,高于预设值,则判断两帧图像相似,最终判断移动机器人回到历史时刻位置。

特征描述子如SIFT,SURF描述子均为浮点数编码的描述子,比较相似度时采用2范数。特征描述子如BRIEF,ORB描述子等为二进制数编码的描述子,比较相似度时则使用汉明距离。二进制描述子相较于浮点型描述子,占用更少的内存资源,且计算量较小。此外,BRIEF等二进制描述子比浮点数描述子的更容易访问,具体如表3所示。图像中的特征描述符得到了很好的利用就可以准确判断回环是否产生,但是这是以原始特征顺序和空间位置为代价的。如果处在类似的位置环境,但是空间排列顺序不同,很容易造成回环检测算法的失效,导致同时定位与建图失败。

因此,想要对传统方式进行改进,就得使生成的新的单词具备空间位置信息及其他附属信息,并对新的二进制描述子的构成方式做出改进,以此提升回环检测的准确度

表3 常用特征描述子对比

4. 深度学习在回环检测中的应用

利用传统算法,可以在视觉SLAM回环检测中得到较好的准确率和召回率,但是存在训练时间较长、过于依赖操作者经验等问题。目前,计算机视觉与深度学习的相互结合,比如实例分类、对象检测、行为识别等方面都有不错的效果,执行效率以及准确率都有巨大的提升,深度学习技术的快速发展为回环检测提供新的解决方法,能够很好地解决目前回环检测中的一些问题。

深度学习的一个重要用途就是可以对数据进行识别以及分类,将传统方法与深度学习结合,或是直接将深度学习技术应用到回环检测上,从而得到提出一种全新的方法。目前相关的研究分成两个方向,主要是学习图像特征的方式有区别,一种利用CNN神经网络,另一种利用自编码器进行非监督式的学习,接着从特征的相似性进行回环的判断。

与传统词袋模型算法相比,利用深度学习的相关方法不需要人工提取特征,可以避免人工干预问题。并且因为深度学习可以获得图片更加深层的特征,可以更好地应对光照以及其他环境变化等外界因素,但是仍然需要更多相关知识的支持,为了获得更好的回环检测性能,深度学习与SLAM系统的结合还需要进一步开发。如表4所示,分别从物理意义、特征提取能力、设计流程、泛化能力、发展趋势等几个方面对传统词袋模型与利用深度学习的回环检测算法进行了优缺点的对比。

表4 传统词袋模型与基于深度学习的回环检测算法对比

5. 回环检测现有问题及未来发展方向

5.1 回环检测存在的问题

传统的回环检测算法,在准确率和回环率上都有不错的结果,但仍存在过多的人工干预、鲁棒性不高、训练时间长、过于依赖操作者经验等问题。对于场景中的复杂情况,提取图像描述子时,光照、天气等外界因素被忽略了,同时图像中物体的相对位置信息也是很重要的影响因素,将这些信息很好的利用起来就可以提高回环检测的性能。

近年来,在计算机视觉和深度学习发展的推动下,回环检测已经取得了很大的进步,但是这些算法在不同环境下的实时性以及不同情况下的泛化能力还需要进一步研究,例如基于深度学习的算法依赖大量的标记数据集且依赖当前环境与数据集之间的相似性;在信息特征的提取仍然缺少更加清晰的指导,训练参数的调整也比较依赖以往积累下来的调参经验,目前使用的CNN特征大多是由图像分类网络生成,如何训练适用于回环检测的专用CNN网络仍然是一个亟待解决的问题。

5.2 回环检测未来的发展方向

解决上述问题需要在相关领域进一步发展,更好地解决目前回环检测中仍然存在的问题,需要借助更多的相关知识,比如深度学习、目标识别以及语义分割等。

(1)基于深度学习的回环检测

近年来,由于深度学习的推动,目标检测技术也取得了进步,这有助于提高移动机器人的动态场景适应能力。目标识别分开的方法和传统的潜在区域特征提取方法不同,现在的目标识别算法为了提高目标识别的效率和准确率采用在深度学习框架下将两部分整合在一起。Hou等详细评估了目标识别中常用的物体潜在区域提取方法在回环检测中的应用,他发现回环检测中常用的对象识别方法以及使用神经网络生成标记区域的方法均受训练数据集的影响,这仍然存在一定的问题。

(2)基于语义分割的回环检测

目前语义视觉SLAM的相关研究成果大致为视觉SLAM辅助语义和视觉SLAM语义辅助两大类,前者又称为语义建图,大多基于卷积神经网络实现,将一些语义信息集成到SLAM的研究中,以满足复杂场景的要求。大多是利用提取得语义信息概括局部特征,与全局的图进行比较。目前的语义SLAM研究处于初步发展阶段,但前景广阔。语义分割技术与深度学习结合后获得了很大的提升,语义SLAM的难点在于如何设置误差函数,如何将观测值设置为深度学习的检测结果和分割结果,并一起融入SLAM的优化问题。解决这些困难一定会给回环检测问题带来新的突破。

(3)加入回环检测的后端优化

回环检测的最终目标是更好地进行后端优化。在设置参数时,应该结合后端优化算法。通过找到更多正确的回环,提升整个系统的优化效果。否则,错误的回环可能使优化结果收敛到错误的结果,造成整个系统的失误。传统系统性能优化指标主要是算法的准确率,但在一些新的后端优化方法中,保证准确率的同时尽量提高召回率,在优化阶段可减少错误回环的影响。这可以帮助SLAM系统设计出更好的后端,从而达到更好的地图构建,有助于更好地构建新的SLAM系统。

6.结论

回环检测对于整个SLAM系统至关重要,传统的词袋模型可以在一般情况下得到较好的性能,但是仍然存在过多人工干预等问题。在计算机视觉与深度学习技术的支持下,基于深度学习的算法有更好的性能,已经突破传统词袋模型,但是在实时性以及复杂场景下的情况仍然需要进一步研究,这样可以使回环检测的算法更好地应对场景的外观变化。

为了更好地解决目前回环检测中存在的问题,需要融入更多的相关领域的技术,深度学习、目标识别以及语义分割等技术的融入会给回环检测带来新的思考

(1)利用深度学习解决回环检测问题,用专用的网络来进行图像提取,这样可以检测出关键帧的深层特征,但是在信息特征的提取缺少较为清晰的指导,训练参数的调整依赖以往积累下来的调参经验。

(2)加入语义信息的回环检测,对构建语义地图、利用更高级的特征进行回环检测、节省地图的存储空间具有重要作用。

(3)将回环检测问题与后端优化问题结合起来考虑达到更好的效果,使整个系统更加完整,这将是视觉SLAM未来发展的新方向。

版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文。

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。

加入【3D视觉开发者社区】学习行业前沿知识,赋能开发者技能提升!
加入【3D视觉AI开放平台】体验AI算法能力,助力开发者视觉算法落地!

猜你喜欢

转载自blog.csdn.net/limingmin2020/article/details/128147702
今日推荐