BAD SLAM:捆绑束调整直接RGB-D SLAM
BAD SLAM:捆绑束调整直接RGB-D SLAM
BAD SLAM: Bundle Adjusted Direct RGB-D SLAM
论文地址:
源码链接:www.eth3d.net
摘要
同时定位与映射(SLAM)系统的一个关键组成部分是估计的3D地图与摄像机轨迹的联合优化。束调整(BA)是这方面的金标准。由于稠密RGB-D SLAM中存在大量的变量,以往的工作主要集中在BA的近似上。相比之下,本文提出了一种新的快速直接BA公式,并将其应用于实时密集RGB-D SLAM算法中。证明了直接RGB-D SLAM系统对卷帘快门、RGB和深度传感器同步以及校准误差高度敏感。为了促进对直接RGB-D SLAM的最新研究,提出了一种新颖的、经过良好校准的基准,该基准使用同步的全局快门RGB和深度相机。它包括一个训练集,一个没有公共背景真相的测试集,以及一个在线评估服务。与现有方法相比,该数据集上方法的排序发生了变化,提出的算法优于所有其他评估的SLAM方法。
主要贡献
i) 在RGB-D SLAM系统中实现了一种新的快速直接BA算法,其性能优于现有方法。
ii)一个经过良好校准的RGB-D SLAM基准数据集,但也包括单目和立体视觉惯性SLAM。 与以前的数据集不同,本文使用同步全局快门相机,不需要对滚动快门等效果建模。与现有数据集相比,RGB-D SLAM方法在该数据集上的排名发生了变化。
iii)本文基准和SLAM系统作为开源的排行榜,可参考www.eth3d.net。
本文证明了在密集的RGB-D数据上使用单一GPU直接交替BA是实时可行的。提出了一种新颖实用的BA算法,该算法经过精心设计,能够在如图1所示的场景中实时运行。

Direct RGB-D Bundle Adjustment
与SLAM算法一样,由前端和后端组成(c.f.图2)。前端实时跟踪RGB-D相机的运动。提供了摄像机姿态和场景几何的初始估计。后端以较低的频率运行[32],重新定义相机轨迹和几何图形,以构建一致的三维地图。本文的核心技术贡献是一种新的用于后端的直接RGB-D SLAM的Bundle调整(BA)策略。下面,我们将详细描述这个策略。
BA策略基于一组关键概念:
同时使用基于记录深度图像的几何约束和光度约束。后者使用渐变而不是原始像素强度来对光度变化保持鲁棒性。为了实现有效的优化,在重新确定3D地图和相机姿态之间进行交替,以最小化每个时间点考虑的参数数量。本方法是第一个为RGB-D SLAM的密集BA方法,可以在较小的场景中实时运行。首先描述数据表示,然后详细说明优化的成本函数和优化过程本身。

优化方案,如Alg1所述。执行多次迭代直到达到最大值或收敛。在每个迭代中,交替的步骤优化等式1中的成本并更新surfels。每一步的细节如下。

Benchmark Dataset
作为记录新的RGB D SLAM基准的动机,讨论了流行的TUM RGB-D数据集的结果[61]。表2显示了一些常用序列上不同SLAM方法的绝对轨迹误差(ATE)结果(如[61]中所用;越小越好)。可选的内部函数和深度失真优化极大地改善了这些数据集上的结果。

对于异步帧,使用最坏的情况,因为彩色图像是在两个连续深度图像之间的中间时间点渲染的。所有其他偏移都会产生时间上更接近的深度/颜色对。结果显示在表3中。与TUM-RGB-D结果相比,在这些数据集上优于所有其他方法,表明需要模拟更多的效果,例如深度失真,以获得真实的结果。
通过对两台红外摄像机进行立体深度估计,该立体算法同时利用了主动照明和环境红外光。地面真实姿态主要由运动捕捉系统记录。一些训练数据集被记录在这个系统之外以获得更多的多样性。根据基准摄像机和钻机上的附加摄像机的运动结构,以及多次覆盖数据集序列的视频,给出了这些数据的基本真相。这些数据集被保存在一个单独的类别中,可能不太准确。本SLAM基准包括61个训练和35个测试数据集。图3示出了来自本数据集的示例图像。所有序列都显示在补充视频中。



