ORBSLAM2论文翻译

ORB-SLAM2: an Open-Source SLAM System forMonocular, Stereo and RGB-D Cameras

摘要

我们为单目、双目和RGB-D相机提供了一个完整的SLAM系统,包括地图复用、闭环矫正和重定位功能。该系统在标准CPU上实时运行,适用于各种环境,从室内小型手持式设备,到在工业环境中飞行的无人机和在城市中行驶的汽车。我们的后端基于单目和双目观测的BA,允许使用度量尺度进行精确的轨迹估计。我们的系统包括一个轻量级的纯定位模式,利用视觉里程跟踪未建图的区域和匹配地图点,实现了零漂移定位。对29个最广泛使用的数据集中的公共序列的评估表明,我们的方法达到了最先进的精度,在大多数情况下是最精确的SLAM解决方案。我们发布源代码,不仅是为了SLAM社区的利益,也是为了成为其他领域研究人员的现成SLAM解决方案。

I.引言

同时定位和建图(SLAM)是近二十年来计算机视觉和机器人领域的一个热门研究课题,最近引起了高科技公司的关注。SLAM技术构建未知环境的地图,并在地图中定位传感器,重点关注实时操作。在不同的传感器模组中,相机价格低廉,并提供丰富的环境信息,从而实现鲁棒准确的位置识别。因此,视觉SLAM解决方案,其中主要传感器是一个相机,是当今主要的研究兴趣。位置识别是SLAM系统的一个关键模块,用于闭环矫正(即检测传感器何时返回到已经建图的区域,并在探测过程中矫正累积的误差),以及在跟踪失败后(由于遮挡或剧烈运动)或在系统重新初始化时重新定位相机。

视觉SLAM可以通过使用最便宜和最小的传感器设置的单目相机来执行。但是,由于深度无法仅从一个相机上观测到,地图和估计轨迹的尺度未知。此外,系统引导需要多视图或滤波技术来生成初始地图,因为无法从第一帧开始对其进行三角化。最后,单目SLAM受到尺度漂移的影响,如果在探索中执行纯旋转运动,可能会失败。通过使用双目相机或RGB-D相机,所有这些问题都得到了解决,并获得了最可靠的视觉SLAM解决方案。

在本文中,我们以我们的单目ORB-SLAM[1]为基础,提出了ORB-SLAM2,其贡献如下:

  1. 第一个用于单目、双目和RGB-D相机的开源SLAM系统,包括闭环矫正、重定位和地图重用。
  2. 我们的RGB-D结果表明,通过使用BA,与基于ICP或光度和深度误差最小化的其他的最先进的方法相比,我们实现了更高的精度。
  3. 通过使用近距离和远距离的双目点和单目观测,我们的双目结果比最先进的直接双目SLAM更精确。
  4. 一种轻量级的纯定位模式,可以有效地在禁用建图模块的情况下使用已有地图。
    在这里插入图片描述

图1显示了来自双目和RGB-D输入的ORB-SLAM2输出的示例。双目案例显示了KITTIdataset[2]序列00的最终轨迹和稀疏重建结果。这是ORB-SLAM2能够成功检测到的具有多个闭环的城市序列。RGB-D案例显示了从TUM RGB-D数据集[3]中估计的fr1_room序列的关键帧位姿,以及通过从估计出的关键帧位姿态反向投影传感器深度图渲染出的稠密点云。请注意,我们的SlAM系统不会执行任何类似KinectFusion[4]或类似的融合,但良好的定义表明了关键帧位姿的准确性。附加视频中显示了更多示例。

在本文的其余部分,我们将在第II节讨论相关工作,在第III节描述我们的系统,然后在第IV节给出评估结果,最后在第V节得出结论。

II. 相关工作

在本节中,我们将讨论有关双目和RGB-D SLAM的相关工作。我们的讨论以及第四节中的评估仅侧重于SLAM方法。

A. 双目SLAM

一个引人注目的早期双目SLAM系统是Paz等人的工作[5]。基于条件独立的分而治之EKF-SLAM,它能够在比当时其他方法更大的环境中运行。最重要的是,它是第一个利用近点和远点(即,由于双目相机中的小视差,其深度无法可靠估计的点)的双目SLAM,对后者使用逆深度参数化[6]。他们的经验表明,如果点的深度小于双目相机基线的40倍,则点可以被可靠的三角化。在这项工作中,我们遵循第III-A节所述的以不同方式处理近点和远点的策略。

