动态SLAM论文(2) — DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes
目录
0 Introduction
1 Related work
2 System description
3 Experimental results
4 Conclusions
摘要
0 Introduction
SLAM被视为许多机器人应用中不可或缺的前提技术。其中一种典型的应用是无需自主避障的任务。SLAM技术通过整合来自载具传感器的数据流对未知环境进行综合估算,并结合机器人自身的位置信息实现动态环境感知。这种基于全局定位的地图构建方法能够使机器人在相同环境中持续定位而不产生位置漂移累积。与基于局部窗口内的增量运动估计方法不同,在返回已访问地点时无法纠正漂移误差
视觉SLAM的主要传感器是相机设备,在过去几年中逐渐成为研究热点并受到广泛关注。基于单目相机的方案在尺寸、功耗及成本等方面展现出显著优势,并被广泛应用于智能设备领域。然而该方案仍面临一些挑战,在尺度或状态初始化方面存在不足。采用更为复杂的立体结构或结合RGB-D技术能够有效解决这些问题,并能显著提升视觉SLAM系统的鲁棒性
研究者从多个视角对SLAM进行了深入探究。然而,在大多数情况下,默认环境处于静止状态这一前提导致了一系列限制性假定。基于此,在处理动态场景时需要特别注意这些约束条件的影响范围仅限于极少数异常情况。尽管这种静态假设在某些特定机器人应用中成立,并非所有场景都能适用视觉SLAM技术
视觉SLAM包括基于特征的方法以及直接方法。其中基于显著点匹配的方法仅能实现稀疏重建效果。而另一种方法则通过直接优化光度误差与TV正则项相结合的方式实现全密实体重建能力。其中一些专门针对高梯度区域设计的直接方法能够生成半稠密地图并配合特定约束条件完成精细建模任务
现有的一些方法往往忽视了场景中常见的动态物体问题。具体表现为:视觉SLAM系统在对动态物体进行检测与处理时,会面临诸多挑战。这些挑战主要体现在建图与跟踪过程中。
1)如何在图像中检测到这些动态物体:
- 避免跟踪算法采用涉及动态物体的关键点作为匹配依据。
- 避免建图算法将移动物体纳入三维地图的空间结构中。
2)如何完成被动态物体临时遮挡的部分三维地图。
多个领域可以从这一进展中获益,并涵盖如增强现实技术、自动驾驶汽车系统以及医学影像学等多个方面
**论文工作 :**我们开发了一种实时算法旨在处理RGB-D、立体视觉以及单目SLAM系统中的动态物体。在现有ORB-SLAM2框架的基础上增加了前端模块,并实现了更高的追踪精度以及可复用的场景地图生成能力。针对单目相机及立体视觉系统的情况建议采用卷积神经网络对每帧图像中的预定义动态物体(如人与车辆)进行像素级别的分割。从而避免SLAM算法在此处提取特征信息。针对带有RGB-D信息的情况建议采用多视图几何模型与深度学习结合的方法检测动态物体。通过去除这些物体后,在剩余图像中恢复背景结构并引用相关数据完成遮挡区域的信息重构(见图1)。

