ORB-SLAM2论文详解

Abstract

ORB-SLAM2 适用于单目,双目和RGB-D相机,包括闭环、重定位等功能,可用于室内环境、工业环境、飞行的无人机、行驶的汽车等

Introduction

单目相机:
无法观察到深度信息,因此地图的比例和估计的轨迹是未知的。并且 system bootstrapping 需要多视图或过滤技术来生成初始地图(无法从第一帧开始triangulation)。另外,单目SLAM可能会发生 scale drift,而且过程中进行纯旋转可能会估计失败。
这些问题可以通过使用双目或RGB-D摄像机解决。

ORB-SLAM贡献:
1.加了双目和RGB-D相机
2.使用BA优化,比ICP、光度法精度更高
3.分为远近立体点使单目精度更高
4.推出了一个轻量级的模式

双目相机,KITTI数据集上运行结果:
在这里插入图片描述轨迹+稀疏的二维的重构
具有多个回环的城市地图
RGB-D,TUM RGB-D数据集:
在这里插入图片描述具有一个循环闭合的房间场景的关键帧和密集点云。
通过估计关键帧位姿,反投影传感器深度图来绘制密集点云。

Related Work

A. Stereo SLAM

早期的stereo SLAM主要是EKF-SLAM,当时它能在更大的环境中运行。 将图像分为近点和远点(由于立体相机中的视差很小而无法可靠估计深度的点):对远点使用 inverse depth parametrization,对近点(点的深度小于立体基线的约40倍),则可以比较可靠地进行triangular

现在大多数立体声SLAM系统都是基于关键帧,并在局部区域执行BA优化:
Strasdat等人对关键帧的内部窗口中的BA(点-姿势约束)和外部窗口中的姿态图(姿势-姿势约束)进行了联合优化,通过限制这些窗口的大小,该方法实现了恒定的时间复杂度,但代价是无法保证全局一致性。
Meietal的RSLAM利用landmarks和姿势的相对表示,并在活动区域​​中执行BA,该活动区域可以受到恒定时间的约束。 RSLAM能够闭合循环,从而可以在循环的两侧扩展活动区域,但不会强制实现全局一致性。
最近 Pire等人的S-PTAM,执行局部BA,但是它缺少大的回环。

ORB-SLAM2在局部关键帧执行BA,因此复杂性与地图大小无关,并且我们可以在大型环境中运行。 我们的目标是构建全局一致的地图,当回环时,我们的系统会像RSLAM一样首先对齐两侧,以便跟踪能够使用旧地图继续进行定位,然后执行姿态图优化以最大程度地减少循环中累积的漂移,然后进行全局BA 。

最近Engel等人的双目LSD-SLAM是一种半稠密的直接法(不提取特征,对整张图片的像素点做差),可将具有高梯度的图像区域中的光度误差降至最低。 由于不依赖特征,因此该方法有望在运动模糊或纹理较差的环境中更强大。 但是,作为直接法,其性能会因如卷帘快门或非朗伯反射率等因素严重降低。

B. RGB-D SLAM

Newcombe等人的KinectFusion是最早,最著名的RGB-D SLAM系统之一。该方法将来自传感器的所有深度数据融合到一个立体的密集的模型中,该模型用于使用ICP跟踪相机姿态。 由于其体积表示的问题和缺少回环,该系统仅限于小型工作区。
Whelan等人的Kintinuous能够通过使用滚动的循环缓冲区在大型环境中运行,并且包括使用位置识别和pose-graph优化的回环。

第一个流行的开源系统是Endres等人的RGB-D SLAM:它是一个基于feature的系统,其前端通过特征匹配和ICP计算帧间运动。 后端利用回环约束条件执行姿态图优化。
同样,Kerl等人的DVO-SLAM后端优化了一个姿态图,用视觉里程计计算出关键帧到关键帧的约束,从而将光度和深度误差最小化。 DVO-SLAM还可以在所有以前的帧中以搜索回环候选,而不是依赖于位置识别。

