【视觉SLAM】ORB-SLAM2: an Open-Source SLAM System for Monocular, Ste

举报
振华OPPO 发表于 2022/11/30 20:35:13 2022/11/30
【摘要】 R Mur-Artal and J D Tardos, ORB-SLAM2: an Open-Source SLAM System for Monocular Stereo and RGB-D Cameras[J], 2016.先读Abstract和Introduction,再看Conclusion,觉得方法新颖且与自己研究内容相关,再看Related Work、Method及Experim...

R Mur-Artal and J D Tardos, ORB-SLAM2: an Open-Source SLAM System for Monocular Stereo and RGB-D Cameras[J], 2016.

先读Abstract和Introduction,再看Conclusion,
觉得方法新颖且与自己研究内容相关,再看Related Work、Method及Experiment。
一篇英文顶会论文/一区期刊大概2h读完。翻成中文则减半。

摘要

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

🌳一、介绍

SLAM过去两年已经在计算机视觉和机器人社区成为一个热门话题,近期已经收到了高科技公司的注意。SLAM技术创建未知环境的地图并且通过鲁棒的实时操作定位地图中的传感器。根据传感器种类的不同,相机价格便宜,而且提供丰富的环境信息使得定位更加的鲁棒和准确。因此,以相机为主传感器的视觉SLAM的解决方案现如今是最主要的兴趣点。定位是SLAM系统中一个关键模块用来闭环(当传感器返回一个地图区域,修正探索中的累积误差)和相机跟踪丢失后重定位,或者在系统重新初始化时。
视觉SLAM可以只用一个单目相机实现,单目相机是最便宜而且最小的传感器设备。但是无法从单个相机中观察到深度信息,地图的尺度和估计的轨迹是未知的。另外,系统自举需要多视图和滤波技术来生成初始地图,因为它不能从第一帧开始三角化。最后不能不提的是,单目SLAM受尺度漂移,如果在探索任务中执行纯旋转,可能会失败。通过双目、RGB-D相机,所有这些问题都能得到解决,并提供了最可靠的视觉SLAM解决方案。
在本文中,我们以单目ORB-SLAM为例,提出了ORB-SLAM2,贡献如下:

  • 第一个开源的单目、双目和RGB-D的SLAM系统,包括闭环、重定位和地图重用。
  • 我们的RGB-D实验结果显示通过使用BA,我们比基于ICP的最先进方法精度还要高,而且光度和深度误差最小化。
  • 通过使用远近的立体点和单目观察,我们的双目实验结果比最先进的直接法双目SLAM还要准确。
  • 一个轻量级的定位模块,当地图失效时可以重新有效利用地图。

图1显示ORB-SLAM2根据双目和RGB-D的输入的输出示例。双目示例显示KITTI数据集上序列00的最后的轨迹和稀疏重建结果。这是一个城市序列,ORB-SLAM2可以成功检测到多个闭环。RGB-D示例显示在TUM RGB-D数据集上fr1_room序列估计的关键帧位姿,通过从估计的关键帧位姿反向投影传感器的深度图得到一个稠密的点云。请注意,我们的SLAM不执行KinectFusion或类似的融合,但良好的清晰度表明关键帧位姿的准确性,更多实例可以看附录视频。

在这里插入图片描述

在这里插入图片描述

这篇论文的其余部分,我们将在第二部分介绍相关方面的工作,第三部分介绍我们的系统,第四部分展示评估结果,最后第五部分以结论结尾。

非常漂亮的Abstract,可以用来作为论文开头的模板,没有一句废话,却已经让人迫不及待地去了解详细内容了,什么叫里程碑论文啊!如果贡献里面,你也可以写“首个”,那发A类就不是问题了。

🌾二、相关工作

在本节中,我们将讨论双目和RGBD SLAM的相关工作。我们的讨论以及第四节中的评估仅集中于SLAM方法。

A. Stereo SLAM

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

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

Engel等人最近的Stereo LSD-SLAM是一种半密集直接方法,可最大限度地减少高梯度图像区域中的光度误差。该方法不依赖于特征,预计对运动模糊或纹理较差的环境更为鲁棒。然而,作为一种直接的方法,它的性能可能会因卷帘式快门或非朗伯反射等未建模效果而严重下降。

B. RGB-D SLAM

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

