ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras文献阅读

摘要

ORB-SLAM2 是一个基于之前的单目ORB-SLAM扩充而来的完整的SLAM架构,支持单目、双目、RGB-D图像作为输入,能够实现地图重用、回环检测以及重定位。在运算速度方面,ORB-SLAM2可以在室内、室外等多种场景下实现在CPU下的实时工作,同时在多个常见的数据集上都能达到最好的效果

背景介绍

SLAM主要实现的功能是对一个未知的环境建立地图,并且确保算法能够实现实时运行。相机由于其低廉的造价而成为研究的热点,背景介绍主要围绕双目SLAM和RGB-D SLAM展开。

双目SLAM

最近的双目SLAM系统是LSD-SLAM,特点是一个半稠密的直接法,在图像梯度较大的区域最小化光度误差。由于该方法不依赖特征,LSD-SLAM在运动模糊或者无纹理区域的表现较好,更为鲁棒。然而当rolling shutter或者非朗博反射现象比较明显的时候,直接法的效果往往不好。

RGB-D SLAM

RGB-D SLAM的代表性工作包括KinectFusion, DVO-SLAM和 ElasticFusion。其中 ElasticFusion 是最新的方法,它是一个以地图为中心的方法,不使用通常的位姿图优化方法,而是通过对地图进行非刚性变形来实现回环检测。虽然这个方法的定位准确度非常高,但是受限于计算代价,当前ElasticFusion只能实现房间尺度的地图构建。

ORB-SLAM2的特点与贡献

ORB-SLAM2的后端是基于Bundle Adjustment的,实现了全局一致的稀疏重建,因此方法足够轻量,可以在一般的CPU上实时运行。另外,因为有准确的关键帧位姿,重建出整个场景的3D模型也是很容易的。
ORB-SLAM2主要有如下四个贡献:
(1)是第一个开源的同时可以用于单目、双目、RGB-D相机的SLAM系统。
(2)在RGB-D的情况下使用了Bundle Adjustment算法,比现有的ICP算法表现要好。
(3)通过运用远近处理策略不同的双目方法,算法在双目的情况下效果比现有的直接双目SLAM要好。
(4)当面对无法建图的情况时,可以提供一个轻量级的定位模式,以重用地图。
在这里插入图片描述

ORB-SLAM2架构

如图所示,ORB-SLAM2同时运行三个主线程:跟踪、局部建图和回环检测,在回环检测线程中还会开启一个新的线程去进行全局的BA,以获得最优的结构和运动求解。算法中使用的ORB特征点对于旋转和尺度有很好的鲁棒性,同时抽取速度快,准确率高,对系统的优秀表现起着很重要的作用。由于单目情况在ORB-SLAM中已经提及,所以以下的阐述都是有关双目或RGB-D的。

特征点定义

由于ORB-SLAM2是一个基于特征点的SLAM算法,所以所有的操作都是在特征层级进行的,整个系统也因此能够以相同的方式来处理双目和RGB-D图像。所有的特征点被分为两类,单目特征点和立体特征点。

立体特征点包括那些能够找到配对点的双目特征点或者是RGB-D图像中深度值有效的特征点。如果深度低于40倍的基准值,会被分类为近特征点,可以直接在单帧情况下三角化。若不是,则被分类为远特征点,需要多帧的信息才能三角化,但所有的立体特征点都可以提供尺度、旋转和平移信息。

单目特征点对应于找不到匹配的双目特征点以及深度图像值无效的特征点,只能在多帧的情况下三角化,并且无法提供尺度信息。

ORB-SLAM2中的BA

Bundle Adjustment (BA)是一种利用过去信息进行相机位姿优化的方法,在ORB-SLAM2中,BA分成了三个层级,分别是仅运动的BA、局部BA和全局BA。

仅运动的BA是指随着追踪线程进行的BA,最小化配对的三维点的重投影误差,局部BA是优化一组共视的关键帧以及其中特征点的集合,全局BA是指优化的集合包括了当前地图中所有的关键帧和关键点。

回环闭合

回环闭合分为两步进行,首先是回环检测,随后是通过优化位姿图来实现回环闭合。和单目情况不同,双目和RGB-D的情况下是尺度已知的,所以不会面临尺度偏移的问题。

在架构中,全局BA是被回环闭合的线程调用的,因为全局BA的开销是比较大的,所以需要单独开一个线程来运行。两个线程同时运行必然会带来冲突处理的问题,处理方案如下:当一个新的回环被检测到,而当前全局BA尚未完成,将抛弃当前的全局BA,开始新的全局BA。当全局BA顺利完成,关键帧和关键点会被更新。

关键帧插入

由于有了远近特征点的区分,关键帧插入的启动策略需要做一些调整,由于主要是通过近特征点来进行尺度或者位姿的计算的,所以当近特征点低于一定程度而不是特征点总数低于某一阈值时需要插入新关键帧。

定位模式

在定位模式下,局部建图和回环检测被停用,利用深度信息来进行特征点之间的匹配,由此让定位对于无法建图的区域的定位更加鲁棒。

总结

ORB-SLAM2是在前作ORB-SLAM基础上的扩展,将一个单目SLAM系统扩展到了双目和RGB-D情况下。同时由于利用了多层次的BA,新的关键帧插入决策算法,以及表现优异的ORB特征点等,造就了一个在多个任务中表现都非常优秀的SLAM系统,并且开源代码已经放在了github上,可以供后人学习和进一步开发,是视觉SLAM入门一定要学习的一个项目。

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页