最近Whelan等人的ElasticFusion构建了面片的环境地图。 这是一种以地图为中心的方法,该方法会丢弃姿势,并执行闭环操作,将非刚性变形应用于地图,而不是标准pose-graph优化。 该系统的详细重建和定位精度很强,但是当前的实现方式仅限于房间大小的地图,因为复杂度随地图中的点数量而缩放。

正如上述提出的那样,我们的ORB-SLAM2使用深度信息来合成立体的坐标,以提取图像上的特征。 这样,我们的系统就可以确定输入是双目还是RGB-D。 与上述所有方法不同,我们的后端基于BA,并构建了全局一致的稀疏的重建。 因此,我们的方法是轻量级的。 我们的目标是长期和全局一致的定位,而不是构建最详细的密集重构。 但是,从高度准确的关键帧姿势中,可以融合深度图进行准确的即时的局部重构,也可以在完整BA之后对所有关键帧的深度图进行处理,从而获得整个场景的准确3D模型。

ORB-SLAM2

三个主要的并行线程:
在这里插入图片描述1.通过查找与本地地图匹配的特征并应用BA来最大程度地减少重新投影误差的跟踪,以每帧定位摄像机
2.局部建图并对其进行优化,执行局部BA
3.闭合回路以检测大的回路并通过执行pose-graph优化来纠正累积的漂移。 该线程在pose-graph
优化后启动第四个线程以执行完整的BA,以计算最佳的解。

系统已嵌入基于DBoW2(DBow2算法主要用于重定位或者称作闭环检测)的位置识别模块,用于在跟踪失败(例如遮挡)或在已建图的场景中重新初始化的情况下进行重新定位,以及进行回环检测。

系统维护一个图(节点和连线),该图链接具有共同点的两个关键帧和连接所有关键帧的最小生成树(生成树是将原图的全部顶点以最少的边连通的子图,权值总和最小的生成树则称为图的最小生成树)。 这些图结构允许检索关键帧的局部窗口,以便跟踪和局部建图,从而允许在大型环境中工作,并用作回环时执行的pose-graph优化的结构

系统依旧使用ORB特征进行跟踪,映射和位置识别任务。这些特征对于旋转和尺度具有鲁棒性,并为相机的自动增益和自动曝光以及照明变化提供了良好的稳定性。 此外,它们快速提取和匹配以实现实时操作,并在词袋位置识别中显示出良好的精度/召回性能。

A. Monocular, Close Stereo and Far Stereo Keypoints

在这里插入图片描述
ORB-SLAM2作为基于特征的方法,会对输入进行预处理,以在显着的关键点位置提取特征。 然后丢弃输入图像,并且所有系统操作都基于这些功能,因此系统独立于双目或RGB-D传感器。 我们的系统处理单目和双目关键点,它们进一步分为近距离或远距离。

Stereo keypoints

由三个坐标xs =(uL,vL,uR)定义,分别是左图像上的坐标(uL,vL)和右图像上的水平坐标uR。

对于双目相机,我们在两个图像中都提取ORB,对于每个左ORB,我们都在右图像中搜索匹配项。然后,我们使用左侧ORB的坐标和右侧匹配的水平坐标生成 stereo keypoint。

对于RGB-D相机,我们在RGB图像上提取ORB特征,并且对于具有坐标(uL,vL)的每个特征,我们将其深度值d转换为虚拟右坐标:uR = uL − fx * b/d(fx是水平焦距,b是相机和红外摄像机之间的基线)
深度传感器的不确定性由虚拟右坐标的不确定性表示。双目和RGB-D的特征点被系统的其余部分平等地处理

如果Stereo keypoints的深度小于baseline的40倍,则将其分类为close,否则,将其分类为far。
Close keypoints 可以进行 triangulate,精确地估计深度,并提供scale, translation 和 rotation信息。
far keypoints可以提供准确的 rotation信息,但scale,和translation较弱。 当远点被多个视图观测到时,对其进行三角测量。

