摘要
传统的同步定位与制图(Simultaneous localization and mapping, SLAM)系统在复杂环境下工作时,无法分辨环境中的物体是否存在运动状态, 图像中运动的物体可能导致特征关联错误,引起定位的不准确和地图构建的偏差。为了提高SLAM系统在动态环境下的鲁棒性和可靠性,本文提出了一种顾及动态物体感知的增强型视觉SLAM系统。首先, 使用深度学习网络对每一帧图像的动态物体进行初始检测,然后使用多视图几何方法更加精细地判断目标检测无法确定的动态物体区域。通过剔除属于动态物体上的特征跟踪点, 提高系统的鲁棒性。本文方法在公共数据集TUM和KITTI上进行了测试,结果表明在动态场景中定位结果的准确度有了明显提升,尤其在高动态序列中相对于原始算法的精度提升在92%以上。与其他顾及动态场景的SLAM系统相比,本文方法在保持精度优势的同时,提高了运行结果的稳定性和时间效率。
同步定位与制图(Simultaneous localization and mapping, SLAM)技术是很多机器人应用的前提条件,它为路径规划、无碰撞导航和环境感知等任务提供支持。与激光雷达传感器相比,视觉传感器能够获取图像的纹理信息,可以拓展其他基于视觉的研究。视觉SLAM的框架通常包括图像信息读取、视觉里程计、后端优化、回环检测与建图。其中,视觉里程计作为SLAM系统的前端,能够通过传感器读取的图像信息来估计相机运动,其实现方法根据处理技术的不同可以分为直接法和特征点法两
对于大部分传统视觉SLAM系
本文提出一种基于深度学习和几何约束的算法来处理视觉SLAM过程中的动态物体,能够适用于RGB‑D、双目和单目等多种类型的影像数据。其中,深度学习方法将动态物体根据语义知识定义为车辆和人这类具有自主移动能力的潜在运动对象,而几何约束方法将不满足几何约束的点集标记为动态,检测的是场景中真实运动的动态物体。基于ORB‑SLAM
近十几年来,视觉SLAM取得了快速的发展,它因为成本低、体积小等优点受到很多研究人员的关注。Davison
ORB‑SLAM2的框架采纳了多线程机制,使用了ORB(Oriented FAST and rotated BRIEF
目前研究人员对于提升视觉SLAM在动态环境下的性能所采取的解决思路是基本一致的,即在前端视觉里程计之前,使用某种方法检测图像中的动态物体并进行筛除,然后仅使用环境中的静态特征关联点来参与计
Yu
除了使用深度学习和几何约束的方法,还可以采用光流法对动态区域进行检测。艾青林
现有的DynaSLA
本文的算法在ORB‑SLAM2的框架基础上结合深度学习和几何约束的方法来提高系统在动态环境下的鲁棒性,同时考虑了单目、双目以及RGB‑D相机3种情况,系统的总体框架如

图1 本文方法的框图
Fig.1 Diagram of the proposed method
由
目前,一阶段目标检测网络的检测精度和检测速度已经具有良好的实时应用优
首先,利用YOLOv5的语义知识检测先验的动态物体,将检测网络输出的检测框分为高动态和低动态两类。高动态框内检测的是能够自主移动的物体,即人与车辆,低动态框内检测的是不会自主移动的物体,例如椅子、书本等。由于使用的是矩形包围框的形式来框选检测的目标,因此低动态框与高动态框相互之间会存在相交区域,需要设计一套处理机制分别分析各个部分的像素类型。
根据矩形框的相对位置关系,本文将位于高动态框内、低动态框外的区域,划分为动态区域,认为其中提取的特征点具有高不可靠性,故将其去除;将位于高动态框和低动态框相交的区域,划分为待定区域,其中特征点的动态特性需要等候做进一步判断;将其余没有产生检测框的区域划分为静态区域,该区域内检测到的跟踪匹配的特征点被视为是可靠性较高的特征关联。如

图2 目标检测网络确定区域
Fig.2 Object detector determines the region
本文使用的YOLOv5目标检测网络的模型是通过在COCO数据

图3 目标检测无法满足的情况
Fig.3 Situations of object detection not to met
对于划分的待定区域以及目标检测网络的错检和漏检情况,使用多视图几何方法从像素级层面进行进一步的判断。
首先,对于输入的每一帧图像,通过目标检测网络确定动态区域后,使用位于静态区域的特征点进行轻量级的相机跟踪,得到当前帧的一个估计位姿。选择跟踪的地图点超过50个并且和上一关键帧的地图点重叠度小于90%的帧作为关键帧,这样做的目的是为了使插入的关键帧之间保持一定距离,减少信息的冗余。计算当前帧与每个关键帧之间的旋转和距离来衡量重叠度,令d作为两帧之间的重叠度,计算公式为
(1) |
(2) |
(3) |
式中:和分别为关键帧和当前帧位姿的欧拉角;和分别为关键帧和当前帧位姿的平移向量;为两帧之间位姿的欧拉角的模长;为两帧之间平移的距离;和分别为所有和中的最大值。选择与其重叠度最高的至多5个关键帧,根据三角测量原理,将其中的二维像素特征点转换到世界坐标系中得到三维地图点,简化的计算方程表示为
(4) |
式中:为从世界坐标系到相机坐标系的变换矩阵;为相机的内参矩阵。利用轻量级相机跟踪得到的当前帧位姿,将世界坐标系下的地图点投影到当前帧中,得到特征点和投影深度。
计算特征点与对应的地图点之间的夹角,即视差角
(5) |
如果这个角度大于30°,那么该点可能存在被遮挡的情况,此时将其划分到动态区域。此外,将关键帧的特征点投影到当前帧中得到的投影深度与在当前帧的深度图中直接获得的深度进行比较,如果差值超过了某个阈值,也认为该特征点落在了动态区域中。
在当前帧的深度图中,利用获得的动态像素点进行区域增长,得到动态区域的像素级掩膜。

图4 基于多视图几何方法得到的像素级掩膜
Fig.4 Mask (black pixels) obtained by multi‑view geometry method
但是由于本方法依赖于RGB‑D相机提供的深度信息,对于超出深度量程的物体,RGB‑D相机并不能提供准确的测量结果,这就导致多视图几何方法不能检测出距离相机过远的动态物体。同时,为了提高计算的准确度,对动态物体的每一次判断都至少需要5帧关键帧参与,这会给结果带来一定的滞后性。而目标检测网络直接对单帧图像进行检测,不受深度信息的限制,不依赖已有的关键帧,可以和多视图几何方法实现互补,达到更加精确的检测效果。
实验分别采用TUM数据
RGB‑D TUM数据
图像序列 | ORB‑SLAM | YOLOv5‑ SLAM | Geo‑SLAM | YG‑SLAM | 准确度提升/% |
---|---|---|---|---|---|
半球面/m | 0.351 | 0.020 | 0.035 | 0.018 | 94.87 |
/m | 0.459 | 0.013 | 0.312 | 0.013 | 97.17 |
/m | 0.662 | 0.040 | 0.251 | 0.032 | 95.17 |
静止/m | 0.090 | 0.008 | 0.009 | 0.007 | 92.22 |
半球面/m | 0.020 | 0.016 | 0.018 | 0.017 | 15.00 |
/m | 0.009 | 0.010 | 0.009 | 0.010 | -11.1 |
与原始的ORB‑SLAM2系统相比较,在高动态的walking序列中,改进算法YG‑SLAM对于原系统定位准确度的提升在92%以上;在低动态的sitting序列中,人的运动幅度小,进行筛除操作后留下的特征点距离相机较远,因此YG‑SLAM的结果与原始ORB‑SLAM2系统的结果接近。

图5 TUM数据集序列轨迹
Fig.5 Trajectories of sequences from TUM dataset
为验证算法的先进性,实验内容将本文所提的YG‑SLAM算法与目前先进的动态环境系统DynaSLAM进行了比较。
图像序列 | DynaSLA | 本文YG‑SLAM | ||||
---|---|---|---|---|---|---|
中值 | 最小值 | 最大值 | 中值 | 最小值 | 最大值 | |
半球面 | 0.025 | 0.024 | 0.031 | 0.018 | 0.018 | 0.021 |
0.015 | 0.014 | 0.016 | 0.013 | 0.013 | 0.014 | |
0.035 | 0.032 | 0.038 | 0.032 | 0.028 | 0.037 | |
静止 | 0.006 | 0.006 | 0.008 | 0.007 | 0.007 | 0.009 |
半球面 | 0.017 | 0.016 | 0.020 | 0.017 | 0.015 | 0.020 |
0.015 | 0.013 | 0.015 | 0.010 | 0.010 | 0.011 |
图像序列 | DS‑SLA | Detect‑SLA | DP‑SLA | RGB‑D SLA | 本文YG‑SLAM |
---|---|---|---|---|---|
半球面 | 0.025 8 | 0.051 4 | 0.025 4 | 0.031 6 | 0.018 0 |
0.024 7 | 0.024 1 | 0.014 1 | 0.017 1 | 0.013 0 | |
0.444 2 | 0.295 9 | 0.035 6 | 0.194 4 | 0.032 0 | |
静止 | 0.008 1 | - | 0.007 9 | 0.009 1 | 0.007 0 |
半球面 | - | 0.023 1 | 0.018 2 | 0.015 2 | 0.017 0 |
- | 0.020 1 | - | 0.012 3 | 0.010 0 |
KITTI数据
图像序列 | ORB‑SLAM | DynaSLA | 本文YG‑SLAM | ||||||
---|---|---|---|---|---|---|---|---|---|
RPE/% | RRE/((°)· 100 | ATE/m | RPE/% | RRE/((°)· 100 | ATE/m | RPE/% | RRE/((°)· 100 | ATE/m | |
KITTI 00 | 0.70 | 0.25 | 1.3 | 0.74 | 0.26 | 1.4 | 0.71 | 0.25 | 1.3 |
KITTI 01 | 1.39 | 0.21 | 10.4 | 1.57 | 0.22 | 9.4 | 1.49 | 0.23 | 10.55 |
KITTI 02 | 0.76 | 0.23 | 5.7 | 0.80 | 0.24 | 6.7 | 0.75 | 0.23 | 5.9 |
KITTI 03 | 0.71 | 0.18 | 0.6 | 0.69 | 0.18 | 0.6 | 0.70 | 0.18 | 0.6 |
KITTI 04 | 0.48 | 0.13 | 0.2 | 0.45 | 0.09 | 0.2 | 0.42 | 0.11 | 0.2 |
KITTI 05 | 0.40 | 0.16 | 0.8 | 0.40 | 0.16 | 0.8 | 0.41 | 0.16 | 0.8 |
KITTI 06 | 0.51 | 0.15 | 0.8 | 0.50 | 0.17 | 0.8 | 0.45 | 0.19 | 0.7 |
KITTI 07 | 0.50 | 0.28 | 0.5 | 0.52 | 0.29 | 0.5 | 0.48 | 0.26 | 0.5 |
KITTI 08 | 1.05 | 0.32 | 3.6 | 1.05 | 0.32 | 3.5 | 1.07 | 0.32 | 3.7 |
KITTI 09 | 0.87 | 0.27 | 3.2 | 0.93 | 0.29 | 1.6 | 0.90 | 0.26 | 3.15 |
KITTI 10 | 0.60 | 0.27 | 1.0 | 0.67 | 0.32 | 1.2 | 0.59 | 0.21 | 1.1 |
图像序列 | ORB‑SLAM | DynaSLA | 本文YG‑SLAM |
---|---|---|---|
KITTI 00 | 5.33 | 7.55 | 6.37 |
KITTI 02 | 21.28 | 26.29 | 23.46 |
KITTI 03 | 1.51 | 1.81 | 1.01 |
KITTI 04 | 1.62 | 0.97 | 0.74 |
KITTI 05 | 4.85 | 4.60 | 5.19 |
KITTI 06 | 12.34 | 14.74 | 12.17 |
KITTI 07 | 2.26 | 2.36 | 2.23 |
KITTI 08 | 46.68 | 40.28 | 42.91 |
KITTI 09 | 6.62 | 3.32 | 7.97 |
KITTI 10 | 8.80 | 6.78 | 8.05 |
改进算法在单目和双目影像下的运行结果较为类似。可以看到对于某些序列,如KITTI 04, 其中所有出现的车辆都在移动,因此使用改进算法的SLAM系统在其中的运行轨迹精度得到了提高。但在大部分序列中,出现的车辆大都停放在路边,处于静止状态,这会增加动态判别模块对动态区域的误判率,使提取的特征点数量减少,所以运行结果的绝对轨迹误差更大。不过,由于去除了具有移动潜力的对象,由静态环境的特征点生成的地图能够长期重复使用,这使得回环检测和重定位算法更加稳健。
根据官方给出的数据,目前YOLOv5s模
本文提出了一个在传统多线程框架上进行增强型的视觉SLAM系统, 联合深度学习与几何约束的方法检测图像中的动态区域, 剔除不稳定的特征跟踪点, 使SLAM系统能够在动态环境中对单目、双目和RGB‑D影像数据具有更好的鲁棒性。本系统提高了相机跟踪的精度, 并创建一个基于静态环境的可重复使用的场景地图。实验结果表明, 与其他方法相比, 本文方法在多数情况下都达到了良好的精度表现, 运行结果也更加稳定, 减少了由于动态对象检测给系统带来的不确定性。由于系统使用了深度学习的方法检测运动对象,当发生检测到的潜在动态物体并未进行运动的情况,例如静止的汽车,则会减少跟踪的特征点的数量,影响跟踪结果。因此,未来的研究工作将增加针对SLAM系统视频流中的动态物体运动模型估计以及运动参数计算的内容,进一步优化SLAM系统的鲁棒性。
参考文献
丁文东, 徐德, 刘希龙, 等. 移动机器人视觉里程计综述[J]. 自动化学报, 2018, 44(3): 385-400. [百度学术]
Ding Wendong, Xu De, Liu Xilong, et al. Review on visual odometry for mobile robots[J]. Acta Automatica Sinica, 2018, 44(3): 385-400. [百度学术]
邹雄, 肖长诗, 文元桥, 等. 基于特征点法和直接法 VSLAM 的研究[J]. 计算机应用研究, 2020, 37(5): 1281-1291. [百度学术]
Zou Xiong, Xiao Changshi, Wen Yuanqiao, et al. Research of feature-based and direct methods VSLAM[J]. Application Research of Computers, 2020, 37(5):1281-1291. [百度学术]
Whelan T, Leutenegger S, Salas-Moreno R, et al. ElasticFusion: Dense SLAM without a pose graph[C]//Proceedings of the 11th Conference on Robotics‑Science and Systems. Cambridge, USA: MIT Press, 2015. [百度学术]
Kerl C, Sturm J, Cremers D. Dense visual SLAM for RGB-D cameras[C]//Proceedings of the 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems. New York, USA: IEEE, 2013: 2100-2106. [百度学术]
Davison A J, Reid I D, Molton N D, et al. MonoSLAM: Real-time single camera SLAM[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 29(6): 1052-1067. [百度学术]
Klein G, Murray D. Parallel tracking and mapping for small AR workspaces[C]//Proceedings of the 6th IEEE and ACM International Symposium on Mixed and Augmented Reality. New York, USA: IEEE, 2007: 225-234. [百度学术]
Mur-Artal R, Montiel J M M, Tardos J D. ORB-SLAM: A versatile and accurate monocular SLAM system[J]. IEEE Transactions on Robotics, 2015, 31(5): 1147-1163. [百度学术]
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. [百度学术]
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. [百度学术]
Engel J, Schöps T, Cremers D. LSD-SLAM: Large-scale direct monocular SLAM[C]//Proceedings of the 13th European Conference on Computer Vision. Berlin, German: Springer, 2014: 834-849. [百度学术]
Forster C, Pizzoli M, Scaramuzza D. SVO: Fast semi-direct monocular visual odometry[C]//Proceedings of the 2014 IEEE International Conference on Robotics and Automation (ICRA). New York, USA: IEEE, 2014: 15-22. [百度学术]
Forster C, Zhang Z, Gassner M, et al. SVO: Semidirect visual odometry for monocular and multicamera systems[J]. IEEE Transactions on Robotics, 2016, 33(2): 249-265. [百度学术]
Engel J, Koltun V, Cremers D. Direct sparse odometry[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 40(3): 611-625. [百度学术]
Qin T, Li P, Shen S. Vins-mono: A robust and versatile monocular visual-inertial state estimator[J]. IEEE Transactions on Robotics, 2018, 34(4): 1004-1020. [百度学术]
Leutenegger S, Lynen S, Bosse M, et al. Keyframe-based visual‑inertial odometry using nonlinear optimization[J]. The International Journal of Robotics Research, 2014, 34(3): 314-334. [百度学术]
Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]//Proceedings of the 2011 IEEE International Conference on Computer Vision. New York, USA: IEEE, 2011: 2564-2571. [百度学术]
王柯赛, 姚锡凡, 黄宇, 等. 动态环境下的视觉SLAM研究评述[J]. 机器人, 2021, 43(6): 715-732. [百度学术]
WANG Kesai, YAO Xifan, HUANG Yu, et al. Review of visual SLAM in dynamic environment[J]. Robot, 2021, 43(6): 715-732. [百度学术]
Zhong F W, Wang S, Zhang Z Q, et al. Detect-SLAM: Making object detection and SLAM mutually beneficial[C]//Proceedings of the 18th IEEE Winter Conference on Applications of Computer Vision. New York, USA: IEEE, 2018: 1001-1010. [百度学术]
高兴波, 史旭华, 葛群峰, 等. 面向动态物体场景的视觉SLAM综述[J]. 机器人, 2021, 43(6): 733-750. [百度学术]
GAO Xingbo, SHI Xuhua, GE Qunfeng, et al. A survey of visual SLAM for scenes with dynamic objects[J]. Robot, 2021, 43(6): 733-750. [百度学术]
Yu C, Liu Z X, Liu X J, et al. DS-SLAM: A semantic visual SLAM towards dynamic environments[C]//Proceedings of the 25th IEEE/RSJ International Conference on Intelligent Robots and Systems. New York, USA: IEEE, 2018: 1168-1174. [百度学术]
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. [百度学术]
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. [百度学术]
艾青林, 王威, 刘刚江. 室内动态环境下基于网格分割与双地图耦合的RGB-D SLAM算法[J]. 机器人, 2022, 44(4): 431-442. [百度学术]
AI Qinglin, WANG wei, LIU Gangjiang. RGB-D SLAM algorithm in indoor dynamic environments based on gridding segmentation and dual map coupling[J]. Robot, 2022, 44(4): 431-442. [百度学术]
Zaidi S S A, Ansari M S, Aslam A, et al. A survey of modern deep learning based object detection models[J]. Digital Signal Processing, 2022. DOI:1048550/arXiv.2104.11892. [百度学术]
Bochkovskiy A, Wang C Y, Liao H Y M. YOLOv4: Optimal speed and accuracy of object detection[EB/OL]. [2022-05-30]. https://doi.org/10.48550/ arXiv.2004.10934. [百度学术]
Lin T Y, Maire M, Belongie S, et al. Microsoft COCO: Common objects in context[C]//Proceedings of the 13th European Conference on Computer Vision. Berlin, German: Springer, 2014: 740-755. [百度学术]
Sturm J, Engelhard N, Endres F, et al. A benchmark for the evaluation of RGB-D SLAM systems[C]//Proceedings of the 25th IEEE/RSJ International Conference on Intelligent Robots and Systems. New York, USA: IEEE, 2012: 573-580. [百度学术]
Geiger A, Lenz P, Stiller C, et al. Vision meets robotics: The KITTI dataset[J]. The International Journal of Robotics Research, 2013, 32(11): 1231-1237. [百度学术]
Geiger A, Lenz P, Urtasun R. Are we ready for autonomous driving? The KITTI vision benchmark suite[C]//Proceedings of the 2012 IEEE Conference on Computer Vision and Pattern Recognition. New York, USA: IEEE, 2012: 3354-3361. [百度学术]
Ultralytics. YOLOv5[EB/OL]. (2021-10-12). https://www.mstx.cn/ultralytics/yolov5. [百度学术]
He K, Gkioxari G, Dollár P, et al. Mask R-CNN[C]//Proceedings of the 16th IEEE International Conference on Computer Vision. New York, USA: IEEE, 2017: 2961-2969. [百度学术]