1 Related work
动态物体通常被视为大多数SLAM系统中的噪声数据,并因此未被纳入地图构建过程,并且未用于相机定位。其中最常见的异常值 Rejecting 算法包括 RANSAC(如 ORB-SLAM [3,1] 所采用的算法)以及 Robust Cost Function(如 PTAM [2] 中所采用的算法)。
存在多个SLAM系统专注于处理动态环境的内容。其中几种关键算法包括
- Tan等人[9]利用空间布局信息将地图特征映射到当前帧以实现外观与结构验证,并识别场景中的变化情况。
- Wangsiripitak和Murray[10]能够在场景中追踪预先识别的三维动态物体。
- Riazuelo等人[11]通过对人员行为模式的分析来预测其活动情况。
- Li和Lee[12]的研究工作基于深度边缘点这一技术,在该技术的基础上引入具有概率值的相关权重来辅助判断。
传统方法通常对场景中的动态对象更加敏锐。涵盖该场景的所有动态对象的方法有很多。
基于Alcantarilla等人(参考文献13)提出了利用三维摄像头(三维相机)对动态物体进行检测的方法。
Wang及其团队(参考文献14)采用了基于RGB光流分割算法对动态物体进行识别的技术。
Kim等研究者(参考文献15)开发了一种新方法,在连续捕捉深度图像时通过对同一平面区域内的变化进行分析以确定静态背景。
Sun等团队(参考文献16)通过对连续RGB图像进行明暗变化特征分析,并结合量化后的深度图像进行像素级别的分类处理。
现有的多种SLAM方法主要基于特征检测器和直接匹配算法,并仅利用序列图像中的信息来建立静态区域的三维模型。具体而言,在这种情况下(即预先存在的动态物体处于静止状态),例如停放的汽车或坐着的人等场景下无法估计长期模型。另一方面,Wangsiripitak及其合著者Murray等[10]、Riazuelo等人[11]开发了相应的检测技术,能够有效识别这类预先存在的动态物体,但目前仍无法处理由于移动物体引起的场景变化,例如一个人推的椅子或别人扔的球等情况。也就是说,前一种基于静态建模的方法成功地实现了对移动物体的检测,而后一种能够处理多移动物体的情况则未能实现对人引发的变化进行建模。为此,我们提出了一种名为DynaSLAM的新方法,该方法结合了多视角几何模型与深度学习技术以应对上述两种情况。同样地,Anrus等人通过将动态分类器与多视角几何相结合的方式进一步扩展了这一思路。
2 System description
首先,在卷积神经网络(CNN)架构设计下优化 RGB 通道处理机制以实现对所有先验动态场景的像素级分割任务。该算法能够精准识别并分离出人类、汽车等物体特征区域。
在RGB-D框架下采用基于多视角几何的方法来提升动态内容分割的效果有两种方法:第一种是改进现有动态物体分割算法;第二种则是将移动的对象识别为新的动态实例(这些实例大部分时间处于静止状态)
为了实现这一目标,在掌握相机位姿信息的基础上展开相关研究工作是必要的。为此,在完成这项任务的过程中我们开发了一个经济高效的追踪系统该系统能够精确地确定预先构建的场景地图中的相机位置这些分割帧不仅用于推导相机运动轨迹以及构建场景地图的基础框架而且在后续的数据处理流程中发挥着关键作用值得注意的是在CNN不涵盖物体类别的情况下在多视角几何分析阶段仍能识别动态元素的存在然而这可能会影响分析结果的准确性
一旦实现了完整的运动物体检测与相机姿态估计工作流程后,在原有静止数据基础上的基础上构建当前帧的空间模型并填充遮挡区域。这些重建出的空间模型在增强现实系统、虚拟现实平台以及用于持续更新地图的定位技术均对其在空间认知与导航方面的应用具有重要意义。
基于单摄像头和三维视觉技术,在图像中使用CNN实现分割以避免识别或定位先验动态物体的关键点。 各个不同的阶段在下面的子章节(A到E)中被详细阐述。
A. 使用CNN对潜在动态物体进行分割
为了检测动态物体,在本研究中我们推荐采用一个基于卷积神经网络(CNN)的像素级别语义分割方法。在我们的实验研究中,我们采用了Matterport公司的TensorFlow实现(参考文献[19]),该模型是目前应用最为广泛的实例分割方法之一。该模型不仅实现了精确的像素级别语义分割能力,并能输出相应的实例标签信息。在此研究中,在分析动态物体特征时我们主要依赖于这一模型输出的结果。然而,在未来的工作计划中(如需进一步扩展分类列表),我们可以考虑引入基于MS COCO[20]数据集训练的新网络来进行微调,并添加新的训练数据以提升模型性能。
该网络生成的RGB图像具有尺寸m×n×3,并对应地形成一个m×n×l的矩阵结构。其中l代表图像中物体的数量。对于每个输出通道i(其中i∈l),推导出一个二进制掩膜。将所有通道整合后,则能够实现对场景中所有动态物体分割效果的提取。
B. 低成本的跟踪
**** 在跟踪过程中不考虑分割边界的特征点
在对潜在动态内容进行分割后,通过利用图像中的静态部分来确定相机的位置。因为分割后的轮廓通常位于高梯度区域,在这些区域内显著点特征往往会出现在这些高梯度区域内。因此我们不考虑这些高梯度区域内的显著点特征 作为追踪依据。在该阶段实现的跟踪技术基于ORB-SLAM2框架[1]进行了优化与简化,并具有较低计算复杂度。它将地图上的关键点投影到当前帧图像中,并通过在静态区域内寻找匹配点并最小化定位误差来优化相机姿态。
C. 使用Mask R-CNN和多视角几何的动态内容分割
借助Mask R-CNN技术可以实现对大部分动态物体进行分割应用而非追踪与建模过程。然而存在一些无法被此方法检测的对象属于非静态运动物品因此需要采用其他策略进行处理。例如像一个人携带的手提文献本一把可移动到不同位置的椅子还有那些在长期建模过程中可能出现的变化如家具布局调整等本节将详细讲解此类特殊情况下的解决方案
在每个输入帧的情况下,在其前后各取一个相邻的关键点集合,并利用这些特征点来进行匹配定位操作。
然后,我们计算从前一关键帧投影到当前帧的每个关键点

