基于点线特征的快速视觉SLAM方法
Fast visual SLAM method based on point and line features
通讯作者:
收稿日期: 2020-03-12
基金资助: |
|
Received: 2020-03-12
Fund supported: | 国家自然科学基金资助项目(61673272) |
作者简介 About authors
马鑫(1992—),男,硕士生,从事计算机视觉研究.orcid.org/0000-0002-2008-5385.E-mail:
为了提高RGB-D相机同时定位与地图构建(SLAM)系统在弱纹理场景下的定位精度和鲁棒性,提出快速的基于点线特征的SLAM方法. 在非关键帧的追踪过程中,基于描述子进行点特征匹配,基于几何约束进行线特征匹配;当插入新的关键帧时,计算线特征描述子以完成关键帧间的线特征匹配,并利用线特征三角化算法生成地图线. 通过降低线特征匹配过程运算量来提高SLAM系统的实时性. 此外,利用线特征的深度测量信息构造虚拟右目线段,并提出新的线特征重投影误差计算方法. 在公开数据集上的实验结果表明,与ORB-SLAM2等主流方法相比,所提算法提高了RGB-D SLAM系统在弱纹理场景下的定位精度;与传统点线特征结合的SLAM方法相比,所提算法的时间效率提高了约20%.
关键词:
A fast simultaneous localization and mapping (SLAM) algorithm based on point and line features was proposed in order to improve the localization accuracy and the robustness of SLAM system under RGB-D cameras in low-textured scenes. During the tracking of non-keyframes, point feature matching was performed based on descriptors, and line feature matching was performed based on geometric constraints. When a new keyframe was inserted, the descriptors of the line features were calculated to complete the line feature matching between the keyframes, and the line feature triangulation algorithm was used to generate map lines. The real-time performance of the SLAM system was improved by reducing the amount of calculation in the line feature matching process. In addition, virtual right-eye lines were constructed using the depth measurement information of line features, and a new method for calculating reprojection errors of line features was proposed. Experimental results on public datasets showed that compared with mainstream methods such as ORB-SLAM2, the proposed algorithm improved the localization accuracy of the RGB-D SLAM system in low-textured scenes. The time efficiency of the proposed algorithm was improved by about 20% compared with traditional SLAM method combining point and line features.
Keywords:
本文引用格式
马鑫, 梁新武, 蔡纪源.
MA Xin, LIANG Xin-wu, CAI Ji-yuan.
近几十年来,视觉同时定位与地图构建(simultaneous localization and mapping,SLAM)技术是计算机视觉和移动机器人领域的一大研究热点,其核心在于帮助机器人更加准确高效地认知自身方位以及周围环境的几何结构.
目前,主流视觉SLAM方法多采用非线性优化的框架. 根据对图像信息利用方式的不同,可以将视觉SLAM方法分为基于特征提取与匹配的特征法和基于光度一致性假设的直接法两大类. 在基于特征的方法中,点特征因其简单性最为常用. 典型的点特征方法首先利用特征检测算法提取图像中的显著角点,其次根据角点附近领域信息计算特征描述子以完成特征匹配,最后基于特征点的数据关联情况构造优化问题并求解状态变量,如PTAM[1]、ORB-SLAM[2]. 然而,基于点特征的SLAM系统过于依赖点特征的质量与数量,在弱纹理场景,例如走廊、窗户、白墙等,很难检测到足够数量的点特征,从而影响系统的鲁棒性和精度,甚至会出现跟踪失败. 另外,由于相机快速运动、弱纹理以及光照变化等原因,点特征的匹配数量和质量也会严重下降.
为了改善点特征SLAM方法的性能,线特征在SLAM系统中的使用受到越来越多的关注. 线特征在人造环境中较为丰富且对光照变化更加鲁棒. 点线特征的结合使用可以增大在弱纹理场景下SLAM系统特征提取的数量.
Vakhitov等[3]提出点线特征结合下的EPnPL和OPnPL算法. Zuo等[4]尝试在点线特征结合的SLAM系统前端算法中采用普吕克坐标表示线特征,在后端优化算法中采用最小正交表示参数化线特征. Pumarola等[5]在ORB-SLAM的基础上加入线特征,并提出利用线特征进行系统初始化的方法. Gomez-Ojeda等[6]首次开源基于双目的点线特征SLAM方法,在回环检测模块中充分考虑并权衡点线特征. PL-VIO在基于点特征的视觉惯性系统(visual inertial system,VINS)中引入线特征,取得了不错的定位精度[7]. 传统的线特征重投影误差主要基于点线之间的距离,Wang等[8]将直线角度也加入了线特征重投影误差的构造中.
在基于点特征的SLAM方法中引入线特征,一方面增加了点特征缺失情况下的特征观测与数据关联数量,另一方面线特征对光照变化没有点特征敏感,使得原系统的定位精度和鲁棒性都有所改善. 但是,目前大多数点线特征结合的SLAM方法采用类似于点特征的方式处理线特征,即每一帧提取线特征并计算描述子,根据线特征描述子完成帧间或帧与地图间的特征匹配. 这些方法的计算量几乎扩大一倍,运行效率有所下降,使得时间效率表现不佳成为点线特征结合方法的缺点和瓶颈. Gomez-Ojeda等[9]提出在高动态范围双目图像序列中采用基于几何约束构建最小化L1范数的方法完成线特征匹配. 与基于描述子的传统方法相比,该方法有效提高了线特征的追踪效率以及特定场景下的匹配质量.
基于特征的SLAM系统由于每帧图像都要进行特征的提取及匹配,其运行效率易受前端算法的影响. 相比于仅依赖于点特征的方法,点线特征结合的视觉SLAM方法提高了在弱纹理场景、光照变化及相机快速运动等情况下的定位精度与鲁棒性,但线特征的引入增加了特征提取与匹配环节的时间消耗,使得SLAM系统的运行效率下降.
为了有效提高基于点线特征的视觉SLAM系统的实时性,提出RGB-D相机下快速的视觉SLAM算法. 在非关键帧的追踪过程中,基于描述子进行点特征匹配,基于几何约束进行线特征匹配,根据当前帧与地图之间的特征匹配结果对当前帧位姿进行优化求解. 当插入新的关键帧时,计算线特征描述子以完成关键帧之间的线特征匹配,并利用三角化算法生成地图线特征. 通过降低特征匹配过程运算量来提高SLAM系统的实时性. 此外,基于线特征的深度测量信息,通过构造虚拟右目线段的方法提出新的线特征重投影误差. 本研究旨在提高传统点线特征结合SLAM方法的时间效率,以及更好地利用线特征观测信息.
1. 系统框架
在线特征匹配方面,受Gomez-Ojeda等[9]的工作启发,针对传统点线结合方法计算开销大的问题,提出利用几何约束进行相邻图像帧之间的线特征匹配,从而避免不必要的线特征描述子计算. 考虑到局部地图线程中关键帧之间运动较大且须进行特征匹配,在关键帧上计算线特征描述子并基于描述子完成关键帧间的线特征匹配.
本研究SLAM系统共分为三大线程:追踪(视觉里程计)、局部地图和回环检测,如图1所示. 该系统搭建在ORB-SLAM2的基础之上,其中涉及点特征的所有操作与ORB-SLAM2基本一致. 因此,本研究将着重阐述关于线特征的主要算法.
图 1
2. 基于点线特征的快速SLAM算法
2.1. 线特征追踪与误匹配剔除
在局部地图线程中,当前关键帧须与其他的局部地图关键帧进行线特征匹配,这些关键帧之间往往距离较远,图像差别较大,此时两匹配线段的几何约束条件难以满足. 因而,在插入新的关键帧时,本研究所提算法须额外计算线特征的LBD描述子,并基于此完成关键帧之间的线特征匹配. 另外,回环检测模块中词袋模型算法[14]须基于关键帧的特征描述子判断当前关键帧是否检测为回环. 综合以上因素,在关键帧上为线特征计算描述子可以充分发挥线特征在局部地图和回环检测模块中的作用.
在非关键帧线特征追踪过程中,须根据线特征(线段)的几何约束完成线特征匹配. 假设源线段为
1)两线段的角度相似,即角度之差小于某阈值
2)两线段的长度相似,较短线段与较长线段长度比值大于某阈值
3)两线段中点的距离相近,即中点的距离小于某阈值
根据上述算法得到的线特征匹配结果会存在误匹配的情况. 通常,相邻两帧的匹配线特征基本符合旋转一致性,即所有匹配线特征的位移方向基本一致. 因此,提出采用绝对中位差算法(median absolute deviation,MAD)估算这种位移变化的标准差,并基于此对误匹配进行剔除. 假设共有
第
考虑所有匹配线段的中点旋转角度
式中:
则认为该对匹配线段为误匹配,并将其剔除.
2.2. 线特征重投影误差
如图2所示,对于空间线段
图 2
根据2个投影端点齐次坐标
在单目和双目相机中,线特征的重投影误差多采用式(8)的方法构造而成. 但是,对于RGB-D相机而言,每一幅彩色图都有与之对应的深度图. 因此,线特征上的像素点往往具有深度测量信息. 为了充分利用线特征的测量信息,本研究在构造线特征重投影误差时对线段深度测量数据也加以考虑.
如图3所示,将某一彩色图像帧看作是双目相机模型中的左目图像
图 3
图 3 像素与深度测量信息结合的线特征重投影误差
Fig.3 Line feature reprojection error combining pixel and depth measurement information
式中:
假设三维空间线段
在本研究所提线重投影误差构造的方法中,一个重要的问题是如何判断线段上的像素点所对应的深度值准确有效. 通常,可以设定一深度阈值
2.3. 线特征三角化算法
类似于点的线性三角化算法[15],直线的线性三角化算法目的是通过两图像帧上的匹配线段得到空间线段的位置. 在本研究SLAM系统的局部地图线程中,若某线特征对应的深度值观测无效,则须通过三角化算法生成相应的地图线. 如果两匹配线段的端点严格对齐,则只须通过点的线性三角化算法即可计算出空间直线的对应端点. 但实际上,匹配线段的两端点往往不能保证严格对准. 因此,本研究推导了基于极平面的线特征三角化算法.
如图4所示,假设两图像帧分别为
图 4
对三维空间点
可以推得
式中:^表示向量到反对称矩阵的转换符,即
即
将式(13)和(16)整合得到
通过奇异值分解方法可以求解空间直线端点
3. 实验验证与分析
本研究相关实验在笔记本电脑上开展,基本参数为:英特尔酷睿i7-8550U,最高睿频4.0 GHz,四核八线程处理器,8 G内存.
3.1. 线特征匹配
图 5
图 6
图 6 基于几何约束和误匹配剔除的线特征匹配
Fig.6 Line feature matching based on geometric constraints and mismatch culling
3.2. 时间效率
为了衡量本研究算法与传统点线特征结合SLAM系统的时间性能差异,选取TUM RGB-D数据集[16]上fr3/ntn序列测试并对比本研究与PL-SLAM[5]算法的每帧图像追踪时间,如图7所示. 图中,t为追踪时间,Fra为帧数. 因PL-SLAM未开源,基于文献[5]中的思想开发了RGB-D版本PL-SLAM并对其进行测试. 在PL-SLAM算法中,所有线特征匹配过程均基于LBD描述子完成. 本研究算法平均每帧图像的追踪时间为67 ms,而PL-SLAM的平均追踪时间为84 ms. 与PL-SLAM相比,本研究算法的时间效率提高了约20%. 此外,本研究统计了TUM RGB-D数据集fr1/xyz序列上本研究算法与PL-SLAM算法两大线程(追踪和局部地图)中各主要操作的时间消耗,如表1所示.
图 7
图 7 fr3/ntn序列上本研究算法与PL-SLAM追踪时间对比
Fig.7 Comparison of tracking time between proposed method and PL-SLAM on sequence fr3/ntn
表 1 fr1/xyz序列上本研究算法与PL-SLAM的追踪与局部地图线程时间效率
Tab.1
ms | |||
线程 | 操作 | PL-SLAM | 本研究算法 |
追踪 | 特征提取 | 57.38 | 46.27 |
追踪局部地图 | 22.87 | 15.48 | |
局部地图 | 关键帧插入 | 32.59 | 24.48 |
地图特征剔除 | 1.02 | 0.97 | |
地图特征生成 | 33.01 | 17.50 | |
局部地图优化 | 334.30 | 270.68 | |
关键帧剔除 | 16.66 | 9.01 |
3.3. 定位精度
通过公开数据集上的实验来验证本研究所提算法的定位精度. ICL-NUIM是针对RGB-D相机的仿真数据集[17],该数据集上的颜色图和深度图会根据噪声模型进行数据处理,以模拟真实的相机传感器数据. 在某些序列下,弱纹理场景较多,对视觉SLAM方法是一大挑战. TUM RGB-D是使用Kinect相机采集的真实室内场景数据集,常被用作验证不同RGB-D SLAM算法的性能表现.
表 2 ICL-NUIM和TUM RGB-D数据集上不同算法绝对轨迹误差对比
Tab.2
m | |||||
序列 | 本研究算法 | PL-SLAM | ORB-SLAM2 | LPVO | DVO-SLAM |
lr_kt0 | 0.006 | 0.010 | 0.008 | 0.015 | 0.108 |
lr_kt1 | 0.010 | 0.025 | 0.135 | 0.039 | 0.059 |
lr_kt2 | 0.018 | 0.023 | 0.029 | 0.034 | 0.375 |
lr_kt3 | 0.014 | 0.013 | 0.014 | 0.102 | 0.433 |
of_kt0 | 0.035 | 0.046 | 0.056 | 0.061 | 0.244 |
of_kt1 | 0.022 | 0.035 | 0.058 | 0.052 | 0.178 |
of_kt2 | 0.027 | 0.034 | 0.025 | 0.039 | 0.099 |
of_kt3 | 0.018 | 0.036 | 0.050 | 0.030 | 0.079 |
fr1/xyz | 0.009 | 0.010 | 0.010 | − | 0.011 |
fr1/room | 0.040 | 0.056 | 0.059 | − | 0.053 |
fr1/360 | 0.130 | 0.161 | 0.228 | − | 0.083 |
fr3/ntn | 0.012 | 0.018 | 0.024 | − | 0.018 |
fr3/ntf | 0.025 | 0.038 | 0.051 | − | − |
fr3/stf | 0.009 | 0.014 | 0.013 | 0.174 | 0.048 |
图 8
图 8 本研究算法、PL-SLAM和ORB-SLAM2所估计轨迹对比图
Fig.8 Comparison of estimated trajectories among proposed method, PL-SLAM and ORB-SLAM2
4. 结 语
提出新的点线特征结合的视觉SLAM框架,利用几何约束进行非关键帧上的线特征匹配,从而减少特征匹配过程计算量. 同时,针对RGB-D相机,提出基于像素与深度观测信息的线特征重投影误差计算方法. 实验表明,与经典的RGB-D SLAM方法相比,所提方法具有更高的定位精度,尤其是针对弱纹理场景. 同时,相比于传统基于线特征描述子的点线特征视觉SLAM方法,所提SLAM系统时间效率得到了有效提高.
参考文献
ORB-SLAM: a versatile and accurate monocular SLAM system
[J].DOI:10.1109/TRO.2015.2463671 [本文引用: 1]
Pl-slam: a stereo slam system through the combination of points and line segments
[J].
Pl-vio: tightly-coupled monocular visual-inertial odometry using point and line features
[J].DOI:10.3390/s18041159 [本文引用: 2]
Improved point-line feature based visual SLAM method for indoor scenes
[J].DOI:10.3390/s18103559 [本文引用: 1]
Orb-slam2: an open-source slam system for monocular, stereo, and RGB-D cameras
[J].DOI:10.1109/TRO.2017.2705103 [本文引用: 1]
LSD: afast line segment detector with a false detection control
[J].
An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometric consistency
[J].DOI:10.1016/j.jvcir.2013.05.006 [本文引用: 1]
Bags of binary words for fast place recognition in image sequences
[J].DOI:10.1109/TRO.2012.2197158 [本文引用: 1]
/
〈 |
|
〉 |
