ORBSLAM系列|ORB-SLAM3论文精读(一)

发布于 2023-9-12 10:53
浏览
0收藏

ORBSLAM系列|ORB-SLAM3论文精读(一) -汽车开发者社区

摘要

本文提出了ORB-SLAM3,它是首个能够针对单目、双目和RGB-D相机执行视觉、视觉-惯性和多地图SLAM的系统,并且支持针孔和鱼眼镜头模型。

第一个主要的创新点为它是基于特征的紧耦合的视觉-惯性SLAM系统,其完全依赖于最大后验(MAP)估计(甚至在IMU初始化阶段)。其结果为一个能够在小型和大型、室内和室外环境中实时鲁棒运行的系统,并且比先前的方法精确2-10倍。

第二个主要的创新点为它是一个多地图系统,其依赖于具有改进召回率的新位置识别方法。归功于这种方法,ORB-SLAM3能够在长时间缺少视觉信息的过程中继续运行:当它跟踪丢失时,它启动一个新的地图,当重新访问已建图区域时,新地图将与先前的地图无缝合并。与仅使用最后几秒信息的视觉里程计系统相比,ORB-SLAM3是首个能够在所有算法阶段中复用所有先前信息的系统。这允许在BA中包含共视关键帧,这些关键帧提供高视差观测以提高精度,即使它们在时间上分隔开或者来自先前的建图段。

本文实验表明,在所有的传感器配置中,ORB-SLAM3和目前文献中最佳的系统一样鲁棒,并且明显更为精确。特别地,本文的双目-惯性SLAM在EuRoC drone上获得3.5cm的平均精度,以及在TUM-VI数据集(一组AR/VR场景的代表)的房间内的快速手持运动下获得9mm的平均精度。为了有益于社区,我们开源了代码。

介绍

在过去二十年中,关于视觉同时定位和建图系统(SLAM)以及视觉里程计(VO)的深入研究,无论是单独使用相机还是与惯性传感器结合使用,都已经涌现了精度和鲁棒性不断提升的优秀系统。现代系统依赖于最大后验(MAP)估计,其在视觉传感器的情况下对应于BA,无论是在基于特征的方法中最小化特征重投影误差的几何BA,还是在直接法中最小化一组选定像素光度误差的光度BA。

随着集成回环技术的VO系统最近的出现,VO和SLAM之间的边界更为难分。视觉SLAM的目标是要使用移动载体装载的传感器来构建环境的地图并且实时地计算载体在该地图中的位姿。相比之下,VO系统将重点放在计算载体的自身运动上,而不是构建一张地图。SLAM地图的很大优势为,它允许在BA中匹配和使用先前的观测结果,执行三种类型的数据关联(扩展了工作Past, present, and future of simultaneous localization and mapping: Toward the robust-perception age中使用的术语):

1)短期数据关联:匹配过去几秒内获取的地图元素。这是大多数VO系统使用的唯一数据关联类型,一旦环境元素超出视野范围,就丢弃它们,这导致甚至当系统移动到同一区域时也会存在连续的估计漂移。

2)中期数据关联:匹配相机附近的地图元素,其累积漂移仍然很小。这些能够通过与短期观测相同的方式在BA中匹配和使用,并且当系统移动到已建图区域中时,允许达到零漂移。这是我们系统与具有回环检测的VO系统相比能够获取更好精度的关键所在。

3)长期数据关联:使用位置识别技术将观测结果与先前访问的区域中的元素进行匹配,不管是累积的漂移(回环检测)、在断开的地图中先前已经建过图的当前区域(地图合并)还是跟踪丢失(重定位)。长期匹配允许使用位姿图(PG)优化或者更为准确的方式是使用BA来重置漂移并且校正地图。这是SLAM在中型和大型回环环境中保证精度的关键所在。

在本工作中,我们基于ORB-SLAM和ORB-SLAM视觉-惯性基础之上构建系统,它是首个能够充分利用短期、中期和长期数据关联的视觉和视觉-惯性系统,其在已建图区域内达到零漂移。这里,我们进一步提供多地图数据关联,它允许我们在BA中匹配和使用来自先前建图段的地图元素,从而实现SLAM系统的真正目标:构建一张稍后可用于提供精确定位的地图。