,得到关键点

,以及它们的投影深度

,由相机运动计算而得。请注意,关键点

来自于ORB-SLAM2中使用的特征提取算法。
动态物体判断:视差角α > 30°,深度差值

超过阈值

对于每个关键点,其对应的3D点为

,我们计算

和

形成的角度即称其为视差角αα;当这一角度超过30°时,在这种情况下该点可能会因视差过大而无法可靠检测;基于视差角度判断,在TUM数据集中这些物体被视为动态;而在同一帧中我们计算出剩余关键点的空间位置信息

(直接从深度测量中获取),考虑了重投影误差,并将它们与

进行比较。如果差值

超过阈值

,则认为关键点

属于一个动态物体。这个想法在图3中展示。为了设置阈值

,我们在TUM数据集中手动标记了30张图像的动态物体,并针对不同的阈值

系统性地考察了本方法的准确性和召回率的基础上,在权衡精度与召回率的关系中实现了综合性能的最大化

= 0.4m是一个合理的选择。

在动态即时定位与地图构建技术(SLAM)中,在某些情况下可能存在一些物体边界,在这些边界上的关键点被标记为动态时可能出现问题。为了消除这些问题,在我们的研究中我们主要关注并致力于解决这一类情况。具体而言,在这种情况下当一个关键点被设定为其动态属性时但其周围区域的深度图象所呈现的数据方差较高时 我们将采取措施将该关键点重新分类标记为静态状态以避免出现上述问题
到目前为止我们已经识别了一些关键点作为可能属于动态物体的候选点这些候选点可以通过进一步分析确定其归属

卷积神经网络(CNN)的输出(图4b)可以通过与几何方法的结果相结合来实现完整的动态物体检测(图4c)。通过对比分析它们的优缺点后发现将两者综合运用效果更好。对于几何方法而言主要问题在于由于其多视角性质导致初始化较为困难。深度学习方法在单视角上表现出色并避免了初始化的问题然而它们的主要缺点在于认为单个视角下的物体被视为静态在这种情况下可能会移动而该方法无法识别出来。可以通过多视角的一致性测试来解决这一问题。
图4展示了解决移动物体检测问题的两种方法。图4a中可以看出后面的人是一个潜在的动态物体但未被检测到其未被检测的原因有两个首先是RGB-D相机在测量远程物体深度时存在困难其次是可靠的特征点通常位于清晰且有限大小的图像区域因此即使深度学习方法能够检测到人(如图4b所示)但在图4a中我们还可以看到前面的人及其携带的手物品和座位也被成功地检测到了相比之下图4b中只有两个人被识别为动态物体但它们之间的分割不够准确此外仅使用深度学习方法会导致图像中出现一本看似漂浮但实际上并未真实存在的书其会被误认为是三维地图的一部分
由于这两种方法各有优劣,在综合考虑后我们认为它们能够互相弥补对方不足并因此其结合使用可被视为实现准确追踪并构建地图的一种可靠策略。为实现这一目标若同一物体在两种方法中均被检测出则应选用几何处理方案来确定遮罩区域。反之若只有一个物体仅通过深度学习识别出则该区域也需纳入遮罩范围以确保完整性。如前所述在图4c部分展示了最终分割结果而动态区域则从当前帧图像以及全局地图上进行删除处理以避免重复追踪问题
D. 跟踪和建图
系统的输入数据涉及RGB图像、深度图及其分割掩码。我们在处理静态图像序列时提取ORB特征。由于这些区域具有高梯度特性,在这些位置上的关键特征需要进行过滤处理。
E. 背景修复
对于每一个被去除的运动物体而言,在线使用前一时刻的画面信息来恢复场景中被阻挡的部分,并最终生成一个无动态元素的真实图像。这种方法所生成的一系列静止帧能够有效捕捉并保存场景中固定不变的空间结构特征,并且这些结果对于虚拟现实、增强现实以及基于地图后的位置重新定位与摄像头追踪系统都具有重要的应用价值。
背景修复方案:基于过去20帧将RGB与深度数据映射到单帧中以填充空缺区域
基于我们已知的前一帧与当前帧的位置信息,在实验设置下取最近20个关键帧的情况下

