DynaSLAM
Bescós 2018 · 论文
一句话总结 — 在ORB-SLAM2之上加入了基于Mask R-CNN的动态物体剔除与背景补全,使跟踪与建图在存在运动物体的场景中(单目、双目及RGB-D)依然鲁棒。
问题
“场景刚性假设是SLAM算法中的一个典型假设。这一强假设限制了大多数视觉SLAM系统在充满人群的真实环境中的应用,而这类环境恰恰是服务机器人或自动驾驶车辆等多个重要应用的目标场景。“运动的人和车辆上的特征会破坏位姿估计,而混入地图的动态内容会产生陈旧的地标以及错误的回环检测候选。DynaSLAM为ORB-SLAM2增加了两项能力:动态物体检测(通过多视角几何、深度学习,或两者结合)与背景补全,使地图只包含持久存在的场景内容。
方法与架构
- 对先验动态类别的CNN分割。 每个RGB帧都会经过Mask R-CNN(Matterport实现,基于MS COCO训练),分割出19个可能可移动的类别(人、自行车、汽车……直至狗等)。对于一张的图像,它输出个二值掩码(为物体实例数),这些掩码被合并为一个动态掩码。在单目/双目模式下,落在这些掩码上的关键点会被”既不跟踪也不建图”。
- 低成本跟踪。 一个轻量版的ORB-SLAM2跟踪只对静态部分进行相机定位:将地图特征投影到当前帧,在静态区域中进行匹配,最小化重投影误差。落在掩码轮廓(人为的高梯度区域)上的特征会被丢弃。
- 多视角几何检验(RGB-D)。 为了捕获那些可移动但未被列入类别列表的物体(被拿起的书、被移动的椅子),每个新帧会与其5个重叠度最高的关键帧进行比较。将一个关键点投影到当前帧,得到带有投影深度的;若视差角,该点可能被遮挡而被忽略;否则将测得的深度与
进行比较,以此标记该点为动态点。是在30张手工标注的TUM图像上,通过最大化调优得到的。动态标签先通过深度块方差清理,再通过深度图上的区域生长扩展为完整掩码。
- 融合两种检测器。 单纯几何方法会漏检远处的人(深度差、特征少),且需要先产生运动才能响应;单纯学习方法则会在地图中留下一本”漂浮的书”。如果两者都触发,几何掩码优先(更精确);仅学习方法检测到的结果也会被保留。被分割出的动态部分会从当前帧及地图中移除,ORB-SLAM2的跟踪、局部BA和回环检测都在剩余的静态部分上运行。
- 背景补全。 最近20个关键帧的RGB和深度信息被投影到当前帧的动态区域中,合成出被遮挡背景的静态图像(在从未被观测到的背景处会留有空洞)——这对AR/VR以及终身地图中的重定位很有用。
实验结果
- TUM RGB-D(ATE RMSE,10次运行的中值):在高动态的walking序列上,DynaSLAM(N+G)对比RGB-D ORB-SLAM2——w_halfsphere 0.025对0.351 m,w_xyz 0.015对0.459 m,w_rpy 0.035对0.662 m,w_static 0.006对0.090 m(误差降低92.9–96.7%);误差约为1–2 cm,“与静态场景下的最新方法相近”。在低动态的sitting序列上表现相当或略差(s_xyz 0.015对0.009),但地图中不含动态物体。
- 变体研究:结合网络与几何(N+G)优于单独使用任一方法——仅使用几何在w_xyz上表现不佳(0.312),因为它需要运动且分割存在延迟;在跟踪之前进行背景补全会损害旋转类序列的表现(w_rpy 0.136)。
- 单目TUM:ATE略高于ORB-SLAM(w_halfsphere 0.021对0.017 m),但能跟踪更长的轨迹比例(97.84%对87.16%;w_xyz 87.37%对57.63%),且初始化更早——ORB-SLAM只能等到运动物体离开场景后才能初始化。
- KITTI双目:精度略低于ORB-SLAM2(例如KITTI 00的ATE为1.4对1.3 m),但在动态物体占主导的场景中除外(KITTI 01:9.4对10.4 m),同时能生成可重复使用的仅含结构的地图。
- 计时:非实时——Mask R-CNN约195 ms/图像(Tesla M40),多视角几何236–334 ms,补全184–208 ms,而低成本跟踪仅需1.6–1.7 ms;论文将此定位为一项精度/速度权衡的研究。
对SLAM的意义
DynaSLAM与DS-SLAM一起,构成了动态SLAM领域的经典基线:几乎所有后续关于动态环境SLAM的论文都会在TUM RGB-D动态序列上与它进行比较。它确立了如今标准的做法,即将学习到的实例分割与几何一致性检验相结合,而其”剔除并补全”的思路也预示了终身建图的方向——地图应当表示持久存在的场景,而非临时出现的占用者。DynaSLAM II后来则从剔除动态物体转向了跟踪动态物体。