这本质上是一篇系统论文,它最重要的贡献是ORB-SLAM3库本身,这是迄今为止最完整、最精确的视觉、视觉-惯性和多地图SLAM系统(见表格I)。ORB-SLAM3的主要创新点为:

1)单目和双目视觉-惯性SLAM系统:即使在惯性测量单元(IMU)初始化阶段也完全依赖于最大后验(MAP)估计。所提出的初始化方法在先前工作Inertial-only optimization for visual-inertial initialization中已被提出。这里,我们加入它与ORB-SLAM视觉-惯性的集成、对双目-惯性SLAM的扩展以及在公开数据集上的完整评估。我们的结果表明,即使在没有回环的序列上,单目和双目视觉-惯性系统也非常鲁棒,并且明显比其它视觉-惯性方法更为精确。

2)改进召回率的位置识别:很多最新的视觉SLAM和VO系统使用DBoW2词袋库解决了位置识别问题。DBoW2要求时间一致性,在检查几何一致性之前,将三个连续的关键帧与同一区域匹配,从而以召回率为代价提供精度。因此,系统在回环和复用先前建图区域时速度太慢。本文提出一种新型的位置识别算法,首先检查候选关键帧的几何一致性,接着使用三个共视关键帧检查局部一致性,这三个共视关键帧在大多数情况下已经存在于地图中。这个策略以略高的计算成本为代价,提高了召回率并且增多了数据关联,从而提高地图的精度。

3)ORB-SLAM地图集(Atlas):首个完整的多地图SLAM系统,它能够处理单目和双目配置的视觉和视觉-惯性系统。地图集能够表示一组断开连接的地图,并且将所有地图操作平滑地应用于它们:位置识别、相机重定位、回环和精确的无缝地图合并。这允许自动地使用和合并不同时刻构建的地图,执行增量式的多段地图SLAM。工作ORBSLAM-atlas: a robust and accurate multi-map system中提出了针对视觉传感器的ORB-SLAM地图集的初步版本。这里,我们加入新的位置识别系统、视觉-惯性多地图系统以及它在公开数据集上的评估。

4)一种抽象的相机表示:使SLAM代码与所使用的相机模型无关,并且通过提供投影、反投影和雅可比函数来添加新的模型。我们提供针孔模型和鱼眼模型的实现。

所有这些创新点以及一些代码改进使得ORB-SLAM3成为新的基准视觉和视觉-惯性开源SLAM库,它与文献中现有的最佳系统一样鲁棒,并且明显更为精确。我们还提供单目、双目、单目-惯性和双目-惯性SLAM结果之间的比较,这些结果能够引起从业者的兴趣。

相关工作

表格I概述了最具代表性的视觉和视觉-惯性系统,展示了用于估计和数据关联的主要技术。表格中包含定性的准确性和鲁棒性评级是基于第七节中给出的结果,以及PTAM、LSD-SLAM和ORB-SLAM之间的比较是在工作ORB-SLAM中给出的。

ORBSLAM系列|ORB-SLAM3论文精读(一) -汽车开发者社区


A.视觉SLAM


单目SLAM最初在MonoSLAM中使用扩展卡尔曼滤波(EKF)和Shi-Tomasi角点来解决,这些角点在后续图像上通过相关性进行引导搜索。通过确保被使用的特征匹配是一致的技术,中期数据关联得到显著改进,从而实现手持视觉SLAM。


相比之下,基于关键帧的方法仅使用少数选定的帧来估计地图,丢弃来自中间帧的信息。这允许以关键帧帧率运行更耗时、但更精确的BA优化。最具代表性的系统是PTAM,它将相机跟踪和建图分为两个并行的线程。在相同的计算代价下,基于关键帧的技术比基于滤波的技术更为精确,这成为视觉SLAM和VO中的黄金标准。工作Scale drift-aware large scale monocular SLAM中使用滑动窗口BA以及工作Double window optimisation for constant time visual SLAM中使用双窗口优化和共视图来实现大尺度单目SLAM。