可能第一个流行的开源系统是Endres等人的RGB-D SLAM。这是一个基于特征的系统,其前端通过特征匹配和ICP计算帧到帧的运动。后端使用来自启发式搜索的循环闭合约束执行位姿图优化。类似地,Kerl等人的DVO-SLAM的后端。优化位姿图,其中关键帧到关键帧的约束是根据视觉里程表计算的,该视觉里程表可以最小化光度和深度误差。DVO-SLAM还以启发式方式在所有先前帧中搜索循环候选,而不是依赖于位置识别。

Whelan等人最近的ElasticFusion构建了一个基于表面的环境地图。这是一种以贴图为中心的方法,它会忘记姿势并执行循环闭合,将非刚性变形应用于贴图,而不是标准姿势图优化。该系统的稠密重建和定位精度令人印象深刻,但当前的实现仅限于房间大小的地图,因为复杂性随着地图中的曲面数量而增加。

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

介绍前人的相关工作,这里选取工作是有讲究的,欲抑先扬,先讲它的优点,再说它的不足,然后说自己的系统就可以弥补它的不足。

💐三、ORB-SLAM2

用于双目和RGB-D相机的ORB-SLAM2基于我们的基于单目特征的ORB-SLAM,为了方便读者,这里对其主要组件进行了总结。系统的总体概述如图2所示。该系统有三个主要的并行线程:

  1. 通过跟踪线程来定位相机每帧,与局部地图进行特征匹配,并只应用运动BA的重投影误差最小化;
  2. 通过局部建图线程来管理局部地图并对其进行优化,执行局部BA;
  3. 闭环检测线程以检测大环路并通过执行位姿图优化来校正累积漂移。该线程启动第四个线程,在位姿图优化后执行完全BA,以计算最佳结构和运动解。

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

该系统同样使用ORB特征进行跟踪、建图和位置识别任务。这些功能非常强大并对相机自动增益和自动曝光以及照明变化呈现良好的不变性。此外,它们提取和匹配速度快,允许实时操作,并在单词位置识别中显示出良好的准确率和召回率。

在本节的其余部分,我们将介绍如何利用双目/深度信息以及系统的哪些元素受到影响。关于每个系统块的详细描述,我们请读者参阅我们的单目SLAM。

在这里插入图片描述

A. Monocular , Close Stereo and Far Stereo Keypoints

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

立体关键点由三个坐标xs=(uL,vL,uR)定义,分别是左图像上的坐标和右图像中的水平坐标。对于立体相机,我们在两个图像中提取ORB,对于每个左ORB,我们在右图像中搜索匹配。这可以非常有效地实现,假设立体校正图像,使得对极线是水平的。然后,我们使用左ORB的坐标和右匹配的水平坐标生成立体关键点,通过块相关对其进行亚像素细化。对于RGB-D相机,我们提取RGB图像上的ORB特征,如Strasdat等人所提出的,对于具有坐标(uL,vL)的每个特征,我们将其深度值D转换为虚拟右坐标:
在这里插入图片描述

其中,fx是水平焦距,b是结构光投影仪和红外相机之间的基线,对于Kinect和华硕Xion,我们近似为8cm。

深度传感器的不确定性由虚拟右坐标的不确定性表示。通过这种方式,来自双目和RGB-D输入的特征由系统的其余部分同等处理。

如图所示,如果立体关键点的相关深度小于立体/RGB-D基线的40倍,则将其分类为接近,否则将其分类。当深度被精确估计并提供缩放、平移和旋转信息时,可以从一帧中安全地对闭合关键点进行三角测量。另一方面,远点提供了精确的旋转信息,但尺度和平移信息较弱。当多个视图支持远点时,我们会对它们进行三角测量。

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

B. System Bootstrapping

使用立体或RGB-D相机的主要好处之一是,通过仅从一帧中获取深度信息,我们不需要像单目情况下那样从运动初始化中获得特定的结构。在系统启动时,我们使用第一帧创建一个关键帧,将其姿势设置为原点,并从所有立体关键点创建初始贴图。

C. Bundle Adjustment with Monocular and Stereo Constraints
我们的系统执行BA以优化跟踪线程中的相机姿势(仅运动BA),优化局部建图线程中的关键帧和点的局部窗口(局部BA),并在闭环后优化所有关键帧和点子(完整BA)。我们使用在g2o中实现的Levenberg–Marquardt方法。

