RGB-D相机视觉SLAM
RGB-D相机视觉SLAM
Dense Visual SLAM for RGB-D Cameras
开源代码地址: vision.in.tum.de/data/software/dvo
摘要
本文提出了一种用于RGB-D相机的稠密视觉SLAM方法,该方法可以使所有像素上的光度误差和深度误差最小化。与稀疏的、基于特征的方法相比,能够更好地利用图像数据中的可用信息,从而提高姿态精度。提出了一种基于熵的相似性度量方法,用于关键帧选择和环路闭合检测。从所有成功的匹配中,构建了一个使用g2o框架进行优化的图。在公开的基准数据集上对进行了广泛的评估,在低纹理和低结构的场景中表现良好。与几种最先进的方法直接比较,本方法产生的轨迹误差大大降低。代码开源。
主要创新点:
本文的主要贡献有:
•一种快速的帧间配准方法,可优化强度和深度误差,
•基于熵的关键帧选择方法,显著减少了漂移,
•基于相同熵度量验证循环闭包的方法,以及
•将上述所有技术集成到一个通用的图形SLAM解算器中,进一步减少漂移。

本文目标是仅从摄像机的图像流来估计摄像机的运动。在每个时间步t,相机提供RGB-D图像,包括强度图像It和相应的深度贴图Zt。给定两个连续时间步的RGB-D图像,要计算相机的刚体运动g。图2说明了这个想法。

选择了测量近邻搜索,在空间受限的室内环境中操作,而且视觉里程计非常精确。在一个围绕关键帧位置具有预定半径的球体中搜索循环闭合候选者。在粗分辨率下,计算每个候选帧的两个关键帧和相关协方差矩阵之间的相对变换。为了验证候选者,采用与关键帧选择相同的熵比测试。使用中间帧到关键帧的所有成功匹配的平均熵,而不是第一帧到关键帧H(ζk:k+1)的转换熵。这一标准背后的直觉是,中间帧在空间和时间上最接近于关键帧,在此可获得具有最低不确定性的最佳可能注册结果。如果从低分辨率图像获得的参数估计值通过测试,也使用更高分辨率计算改进的估计值。最后,应用相同的熵比检验。如果这个测试也成功了,就在图中插入一个带有相对位姿约束的新边。图3显示,当相机返回到捕捉到第50帧的附近(第420450帧)时,熵比再次增大。此外,图3显示,高熵比与估计中的低误差相符。

使用慕尼黑技术大学提供的RGB-D基准进行评估[10]。基准包含用RGB-D相机捕获的多个真实数据集。每个数据集都伴随着一个由外部运动捕获系统获得的精确的地面真值轨迹。在第一组实验中,评估了组合光度和几何误差最小化的好处。具有不同数量的纹理和结构的RGB-D数据集适合于此目的。图4显示了不同数据集的代表性图像。表一显示了实验结果。前两列指示数据集是否包含结构/纹理(x)或不包含(-)。第三列显示相机到场景的定性距离。最后三列显示了RGBonly、depth only和combined三种不同估计方法的平移漂移(RPE)的均方根误差(RMSE),单位为m/s。与仅深度变量相比,仅RGB的里程计在具有纹理的无结构场景中效果更好,反之亦然。在这些数据集上,组合变量的性能优于这两种方法。但是,在具有结构和纹理的数据集上,组合RGB和深度odometry的性能略低于仅RGB的odometry。尽管如此,它在不同场景类型上显示了更好的泛化。深度项也有助于在由于自动曝光而导致强度突然变化的情况下稳定估计值。

本方法与最新的视觉SLAM方法进行比较,即RGB-D SLAM系统[2]、[31]、多分辨率surfel映射(MRSMap)[11]和KinectFusion的PCL实现(KinFu)[5]。表三总结了结果。第一列包含数据集名称,第二列显示系统创建的关键帧数。以下各列显示了本系统、RGB-D SLAM、MRSMap和KinectFusion的绝对轨迹误差的RMSE。本系统在八个数据集中表现最好,所有系统的结果都是可用的。三个方面与最佳系统的区别其他数据集较小。内部冲突在长而复杂的轨道上,例如fr1/房间、fr1/teddy,比其他系统的改进是显著的。

表二:所有freiburg1数据集的平移漂移(RPE)RMSE(m/s),帧间、帧间和帧间里程计,以及姿势图优化。注意(v)标记没有公共基础的验证数据集,本文使用在线工具评估了这些数据集。与逐帧里程计相比,使用关键帧可将性能提高16%。位姿图优化进一步减小了漂移,平均提高了20%。

