点云PCL免费知识星球,点云论文速读。

文章:RGB-D SLAM with Structural Regularities

作者:Yanyan Li , Raza Yunus , Nikolas Brasch , Nassir Navab and Federico Tombari

编译:点云PCL

代码:https://github.com/yanyan-li/PlanarSLAM.git

来源:arXiv 2021

欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。

摘要

这项工作提出了一种专为结构化环境设计的RGB-D SLAM系统,旨在通过从场景中提取的几何特征来提高跟踪和建图的精度,除了点特征之外,结构化环境还提供了大量的几何特征,如直线和平面,我们利用这些几何特征设计SLAM系统的跟踪和建图模块,对于跟踪部分,我们基于曼哈顿世界(MW)的假设,寻找这些特征之间的几何关系,我们提出了一种基于点、线和平面的解耦优化方法,并在附加的优化位姿模块中使用曼哈顿关系,对于建图部分,以较低的计算成本重建从稀疏到稠密的不同级别的建图,

我们提出了一种基于实例的网格划分策略,通过对平面实例进行独立网格划分来构建稠密地图,在姿势估计和重建方面的总体性能是根据公共数据集进行评估的,与最先进的方法相比,表现出更好的性能。代码发布于https://github.com/yanyan-li/PlanarSLAM.git。

主要贡献

在本文作者提出了一种健壮的RGB-D SLAM系统,该系统专门设计用于处理结构化环境,同时改进了跟踪和建图。图1说明了此类结构化场景的模块,其中包含点、线和平面,根据结构SLAM的解耦策略,首先估计无漂移旋转矩阵,然后估计三自由度平移,初始旋转和平移通过map-to-frame策略进行优化。本文主要贡献:

  • 基于基于MW的解耦位姿估计的概念,我们通过将点和线特征与平面相结合,并利用曼哈顿关系进行额外的位姿优化步骤,改进了平移估计。

  • 我们提出了一种基于平面实例的网格重建方法,从稀疏点云生成稠密的环境点云。

  • 一种实时RGB-D SLAM的通用框架,其中这些模块用于在结构化环境下高精度定位和建图。

图2,文章框架概述,从RGB-D帧中提取点、线和平面特征,首先以解耦的方式估计旋转和平移,然后进行优化。平面分段用于创建基于网格的环境重建。

主要内容

给定结构化环境中的一系列RGB-D帧,我们的方法的目标是重建3D场景,同时估计每帧的6D相机姿势。

A.扩展特征集

在我们的方法中,我们使用ORB特征,特征提取和匹配速度很快,在低纹理环境中,很难提取足够的点来进行鲁棒姿态估计,因此我们使用直线扩展特征集,如LBD,直线是使用LSD方法提取的,此外,在室内环境中通常会发现无纹理平面区域,从深度地图中提取的平面实例是延伸点和线的有用线索。使用连接组件分析方法检测平面。它们由Hessian法线形式π表示,其中nˆ=(nx,ny,nz)是平面的法线,表示其方向,d是从相机原点到平面的距离。

B.解耦位姿估计和优化

为了减少帧之间的误差传播,我们基于基于MW假设计算旋转运动的单目结构,然后根据特征估计相应的平移运动,并从最后一步计算固定旋转。与Structure SLAM不同,Structure SLAM使用点-线局部地图一起优化平移和旋转,我们利用局部地图中的平面,还利用这些平面的几何关系(平行和垂直)作为约束,这提高了系统的精度。

 跟踪

不同于传统的姿态估计方法,我们在MW假设的基础上将6D摄像机的姿态分解为旋转和平移,得到了MW和摄像机ci之间的旋转运动Rcim。这样,旋转估计将不受最后一帧或最后一个关键帧的姿势的影响,从而有效地减少漂移。然后,使用点、线和平面特征以及初始旋转矩阵进行平移估计,该估计仅由3个自由度组成。

  • 旋转估计 :无漂移旋转估计方法通过将室内环境建模为MW来估计每个帧和曼哈顿坐标帧之间的旋转Rcm,从而减少帧到帧跟踪产生的漂移,而不是直接从帧到帧跟踪相机

  • 平移估计 :估计旋转后,使用点、线和平面来估计平移。我们将最后一帧的3D点重新投影到当前帧中,并根据重投影误差定义误差函数。

  • 姿势优化:最后两个步骤假设场景是一个良好的曼哈顿模型,但是一些一般的室内环境没有不可能遵守MW假设,导致精度下降。因此,在通过解耦旋转和平移策略获得初始姿势后,在对位姿进行优化,以补偿与MW或不稳定初始估计值的偏差。

