1. 引言
SLAM技术能让机器人在未知环境中同步完成定位和地图构建。系统通过处理传感器数据来实现这一目标,常用的传感器包括不同类型的摄像头和激光雷达。当使用摄像头作为主要传感器时,这类系统被称为视觉SLAM。它在服务机器人、增强现实和无人驾驶等领域有广泛应用,可以准确估计相机位置并构建环境的三维模型。
视觉SLAM在静态环境下已取得较为成熟的成果,例如MonoSLAM、PTAM、ORB-SLAM、ORB-SLAM2、LSD-SLAM、SVO和DSO等经典方法[1]-[7]。然而,在动态环境中,由于行人、车辆等动态目标的干扰,静态世界假设常常失效,导致系统性能下降甚至失败。例如,在高动态环境中,如果大部分特征点落在动态目标上(如图1所示),这些动态特征点会直接影响系统的定位与地图构建精度。常规的鲁棒优化方法(如RANSAC)无法有效过滤出动态点,最终导致轨迹估计偏离实际轨迹。
为了解决动态环境中的挑战,检测和剔除动态目标是关键步骤。早期的方法主要依赖于几何约束,如通过对极几何分析光流场的变化检测移动目标[8]。这类方法计算复杂度低,但在动态目标复杂或光照变化剧烈的场景下容易失效。随着深度学习的发展,基于语义分割的动态目标检测方法得到了广泛应用,例如DS-SLAM结合SegNet网络进行语义分割,利用动态目标的位置信息辅助SLAM定位[9];DynaSLAM结合Mask R-CNN和多视图几何检测动态目标,从而提升了系统的鲁棒性[10]。然而,这些方法通常计算开销较大,且依赖于强大的硬件设备。
针对这一问题,我们提出了一种结合YOLO检测与对极几何的SLAM改进方案。该方法首先使用YOLO快速检测动态目标(如行人、车辆),并通过检测框剔除动态目标相应的特征点。然后,基于对极几何验证特征点的静态性,进一步去除动态干扰。与传统的语义分割方法相比,该方案不仅提高了实时性能,还有效降低了计算负担。我们仅在关键帧执行YOLO检测,而在其他帧中通过对极几何更新特征点,从而实现高效的动态目标剔除。
与其他现有方法相比,本方法在多个数据集上的测试结果表明,它能够显著提升定位精度,同时保持实时性能。例如,文献[11]提出的稀疏运动去除模型(SMR)虽然能够过滤动态特征,但在帧间差异过大时容易导致跟踪丢失。文献[12]通过相邻帧间差异检测运动目标,然而在复杂动态环境下仍难以达到理想效果。基于ORB-SLAM3的研究[13]则通过语义分割来去除动态目标,尽管精度有所提高,但仍依赖于较大的计算资源。此外,YOLO-SLAM [14]利用YOLOv3检测动态目标,但当动态目标过多时,定位精度仍然下降。相比之下,我们的方案不仅能在实时性上保持优势,还能在较为复杂的动态环境中提高定位精度,成为解决动态场景SLAM的一种有效方案。
Figure 1. Dynamic objects
图1. 动态物体
2. 系统框架
我们基于ORB-SLAM3设计了一个新的动态物体检测模块,通过独立线程运行。如图2所示,系统由多个并行线程构成:跟踪线程负责提取ORB特征,检测线程用YOLOv5识别动态物体。系统先通过动态掩膜去除相应特征点,再用多视图几何约束过滤剩余动态点。最终,处理后的关键帧被用于定位和建图。
Figure 2. System framework
图2. 系统框架
2.1. 动态目标检测模块
首先,他们提取图像中的潜在对象位置,然后对这些对象进行分类并细化其位置属性。该多步骤方法被设计为在识别和精确定位感兴趣的对象时提供增强的准确性。相比之下,一级网络被设计成直接预测图像内的对象类别和位置。虽然两级目标检测网络倾向于提供更高的识别精度,但与一级网络相比,它们以较慢的训练和推理速度为代价。针对视觉SLAM对实时性的强烈要求,本文采用了经济高效的单级目标检测网络YOLO-V5 s。在本研究中,YOLO-V5 s经过了进一步的微调和轻量化,以满足视觉SLAM的特定要求。
传统的卷积神经网络模型往往具有大量参数的主要原因之一是卷积过程生成了大量相似的特征图。特征图的这种丰富性增加了模型的参数和计算复杂度,从而影响检测速度。为了解决这一问题,我们采用了轻量级模块来优化网络主干。在本文中,Ghost模块和Ghost Bottleneck取代了YOLO-V5的传统卷积和BottleneckCSP组件。Ghost模块能够通过线性变换和组合操作生成更多种类的特征图,从而实现更全面的特征信息表示。与传统的卷积网络相比,传统的卷积网络都是利用卷积来生成特征图,网络模型参数的压缩比由(1)给出。
(1)
2.2. 动态感知SLAM
我们对ORB-SLAM 3进行了动态感知改进。ORB-SLAM 3是顶级的特征点SLAM系统,在静态场景中表现出色。改进版增加了两个功能:用Yolo-v5检测动态目标并标记边界框,以及利用几何约束筛选特征点。系统先对RGB图像进行目标检测和特征提取,再通过几何约束过滤动态特征点,最后用剩余的静态特征点估计位姿
Figure 3. Epipolar geometry constraints
图3. 对极几何约束
2.3. 多视图几何约束
基于深度学习的目标检测算法虽然可以识别预设的运动目标,但对于体积较小的物体或人为移动的物体的检测效果仍有不足。为解决这一问题,本研究采用对极几何原理进行动态特征点的筛除。对极几何是研究相机运动关系的基础理论模型,如图3所示:空间点X经过投影,在不同视角下的成像平面上形成对应点
和
。齐次坐标如(2)所示。
(2)
其中u和v是像素的相应水平和垂直坐标。然后,对应于点E1的核线E1由(3)给出。
(3)
其中F表示相应的基本矩阵。X、Y和Z是极线的向量1。根据从点到直线的距离公式,从点
到极线
的距离d如(4)所示。
(4)
实际应用中,静态点的对应点对由于特征匹配和基础矩阵计算存在误差,可能会偏离极线约束。为此,本文在获取基本运动矩阵后,采用RANSAC方法筛选相邻帧间的稳定特征点作为内点集。基于基本矩阵计算两帧间的极线,得到投影点在相邻帧上的坐标及其到极线的距离
和
。将两个距离之和定义为特征点的总偏差D。通过比较D值与预设阈值τ的大小,可判定特征点的属性:当D值超过阈值时,将其归类为动态特征点并剔除;反之则视为静态特征点,用于后续位姿估计。
3. 实验和分析
本研究在搭载Intel i7-12650H处理器、16GB内存和RTX 4060Ti GPU的Ubuntu 18.04平台上进行实验。系统核心采用C++开发并由cmake构建,分割模块使用Python实现。实验数据选取TUM-RGB-D数据集中的四组动态序列,包括表征低动态环境的sitting系列和代表高动态场景的walking系列。
系统评估采用绝对轨迹误差(ATE)指标,通过RMSE、平均值和中值三个维度进行精度分析。为确保结果可靠性,本文对比了改进算法与原始ORB-SLAM3在各数据集上的表现,每组实验重复执行3次并取平均值。
表1展示了改进算法与ORB-SLAM3算法的ATE对比结果,其中的提升率使用公式(5)计算。
(5)
式中:
为ORB-SLAM3算法运行结果,
为本文提出的算法运行结果。
Table 1. Experimental data
表1. 实验数据
图像序列 |
ORB_SLAM3/m |
Our-Method/m |
RMSE |
Mean |
Median |
RMSE |
Mean |
Median |
Sitting_halfsphere |
0.0578 |
0.0545 |
0.0491 |
0.0503 |
0.0505 |
0.0431 |
Sitting_xyz |
0.0154 |
0.0138 |
0.0123 |
0.0124 |
0.0107 |
0.0095 |
Waliking_halfphere |
0.2649 |
0.2308 |
0.1724 |
0.0210 |
0.0170 |
0.0141 |
Waliking_static |
0.0267 |
0.0231 |
0.0205 |
0.0072 |
0.0064 |
0.0060 |
如表1所示,Our-Method在四组数据集的精度均优于ORB-SLAM3,RMSE平均下降49.39%。其中高动态场景RMSE平均下降92.04%,低动态场景则下降19.48%,表明去除动态物体后定位精度显著提升,在高动态场景中尤为明显。视觉SLAM的最终目的是建图,通过计算轨迹误差与真实轨迹之间的差距来评估算法性能。在轨迹误差对比中,本文使用EVO工具对不同算法生成的轨迹文件和真实轨迹进行评估,并进行可视化展示。
Figure 4. Trajectories of sitting and walking
图4. Sitting,walking轨迹图
walking_half序列中,相机运动状态由位置和姿态两部分表示:XYZ坐标反映相机在三个方向的位移,RPY角度描述相机围绕各轴的旋转。
本文设计的SLAM系统结合了语义和几何分析方法。图4展示了系统在动态环境下的轨迹估计结果,将实际轨迹与参考真值进行对比。在动态目标较多时,语义模块通过筛除动态特征提高精度,几何模块则保留静态特征维持跟踪;而原始ORB-SLAM3易受动态对象影响导致跟踪失效。当场景中动态成分较少时,由于语义处理的影响减弱,两种方法表现接近。测试结果表明该系统能有效抑制轨迹漂移。
4. 结论
本研究提出了一种结合语义和几何信息的改进型ORB-SLAM3系统,以解决动态环境下的视觉SLAM问题。通过引入YOLOv5目标检测器来识别动态物体,并利用对极几何约束进行动态特征点筛选,系统有效剔除动态物体的干扰,显著提升了高动态环境中的定位精度。实验结果表明,本文方法在TUM-RGB-D数据集上的RMSE相比原始ORB-SLAM3算法,尤其在高动态场景中,平均降低了92.04%,在低动态场景中也有显著改善,达到19.48%。此外,通过优化实时性和轻量化的网络设计,系统在标准硬件平台上也能高效运行。
本文的研究成果为动态场景下的SLAM提供了一种高效可靠的解决方案,不仅增强了系统的鲁棒性,还能有效减少动态物体对定位精度的影响。未来的研究将集中在进一步优化实时性、探索更稳健的特征检测方法,以及结合多传感器融合技术,以提升系统在更复杂环境中的适应性和精度。