之前看了有关语义分割的SLAM,最近调研下动态场景下基于动态实例剔除的论文。

DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments——2018 清华大学
面向动态环境的语义视觉SLAM
代码链接:https://github.com/ivipsourcecode/DS-SLAM

摘要:
本文提出了一种面向动态环境的鲁棒的语义可视化SLAM——DS-SLAM。DS-SLAM中5个线程并行运行:跟踪、语义分割、局部映射、闭环检测、密集语义图创建。DS-SLAM将语义分割网络与移动一致性检查(moving consistency check method)方法相结合,降低了动态对象的影响,从而大大提高了动态环境下的定位精度。同时,生成了一个稠密的语义八叉树图(semantic octo-tree map),可用于高级任务。在TUM RGB-D数据集和真实环境中进行了实验。结果表明,与ORB-SLAM2相比,DS-SLAM的绝对弹道精度可提高一个数量级。它是高动态环境中最先进的SLAM系统之一。

传统SLAM的缺点:
(1)它们难以应对各种环境,如异常动态或粗糙的环境。
(2)它们的地图模型通常基于几何信息,如基于地标的地图和点云地图,因此它们不提供对周围环境的任何高级理解。

本文通过将语义分割网络和光流方法相结合,重点研究了在基于视觉的SLAM中减少动态对象的影响,同时提供了可用于机器人高级任务的八叉树图的语义表示。

贡献:
(1)在ORB-SLAM2的基础上,提出了一个完整的动态环境语SLAM系统,可以降低动态对象对姿态估计的影响。在动态环境下,DS-SLAM在准确性和鲁棒性方面明显优于ORB-SLAM2。
(2)我们将实时语义分割网络放在一个独立的线程中,将语义分割与移动一致性检查方法相结合,过滤掉场景中的动态部分,如行走的人。因此,本地化模块和映射模块的性能是在动态场景中的鲁棒性和准确性方面得到改进。
(3)DS-SLAM创建了一个单独的线程来构建一个密集的语义3D八叉树图。稠密语义三维八叉树图采用对数优势评分法过滤掉不稳定的体素,并更新这些体素的语义。


利用原始的RGB图像同时进行语义分割和运动一致性检查。然后去除离群点,估计姿态。基于姿势、深度图像和语义分割结果,语义八叉树图被构建在独立的线程中。
结合segnet和orb-slam2的语义地图生成框架,结合语义信息和运动特征点检测,来滤除每一帧中的动态物体,从而提高位姿估计的准确性。同时建立了语义八叉树地图。在高运动的场景中,与ORB SLAM2相比提升明显。但也存在不足,如仅能识别20种物体,并只认为人是移动的类别;
DS-SLAM的框架:局部建图线程和闭环线程与ORB-SLAM2相同。前者处理新的关键帧,并执行局部束调整,以在相机姿态的周围实现最佳重建,而后者搜索闭环,并在检测到闭环时执行图形优化。

相关工作:
A.语义建图
在以前的许多工作中,语义图通常由两部分组成:几何部分和语义部分。之后,一组方法预先训练对象识别子系统,并将语义信息附加到被识别的对象模型上。只关注语义映射和对象识别,而语义信息在其他部分没有得到很好的利用。
之后Bao等人首先尝试联合利用场景中的几何和语义属性来估计相机姿态、点和对象,这显著提高了对象识别的准确性。
在本文中,语义信息不仅用于生成基于八叉树图的环境表示,还用于过滤动态环境中跟踪过程中的异常值。为了准确地执行语义分割,我们使用语义分割网络来遵循最先进的工作路线。
(segnet和mask r-cnn的具体区别和优缺点)
B.动态环境中的SLAM
在稠密SLAM中,许多运动目标检测方法往往基于光流技术。如果图像中存在运动,就会产生光流,因此可以通过计算光流的不一致性来区分静态背景和运动目标。
(1)方使用最优估计和均匀抽样方法来检测动态对象。虽然与其他类型的导数光流方法相比,它在时间上是有效的,但是它的精度较低,并且计算量仍然很大,尤其是在大图像中密集采样时。
(2)王通过基于点轨迹对图像进行聚类来检测动态对象,并将它们排除在能量函数最小化之外。他们的方法是稳健的,但不能实时执行。