建图

SLAM框架中使用的基于关键帧的3D建图策略,关键帧和三维特征将构建一个共同可视图,在该图中,只要有新的关键帧和新特征可用,节点和边就会更新。

图3,系统提供的不同级别的地图

A.稀疏建图

如图3所示,稀疏建图模块由从关键帧提取的点-线-平面特征重建,第一帧被设置为第一关键帧,全局地图由由此检测到的地标初始化。在新关键帧中检测到不在全局地图中的新点、线和平面时,它们将首先保存到局部地图。然后我们检查本地地图中地标的质量,然后在剔除坏地标后将可靠地标推送到全局地图中。与点和线的匹配方法不同,对于新关键帧中检测到的每个平面,我们首先使用的策略检查它是否与地图中的平面关联,如果我们找到关联,我们将新平面的3D点添加到全局地图中的关联平面,并使用体素网格过滤掉冗余,以再次获得稠密的点云,如果传入平面未关联到全局地图中的任何平面,则将其作为新平面添加到地图中。

B.平面实例网格

获得的稀疏地图仍然不足以用于涉及机器人与环境交互的应用,但它提供了关于平面和非平面实例的信息。因此,我们使用实例化网格策略构建一个密度更大的地图,室内场景可分为平面区域和非平面区域,平面区域,如地板、墙壁和天花板通常有很大的范围,但是密集的像素信息不会增加质量,而且是高度冗余的。因此,我们不使用surfel或TSDF,而是将平面区域视为包含少量且固定数量的独立于大小的元素的实例。

实验

我们评估了提出的SLAM系统两个众所周知的公共数据集的ICL-NUIM和TUM RGBD基准数据集,比较其性能与其他先进的方法如ORB-SLAM2 , PSSLAM,基于特征的方法,DVO-SLAM是一种直接的方法,InfiniTAM使用GPU进行基于RGB和深度图像的实时跟踪和建图,此外,我们在ICL-NUIM数据集上提供了我们的重建模型的重建精度,并将其与其他流行的密集重建方法进行了比较。最后,为了证明我们的系统在时间上是鲁棒的,我们还测试了来自TAMU数据集的一个数据集,该数据集包含覆盖大面积室内区域的长序列,所有的实验都是在Intel Core i7-8700 CPU 下进行的,不使用任何GPU。

表I显示,基于平移RMSE (ATE),我们的方法在8个序列中的3个序列上获得了最好的性能。InfiniTAM在lr-kt1、lr-kt2和of-kt3序列上也表现良好,但在其他序列上也会失去跟踪能力。

如图6所示,在lr-kt3中有几个具有挑战性的场景,当相机靠近墙壁时,只捕捉到一堵白墙和两片植物叶子。在这种情况下,OPVO和L-SLAM并不能产生良好的性能

图6所示,lr-k3数据结果。(a)输入图像;(b)点线特征和分段平面;(c)重建三维地图和轨迹

图4显示了ORB-SLAM、PS-SLAM和我们的方法的相对位姿误差。在相对平移和相对旋转方面,我们的方法得到了比其他两种方法更好的结果。特别是由于采用了解耦的MW旋转估计,该方法的旋转误差要小得多。

图4所示,比较ICLNUIM和TUM RGB-D序列旋转的相对位姿误差(RPE)

如图5所示,序列stairs - c中的轨迹是两层楼之间的一个环路,与ORBSLAM2相比,我们的方法在整个轨迹长度上的漂移改进了34.7%。

图5所示,在TAMU数据集上,本文方法与ORB-SLAM2之间的稀疏重建和轨迹定性结果

tum rgb-d序列的跟踪时间(ms)

cl-nuim数据集的Rmse重建的误差(cm),单位为厘米

总结

我们提出了一种基于点、线和平面的RGB-D SLAM系统,使用MW假设进行旋转估计,使用点、线和平面特征进行平移估计,我们实现了最先进的性能,此外,一种新的基于实例的网格划分方法可以有效地重建环境中的平面区域,生成的密集地图允许在机器人和AR/VR应用程序中与环境交互,在未来,我们希望通过对环境中的非平面部分进行网格划分来扩展平面重建,以允许更复杂场景的完整重建。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