这些合成帧的第二个主要应用是:通过将运动区域修复为固定素材后,在基于静态假设的情况下使用修复后的图像进行SLAM运算。
3 Experimental results
我们在TUM RGB-D和KITTI公共数据集上进行了评估工作,并与现有的动态环境下最先进 SLAM 系统进行了对比分析;同时,在对比基准时也采用了ORB-SLAM 2作为参照,在此基础上进一步验证了我们方法在动态环境中的优势;其中部分序列的数据尚未公开;因此我们自行对这些序列进行了评估工作;Mur and Tardos [1]建议每个序列运行五次,并展示中位数结果;以考虑到系统的不确定性问题;而在本研究中为了更全面地验证这一点
A. TUM Dataset
TUM RGB-D数据集[22]基于Microsoft Kinect传感器,在不同室内场景下实现了全帧采集率(30Hz)下的39个连续序列采集。该数据集提供了丰富的RGB图像与深度信息,并附加了精确地面轨迹数据。其中,在sitting(s)场景中(编号为s),两位参与者位于桌面前进行交流并展示动作;而在walking(w)场景中(编号为w),两位参与者先是在背景与前景之间移动后就坐于桌旁。值得注意的是本数据集具有较强的动态性特征,在标准SLAM系统面前构成巨大挑战性测试。对于坐姿(s)与行走(w)两种典型场景类型,在以下四种相机运动形式中均有体现:半球面型(HS):相机沿1米直径半球面路径行进;直角坐标轴型(XYZ):相机沿x、y、z轴方向位移;偏航-俯仰-滚动角型(RPY):相机围绕滚动、俯仰与偏航轴进行旋转;静止型(ST):相机保持固定位置不移动
我们使用绝对轨迹RMSE作为实验的误差度量标准,这是由Sturm等人提出的[22].在这个数据集中,我们的系统的不同变体在六个序列上的结果如表I所示.首先,DynaSLAM(N)是只使用Mask R-CNN对先验动态对象进行分割的系统.其次,在DynaSLAM(G)中,动态对象仅通过基于深度变化的多视几何方法进行检测.第三,在DynaSLAM(N+G)中,动态物体的检测是通过结合几何和深度学习方法进行的.最后,我们认为分析图6所示的系统是有趣的.在这种情况下(N+G+BI),在跟踪和建图之前进行了背景修复(BI)阶段.这个实验的动机是,如果动态区域用静态内容进行修复,系统可以使用修复后的图像作为SLAM系统,在静止假设下运行.在这个提议中,ORB特征提取算法在帧的实际和重建区域中都能工作,并在先前处理过的关键帧的关键点上找到匹配点.

在相机定位之前实施背景修复阶段(BI)通常会干扰跟踪精度。这种现象的根本原因在于背景重建与相机位姿之间存在密切关联。值得注意的是,在处理纯旋转运动(rpy轴或半球体)的序列时,默认情况下由于相机位姿估计误差显著存在而导致后续的背景重建难以达到理想效果。基于此分析结果表明:为了获得更准确的图像合成结果建议将背景修复阶段(BI)安排在跟踪阶段之后完成。

Fig. 6: Block diagram of RGB-D DynaSLAM (N+G+BI).
表II列出了我们在相同序列上与其他ORO-D ORB-SLAM2系统的对比结果。在高动态场景下(行走),我们的方法表现优于后者,在静止场景下的精度与其相当。然而,在此情况下,在低动态场景下(坐姿),其跟踪效果稍逊于前者;这主要是由于检测到的目标点距离动态物体的关键点较远的原因所致;值得注意的是,在此过程中生成的地图不包含出现在该序列中的动态物体;图7展示了两种方法估算轨迹与其真实轨迹之间的差异

表III展示了我们系统的性能与专为动态环境设计的多款RGB-D SLAM系统的对比结果。为了评估我们提出的方法及其在运动检测领域的最新进展(无论使用的SLAM系统如何)的表现效果,我们不仅进行了直接对比实验,并且还在每种测试条件下都计算并展示了改进幅度。此外,在每款用于比较的原始SLAM系统的基础上进行了相对性分析,并观察到了显著提升的趋势。其中DynaSLAM在所有测试序列(无论是高动态还是低动态序列)中均表现出明显的优势。其定位精度通常维持在1至2厘米之间,并且这与静态场景中最先进的技术表现相当。

