现在开源的RGB-D SLAM有哪些?

2019 年 5 月 8 日 计算机视觉life

点“计算机视觉life”关注,置顶更快接收消息!

本文图片都是动态图,但公众号限制图片尺寸以及外链,建议点阅读原文查看,更方便点击链接和查看动态图。

公众号后台回复:RGBD,进入交流群(限100人),一起交流RGBD SLAM相关技术。

背景:

RGB-D SLAM主要用于稠密三维重建。

在消费级深度相机出现之前,想要采用普通相机实现实时稠密三维重建比较困难。微软2010年发布了Kinect之后,基于深度相机的稠密三维重建掀起了研究热潮。早期比较有代表性的工作是2011年微软的Newcombe(单目稠密重建算法DTAM 的作者)、Davison等大牛发表在SIGGRAPH上的KinectFusion算法,算是该领域的开山之作。KinectFusion算法首次实现了基于廉价消费类相机的实时刚体重建,在当时是非常有影响力的工作,它极大的推动了实时稠密三维重建的商业化进程。下图所示是几款消费级深度相机。

KinectFusion之后,陆续出现了Kintinuous,ElasticFusion,InfiniTAM,BundleFusion等非常优秀的工作。本文主要列举几个例子进行简介,更全更好的阅读体验请点击文末阅读原文查看本文GitHub地址

https://github.com/electech6/owesome-RGBD-SLAM

Bundle Fusion


基本信息

项目官网

http://graphics.stanford.edu/projects/bundlefusion/

论文

https://arxiv.org/pdf/1604.01093.pdf

代码

https://github.com/niessner/BundleFusion

算法详细解读

计算机视觉方向简介 | 深度相机室内实时稠密三维重建

算法流程

Bundle fusion算法具体流程图如下:

  • 输入:RGB-D相机采集的对齐好的color+depth的数据流,作者使用的是structure sensor+iPad输出的30Hz,分辨率为640x480的序列图像。

  • 输出:重建好的三维场景。



算法优缺点

优点

  1. 重建重建效果在所有RGB-D SLAM中 top 3.

  2. 使用持续的local to global分层优化,去除了时域跟踪的依赖。

  3. 不需要任何显示的loop closure检测。因为每一帧都和历史帧相关,所以其实包含了持续的隐式的loop closure。

  4. 支持在GPU上实时鲁棒跟踪,可以在跟踪失败时移动到重建成功的地方进行relocalization,匹配上后继续跟踪。

缺点

  1. 由于成像传感器存在噪音,稀疏关键点匹配可能产生小的局部误匹配。这些误匹配可能会在全局优化中传播,导致误差累积。

  2. 上述效果图片都是在作者提供的公开数据集上的效果,该数据集采集的场景纹理比较丰富,光照也比较适中。而实际重建时效果和所使用深度相机的性能、待重建场景的纹理丰富程度关系很大。对于办公室这种简洁风格的场景效果会下降很多,还有很多可改进的地方。

  3. 目前算法需要两块GPU才能实时运行。


InfiniTAM



基本信息

官网

http://www.robots.ox.ac.uk/~victor/infinitam/

代码

https://github.com/victorprad/InfiniTAM

算法优缺点

优点

  • 提供Linux,iOS,Android平台版本

  • CPU可以实时重建

  • 重建效果还不错

缺点

  • loop closure 不是很稳定,loop closure后经常无法消除累计漂移

  • 没有提供带color的重建结果,需要自己写


RTAB-Map

基本信息

官网

http://introlab.github.io/rtabmap/

代码

https://github.com/introlab/rtabmap

简介

RTAB-Map( Real-Time Appearance-Based Mapping)用于基于外观的实时建图, 是一个通过内存管理方法实现回环检测的开源库。它限制地图的大小以使得回环检测始终在固定的时间限制内处理,从而满足长期和大规模环境在线建图要求。

从2013年开始并于2013年作为开源库发布,RTAB-Map已经扩展到完整的基于图的SLAM方法,目前RTAB-Map已经发展成为一个跨平台的独立C ++库和一个ROS包,允许用户使用不同的机器人和传感器实现和比较各种3D和2D对于各种应用的解决方案。

本文介绍了RTAB-Map的扩展版本及其在大量流行的真实数据集进行定量和定性的比较,(例如KITTI, EuRoC, TUM RGB-D, MIT Stata Center)。从自主导航应用的实用角度概述视觉和激光雷达SLAM配置的优势和局限性。

算法流程

1、RTAB-Map 整体描述



RTAB-Map ROS节点的框图。所需输入是:TF,用于定义传感器相对于机器人底座的位置; 来自任何来源的里程计(可以是3DoF或6DoF); 其中一种相机输入(一个或多个RGB-D图像,或双目立体图像),且带有相应的校准消息。可选输入:2D激光的雷达扫描,或3D激光的点云。然后,来自这些输入的所有消息被同步并传递给graph-SLAM算法。输出的是:Map Data,包含最新添加的节点(带有压缩传感器数据)和Graph; Map Graph,没有任何数据的纯图;TF,矫正过的里程计; 可选的OctoMap(3D占用栅格地图); 可选的稠密点云地图; 可选的2D占用栅格地图。

2、视觉里程计



RGBD里程计和双目立体视里程计的ROS节点框图。TF定义相机相对于机器人基座的位置,并作为输出来发布机器人基座的里程计变换。对于RGB-D相机或立体相机,管道是相同的,除了多计算一步相应的立体深度信息,以便稍后确定检测到的特征的深度。可以有两种里程计的方法:绿色的帧到帧(F2F)方法,红色的帧到地图(F2M)方法。

