动态环境下的实时语义SLAM

  • 简介
  • 摘要
  • 系统流程
  • 实验结果
  • 总结

简介

在ICRA 2021上看到这样一篇论文:Towards Real-time Semantic RGB-D SLAM in Dynamic Environments,发现它也是使用的语义网络+基于深度图的多视图几何方法来去除图片中的动态对象的。这一方法和之前看到的 DynaSLAM 类似,所以就挺好奇地去看了看。

摘要

论文作者认为当前大多数 SLAM 都仅适用于静态环境中。虽然近期有些学者通过深度学习来帮助 SLAM 在动态环境下工作,但这种做法需要消耗很高的计算资源,且无法处理未经过网络训练的物体(即语义网络无法识别的物体)。针对这些问题,作者做了一些尝试:首先为了减少计算资源的消耗,作者仅在关键帧 KF 上进行语义分割;然后,为了处理网络无法识别的物体,作者先对深度图进行聚类,对聚类结果采用多视图几何的方法进行动态点的判断。作者将上述优化方法用于 ORB-SLAM2 系统(ORB-SLAM2太狠了),最后也用多个数据集和实际环境验证了优化后系统的性能(能用于实际场景确实不错)。

系统流程

系统的整体流程图如下

以流程图为参考,整个系统有以下几个工作步骤:
1、数据获取:
  通过 RGB-D 相机采集 RGB 图片和深度图片;
2、特征提取:
  采用 ORB-SLAM2 的方法提取RGB图片中的特征点。
3、语义分割:
  如果当前帧是关键帧,则对图片进行语义分割,根据分割后的结果更新 LocalMapLocal MapLocalMap,以保证 LocalMapLocal MapLocalMap 只保留静态点。如果当前帧不是关键帧,则不用进行语义分割,通过现有的 LocalMapLocal MapLocalMap 实现跟踪定位。因为仅在关键帧上进行语义分割,所以较之 DynaSLAM(每帧都语义分割),该系统的计算速度会快很多。这一步能够获得系统的初始位姿估计;
3、深度图聚类+多视图几何:
  对每帧深度图进行 K均值聚类,类别总数为 NNN(以深度值作为聚类的依据)。每一个聚类结果都被当作是某一物体的表面,且归属于同一类的所有点都满足同一运动约束(同类中各点的运动方式一致)。然后将 LocalMapLocal MapLocalMap 中的点投影到当前帧上寻找匹配点,计算出各聚类结果的平均重投影误差(某一类中所有点的重投影误差求和取平均),如下式:

(1) 式在求重投影误差时还加上了一个惩罚函数 ρρρ。uuu 表示是图像上的点,PPP 是uuu 在 LocalMapLocal MapLocalMap 中匹配上的三维点。
  动态点的判断依据为:根据各类的平均重投影误差,把其中误差相对较大的几类定义为动态类,将动态类中所有点都剔除,不用于位姿估计。这种方法在泛化性方面比深度学习网络要好。但是在判定动态类时,“误差相对较大” 这句话比较难以把握。
(这种先将部分点归于一类后再进行动态判断的方法比直接对每一个点进行判断的方法要更加稳定有效,因为后者受到图片的测量误差的影响更大,即单个点发生误判的概率较大。这也是该系统和DynaSLAM系统的一大不同之处)
4、位姿估计:
  根据第3步的结果,对第2步的估计位姿进行优化,获得更加精确的位姿。后续的步骤和 ORB-SLAM2 相似。

上面就是整个系统的大致工作流程,作者也给出了分别采用第2步和第3步进行动态判断的结果:

图片中可以看出语义分割和多视图几何的方法是相辅相成的,两者都有好有坏,但又能够互相补充。

实验结果

下面是在数据集上的实验结果、时间消耗,以及在实际环境下的测试结果:


    可以看出,虽然比 DynaSLAM 精度稍差,但是在时间消耗上比 DynaSLAM 有很大优势。此外,这个系统比仅采用深度学习的 DS-SLAM 性能更佳。

总结

感觉作者应该受到了 DyanSLAM 系统的很多启发,因为 DynaSLAM 也是采用的语义分割+基于深度图的多视图几何方法。得益于作者所提出的两个优化方案,在保证计算性能的同时,还保证了系统的整体精度。从实验结果中可以看出,该系统的精度和 DynaSLAM 的精度差距不是很大,但是速度比 DynaSLAM 快了将近一倍。如果把聚类和多视图几何判断方法再进行优化,应该可以获得一个更好的效果。