Monocular keypoints

Monocular keypoints由左侧图像上的两个坐标xm =(uL,vL)定义。 这些点仅从多个视图进行了triangular,并且不提供scale信息,但是有助于旋转和平移估计。

B. System Bootstrapping

Bootstrapping:推论统计学(从样本统计量 推算 总体统计量)下面的一种方法,利用有限的样本重复多次抽样获取新样本
使用立体声或RGB-D摄像机的主要好处之一只要一帧就可以获取深度信息,我们就不需要像单目那样通过SfM获取深度信息。 在系统启动时,我们用第一帧创建关键帧,将其pose设置为原点,并从所有stereo keypoints创建初始地图。

C. Bundle Adjustment with Monocular and Stereo Constraints

系统执行BA来优化跟踪线程中的相机pose(motion-only BA),优化关键帧中的局部窗口和局部建图线程中的点(局部BA),并且回环检测之后优化所有关键帧和点(full BA)。我们使用在g2o中的LM。

motion-only BA

Motion-only BA优化了相机orientation R ∈SO(3) 和position t ∈ R3,最小化世界坐标系中匹配的3D点Xi∈R3与keypoints xi之间的重投影误差(monocular xi ∈ R2 or stereo xi ∈ R3)
在这里插入图片描述ρ 是 cost function , 投影函数π

在这里插入图片描述monocular:πm , stereo:πs
(fx,fy)是焦距,(cx,cy)是中心点,b是baseline

Local BA

在这里插入图片描述KL:可视的 keyframes
KF:其它的 keyframes
j:匹配点集合

Full BA

完全BA是局部BA的特定情况,将优化的范围扩大到地图中的所有关键帧和点(原始关键帧除外)
其中对地图中的所有关键帧和点进行了优化,但固定为消除量规自由度的原始关键帧除外

D. Loop Closing and Full B

闭环的执行分为两个步骤:

1.检测并验证一个环路
2.通过优化pose-graph来校正循环

单目的ORB-SLAM可能发生尺度的漂移,与单目不同的是立体/深度信息使尺度已知,并且几何验证和pose-graph优化不再需要处理尺度的漂移(基于刚体变换)。

在ORB-SLAM2中,我们在pose-graph之后进行了full BA优化,以实现最佳解决方案。这种优化的成本可能很高,因此我们在单独的线程中执行该优化,从而使系统能够继续建图并检测回环。但是,这带来了将BA输出与地图的当前状态合并的挑战。 如果在优化运行时检测到新的循环,将中止优化并继续进行回环,这将再次启动full BA优化。full BA完成后,我们需要将更新后的关键帧和关键点子集(full BA后的)与未更新的关键帧和点合并在一起,这些关键点和点将在优化运行时插入,通过生成树将更新的关键帧的校正传播到未更新的关键帧(即从未优化的pose转换为优化的pose), 未更新的点根据参考关键帧的校正进行变换

E. Keyframe Insertion

ORB-SLAM2遵循单目ORB-SLAM中引入的策略:非常频繁地插入关键帧,然后剔除多余的关键帧。 close stereo points 和 far stereo points之间的区别使我们能够为关键帧插入引入新条件,因为场景中大部分场景都远离双目传感器(如下图),所以这在具有挑战性的环境中至关重要。

KITTI 01中的跟踪点。 绿点的深度小于baseline的40倍,而蓝点的距离更远。 在这种序列中,重要的是要足够频繁地插入关键帧,以使close points的数量能够进行准确的translation估计。far points有助于估计orientation,但translation和scale信息很少:
在这里插入图片描述我们需要有足够数量的close points来准确估计平移,因此,如果跟踪的闭合点的数量降至τt以下,并且帧可以创建至少τc个新的close stereo points,则系统将插入一个新的关键帧。在所有实验中都发现τt= 100和τc= 70效果很好。

F. Localization Mode

