ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras论文阅读笔记

ORB-SLAM2是一个开源的SLAM系统,适用于单目、双目和RGB-D相机,具备地图重用、环路闭合和重新定位功能。系统基于BA实现高精度轨迹估计,适用于各种环境,包括自动驾驶和室内场景。系统包含轻量级定位模式,支持无漂移定位,并在多个公开数据集上展现出最先进的精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

介绍了ORB-SLAM2,一个用于单目、双目和RGB-D相机的同时定位和映射(SLAM)系统,包括地图重用、环路闭合和重新定位功能。该系统可在各种环境中的标准中央处理器上实时工作,从小型手持式室内序列,到工业环境中的无人机和城市中行驶的汽车。系统的后端基于单目和双目观测的BA(bundle adjustment ),允许进行精确的轨迹估计。系统包括一个轻量级定位模式,利用视觉里程计跟踪未建图的区域,并与地图点匹配,允许零漂移定位。对29个流行的公共序列的评估表明,ORB-SLAM2方法达到了最先进的精度,在大多数情况下是最精确的SLAM解决方案。

在ORB-SLAM的基础上,做出以下贡献:
1)第一个面向单目、双目和RGB-D相机的开源SLAM系统,包括闭环、重新定位和地图重用;
2)RGB-D结果表明,通过使用BA,获得了比基于迭代最近点(ICP)或光度和深度误差最小化的方法更高的精度;
3)通过使用远近双目点和单目观察,双目结果比直接法双目SLAM更精确;
4)轻量级定位模式,可以在禁用建图的情况下有效地重用地图。

图1显示了以来自双目和RGB-D作为输入的,ORB-SLAM2输出的例子。双目情况显示了最终轨迹和来自KITTI数据集的序列00的稀疏重建。RGB-D例子显示了从TUM RGB-D数据集fr1_room按顺序估计的关键帧姿态,以及通过从估计的关键帧姿态反投影传感器深度图而呈现的密集点云。
在这里插入图片描述
ORB-SLAM2使用深度信息来合成图像上提取特征的立体坐标。系统不知道输入是双目的还是RGB-D的。后端基于BA,并构建全局一致的稀疏重建。因此,我们的方法是轻量级的,可以与标准的中央处理器一起工作。目标是长期和全局一致的定位,而不是构建最详细的密集重建。然而,从高度精确的关键帧姿态,人们可以融合深度图,并在局部区域中动态地获得精确的重建,或者在完整的BA之后对来自所有关键帧的深度图进行后处理,并获得整个场景的精确三维模型。

ORB-SLAM2系统概述

系统框架如图2a所示:
在这里插入图片描述
该系统有三个主要的并行线程:
1)跟踪,通过找到与局部地图的特征匹配并使用仅运动BA最小化重投影误差来定位每个帧的摄像机位置;
2)局部地图管理局部地图并对其进行优化,执行局部BA;
3)循环闭合以检测大循环并通过执行姿态图优化来校正累积的漂移。这个线程启动第四个线程,在位姿图优化后执行完整的BA,以计算最优结构和运动解。

该系统嵌入了基于DBoW2的位置识别模块,用于在跟踪失败(例如,遮挡)的情况下重新定位,或者用于在已经建立地图的场景中重新初始化,以及用于循环检测。系统维护一个covisibiliy graph,该图连接观察公共点的任意两个关键帧和连接所有关键帧的最小生成树。这些图形结构允许检索关键帧的局部窗口,以便跟踪和局部地图在本地运行,允许在大型环境中工作,并作为闭合循环时执行的姿势图优化的结构。

该系统使用相同的ORB特征进行跟踪、建图和位置识别任务。这些特征对于旋转和缩放是鲁棒的,并且对于相机自动增益和自动曝光以及照明变化呈现良好的不变性。此外,它们提取和匹配速度快,允许实时操作,并在单词包位置识别中表现出良好的精度/召回性能。

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

双目点的坐标定义为xs = (uL,vL,uR), (uL,vL)为左边图像的坐标,uR为右边图像的水平坐标。对于双目相机,在两幅图像中提取ORB,对于每一个左ORB,在右图像中搜索匹配。假设双目校正图像使极线水平,这可以非常有效地实现。然后,用左ORB的坐标和右匹配的水平坐标生成双目关键点。对于RGB-D相机,提取RGB图像上的ORB特征,对于具有坐标(uL,vL)的每个特征,将其深度值d转换成虚拟右坐标。
在这里插入图片描述
fx是水平焦距,b是结构光投影仪和红外摄像机之间的基线,深度传感器的不确定度用虚右坐标的不确定度表示。通过这种方式,系统的其他部分可以同等地处理来自双目和RGB-D输入的特征。

如果一个双目关键点的关联深度小于stereo/RGB-D基线的40倍,则将其分类为近,否则将其分类为远。由于准确估计了深度并提供了比例、平移和旋转信息,因此可以从一帧中安全地对近关键点进行三角测量。另一方面,远点提供准确的旋转信息,但较弱的比例和平移信息。当远点有多帧支持时,对其进行三角测量。