Towards Real-time Semantic RGB-D SLAM in Dynamic Environments(动态语义SLAM)相关推荐

  1. 论文阅读:(三)DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments

    之前看了有关语义分割的SLAM,最近调研下动态场景下基于动态实例剔除的论文. DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments- ...

  2. Robust Monocular SLAM in Dynamic Environments(浙大章国锋)

    Robust Monocular SLAM in Dynamic Environments Abstract 我们提出了一种新的实时单目SLAM系统,该系统能够在动态环境中鲁棒地工作.与传统方法不同, ...

  3. Improving RGB-D SLAM in dynamic environments: A motion removal approach

    一.贡献 (1)提出一种针对RGB-D的新的运动分割算法 (2)运动分割采用矢量量化深度图像 (3)数据集测试,并建立RGB-D SLAM系统 二.Related work [1]R.K. Namde ...

  4. RS-SLAM A Robust Semantic SLAM in Dynamic Environments Based on RGB-D Sensor

    摘要: 大多数最先进的V-SLAM算法在结构化环境中表现良好.然而,静态世界的假设限制了进一步的实际应用.在本文中,我们提出了RS-SLAM,一个鲁棒的语义RGB-D SLAM系统.RS-SLAM能够 ...

  5. 动态场景SLAM相关论文总结

    参考文献:VDO-SLAM(动物判别与跟踪).*DynaSLAM(深度学习+多视图几何分割).*CoFusion(语义+运动分割).Meaningful Maps With Object-Orient ...

  6. 用于自动泊车的鸟瞰图的边缘线的语义SLAM系统

    文章:Hybrid Bird's-Eye Edge Based Semantic Visual SLAM for Automated Valet Parking 作者:Zhenzhen Xiang, ...

  7. 语义SLAM开源代码汇总

    作者丨Moonkissu@知乎 来源丨https://zhuanlan.zhihu.com/p/64825421 编辑丨3D视觉工坊 之前做的深度学习闭环检测 这方面,最近想了解下语义这方面,于是总结 ...

  8. (汇总篇)语义SLAM相关开源方案| 全球优秀作者与实验室 | SLAM学习资料整理

    目录 1 开源方案 1.1 Geometric SLAM (26项) 1. PTAM 2. S-PTAM(双目 PTAM) 3. MonoSLAM 4. ORB-SLAM2 5. DSO 6. LDS ...

  9. 语义SLAM论文以及code地址总结

    备忘,记录语义SLAM的一些论文和学习资料 涉及的部分论文戳这里,免费下载 相关算法 1.AVP-SLAM 论文:Semantic Visual Mapping and Localization fo ...

最新文章

  1. 某程序员女友抱怨:男朋友工作975,天天回家说好累,不肯亲热,倒头就睡,难怪程序员没女朋友!...
  2. (三)硕博生常用的英文文献下载的网站
  3. Xcode 9“ iPhone忙:准备对iPhone的调试器支持”
  4. [存储过程]中的事务(rollback)回滚
  5. Matlab实用程序--图形应用-变换的傅立叶函数曲线
  6. NetCore2.x 使用Log4Net(一)
  7. jcDate时间选取jQuery插件
  8. 在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)
  9. windows php的Memcache安装和使用方法
  10. 去掉xsl运行的飞鸽传书办法
  11. Android开发环境搭建Eclipse+JDK+ADT+AVD(系列一)
  12. 玩游戏用固态硬盘还是机械硬盘
  13. linux 下sqlplus里无法使用方向键的解决
  14. 全DIY主题+小工具 正版Win7桌面新体验windows7旗舰版主
  15. 若程序员们的“反996协议”实行,会发生什么
  16. BIOS知识枝桠——简称释义(按名称排序)
  17. 各种符号用英语怎么念
  18. 周志华机器学习(一)
  19. 何谓财务“二上二下”“三上三下”部门预算机制
  20. Mac-修改MySQL密码

热门文章

  1. 2022-2028年中国SIP芯片行业市场前景预测及投资战略研究报告
  2. 分析两小段c++代码 关于unsigned运算的坑
  3. 程序员必备注释模板---佛祖保佑
  4. 难忘的一天——装操作系统(三)
  5. Git最新版从零开始详细教程(迅速搞定~)
  6. 管道:介绍和基本服务
  7. GitHub上开源的YOLOv5
  8. CUDA运行时 Runtime(一)
  9. 标题 相机标定(Camera calibration)原理和步骤
  10. java线程触发_java线程