大多数现代双目SLAM系统都基于关键帧[7],并在局部区域执行BA优化以实现可扩展性。Strasdat等人的工作[8]在关键帧的内部窗口中执行BA(点-位姿约束)的联合优化,并在外部窗口中执行位姿图(位姿-位姿约束)。通过限制这些窗口的大小,该方法实现了恒定的时间复杂度,但不能保证全局一致性。Mei等人的RSLAM[9] 使用地标和位置的相对表示,并在活动区域中执行相对BA,该活动区域可以被限制到常量时间。RSLAM能够进行闭环矫正,这允许在环路两侧扩展活动区域,但不强制实现全局一致性。最近的Pire等人的S-PTAM[10]执行局部BA,但缺乏大的闭环矫正。与这些方法类似,我们在一组局部关键帧中执行BA,因此复杂性与地图大小无关并且我们可以在大型环境中操作。然而,我们的目标是建立一个全局一致的地图。当进行闭环矫正时,我们的系统首先对齐闭环两侧,类似于RSLAM,以便跟踪能够使用旧地图继续定位,然后执行位姿图优化,以最小化闭环中累积的漂移,然后是全局BA。

最近 Engel 等人的 Stereo LSD-SLAM[11] 是一种半稠密直接法,可最大限度地减少具有高梯度的图像区域中的光度误差。不依赖于特征,该方法有望对运动模糊或纹理不佳的环境更加鲁棒。 然而,作为一种直接方法,其性能可能会因未建模的影响(如卷帘或非朗伯反射)而严重降低。

B. RGBD-SLAM

最早和最著名的RGB-DSLAM系统之一是Newcombe等人的KinectFusion[4]。该方法将传感器的所有深度数据融合成体素稠密模型并使用ICP来跟踪相机位姿。由于该系统的体素表示和缺乏闭环矫正,该系统被限制在小的工作空间内。Whelan等人的Kintinous[12]通过使用一个滚动的循环缓冲区,并包括使用位置识别的闭环矫正和位姿图优化能够在大型环境中进行操作。

可能第一个流行的开源系统是Endres等人的RGB-DSLAM[13]。这是一个基于特征的系统,其前端通过特征匹配和ICP来计算帧间运动。后端使用启发搜索中的闭环约束来执行位姿图优化。类似地,Kerl等人的DVO-SLAM[14]的后端优化了一个位姿图,其中帧间约束是由视觉里程计计算,它可以最小化光度误差和深度误差。DVO-SLAM还以启发式的方式在之前的所有帧上搜索闭环候选帧,而不是依靠位置识别。

Whelan等人最近的ElasticFusion[15]构建了一个基于surfel的环境地图。这是一种以地图为中心的方法,它忘记位姿并应用到地图的非刚性变形来执行闭环矫正,而不是一个标准的位姿图优化。该系统的重建细节和定位精度令人印象深刻,但目前的实现仅限于房屋大小的地图,由于复杂性度量与地图中surfel的数量有关。

正如Strasdat等人[8]提出的那样,我们的ORB-SLAM2使用深度信息来合成提取图像特征的双目坐标。这样,我们的系统就不知道输入是双目或RGB-D。与上述所有方法不同的是,我们的后端是基于BA并且构建了一个全局一致的稀疏重建结果。因此,我们的方法是轻量级的,并且可以标准的CPU上工作。我们的目标是长期和全局一致的定位,而不是构建最详细的稠密重建结果。然而,从高度精确的关键帧位姿,我们可以融合深度图,并在一个局部区域进行实时的精确重建,或者在全局BA后后处理所有关键帧的深度图,并得到一个场景的精确三维模型。

III. ORB-SLAM2

用于双目和RGB-D相机的ORB-SLAM2是在基于单目特征的ORB-SLAM[1]上的。系统总体概述如下图所示。

https://i-blog.csdnimg.cn/blog_migrate/0015c12a98de582cf6423950bbfa10e7.png

系统有三个主要的并行线程:1)跟踪线程通过查找与局部地图匹配的特征并应用纯运动BA最小化重投影误差来跟踪每一帧相机的位姿,2)局部建图线程管理局部地图并对其进行优化,执行局部BA,3)闭环矫正线程检测大的闭环,并通过执行位姿图优化矫正累积漂移误差。该线程在位姿图优化后开启第四个线程执行全局BA,计算出最优结构和运动解。

