APP下载

视觉同步定位与建图系统中回环检测研究进展

2023-04-21苏子旸吕为工

计算机技术与发展 2023年4期
关键词:回环深度特征

苏子旸,张 策*,张 茹,张 展,张 婧,吕为工

(1.哈尔滨工业大学(威海) 计算机科学与技术学院,山东 威海 264209;2.哈尔滨商业大学 管理学院,黑龙江 哈尔滨 150076;3.哈尔滨工业大学 计算机科学与技术学院,黑龙江 哈尔滨 150001)

0 引 言

同步定位与建图(Simultaneous Localization And Mapping,SLAM)[1]是智能机器人、无人驾驶等热点研究领域的关键技术,能够实现对设备位置与运行轨迹的精准识别和判定,以及对地图信息的构建。以相机为传感器的视觉SLAM(visual SLAM,vSLAM)技术因其具有较高的实用性和较低的成本成为各领域常用的方法。回环检测作为视觉SLAM系统的重要组成部分之一,其作用是检测设备的运动轨迹是否构成一个闭合回路,由此来消除部分在运动过程中产生的累积误差,提高定位与建图的准确性。基于词袋模型的回环检测方法一直是主流方法,使用词袋提取图像特征构成对图像的描述,进而检测图像序列中是否存在回环。随着深度学习技术与硬件设备的发展,深度学习技术逐渐在回环检测中得到应用,并取得了良好的效果。该文从视觉SLAM系统中回环检测的原理出发,介绍回环检测工作流程,阐述国内外相关研究成果,总结目前存在的主要问题,并对未来技术发展方向做出展望。

1 视觉SLAM系统中的回环检测原理与流程

1.1 视觉SLAM系统基本功能与结构

SLAM指一个可移动设备通过使用不同相机或雷达等传感器,在未知的环境下获取自身位置和环境情况并建图的过程[1-3],其主要目标是将传感器得到的信息传换成3D环境信息,绘制设备运动轨迹,完成对设备的定位和地图的绘制。由于摄像机的成本较低且较为轻便,且图像往往包含地点特征,因而视觉SLAM是现代SLAM系统中的重要方法。典型视觉SLAM系统包括传感器、视觉里程计、回环检测、后端优化以及建图,如图1所示。

图1 一个典型的SLAM系统基本构成

(1)传感器获取数据—通过传感器采集环境中各种形式的图像数据。在视觉SLAM中,常用的传感器有单目相机、双目相机与RGBD相机。

(2)前端视觉里程计—处理获取的图像数据,根据相邻图像估计两帧图像间设备的粗略移动。

(3)回环检测—检测设备是否在不同时间点到达同一位置,阶段性地消除误差,提高定位准确度。

(4)后端优化—前端得到的运动数据与观测数据存在一定的噪声,后端优化过程会在一定程度上减小噪声的影响。

(5)建图—根据应用需求的不同,重建出具有相应特点的地图,是对整体处理结果的具体化。

1.2 视觉SLAM系统中的回环检测原理与工作流程

在视觉SLAM系统运行过程中,由于环境条件或传感器的随机误差等因素,导致了偏移的产生。在运行过程中,这些误差会不断累计,随时间的推移对定位与建图的结果造成了不良影响。

回环检测的应用使得这一问题在一定程度上得以解决。在视觉SLAM的一些典型应用场景,如自动驾驶、扫地机器人以及智能穿戴设备等,其实际轨迹可能会重复经过一些场景,即轨迹存在回环。通过检测设备轨迹中存在的回环,对预测轨迹进行修正,阶段性地消除累计误差,由此提升典型视觉SLAM应用场景下的定位与建图的效果。

一般情况下回环检测指基于外观的回环检测方法,通过计算不同图像之间的相似度判定是否为同一地点,即构成回环。典型的回环检测基本步骤如图2所示。基于视觉的回环检测从图像的视觉特征入手,使用特征提取算法对图像序列中的图像进行特征提取,计算特征点的描述子,使用词袋模型或基于深度学习的模型等方法得到图像的向量化表示,进而计算图像间的相似度并进行回环判定。