基于这些思想,ORB-SLAM使用ORB特征,其描述子提供短期和中期数据关联,构建共视图以限制跟踪和建图的复杂度,并且使用词袋库DBoW2执行回环和重定位以实现长期数据关联。迄今为止,这是唯一集成三种类型数据关联的SLAM系统,我们认为这是该系统具有卓越精度的关键所在。在这项工作中,我们使用新的地图集系统提高了其在纯视觉SLAM系统中的鲁棒性,该地图集系统在跟踪丢失时启动一张新的地图,并且使用具有改进召回率的新位置识别方法提高了在回环场景中的精度。


直接法不需要提取特征,但是直接使用图像中像素强度,并且通过最小化光度误差来估计运动和结构。LSD-SLAM能够使用高梯度的像素构建大尺度半稠密地图。然而,地图估计被缩减为位姿图(PG)优化,从而实现比PTAM和ORB-SLAM更低的精度。混合系统SVO提取FAST特征,使用直接法来跟踪特征和任何帧到帧的具有非零强度梯度的像素,并且使用重投影误差来优化相机轨迹和三维结构。SVO非常高效,但是作为一种纯VO方法,它仅执行短期数据关联,这限制了它的精度。直接稀疏里程计(DSO)能够在角点检测器执行效果较差的情况下计算精确的相机位姿,这增强了对于弱纹理区域或者图像模糊的鲁棒性。它引入光度BA,同时优化七个最新关键帧组成的窗口和地图点的逆深度。该工作的扩展包括双目、使用特征和DBoW2回环以及视觉-惯性里程计。直接稀疏建图DSM在直接法中引入地图复用的思想,证明了中期数据关联的重要性。在所有的情况中,缺乏集成短期、中期和长期数据关联将导致精度低于我们所提出的系统。


B.视觉-惯性SLAM


视觉和惯性传感器的组合为弱纹理、运动模糊和遮挡提供鲁棒性,并且在单目系统情况中使得尺度可观。


紧耦合方法的研究可以追溯到MSCKF,其中特征边缘化避免了EKF计算代价随着特征数量呈平方增长。最初的系统在工作High-precision, consistent EKF-based visual-inertial odometry中完善,并且在工作A comparative analysis of tightly-coupled monocular, binocular, and stereo VINS和Alternating-stereo VINS: Observability analysis and performance evaluation中扩展成双目版本。首个基于关键帧和BA的紧耦合视觉-惯性里程计系统为OKVIS,它还能够使用的单目和双目视觉。这些系统依赖于特征,而ROVIO使用直接数据关联将光度误差传给EKF。


ORB-SLAM-VI首次提出一种能够通过短期、中期和长期数据关联来复用地图的视觉-惯性SLAM系统,它将数据关联用于基于IMU预积分的精确局部视觉-惯性BA中。然而,它的IMU初始化技术速度太慢,需要耗费15秒,这降低了鲁棒性和精度。工作Closed-form solution of visual-inertial structure from motion和工作Simultaneous state initialization and gyroscope bias calibration in visual inertial aided navigation中提出了更快速的初始化技术,它基于闭式解来联合获取尺度、重力、加速度计偏置和初始速度,以及视觉特征的深度。至关重要的是,这种初始化技术忽略了IMU噪声性质,并且最小化空间中点的三维误差,而不是它们的重投影误差,这在基于特征的计算机视觉中是黄金标准。我们先前的工作表明,这将导致巨大的不可预测的误差。


VINS-Mono是一个非常精确且鲁棒的单目-惯性里程计系统,具有使用DBoW2和4自由度位姿图优化的回环和地图合并。该系统使用Lucas-Kanade跟踪器执行特征跟踪,这比描述子匹配稍微更为鲁棒。在VINS-Fusion中,该系统被扩展成双目和双目-惯性。


VI-DSO将DSO扩展成视觉-惯性里程计,它提出一种BA,将惯性测量与选定的高梯度像素的光度误差结合,从而提供非常高的精度。由于成功地利用来自高梯度像素的信息,因此还提高了对于弱纹理场景区域的鲁棒性。它们的初始化方法依赖于视觉-惯性BA,其耗费20-30秒收敛到1%尺度误差内。


