加入特征空间信息的视觉SLAM闭环检测改进方法
SLAM(同步定位与地图构建)指自主移动机器人根据环境构建地图并确定自身姿态和位置。相机能获得广泛优质的信息(分辨率足够高、图像颜色丰富等),且轻便价格低,基于相机的视觉SLAM方法成为近十年来的研究热点。闭环检测是视觉SLAM的一项重要过程,指判断自主移动机器人是否回到曾经到达过的地点,它是减少机器人位姿累积误差和地图不确定性的关键步骤。闭环检测有三种方式:map to map、image to image、map to image,实际常采用image to image方式,即序列图像匹配方法。
词袋(bag of words,以下使用简称BoW)作为主流的图像相似性匹配方法,被广泛利用和改进优化。Josef Sivi等人使用BoW,结合文本检索中的TF-IDF(term frequency–inverse document frequency)模式分配视觉单词权重,并加入停止词,识别视频中图片里的相似物体,提高了特征查询的速度。David Nister等人提出将BoW的视觉单词作为构建树结构的节点,假设节点个数为n,它的查找时间复杂度为O(log n),和时间复杂度为O(n2)的蛮力搜索方法相比,大大提高了特征搜索的效率。Dorian Galvez-López等人使用二进制描述子BRIEF(Binary Robust Independent Elementary Features,二进制鲁棒的独立基本特征)替换常用的SIFT(Distinctive Image Features from Scale-Invariant Keypoints,尺度不变关键点的独特图像特征)或SURF(Speeded-Up Robust Features,加速稳健特征),提高了特征匹配速度并节省特征占用空间。但上述方法均忽略特征空间联系,存在较大的投影量化误差,造成感知歧义,即相同单词投影到不同区域,不同单词却投影到相同区域,边缘单词发生此种情况的概率更大。
为提升图像匹配的准确率,开展了对BoW方法视觉单词添加空间信息的研究。Nishant Kejriwal等人用128维的SURF描述子表示图像特征,在使用视觉字典树结构的BoW模型基础上加入不同特征点同时出现和空间邻近关系的信息,然后用贝叶斯概率方法计算闭环。该方法应用在闭环检测中,取得了比传统BoW方法更高的准确率,但同时增加了较大时间复杂度。Svetlana Lazebnik等人提出将图像分为金字塔多个层级,每层划分不同大小的区域,分别统计并量化各层区域特征,然后通过特征向量相似度来确定匹配图像,提升了图像匹配准确率。李博等人提出带TF-IDF权重的视觉字典树和改进的金字塔得分匹配模型,从视觉字典树的下层往上层计算节点相似性增量匹配核函数,通过结合不同层次单词关联性,降低投影量化歧义性。该方法改善BoW的视觉单词本受单词数目限制导致性能不佳的不足,提升了检索效率并减小匹配误差。因图像拍摄视角差异等原因,上述针对视觉单词空间关系的改进方法鲁棒性不高,同时会明显增加比较特征空间关系的时间开销。
本文将用于图像相似性匹配的BoW方法作为改进对象,加入均匀划分4个区域的特征空间信息,通过比较全排列特征空间向量,提高闭环检测的准确率,且保证较高效率。
1 系统总体结构
本文对视觉SLAM的闭环检测处理,主要分为三个过程:提取图像特征点、创建BoW模型、使用全排列特征空间信息检测确认闭环。具体流程为:首先利用ORB方法提取图像特征点,以此创建BoW,通过视觉字典树结构表示BoW,然后计算比较图像库图像(机器人曾走过区域获取到的图像集合)和查询图像间向量的相似度。将相似度较大(即相似距离较小)的图像库图像作为候选图像,计算比较它们和查询图像特征空间全排列向量的距离,选取距离最小值对应的图像对,作为闭环。本文所设计的闭环检测过程如图1所示。
2 基于BoW模型的闭环检测方法
2.1 ORB特征提取方法
特征提取是物体识别、图像检索等常见应用的前提步骤,为BoW的创建提供特征点。SIFT特征具有平移、旋转、缩放等不变性,是较鲁棒的方法。然而该特征提取方法效率较低,不能较好满足SLAM实时性要求。折中于速率和稳定性的ORB方法,是SLAM特征提取的较好选择。ORB分为特征点检测FAST(Features from Accelerated Segment Test,加速分段测试的特征)方法和改进的特征点描述BRIEF方法两步处理过程。如图2,FAST方法比较被检测像素点和以其为圆心的圆上16个像素点的灰度差值,如果有至少连续12个像素点与中心点的灰度差值同时小于阈值或者同时大于阈值,则被检测的像素点为特征点,否则不是特征点。该方法简单可行,效率较高。
BRIEF的基本思想是将特征点周围满足某一特定分布规律像素点对的灰度值一一比较,大于关系用1表示,小于关系用0表示,将比较结果有序组成一串由0、1表示的向量,即得到特征描述子,它由二进制数字组成,节省了特征存储空间,使用位异或运算符可提升特征间的比较速度。在ORB方法中,以图像块(假设用A表示)几何中心和形心的连线作为特征点方向,以此保证BRIEF描述子具有旋转不变性。
2.2 创建BoW模型
借鉴于文本检索中单词反映文本重要信息的作用,将表示图像局部信息的特征点聚类成无序视觉单词,将它们组成词袋,用来表征图像。对特征点进行k-means聚类得到聚类中心点(视觉单词)后,对视觉单词分配TF-IDF权重。
其中,nid表示第i个视觉单词在图像d中出现的频数,nd表示图像d的视觉单词总数,N表示所有图像总数,Ni表示第i个视觉单词在所有图像中出现的频数。权重值被加入到特征索引结构中,将图像的各个特征点量化到与其距离最近的视觉单词中,统计各视觉单词的得分,即特征量化到各视觉单词的权重值之和,将各视觉单词得分组成向量,用来表示该图像。
2.3 基于BoW创建视觉字典树
对于BoW方法,需要使用数量巨大的视觉单词,才能保证较高的图像匹配准确度,此时查找效率比较低。为了提高查找效率,采用树结构的节点来组织不同聚类层次的视觉单词,叶子节点存储图像特征点,查找匹配特征点的过程为从根节点往下搜索到叶子节点。然而,使用视觉字典树方法同样会带来较大的感知歧义问题。为了改进BoW模型局部特征匹配造成较大量化误差的不足,提出对图像比较全排列特征空间向量信息的方法。
3 分块特征空间向量全排列比较方法
3.1 均匀划分4块区域的特征空间信息
因视角差异等因素影响,包含相似内容的不同图像,它们的分块区域不一定按序一一对应,这种情况导致基于金字塔空间的图像匹配方法准确性不高[12]。将图像分成均匀的4块区域,从左到右、从上到下分别编号为1,2,3,4。如图3所示,不同符号表示不同的视觉单词,(a)为某时刻相机获取图像,(b)为移动机器人再次到达(a)所到过地点时相机获取的图像,因这两个不同时刻相机拍摄角度不一致,(a)中2和4区域分别和(b)中的1和3区域有较高对应度。对于这种情况,将图像的各区域两两比较,才能得到更真实的匹配结果。采用均匀划分4块区域的特征空间全排列向量比较方法,既能利用特征空间关联信息弥补BoW匹配方法易造成感知歧义的不足,又能改进金字塔匹配方法导致效率较低和鲁棒性不高的问题。
在对图像特征点聚类构成视觉单词后,记录视觉单词的位置。统计各区域中特征量化到各个视觉单词的得分:Sijk,它表示图像i的特征量化到第j个区域的第k个视觉单词得分。假设视觉单词数目为n,图像i的每个区域特征空间向量为,4个区域的向量组合成种特征空间全排列向量:,其中且。该向量就是查询图像的特征空间信息,用于与图像库图像中划分4个区域按序排列的特征空间信息比较相似性,确定最优闭环。
3.2 计算闭环
闭环检测过程中,先判断前一时刻图像和当前图像的相似值是否小于设定阈值,决定是否进一步处理当前图像。如果需要,使用BoW方法初步筛选出与查询图像的向量距离小于阈值的候选闭环图像。向量间距离值计算如下。假设图像库图像x的向量表示为Vx,查询图像y的向量表示为Vy,归一化两幅图像向量并计算L1-范数距离的公式为:
根据距离确定图像相似度高低,距离越小,代表两张图像越相似,反之图像越不相似。然后将查询图像的全排列向量分别与候选闭环图像特征空间向量进行相似性比较,使用公式(5)的L1-范数距离公式计算它们向量间的距离。最相似两张图像的距离值为BoW方法和特征空间信息方法计算距离的最小值,即,该值对应的候选闭环图像为选出的最优闭环。
4 实验与结果分析
本实验所用软硬件配置如下:电脑CPU为i7处理器,主频是2.6GHz,内存16G,系统为Ubuntu 16.04 LTS,采用C++作为实验编程语言。本文的实验对象为New College数据集和City Centre数据集,它们是SLAM闭环检测的标准数据集,由牛津大学移动机器人实验室对室外大型场景采集而来。这两个数据集带有真实闭环信息,可用来检验实验测试效果。
分别使用ORB方法和SURF方法(对SIFT的改进,能加速特征提取)[13],对New College数据集不同时刻同一地点构成闭环的两张图像0745.jpg和1563.jpg进行特征提取和匹配实验,用圆圈标记检测到的特征点。调整两种方法的特征检测阈值,设定ORB方法的阈值为使它们检测到数目接近的特征点,然后比较特征检测效果,如图4所示。
图5是两种特征提取方法对上述闭环图像对的特征匹配效果,匹配点间用线段相连。选择New College和City Centre数据集的各10对闭环图像,采用这两种特征提取方法进行对比实验,将误匹配点初步过滤后,结果列于表1。通过该实验可知,虽然ORB方法特征检测的鲁棒性不及SURF方法,但它也能较准确地提取图像特征,且用时明显远远少于SURF方法,因而更好地满足SLAM对图像特征提取准确性和效率的要求。
数据集 |
10组闭环图像 |
|||
特征提取方法 |
平均特征点数 |
平均特征提取时间 |
平均特征匹配时间 |
|
New College |
ORB |
468个 |
10.462 ms |
7.197 ms |
SURF |
220.867 ms |
14.307 ms |
||
City Centre |
ORB |
396个
|
10.212 ms |
2.535 ms |
SURF |
180.518 ms |
9.340 ms |
利用基于视觉字典树结构的BoW方法量化表示图像后,选出距离小于设定阈值的候选闭环,因相机平移偏转和噪声等影响,这些图像难免会存在视觉混淆现象。单从BoW方法得出的图像匹配得分大小选出候选闭环,存在较大的局限性,本文采用特征空间信息方法加以改进。分别对New College和City Centre数据集的查询图像和对应候选闭环图像,使用BoW方法和划分4块区域特征空间方法计算相似度,统计实验结果列于表2。
实验数据集 |
算法 |
|||||||
BoW |
特征空间信息 |
|||||||
真实闭环图像间平均距离值 |
错误闭环图像间平均距离值 |
闭环检测正确率 |
闭环检测计算时间/每张图片 |
真实闭环图像间平均距离值 |
错误闭环图像间平均距离值 |
闭环检测正确率 |
闭环检测计算 时间/每张图片 |
|
New College |
0.106 |
0.242 |
90.322% |
36.321ms |
0.073 |
0.235 |
95.174% |
36.513ms |
City Centre |
0.158 |
0.302 |
83.957% |
31.650ms |
0.112 |
0.289 |
87.435% |
31.832ms |
表2 BoW和特征空间信息方法比较结果
针对New College数据集的实验显示,划分4块特征空间方法明显比BoW方法计算的真实闭环图像间平均距离小,小约31.13%;虽然前者计算的错误闭环图像间平均距离较小,但只小了约2.89%。这说明前者对相似图像识别度明显比后者更高,两者对非相似图像识别度基本一致。最终前者的闭环检测正确率比后者高约5.0%,时间仅增加约0.65%。City Centre数据集图像整体偏暗,检测到的特征点较少,导致图像混淆度较高。在此数据集实验中,划分4块特征空间方法和BoW相比,前者计算的真实闭环图像间平均距离比后者小约29.11%,错误闭环图像间平均距离只比后者小了约4.30%。同样说明前者对相似图像识别度更高,而两者对非相似图像识别度基本相似。前者的闭环检测正确率比后者高约3.5%,时间仅增加约0.58%。因而,特征空间信息方法优于BoW方法。这是因为特征空间信息方法统计了不同区域的特征信息,相似图像间的这些特征信息理应比较一致,对视角偏转图像间的匹配,全排列向量比较具有更高鲁棒性,而非相似图像间不具有这样的特性。特征空间信息方法降低了因视角偏转、噪声等带来的感知偏差,提高了闭环检测正确率。而仅需查询图像全排列特征空间向量与候选图像特征空间向量比较带来的较小时间代价。
5 结论
视觉SLAM闭环检测中,使用ORB特征提取方法,能快速且较鲁棒地为构建BoW提供特征点,通过视觉字典树结构快速查询图像特征。本文通过全排列特征空间向量比较图像间相似性,和BoW方法相比,提高了图像匹配的准确率和鲁棒性,处理速度符合实时性要求,可较好地保证闭环检测的性能。未来将进一步挖掘图像特征间更有效的空间联系信息,或结合其它减小图像感知歧义的方法,进一步提高闭环检测的准确率。