图2 一种典型的回环检测基本步骤

1.3 回环检测前置问题——特征提取方法

特征提取方法决定了图像的描述方式。实际环境中存在多种可能对回环检测效果产生影响的因素如天气、季节以及视角变化等。增强回环检测鲁棒性的重要思路就是选择特征的描述子,即刻画特征的向量。

同时,描述子的形式是否便于计算是影响效率的主要因素。由此可见,特征提取作为回环检测的前置问题,对回环检测的效果影响很大。

SIFT(Scale-Invariant Feature Transform)[4]是被广泛使用的局部描述子,具有良好的旋转不变性和尺度不变性,且独特性良好,在海量数据的情况下也能精准匹配,但在涉及处理边缘较为光滑的图形时会出现特征点提取不足的情况,同时实时性不高。文献[5]提出SURF(Speeded Up Robust Features)算法,对SIFT算法的运算效率和特征描述方法进行了优化。SURF描述子在保持SIFT优点的同时,将维度降为原来的一半,简化了部分运算,提高了计算效率,但是SURF运算效率低的问题依然存在。

文献[6]提出了FAST关键点与BRIEF描述子结合的ORB特征。其对FAST关键点的检测图像局部亮度变化提取角点的过程进行了改进,构建图像金字塔和灰度质心法提高尺度不变性和旋转不变性。利用方向信息计算旋转后的BRIEF描述子,使ORB特征具有良好的尺度不变性和旋转不变性,同时由于BRIEF描述子是一种二进制描述子,具有较高的运算效率,是目前多种SLAM系统所采用的方案。

HOG(Histogram of Oriented Gradient)描述符[7]能够提取出图像中物体边缘所指向的方向。该方法组合图像的各个局部特征来描述图像。HOG描述符有良好的光学不变性且计算量较小,但旋转不变性和尺度不变性不足,在很多场景使用受限。

1.4 回环检测评测指标

常用相似度判断两张图片是否存在回环。相似度计算方法如式1所示。

(1)

其中,u与v分别为图像的二值描述向量,W为向量的维度,取L1范数。

对于非二值描述向量,一般使用欧氏距离(式2)与余弦距离(式3)等方式计算u与v之间的相似度。

(2)

(3)

当相似度大于一定阈值的时候,算法判定回环成立。与机器学习中分类问题类似的是,回环检测的结果通常存在如表1所示的四种情况。

表1 回环检测结果情况分类

假阳性会导致额外误差的产生,所以回环检测对准确率(式4)的要求极高,须接近100%。

(4)

累计误差的影响会在检出部分回环后基本消除,在保证准确率的前提下,召回率(式5)达到20%至30%就能取得比较理想的效果。

(5)

Precision-Recall曲线能直观地反映出在保持较高准确率时召回率的水平,较为适合回环检测。

2 回环检测技术研究进展

目前,视觉SLAM系统中的回环检测方案采用基于词袋模型的方法作为主流。考虑到真实场景中环境条件复杂多变,且深度学习技术能提供更具鲁棒性的图像表示,研究人员开始尝试将深度学习方法用于回环检测问题[8]。根据图像表示方法的不同,可以将其分为两种,即基于词袋模型的方法和基于深度学习的方法。这两类方法存在一定的交叉,将这种情况归类为基于深度学习的方法。

2.1 基于词袋模型的回环检测方法

词袋模型是将图像转换成向量的一种方式,其思想是对于图像来说只考虑特征的存在性。典型的基于词袋模型的回环检测算法逻辑图如图3所示。

图3 基于词袋的回环检测方法逻辑图

基于词袋的回环检测方法把图像特征作为“词汇”,首先通过特征提取算法提取图像的关键点并生成描述子,再对描述子经过聚类算法构建词袋,以词频-逆文本频率(TF-IDF)等技术对图像进行向量化表示,由此实现图像间相似度的计算。