最新的BASALT是一种双目-惯性里程计系统,它从视觉-惯性里程计中提取非线性因子从而在BA中使用它们,并且匹配ORB特征以回环,从而实现非常卓越的精度。Kimera是一种新颖的优秀度量-语义建图系统,但是其度量部分包括双目-惯性里程计、使用DBoW2的回环和位姿图优化,实现了与VIN-Fusion相似的精度。


在本工作中,我们基于ORB-SLAM-VI构建系统,并且将其扩展成双目-惯性SLAM。我们提出一种新型的基于最大后验(MAP)估计的快速初始化方法,它正确地考虑了视觉和惯性传感器的不确定性,并且在2秒内以5%误差估计真实尺度,在15s内收敛到1%尺度误差。上述所有其它系统为视觉-惯性里程计方法,它们中的一些使用回环进行扩展,并且缺少使用中期数据关联的功能。我们相信中期数据关联与我们快速且精确的初始化结合到一起,成为我们系统始终获得更好精度的关键所在,即使在没有回环的序列中也是如此。


C.多地图SLAM


工作Unified loop closing and recovery for real time monocular SLAM在滤波方法中首次提出通过地图创建和融合为探索过程中跟踪丢失提高鲁棒性的思想。最初的基于关键帧的多地图系统之一为工作Video-rate localization in multiple maps for wearable augmented reality,但是地图初始化是手动的,并且系统不能够合并或者关联不同的子地图。多地图功能已经被研究作为协作建图系统的一个组成部分,其包括若干个执行建图的对象和一个仅接收信息的中央服务器,或者具有双向信息流,如C2TAM。MOARSLAM提出一种鲁棒的无状态客户端-服务器框架,用于协作的多装置SLAM,但是其主要关注软件框架,并且没有给出精确的结果。


最近,CCM-SLAM提出一种基于ORB-SLAM的分布式多地图系统,用于具有双向信息流的多台无人机。它们着重于克服有限带宽和分布式处理的挑战,而本文系统着重于精度和鲁棒性,从而在EuRoC数据集上明显取得更好的结果。SLAMM还提出ORB-SLAM2的多地图扩展,但是将子图保持为单独的个体,而本文系统执行无缝的地图合并,从而构建更精确的全局地图。


VINS-Mono是一种具有回环和多地图功能的视觉里程计系统,其依赖于位置识别库DBoW2。我们的实验表明,由于能够使用中期数据关联,因此ORB-SLAM3在EuRoC数据集上的单目-惯性单段建图操作中的精度比VINS-Mono高2.6倍。我们的地图集系统也是基于DBoW2构建的,但是提出了一种新型的更高召回率的位置识别技术,并且使用局部BA执行更清晰且精确的地图合并,从而在EuRoC上多段建图操作中的精度比VINS-Mono高3.2倍。

系统概述

ORB-SLAM3是基于ORB-SLAM2和ORB-SLAM-VI构建的。它是一个完整的多地图和多段建图系统,能够使用单目、双目或者RGB-D传感器工作在纯视觉或者视觉-惯性模式下,并且支持针孔和鱼眼相机模型。

ORBSLAM系列|ORB-SLAM3论文精读(一) -汽车开发者社区

图1展示了主要的系统组件,它们与ORB-SLAM2的那些组件相似,具有一些创新点,其总结如下:

1)地图集是由一组断开连接的地图组成的多地图表示。跟踪线程定位传入的图像帧所在的地图为活跃地图,并且它通过局部建图线程使用新关键帧进行不断优化和增长。我们将地图集中的其它地图称为非活跃地图。该系统构建唯一的关键帧DBoW2数据库,用于重定位、回环和地图合并。

2)跟踪线程处理传感器信息,并且通过最小化匹配地图特征的重投影误差来实时地计算当前帧相对于活跃地图的位姿。它还决定当前帧是否为关键帧。在视觉-惯性模式下,通过在优化中包含惯性残差来估计载体速度和IMU偏置。当跟踪丢失时,跟踪线程尝试在地图集的所有地图中重定位当前帧。如果重定位成功,就恢复跟踪,并且切换活跃地图(如果需要)。否则,在一段时间后,将活跃地图存储为非活跃地图,并且重新初始化新的活跃地图。