系统嵌入了一个基于DBoW2[16]的位置识别模块,用于在跟踪失败(例如遮挡)的情况下重定位,或在已建图场景中重新初始化,以及进行闭环检测。系统维护一个共视图[8],它连接具有共视地图点的任意两个关键帧以及连接所有关键帧的最小生成树。这些图结构允许检索关键帧的局部窗口,以便在局部进行跟踪和局部建图,从而允许系统在大范围环境中工作,并作为矫正回环时进行位姿图优化的结构。

系统为跟踪,建图和位置识别任务使用相同的ORB特征点[8]。这些特征点对旋转和尺度具有鲁棒性,并且对相机的自动增益和自动曝光以及照明变化具有良好的不变性。此外,它们提取和匹配速度快,允许实时运行,并且在基于词袋的位置识别[18]中显示出良好的P/R性能。

在本节的其余部分中,我们将介绍如何利用双目/深度信息以及系统的哪些元素受到影响。有关每个系统块的详细说明,请读者参阅我们的单目著作[1]。

A. 单目、近双目和远双目关键点

ORB-SLAM2作为一种基于特征的方法,对输入进行预处理,以在显著的关键点位置提取特征,如图2b所示。然后,输入图像被丢弃,所有系统操作都基于这些特征,因此系统独立于双目或RGB-D传感器类型。我们的系统处理单目和双目关键点,双目关键点被进一步分为近点或远点。

双目关键点由三个坐标xs=(uL,vL,uR)x_s=(u_L,v_L,u_R)xs=(uL,vL,uR)定义,(uL,vL)(u_L,v_L)(uL,vL)为左图的像素坐标,uRu_RuR为右图的水平坐标。对于双目相机,在两幅图像中提取ORB特征点,对于每个左图的ORB特征点,在右图中搜索对应的匹配项。通过假设双目的图像已经被矫正过以保持基线水平,这项操作可以非常高效地完成。然后利用左图中ORB特征点的像素坐标和右图中匹配点的水平坐标生成双目关键点,并通过块矫正进行亚像素精细化。对于RGB-D摄像机,我们在RGB图像上提取ORB特征,如Strasdat等人[8]提出的,对于每个具有坐标(uL,vL)(u_L,v_L)(uL,vL)的特征,我们将其深度值ddd转换为虚拟右图坐标:

uR=uL−fxbd(1)u_R = u_L - \frac{f_xb}{d} \tag{1}uR=uLdfxb(1)

其中fxf_xfx是水平焦距,bbb是结构光发射器和红外相机之间的基线长度,对于Kinect和Ausu相机,近似等于8cm。深度传感器的不确定性由虚拟右图坐标的不确定性表示。这样,双目和RGB-D输入的特征由系统的其余部分来进行相同的处理。

如果双目关键点的相关深度小于双目/RGB-D相机基线的40倍,则将其分类为近点,否则分类为远点,如[5]中所建议。当深度被准确估计并提供尺度、平移和旋转信息时,可以从一帧中安全地对近点进行三角化。另一方面,远点提供了准确的旋转信息,但尺度和平移信息较弱。当远点被多个视角所看到时,可以对它们进行三角化。

单目关键点由左图上的两个坐标(uL,vL)(u_L,v_L)(uL,vL)所定义,对应于所有无法找到双目匹配或在RGB-D情况下深度值无效的ORB特征点。这些点仅从能多个视角进行三角化,不提供尺度信息,但有助于旋转和平移的估计。

B. 系统引导启动

使用双目相机或RGB-D相机的主要优点之一是,通过仅从一帧获得深度信息,不需要像单目相机那样进行运动结构恢复来初始化。在系统启动时,使用第一帧创建一个关键帧,将其位姿设置为世界坐标系原点,并从所有双目关键点创建一个初始地图。

C. 使用单目和双目约束的BA

我们的系统执行BA来优化跟踪线程中的相机位姿(纯运动BA),在局部建图线程中优化一个局部窗口内的关键帧和地图点(局部BA),并在闭环矫正后优化所有关键帧和地图点(全局BA)。我们使用g2o[19]中实现的Levenberg–Marquardt方法。

仅运动BA优化相机旋转R∈SO(3)R \in SO(3)RSO(3)和位置t∈R3t \in \mathbb{R}^3t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值