动态场景下基于实例分割的SLAM(毕业设计动态SLAM论文学习部分)

2020.01.13
回家拜访亲戚加上陪几位老人耽误了点时间,不过我真的没想到居然有人会看我这个渣渣的更新。

动态场景下的slam:

  1. DS-SLAM A Semantic Visual SLAM towards dynamic environments ,代码开源,利用帧间图像的光流跟踪,进行一致性检验 。
  2. DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes ,代码开源,利用Mask RCNN去除动态
  3. Improving RGB-D SLAM in dynamic environments: A motion removal approach,基于RGB-D system 参考学习。

先这3个吧。

DynaSLAM论文阅读笔记

在简介部分,作者说他在单目和双目部分是使用一个CNN框架做一个像素级的语义分割,不在提供的先验动态物体范围内提取特征,而RGB-D则尝试利用多视角几何学和深度学习方法直接推测出任意动态物体并分割,移除动态和遮挡。原文如下:

In the monocular and stereo cases our proposal is to use a CNN to pixel-wise segment the a priori dynamic objects in the frames (e.g., people and cars), so that the SLAM algorithm does not extract features on them. In the RGB-D case we propose to combine multi-view geometry models and deep-learning-based algorithms for detecting dynamic objects and, after having removed them from the images, inpaint the occluded background with the correct information of the scene (Fig. 1).

动态场景SLAM相关工作(参考博客):

1、几何角度:

​ a、使用光流法估计基础矩阵,进行极线距离阈值判断筛选出动态点;

​ b、使用深度数据,将关联帧的点投影到当前帧,进行深度判别;

​ c、基于特征点之间相连边的距离变化信息进行判断

2、深度学习:

​ a、使用深度学习模型学习光流

​ b、深度学习产生对象mask

DynaSLAM相比较前面的工作,解决了两个问题:第一,先验动态物体处于静止状态时常常被牺牲掉;第二,不能检测静态物体造成的改变不能被检测出来。这个问题的解决主要集中在RGB-D上,利用几何和深度联合的方法,而单目和立体视觉相对就比较简单,整体框架图如下:

动态场景下基于实例分割的SLAM(毕业设计动态SLAM论文学习部分)
作者认为,几何方法的问题在于the main problem is that initialization is not trivial ,这里我的理解是对于小物体由于几何本身的特性而无法被检测出来(有待验证 );学习的问题在于动态物体是先验的,而静态物体移动无法检测。可以从论文中的图4看出,两者结合完美的对动态物体进行更好的检测。但是它是如何将几何法与深度学习结果融合的呢?作者是这么解释的:

if an object has been detected with both approaches, the segmentation mask should be that of the geometrical method. If an object has only been detected by the learning based method, the segmentation mask should contain this information too.

即,如果两种方法都能检测到,更信任几何方法;如果仅有学习方法检测,则直接使用学习方法。

接着是背景修补,但是比较有意思的是最后实验结果表明,在TUM数据集中,有背景修复的DynaSLAM的绝对误差其实比不上没带背景修复的,作者解释道:

the background reconstruction is strongly correlated with the camera poses. Hence, for sequences with purely rotational motion (rpy, halfsphere), the estimated camera poses have a greater error and lead to a non-accurate background reconstruction.

因此作者认为背景修补的意义在于虚拟现实贴图用,而非实际追踪定位。

另一个比较有意思的细节在于,反直觉的是ORB-SLAM(即单目版本)比ORB-SLAM2(增加立体、RGB-D版本)在动态场景下更加准确,这个是由于初始化问题造成的,毕竟单目初始化真的麻烦,而且慢,但是却意外的避免了一开始就初始化造成动态物体在开始就加入地图的困境。

作者还在KITTI室外数据集上做了一些试验,但是从结果来看基本是对半开(因为该文章主要在RGB-D上有创新,而KITTI则只有单目和立体两种),也就是说,这种纯动态掩码的效果对于去除动态干扰效果并不好,作者解释道:

An example of this would be the sequences KITTI 01 and KITTI 04, in which all vehicles that appear are moving. In the sequences in which most of the recorded cars and vehicles are parked (hence static),the absolute trajectory RMSE is usually bigger since the keypoints used for tracking are more distant and usually belong to low-texture areas (KITTI 00, KITTI 02, KITTI06).

也就是之前说的可移动的物体与移动物体的区别(movable and moving objects)

但是我觉得可能不仅仅是这个原因,因为同类型的序列也是一个好一个坏,作者并未针对这个问题深入展开,不过我觉得这个问题对我这种做室外的可能比较重要,之后可以试试。