DynaSLAM 论文笔记

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上运行,增加了动态目标检测和遮挡背景上色功能。

  • 动态目标检测通过双目几何约束或者深度学习(或者二者结合)完成
  • 遮挡背景上色通过建立静态的环境地图完成

论文罗列了动态场景下的现有的方法还没有解决的一些问题:

  1. 如何在图像中检测动态物体使得:
    1. 防止追踪算法在动态目标上进行匹配
    2. 防止建图算法将动态目标作为地图的一部分
  2. 如何将3D地图的被动态目标遮挡的部分还原

论文工作

总体结构:

在这里插入图片描述

红色虚线表示存储的稀疏地图的数据流

  • 若输入数据为双目或者单目RGB(图中的黑色实线表示)

    图像先被CNN进行分割,检测出动态目标的关键点,防止将动态目标的关键点用于追踪或者建图

  • 若输入数据为RGBD(图中的黑色虚线表示)

    使用多视角几何来提升动态目标的分割结果:

    1. 优化CNN得到的分割结果
    2. 把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时有此步骤。
在这里插入图片描述

  1. 找到 5帧 与当前帧重合度(距离、旋转)最大的之前的关键帧
  2. 关键帧中关键点x的深度和相机位姿,计算投影到当前帧后的位置x’和深度z’,计算投影深度z_proj
  3. 若Z_proj与z’差别过大,则标记为动态目标

得到所有的动态目标的标记后,在深度图像中的动态像素进行区域生长,来获得所有属于动态目标的像素

效果对比: 在这里插入图片描述

左:背景中的人头没有检测出来

中:人手中的书和椅子没有检测出来

右:全部动态物体都被检测出来了

D. Tracking and Mapping

输入:RGB,深度图,分割mask

对图像静态部分提取ORB特征,由于分割边界位于高梯度值区域,落在分割边界上的ORB特征点不予考虑

E. Background Inpaintin

动态目标被移除后,使用之前观测到的静态信息对区域进行填补

由于知道前一帧和当前帧的位置,因此将所有之前的关键帧(实际使用最后20个)的RGB和深度信息投影到当前帧的动态目标位置中。

  1. 没有对应关系的区域留空
  2. 在关键帧中的对应场景部分迄今尚未出现的区域,则无法修复
  3. 如果已出现,但是没有有效的深度信息。

这些间隙不能用几何方法重建,需要更精细的修补技术。

效果如图:
在这里插入图片描述

实验结果

在TUM和KITTI上进行了测试

A. TUM Dataset

在这里插入图片描述

与ORB-SLAM2做对比
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

可见加入Motion detection后现有动态SLAM方法性能得到很大提升

B. KITTI Dataset

在这里插入图片描述 在这里插入图片描述

C. Timing Analysis

没有实时, 在这里插入图片描述

还没算maskrcnn,更慢了

结论&下一步工作

通过RGB信息区分移动的目标 和 可移动的目标?

对于可移动但是没有动的目标(停车位的车),其关键点可以被用来追踪相机位姿.但是不应出现在地图中

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值