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信息区分移动的目标 和 可移动的目标?

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

DynaSLAM 论文笔记相关推荐

  1. DynaSLAM论文笔记

    DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes 论文笔记 +++ 这是一种建立在ORB-SLAM2上的视觉SLAM系统,同时增 ...

  2. 动态环境下的SLAM:DynaSLAM 论文学习笔记

    动态环境下的SLAM:DynaSLAM 论文学习笔记 这篇文章 论文摘要 系统流程 相关环节的实现方法 神经网络检测图中动态物体(Mask R-CNN) Low-Cost Tracking 使用多视图 ...

  3. DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM 论文笔记

    DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM 论文笔记 参考文章 知乎 https://zhuanlan.zhihu.com/ ...

  4. ORB-SLAM3 论文笔记

    ORB-SLAM3 论文笔记 这篇博客 ORB-SLAM3系统 相机模型的抽象(Camera Model) 重定位的问题 图片矫正的问题 视觉惯性SLAM的工作原理 相关公式 IMU初始化 跟踪和建图 ...

  5. 【论文笔记】 LSTM-BASED DEEP LEARNING MODELS FOR NONFACTOID ANSWER SELECTION

    一.简介 这篇论文由IBM Watson发表在2016 ICLR,目前引用量92.这篇论文的研究主题是answer selection,作者在这篇论文基础上[Applying Deep Learnin ...

  6. 最新图神经网络论文笔记汇总(附pdf下载)

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]近年来,图神经网络变得非常火热,每年顶会在该领域内都会出现大量的研究论文,本文为大家提 ...

  7. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)

    Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...

  8. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

  9. 光流 速度_[论文笔记] FlowNet 光流估计

    [论文笔记] FlowNet: Learning Optical Flow with Convolutional Networks 说在前面 个人心得: 1. CNN的光流估计主要是速度上快,之后的v ...

最新文章

  1. [开源] C语言项目实战 - 虚拟鼠标 - VirtualMouse
  2. steam你所在的国家不允许看到此内容_Steam德国屏蔽“仅限成人”标签 众多3A大作可能被禁...
  3. 凸透镜成像动画可拖动_经典四图八问!这道中考物理题,彻底解决凸透镜成像规律!...
  4. Spring开启方法异步执行
  5. 检测Maven依赖中介
  6. 还不知道 AWS 是什么?这 11 个重点带你认识 AWS !
  7. 杀掉僵尸 MapReduce 任务的两种方式
  8. MYSQL列中的数据以逗号隔开,如何查询
  9. 排列组合的思考、组合数的推广和拓展
  10. au6258引脚图及功能_电解电容引脚图/封装
  11. karto探秘之open_karto 第一章 --- 数据结构与类的初始化
  12. Win10声卡驱动正常但没声音怎么办?驱动人生解决办法
  13. ubuntu安装搜狗输入法,并解决输入框一直显示在左下角的问题
  14. 高精度模数转换器,MS1112,ADS1112
  15. AXIS摄像头IP配置方法
  16. DirectX11 纹理采样
  17. java如何实现获取客户端公网IP地址?若不会,我手把手教你|非常详细,建议收藏
  18. 洛谷P2448 无尽的生命 树状数组
  19. python 调整灰度图像对比度_Python实现PS图像调整之对比度调整功能示例
  20. mysql 5.6.24 64位_CentOS 6.4 64位 安装 mysql 5.6.24

热门文章

  1. 怎么看matlab程序运行到哪了,matlab中记录程序运行时间
  2. 华为机试题80-整型数组合并
  3. linux之创建文件命令
  4. nginx url转发的一种方式
  5. uniapp button 清除默认样式
  6. 通过《全战:三国》聊聊历史游戏内的价值观
  7. 2021Java就业前景如何?值得去学习吗?
  8. JavaWeb01(WEB环境的搭建)
  9. linux的cat命令合并文件内容,使用cat命令在Ubuntu 18.04中组合文本文件
  10. bzImage解压缩