对基于词袋模型的回环检测技术按照时间跨度进行梳理,如图4所示。2012年前,研究人员聚焦于使用SIFT或SURF描述子对图像进行描述,通过概率模型判定回环以提高实时性。2012年后,研究人员着眼于寻找性能与效率之间的平衡,即在保持高效率的前提下提高算法的鲁棒性。

2006年,Newman[9]在其提出的SLAM系统中引入了一个基于图像外观和序列的回环检测模块,其利用场景图像之间的局部描述的相似性来查找图像序列中潜在的回环,采用SIFT描述图像特征,同时考虑在相近时间拍摄的照片具有相似性。该方法在当时取得了良好的效果,但实时性较差。Newman等人[10]随后提出一种基于外观与概率的回环检测方法。他们建立了以视觉特征为词汇的词袋,通过Chow-Liu树计算当前图像是否出现过的概率。Chow-Liu树是一种特殊的图,其主要思想是考虑各个特征之间存在依赖关系。该方法在映射位置的过程中具有线性的时间复杂度,但缺点在于一些特征缺少独特性,可能导致出现更多误判。Wang[11]提出一种用于回环检测由粗到细的全局定位方法。该方法建立LVSM(Location Vector Space Model),通过Harris-Laplace检测器检测尺度不变特征点,以SIFT描述子描述。流程分为粗定位和细定位两阶段,粗定位使用LVSM查找最相似的几个候选向量,细定位对候选向量在数据库中进行投票运算。该方法需离线训练,其查找过程可在线运行。其在多个数据集上表现良好,但整体实时性有待提升。Angeli[12]针对Newman和Wang等人做法的不足,设计了一个基于贝叶斯滤波器的实时回环检测系统,引入局部特征和颜色两个特征空间并分别构建词袋,使用贝叶斯滤波器估计输入图片和历史图片之间回环成立的概率。这种做法可用于在线处理,且能在长图像序列中取得很好的结果。文献[13]提出了FAB-MAP,一种基于Chow-Liu树的回环检测算法,采用SURF描述特征,通过预训练构建词袋,使用Chow-Liu树判断是否构成回环。该算法在与训练环境差别较大的环境中性能也表现良好。

2012年,文献[14]提出了一种基于FAST和BRIEF特征词袋的回环检测方法。该方法使用一种被称为词汇树的K叉树以表示字典来加速查找的过程,可用于在线处理,但缺乏旋转和缩放不变性,其难以用于可穿戴相机与无人机等场景。

2013年,Labbe[15]提出的RTAB-Map包括一种基于内存管理的回环检测算法。其思想是使用有限数量的位置来进行回环检测,并在必要时遍历所有位置。2018年,文献[16]采用一种建立在层次结构之上的增量二进制词袋进行回环检测,能实时搜索、插入和删除新的视觉词汇,提高了实时性。

2021年,Tsintotas[17]提出了一种增量的用于回环检测的词袋模型,该算法通过从特征跟踪过程中提取少量独特的视觉单词对经过的轨迹进行编码。基于之前的工作[18]使用最近邻投票方案对所有地点计算概率,并通过贝叶斯滤波器估计设备在地图上的位置的信度状态。该方法得益于词汇量的精简,在保证高召回率和准确率的同时不乏实时性。

部分研究人员考虑结合点线特征并引入回环检测中。文献[19]提出一种基于LBD(Line Band Descriptor)和数据依赖的点线特征视觉SLAM回环检测算法,基于数据依赖得到相似度以检测回环。

2.2 基于深度学习的回环检测技术

卷积神经网络(Convolution Neural Network,CNN)和自编码器等深度学习模型在回环检测中的应用引起很大关注,研究人员进行了广泛的尝试。

Chen[20]尝试将卷积神经网络用于一个70公里跨度的位置识别数据集,构建混淆矩阵进行匹配。文献[21]对CNN提取到的特征和传统描述符在回环检测上的性能做了对比,发现当运行环境经历光照变化时CNN特征表现更优秀。类似地,文献[22-23]都采用SuperPoint模型来获得特征点以及描述符。文献[22]中提出LRO(Local Relative Orientation)匹配算法以计算图像对之间的对应关系,这一技术在存在视点变化和动态对象等因素的场景中体现出显著的鲁棒性。文献[24]使用ResNet提取图像全局特征,并组合序列图像特征作为当前帧的特征,更适用于大范围的场景。