表三:与三个最先进的系统相比,本文视觉SLAM系统的绝对轨迹误差(m)的RMSE。第二列显示系统使用的关键帧数。本系统对大多数数据集的性能最好。尤其要注意对具有长而复杂轨迹的数据集(如fr1/房间、fr1/teddy)的改进。
在一台采用英特尔酷睿i7-2600处理器、3.40GHz和16GB内存的PC机上进行了所有实验。视觉里程计和SLAM组件在不同的线程中运行。帧到关键帧的跟踪时间在32ms左右几乎是恒定的,循环闭合检测和优化的时间取决于图中关键帧和边的数量。此地图更新的平均处理时间为135ms。在运动估计的粗到精优化中,本文使用三种不同的图像分辨率,最高可达320×240像素。
RGB-D相机视觉SLAM的更多相关文章
- 视觉SLAM中相机详解
视觉SLAM中,通常是指使用相机来解决定位和建图问题. SLAM中使用的相机往往更加简单,不携带昂贵的镜头,以一定的速率拍摄周围的环境,形成一个连续的视频流. 相机分类: 单目相机:只是用一个摄像头进 ...
- (转) SLAM系统的研究点介绍 与 Kinect视觉SLAM技术介绍
首页 视界智尚 算法技术 每日技术 来打我呀 注册 SLAM系统的研究点介绍 本文主要谈谈SLAM中的各个研究点,为研究生们(应该是博客的多数读者吧)作一个提纲挈领的摘要.然后,我 ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- 视觉SLAM漫淡
视觉SLAM漫谈 1. 前言 开始做SLAM(机器人同时定位与建图)研究已经近一年了.从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解.然而越了解,越觉得这个方向难度很 ...
- 视觉SLAM的数学表达
相机是在某些时刻采集数据的,所以只关心这些时刻的位置和地图. 就把这一段时间的运动变成了李三时刻 t=1,2,...K当中发生的事情. 在这些事可,x表示机器自身的位置. x1,x2,x3,x4... ...
- 视觉SLAM
SLAM:Simultaneous Localization And Mapping.中文:同时定位与地图重建. 它是指搭载特定传感器的主体,在没有实验先验信息的情况下,于运动过程中建立环境的模型,同 ...
- 如何从零开始系统化学习视觉SLAM?
由于显示格式问题,建议阅读原文:如何从零开始系统化学习视觉SLAM? 什么是SLAM? SLAM是 Simultaneous Localization And Mapping的 英文首字母组合,一般翻 ...
- 经典视觉SLAM框架
经典视觉SLAM框架 整个视觉SLAM流程包括以下步骤: 1. 传感器信息读取.在视觉SLAM中主要为相机图像信息的读取和预处理. 2. 视觉里程计(Visual Odometry,VO).视觉里程计 ...
- SLAM学习笔记 - 视觉SLAM方法资源汇总
工具类: ros框架 linux系列教程 vim Eigen Eigen快速入门 Pangolin Pangolin安装与使用 数据集: TUM 数据格式 提供pyt ...
随机推荐
- Mysql 8.0安装
1. 下载安装包至/usr/local目录下 下载地址:https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.16-el7-x86_64.tar.gz ...
- pwn 好的联系网站
https://pwnable.kr/ https://w3challs.com/challenges/wargame http://overthewire.org/wargames/ http:// ...
- SSDT表的遍历
//VS2005创建的工程,系统xp sp2 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- hdu3117 斐波那契前后4位
题意: 求斐波那契的前后4位,n <= 10^8. 思路: 至于前四位,和hdu1568的求法一样: http://blog.csdn.net/u013761 ...
- Python中pip安装报错Unable to create process using '....'
因为我本人在电脑上安装了python2和python3,所以在安装的时候,把两个python的安装目录都安装到G盘了.然后两个python的执行文件分别改成了 python2.exe 和 pytho ...
- OGG-Oracle同步Sequence
一.需求,使用OGG同步软件,将Oracle 11g Sequence实时同步到19c新库中 参考文档 Implementing replication of cyclic sequences in ...
- 记一次CTF的签到题
开篇 打开题目网站 首先看到的是一个人博客,功能点非常少,功能较多的页面就是留言板了 一开始没啥思路,就想着抓包能不能找到SQL注入无果,在这个地方卡了很久 柳暗花明 在乱点的时候,无意中发现题目中的 ...
- 简单写个logictic回归
最近做华为软件精英挑战赛热身赛,给出的demo是使用logistic做的金融风控,比赛要求很严格,如果使用Python 进行训练那么不能使用任何第三方机器学习库,只能使用Python和原生numpy1 ...
- 码农飞升记-03-OpenJDK是什么?
目录 1.OpenJDK 概述 2.OpenJDK 的发展史 3.OpenJDK Community 1.角色定义 Participant(参与者) Contributor(贡献者) OpenJDK ...
- 将一个eclipse的SSM项目用IDEA打开并运行
项目部署 将一个eclipse项目用idea打开,并且 部署到tomcat中 .或者你tomcat部署成功,但是启动就是404,下面的步骤就要更认真看了 项目配置 打开idea,Import Proj ...