ORB-SLAM属于ORB-SLAM2的一种单目视觉定位系统,在应对动态场景时通常展现出更高的精度水平。相较于RGB-D版本而言其优势主要源于它们采用了不同的初始化算法这一主要原因导致在处理动态环境时出现了差异。该系统自始至终利用第一帧信息进行初始化和目标追踪从而能够持续稳定地跟踪相机运动但也会因为某些特殊情况而出现短暂中断甚至无法完成全部区域的覆盖工作
表IV展示了ORB-SLAM与单目DynaSLAM在TUM数据集中的跟踪效果及其轨迹百分比分布。从实验结果来看,在动态场景中DynaSLAM的初始化速度始终优于ORB-SLAM。实际上,在动态物体离开场景时才会触发ORB-SLAM的初始化过程。综上所述尽管DynaSLAM在精度上稍逊于ORB-SLAM但它成功地通过启动系统利用动态环境并生成不含动态内容的地图从而为长期应用提供了便利(参见图1和图2)。进一步分析表明OR-B SL AM由于其轨迹估计更为冗长导致空间累积误差的存在

B. KITTI数据集
KITTI数据集[23]涵盖城市与高速公路环境中的由车辆拍摄的立体视频序列。实验对比表V列出了我们在11个训练序列上的比较结果。我们采用了两种不同的度量标准来评估性能:一个是来自文献[22]中的绝对轨迹RMSE指标;另一个是来自文献[23]提出的平均相对平移与旋转误差指标。

表VI详细列出了相同序列中ORB-SLAM与DynaSLAM单目变体的表现对比。值得指出的是,在单目与立体两种情况下所得结果具有相似性特征,并且前者对动态物体(如同DynaSLAM中所包含的额外元素)表现出更强的敏感度。观察某些特定序列时会发现,在未使用先验动态物体(如车辆、自行车等)作为跟踪特征的情况下可获得更好的准确度提升效果。例如,在KITTI 01与KITTI 04两个序列中均出现了大量移动车辆实例;而在多数被拍摄并停泊、静止的车辆与交通工具所在的序列中由于关键点间的距离较远且通常位于低纹理区域(如KITTI 00、KITTI 02、KITTI 06),因此所获得的绝对轨迹RMSE值通常较大程度上有所提升空间。然而,在采用循环闭合及重定位算法处理后所得的地图数据仅包含结构性物体特征(即地图数据具备可复用性并能在长期应用过程中持续发挥作用)。

作为未来工作的重要方向,在仅基于RGB信息进行物体分类问题上展开研究具有重要意义。当利用卷积神经网络检测出一辆可移动车辆(即处于静止状态)时,则应对其相应的关键点执行局部追踪处理,并避免将其位置标记于地图上。
C. Timing Analysis
为了涉及评估我们提出的方法的有效性, 表VII详细列出了不同阶段的平均计算时间分布情况。值得注意的是, DynaSLAM并非专为实时操作而优化, 但其具备持续地图生成能力同样适用于离线模式运行。研究表明, ORB-SLAM2成功实现了在Nvidia Tesla M40 GPU上的实时运行效果[1]。此外, He et al. [19]证实了Mask R-CNN在Nvidia Tesla M40 GPU上每张图像均能在约195毫秒内完成处理任务。值得注意的是, 多视图几何阶段的增加带来了额外的时间消耗, 主要源于区域增长算法所带来的计算负担
4 Conclusions
我们开发了一种基于ORB-SLAM算法的视觉定位与建图系统,并将其整合了运动分割模块以提升其在动态环境下的鲁棒性。该系统能够精确追踪相机并构建静态可复用场景地图。在RGB-D应用中,DynaSLAM能够生成不含动态元素并去除遮挡背景后的合成RGB帧及其深度图,这对虚拟现实有着重要价值,我们还制作了一段展示DynaSLAM潜力的技术视频。与现有最新技术相比,DynaSLAM在多数场景中均能达到最佳精度,特别是在TUM动态物体数据集中,DynaSLAM目前是最佳RGB-D SLAM解决方案.相较于单目系统,我们的方法具备相似精度但能提前建立静态地图.在KITTI数据集中,DynaSLAM精度略低于全场景应用的单目与立体ORB-SLAM,除非动态物体占据显著空间.然而我们系统的地图仅包含结构对象,因此可在长时间应用中重复使用.未来研究方向可能包括优化实时性能、引入基于RGB的传统运动检测器,或者采用更精细修复技术(如GANs)更真实地生成RGB帧[24]