比较了最新的(非惯性)RGB-D SLAM方法的源代码是可用的。对于所有方法,参数仅在训练数据集上调整。图6示出了累积结果,而图7示出了所有数据集上的单个结果。将数据集划分为简单、中等或硬:简单数据集由大多数算法求解,而硬数据集则不由任何算法很好地求解。剩下的是中等难度的。训练数据集的“SfM”类别包含具有SfM地面真值的数据集。
图4显示了BA方案的不同部分在基准测试的示例数据集上的运行时间。里程计所用的时间可以忽略不计。关键帧姿势和几何优化占用的时间最多。
在图5中评估关键帧的创建频率,其中每个关键帧的帧数是为每个图形指定的。在该评估中,选择更频繁的关键帧总是比选择较少的关键帧执行得更好,尽管可能会减少实时设置中的BA迭代次数。但是,内存使用也随着更多关键帧而线性增加。用于surfel创建的单元大小在图5中计算。较小的单元大小可以产生更密集的场景重建,从而提高内存使用率。它可以提高精度,因为更多的几何考虑,但也增加了计算要求。
BAD SLAM:捆绑束调整直接RGB-D SLAM的更多相关文章
- 视觉SLAM实战(一):RGB-D SLAM V2
写在前面 首先打个广告.SLAM研究者交流QQ群:254787961.欢迎各路大神和小白前来交流. 看了前面三篇博文之后,是不是有同学要问:博主你扯了那么多有用没用的东西,能不能再给力一点,拿出一个我 ...
- [SLAM] 01 "Simultaneous Localization and Mapping" basic knowledge
发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发信站: 水木社区 (Thu Jun 16 19:18:24 2016), 站内 ...
- [SLAM] 01. "Simultaneous Localization and Mapping"
本篇带你认识SLAM,形成客观的认识和体系 一.通过行业招聘初步了解SLAM 发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发 ...
- 简化可视SLAM应用程序的开发
简化可视SLAM应用程序的开发 Easing the development of visual SLAM applications 同步定位和映射(SLAM)描述了一个设备(如机器人)使用传感器数据 ...
- 从零开始一起学习SLAM | 你好,点云
本文提纲 先热热身点云是啥你知道点云优缺点吗?点云库PCL:开发者的福音PCL安装指北炒鸡简单的PCL实践留个作业再走先热热身 小白:hi,师兄,好久不见师兄:师妹好,上周单应矩阵作业做了吗?小白:嗯 ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- 泡泡一分钟:Fast and Robust Initialization for Visual-Inertial SLAM
张宁 Fast and Robust Initialization for Visual-Inertial SLAM链接:https://pan.baidu.com/s/1cdkuHdkSi9x7l ...
- 泡泡一分钟:FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM
FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM FMD Stereo ...
- 鱼眼摄像头SLAM
鱼眼摄像头SLAM 在机器人技术.摄影测量学和计算机视觉等领域,鲁棒相机位姿估计是许多视觉应用的核心.近年来,在复杂.大规模的室内外环境中,人们越来越关注相机位姿估计方法的实时性.通用性和可操作性.其 ...
随机推荐
- node运行的第一个helloWorld程序
hello world 参考链接: https://www.runoob.com/nodejs/nodejs-http-server.html https://npm.taobao.org/ http ...
- 【MySQL】实现线上千万数据表添加字段操作以及缓存刷新
需求背景: 由于业务需求,需要在线上用户表添加渠道字段,用于区分不同渠道注册的用户,目前该表有20+个字段,8个索引 线上用户数据大概1500W左右,需要不停机增加数据库字段,同时需要刷新Redis缓 ...
- (转载)springboot + rabbitmq发送邮件(保证消息100%投递成功并被消费)
转载自https://www.jianshu.com/p/dca01aad6bc8 一.先扔一张图 image.png 说明: 本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认 ...
- Android Hook框架adbi的分析(1)---注入工具hijack
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/74055505 一.Android Hook框架adbi的基本介绍 adbi是And ...
- 渗透测试神器Cobalt Strike的使用
目录 Cobalt Strike Cobalt Strike的安装 Cobalt Strike的使用 创建监听器:
- CVE-2018-0798:Microsoft office 公式编辑器 Matrix record 字段栈溢出漏洞调试分析
\x01 前言 2018 年 1 月 9 日,Office 公式编辑器再曝出新漏洞,编号为 CVE-2018-0798.提起公式编辑器大家都不陌生,之前的 CVE-2017-11882 和 CVE-2 ...
- CTFHub-技能树-Bypass disable_function:LD_PRELOAD
LD_PRELOAD 目录 LD_PRELOAD 题目描述 解题过程 简单测试 查看phpinfo 编译动态链接库 写调用代码 题目描述 目标:获取服务器上/flag文件中的 flag.需要了解 Li ...
- 2020腾讯Android岗初级到高级面试真题收录解析
前言 马上就要到金九银十面试季了,需要找工作的小伙伴可以开始刷题复习了. 今天给大家分享的是博主腾讯面试的面经以及对腾讯2020上半年Android开发岗面经真题收录,希望可以帮助到大家,喜欢的朋友可 ...
- 【报错】org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSocketHandlerMapping' defined in class path resource
环境:maven+eclipse+jdk1.8 [tomcat使用的是maven自带的插件,实质原因就是出在tomcat版本问题] 背景:在进行SSM集成WebSocket的时候,项目启动报org.s ...
- featuretools的几个高级特性
摘要:记录工作中用到的featuretools的部分高级特性. 1.防止信息泄露 在调用dfs时,将主表的观测时间列连同id列作为cutoff_time,可以在构造特征时自动将子表中在cutoff_t ...