系统介绍
体系结构图-实时语义分割方法-特征运动一致性算法-语义八叉树建图(4部分)

A.DS-SLAM的结构图
SLAM中5个线程并行运行:跟踪、语义分割、局部映射、循环关闭、密集图创建。系统的框架上图所示。Kinect2捕获的原始RGB图像在跟踪线程和语义分割线程中同时处理。跟踪线程首先提取ORB特征点,然后粗略检查特征点的移动一致性,并保存潜在的离群点。然后,跟踪线程等待具有由语义分割线程预测的像素级语义标签的图像。分割结果到达后,基于分割结果和之前检测到的潜在异常点,位于运动对象中的ORB特征点异常点将被丢弃。然后,通过匹配其余的稳定特征点来计算变换矩阵。

B.语义分割
DS-SLAM采用SegNet实时提供基于caffe的像素级语义分割。在PASCAL VOC数据集上训练的SegNet总共可以分割20个类。在实际应用中,人最有可能是动态对象,所以我们假设位于人身上的特征点最有可能是离群点。

C.移动一致性检查
由于运动分割耗时且语义分割结果可以从另一个线程获得,因此我们只需要确定分割结果中的关键点是否在运动。如果在分割的对象中某些点被确定为动态的,那么该对象可以被视为动态对象。本文中运动点检测的思想很简单。
第一步是计算光流金字塔,得到当前帧中匹配的特征点。
那么如果匹配对离图像边缘太近或者匹配对中心的3×3图像块的像素差太大,匹配对就会被丢弃。
第三步,用内联最多的RANSAC求基础矩阵。然后利用基本矩阵计算当前帧中的核线。
最后,确定匹配点与其对应的核线之间的距离是否小于某个阈值。如果距离大于阈值,则匹配点将被确定为正在移动。

D.离群值剔除
由于人体等运动物体的柔性变形和复杂运动,运动一致性检验方法难以提取完整的动态区域轮廓,提取整个轮廓的时间成本非常昂贵。由于采用了语义分割网络,目标的完整轮廓很容易获得。我们的想法是结合语义信息和移动一致性检查结果,完成两级语义知识库的建立:对象是移动还是不移动。如果通过移动一致性检查产生的一定数量的动态点落在分割对象的轮廓中,则该对象被确定为正在移动。如果分割对象被确定为正在移动,则移除位于对象轮廓中的所有特征点。这样,就可以精确地消除异常值。此外,错误分割的影响也可以在一定程度上降低。
此外,可以充分利用跟踪线程等待来自另一个线程的语义分割结果的时间。在等待期间,可以执行移动一致性检查。在下一个实验结果部分,表四给出了直投式SLAM中的消耗时间。可以看出,跟踪线程中使用的时间大约等于语义分割线程。由于在大多数实际应用场景中,人类活动严重干扰了机器人的定位,并且语义分割网络能够识别的类别有限,因此在本文的其余部分,我们将把人类作为动态对象的典型代表。理论上,DS-SLAM适用于任何多个识别和分割的动态对象。
语义分割结果出来后,如果没有检测到人,那么所有的ORB特征将直接与最后一帧匹配来预测姿态。否则,使用移动一致性检查结果确定人员是否在移动。如果确定人物是静态的,那么就直接预测姿态,否则在匹配前去除所有落在人物轮廓内的ORB特征点。通过这种方式,可以显著降低动态对象的影响。

E.密集语义三维八叉树地图构建
语义八叉树映射线程从跟踪线程获得新的关键帧,从语义分割线程获得分割结果。关键帧的变换矩阵和深度图像用于生成局部点云。然后本地点云将被转换并保存在一个全局八叉树图中。我们采用八叉树表示法[8],因为它灵活、紧凑且可更新。八叉树地图存储效率高,易于导航。语义信息也包含在八叉树图中。八叉树图中的每个体素都与一种特定的颜色相关联,每种颜色代表一个语义标签。比如红色的体素代表它属于一个沙发,粉色的体素代表它属于一个人。建模和语义融合的所有过程都是以概率方式完成的,因此更新体素的属性很方便。这样,稠密的语义三维八叉树图可以为移动机器人完成高级任务提供基础。