单目关键点由左侧图像上的两个坐标 xm = (uL , vL ) 定义,并对应于所有那些在 RGB-D 情况下无法找到双目匹配或具有无效深度值的 ORB。这些点仅从多帧进行三角分解,不提供比例信息,但有助于旋转和平移估计

2.系统引导
使用双目或 RGB-D 相机的主要好处之一是,仅通过一帧可以获得深度信息,不需要像单目那样来自运动初始化的特定结构。在系统启动时,使用第一帧创建一个关键帧,将其位姿设置为原点,并从所有双目关键点创建一个初始地图。

3.具有单目和双目约束的BA优化
系统执行 BA 以优化跟踪线程中的相机位姿(仅运动 BA),优化局部建图线程中的关键帧和点(局部 BA),并在闭环后优化所有关键帧和点(全局BA),使用在 g2o中实现的 Levenberg-Marquardt 方法完成BA。

仅运动BA的相机旋转方向为R∈ SO(3),平移t∈ SO(3),最小化匹配的 3-D 点Xi ∈ R3与单目关键点xmix_{m}^{i}xmixsix_{s}^{i}xsi之间的重投影误差。
在这里插入图片描述
其中,ρ 是鲁棒的 Huber代价函数,Σ 是与关键点比例相关的协方差矩阵。π(.)\pi _{(.)}π(.)为投影函数,其中πm\pi _{m}πm为单目投影函数,πs\pi _{s}πs为双目投影函数,定义如下:
在这里插入图片描述(fx , fy ) 是焦距,(cx , cy ) 是原点偏移量,b 是基线,所有这些都从校准中得知。

本地 BA 优化一组covisible keyframes KL 和在这些关键帧中看到的所有点PL。所有其他关键帧 KF ,而不是 KL ,PL 中的观察点对代价函数有贡献,但在优化中保持固定。将 Xk 定义为 PL 中的点与关键帧 k 中的关键点之间的匹配集,优化问题如下:
在这里插入图片描述
全局 BA 是局部 BA 的特定情况,其中地图中的所有关键帧和点都经过优化,除了原点关键帧被固定以消除规范自由度。

4.闭环和全局 BA
闭环分两个步骤执行,首先,必须检测和验证一个循环,第二,纠正循环以优化位姿图。与可能发生尺度漂移的单目 ORB-SLAM相比,双目/深度信息使尺度可观察,几何验证和位姿图优化不再需要处理尺度漂移,是基于刚体变换而不是相似之处。

在 ORB-SLAM2 中,在位姿图之后加入了完整的 BA 优化,以实现最优解。这种优化可能非常占用资源,因此,在单独的线程中执行它,同时允许系统继续创建地图和检测循环。然而,这带来了将BA输出与地图的当前状态合并的挑战。如果在优化运行时检测到新循环,将中止优化并继续闭环,这将再次启动完整的 BA 优化。当完整的 BA 完成后,需要合并更新的关键帧子集以及由完整BA优化的点,以及在优化运行时插入的未更新关键帧和点。 这是通过生成树将更新的关键帧的校正(即,从非优化姿势到优化姿势的变换)传播到非更新的关键帧来实现的。

5.关键帧插入
ORB-SLAM2 遵循单目 ORB-SLAM 中引入的策略,即非常频繁地插入关键帧并随后剔除冗余的关键帧。近双目点和远双目点之间的区别能够引入关键帧插入的新条件,这在场景大部分远离双目传感器的具有挑战性的环境中至关重要,如图 3 所示。
在这里插入图片描述
在这样的环境下,需要有足够多的近点来准确估计平移,因此,如果跟踪到的近点的数量低于τt\tau _{t}τt并且该帧可以创建至少τc\tau _{c}τc个新的近双目点,系统将插入一个新的关键帧。凭经验发现 τt\tau _{t}τt= 100 和τc\tau _{c}τc = 70 在实验中效果很好。

6.定位模式
采用了一种定位模式,只要环境没有重大变化,这种模式对于在地图绘制良好的区域进行长期定位非常有用。在此模式下,局部建图和闭环线程将被禁用,并且如果需要,通过使用重新定位的跟踪来连续定位摄影机。在此模式下,跟踪利用视觉里程计匹配和地图点匹配。视觉里程匹配是指当前帧中的ORB与前一帧中根据双目/深度信息创建的三维点之间的匹配。这些匹配使得定位对未建图区域具有鲁棒性,但漂移可能会累积。地图点匹配确保对现有地图进行无漂移定位。

评估

在三个流行数据集中评估了ORB-SLAM2,并与其他最先进的SLAM系统进行了比较,使用原始作者发布的结果和文献中的标准评估指标。在Intel Core i7-4790台式计算机上运行了ORB-SLAM2,其内存为16 GB。为了对多线程系统的不确定性进行合理评估,将每个序列运行五次,并显示估计轨迹精度的中值结果。