Sünderhauf[25]研究发现CNN中间层特征编码表现出对天气和光照等条件的鲁棒性,顶层特征编码具有对于视角变化的鲁棒性。其在文献[26]利用该发现提出一种结合地标识别的回环检测算法,使用CNN对边缘检测算法提取的地标进行特征提取。类似地,文献[27]将CNN提取的顶层特征编码聚类作为CNN词汇,引入底层特征编码进行几何验证。胡章芳等人[28]提出了一种加权融合CNN多层特征的回环检测算法,其特征融合过程保留更多的空间几何信息,体现出了较好的准确性和鲁棒性。

但基于卷积神经网络的算法提取得到的特征维度较高,计算开销较大,因此一些降维方法得到应用。如文献[29]采用了TSNE方法对由VGG16网络得到的高维特征进行降维,消除了部分冗余数据。文献[25]中选择二进制局部敏感哈希算法将图片特征降维且保证了95%的位置识别性能。文献[30]采用一种简化的神经网络提取特征,该模型可以在保证性能的同时减少参数数量以提高实时性。

Gao[31]设计了一种堆叠降噪自编码器训练模型学习图像的向量表示,使用相似度矩阵来查找图片序列中潜在的回环,其逻辑如图5所示。该算法性能优秀,但由于神经网络的特性,模型训练时间较长。文献[32]提出一种基于HOG描述特征的用于回环检测的自编码器模型。该算法对部分图片训练数据集进行模拟的视角变换,使这一算法在存在视角和外观变化的情况下也能表现良好。Ma等人[33]采用轻量级自编码器网络提取图像全局特征,引入基于运动矢量一致性约束的局部匹配算法,具有较高的召回率且满足实时性要求。

图5 典型的使用自编码器的深度学习方法的算法逻辑图

一些研究人员发现VLAD[34](Vector of Locally Aggregated Descriptors)在图片检索与分类等领域取得了较好结果,所以尝试将其应用于回环检测。Arandjelovic[35]在其基础上提出了NetVLAD,一种可训练的广义VLAD层,本质是通过神经网络模拟VLAD的效果,使其可以参与反向传播的过程。

R-CNN等目标检测模型能提供更具鲁棒性的语义信息。文献[36]将Faster R-CNN模型与词袋模型结合,实现了语义与特征点相似度的融合,在视点变化和动态环境下具有较高的准确度和鲁棒性。Mask R-CNN[37]是一种可以为对象生成高质量的掩膜(Mask)的用于对象检测的模型。文献[38]使用Mask R-CNN(如图6所示)与ORB-SLAM相结合,将其用于SLAM系统中的回环检测,在保证准确性的同时实时性良好。Xu[39]在其提出的edgeSLAM中采用Mask R-CNN来优化视觉里程计和回环检测,使edgeSLAM的实时性有较大提高。类似地,研究人员[40]尝试将目标检测模型提取的语义信息与几何信息构成语义子图,取得了有竞争力的结果。

图6 Mask R-CNN模型架构

2.3 讨 论

通过文献梳理可以发现,回环检测算法不仅包括词袋模型及其演化,还包括深度学习模型及其新发展,表2中对回环检测的几种典型技术的算法原理进行了对比。

表2 回环检测技术对比

基于词袋的方法建立词袋描述图像,计算图像间相似度从而检测回环,可以与图像序列信息和语义信息相结合以提升鲁棒性。基于深度学习的方法利用深度学习模型生成图像描述,具有较高的准确率和鲁棒性,适合长时间运行于复杂环境的视觉SLAM系统,但受限于设备对计算资源的分配且对数据集有较高的要求[41],这一方法没有得到广泛采用。总之,基于词袋的方法居于主流地位,基于深度学习的方法处于发展与探索的阶段。回环检测对于深度学习来说仍是开放问题[42]。但深度学习方法表现出来的良好效果,有取代前者的趋势,乃至会给整体SLAM系统的性能带来较大提升[43]。

