Visual and Visual-Inertial SLAM: State of the Art, Classification,and Experimental Benchmarking
作者:Myriam Servières, Valérie Renaudin, Alexis Dupuis, and Nicolas Antigny
论文地址: https://www.hindawi.com/journals/js/2021/2054828/
摘要:SLAM技术现在被许多应用广泛采用,研究人员已经就这个领域产生了非常多的文献。随着智能设备的出现,嵌入摄像头、惯性测量单元、视觉 SLAM (vSLAM) 和视觉-惯性 SLAM (viSLAM) 正在实现新颖的大众应用。在这种情况下,本文对现有的 SLAM 方法进行了回顾,重点是 vSLAM/viSLAM,无论是在基础层面还是实验层面。从现有 vSLAM 和 viSLAM 设计的结构化概述开始,并继续对十几种主要的最先进方法进行新分类。利用 viSLAM 发展的时间顺序突出了历史里程碑,并将更新的方法归类为一个分类。最后,在城市环境中使用手持设备进行行人位姿估计的用例进行SLAM 的性能评估。使用 EuRoC MAV 数据集和与城市行人导航对应的新的视觉-惯性数据集,比较了五种开源方法 Vins-Mono、ROVIO、ORB-SLAM2、DSO 和 LSD-SLAM 的性能。对计算结果的详细分析确定了每种方法的优点和缺点。使用两个数据集进行测试结果表明,总的来说,ORB-SLAM2 似乎是解决城市行人导航挑战中最有前途的算法。
I 引言
SLAM 问题自 1980 年代提出以来一直是最活跃的研究课题之一 [1, 2]。SLAM 的目标是在重建周围环境地图的同时获得设备路径的全局一致估计。这两个核心任务之间的耦合很快被发现是 SLAM 方法的真正优势。这种二元性也促进了它的多样化。通过赋予地图或定位的重要性,SLAM 已从唯一的机器人领域扩展,成为解决许多不同性质问题的参考:从微型飞行器 [3] 到智能手机上的增强现实 (AR) [ 4, 5]。
对现有的 SLAM 算法(实时、廉价的传感器)增加了更高的期望,从而导致了 SLAM 的新研究领域。仅使用相机的视觉 SLAM (vSLAM) 和使用惯性IMU的视觉-惯性 SLAM (viSLAM) 很好地说明了这些新的 SLAM 策略。在过去的几十年中,vSLAM 可能吸引了大部分研究。相机捕获有关观察环境的大量数据,可以提取这些数据并用于 SLAM 处理。这些相机也是最便宜的传感器之一。它们出现在当今大多数智能设备上,支持针对普通大众的新型应用程序的持续开发。
由于存在许多针对不同目标的不同 SLAM 方法,因此比较它们并不容易。为特定应用选择最适合的方法需要对 SLAM 的来龙去脉有很好的了解,以及对最先进的 SLAM 策略的全局理解。方法的性能取决于应用程序上下文和要解决的挑战。在全局范围内,SLAM 往往被错误地认为是一种万能的技术,但在现实生活中的实施会在计算限制、噪声抑制甚至用户友好性方面提出许多问题。这只是要克服的困难的一个选择。
本文旨在对现有的 vSLAM 和 viSLAM 方法进行分类。基于技术和面向应用的标准提出了横向分类。SLAM 方法的综述包含 vSLAM 和 viSLAM 发展的历史介绍。该分析是通过在两个不同的数据集上运行五种选定的最先进的 SLAM 方法来完成的,这些方法已被选择用来表示现有 SLAM 设计的多样性。这些方法最好地解决了城市环境中行人位姿估计的用例。该实验基准在著名的公共数据集 EuRoC [6] 上进行,并使用新的视觉惯性数据集完成,该数据集已通过法国南特市中心行人手持的智能设备采集(IRSTV 数据集)。
支持此综述和基准测试的主要动机是在城市行人移动性的特定背景下评估 vSLAM 和 viSLAM 方法,并在过程中使用增强现实 (AR)。在这种情况下,其结果应该有助于选择最合适的方法来估计手持智能设备的位姿。行人的手正在执行 6DoF 运动。寻找流行的基准数据集,发现这些运动与微型飞行器的运动相似。本文首先根据文献中方法的特征和它们对各种场景的鲁棒性(第 6 节)对来自文献的方法进行分类,以选择数据集。选择最接近行人移动性要求和环境的数据集与新引入的 IRSTV 行人数据集(第 7 节)进行比较。
第 2 节列出了 SLAM 方法的现有综述论文和基准,其方法与本工作中采用的方法不同。第 3 节描述了 SLAM 算法设计的第一级:硬件和通用软件选择。第 4 节描述了 vSLAM 算法的一般架构。它确定并详细说明了四个组成“块”。第 5 节概述了 SLAM 的历史,分为三个时期。第 6 节介绍了 vSLAM 和 viSLAM 方法的新分类。最后,第 7 节介绍了基于 EuRoC 和 IRSTV 数据集进行的实验基准测试,并对选定数据集上的 SLAM 结果进行详细分析。
2. 现有综述和基准
几篇综述论文简要介绍了特定时间 SLAM 的研究状况。各种论文提出了其他实验基准。它们告知了最著名的 SLAM 方法在给定数据集上的性能。本节列出了其中一些论文以进行理论基准测试。还列出了它们以支持将第 7 节中进行的实验基准与其他最先进的评估进行比较。
2.1. Survey Papers
在 [7] 中可以找到关于 vSLAM 算法的有趣且完整的综述,尽管有些陈旧。在 [8] 中,作者介绍了最先进的 SLAM 方法与 vSLAM 中最著名的算法之间的一些主要区别,并对 viSLAM 进行了非常有用的介绍。但是,作为综述,它主要提供了有关该主题的高级解释。可以在 [9] 中找到仅限于视觉里程计和视觉 SLAM 的概述。两篇了解 SLAM 研究起源的创始论文在 [10, 11] 中。他们还主要专注于视觉里程计和 viSLAM 的子部分。Durrant-Whyte 和 Bailey [12, 13] 的 2006 年论文提供了关于 viSLAM 的丰富教程。它们包含对 SLAM 问题数学公式详细介绍,但缺乏对最近 vSLAM 的更新介绍。Cadena 等人的论文 [14] 可以被认为是 viSLAM 领域的一本手册。最近的综述[15] 列出并分类了基于滤波和基于优化的 viSLAM 算法,并使用 EuRoc 数据集对它们进行了比较。发现这些论文都没有完整地介绍该领域,即从技术和历史琐事到实际性能比较。因此,本文的工作旨在促进新研究工作与 SLAM 的比较,并协助未来的位姿估计研究。现有技术提出了主要的 vSLAM 方法来解释设计和硬件选择对性能的影响。vSLAM/viSLAM 分类提供了许多现有实现的多样性的概述和比较。此外,随后在第 6 节中提出的分类将在其他评论中部分发现但不一定一起呈现的特征组合在一起。
2.2. Benchmarks
第一个基准 [16] 仅关注 RGB-D SLAM。另一个专门用于视觉惯性方法的基准 [3],在多个平台上评估紧耦合的视觉惯性里程计 (VIO) 和 viSLAM 方法,以模拟飞行无人机的实际应用。测试仅在 EuRoC 数据集(即中等室内环境)上执行。它通过比较六种最先进算法的准确性、内存和 CPU 使用率以及计算时间,为 viSLAM 算法提供了最完整的基准测试之一。S-MSCKF 论文 [17] 也比较了一些 viSLAM 方法。vSLAM 方法通常在不包含惯性数据的the new college [18]、TUM 单目 [19] 或 TUM RGB-D 数据集 [16] 上进行测试。EuRoC数据集不能用于比较最新的 viSLAM 方法。
3. 硬件和一般设计选择
SLAM 和视觉里程计 (VO) 在文献中通常是同义词,因为它们都是解决类似问题的潜在选择,但它们针对不同的目标。VO 专注于实时估计相机的路径。它是按顺序完成的,每次捕获一个新帧。VO 仅提供局部/相对估计,并通过窗口优化在线细化路径。相反,SLAM 提供了对设备路径的全局一致估计。回环检测通过执行集调整 (BA) 来减少地图和轨迹估计中的漂移。为简化起见,VO 和 vSLAM 的行为类似,直到关闭回环。VO 通常用作 vSLAM 的结构模块,它也借用了3D 重建中的SfM方法。
在不需要构建精确地图的应用中,可以想象纯 VO 和 vSLAM。
3.1. Hardware for Visual SLAM
传统上,vSLAM 使用三种硬件类型:单目相机、双目相机和 RGB-D 相机。viSLAM 最近引起了越来越多的兴趣,因为 IMU 和相机具有互补的功能。相机在慢动作中是准确的,并提供丰富的信息源,但它们的输出速率有限,导致单目设置中的尺度模糊,并且在运动模糊或光照变化的情况下可能缺乏鲁棒性。另一方面,IMU 以高采样率对环境变化具有鲁棒性,但它们仅提供载体运动测量,并且受到传感器偏差的影响,这会降低加速度和角速度记录。随着同时嵌入 IMU 和摄像头的智能设备的出现,许多面向大众的应用都采用了 viSLAM 算法。它们是一种很有前途的替代方案,可以结合多个来源来提高跟踪质量 [20]。
3.2. Filter-Based and Keyframe-Based Approaches
如图 1 所示,vSLAM 方法使用两种主要设计。第一个设计对应于基于滤波器的解决方案。该类别包含以下内容:
(i) 基于扩展卡尔曼滤波(EKF-) 的算法,例如 MonoSLAM [21]
(ii) 基于粒子滤波的方法,例如 FastSLAM 及其单目 SLAM 替代方案 [22, 23]
(iii) 基于多状态约束卡尔曼滤波(MSCKF-)的方法,例如 MSCKF 2.0 [24] 或 SMSCKF [17]。
图1当前 vSLAM 算法
传统上,基于滤波器的方法在状态向量中估计相机的位姿和地标的位置,这是可扩展性低效的潜在来源。Mourikis 和 Roumeliotis [25] 的 MSCKF 以及最近基于 EKF 的 VIO 解决方案,例如 ROVIO [26],使用限制性的地标剔除以仅保留状态向量中最近检测到的特征。这种解决问题的局部方法对于纯视觉里程计方法(VO 或 VIO)很常见。也可以将从状态向量中提取的 3D 特征保留在静态地图中。该地图被认为是静态的,因为它在整个 SLAM 过程中保持不变。建图是在定位之后而不是同时进行的。
第二种设计利用源自 PTAM [27] 的并行方法。这些方法基于关键帧。这些特征相对于关键帧进行参数化,从而能够在多个线程上并行运行不同的 SLAM 任务。基于关键帧的方法有时也称为“基于优化”的方法。它们在性能方面的主要优势之一是它们使用全局优化集束调整 (BA),而不是让滤波管理地图和位姿。全局优化能够纠正漂移效应,从而提高精度。然而,它们的计算成本很高,这就是为什么在 PTAM [27] 引入并行化各种 SLAM 任务的可能性之前,它们大多被离线使用。就像基于滤波器的方法已经演变成窗口方法以提高计算效率和可扩展性一样,基于关键帧的优化只能在关键帧的窗口上进行。关键帧也可以排列在图表中。根据它们的设计,可以使用不同的标准来定义窗口,而不是使用最后一个关键帧的简单时间窗口。优化也因优化标准而异。位姿图优化(或仅运动 BA)侧重于关键帧之间的位姿,而仅结构 BA 仅优化地图,BA 管理地图和位姿。然而,应该注意的是,vSLAM 方法也可以结合各种类型的优化设计:例如,在每个新的关键帧上进行闭环的全局 BA 和局部位姿图优化。正如图 1 总结的那样,设计的选择通常是由精度和速度之间的折衷决定的。
4. vSLAM算法的经典结构
四个主要块(图 2)描述了所有 vSLAM 算法的整体操作。它们如下:
(i) 输入搜索:在传感器测量中找到所需的信息;
(ii) 位姿跟踪:根据新的感知确定当前相机位姿;
(iii) 建图:在地图上添加一个地标;
(iv) 闭环:生成合适的地图和无漂移的定位。
图2 vSLAM 算法的四个主要模块
4.1. Input Search
在处理相机时,首先必须提取帧中包含的数据。一些方法使用像素强度来匹配不同的帧:它们被称为直接方法。在这种情况下,建图元素可以是像素图,即帧在 3D 图中重新定位,并且每个像素都有相应的深度(第 4.3 节)。其他方法提取每一帧中的特征(图像感兴趣区域中的点,即易于识别,直线或曲线段)并使用几何约束进行匹配。特征提取是计算机视觉的一个众所周知的领域。特征描述符通常使用强度梯度来检测感兴趣的区域。在这种情况下,建图元素可以是特征的 3D 位姿。著名的描述符包括 Harris [28]、SURF [29]、SIFT [30]、FAST [31] 和 ORB [32]。选择通常是由健壮性和计算效率之间的权衡决定的。最后这些方法称为间接方法或基于特征的方法。
直接和间接之间的选择与输入空间有关,而稠密和稀疏建图之间的选择取决于输出空间。构建的地图从稀疏到稠密。稀疏地图仅包含稀疏特征云(即,仅图像帧中像素的一小部分选定子集)并且是专注于轨迹正确性的典型 vSLAM 方法。稠密方法使用所有帧的信息(即,每个接收帧中的大部分或全部像素信息)来重建具有尽可能多的环境数据的地图。半稠密方法介于两者之间。它们是稠密的方法,其中仅将特定的感兴趣区域建图。基于此分析可以想象的四种输入/输出组合各有利弊。表 1 总结了可能的组合,给出了使用它们的算法示例。
表 1 根据第一个 vSLAM 模块的输入和输出方法进行分类
直接和间接之间的选择仍在争论中。特征描述符对图像噪声具有鲁棒性。最近的描述符对于几何失真可能是稳健的,甚至是不变的,例如,由于卷帘快门、自动曝光变化和镜头渐晕。直接方法允许使用每个帧中包含的所有信息。它们避免提取特征并更快地收集地图数据。使用基本相机(例如网络摄像头或智能手机)时,间接方法因其稳健性而受到青睐。然而,对于参数化良好的全局快门相机,直接方法可能是首选。稠密方法产生更有趣的环境 3D 重建,但它们通常需要在高端 GPU 上进行大量并行化。
间接/稀疏方法是最常用的方法。他们提取帧中的特征,并在确定坐标后将其添加为 3D 点以进行建图。直接/稠密(或半稠密)方法也很常见。观察到的像素由图像帧中的一个 3D 点表示,构成所有像素的深度图。为了保持建图期间在每一帧中观察到的内部一致性,添加了几何先验。它们使用对场景几何形状的假设来限制从同一帧看到的点的位置。直接/稀疏方法相当不常见,并且在没有先验数据的情况下使用光度误差最小化,以保持几何参数之间的相关性更轻,优化耗时更少,如 DSO [33]。间接/稠密方法很少见,并且不使用特征描述符。相反,他们将几何误差计算为与帧中观察到的光流场的偏差。
4.2. Pose Tracking
位姿跟踪块包括视觉里程计部分。根据两个连续帧中的特征对应是 2D 还是 3D,有三种不同的方式来执行视觉里程计 [11]。
(i) 2D-2D 对齐:特征匹配直接在连续帧上检测到的 2D 特征之间完成。这是纯VO方法的常见解决方案;
(ii) 2D-3D(有时称为 2.5D)对齐:给定世界中的一组 3D 点(来自先前帧的地图点)及其在新帧中相应的 2D 投影,估计相机的位姿。这个问题被称为视角点。单目 pureVO 方法只能使用 2.5D 对齐,方法是保留帧、动态三角特征,并在这些三角点被新传入数据剔除之前重用 3D 位姿。相反,vSLAM 受益于完整的地标地图可供选择进行重投影,因此 vSLAM 中通常使用 2.5D 对齐
(iii) 3D-3D 对齐:使用双目相机,可以直接确定新检测到的特征的 3D 位置,因此也可以考虑 3D-3D 对齐。然而,3D 特征位置估计通常会产生比 3D-2D 重投影误差更大的不确定性,这就是为什么很少使用这种方法的原因。
对于单目 EKF-SLAM,地图点的重投影用于校正阶段 [38]。MSCKF 沿着一条“路径”跟踪检测到的特征,该路径由特征的每次检测组成,从第一次检测到它消失的那一刻。然后,它使用路径完整的所有特征执行高斯-牛顿最小化 [24]。对于并行方法,VO 可以在每一帧之间完成,而地图重投影可以用于提高新关键帧位姿估计的准确性。计算新相机位姿的先决条件是匹配当前帧和前一帧之间的特征。自 2003 年 MonoSLAM [21] 以来,“自下而上”方法(尝试通过测试所有可能性来匹配特征)已被更有效的“自上而下”方法所取代。基本思想是计算前一帧特征周围的不确定性椭圆,其中应该对该特征进行新的观察,并在新帧上限制该椭圆中的搜索空间。跟踪这个椭圆需要对两帧之间的相机运动进行一些假设,例如,CVCAV 运动模型(恒定速度,恒定角速度)[21]。通常可以通过确定最小化每个图像中三角点的重投影误差的变换来找到解决方案。通过 2D-3D 对齐,我们搜索最小化 3D 地标到新 2D 帧的重投影误差的变换。
使用几何参数完成特征的 2D-2D 对齐,再通过使用对极几何(5 点或 8 点算法)计算基本矩阵并将其分解为平移向量 t 和旋转矩阵 R(使用奇异值分解),并形成帧到帧的变换 T。在直接方法中,给定一个点 p,其像素坐标是图像 I1 中的 x 和 I2 中的 x',x'(T,x) 是运动 T 的函数,真实运动 T* 应该最小化光度差 I1(x)-I2(x')。因此,通过最小化图像中的整体光度差异来找到 T* 的最佳估计,这是像素级光度误差的总和(在某些区域可能加权,例如,具有高梯度)。这称为直接图像对齐 (DIA),相当于直接方法的 2D-2D 对齐。
在处理稠密模型时,通常使用迭代最近点 (ICP) [39-41] 使用当前帧的深度图和 3D 稠密模型进行跟踪。请注意,基于稠密模型重投影的跟踪可以受益于预测能力,例如提高对遮挡的鲁棒性,以及对运动模糊的鲁棒处理。
4.3. Mapping
建图块是指完全初始化新检测到的特征位置所需的操作,以便它可以位于环境的 3D 重建中,即地图。实际上,在位姿跟踪部分,我们假设地图上存在 3D 定位地标。然而,单目相机不能仅使用一次观察来确定特征的深度,而是需要几帧。与相机轨迹类似,我们可能希望估计地标位置的不确定性,以在初始化后对其进行细化或将它们包含在全局优化中。使用仅“部分初始化”的地标也很有趣,因为它们已经包含一些信息,例如在 PTAM [27] 中。直接方法本身不映射特征,但它们将捕获帧的每个像素(像素深度图)建图。
建图块可以用 3D 地标参数化来描述。可以使用笛卡尔坐标 (XYZ),但这种选择会导致严重的非高斯概率密度函数,并且会降低准确性和一致性。或者,齐次点 (HP)、锚定齐次点 (AHP) 和逆深度参数化 (IDP) 可抑制非线性并缩短初始化周期 [42]。
如 [42] 中所述,IDP 通过 6 维向量对反距离点 p 进行编码,该向量包含对应于“锚点” p0=(x0,y0,z0) 的初始化时间的欧几里得光学中心,即仰角和方位角,它们定义了初始光线 (e,a) 的方向和从 p0 到 3D 点 p 的欧几里得距离 d 的倒数 p。IDP 点可以通过使用矢量 V=(u,v,w) 和距离 p=||v||/d 的光线方向直接编码来参数化,从而避免对角度(e,a)。这对应于 AHP 参数化(7 个参数)。HP 类似于 AHP,但不需要锚点;相反,使用相机的原点,导致只有 4 个参数 V 和 p。假设相机位置的不确定性很小,使用这种参数化可以获得类似的结果。[42] 中的研究详细介绍了这些参数化,并给出了它们对 EKF-SLAM 结果影响的基准。
三角化的 3D 点是通过将来自至少两帧的 2D 图像对应关系的反向投影光线相交来确定的。实际上,它们从未真正相交,这导致地标位置存在不确定性区域。可以通过两种方式减少这种不确定性。可以使用更多的观测值,或者来自更远距离的光线可以改善定位。理想情况下,光线应以 90° 角相交以到达一个小的不确定圆,而不是一个拉伸的椭圆。可以跳过帧,直到 3D 点位置的平均不确定性降低到给定阈值以下以缓解此问题。选定的帧通常对应于关键帧。另请注意,远距离点更难以准确建图。
建图过程与 DTAM [34] 等直接方法略有不同。目标是通过为每个像素分配深度值,将捕获的帧变成“深度图”。它再次基于多视图重建。对于关键帧中的每个像素,都会跟踪一条像素射线,它对应于该像素的可能深度范围。与该关键帧重叠的所有帧池用于“观察”像素射线。能量函数最小化,例如用于空间正则化的光度误差和先验数据的 L1 范数和估计实际像素深度。RGB-D vSLAM 方法的建图过程更直接,因为深度是直接感应的。在每一帧中输入深度图。然后通过融合所有深度图来详细阐述环境的 3D 模型。这可以通过重叠扫描或通过执行融合方法来完成。
许多 SLAM 方法使用与环境中检测到的特征相对应的稀疏表示来重建场景。稠密贴图更常见于双目和 RGB-D 相机或激光扫描。最近的一项工作 [43] 创建了稠密结构的稠密地图建模。
4.4. Loop Closure
闭环是 SLAM 的支柱。它通过将先前访问过的位置的位姿与当前位姿重新连接来消除自上次闭环以来累积的漂移。优化和增量方法比基于粒子滤波和卡尔曼滤波等更成功,因为它们在轨迹估计上向后传播闭环数据。关键帧图经典地用于在并行方法中使用集束调整 (BA) 来校正姿势。在 [44] 中,作者综合了 BA 的 vSLAM 方法技术,并在附录中给出了集束调整主要发展的历史概述。最先进的 SLAM 系统通常用[45] 解决非线性最小二乘问题或 [46] 来优化 BA 中基于图的非线性误差函数。但是这些系统使用一些最后的测量值来实时估计位姿。为了使用先前的优化并减少计算,增量求解器(例如 [47])以实时方法解决非线性估计问题。每次使用底层因子图的稀疏结构添加新的测量值时,它们都会更新环境的估计模型。
闭环是一个两步过程。首先,它从闭环检测开始,也称为位置识别。位置识别过程可以用来解决轨道丢失恢复的问题,一般采用闭环线程。大多数方法使用词袋方法将新关键帧与先前获取的视图数据库进行比较。“词袋”是指一组描述符,用于识别图像中的补丁,如 [48] 提出的 DBoW2 方法,基于 FAST [31] 和稍加修改的 BRIEF 特征 [49]。框架和数据库之间相似词的目录搜索非常快速和高效。一旦发现潜在的相似性,多个验证步骤会验证它是否对应于一个闭环。其次,闭环校正地图和位姿。计算两个视图之间的转换并融合 3D 点。然后使用(局部)BA 沿着整个位姿图和地图分布关闭回环所需的计算。闭环过程的计算量可能很大。它通常在专用线程中完成。
5. vSLAM 方法的历史回顾
图 3 显示了 vSLAM 发展的年表,包括三个时期。第一个时期,这里标记为“经典时期”,专注于解决 SLAM 问题。提出了几个数学公式,首次有效地应用了SLAM。第二个时期,SLAM 研究的重点转向了基于视觉的方法。提出了几种 vSLAM 设计,并将新硬件(例如 GPU、RGB-D 相机和双目相机)集成到该过程中。这个“vSLAM 时期”与 [14] 所说的 SLAM 的“算法分析”时期一致。研究了 vSLAM 的基本特性,例如收敛性和一致性。vSLAM 成为开发 SLAM 方法的核心。“第三时期”致力于提高vSLAM的鲁棒性。目标是提高 vSLAM 的可靠性,以支持越来越多的现实生活应用程序(例如,无人机)。特别是,这个“第三时期”引入了 viSLAM 方法。
图3 具有里程碑和三个时期的 vSLAM 历史概述:从 SLAM 问题到 vSLAM,vSLAM 算法发展,以及 viSLAM 的出现。
5.1. The Classical Age
定位的历史始于 1960 年卡尔曼滤波的引入 [50],并在 1979 年由 Mayeck 通过扩展卡尔曼滤波(EKF) [51] 扩展到非线性系统。SLAM 问题在 1980 年代提出 [1, 2, 52],并在 1995 年证明收敛 [53]。在此期间,制定了一些 SLAM 方法,主要使用激光遥测仪、从不同来源计算的里程计并使用 EKF 实现,例如 Smith 等人早在 1988 年提出的方法(EKF-SLAM [38])。直到 2003 年戴维森等人提出 MonoSLAM [21] 之前,单目相机的使用非常罕见。他们仅使用一个网络摄像头、一台通用计算机就实现了它,并且没有里程计测量。这是第一个使用单个低成本视觉传感器的实时 SLAM 方法。定位和建图在 3D 中执行,而 SLAM 基于 EKF。为了解决初始化新点的问题,Davison 等人提出了一种基于粒子滤波器的新方法,以减少新检测到的视觉地标的景深不确定性。MonoSLAM 为所谓的 vSLAM 铺平了道路。
每个 EKF-SLAM,甚至是著名的 MonoSLAM,都存在复杂性,地图特征的数量是二次的。为缓解该问题进行了许多尝试,尤其是通过将地图划分为多个部分并在优化过程中仅使用活动子地图。它们都没有提供令人满意的一致性与计算成本的折衷。2002 年,在 Montemerlo 等人 [23] 提出的 FastSLAM 中,使用 Rao-Blackwellized 粒子滤波器代替 EKF。这种方法有效地降低了对数缩放的复杂性,并成功转换为单目 vSLAM,即 Eade 和 Drummond 在 2006 年提出的可扩展单目 SLAM [22]。
5.2. The Golden Age of vSLAM
即使 FastSLAM 方法的最小复杂度也严重限制了 SLAM 应用,尤其是捕获大量特征的 vSLAM。vSLAM 的最大突破是 Klein 等人在 2007 年引入了具有并行跟踪和建图 (PTAM) 的基于关键帧的解决方案 [27]。在其他改进中,这种新方法实现了任务并行化、更好地利用全局优化、减少了跟踪漂移,更重要的是一种具有自由可扩展性的存储特征的新方法。如今,几乎所有 vSLAM 算法都基于 PTAM 的概念。
vSLAM 通过集成高效的闭环方法、全局优化和基于关键帧和剔除的内存管理,以及多线程并行化实时执行过程,变得越来越可靠。因此,可以提出新的设计和硬件选择,扩大 SLAM 的可能性。由用例需求驱动的 vSLAM 开发成为可能。在此期间提出的主要 vSLAM 实现在第 6 节中有详细说明。
5.3. The Third Age: Improving the Robustness
在第三个时期,vSLAM 继续发展,尤其是针对特定场景提高鲁棒性。相机和 IMU 的耦合(viSLAM)成为一个重要的研究课题。在 2010 年代初期,考虑了现有 vSLAM 方法中 IMU 数据的松耦合 [54]。但混合滤波器迅速演变为“紧耦合”视觉惯性方法的设计,现在在配备 IMU 和相机的系统中非常流行。紧耦合 viSLAM 的一个重要改进是 2007 年由 Mourikis 和 Roumeliotis [25] 提出的 MSCKF(多态约束卡尔曼滤波器),在 2013 年通过 MSCKF 2.0 改进 [24],引入了新版本的卡尔曼滤波器,该滤波器在一个外感受器中结合了超时观察更新。还创造了其他非凡的方法。其中包括使用线而不是点特征来避免与运动模糊相关的问题,自 PTAM 以来仍在使用。其他作品使用 RGB-D 相机并在应用 SLAM 算法之前过滤与移动物体相关的数据以提高鲁棒性 [55, 56]。其他方法使用基于光流的方法来检测和丢弃动态特征[57]来缓解动态问题。一个结合 SLAM 和深度学习技术的新研究领域正在这个领域上出现。深度学习技术检测移动物体并支持 ORB-SLAM2 算法来构建准确的地图并在动态环境中定位移动机器人 [58]。在 [59] 中,作者出于相同目的使用语义分割和 RGB-D 相机。Rosinol 等人和 Yang 等人 [60, 61] 发表了使用语义分割和 SLAM 算法的最新作品。
当可以多次访问同一地点时,MapLab [62] 的工作允许大规模合并不同会话的不同地图。输出地图可用于从一个会话到另一个会话。
也许最近最有趣的趋势之一是使用事件相机,即仿生相机,以避免运动模糊的影响。由于事件摄像机的使用还很晚,因此不包括在我们的分类中。然而,Rosinol 等人于 2018 年发表的结果。关于 Ultimate SLAM [63] 混合使用基于事件的相机和视觉惯性里程计似乎非常有前途,并渴望为 vSLAM 开辟新的可能性。
最近的一项工作 [64] 优化局部和全局集束调整给出了可用于 viSLAM 算法以提高全局一致性的有希望的结果。
6. 建议的分类方法
几种方法推动了我们的分类工作。6.1 节根据输入对 vSLAM 方法进行分组。第 6.2 节根据耦合级别对 viSLAM 方法进行分组。最后,第 6.3 节根据硬件要求、算法类型和实现特征比较了主要的 v/viSLAM 方法。它通过根据应用程序要求对 v/viSLAM 性能进行交叉分析来完成。
6.1. Classification of vSLAM Methods
vSLAM 方法根据输入的性质分为三类:基于特征的、直接的和基于 RGB-D 的,如第 4 节所述。由于基于 RGB-D 的方法涉及特定的硬件,因此被视为一个完整的类别。图 4 显示了选择一些主要识别方法的分类结果。
图4 主要 vSLAM 方法的时间顺序分类
6.1.1. Feature-Based Methods
单目 EKF-SLAM MonoSLAM [21] 和粒子滤波器可扩展单目 SLAM [22],即单目 FastSLAM,属于基于特征的方法。突破性的并行跟踪和建图 (PTAM) [27] 属于同一类别。提出了对 PTAM 的几种改编。例如,[65] 中介绍了边缘特征的使用。另一个重要的方法是 ORB-SLAM [37]。
6.1.2. Direct Methods
第一个重要的直接方法是 2011 年的稠密跟踪和建图 (DTAM) [34]。它是稠密单目 vSLAM 方法的先驱,并于 2015 年通过 MobileFusion [66] 应用于智能手机。从 2016 年开始,一种更新的方法是直接稀疏里程计 (DSO) [33]:一种视觉里程计方法,它提出直接输入处理但稀疏建图以进行更轻量的处理。另一个主要的 vSLAM 方法是 2013 年和 2017 年的半直接视觉里程计(SVO)[67],它结合了 VO 框架中直接和间接输入搜索的优点。2014 年的大规模直接单目 SLAM(LSD-SLAM)[35] 是最早使用半稠密建图来解决大型环境的方法之一。
6.1.3. RGB-D Methods
RGB-D 方法还包括几种主要算法。2011 年,KinectFusion [68] 旨在使用 Microsoft Kinect 构建干净、准确的环境 3D 重建。2013 年的稠密 vSLAM [69] 侧重于利用密集地图进行精确定位。2015 年的 ElasticFusion [70] 是一种“以地图为中心”的方法,它更侧重于构建的 3D 模型的几何精度,而不是位姿图的构建。
6.2. Classification of viSLAM Methods
直接和间接特征可用于对 viSLAM 方法进行分类。其他综述也根据它们是基于滤波器还是基于优化的方法对 viSLAM 方法进行了分类 [15]。但大多数主要的 viSLAM 方法实际上都是基于特征的方法,而 viSLAM 主要处理混合问题。因此,图 5 所示的分类是基于视觉和惯性数据的耦合水平。我们区分两个层次:松耦合和紧耦合。
图5 主要视觉-惯性 SLAM 方法的时间分类。
6.2.1. Loose Coupling
松耦合方法分别处理 IMU 和图像测量,并使用这两种信息来跟踪位姿。Weiss 等人 [54] 处理图像以计算连续位姿之间的 VO,然后将后者与惯性测量融合。还可以过滤 IMU 测量值以估计在基于图像的估计算法中融合的旋转。松耦合的视觉惯性里程计方法是 2014 年 [71] 提出的全局多传感器融合(磁力计、压力高度计、GPS 、激光扫描仪等)的一部分。松耦合的 IMU-相机融合早在 2000 年代初就已经开始了。SOFT-SLAM 算法 [72] 是一种松耦合的 viSLAM 方法,它实际上使用 IMU 数据来减少可用的计算时间。它实时构建稠密地图并在 MAV 上运行。
6.2.2. Tight Coupling
紧耦合方法不是融合基于视觉和惯性的算法的输出,而是直接融合视觉和惯性原始数据,以提高准确性和鲁棒性。MSCKF [25] 和 MSCKF 2.0 [24] 既健壮又非常轻便,与 ROVIO [26] 一起属于这一类,后者是一种基于 EKF 的直接 VIO 方法。Open Keyframe-Based Visual Inertial System (OKVIS) [73] 和 S-MSCKF [17] 是著名的双目 VIO 方法,而 Vins-Mono [74] 是真正的 viSLAM 而不仅仅是 VIO 方法。Kimera [60] 也基于 VIO 方法,但它还包括一个位姿图优化器,在不同的线程中,用于全局轨迹估计、一个 3D 网格重建模块和一个 3D 度量语义重建模块。VIORB [75] 基于 ORB-SLAM [76]。它的前端使用 ORB 提取特征,而其后端运行图形优化。但它的主要兴趣在于一种新的 IMU 初始化方法,首先估计陀螺仪的偏差,近似尺度和重力(不考虑加速度计偏差),然后估计加速度计偏差(经过尺度和重力方向细化),最后是速度矢量,它包括并行方法中的全局优化和闭环。大多数最近的 viSLAM 方法都是紧耦合的 [15],如 [77] 提出的方法,它使用前向和后向光流来处理图像特征。
6.3. Comparison of vSLAM and viSLAM from the Usage Point of View
根据硬件要求、算法类型和实现特点,主要v/viSLAM方法在表2中进行了比较。表 3 展示了每种方法在描述常见用例性质的五个关键特征方面的最新性能。表 3 是通过阅读引用的出版物并使用以下标准对其性能评估结果进行分类而编制的。
(i) 长期实验特征评估该方法如何处理长时间实验。即使在小环境中,vSLAM 也会不断收集新的关键帧,这意味着长期实验可能会导致关键帧和地图特征的数量不断增加。定义一个好的关键帧选择策略和内存管理方法很重要;
(ii) 大尺度环境特征判断该方法对大环境的扩展能力(即积累的特征越多,地标越远)。为了评估这方面,重要的标准是减少漂移、有效的全局优化(例如,关键帧的选择和关键帧图的类型)以及有效的位置识别和闭环框架;
(iii) 低纹理环境对应于纹理很少的表面,例如可能成为问题的大墙,特别是对于特征提取。面向低纹理空间的最佳性能方法可能会使用边缘和附加硬件等特殊功能进行定位(IMU),甚至更好地用于建图(RGB-D 方法的深度传感器);
(iv) 室外环境:这类环境增加了光线变化等困难。使用深度传感器、良好的特征描述符或简单的强大位置识别方法(通过闭合循环来纠正错误)与室外空间相关。该分析还基于每种算法的户外测试结果;
(v) 运动:在处理相机时对高速运动引起的运动模糊的鲁棒性对于为正确的应用选择正确的方法很重要。使用稠密地图或边缘特征的方法通常更稳健。然而,如前文第 4 节所述,我们发现视觉惯性系统更健壮。
添加其他方法来完成之前执行的 v/viSLAM 分类。两个有趣的 PTAM 派生算法是 PTAM [78] 的双目版本和双窗口优化 (DWO) [79] 框架。CD-SLAM [80] 是首次尝试以更稳健的方法将 PTAM 的原理扩展到大规模间接 vSLAM。CD-SLAM 的一些特性启发了流行的 ORB-SLAM。后者结合了最高效的 vSLAM 功能(双模型初始化、高效的关键帧和地图点剔除、ORB 功能和词袋回环闭合)以及关键帧的“基本图”。ORB-SLAM2 [76] 使 ORB-SLAM 适应双目和 RGB-D 相机。Edge-SLAM [81] 是最近尝试以边缘为特征构建强大的 vSLAM。还包括直接方法“半稠密视觉里程计”[5] 和 Kintinuous [82]。第一个侧重于使用智能手机将半稠密 vSLAM 应用于增强现实。最后一个是 KinectFusion 算法针对更大规模环境的扩展。
7. 实验基准
使用第 6 节中的分类,为实验基准选择了五种主要算法:DSO [33]、LSD-SLAM [35]、ORB-SLAM2 [76],以及两种 viSLAM 方法:ROVIO [26] 和 Vins-Mono [ 74]。它们都可以被视为其类别中的参考方法。它们体现了现有设计的多样性,理论上适合我们的用例。它们在表 2 中以粗体显示。根据我们的分类,我们为pedestrian context选择 viSLAM 算法 ROVIO 和 Vins-Mono。它们也被 [3] 认为是所有平台和数据集上最准确和最健壮的算法,而 ROVIO 被认为是一个很好的折衷方案。Chen 等人 [15] 也认为 Vins-Mono 作为被测 viSLAM 算法中精度最好的算法。
这些算法的选择不仅基于其在该领域的重要性,而且还基于感兴趣的用例的要求:在城市环境中使用手持设备进行行人位姿估计。选定的方法应针对具有挑战性的环境中的准确位姿估计,并在开源中可用。该基准测试没有应用与计算困难相关的限制。当我们在手持设备(例如智能手机)上寻求实现时,预计对许多扰动具有全局鲁棒性。我们只为 viSLAM 部分选择了适用于单目相机和 IMU 的方法。行人应用意味着必须考虑用户的行为。手持相机的运动可能会抖动,并且会出现快速的不均匀运动。在用户需求方面,我们更喜欢不需要非常具体的手动初始化的方法。由于大多数行人应用程序都在户外(例如,在城市环境中),所选算法必须处理大规模场景、长时间实验(几分钟到一个小时)和光线变化。考虑到他们在上述分类中的评估,Kimera [60] 和 VIORB [75] 可以被添加到这个基准中。但即使 Kimera 的目标是使用单目摄像头运行,目前代码的一部分(闭环检测)也需要双目摄像头。至于 VIORB,作者没有公开他们的代码。
7.1. Experiments and Dataset Features
实验设置、数据采集和分析采用了以下功能。它们特定于我们的用例。
(i) 硬件(手持设备):具有卷帘快门和 IMU 记录的前向单目相机;
(ii) 位姿估计:我们主要关注当前位姿的在线正确性,而不是重建路径的整体精度;
(iii) 室外场景:光照变化、观察场景尺度的可变性;
(iv) 行人:整体速度(和低平均速度)变化不大,但相机摇晃。由于步行速度,加速度在每个轴上遵循特定的前后运动;
(v) 大轨迹:它从几个闭环扩展到没有闭环;
(vi) 城市环境:移动物体、观察到纹理不良的元素(天空、墙壁等)的潜在时刻;
(vii) 大众:期望用户友好(无需特定的手动初始化,无需针对每个场景调整参数)。
选择 EuRoC MAV 数据集 [6],包括惯性数据,用于所有五种方法的整体比较。可以考虑使用其他 IMU+视觉数据集来扩展我们的实验评估。在 [83] 中,描述了一个室内/室外数据集,但与 EuRoc 数据集的 1 mm 相比,其真实准确度仅为 15 cm。[84] 中提供的数据集是由苏黎世城市空间中的 MAV 记录的。MAV 位移的基本事实使用 Pix4D 摄影测量进行后处理,而不是像在 EuRoc 数据集中那样由外部定位系统(例如,运动捕捉系统)进行测量。[85] 中提供的数据集,与 EuRoc 相比,它具有良好的准确性和更高的测试序列可变性。我们选择 EuRoc 是因为它在其他综述中的广泛,采用简化了我们的结果与其他研究的比较。我们将在未来的工作中考虑其他数据集。有兴趣的读者可以找到 [15, 83–85] 中引用的其他数据集。
EURoc 包括无人机在相同环境和六个自由度地面实况下飞行的各种场景。我们选择仅关注 11 个可用场景中的三个场景。它们对应于表 4 中详述的不同特征,这些特征对于评估所选算法的性能都很有趣。让我们注意到无人机的飞行运动与手持相机的相似,这与 KITTI 数据集 [86] 的车载相机相反,其 10 Hz 的采样频率不足以跟踪快速运动。手部运动的幅度经常被低估。运动比与步行步态自然同步的手臂的运动更重要。将手持设备翻转并抬起以探索环境。这就是我们可以将其与无人机动力学进行比较的原因。选定的方法还在一个名为“IRSTV”的新数据集上进行了测试,该数据集由步行者使用手持设备沿城市路径行走收集,以及硬件设置,如图 6 所示。它对应于室内和明亮的室外空间中 466 m 的步行路径。它包括具有不同尺度场景的图像:街道、开放空间和房间。它还包含对重建环境的玻璃覆盖的建筑物的观察,这在经典的视觉里程计上是失败的。在采集开始时没有强加用于动态初始化的特定运动。
硬件设置包括一个 Garmin 相机和一个名为 ULISS [87] 的专用平台(图 6)。摄像头为“VIRB 30 Ultra”,焦距固定,帧率为60 Hz,1920*1080像素分辨率,对应智能手机采集的标准分辨率。ULISS 包括一个三轴惯性测量单元和一个以 200 Hz 采样的三轴磁力计、一个气压计、一个高灵敏度 GPS 接收机和一个天线。这些低成本传感器通常嵌入在移动设备中。这种硬件设置可以访问原始数据,而无需通常嵌入在移动设备中的预过滤。ULISS 和相机数据使用来自嵌入在两个设备中的 GPS 接收器的时间戳精确同步。用于室内/室外行人导航的参考系统 PERSY [88] 附在脚上。它以累积步行距离的 0.3% 的水平定位精度为行人的场景提供地面实况。它在图 6 中以绿色显示。
基准测试是在 2.60 GHz Intel Core i7-6700HQ CPU 上进行的。我们的 Linux 环境位于虚拟机 (Oracle VirtualBox 5.2.12) 中。我们允许所有四个内核都具有 100% 的分配资源和 5 GB 的 RAM 使用量。所有算法均在 Ubuntu 16.04 中测试。当需要 ROS 时,我们将ROS kinetic和catkin workspace一起使用。下一节将详细分析所选数据集上的所选算法,并评估最适合我们案例的算法。
7.2. Experimental Assessment Methodology
我们从 EuRoc 数据集开始对之前提供的两个数据集进行了测试。所有结果都是五次运行的平均值,以考虑随机异常值缓解部分。在表 5 和表 6 中,我们提供了每个数据集上每种方法的相对定位误差 (RPE) 和绝对定位误差 (APE) 的平均值。APE 和 RPE 是用 evo 包 github.com/MichaelGrupp/evo 获得的。APE 是估计位置(2D 或 3D)与真实位置之间的欧几里德距离,而 RPE 是连续位置估计(2D 或 3D)之间的欧几里德距离。我们计算了均方根误差 (RMSE)、标准差 (σ) 和最大误差 (max) 的平均值作为常量指标。APE 是在所有方法的 Sim (3) Umeyama 对齐之后计算的 [89]。RPE 计算为漂移:每米的平移或旋转误差。这种局部精度与关键帧的数量无关,并允许比较 VO 和 vSLAM。
RPE 通过检查位姿-位姿变换的正确性来评估漂移误差部分。例如,好的 RPE 和坏的 APE 可能表示漂移校正不好。它可能来自低效的回环框架和/或错误的初始化,因为知道初始化是 SLAM [20] 的弱点之一。这也可能意味着主要的“单一”错误很可能发生在本地并且没有得到纠正。在这种情况下,最大 RPE 应该比 RMSE RPE 大得多。
使用提供的时间戳,我们将实际位置与估计位置进行比较以计算 APE。它们在 EuRoc 数据集的 3D 中计算,但对于 IRSTV 数据集仅在 2D 中计算,因为 PERSY 仅提供水平平面中行人路径的基本事实。绘制累积 APE 分布函数 (CDF) 以用于测试算法的全局准确性和稳定性评估。误差是在由形成局部水平面的 和 轴以及指向上方的轴定义的局部导航框架中计算的。为了模拟在不同环境中的各种任务之间不需要人工干预的实际应用程序,运行计算所需的参数对于所有运行都是固定的。
我们还评估了与用例相关的五个功能的性能(第 7.1 节),以及稳定性(对于给定场景从一次运行到另一次运行,结果是否可能会发生变化)、整体质量 姿态估计,以及无需后处理即可估计真实比例的能力。对于最后一点,我们简单地确定了结果和真值之间轨迹总长度上的相对误差。
7.3. Detailed Analysis
分析从单目 ORB-SLAM2、Vins-Mono 和 DSO 开始,给出了三个 EuRoc 上的最佳 RPE 和 APE。它继续使用 LSD-SLAM 和 ROVIO,在 IRSTV 数据集上提供不太好的结果和失败。
7.3.1. ORB-SLAM2 Result Analysis
总的来说,ORB-SLAM2 提供了最佳的 RPE RMSE。在 APE 方面,它在 RMSE 和最大误差方面都优于 DSO 和 Vins-Mono。这突出了其纠正漂移效应的效率。图 7 显示了 3 EuRoc 定位误差的 CDF。我们观察到一个非常好的稳定性,最低的这个基准和最好的可预测性在 ROVIO 之后具有最低的 RMSE 标准偏差。ORB-SLAM2 提供了显着的稳定性,最大 APE/RMSE 比率约为 2,这是该基准测试的最低比率。除了 ROVIO 之外,它还提供了最佳的可预测性,并且 RMSE 的标准偏差最低。
MH01 和 MH03 结果相似,说明对运动具有良好的鲁棒性。与 MH01 和 MH03 相比,MH05 几乎不受干扰的 RPE 和 APE 似乎表明对缺乏纹理的鲁棒性。然而,这仅仅是因为 ORB-SLAM2 具有重新定位和闭合回路的能力,详见第 7.4 节,其中 ORB-SLAM2 在没有闭环的情况下进行了测试。ORB-SLAM2 的 VO 基础实际上对缺少纹理的 MH05 部分非常敏感。IRSTV 的结果表明 ORB-SLAM2 可以完美处理大型困难环境。尽管没有闭环,但它输出了相当精确的结果,在行驶距离上有 1.1% 的 APE RMSE 误差。没有观察到由于环境或初始化发出的失败。
总而言之,发现 ORB-SLAM2 在各种测试场景(包括非常大的规模)中具有一致性和鲁棒性,并且具有非常可靠的优化和闭环框架。尽管仅使用高速视觉惯性数据集的视觉信息,但它的性能至少与包括 Vins-Mono 在内的其他最先进方法一样好。它的视觉里程计基础对缺乏纹理非常敏感,但闭环和重新定位允许纠正轨迹。然而,让我们注意到 ORB-SLAM2 有一个非常严格的关键帧剔除策略,这意味着它也输出更少的位姿。与真正估计的相比,这显然提高了输出。这也意味着结果有时会在几秒钟内没有任何姿势输出,因为在此期间没有捕获新的关键帧(或后来被剔除),如图 8 所示。这可以通过降低关键帧管理的严重性来避免代码中的参数。禁用闭环的结果显示在第 7.4 节中。
7.3.2. Vins-Mono Result Analysis
Vins-Mono RPE RMSE 是我们最好的基准测试之一。Vins-Mono APE 结果也是第二好(与 DSO 并列在 ORB-SLAM2 之后)。其 APE max/RMSE 比率为 2 比 3,其整体一致性 (, max) 可与 DSO 相媲美。然而,我们在 MH01 中获得了不太可预测的结果(11.5%),这表明高速实际上有利于 Vins-Mono 的稳健性。CDF 误差图的形状(图 9)还表明仍有一些奇异误差使整体结果恶化。
Vins-Mono 最显着的结果是真实尺度估计的高精度。MH01 为 2.7%,MH03 为 2.8%,MH05 为 0.9%。在 MH03 中,RPE 和 APE 并未真正受到运动增加的影响。与 MH01 或 MH03 相比,MH05 的结果也很棒,这表明对缺乏纹理的鲁棒性。
对 IRSTV 数据集的测试输出了行进距离的 3.3% 的 APE RMSE,对于大多数行人定位应用来说,这是一个令人满意的结果。然而,与 EuRoC 不同,Vins-Mono 在初始化方面遇到了很多困难,可能是因为在没有特定的初始化阶段。当检测到具有足够视差的运动时,它通常可以初始化。然而,此时估计的IMU加速度偏差的质量是不确定的,这极大地影响了结果的准确性和鲁棒性。我们还发现玻璃门反射反复是导致故障的原因。此外,对 IRSTV 数据集的实际规模估计远不如在 EuRoC 的近距离环境中精确(大约 43% 的误差!)。尽管如此,我们相信这些结果是可以改进的。在数据集的开头为动态初始化添加特定的运动可能会改善结果和鲁棒性。
总的来说,Vins-Mono 被发现对所呈现场景中的困难具有鲁棒性,其出色的 RPE RMSE 有望用于长期实验。虽然 ORB-SLAM2 的结果总体上还是比较好,但 Vins-Mono 的真正好处是它能够准确估计真实的尺度。因此,结果可以很容易地在线解释为给定地图上的真实世界位姿。然而,IRSTV 数据集的结果表明,很难满足硬件方面的要求以充分利用 Vins-Mono,或者可能需要特定的用户移动来正确初始化 IMU 偏差。
7.3.3. DSO Result Analysis
与 Vins-Mono 和 ORB-SLAM2 一起,DSO 方法输出所有测试方法的最佳 RPE RMSE 结果。作为一种纯 VO 方法,其准确性仅取决于里程计的质量。DSO 的结果也很明显,因为它们与 APE σ和max的规律性与 Vins-Mono 的误差相当。
由于 MH03 的结果与 MH01 的结果相当,并且 MH05 的结果与 MH01 的结果相当,因此发现 DSO 对运动具有鲁棒性。尽管 DSO 是纯视觉里程计,但它的总体结果是我们基准测试中的第二好,并且有希望用于大规模环境(低 RPE RMSE),尽管图 10 显示误差与轨迹长度有关,而不是其他任何东西 (参见表 4)。与我们基准测试的其他两种最佳方法相比,DSO 还具有在实时位姿估计上获得这种精度的优势,而不仅仅是在轨迹重建上。
DSO 正确估计路径并重建 IRSTV 数据集的环境。当相机从街道移动到一个大的地方时,尺度估计会失败,并且轨迹是用两种不同的尺度估计的。我们只考虑了 APE 误差估计轨迹的第二部分,因为它是唯一通过三种方法重建良好的部分(图 11)。在行驶距离上的 APE RMSE 为 3.8%,结果不如 ORB-SLAM2 和 Vins-Mono 的结果精确。让我们注意,与 Vins-Mono cf 不同,DSO 没有遇到初始化困难。第 7.3.2 节。较低的精度以及尺度估计问题可以通过使用滚动快门相机来解释,而直接方法在全局快门下表现更好。
总体而言,DSO 在各种环境中都是精确、一致且稳健的。重建的半稠密地图给出了观察到的周围环境的易读性。看到它对各种场景的适应能力有多强,就结果而言,DSO 唯一真正的弱点是它纯粹的 VO 性质。即使在非常大的规模和困难的环境下,它也表现出色,但我们遇到了一个糟糕的尺度估计问题。将其与闭环框架结合以将其转变为真正的 SLAM 方法可能会很有趣。还要注意的是,DSO 需要 GPU 加速,这意味着它不容易适应广泛的应用程序。
7.3.4. LSD-SLAM Result Analysis
据我们所知,EuRoC 上没有公开的 LSD-SLAM 测试可用。它的包是这里测试的所有算法中最古老的,因此我们不否认可能适应 EURoC 的可能性(例如 Stereo 版本 [90] 可能在这里表现更好。(开源 github 项目似乎也不是 不再维护,也不会升级到最新的 Ubuntu 和 ROS 版本。)然而,通过使用今天可访问的常规包、参数和建议,我们设法在 MH03 和 MH05 上运行 LSD-SLAM。尽管在 MH01 上取得了令人鼓舞的结果( 图 12),它对运动的鲁棒性和可能缺乏纹理不足以为 MH03 和 MH05 产生不错的结果。此外,在我们进行的每次 MH03 运行结束前以及 MH05 上五分之三的运行中,跟踪都失败了。为了更好地支持 LSD-SLAM 的初始化,我们切断了无人机不规则移动的数据集的开头,以初始化其 IMU 参数。
观察在多次运行中获得的非常随机的行为,很明显 LSD-SLAM 在这里的失败是由于初始化不当造成的。最有可能的是,LSD-SLAM 结果并没有反映这种方法在理想条件下的真实能力。这个结果突出了一个事实,即在初始化期间需要特别注意的方法不太适合许多无法带来这种注意的应用程序。在选择 SLAM 方法时,对特定用户干预和控制的需求是需要考虑的关键因素。根据当前的设置和初始化过程,发现 LSD-SLAM 对于类似于 EUROC Machine Hall 中呈现的场景不够健壮。
7.3.5. ROVIO Result Analysis
查看数据集 MH01 和 MH03,在所有方法中,ROVIO 输出最差的 RPE RMSE。累积误差分布图(如图 13)所示,显示 MH01 和 MH03 80% 的定位误差在沿轴 25 cm、沿轴 20 cm 和沿轴 15 cm 以下。总的来说,该方法仍然准确,例如,MH01 和 MH03 沿轴的最大误差分别为 40 cm 和 80 cm。总的来说,它给出了最糟糕的 APE 之一(除了 LSD-SLAM 故障),APE RMSE 比其他方法差 3 到 20 倍,APE 最大差 3 到 12 倍。所有 ROVIO 运行在数据集上给出相同的结果;没有随机参数。
一般的尺度估计对于真实尺度的轨迹估计来说已经足够好了。MH01 的值等于 4.9%、MH03 的 4.7% 和 MH05 的 12.8%。与 MH01 相比,MH03 的性能并没有特别改变(参见 APE 和 RPE),因此运动似乎很稳健。然而,MH05 上非常糟糕的结果表明,它出人意料地(因为它是 VIO)受到无纹理环境中的通道的严重影响。对于大规模,精度的缺乏与纯 VIO 性质相结合可能会导致非常不精确的结果。然而,像 ROVIO 一样,纯 VO 在长期实验的内存管理方面显示出优势,因为它仅适用于关键帧窗口。
总结一下 ROVIO,发现它不如其他方法精确。它只是一个没有闭环和全局优化的纯 VIO。例如,它仍然是一种有趣的 VIO 方法,用于在线控制无人机,或者任何更关注局部位姿估计而不是重建轨迹相对于参考真值的正确性的应用程序。它的可预测性对于重复性任务和已知场景很有趣。然而,无纹理环境似乎会带来严重的问题,并且结果缺乏一致性对于需要持续评估精度的应用程序来说是个问题。ROVIO 在 IRSTV 数据集上失败。
7.4. Comparative Analysis and Conclusion regarding Pedestrian Urban Navigation with Handheld Sensors
所有测试方法的比较位姿估计结果如图 14-16 所示。仅就旋转估计而言,所有方法都表现相对较好,没有任何显着差异。我们观察到 ROVIO 的偏航估计有轻微的漂移趋势。它用图 17 中 MH03 的旋转估计来说明。
由于闭环缺失以及我们关注实时位姿估计的正确性,因此需要强大的 VO 或 VIO 基础。因此,我们在表 7 中添加了 Vins-Mono [74] 和 ORB-SLAM2 [76] 没有闭环的结果。还需要实际尺度估计能力,因为这将大大简化在线应用解决方案的开发。
表 7 显示 ORB-SLAM2 在测试的 EuRoC 上很少使用回环,因为 MH01 和 MH03 的结果几乎相同。但是,它在更大范围内使用它来校正漂移。在MH05中,黑暗中的通道引入了很大的定位不确定性,这意味着轨迹从那里漂移到最后。如果不可能闭环,则结果完全取决于在无纹理部分期间位姿估计的糟糕程度。在这里,APE RMSE 结果范围从 14 cm 到 3.7 m。Vins-Mono 似乎更频繁地使用闭环,因为它的缺失会使错误加倍。然而,由于 IMU 集成,误差是有界的且更可预测。如果闭环在所考虑的环境中难以执行,则选择 ORB-SLAM2 以获得更精确的结果可能是一个危险的赌注。原因是由于暂时缺乏纹理,其结果受到位姿估计问题的严重影响。
最后,对 IRSTV 数据集的计算发现 ORB-SLAM2 是最稳健的方法。它可以处理城市空间困难(玻璃反射、尺度变化和行人运动),甚至是室内到室外的过渡,因为光照变化不会像 MH05 没有闭环那样导致严重的 ORB-SLAM2 故障。总之,DSO、Vins-Mono 和 ORB-SLAM2 都是我们用例的合适选择,即带有手持传感器的步行城市导航。选择还取决于可用的硬件类型:用于 DSO 的 GPU+全局快门、紧密同步的 IMU 和用于 Vins-Mono 的相机。使用高端硬件,DSO 可能更适合具有严重无纹理地方的城市环境,而 Vins-Mono 可以提供更逼真的比例估计,而无需进一步操作(正确初始化时)。然而,在考虑用户友好性(即易于初始化)、易于设置、硬件和计算能力要求以及全局鲁棒性和准确性时,ORB-SLAM2 成为我们用例的首选。
8 结论
我们对重要的 SLAM 方法进行了综述,并详细介绍了 vSLAM 和 viSLAM 的核心概念以及不同的现有设计。我们将这一理论综述与历史概述联系起来,以确定 SLAM 进化中的主要里程碑,分为三个主要时期。最后,我们对一些最著名的方法进行了分类,比较了它们的主要设计特征、目标以及它们在各种场景中的预期稳健性,使用五个描述常见用例性质的关键特征。我们的实验基准侧重于在城市环境中使用手持设备进行行人位姿估计。它强调了三种可靠的 SLAM 方法:Vins-Mono、DSO 和 ORB-SLAM2。总体而言,ORB-SLAM2 提供了最佳性能。但是,对于需要在线进行实际规模估计的应用程序,则需要一个额外的框架。这样的框架可以解决在行人应用程序中经常出现的非常大的轨迹上缺少闭环的问题。例如,使用已知的可识别城市位置(例如自行车站或公交车站)来校正位姿是一个有趣的解决方案 [91]。将 vSLAM 的实验基准扩展到测试现有方法对用于描述常见用例的五个关键特征的稳健性似乎很有趣。它将支持专门评估这些关键特征(例如,在帧中手动引入光照变化),但也可以扩大对其他特定用例的评估,以进行一般和详细分析。[3] 中的工作就是一个例子,不幸的是,它只测试了 viSLAM 方法。
我们的用例位于动态环境中。因此,有趣的是使用新的语义 SLAM 算法来区分固定和移动元素,并通过环境特征(例如平面)来辅助该过程 [61]。另外两种类型的信息可以添加到未来的工作中。首先,在同一区域多次经过后合并地图的方法建议使用预先存在的城市空间地图。事实上,3D 地图越来越丰富和分布,尽管它们的更新率仍然存在问题。其次,我们打算专注于更好地建模个人步行步态模式,以支持行人应用和精确的城市定位。
备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区
原创征稿
初衷 3D视觉工坊是基于优质原创文章的自媒体平台,创始人和合伙人致力于发布3D视觉领域最干货的文章,然而少数人的力量毕竟有限,知识盲区和领域漏洞依然存在。为了能够更好地展示领域知识,现向全体粉丝以及阅读者征稿,如果您的文章是3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、硬件选型、求职分享等方向,欢迎砸稿过来~文章内容可以为paper reading、资源总结、项目实战总结等形式,公众号将会对每一个投稿者提供相应的稿费,我们支持知识有价!