D. Loop Closing and Full BA

环路闭合分两步进行,首先必须检测和验证环路,然后对环路进行校正,优化位姿图。与可能发生尺度漂移的单目ORB SLAM相比,立体/深度信息使尺度可观察,几何验证和姿态图优化不再需要处理尺度漂移,而是基于刚体变换而不是相似性。

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

E. Keyframe Insertion
ORB-SLAM2遵循单目ORB-SLAM中引入的策略,即经常插入关键帧,然后剔除多余的关键帧。近立体点和远立体点之间的区别允许我们引入关键帧插入的新条件,这在场景的很大一部分远离立体传感器的具有挑战性的环境中至关重要,如图3所示。在这种环境中,我们需要有足够数量的近点来准确估计平移,因此,如果跟踪的近点的数量下降到τt以下,并且帧可以创建至少τc个新的近立体点,系统将插入一个新的关键帧。

我们根据经验发现,τt=100和τc=70在我们的所有实验中都很好。
在这里插入图片描述

F . Localization Mode

我们结合了一种本地化模式,只要环境没有重大变化,该模式可以用于在地图绘制良好的区域进行轻量级长期本地化。

在这种模式下,局部建图和闭环线程被禁用,并且如果需要,通过使用重定位的跟踪来连续定位相机。在这种模式下,跟踪利用视觉里程计匹配和地图点匹配。视觉里程计匹配是当前帧中的ORB与根据立体/深度信息在前一帧中创建的3D点之间的匹配。这些匹配使定位对未建图区域具有鲁棒性,但漂移可能会累积。地图点匹配确保了对现有地图的无漂移定位。该模式在随附视频中演示。

✨四、评估

我们在三个流行的数据集中评估了ORB-SLAM2,并与其他最先进的SLAM系统进行了比较,始终使用原始作者发布的结果和文献中的标准评估指标。我们已经在一台具有16Gb RAM的Intel Core i7-4790台式计算机上运行了ORB-SLAM2。为了解释多线程系统的不确定性,我们将每个序列运行5次,并显示估计轨迹精度的中值结果。我们的开源实现包括在所有这些数据集中运行系统的校准和说明。

注意作者做实验的方式,在3个主流数据集上分别实验,并且每个序列跑5次取中值而非平均值。和别人方法对比时,用的是他们论文中的指标,非常具有说服力。

A. KITTI Dataset

KITTI数据集包含从城市和公路环境中的汽车记录的立体序列。双目传感器具有∼54cm基线,工作频率为10Hz,校正后分辨率为1240×376像素。序列00、02、05、06、07和09包含环路。我们的ORB-SLAM2检测所有环路,并能够在之后重用其地图,除了序列09,其中闭环在序列末尾的极少数帧中发生。表I显示了11个训练序列的结果,与最先进的双目LSD-SLAM相比,这些训练序列具有公共地面真实性,据我们所知,这是唯一一个显示所有序列的详细结果的双目SLAM。我们使用了两种不同的度量,[3]中提出的绝对平移RMSE标签,以及[2]中提出的平均相对平移trel和旋转相关误差。我们的系统在大多数序列中都优于Stereo LSD-SLAM,并且总体上实现了低于1%的相对误差。序列01(见图3)是训练集中唯一的高速序列,变换效果稍差。
在这里插入图片描述

由于高速和低帧速率,很难在该序列中估计平移,因为可以跟踪的近点很少。然而,方位可以精确估计,每100米误差为0.21度,因为有许多远点可以长期跟踪。图4显示了估计轨迹的一些示例。

在这里插入图片描述

与[1]中给出的单目结果相比,所提出的立体版本能够处理单目系统出现故障的序列01。在这个高速公路序列中,见图3,只有几帧可以看到近点。立体版本仅从一个立体关键帧创建点的能力,而不延迟初始化单目图像的能力,包括查找两个关键帧之间的匹配,在该序列中至关重要,以避免丢失跟踪。此外,立体系统用公制比例尺估计地图和轨迹,并且不会受到比例尺漂移的影响,如图5所示。

在这里插入图片描述

B. EuRoC Dataset

