DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes
2018.8 visual slam , orb-slam based , dynamic slam, RGBD,srereo,monocula
个人总结
不同于其他动态SLAM的地方在于加入了背景区域填充功能,可以还原动态目标遮挡住的区域。但是还原方法只基于几何约束,应该还有可以做的工作,比如加入CNN。该SLAM系统结合了分割网络、ORB SLAM、区域生长算法等较为耗时的模块,在获得SOTA性能的同时牺牲了速度。我觉得舍掉速度专注于提升精度,也许并不是没有前景,因为未来算力会逐渐提升?就像4G未普及大家都在做图像压缩一样,后来都去做图像超分辨率了。。。
想到一个问题:如果在当前帧填充被遮挡的背景时,使用了上一帧的对应部分的像素,每次填充都会存在误差,那么被填充后的当前帧就是存在误差的,下一帧在做背景填充时要用到当前帧的对应部分,这样的话误差应该会被累积。。。?论文貌似没有提到这个问题,也可能是我哪里想错了。评论区批评指正_
论文思路清晰,读起来真的不会怀疑人生,哈哈
论文介绍
基于ORB slam 的视觉slam系统,可以在单目、双目以及RGBD上运行,增加了动态目标检测和遮挡背景上色功能。
- 动态目标检测通过双目几何约束或者深度学习(或者二者结合)完成
- 遮挡背景上色通过建立静态的环境地图完成
论文罗列了动态场景下的现有的方法还没有解决的一些问题:
- 如何在图像中检测动态物体使得:
- 防止追踪算法在动态目标上进行匹配
- 防止建图算法将动态目标作为地图的一部分
- 如何将3D地图的被动态目标遮挡的部分还原
论文工作
总体结构:
红色虚线表示存储的稀疏地图的数据流
-
若输入数据为双目或者单目RGB(图中的黑色实线表示)
图像先被CNN进行分割,检测出动态目标的关键点,防止将动态目标的关键点用于追踪或者建图
-
若输入数据为RGBD(图中的黑色虚线表示)
使用多视角几何来提升动态目标的分割结果:
- 优化CNN得到的分割结果
- 把CNN没有检测出的动态目标标记为动态目标
在已经建好的地图中,通过一个low cost tracking模块定位相机位姿
动态目标检测和相机定位完成后,则进行当前帧中的遮挡背景的重建。重建后的合成帧可以用于AR,VR,以及lifelong-建图的场景识别
A. Segmentation of Potentially Dynamic Content using a CNN
这一步使用Mask RCNN来对动态目标进行分割,获得像素级别的语义分割和实例标签。论文方法只使用了前者,实例标签很有用,但是暂时没有被用到。
输入是RGB图像,输出是l个同尺寸的mask,l是图像中的动态目标数目
B. Low-Cost Tracking
通过图像的静态部分进行相机追踪,具体实现是ORB-SLAM2中的一个更简单的版本,因此计算量更小。
具体步骤:把地图的特征点投影到图像中,寻找图像中静态部分的对应点,然后最小化重投影误差来优化相机位姿
C. Segmentation of Dynamic Content using Mask R-CNN and Multi-view Geometry
该步骤主要解决的问题:Mask RCNN能够检测出大多数的动态目标,但是无法检测出 不在预定义的类别中,但可以移动的动态目标(比如被人推着走的椅子)
只有在输入数据为RGBD时有此步骤。
- 找到 5帧 与当前帧重合度(距离、旋转)最大的之前的关键帧
- 关键帧中关键点x的深度和相机位姿,计算投影到当前帧后的位置x’和深度z’,计算投影深度z_proj
- 若Z_proj与z’差别过大,则标记为动态目标
得到所有的动态目标的标记后,在深度图像中的动态像素进行区域生长,来获得所有属于动态目标的像素
效果对比:
左:背景中的人头没有检测出来
中:人手中的书和椅子没有检测出来
右:全部动态物体都被检测出来了
D. Tracking and Mapping
输入:RGB,深度图,分割mask
对图像静态部分提取ORB特征,由于分割边界位于高梯度值区域,落在分割边界上的ORB特征点不予考虑
E. Background Inpaintin
动态目标被移除后,使用之前观测到的静态信息对区域进行填补
由于知道前一帧和当前帧的位置,因此将所有之前的关键帧(实际使用最后20个)的RGB和深度信息投影到当前帧的动态目标位置中。
- 没有对应关系的区域留空
- 在关键帧中的对应场景部分迄今尚未出现的区域,则无法修复
- 如果已出现,但是没有有效的深度信息。
这些间隙不能用几何方法重建,需要更精细的修补技术。
效果如图:
实验结果
在TUM和KITTI上进行了测试
A. TUM Dataset
与ORB-SLAM2做对比
可见加入Motion detection后现有动态SLAM方法性能得到很大提升
B. KITTI Dataset
C. Timing Analysis
没有实时,
还没算maskrcnn,更慢了
结论&下一步工作
通过RGB信息区分移动的目标 和 可移动的目标?
对于可移动但是没有动的目标(停车位的车),其关键点可以被用来追踪相机位姿.但是不应出现在地图中