3、激光里程计



ICP里程计ROS节点框图。TF定义激光雷达相对于机器人基座的位置,并作为输出以发布机器人基座的里程计变换。可以有两种里程计的方法:绿色的扫描到扫描(S2S)方法,红色的扫描到地图(S2M)方法。 这些方法还可以选择使用恒速模型(粉红色)或其他里程计(蓝色)进行运动预测。 对于后者,输入测距的校正发布在TF上。

4、局部地图



STM的局部占用栅格地图创建。 依赖的参数(由椭圆显示),可选用激光扫描和点云输入(由棱形显示),局部占用栅格地图可以是2D或3D。

5、全局地图。



全局地图集成。依赖于局部地图创建地图的类型(见上图)。当只有3D局部占用栅格地图可用于生成3D占用栅格地图(OctoMap)及其2D地图。

算法优缺点

优点

  • 定位精度很准

  • 支持视觉、激光传感器

  • 支持跨平台、ROS

  • 在线处理

缺点

  • 鲁棒性不是很好,如果建图时间和重定位时间间隔得比较久,或者光线变化都很明显的话,重定位会失败

  • 点云网格化用possion重建,不是主流的TSDF,速度会慢

  • 重建效果不如 bundle fusion,但是也还不错


SLAMRecon



官网

http://irc.cs.sdu.edu.cn/SLAMRecon/

代码

https://github.com/HaoLi-China/SLAMRecon

Kintinuous



代码

https://github.com/mp3guy/Kintinuous

论文

http://thomaswhelan.ie/Whelan14ijrr.pdf

ElasticFusion



代码

https://github.com/mp3guy/ElasticFusion

论文

http://www.thomaswhelan.ie/Whelan16ijrr.pdf

rgbdslam_v2

代码

https://github.com/felixendres/rgbdslam_v2

论文

http://www2.informatik.uni-freiburg.de/~endres/files/publications/felix-endres-phd-thesis.pdf


本文图片都是动态图,但公众号限制图片尺寸以及外链,建议点阅读原文查看,更方便点击链接和查看动态图。

公众号后台回复:RGBD,进入交流群(限100人),一起交流RGBD SLAM相关技术。

推荐阅读

如何从零开始系统化学习视觉SLAM?
快看,那个学SLAM 的崩溃了!

计算机视觉方向简介 | 深度相机室内实时稠密三维重建

计算机视觉方向简介 | 深度图补全

关注:计算机视觉life,一起探索计算机视觉新世界~


觉得有用,给个在看啦~  

登录查看更多
30

相关内容

最新《深度学习自动驾驶》技术综述论文,28页pdf
专知会员服务
153+阅读 · 2020年6月14日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
109+阅读 · 2020年6月5日
基于视觉的三维重建关键技术研究综述
专知会员服务
160+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
191+阅读 · 2020年4月24日
专知会员服务
109+阅读 · 2020年3月12日
专知会员服务
86+阅读 · 2019年12月13日
【斯坦福&Google】面向机器人的机器学习,63页PPT
专知会员服务
24+阅读 · 2019年11月19日
斯坦福&谷歌Jeff Dean最新Nature论文:医疗深度学习技术指南
SLAM的动态地图和语义问题
计算机视觉life
23+阅读 · 2019年4月27日
语义信息与SLAM有哪些结合点?
计算机视觉life
5+阅读 · 2019年4月23日
从零开始一起学习SLAM | 点云到网格的进化
计算机视觉life
13+阅读 · 2019年1月9日
最近一年语义SLAM有哪些代表性工作?
计算机视觉life
6+阅读 · 2019年1月7日
这个开源项目有意思,用动画教你学算法
算法与数据结构
4+阅读 · 2018年12月27日
从零开始一起学习SLAM | SLAM有什么用?
计算机视觉life
18+阅读 · 2018年9月17日
【泡泡机器人】一文带你入门语义SLAM
泡泡机器人SLAM
29+阅读 · 2017年11月29日
Arxiv
6+阅读 · 2018年2月8日
VIP会员
相关VIP内容
最新《深度学习自动驾驶》技术综述论文,28页pdf
专知会员服务
153+阅读 · 2020年6月14日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
109+阅读 · 2020年6月5日
基于视觉的三维重建关键技术研究综述
专知会员服务
160+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
191+阅读 · 2020年4月24日
专知会员服务
109+阅读 · 2020年3月12日
专知会员服务
86+阅读 · 2019年12月13日
【斯坦福&Google】面向机器人的机器学习,63页PPT
专知会员服务
24+阅读 · 2019年11月19日
斯坦福&谷歌Jeff Dean最新Nature论文:医疗深度学习技术指南
相关资讯
SLAM的动态地图和语义问题
计算机视觉life
23+阅读 · 2019年4月27日
语义信息与SLAM有哪些结合点?
计算机视觉life
5+阅读 · 2019年4月23日
从零开始一起学习SLAM | 点云到网格的进化
计算机视觉life
13+阅读 · 2019年1月9日
最近一年语义SLAM有哪些代表性工作?
计算机视觉life
6+阅读 · 2019年1月7日
这个开源项目有意思,用动画教你学算法
算法与数据结构
4+阅读 · 2018年12月27日
从零开始一起学习SLAM | SLAM有什么用?
计算机视觉life
18+阅读 · 2018年9月17日
【泡泡机器人】一文带你入门语义SLAM
泡泡机器人SLAM
29+阅读 · 2017年11月29日
Top
微信扫码咨询专知VIP会员