1.KITTI Dataset
KITTI数据集包含在城市和公路环境中从汽车记录的双目序列。双目传感器有一个54厘米的基线,工作频率为10赫兹,校正后分辨率为1240×376像素。序列00、02、05、06、07和09包含循环。ORB-SLAM2检测所有循环,并且能够在之后重用其地图,除了序列09,其中循环发生在序列末尾的极少数帧中。 表一显示了11个训练序列的结果, 与最先进的双目LSD-SLAM相比。
在这里插入图片描述使用两种不同的度量标准,即绝对平移均方根误差(RMSE)tabs和平均相对平移trel和旋转rrel误差。 图4显示了估计轨迹的一些示例。
在这里插入图片描述
在高速公路序列中,见图3,仅在少数帧中可以看到闭合点。双目版本具有从一个双目关键帧创建地图点的能力,而不是单目视觉的延迟初始化(包括查找两个关键帧之间的匹配),在该序列中对于不丢失跟踪至关重要。此外,双目系统使用米制比例估计地图和轨迹,并且不会受到比例漂移的影响,如图5所示。

在这里插入图片描述
2.EuRoC Dataset
EuRoC数据集包含11个双目序列,这些序列是从一个微航空飞行器(MAV)在两个不同的房间和一个大型工业环境中飞行时记录的。双目传感器有一个11厘米基线,提供20赫兹的WVGA图像(800×480象素)。根据MAV的速度、照明和场景纹理,序列分为容易、中等和困难。在所有序列中,MAV重新访问环境,ORB-SLAM2能够重用其地图,必要时关闭循环。表II显示了与双目LSD-SLAM相比,所有序列的ORB-SLAM2绝对平移RMS。
在这里插入图片描述
ORB-SLAM2的定位精度为几厘米,比LSD-SLAM更精确。由于严重的运动模糊,ORB-SLAM2的跟踪在V2_03_的某些部分丢失,但可以使用IMU信息处理该序列。图6显示了与地面真实情况相比的计算轨迹示例。
在这里插入图片描述
3.TUM RGB-D Dataset
TUM RGB-D数据集包含来自RGB-D传感器的室内序列,这些传感器分为几个类别,用于评估不同纹理、照明和结构条件下的目标重建和SLAM/里程计方法。在表III中,将ORB-SLAM2的精确度与以下方法进行了比较:ElasticFusion、Kintinuious、DVO-SLAM和RGB-D SLAM。ORB-SLAM2是唯一一种基于BA的方法,在大多数序列中都优于其他方法。正如在ORB-SLAM中已经注意到的RGB-D SLAM结果,freiburg2序列的深度图有4%的标度偏差,可能来自校准错误,已经在运行中进行了补偿,可以部分解释显著更好的结果。图 7 显示了从四个序列中计算的
在这里插入图片描述
关键帧姿势对传感器深度图进行反向投影所产生的点云。

4.耗时结果
为了完成对所提出系统的评估,在表 IV 中给出了三个具有不同图像分辨率和传感器的时序结果。显示每个线程任务的平均值和两个标准偏差范围。由于这些序列包含一个循环,因此完整的 BA 和闭环线程的一些任务只执行一次,并且只报告一个时间测量。每帧的平均跟踪时间低于每个序列的相机帧速率的倒数,这意味着ORB-SLAM2系统能够实时工作。由于双目图像中的ORB提取是并行的,可以看出在V2_02的WVGA图像中提取1000个ORB特征与在fr3_office的单个VGA图像通道中提取相同数量特征相似。

循环中的关键帧数显示为与循环关闭相关的时间的参考。虽然 KITTI 07 中的循环包含更多关键帧,但为室内 fr3_office 构建的covisibility graph更密集,因此循环融合、位姿图优化和完整 BA 任务的成本更高。更高的covisibility graph密度使得局部地图包含更多的关键帧和点,因此,局部地图跟踪和局部BA也更加耗时。
在这里插入图片描述

总结

为单目、双目和 RGB-D 传感器展示了一个完整的 SLAM 系统,能够在标准 CPU 上实时执行重新定位、闭环和重用其地图。如实验所示,ORB-SLAM2专注于构建全局一致的地图,以便在广泛的环境中进行可靠和长期的定位。所提出的具有系统重定位能力的定位模式为已知环境产生了一种非常稳健、零漂移和轻量级的定位方法。此模式对于某些应用程序很有用,例如在地图良好的空间中跟踪虚拟现实中的用户角度。

ORB-SLAM2 在大多数情况下都达到了最高精度。在 KITTI 视觉里程计基准测试中,ORB-SLAM2 是目前最好的双目 SLAM 解决方案。至关重要的是,与近年来蓬勃发展的双目视觉里程计方法相比,ORB-SLAM2 在已经建图的区域实现了零漂移定位。

令人惊讶的是,RGB-D 结果表明,如果需要最准确的相机定位,BA的性能优于直接方法或 ICP,另外还具有计算成本更低、不需要 GPU 处理来实时运行的额外优势。

ORB-SLAM2 是第一个可以使用单目、立体和 RGB-D 输入的开源视觉 SLAM 系统。此外,源代码包含一个使用单目相机的增强现实应用程序的示例,以展示ORB-SLAM2的潜力。

未来的扩展可能包括,例如,非重叠多摄像头、鱼眼或全向摄像头支持、大规模密集融合、协作建图或增强的运动模糊鲁棒性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值