实验
无论是旋转,平移还是轨迹上的误差都要优于orb-slam系统。采用的是TUM RGB-D的数据集,该数据集包含了高动态场景以及低动态场景。

论文阅读:(三)DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments相关推荐

  1. 【论文精读】Hybrid Bird‘s-Eye Edge Based Semantic Visual SLAM for Automated Valet Parking

    [论文精读]Hybrid Bird's-Eye Edge Based Semantic Visual SLAM for Automated Valet Parking 论文出处 ICRA2021 摘要 ...

  2. 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering

    论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...

  3. 【论文阅读】Cross-X Learning for Fine-Grained Visual Categorization

    [论文阅读]Cross-X Learning for Fine-Grained Visual Categorization 摘要 具体实现 OSME模块 跨类别跨语义正则化(C3SC^{3} SC3S ...

  4. 论文阅读笔记:(2015, ijrr) Keyframe-based visual–inertial odometry using nonlinear optimization

    算是基于滑窗的VIO的必读文章吧,很详细地说了边缘化~ paper: http://in.ruc.edu.cn/wp-content/uploads/2021/01/Keyframe-Based-Vi ...

  5. 联邦学习论文阅读三:ChainFL

    联邦学习论文阅读三:ChainFL Secure and Efficient Federated Learning Through Layering and Sharding Blockchain 论 ...

  6. 【论文阅读】RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving

    文章:RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 作者:Tong Q ...

  7. 论文阅读:RoadMap: A Light-Weight Semantic Map for Visual Localizationtowards Autonomous Driving轻量语义自动驾驶

    题目:A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 中文:用于自动驾驶的视觉定位的轻量级 ...

  8. 【论文阅读】Squeeze-and-Attention Networks for Semantic Segmentation(CVPR2020)

    论文题目:Squeeze-and-Attention Networks for Semantic Segmentation(用于语义分割的挤压-注意网络) 下载链接:https://arxiv.org ...

  9. rgb红色范围_【论文阅读18】RGB-D Object-Oriented Semantic Mapping

    主要内容 基于RGB-D数据的语义建图(SLAM帮助语义).具体过程如下 首先利用SSD执行单帧RGB图片(2D)物体检测. 接着基于检测结果和深度信息,利用3D分割算法进一步分割3D点云. 最终利用 ...

最新文章

  1. 了解 Vue SSR 这一篇足以
  2. php进程数是指什么,25.查看php 某个服务的进程数
  3. css3 实现水晶按钮
  4. 职场精英修炼必学工具:75页自我管理的29个工具,系统方法论
  5. MD4、MD5、SHA1、HMAC、HMAC_SHA1区别
  6. 如何获取 Instagram 视频以及图片
  7. PowerMILL宏自动化编程视频教程
  8. IntelRealsense升级摄像头的固件版本方法
  9. educoder:第3关:嵌套循环 - 跃迁能量表
  10. 永磁同步直流无刷电机空间矢量SPWM,SVPWM
  11. idea如何关闭代码提示,设置快捷键提示代码
  12. 关于向量的模和向量的范数的理解
  13. centos 7-aarch64如何替换yum源
  14. matlab 中@的用法
  15. android跑马灯效果不起作用,Android跑马灯效果失效问题
  16. 实战_滴滴出行_理论(上篇)|配置Sqoop|安装Superset
  17. 家常土豆泥饼制作方法步骤图解
  18. 更换IPHONE备份路径
  19. 注册测绘师将与测绘资质单位挂钩
  20. 《生成对抗网络》综述(附257页ppt下载)

热门文章

  1. C#CAD二次开发图案填充对象边界提取
  2. 点胶机及其视觉点胶系统
  3. [LGOJ5151]HKE与他的小朋友——[缩点+vector]
  4. css的浮动与清除理解
  5. php循环控制打印表格隔行变色的两种方法
  6. Milvus x 又拍图片管家亿级图像搜图系统
  7. PHP 生成图片缩略图
  8. python 经纬度转为标准的1:10000图幅号
  9. php家族族谱代码,DIV+CSS制作的树状家族族谱金字塔形状的代码分享
  10. 淘宝私域运营如何操作?