ORB-SLAM融合了一个定位模型,只要环境没有明显变化,该模型就可用于在地图良好的区域进行轻量级的长期定位。
在这种模式下,局部定位和回环的线程被停用,并且根据需要用重定位来连续定位摄像机。
在此模式下,tracking利用视觉里程计匹配来匹配到地图点。
视觉里程计匹配是当前帧中的ORB与根据深度信息在前一帧中创建的3D点之间的匹配。 这些匹配使定位在未建图区域具有鲁棒性,但是会累积漂移。 地图点匹配可确保对现有地图进行无漂移的定位。

Evaluation

对三个流行的数据集中的ORB-SLAM2进行评估,并将其与其他最新的SLAM系统进行比较, 为了考虑多线程系统的不确定性,每个序列运行5次,并显示中值结果以估计轨迹的准确性:

A. KITTI Dataset

KITTI数据集包含在城市和高速公路环境中从汽车记录的双目的序列。双目传感器的baseline约为54厘米,在10Hz下工作,校正后的分辨率为1240×376。 序列00、02、05、06、07和09包含回环。 我们的ORB-SLAM2可以检测到所有回环,并且以后可以重用其地图。 下表显示了11个训练序列的结果,与最先进的双目LSD-SLAM(双目SLAM唯一显示了所有序列详细结果)相比较,使用两个不同的度量。
在这里插入图片描述trel:relative translation
rrel:relative orientation
tabs:absolute translation
在大多数序列中,我们的系统均优于stereo LSD-SLAM,并且总体而言,相对误差低于1%。 序列01(上图)是训练集中唯一的高速公路序列,平移误差稍差一些。 由于高运动速和低帧速,很难跟踪到几乎所有的close points,因此很难估计Translation。 但是,由于可以跟踪许多远点,因此可以准确估计orientation,每100米实现0.21的误差。

KITTI 00、01、05和07:
估计的轨迹:黑色
ground-truth:红色
在这里插入图片描述与ORB-SLAM1中的单目结果相比,ORB-SLAM2双目的部分能够处理单目失败的序列01。 在高速公路序列中,仅需要几帧就能看到close points。
stereo部分能够用一个关键帧创建点,而不是像单目一样匹配两个关键帧(延迟初始化),在此序列中很重要,它不会丢失跟踪。
单目系统以metric scale估计地图和轨迹,不会受到尺度漂移

估计的轨迹:黑色
ground-truth:红色
Left: monocular ORB-SLAM 1
right: ORB-SLAM2 (stereo).
在这里插入图片描述单目ORB-SLAM有严重的尺度漂移,尤其是转弯时。 相反,提出的stereo系统能够估计轨迹和地图的真实比例,而不会发生尺度漂移

B. EuRoC Dataset

EuRoC数据集包含11个stereo序列,这些stereo序列是从在两个不同房间和一个大型工业环境中飞行的微型飞行器(MAV)记录的。 双目传感器的baseline约为11厘米,可提供20Hz的WVGA图像。
根据MAV的速度,照明情况和场景的纹理,这些序列分为容易,中等和困难。 在所有序列中,MAV都会重新访问环境,并且ORB-SLAM2能够重用地图,并在必要时进行回环检测。
下表显示了与Stereo LSDSLAM相比的结果,ORB-SLAM2的所有序列的absolute translation均方根值。 ORB-SLAM2可以达到几厘米的定位精度,并且比stereo LSD-SLAM更精确。 在V2 03的某些部分中,由于严重的motion blur,跟踪丢失了,可以使用IMU信息来处理该序列。
在这里插入图片描述EuRoC:V1 02 medium, V2 02 medium, MH 03 medium and MH 05 difficult:
估计的轨迹:黑色
ground-truth:红色
在这里插入图片描述

C. TUM RGB-D Dataset