点击下方微信视频号可查看最新研究成果及相关开源方案的演示:

如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作:群主微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

结构化场景中的RGB-D SLAM相关推荐

  1. 自动驾驶车辆在结构化场景中基于HD-Map由粗到精语义定位

    点云PCL免费知识星球,点云论文速读. 文章:Coarse-to-fine Semantic Localization with HD Map for Autonomous Driving in St ...

  2. 在结构化场景中基于单目的物体与平面SLAM方案

    点云PCL免费知识星球,点云论文速读. 文章:Monocular Object and Plane SLAM in Structured Environments 作者:Shichao Yang, S ...

  3. SQL结构化查询语言中的LIKE语句

    SQL结构化查询语言中的LIKE语句 在sql结构化查询语言中,like语句有着至关重要的作用. like语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串 ...

  4. 微服务应用容器化场景中常见问题总结

    简介:云原生技术栈是下一代应用转型的必然选择,它包含了微服务架构,DevOps和容器技术.对于微服务架构来说,应用是"第一公民",他逐渐蚕食原来底层软件或者硬件的功能,例如服务注册 ...

  5. 结构化数据中的从属判断问题

    [摘要]     从数据表中选出数据时,有时需要判断成员是否从属于某一个集合.例如从房价表中选出重要城市的房价信息,从销售表中选出 VIP 客户的销售记录等等.如何简便快捷的处理结构化数据中的从属判断 ...

  6. 国内脑机接口最新研究 - 脑控机器人在非结构化场景执行避障任务

  7. PlanarSLAM:基于结构化约束的视觉SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 引言 在我们所熟知经典SLAM系统,以ORB-SLAM为代表的通过特征点法在相机位姿估计方面有很好的表 ...

  8. 基于SLAM的室内场景的结构化构建

    分享提纲: 结构化场景重建的定义及意义 单目结构化重建 俯视图结构化重建 多目结构化重建 应用 Robot navigation(机器人导航),Indoor decoration(室内装饰),Virt ...

  9. 计算机视觉方向简介 | 室内场景的结构化重建

    随着增强现实,家务机器人等应用的普及,室内场景重建研究正在得到越来越广泛的关注.与传统底层密集重建方法不同,讲者的研究集中在分析重建场景中的高层结构化信息. 在本次AI研习社大讲堂上,来自圣路易斯华盛 ...

最新文章

  1. mysql 一键获取数据库表结构
  2. 结构型模式 -- 代理模式(静态代理动态代理)
  3. golang中字符串内置函数整理
  4. 鸟哥Linux私房菜(基础篇)——第五章:首次登入与在线求助 man page笔记
  5. CH - 0304 IncDec Sequence(差分+思维)
  6. MFC略缩图控件实现
  7. html悬浮弹窗后面背景变深,JS+CSS实现Div弹出窗口同时背景变暗的方法
  8. React后台管理系统-file-uploader组件
  9. mysql攻城掠地_【图片】攻城掠地单机版本服务端+攻城掠地GM工具【单兆权吧】_百度贴吧...
  10. python括号是中文还是英文_python括号区别
  11. OpenCV-图像饱和度
  12. struts2教程_Struts 2教程– Struts2教程
  13. bad interpreter: No such file or directory
  14. 基于Paddle Serving百度智能边缘BIE的边缘AI解决方案
  15. 基于matlab的捷联惯导算法编程(二)
  16. 初中计算机教学进度表,初中学校教学活动安排表.doc
  17. javascript怎么对url进行编码转换
  18. linux 动态加载日志,Linux动态显示文件内容-linux tailf命令详解-Linux tailf命令退出-嗨客网...
  19. drupal mysql hash密码_變更drupal7用戶密碼加密方式
  20. 线程池为啥要用阻塞队列

热门文章

  1. JAVA用递归方法判断某个字串是否是回文
  2. Rancher使用入门
  3. Python 高阶函数filter、map、reduce、reversed、sorted及迭代器函数 iter
  4. 第一学期网络技术知识总汇
  5. JavaScript对象掺杂点原型
  6. 读《大道至简》第六章感想
  7. 这样在一个sql里完成更新和插入,只用一次数据库连接,效率提高了
  8. cimiss数据_CIMISS,你太优秀了!
  9. android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...
  10. java url路径包含中文_谈谈 Java 类加载机制