动态场景下基于加权静态的视觉SLAM算法
1 引言
同步定位和映射(SLAM)是应用某种传感器来估计系统当前位姿的技术。近年来,视觉SLAM系统得到了广泛的研究,一些经典的SLAM有ORB-SLAM2[1]、ORB-SLAM3[2]、LSD-SLAM[3]等。然而,这些算法进行位姿状态估计时都假设在静态条件下运行的,当机器人在具有动态对象(如人、自行车等)的环境下移动时,动态对象的出现会改变图像的信息,导致不匹配的数据关联,使SLAM系统定位精度产生较大误差。目前,大多数传统SLAM系统采用随机采样一致性(RANSAC)[4]剔除动态点,但是动态对象在图像区域占据较大面积时,RANSAC算法易出现误匹配现象。近些年,国内外有较多学者对静/动态环境下的视觉SLAM进行研究。Sun等[5]利用自我补偿图像差异的方法来区分动态对象的运动,然后使用粒子滤波器和最大后验估计来精确优化运动分割,从而剔除运动对象对SLAM系统的干扰,但是该方法要求动态背景不能占比太大。
随着深度学习的发展,越来越多的研究将深度学习引入到SLAM领域中,以提高SLAM系统的鲁棒性。邹斌等[6]利用YOLOv3获取的语义信息结合ORB-SLAM2算法进行语义地图构建。Dyna-SLAM是一种动态鲁棒的SLAM算法,该算法利用Mask R-CNN的语义分割结果和多视图几何来检测运动对象[7],提高了位姿估计的精度,但Mask R-CNN运行速度缓慢,导致SLAM系统的实时性能差。王梦瑶等[8]通过语义分割与分配的等级传递获取移动特征点的运动状态。Li等[9]为基于深度不连续点获得的深度边缘点分配了静态权值,提出了一种针对关键帧中深度边缘点的静态加权方法,以减少动态信息造成的影响。DP-SLAM算法结合了几何约束和语义分割,通过利用动态概率和光流分割等方法来处理动态环境下的SLAM问题,有效地减少了动态物体对SLAM系统的干扰,从而提高系统的鲁棒性和精度[10]。
针对室内动态场景,本文提出了一种多线程并行的视觉SLAM系统,在ORB-SLAM2算法框架中引入了语义分割线程和几何线程。在语义分割线程中,采用改进的轻量化语义分割网络YOLOv5模型,以提高算法的运行效率,更准确地分割对象边界。为了减少网络的参数量,提高网络的运行效率和训练速度,用高效的特征提取模块GhostV2C3来替换YOLOv5模型中的C3模块,以减少冗余的卷积计算。在几何线程中,为了突破极约束判断动态特征点的局限性,采用加权几何约束的方法来检测对象的运动状态。语义分割线程与几何线程相结合能够分割出动态物体轮廓,并能根据目标检测结果为语义掩码选择的语义静态特征点赋予不同的权值,然后进行局部光束平差法(BA)联合优化。
2 系统框架
所提系统主要是基于ORB-SLAM2算法[1]框架的,如
3 动态目标检测
3.1 轻量化YOLOv5语义分割
传统的语义SLAM系统很难兼顾语义分割网络的高精度和实时性。Mask R-CNN[11]作为一种两阶段实例分割方法,会导致网络对图像的处理时间延迟较高,难以满足实时性需求。一些卷积神经网络,如全卷积神经网络(FCN)[12]和编码器-解码器结构的SegNet算法[13],已经被应用到SLAM系统中,然而它们缺乏上下文信息,并且仅使用单个尺度的特征图进行分割,缺乏多尺度的特征融合,难以准确地分割不同尺度的目标。
为了提高动态SLAM的运行效率,需要选择一种轻量级的语义分割网络。YOLOv5-seg系列存在n、s、m、l和x 5个不同规模的模型,在这些模型中,YOLOv5s-seg在精度和复杂度方面能够取得较好的平衡。因此本文采用YOLOv5s-seg进行改进。YOLOv5s-seg的分割原理与YOLACT[14]相似,利用两个并行任务来执行分割,在YOLOv5s检测网络的基础上增加了原型掩码输出分支,所以图像数据的预处理部分与YOLOv5s相同。为了实现精度和速度的平衡,本文将YOLOv5s-seg网络中所有C3模块替换为用于特征提取的改进模块GhostV2C3。如
GhostNetV2[16]在GhostNet架构[17]上增加解耦全连接(DFC)注意力机制,DFC注意力机制将全连接(FC)层分解为水平FC和垂直FC,表达式为
式中:
图 3. 两种Ghost模块。(a)DFC注意力;(b)GhostNetV2Bottleneck模块;(c)GhostV2C3模块
Fig. 3. Two Ghost modules. (a) DFC attention; (b) GhostNetV2Bottleneck module; (c) GhostV2C3 module
GhostNetV2Bottleneck模块如
YOLOv5s-seg使用C3模块在Backbone中的各个阶段进行特征提取和在PANet中进行多尺度特征融合。其中多个Bottleneck层的堆叠带来较大的参数量,造成检测效率低,考虑上述问题,设计了特征提取效率更高的GhostV2C3模块以减少网络时间开销,如
3.2 加权几何约束
利用语义分割只消除了先验动态特征点,一些语义上静态而实际上是运动的潜在特征点无法被语义分割识别。利用极约束[18]来判断某点是否为动态特征点,即静态特征点满足极约束,动态特征点违反该约束,但是极约束检验动态点的方法并不能找到所有的动态点,如
式中:
图 4. 极约束示意图。(a)满足极约束的情况;(b)不满足极约束的情况
Fig. 4. Schematic of the epipolar constraint. (a) Case of meeting the epipolar constraint; (b) case where the epipolar constraint is not met
对于每个输入帧,选择与当前帧重合度最高的5个关键帧作为参考帧,利用深度信息差
式中:
图 5. 去除动态特征点。(a)语义分割;(b)语义分割去除;(c)极约束去除;(d)加权几何约束去除
Fig. 5. Removing dynamic feature points. (a) Semantic segmentation; (b) semantic segmentation removal; (c) pole constraint removal; (d) weighted geometric constraint removal
4 基于加权静态的BA联合优化
由于大多数可用的SLAM系统都依赖于静态场景,不适用于动态场景,从而影响了它们在现实场景中的部署。ORB-SLAM2在进行线程跟踪的过程中,利用所有的特征点来进行局部BA优化[19],估计相机位姿,有
式中:
式中:
采用静态加权约束方法可以检测环境中潜在动态特征点的运动信息,减少参与BA优化过程的特征点对数,提高位姿优化的精度。本文将重投影误差乘以语义静态特征点的初始化权值,并将结果相加,通过与权值的乘积,可以根据特征点的可靠性,合理地分配特征点对目标函数的贡献。权值越大的,特征点越可靠,说明某点是静态特征点的可能性越大,对BA优化目标函数的贡献越大。最后对特征点的权值和相机位姿进行优化,表达式为
本文在图优化库(g2o)中采用Levenburg-Marquardt方法进行BA联合优化,需要手工计算误差项对优化变量的偏导数,所以特征点权值的偏导数为
式中:
5 实验与分析
5.1 与ORB-SLAM2及其他先进SLAM系统进行比较
为了评估所提系统的性能,对ORB-SLAM2和所提算法在TUM RGB数据集[20]下进行比较。
图 6. 绝对轨迹误差图、三维轨迹误差热力图和相对位姿误差图。(a)fr3/walking_xyz序列;(b)fr3/walking_rpt序列;(c)fr3/sitting_static序列
Fig. 6. Absolute trajectory error map, 3D trajectory error heat map, and relative pose error map. (a) fr3/walking_xyz sequence; (b) fr3/walking_rpt sequence; (c) fr3/sitting_static sequence
表 1. 绝对轨迹误差的对比
Table 1. Comparison of the absolute trajectory error
|
表 2. 相对位姿误差的对比
Table 2. Comparison of the relative pose error
|
表 3. 一些先进的SLAM算法的绝对轨迹误差的对比
Table 3. Comparison of the absolute trajectory error of some advanced SLAM algorithms
|
5.2 真实环境下的评估
为了证明所提系统的有效性和实时性,采集了两个人在实验室里站立和行走的真实动态场景的实验数据。
图 7. 真实的动态场景中使用RGB-D相机进行的实验。(a)实验场景;(b)实验效果
Fig. 7. Experiments using RGB-D cameras in a real dynamic scene. (a) Experiment scene; (b) experimental result
5.3 实时性评估
在实际的应用中,实时性是评估SLAM的重要性能指标之一,跟踪时间指在跟踪线程完成对一帧图像的提取、匹配和位姿估计等所需的时间,不同的SLAM系统的平均跟踪时间如
表 4. 跟踪阶段的耗时对比
Table 4. Time-consuming comparison of the tracking phase
|
6 结论
为了消除动态目标对系统定位精度的影响,提出了一种动态场景下基于加权静态的视觉SLAM算法,在ORB-SLAM2算法中引入了语义分割线程和几何线程。采用改进的轻量化YOLOv5语义分割网络来提高所提算法的实时性,同时利用几何加权约束在几何线程中确定特征点的真实运动状态。将语义分割线程的分割结果与几何线程的检测信息相结合,获得动态目标检测结果,基于检测结果给语义静态特征点赋予权值,并对特征点权值和相机位姿估计进行BA联合优化,从而有效地提升了SLAM系统的定位精度。最后为了评估所提算法的可行性,在TUM数据集和真实的室内动态场景下,与ORB-SLAM2进行对比,所提算法在高动态环境数据集上的定位精度和稳定性有较高的提升,与Dyna-SLAM和RDS-SLAM等先进的视觉SLAM算法相比,所提算法的定位精度和实时性也得到一定的提升。尽管在定位精度和实时性能方面取得了进展,但仍然存在以下问题:一方面,系统的实时性能有待提高,需要进一步的改进;另一方面,需要对语义分割网络进行不断的优化,从而提高动态目标检测的分割精度。
[1] Mur-Artal R, Tardós J D. ORB-SLAM2: an open-source SLAM system for monocular, stereo, and RGB-D cameras[J]. IEEE Transactions on Robotics, 2017, 33(5): 1255-1262.
[2] Campos C, Elvira R, Rodríguez J J G, et al. ORB-SLAM3: an accurate open-source library for visual, visual-inertial, and multimap SLAM[J]. IEEE Transactions on Robotics, 2021, 37(6): 1874-1890.
[3] EngelJ, SchöpsT, CremersD. LSD-SLAM: large-scale direct monocular SLAM[M]∥Cremers D, Reid I, Saito H, et al. Computer vision-ECCV 2014. Lecture notes in computer science. Cham: Springer, 2014, 8690: 834-849.
[4] Fischler M A, Bolles R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[J]. Communications of the ACM, 1981, 24(6): 381-395.
[5] Sun Y X, Liu M, Meng M Q H. Improving RGB-D SLAM in dynamic environments: a motion removal approach[J]. Robotics and Autonomous Systems, 2017, 89: 110-122.
[6] 邹斌, 林思阳, 尹智帅. 基于YOLOv3和视觉SLAM的语义地图构建[J]. 激光与光电子学进展, 2020, 57(20): 201012.
[7] Bescos B, Fácil J M, Civera J, et al. DynaSLAM: tracking, mapping, and inpainting in dynamic scenes[J]. IEEE Robotics and Automation Letters, 2018, 3(4): 4076-4083.
[8] 王梦瑶, 宋薇. 动态场景下基于自适应语义分割的RGB-D SLAM算法[J]. 机器人, 2023, 45(1): 16-27.
Wang M Y, Song W. RGB-D SLAM algorithm based on adaptive semantic segmentation in dynamic scene[J]. Robot, 2023, 45(1): 16-27.
[9] Li S L, Lee D. RGB-D SLAM in dynamic environments using static point weighting[J]. IEEE Robotics and Automation Letters, 2017, 2(4): 2263-2270.
[10] Li A, Wang J K, Xu M, et al. DP-SLAM: a visual SLAM with moving probability towards dynamic environments[J]. Information Sciences, 2021, 556: 128-142.
[11] HeK M, GkioxariG, DollárP, et al. Mask R-CNN[C]∥2017 IEEE International Conference on Computer Vision (ICCV), October 22-29, 2017, Venice, Italy. New York: IEEE Press, 2017: 2980-2988.
[12] Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 39(4): 640-651.
[13] Badrinarayanan V, Kendall A, Cipolla R. SegNet: a deep convolutional encoder-decoder architecture for image segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481-2495.
[14] BolyaD, ZhouC, XiaoF Y, et al. YOLACT: real-time instance segmentation[C]∥2019 IEEE/CVF International Conference on Computer Vision (ICCV), October 27-November 2, 2019, Seoul, Republic of Korea. New York: IEEE Press, 2020: 9156-9165.
[15] Kasper-Eulaers M, Hahn N, Berger S, et al. Short communication: detecting heavy goods vehicles in rest areas in winter conditions using YOLOv5[J]. Algorithms, 2021, 14(4): 114.
[17] HanK, WangY H, TianQ, et al. GhostNet: more features from cheap operations[C]∥2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 13-19, 2020, Seattle, WA, USA. New York: IEEE Press, 2020: 1577-1586.
[18] HartleyR, ZissermanA. Multiple view geometry in computer vision[M]. 2nd ed. Cambridge: Cambridge University Press, 2003.
[20] SturmJ, EngelhardN, EndresF, et al. A benchmark for the evaluation of RGB-D SLAM systems[C]∥2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, October 7-12, 2012, Vilamoura-Algarve, Portugal. New York: IEEE Press, 2012: 573-580.
[21] YuC, LiuZ X, LiuX J, et al. DS-SLAM: a semantic visual SLAM towards dynamic environments[C]∥2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), October 1-5, 2018, Madrid, Spain. New York: IEEE Press, 2019: 1168-1174.
[22] Liu Y B, Miura J. RDS-SLAM: real-time dynamic SLAM using semantic segmentation methods[J]. IEEE Access, 2021, 9: 23772-23785.
Article Outline
李勇, 吴海波, 李万, 李东泽. 动态场景下基于加权静态的视觉SLAM算法[J]. 激光与光电子学进展, 2024, 61(4): 0437003. Yong Li, Haibo Wu, Wan Li, Dongze Li. Visual SLAM Algorithm Based on Weighted Static in Dynamic Environment[J]. Laser & Optoelectronics Progress, 2024, 61(4): 0437003.