TUM RGB-D数据集包含来自RGB-D传感器在室内的序列,这些传感器分为几类,以评估在不同纹理,光照和结构条件下的重构和SLAM /里程计方法。
在下表中,我们将精度与以下最新技术进行了比较:ElasticFusion ,Kintinuous,DVO-SLAM [14]和RGB-D SLAM 。我们的方法是唯一基于BA的方法,并且在大多数序列中都优于其他方法。
在这里插入图片描述下图显示了四个序列,通过从计算出的关键帧pose反投影深度图而得到的点云。
书桌和海报的良好清晰度以及笔直的轮廓证明了方法的高精度定位。
在这里插入图片描述

D. Timing Results

为了完成对系统的评估,我们在下表中以三个序列显示了时序结果,这些序列具有不同的图像分辨率和传感器。,显示了每个线程任务的平均值和两个标准偏差范围。 由于这些序列包含一个回环,因此full BA和回环任务仅执行一次,并且仅报告一次时间测量。每帧的平均跟踪时间低于每个序列的摄像机帧频的倒数,这意味着我们的系统能够实时工作。 由于stereo图像中的ORB提取是并行的,因此可以看出,在V2 02的双目WVGA图像中提取1000个ORB特征类似于在fr3 office的单目VGA图像通道中提取相同数量的特征。
在这里插入图片描述将回环中关键帧的数量表示为回环的时间参考。
然而,虽然KITTI 07中的回环包含更多关键帧,但室内fr3办公室构建的图更密集,因此 loop fusion, pose-graph优化和full BA任务更加昂贵。较高密度的图使局部地图包含更多关键帧和点,因此局部地图tracking和局部BA也更加昂贵。

Conclusion

我们为单目,双目和RGB-D传感器提供了完整的SLAM系统,能够在标准CPU上实时执行重定位,闭环并重新使用其地图。 如实验所示,我们专注于构建全局一致的地图,以在广泛的环境中进行可靠的长期定位。 提出的具有系统重定位功能的定位模式可为已知环境提供一种非常robust,零漂移和轻量级的定位方法。 此模式对于某些情景可能很有用,例如在地图良好的空间中跟踪虚拟现实中的用户视点。

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

令人惊讶的是,RGB-D结果表明,如果需要最精确的相机定位,BA的性能将优于直接法或ICP,其另外的优势是计算成本较低,不需要GPU处理实时运行。

未来的扩展可能包括多摄像机,鱼眼或全向摄像机支持,大规模密集融合,协作映射或增强的运动模糊鲁棒性。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORB-SLAM3是一个基于ORB-SLAM2和ORB-SLAM-VI的系统,它可以在纯视觉或者视觉惯导的系统中鲁棒地运行。它支持在单目、双目和RGB-D相机上利用针孔或者鱼眼模型进行SLAM(Simultaneous Localization and Mapping)任务。ORB-SLAM3是对之前版本的改进和扩展,在2015年提出的ORB-SLAM首次引入了特征点描述子ORB(Oriented FAST and Rotated BRIEF),2017年提出的ORB-SLAM2在此基础上进一步改进了定位和地图重建的性能,还引入了闭环检测和重定位功能。ORB-SLAM-VI在ORB-SLAM2的基础上进一步增加了惯性测量单元(IMU)的支持。而ORB-SLAM3则在ORB-SLAM2和ORB-SLAM-VI的基础上进行了更多的改进和优化。具体来说,ORB-SLAM3引入了新的局部地图表示方法,采用了更强大的特征点描述子SuperPoint和更快速的特征点检测器SuperGlue,提升了系统的定位和重建性能。此外,ORB-SLAM3还引入了新的优化方法,提高了系统的鲁棒性和实时性。整体上,ORB-SLAM3在之前版本的基础上进行了多方面的改进和优化,使得系统在各种不同场景和设备上都能更加可靠地进行SLAM任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [一文详解ORB-SLAM3](https://blog.csdn.net/qq_29462849/article/details/118159468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [ORB-SLAM3技术详解(1)简介与论文解读](https://blog.csdn.net/hhaowang/article/details/117318737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值