3)局部建图线程将关键帧和地图点加入到活跃地图中,删除冗余的关键帧和地图点,并且使用视觉或者视觉-惯性BA优化地图,其运行在当前帧附近的关键帧组成的局部窗口内。此外,在惯性情况下,通过局部建图线程使用我们新颖的MAP估计技术来初始化和优化IMU参数。

4)回环和地图合并线程以关键帧帧率检测活跃地图和整个地图集之间的共同区域。如果共同区域属于活跃地图,它就执行回环校正;如果共同区域属于不同的地图(非活跃地图),则将两张地图无缝地合并成一张地图,合并完成的地图成为活跃地图。在回环校正后,在一个独立线程中启动全局BA来进一步优化地图,而不影响实时性能。

相机模型

ORB-SLAM在所有系统组件中都采用针孔相机模型。我们的目标是通过将与相机模型相关的所有性质和函数(投影和反投影函数、雅可比等)提取到单独的模块中,从而从整个SLAM流程中抽象出相机模型。这允许我们的系统通过提供对应的相机模块来使用任意的相机模型。在ORB-SLAM3库中,除了针孔相机模型外,我们还提供了Kannala-Brandt鱼眼模型。

由于大多数主流的计算机视觉算法采用针孔相机模型,很多SLAM系统要么校正整张图像,要么校正特征坐标,从而在理想的平面视网膜中工作。然而,这种方法对于鱼眼镜头是有问题的,鱼眼镜头能够达到或者超过180°的视野(FOV)。图像校正不是可选的,因为图像边缘处的物体被放大,而图像中心处的物体分辨率降低,这妨碍了特征匹配。校正特征坐标需要使用小于180°的FOV,并且给很多计算机视觉算法带来麻烦,这些算法假设沿着图像具有均匀的重投影误差,而这在校正后的鱼眼图像中远非如此。这迫使剪裁出图像的外围部分,失去了大FOV的优势:对环境更快的建图和对于遮挡更好的鲁棒性。接下来,本文将讨论如何克服这些困难。


A.重定位


一个鲁棒的SLAM系统需要在跟踪失败时重定位相机的能力。ORB-SLAM通过基于ePnP算法设置PnP求解器来求解重定位问题,该算法假设所有公式中都已经对针孔相机模型标定。为了改进我们的方法,我们需要一个与使用的相机模型无关的PnP算法。因此,我们采用了最大似然PnP算法(MLPnP),由于它使用投影射线作为输入,因此它从相机模型中完全解耦出来。相机模型仅需要提供从像素到投影射线的反投影函数,就能够使用重定位。


B.未校正的双目SLAM


大多数双目SLAM系统假设双目帧已经被校正,即两张图像使用相同的焦距转换为针孔投影,其图像平面是共面的,并且与水平极线对齐,从而一张图像中的特征能够通过在另一张图像上搜索相同行来容易地进行匹配。然而,双目图像经过校正这个假设是非常受限的,并且在很多应用中是既不合适,也不可行的。例如,校正不同的双目相机或者双目鱼眼相机将需要严重的图像裁剪,从而失去大FOV的优势。


因此,本文系统不依赖于图像校正,将双目配置考虑为两个单目相机:


1)两个相机之间具有恒定的相对SE(3)变换;


2)具有观测到场景相同部分的公共图像区域。


这些约束允许我们在三角化新路标和BA优化时,通过引入这些信息来有效地估计地图的尺度。根据这一想法,我们的SLAM流程估计6自由度刚体位姿,其参考坐标系能够位于其中一个相机或者IMU传感器上,并且表示相机相对于刚体的位姿。


如果两个相机具有重叠区域,在该区域内我们有双目观测,我们就能够在首次观测到它们时三角化具有真实尺度的路标。两张图像的其余部分仍然有很多相关信息,这些信息在SLAM流程中被用作单目信息。在这些区域内首次观测到的特征从多个视图进行三角化,就和单目的情况一样。


文章转载自公众号:自动驾驶专栏

分类
收藏
回复
举报
回复
相关推荐