3 存在的问题及研究展望

3.1 存在的主要问题

视觉SLAM系统中回环检测技术发展迅速,基于词袋模型的技术位于主流,基于深度学习的技术效果更优但仍处于探索阶段。两类技术的发展推动回环检测算法进步,也带来许多亟待解决的问题:

(1)实时性与鲁棒性的平衡。

在视觉SLAM系统对实时性的要求越来越高的同时,也期望能进一步提高泛用性与鲁棒性。视觉SLAM系统运行的环境较为复杂多变,天气与季节因素、昼夜交替与动态目标等因素都是需要考虑的问题,伴随着长时间、长距离的运行,算法是否能保持原有的实时性不变或相对稳定。进一步来说,在计算资源较为紧凑的环境中如何进行实时性与鲁棒性的取舍仍需要研究人员不断去探索。

(2)视点变化与条件变化。

视觉SLAM系统的运行环境中,传感器的视点与环境的条件的变化可能会造成一些误判。全局特征(如语义特征)容易受到视点变化的影响,而局部特征(如SIFT、SURF等)受光照等条件变化影响较大。一些研究人员考虑制作包含同一位置多个条件变化的图像数据集;对于视角变化,研究人员考虑使用卷积神经网络的顶层特征编码。视点变化与条件变化都是提高算法鲁棒性的重要挑战,如何更好地表示图像的特征仍是值得探索的领域。

(3)深度学习模型资源开销与使用方法。

在回环检测问题中,基于深度学习的方法能提取语义信息以提高性能,但其带来的额外计算资源开销可能会降低算法的实时性。对于如何将深度学习用于回环检测这一问题,部分研究人员考虑将深度学习与词袋模型相结合以期保留各自的优点;也有研究人员引入自编码器或目标检测等基于深度学习的模型。总之,如何确立深度学习在回环检测中的地位,以及如何将深度学习的优点贯穿到整个视觉SLAM系统这些问题仍处于探索阶段。

3.2 研究展望

(1)轻量化的回环检测。

一些基于词袋模型的回环检测算法的处理时间可能会随运行时间的增加而不断增长。由回环检测问题性质可知,在保证准确率的前提下只需检测部分回环就可以达到很好的消除误差的结果。所以在一些场景如可穿戴设备中考虑更精简的模型与算法,舍弃部分召回率来保证长期运行的实时性。

(2)利用语义信息与目标检测。

为了提高回环检测模块在复杂环境下的鲁棒性,可以使用语义分割与目标检测等手段引入语义信息,优化特征提取过程,减少动态对象等无用特征的出现,提高回环检测过程的效率和准确率。

(3)引入学习型特征。

为了提高视觉SLAM系统中的回环检测算法在视点变化与条件变化下的效果,可以引入基于深度学习的图像特征。类似于NetVLAD,很多研究人员都提出基于深度学习的图像特征算法。对于计算资源充足的使用环境,可以尝试将基于深度学习的特征用于回环检测,进而提升回环检测的性能。

4 结束语

该文剖析了视觉SLAM中回环检测的原理、工作流程与指标,根据回环检测算法在图像表示方法上的差别将其分为基于词袋模型的算法和基于深度学习的算法两类,开展了深入的对比分析与总结。基于词袋模型的算法通过计算关键点的描述子,使用聚类算法训练词袋,计算图像的描述向量。基于深度学习的算法中,一部分采用卷积神经网络代替传统特征提取过程,另一部分采用自编码器模型对传统的特征提取过程进行学习,也有将对象检测与语义分割模型引入回环检测,均取得积极的成效。对于视觉SLAM系统中回环检测算法研究提供了有价值的参考与借鉴意义,希冀以该工作为推动回环检测向前发展带来积极作用。

猜你喜欢

回环深度特征
深度理解一元一次方程
嘟嘟闯关记
如何表达“特征”
不忠诚的四个特征
深度观察
深度观察
深度观察
透 月
抓住特征巧观察
学习“骑撑前回环”动作的常见心理问题分析及对策