最近的EuRoC数据集包含11个立体序列,这些序列是从一架微型飞行器(MAV)在两个不同的房间和一个大型工业环境中飞行记录的。立体声传感器具有∼11cm基线,提供20Hz的WVGA图像。根据MAV的速度、照明和场景纹理,将序列分为简单、中等和困难。在所有序列中,MAV重新访问环境,ORB-SLAM2能够重用其地图,必要时闭环。表II显示了所有序列的ORB-SLAM2的绝对翻译RMSE,与Stereo LSDSLAM相比,结果如[11]所示。ORB-SLAM2实现了几厘米的定位精度,并且比立体LSD-SLAM更精确。由于严重的运动模糊,我们的跟踪在V2 03的某些部分很困难。如[22]所示,可以使用IMU信息处理该序列。图6显示了与地面真实情况比较的计算轨迹示例。

在这里插入图片描述
在这里插入图片描述

C. TUM RGB-D Dataset

TUM RGB-D数据集包含来自RGB-D传感器的室内序列,这些序列分为几个类别,以评估不同纹理、照明和结构条件下的物体重建和SLAM/里程测量方法。我们在序列子集中显示了结果,其中大多数RGB-D方法通常被评估。在表III中,我们将我们的准确性与以下最先进的方法进行了比较:ElasticFusion[15]、Kintinous[12]、DVO-SLAM[14]和RGB-D SLAM[13]。

在这里插入图片描述

我们的方法是唯一一种基于BA的方法,在大多数序列中优于其他方法。正如我们在[1]中已经注意到的RGB-D SLAM结果,freiburg2序列的depthmap具有4%的标度偏差,可能来自于错误校准,我们已经在运行中进行了补偿,并可以部分解释我们显著更好的结果。图7显示了从四个序列中计算出的关键帧姿态中反向投影传感器深度图所产生的点云。桌子和海报的清晰轮廓和笔直轮廓证明了我们方法的高精度本地化。
在这里插入图片描述

D. Timing Results

为了完善本系统的评估,我们在表IV中列出了三个不同的图像分辨率和传感器的序列的计时结果。显示了每个线程任务的平均值和两个标准偏差范围。

由于这些序列包含一个单环路,整个BA和闭环结束线程的一些任务只执行一次,并且只报告一次时间测量。每帧的平均跟踪时间低于每个序列的相机帧速率的倒数,这意味着我们的系统能够实时工作。由于立体图像中的ORB提取是并行的,可以看出,在V2 02的立体WVGA图像中提取1000个ORB特征类似于在fr3办公室的单个VGA图像通道中提取相同数量的特征。

环路中关键帧的数量显示为与闭环相关的时间的参考。虽然KITTI 07中的闭环包含更多的关键帧,但为室内fr3办公室构建的可见性图更密集,因此环路融合、位姿图优化和全BA任务更昂贵。covisibility图的更高密度使得局部地图包含更多的关键帧和点,因此局部地图跟踪和局部BA也更昂贵。

在这里插入图片描述

不仅在数据集上测试位姿估计的准确性,还将各线程中各个部分的运行时间展示,这才是开源代码的自信!

🍉五. 结论

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

与最先进技术的比较表明,ORB-SLAM2在大多数情况下都达到了最高的精度。在KITTI视觉里程计基准ORB-SLAM2是目前最好的立体SLAM解决方案。至关重要的是,与近年来蓬勃发展的立体视觉里程计方法相比,ORB-SLAM2在已经绘制的区域实现了零漂移定位。

令人惊讶的是,我们的RGB-D结果表明,如果需要最精确的相机定位,BA比直接法或ICP执行得更好,具有计算成本更低、不需要GPU处理实时运行的额外优势。

我们已经发布了系统的源代码,并附有示例和说明,以便其他研究人员可以轻松使用。据我们所知,ORB-SLAM2是第一个开源的可以使用单目、双目和RGB-D输入的视觉SLAM系统,此外,我们的源代码包含一个使用单目相机的增强现实应用程序2的示例,以展示我们的解决方案的潜力。

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

总结了本系统提出的双目、RGB-D SLAM方法的实验效果,并且开源,还将方案用于AR。然后展望未来工作,可以看到每一个idea放到现在看还是很前沿的内容。

在这里插入图片描述

还有你错过的往期精彩
Bags of Binary Words for Fast Place Recognition in Image Sequences
ORB-SLAM: Tracking and Mapping Recognizable Features
Incremental Dense Semantic Stereo Fusion for Large-Scale Semantic Scene Reconstruction
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。