点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

Feature‑based visual simultaneous localization and mapping: a survey

Rana Azzam1 · Tarek Taha2 · Shoudong Huang3 · Yahya Zweiri4

接收日期:2019 年 10 月 30 日/接受时间:2020 年 1 月 8 日/在线发布时间:2020 年 1 月 16 日 © Springer Nature Switzerland AG 2020

翻译:幸运的石头

摘要

视觉同步定位和建图(SLAM)在过去几年中引起了高度关注。在本文中,呈现了关于最先进的基于特征的视觉 SLAM 方法的综述。综述中根据在环境中观察到的视觉特征进行分类。视觉特征可以分为不同的层次:点和边这样的低级特征,平面和斑点这样的中级特征,以及语义标记的对象这样的高级特征。本研究得出的关于视觉 SLAM 方法的最关键研究空白之一是缺乏普遍性。虽然一些方法在准确性和效率方面表现得非常成熟。然而,它们是为非常特定的环境量身定制的,例如特征丰富的静态环境。在不同环境中运行时,此类方法的性能会严重下降。此外,由于软件和硬件的限制,保证视觉 SLAM 方法的鲁棒性极具挑战性。尽管语义在视觉 SLAM 中被大量使用,但通过结合特征之间的关系来理解场景尚未完全探索。整篇论文都对此类研究进行了详细讨论。

关键词 机器人·SLAM·定位·传感器·因子图·语义

1 引言

经过几十年的详尽研究和深入调查,同步定位和建图 (SLAM) 持续在机器人社区进行的研究中占据主导地位。SLAM 是一个问题,即估计机器人车辆在以前未探索的环境中导航的位置,同时逐步构建它的地图。SLAM估计是基于通过安装在车辆上的传感器收集的测量值完成的,这些传感器包括:视觉、距离、光、位置和惯性传感器等等。SLAM 系统以多种不同的方法使用这些测量值来定位机器人并绘制其周围环境。然而,任何 SLAM 系统的搭建都包括一组通用组件,例如:地图/轨迹初始化;数据关联;和闭环。然后可以使用不同的估计技术来估计机器人的轨迹并生成环境地图。

每个 SLAM 方法的实现其细节都依赖于所使用的传感器,也因此依赖于从环境中收集的数据。在本文中,我们彻底回顾了最新的视觉 SLAM 系统,重点关注基于特征的方法,使用传统的视觉传感器(如单目、深度或立体相机)来观察环境。从现在起,如果视觉 SLAM 系统分别使用单目相机、RGB-D 相机或立体(双目或多目)相机,则它们被称为单目 SLAM、RGB-D SLAM 或立体 SLAM。

非常规的基于事件的视觉传感器,例如基于异步时间的图像传感器 (ATIS) [98] 和动态的有源像素视觉传感器 (DAVIS) [11],在 [64, 131, 132] 中被提出,也可用于解决 SLAM 问题。它的操作原理是受生物学启发的,它不是以设定的速率捕获帧,而是异步捕获事件,这些事件是独立像素亮度的时间戳变化。由于其从环境中获取信息的独特方式,需要进行范式转换来构建适应此类信息的算法。基于事件的 SLAM 超出了本文的范围,感兴趣的读者可以参考 [41] 中的综合调查。

一些 SLAM 系统仅依赖于视觉测量,而另一些则通过不同的观察来增强它们,例如距离或惯性测量。多种类型的观察结果的融合可能会增加算法的复杂性,需要更多的计算资源,并增加平台的成本。但是,它使系统更可靠,对异常值更鲁棒,并且对故障具有弹性。

要选择适合已开发的视觉 SLAM 系统的视觉传感器,应考虑以下几点。根据单个单目框架的观察是不可能辨别环境的尺度的。为了弥补这一点,单目 SLAM 系统采用不同的方法来推断深度,例如使用一组一个或多个其他传感器来获得可以推断深度的测量值、使用神经网络假设观察到的特征的深度,或者通过利用有关环境的先验信息,例如观察到的特征的大小。RGB-D 相机可以提供有关单帧深度的信息,但它们对光非常敏感,这可能会限制它们的应用场景或它们可以成功运行的环境。立体相机克服了单目和 RGB-D 相机的局限性,但它们更昂贵且更耗费计算资源。视觉传感器的选择还取决于要使用的机器人平台。例如,地面车辆对车载传感器的重量没有任何限制,这使得所有选项都可以选择。然而,如果要使用飞行器,单目相机似乎是最方便的选择,因为它可以无缝地安装在机上,因为它重量轻、体积小、功率要求低。然而,所采用的算法必须处理获得的视觉观察的尺度不确定性。

视觉测量可以在不同的细节层次上进行处理。直接法 SLAM 系统,例如:[34, 85, 86],处理图像中所有像素或像素子集的强度。然后,基于亮度一致性约束[139],在多个观测值之间建立对应关系。另一方面,基于特征的 SLAM 以具有独特属性的特征为目标,并且可以通过所采用的检测算法重复检测。这种系统的例子包括 [65, 91, 97]。特征可以分为不同的等级;点、角和线等低级特征,斑点和平面等中级特征,以及语义标记的对象等高级特征,如图 1 所示。视觉 SLAM 系统可能采用单个 [23 , 45, 88] 或不同特征级别的混合 [10, 54, 138]。

在我们的综述中,我们根据用于执行定位和建图的特征对最先进的基于特征的视觉 SLAM 解决方案进行分类。在每个类别中,都对所采用的 SLAM 的实现进行了彻底的讨论和比较。强调每个类别的优缺点,最后强调开放的研究问题。

1.1 SLAM 的现有调查

提出的 SLAM 方法由该领域的几位研究人员进行了调查,并强调了迄今为止的开放研究问题。

图 1 从同一视觉框架中提取的不同视觉特征。左:低级特征(SURF [6]),中:中级特征(平面),右:高级特征(语义标记的对象)

在 [14] 中,作者认为 SLAM 正在进入鲁棒感知时代并在可扩展性、鲁棒性和表示等几个性能指标方面彻底讨论了最先进解决方案的主要特征。此外,论文还讨论了硬件和算法层面的最新进展,并指出了尚待解决的研究问题。[139] 对基于关键帧的 SLAM 方法进行了全面回顾,其中介绍了基于关键帧的单目 SLAM 的一般架构和相应的实现方法。在 [109] 中进行的调查针对 SLAM 方法,这些方法忽略了所研究的环境是静态的假设,并解决了重建动态环境所采用的基础技术。同样,[96] 中提出的调查研究了可以在动态环境中运行的 SLAM 方法,以及那些使用可以通过视觉传感器获得的异构数据的方法,例如:颜色、深度和语义信息。依赖于观察场景中原始特征的视觉 SLAM 方法在 [44] 中进行了调查,并根据用于这些特征的描述符进行分类,强调了它们的优缺点。[141] 中提供了对视觉里程计和视觉 SLAM 的结构的概述,以及基础公式和设备选择。类似地,在 [40] 中,基于 SLAM 主要构建的实现分析了视觉 SLAM 的解决方案,并分析了它们在动态环境中的失败。[120] 中回顾的 SLAM 方法分为基于特征的方法、直接方法和基于 RGB-D 的方法。对 2016 年最先进的解决方案进行了比较,随后是与上述类别相关的一组开放研究问题。最后,可以在 [115] 中找到最近关于 SLAM 的一项调查,重点是语义。在本文中,我们对最新最先进的基于特征的视觉 SLAM 系统进行了全面调查,我们根据元素(即特征)对回顾过的方法进行分类,它们从视觉框架中提取以定位机器人和重建环境。这些特征属于以下类别之一:低级、中级或高级特征。因此,所回顾的方法分类如图 2 所示。

图 2 基于特征的视觉 SLAM 方法分类

我们的综述为有兴趣研究基于特征的视觉 SLAM 的各种实施选项和进展的研究人员提供了全面的参考。属于同一特征级别类别的方法会根据它们完成的其他目标进一步分组,例如实时性能、处理场景动态以及对数据关联失败的恢复能力。列出并分析了使这些目标成为可能的技术。这将帮助读者准确地确定这些方法中的每一种是什么,以及他们需要采用和/或改进哪些实施方法来开发一个可以实现一组特定目标的系统。

本文的其余部分安排如下,通用 SLAM 系统的结构在第 3 节中介绍。图 2 中详细讨论了 SLAM 构建块以及不同的实现选项。第 3 节提供了对基于特征的视觉 SLAM 系统及其设计选择的回顾和分析。第4节我们强调了我们的综述结果并确定需要进一步调查的未解决问题。

2 SLAM 构建块

在深入研究当前最先进解决方案的实现细节之前,简要讨论视觉 SLAM 的常见组件,包括(1)地图/轨迹初始化,(2)数据关联,( 3) 闭环,(4) 重定位,和 (5) 估计算法,如图 3 所示。首先提供每个组件的目的,然后是最流行的实现方法(如果适用)。

图 3 SLAM 流水线

2.1 地图/轨迹初始化

在新环境中开始机器人任务时,其先验地图不可用,因此有必要估计周围环境的 3D 结构以及机器人相对于它的位置.这是对地图的初步评估,将根据在整个任务中收集的传感器测量结果进行迭代更新。此过程仅需要在启动时引导系统。当使用不同的传感器时,有几种方法可以进行初始化。例如,一个深度帧或一个立体对足以初始化地图,如 [97, 118] 中所述,因为它们提供了单目帧所缺乏的深度和比例信息。另一方面,可以在单目相机运行时手动进行初始化,例如[32],其中系统提供了有关观察到的场景的先验信息,包括四个特征的位置和外观,解决了尺度不确定性问题。地图初始化常用的其他算法示例是迭代最近点 (ICP) [8, 20]、图像对齐 [80, 112]、五点算法 [114] 以及模型拟合算法,例如随机样本抽取 (RANSAC) [38] 或 MLESAC [ 123],以及相对于相机的逆深度参数化,用于参数化观察到的特征[25]。运动学模型,例如 [22] 和惯性测量的积分,如 [29] 中所述,可用于初始化轨迹。

2.2 数据关联

在环境中进行运动时,机器人可能会多次感知同一区域。建立每次观察相同场景时收集的图像帧之间的对应关系,对于估计地图和机器人的轨迹至关重要,被称为数据关联。

基于特征的方法以特征为目标,这些特征是图像中表现出独特属性的区域。特征可以有不同的尺度:低级特征,如几何基元;中级特征,如超像素;或高级特征,如语义标记的对象。特征最关键的特征是可重复性,这使得特征在出现在从不同视点拍摄的多个帧中时可重复检测。

为了检测图像中的特征,文献中针对不同的特征类型提出了几种检测器。对于低级特征,例如点、线、边和角,表 1 显示了特征检测器和描述符的一些示例。检测到特征后,将其与其周围像素一起从图像中提取,然后分配一个定量度量,称为描述符,以方便与其他特征匹配。

表 1 特征检测器和描述符

为了检测图像中的平面,使用了模型拟合算法,例如 RANSAC。还可以结合建模和卷积神经网络 (CNN) 来识别图像中的平面,例如墙壁 [136]。对于高级特征,提出了几种用于检测对象并在图像中对它们进行语义标记的技术,包括但不限于条件随机场 (CRF) [51]、支持向量机 (SVM) [30] 和深度神经网络(例如:single shot multi-box detector(SSD)[74],you only look once  (YOLO) [104])。

可以在两幅图像中的特征之间(2D-2D 匹配)、3D 地图中的一个点与其在图像帧上的投影之间(3D-2D 匹配)或两幅图像之间建立低级特征之间的对应关系。重建地图中的 3D 点(3D-3D 匹配)[140],如图 4a 所示。

图 4 数据关联和闭环示例

将当前图像中的特征与另一图像中的特征(2D-2D)匹配是通过在第二张图像中的窗口内搜索来执行的,该窗口包含当前图像中特征的位置。如果两个图像之间的转换是已知的,则搜索将减少到一维,因此可以建立对极几何[50]。特征描述符之间的相似性可以根据它们的类型使用不同的量来衡量,例如距离平方和、L1/L2 范数或汉明距离等等。由于它们的高计算要求,这些措施可能会阻碍系统的性能,并且可以被类似于 [89] 的 kd-tree 搜索或诸如 [42] 的二元词袋方法所取代。

当需要在给定环境的 3D 结构的情况下估计相机的位姿时,3D-2D 匹配是必要的。将假设姿势周围的 3D 点投影到当前图像帧上。然后使用前面提到的技术将二维投影与图像中的 2D 特征进行匹配。在重新访问一个位置时,即关闭一个循环,相应的 3D 地标被匹配 (3D-3D),从而产生一个校正的、无漂移的路径。通过比较平面参数(例如法线(例如:[54])、重叠以及在当前帧中检测到的平面与地图中可用的那些(例如[138])。如果距离低于特定阈值,则建立对应关系。否则,会在地图中添加一个新平面。

为了建立语义标记的地标之间的对应关系,预测标签用于将检测与地图中的地标相关联。如果环境中出现同一对象类别的多个实例,则必须超过它们之间的最小距离阈值才能考虑在地图中插入新的地标[10]。否则,检测与其最近的地标相关联。在最近提出的 SLAM 解决方案 [95] 中,对象在类别级别被检测和表征,而不仅仅是实例级别。这是基于这样一个事实,即一个类中的所有对象都具有共同的 3D 点,而与它们的不同类别无关。下一节将更详细地讨论数据关联的其他方法。

2.3 闭环

随着机器人完成其任务,来自多个来源的误差累积导致估计偏离真实轨迹(一个例子如图4b所示)。这种漂移可能会严重影响环境的重建,从而导致正在进行的机器人任务失败。为了纠正这种漂移,文献中提出了几种技术来检测回环闭合,即检测当前观察到的场景是否被机器人更早地评估,从而实现全局一致性。全局一致性是 SLAM 估计近似匹配地面实况并且重建地图符合观察区域的真实拓扑结构的条件。然而,局部一致性是指观察结果在局部匹配但可能不是全局匹配的情况[84]。闭环通常涉及两个主要步骤:视觉位置识别和几何验证。前者可以使用 kd-tree 搜索 [75]、词袋方法 [63]、贝叶斯过滤 [2]、深度学习 [43, 135] 和视觉特征匹配 [53, 79] 来完成,而后者可以通过图像对齐和 RANSAC [38] 来实现。

2.4 重定位

重定位是 SLAM 系统从机器人运动到任意位置的致命定位失败中恢复的能力。这种失败可能是由于多种原因造成的,例如突然运动、运动模糊或缺少特征 [139]。此外,机器人车辆可能会通过不受机器人控制的操作重新定位,在这种情况下,机器人的全局位置将被确定 [12]。这些情况被称为绑架机器人问题 [35],可以使用多种技术解决,包括但不限于匹配特征描述符 [71]、重新观察语义标记对象 [48、106]、极线几何[82],或二元词袋方法 [91, 105],

2.5 估计算法

估计算法需要解决 SLAM 约束,可以分为批量处理和增量算法。批量处理算法,例如全局束调整 (GBA) [125] 和全图 SLAM [122],处理机器人收集的大量测量值,需要相对较长的时间,来重建环境的地图以及机器人的轨迹。另一方面,增量算法在新测量值到达时计算地图和轨迹的估计值。一些增量算法,如 [61] 对整个机器人任务收集的整个测量值集进行操作,而其他算法,如 [60] 对在一小段时间内收集的这些测量值的子集进行操作,这有助于在线操作方式。虽然批量处理算法成功地实现了全局一致性,但它们的计算成本很高,因此可能会阻碍实时操作。此外,由于内存资源有限,它们可能不适用于大规模环境或连续操作系统,这强调了不受此类限制的增量算法的重要性。当运用增量算法进行估计时,由于增量算法不考虑所有的测量值,故而使用所有旧的数据进行关联决策是不可能的,与其他算法相比,这可能会增加累积误差。在下文中,批量处理算法,例如 GraphSLAM [122] 和 GBA [125],以及增量算法,例如扩展卡尔曼滤波器 (EKF) [122]、增量平滑和映射 [60、61],以及局部捆绑调整(LBA)[87],进行简要介绍。

2.5.1 扩展卡尔曼滤波器 (EKF) [122]

给定一段时间内记录的多个测量值,可能来自多个传感器,EKF 估计被观察系统的状态。系统的状态由环境和机器人车辆的状态组成。前者描述了在环境中观察到的地标的姿态,而后者描述了车辆的运动学。估计过程涉及过滤每个与测量相关的噪声,以减少估计状态的整体不确定性。然后,EKF根据从环境中收集的测量结果,通过多次预测迭代和更新来估计系统的状态,如图5所示。

图 5 扩展卡尔曼滤波器算法 [108]

2.5.2 因子图 SLAM [122]

正如该算法的名称所表示的那样,一个图用于重建环境地图以及机器人在其中的轨迹。地图特征和机器人姿态表示为顶点,并使用编码两种非线性约束的边连接:运动和测量,如图 6a 所示。所有约束的总和使 SLAM 成为非线性最小二乘问题。为了获得全局一致的估计,首先对所有约束进行线性化,产生稀疏信息矩阵和信息向量。由于矩阵的稀疏性和为了更有效的计算,使用变量消除算法减小了矩阵的大小。然后采用推理方法来找到图节点的姿势分配,从而最大限度地减少由约束施加的误差。

或者,可以单独使用环境中的连续机器人姿势来利用姿势图[119]估计机器人的位置。该问题中使用的图包括作为节点的机器人姿态和作为这些节点之间的边的运动约束,如图 6b 所示。

捆绑调整 (BA) [125] 是因子图 SLAM 的一个实例,可以定义为一个细化过程,该过程使用从环境中收集的一系列图像同时优化

图 6 因子和位姿图示例

3D 结构、相机轨迹以及可能的校准参数,如图所示在图 7 中。评估系统误差的成本函数被最小化,以产生改进的重建估计。如果在估计中考虑了自机器人任务开始以来的所有测量,则该过程称为 GBA,并且已知计算量很大,这会阻碍在线操作 [36]。

在 [87] 中提出了一种计算效率更高的方法,即增量调整 3维重建和相机轨迹,称为局部束调整 (LBA)。在接收到新测量时,仅调整 n 个最近帧的窗口。使用 LBA 可以实时执行 SLAM。

图 7 束调整示例

ParallaxBA 是 [145] 中提出的 BA 的另一种变体,其中使用视差角而不是其欧几里得坐标或反深度对特征进行参数化,ParallaxBA 在准确性和收敛性方面优于传统 BA。

2.5.3 增量平滑和映射

增量平滑和映射是一种 SLAM 方法,它在从环境中收集测量值的同时逐渐计算地图和机器人轨迹的估计。文献中提出了几种方法,其中最流行的是 iSAM [61] 和 iSAM2 [60]。iSAM 使用平方根信息矩阵的 QR 因子分解来执行平滑,而 iSAM2 对称为贝叶斯树的新数据结构进行操作,该数据结构是从因子图中获得的。

3 基于特征的视觉SLAM——设计选择

在本节中,将概述最先进的基于特征的视觉SLAM系统。如前所述,特征可以具有不同的层次:低级特征、中级特征或高级特征。视觉 SLAM 系统可以基于使用一种或两种或多种特征类型的混合,这将在以下部分中讨论。基于特征的方法最令人担忧的问题是它们在没有特征的情况下会失败。无论它们在特征丰富的环境中可实现的高性能和准确性如何,如果所研究的环境缺乏视觉 SLAM 所依赖的特征,无论是点、平面还是物体,定位都会失败,并且机器人周围环境的估计也不会反映真实的结构。在下文中,视觉 SLAM 系统根据系统中使用的特征类型进行分类和讨论。

3.1 基于低级特征的方法

低级特征是在纹理场景中大量可观察的几何基元。绝大多数现有的视觉 SLAM 系统,例如 [22, 62, 70, 91, 127] 在整个定位和建图过程中都利用了这些特征,并在准确性和效率方面达到了非常高的成熟度和效率。但是,如果机器人运行的环境是无纹理的或缺乏系统可以跟踪的特征,则此类方法会由于缺乏特征而失败,因此最近的 SLAM 方法开始同时考虑使用不同级别的特征。

3.1.1 多种特征类型以提高鲁棒性

基于特征的视觉 SLAM 系统依赖于单一类型的特征,当这些特征在所运行的环境中不存在时,很容易出现故障。为了规避这个问题,[99] 中提出的工作建议使用点和线一起在纹理不佳的环境中执行单目 SLAM。线由它们的端点参数化,以促进与基于点的方法的集成。在没有点特征的情况下,这项工作提出了一种仅使用线来初始化系统的新技术。在 [47] 中也采用了相同的地标集来执行立体 SLAM。立体视觉里程计用于跟踪点和线,然后使用高斯牛顿优化通过最小化相应特征的重投影误差来估计相机的运动。在[59]中,点特征的观察与激光扫描相结合,并用于因子图中来估计机器人的姿态。提出了一种结合了占用网格地图和点特征的新地图表示。通过将观察到的特征与地图中的地标相匹配,可以有效地实现闭环和定位。因此,在估计机器人在环境中的轨迹时采用何种类型的特征的灵活性极大地有利于视觉 SLAM 的鲁棒性。

3.1.2 促进实时性能

低级特征生成的地图是稀疏的,却需要大量的计算和内存资源。这是因为检测、提取和匹配特征的过程是 SLAM 流程中计算成本最高的模块之一。

为了实现实时性能,一些系统 [27, 94, 97, 134] 大量利用并行性来执行最初在 PTAM [65] 中提出的跟踪和映射。两个线程同时运行以定位机器人并映射其周围环境 [65, 97]。与跟踪不同,在大多数繁重计算发生的映射线程中延迟是可以容忍的。为了进一步减少计算量,[94] 限制了要提取的特征数量,并使用了一个局部地图,通过该地图进行特征匹配。为了最大化并行性,使用了一个单独的线程来执行循环关闭,并提出了一个同步过程,其中只有当点当前没有被另一个线程处理时,才授予线程访问地图点。

在[27]中,采用了三个并行模块;用于特征检测、提取和匹配的场景流,用于摄像机运动估计的视觉里程计,以及用于闭环和全局一致性的全局 SLAM。

定位和建图也可以由多个机器人车辆以分布式方式完成,同时利用 [134] 中提出的并行性,其中跟踪和图像采集是轻量级过程,在所有 MAV 上并行运行,由于其计算需求,建图时由功能强大的计算机在机外完成。最近在 [102] 中提出了一个单目 SLAM 系统,其中 EKF 和 BA 一起被利用来实现实时的鲁棒性能。ORB 特征和惯性测量用于基于 EKF 的视觉惯性里程计 (VIO) 框架,该框架能够以最小的延迟估计相机运动。为了进一步帮助实时性能,并非所有 ORB 特征都是从 VIO 框架中的视觉帧中提取的,该框架对所有传入帧进行操作。此外,为了规避 EKF 导致的估计误差,使用 BA 估计的全局一致地图会根据选定的关键帧频繁更新,并反馈到 EKF 以纠正任何估计错误。选定的关键帧会经过另一轮特征提取和匹配,因为为 VIO 提取的特征不足以构建鲁棒的地图。闭环在并行线程中运行,以通过执行位置识别和 ORB 特征匹配来纠正累积的错误。一旦检测到循环,就会执行位姿图优化以及 GBA。由于视觉和惯性测量的融合,该方法对突然运动具有鲁棒性,并且能够解决尺度模糊问题。它还结合了 EKF 和 BA 的优点,分别实现了实时性能和鲁棒性。

图 8 总结了可用于加速定位和建图过程并实时完成估计的技术。

3.1.3 解决尺度不确定性

当使用单目相机时,SLAM 系统需要处理固有的尺度不确定性挑战,这是由于难以从单帧中辨别深度而导致的。[127] 中提出了一种基于 EKF 的方法,其中通过融合单目视觉、超声波和大气压力测量来补偿尺度不确定性和间歇性特征缺失。在 [78] 中还看到了多个传感器的融合,其中使用视觉、惯性和距离测量来实现 SLAM 的目标。[82] 中的尺度不确定性被双视图初始化规避。根据它们的相对旋转,欧氏距离,以及它们之间的时间差选择一对图像。然后,根据这些帧之间的匹配特征,使用对极几何来估计尺度。在另一种单目 SLAM 方法 [142] 中,ORB 特征的深度是根据它们与场景中识别的消失点的距离来计算的。此外,在[26]中使用逆深度参数化来恢复场景的规模。

图 8 促进实时性能的技术

虽然 RGB-D 和立体 SLAM 不需要,但采用一种技术来解析地图的比例对于单目 SLAM 是必不可少的。图 9 说明了可用于解决尺度不确定性的技术。

3.1.4 对特征检测/关联失败的恢复能力

在环境中观察或匹配低级特征失败相当于在基于特征的视觉 SLAM 系统的无纹理环境中操作失败。在这两种情况下,系统都缺乏测量约束,导致性能严重下降。在传感器突然运动或场景中存在动态的情况下,视觉系统无法检测或匹配帧之间的特征。

[122] 中描述的原始 EKF-SLAM 的限制之一是它无法处理突然运动。为了克服这个问题,[73] 中提出的方法在过滤器的两个阶段都采用了视觉输入。预测和更新。光流和对极几何用于估计相机的状态转换。在预测阶段使用图像使系统对突然运动和不频繁的数据采集具有鲁棒性。这也消除了对动态模型的需求,并带来了更快、更高效的性能。尽管这种 EKF 变体在特定情况下提高了 SLAM 的鲁棒性和效率,但如果场景中没有特征,它仍然会失败。在 [100] 中提出了 EKF-SLAM 的另一种变体,IMU 测量用于预测阶段,RGB-D 图像用于更新阶段。为了实现全局一致性,执行了位姿图优化。IMU 测量的融合使系统能够在无纹理和动态环境中成功运行。

ORB-SLAM2 [91] 是最先进的视觉 SLAM 系统,它在标准 CPU 上运行时仅基于 ORB 特征实时执行跟踪、映射和闭环。由于对视觉特征的依赖,ORB-SLAM2 在场景中没有 ORB 特征的情况下失败。为此,在 [15] 中提出了里程计和 ORB-SLAM2 的紧密耦合融合,其中运动模型被里程计取代,这支持在场景中无法检测到任何特征时的估计。

类似地,[62] 中提出的方法利用惯性和视觉测量的紧密耦合融合来执行视觉惯性里程计。然后通过闭环检测和全局位姿图优化来实现全局一致性。ORB-SLAM2 的另一种变体可以在 [121] 中找到,其中 ORB 特征被学习的点特征取代,称为 GCNv2。结果表明,所提出的方法在大多数情况下具有与 ORB-SLAM2 相当的性能,但在快速旋转的情况下表现略好。

图 9 解决尺度模糊的技术

场景中的动态也可能导致无法在后续帧中关联特征。[128] 中提出的工作证明了在动态环境中成功执行 RGB-D SLAM 的能力,同时仅观察低级特征。使用基本矩阵,提取属于场景移动部分的特征点。然后,使用高效的 PnP 估计相机在环境中的位姿。然后通过BA进一步优化重投影误差。所提出的方法在实际实验中成功使用,但仅在连续帧之间存在小视差和超过 24 点匹配的假设下。因此,该方法在存在突然运动且环境中没有低级特征的情况下工作会失败。为了提高视觉 SLAM 在动态环境中的性能,[21] 中提出的方法采用了稀疏运动去除方案。贝叶斯滤波器用于计算连续帧之间的相似性和差异性以确定动态特征。消除这些特征后,场景被输入经典的视觉 SLAM 方法来执行姿态估计。这种方法仅适用于场景中存在特征的情况,否则会失败。在 [13] 中发现了另一种对动态场景中发生的错误数据关联具有鲁棒性的方法。该方法基于一种新颖的过滤器,其中姿势被编码为双四元数。ORB 特征观察和地图地标的关联是通过基于光流的方法完成的,这使其对场景中的动态具有鲁棒性。总之,观察场景中缺乏特征、突然的相机运动和动态是无法执行数据关联的主要原因。文献中用于解决这些问题的一些技术包括使用多个传感器来观察场景中的不同信息,并消除涉及动态的观察。表 2 提供了回顾过的基于特征的低级方法的实现细节。

3.2 基于特征的中级方法

中级特征是在环境中观察到的平面或斑点。在难以观察低级特征的无纹理环境中,使用诸如地标之类的特征可以提高 SLAM 性能;以走廊为例。为了观察这些特征,采用了模型拟合方法。因此,在估计精度和需要从环境中计算准确的模型的时间之间存在权衡。

表 2 低级基于特征的方法采用的实现选择

FG 因子图、PG 位姿图、BA 束调整、EKF 扩展卡尔曼滤波器、MAP 最大后验、VT 词汇树、PF 粒子滤波器、FM 特征匹配、BBW 二进制词袋、GN Gauss Newton、LM Levenberg Marquardt、FF 第一帧、PM 先验图、SI 立体初始化、EG 极线几何、IDP 逆深度参数化、Odom Odometry、SBI 小模糊图像重定位、LSO 最小二乘优化、IMI 图像矩不变量 - 表示有关相应元素的实现细节/block 没有提供

单独使用这些特征并不常见,因为将它们与低级和高级特征融合会产生更好的准确性,如 Sect. 3.4.在 [113] 中,提出了一种仅基于 RGB-D 数据的 SLAM 方法。使用代表墙壁和地板的平面构建环境的 3D 地图,同时从场景中移除所有其他对象。RANSAC 用于估计平面表面,然后通过估计它们的法线并提取相应的凸面来对其进行细化。然后,使用 l0 范数最小化算法来维护极有可能表示墙壁或地板的平面,同时最小化包含较小的平面。使用这种方法,可以重建墙壁和地板的地图,如图 10 所示。但是,地图中没有其他特征,这使得它无法用于大多数 SLAM 应用程序。这激发了考虑高级特征的需要,如下一节所述。

3.3 基于高级特征的方法

当期望机器人执行需要场景理解的任务时,例如在灾难后搜索受害者、构建有意义的地图以及抓取或操作特定对象时,感知高级特征是至关重要的。这对于使用低级特征重建的地图来说是非常具有挑战性的,因为它们缺乏表达性的表示,这使得人类更难理解 [39, 46]。高级特征添加了有关场景结构的关键信息,并传达了重建地图每个部分的语义。它们是特定于环境的,并且可能在大小、形状和动态方面有所不同。在城市规模的应用程序中,可能的地标包括树木、建筑物、街道或人行道。另一方面,家具、办公用品和家用电器可以作为室内应用的地标。在本节中,将深入讨论基于高级特征的 SLAM 方法中数据关联的不同方法。然后,将介绍在场景中实现实时性能和处理动态的技术。

3.3.1 将高级特征观察与地标相关联

尽管检测到高级特征并进行语义注释,但在环境中存在同一对象类别的多个实例的情况下,数据关联在高级特征中提出了基本挑战。基于水平特征的视觉 SLAM 系统 [88]。

图 10 基于平面特征的重建地图示意图

在 [95] 中,对象在类别级别而不是实例级别被检测和表征。这是基于这样一个事实,即一个类中的所有对象都有共同的 3D 点,而不管它们的类别如何。这些点称为关键点,用于区分同一类的不同类别。输入的单目帧被传递到目标检测器 YOLO9000 [103],生成的边界框中的 3D 关键点通过另一个卷积神经网络进行定位。使用 Ceres 求解器优化形状和姿势。不是在每一帧上执行对象和关键点检测,而是在连续帧中跟踪对象,从而提高效率和速度。

[45] 中提出了另一种新颖的数据关联方法,用于在先验地图中定位机器人。首先,为每个图像计算查询图,其中顶点表示对象的类和质心,顶点之间的无向边表示满足接近要求。然后通过使用它们之间的欧几里德距离连接来自连续图像的顶点来创建所有图像的合并图。彼此太近的顶点被合并以避免重复。第二步是为每个顶点生成随机游走描述符。也就是说,一个 n×m 矩阵包含 n 次随机游走中 m 个访问过的顶点的标签。第三,查询图将基于相似度得分与全局数据库图相匹配。两个顶点的相似度分数表示它们描述符中相同行的数量。然后使用最高的 k 个匹配来本地化数据库图中的查询图。

在[69]中,语义标记的对象及其相互关系被用于建立输入单目帧之间的对应关系的过程。首先将 RGB 帧传递给 Faster R-CNN 以检测对象。然后,通过首先生成沿线的多个长方体来计算连续图像之间的变换,这些长方体由相机中心和边界框的中心形成,并将它们投影到检测到的边界框上。长方体的生成是在离散的距离和角度上完成的。之后,执行坐标下降以最小化检测到的边界框的角与每个长方体在图像平面中的投影之间的差异。然后删除多余的长方体。然后将剩余的每个长方体用作种子以生成场景,该场景是一组长方体,每个长方体对应于检测到的边界框,基于上下文约束。为了找到生成的场景集之间的对应关系,使用了基于采样的方法。基于语义标签搜索每对场景的对应关系。从每对中挑选三个对应关系,并为每个场景构建参考框架。相应地计算场景之间的变换,并根据剩余对应关系使用计算出的变换拟合的好坏进行评分。然后使用具有最高等级的样本来估计相机姿势之间的转换。

在 [24] 中,如果在多个帧中观察到相同的对象片段,则生成对象假设,并使用有助于闭环的 3D 特征描述符表示。计算当前对象与地图中对象之间的内部对应关系,然后,将对象与实现最高对应数量的假设相关联。如果对应的数量低于阈值,则添加新的对象表示。假设环境中只有一个或几个对象类别的静态实例。使用 OmniMapper [124] 计算基于里程计和 ICP 的机器人姿态的先验估计。基于此,当前帧的片段被投影到与所有先前分割的对象的公共参考框架中。每个段的质心与地图中最近的段质心匹配。为了验证匹配,比较当前段的边界框和与之匹配的段的边界框。如果边界框之间没有足够的重叠,则初始化一个新对象。最终的对象模型是通过在根据相对相机位姿进行转换后聚合所有相应的片段来创建的。然后将对象模型和机器人位姿之间的空间约束添加到 SLAM 系统中。

在 [88] 中,SLAM 和数据关联被视为紧密耦合的问题,并提出了一种新方法来同时估计机器人的位置并将其观察结果与地标相关联。后端方法用于联合解决目标检测和 SLAM 问题。物体被检测到后,由其从RGB-D数据中获得的点云的质心来表示。数据关联和环境中地标的总数都不是先验已知的。因此引入了基于狄利克雷过程的概率模型来建立适当的数据关联。总体而言,建立了一个混合整数非线性问题来估计机器人的姿态、地标位置和给定机器人的相对姿态和观察值的数据关联。在存在同一对象类别的多个实例的情况下,最常见的数据关联方法是 [23] 中提出的距离阈值。所提出的分布式 SLAM 框架中的每个机器人都通过基于视觉和里程计测量的 OmniMapper [124] 执行 SLAM。每个输入的 RGB 图像都被传递到 YOLO 对象检测器。检测到的被分割的对象,在点云中的PFHRGB 特征和相应的模型被提取和匹配。如果检测到至少 12 个对应关系,则执行广义迭代最近点 (GICP) [110] 以计算对象的精细姿势。然后通过在距离阈值内搜索相同检测到的对象类别的实例来执行数据关联。图 11 总结了文献中发现的执行高级特征数据关联的主要方法。

3.3.2 促进实时性能

执行实时定位和映射对于一些机器人任务非常关键,尤其是那些在恶劣环境中执行的搜索和救援任务。然而,SLAM流程中某些模块的处理时间,例如对象检测和分割,超出了这个范围。在本节中,重点将专注于用于促进高级基于特征的 SLAM 方法的实时性能的技术。[95] 中提出的工作建议不对所有输入帧执行目标检测。相反,在关键帧中检测到对象后,会在连续帧中对其进行跟踪,这大大减少了处理数据所需的时间。出于同样的目的,[24] 中提出的系统通过将场景划分为平面和非平面(对象)段来对场景进行预处理。移除平面线段后,对象线段会被细化并与地图中已有的地标相关联。使用二次曲线表示对象是一种替代技术,可以在视觉 SLAM 系统中使用语义标记的地标来减少计算量。[93] 中提出的工作使用对象检测器作为传感器,其中检测到的边界框用于识别表示相应对象的二次曲线的参数。二次曲线提供关于对象大小、位置和方向的信息,编码为十个独立参数。提出了一种几何误差公式来解释物体检测的空间不确定性,例如由遮挡引起的。使用二次曲线而不是详细的对象模型可以提高系统的速度,但会以重建在广泛应用中有用的信息丰富的地图为代价。图 12 提供了有助于提高基于特征的高级视觉SLAM 系统效率的讨论技术的插图。

图 11 高级特征数据关联技术的图解

3.3.3 处理场景中的动态

大多数 SLAM 系统是在不切实际的假设环境是静态的情况下开发的。文献中只提出了少数考虑场景动态的系统。这些系统中的大多数检测观察场景的非静止部分,将其消除,然后根据剩余的静态环境执行 SLAM。这种方法的一个例子可以在[5]中找到,其中移动物体被跟踪,静止物体被用来生成被调查环境的静态地图。使用激光扫描仪进行观察,并使用多级 RANSAC 方法进行数据关联。

不同的是,[137] 中提出的工作使用长方体作为对象的表示,其中提出了对象 SLAM 系统。该系统依赖于来自单目相机的观察,并利用场景中的动态对象通过将运动模型约束添加到用于解决优化问题的多视图 BA 公式来改进定位。

在连续帧中跟踪属于它们的对象和特征点,估计并使用运动模型来提高轨迹和地图估计的准确性。利用动态对象的运动模型而不是忽略它们会对系统施加额外的约束,从而提高估计的准确性。

表 3 提供了前几节中所有回顾过的基于特征的高级方法的总结。

3.4 混合基于特征的方法

在前几节中,讨论和分析了采用单一类型特征的 SLAM系统。每个级别的特征都通过一种独特的方式增强了图12中SLAM的结果。

表 3 高级基于特征的 SLAM 方法采用的实现选择

- 表明关于未提供相应的元素/块

例如,基于观察低级特征的定位方法在准确性和效率方面已经达到了很高的成熟度。然而,他们产生的地图是高度稀疏的,没有任何语义指示。利用场景中的中级特征(例如平面)可以在无纹理环境

图12通过基于高级特征的视觉 SLAM 方法实现实时性能的技术

中获得更高的重建密度和更强的鲁棒性。为了创建人类可以轻松感知的有意义的地图,最近的 SLAM 方法有效地利用了新兴的对象检测技术,并在整个定位和映射过程中采用了语义标记的观察。为了充分利用场景中可以视觉观察到的内容并增强其整体结果,SLAM 系统最近开始在两个或更多级别上使用特征,如本节所述。在本节中,将回顾采用多层次特征的基于特征的视觉 SLAM 方法。审查的系统根据用于执行 SLAM 的功能分为三类;低级和中级基于特征的方法,低级和高级基于特征的方法,以及低级、中级和高级基于特征的方法。表 4 总结了审查过的方法所采用的实施选择。

3.4.1 基于低级和中级特征的方法

[28、52、67、138]中提出的系统采用低级和中级特征来实现 SLAM 的目标。

在某些环境中,例如走廊,平面 SLAM 变得不受约束。融合平面和点可以极大地增强 SLAM 在 [138] 中提出的环境中的鲁棒性,其中使用弹出式 3D 模型在单目帧中检测到的平面用于估计相机轨迹和 3D 地图环境。在不同的帧中,平面是基于三个量的加权和关联的:它们的法线之间的差异、它们之间的距离以及它们的投影之间的重叠。对于每个传入的单目帧,计算 ORB 描述符并使用词袋方法来检测循环。在检测到环路后,确定相应的平面对并相应地修改因子图。

在 [52] 中采用了不同的几何基元和平面。使用图公式的最小二乘优化,其中涉及平面约束,用于解决 SLAM 问题。检测到的点被限制在一个特定的平面上,由其在环境中的法线和相对于相机的深度参数化。环境中平面之间的角度也被视为约束。所有约束都耦合到成本函数中,从而解决了由此产生的非线性最小二乘问题。

[67] 中提出了第三种变体,其中提出了基于平面和点的 RGB-D SLAM 方法。每个传入的图像被划分为间隔,然后根据其中存在的平面进行标记。帧的方向是根据其中最主要的平面的方向估计的,而帧之间的平移是根据匹配的 SIFT 特征和 RANSAC 计算的。全局对齐和闭环是基于低级和中级特征的融合进行的,这有助于提高所提出方法的鲁棒性。

最近在 [144] 中提出了一种 RGB-D SLAM,其中利用点和平面来估计相机的姿势和周围环境的地图。ORB 特征从 RGB 帧中提取并由 ORB-SLAM2 的 RGB-D 版本处理。另一方面,深度帧用于从场景中提取平面及其轮廓点。轮廓点用于在重建的地图中构建平面之间的空间和几何约束。使用了一种新颖的平面数据关联技术,其中使用两个平面之间的角度来判断它们是垂直还是平行,同时考虑到测量噪声。如果观察到的平面的点与地图中的平面之间的距离低于特定阈值,则两个平面匹配。与场景中出现的平面垂直的假想平面也被利用并视为姿势估计过程中的其他观察到的特征。通过 Levenberg-Marquardt 优化器构建和求解因子图。所提出的平面数据关联方法比考虑平面法线和/或平面距离的方法更稳健,因为它考虑了不可避免的测量噪声。

超像素是中级特征,被视为在输入帧中表现出相似强度的平面区域。使用超像素具有能够重建纹理不佳的场景的优势。然而,这些特征没有一个健壮的描述符,这使得很难在不同的图像中匹配它们。在 [28] 中,提出了一种基于特征的单目 SLAM 方法,将超像素与 PTAM 相结合,其中 PTAM 关键帧被划分为不规则大小的超像素。要估计的地图状态由所有关键帧的位姿、点特征的欧几里得坐标和平面超像素的参数组成。两个关键帧(其位姿已使用 PTAM 计算)用于初始化超像素。使用蒙特卡罗方法提取和匹配关键帧中的所有超像素。BA用于优化相机和3D点的状态,然后用于估计超像素的参数。在每个新的关键帧上,所有超像素被重新投影以搜索匹配。当重投影误差降至阈值以下时,匹配作为约束添加到优化问题中。

表4 基于混合特征的 SLAM 方法采用的实现选择

另一项利用点特征和平面区域融合的工作,在这种情况下表示为平方基准标记,在环境中可以在 [90] 中找到。除了由于使用点特征而实现的稳健性之外,在该系统中使用基准标记还具有几个优点,例如消除尺度不确定性、在区分点特征可能具有挑战性的重复环境中的稳健性以及特征随时间的不变性。

3.4.2 基于低级和高级特征的方法

基于在 [10, 26, 37, 48, 71, 105, 106、118、130]。这种方法在保持鲁棒性的同时展示了高水平的表达能力。

[48] 中提出的系统主要在单目 RGB 帧上进行跟踪、对象识别和映射。表现出独特的几何和/或语义信息的帧被选为关键帧。在包含至少5个点对应、最小视差角为 3° 且必须表现出可接受的几何条件的多个帧中检测到语义标记的对象后,将其添加到地图中。为了区分场景中相同对象模型的实例,在给定地图比例的情况下假设检测到的实例在世界框架中的姿态,并计算与先前检测到的实例的重叠。如果未检测到重叠,则将新对象实例添加到地图中。如果还不知道地图的比例尺,则假定顺序检测到的对象属于地图中的同一对象实例。使用 k-d 树搜索在测量值和对象模型之间建立对应关系。为了更加稳健,计算输入图像中的 ORB 特征并建立 2D-3D 对应关系。

几何特征可以用于检测场景中的对象,而不是独立使用低级特征,如 [37] 中提出的,其中对象检测和 SLAM 是使用一种新的 BA 公式(称为语义 BA)针对 2D 和 3D 传感器联合完成的.在接收到新图像后,将提取特征并将其与对象模型数据库中的特征进行匹配。然后为与对象的每组对应关系创建一个验证图。然后将特征与数据库中的模型匹配的帧转换为公共姿势,相应语义特征的成本是检测到的特征的重投影误差,该误差由匹配的置信度加权.在 3D 情况下,当多次检测到一个对象时,语义边缘的成本函数包括将一个检测到的特征重新投影到另一个特征中。特征与模型中的公共点匹配的帧被称为具有由图中的边表示的虚拟匹配。出于一致性目的,将从 SLAM 获得的几何约束添加到图中。生成的验证图经过优化以获得所有约束的最小重投影误差。

在某些环境中,例如教育实体和医院,每个房间都分配有一个唯一的标识符,该标识符可以作为 SLAM 系统中的地标,如 [106] 中所述。在消除与墙壁相对应的点后,采用基于 SVM 分类器的门牌检测器。门牌中包含的字符使用光学字符识别 (OCR) 进行识别。从激光数据中提取的线条以及来自门牌检测器的测量值随后被传递到映射器以映射环境。

在 [118] 中,通用对象的观察被用于扩展 RGB-D ORB-SLAM2。对象通过 k-d 树被检测、分割并与地图中的地标相关联。物体的姿态是使用 ORB-SLAM 确定的。检测到的对象存储有三条信息:对象的 RGB 点云、来自 ORB-SLAM 的姿态和累积的检测置信度。类标签是根据对象检测的整个历史确定的。通过基于最新的轨迹估计投影点云,可以显式地构建环境的稀疏地图。最后,对象点作为欧几里得坐标插入到 SLAM 状态向量中,因此在后续帧中接收到新数据时会对其进行跟踪和进一步细化。

EKF-Monocular-SLAM、运动结构(SfM)和视觉识别结合在[26]中提出的系统中,通过将图像中的 SURF 点与数据库中的对象模型相关联来检测对象。然后使用 RANSAC 对此类关联进行几何验证。之后,PnP 算法或 DLT 算法分别用于计算非平面和平面模型的变换或单应矩阵,然后用于细化对象的位姿。匹配的点被输入到基于 EKF-Monocular-SLAM 的单目 SLAM 模块中,其中要估计的状态向量由相机运动参数和点特征以及检测到的物体的几何形状组成。

另一方面,观察环境中的某些场景可能会表现出动态性,如果不加以考虑,则会阻碍 SLAM 系统的整体性能。因此,大多数 SLAM 系统假设在整个定位和建图过程中物体保持静止的场景和映射过程。[105] 中提出的 SLAM 系统通过在操作之前从观察到的场景中移除动态对象来消除这种假设。更具体地说,每个 RGB-D 帧都经过处理,以掩盖使用基于 RGB-D 的方法检测到人的区域 [58]。剩余的数据图像是一个静态环境,可以使用标准的视觉 SLAM 算法进行处理。在 [130] 中可以找到类似的方法,其中动态对象通过计算有效的逐步方法从场景中分割出来,以检测对象并提取其轮廓。然后使用一种新颖的查找表方法基于点特征映射静态环境,该方法使用来自环境的大量不同、均匀分布的点特征作为目标,这提高了映射和定位的准确性。

同样,[116] 中提出了一种从观察场景中提取非静态对象的在线方法,从而提高 RGB-D SLAM 在非静态环境中的性能。该方法包括三个主要阶段,从图像差分开始,以检测场景中的任何移动物体。然后使用粒子滤波器来跟踪连续 RGB-D 帧中的运动补丁,这使得它比跟踪特定对象模型的方法更通用。最后,通过矢量量化对运动对象进行分割后,最大后验用于识别场景的前景。为了可靠地运行,该方法要求观察到的场景主要由静态对象组成并包含平面。

随着视觉 SLAM 重建的场景越来越大,将特征与点匹配变得更具挑战性,因为有些地方表现出相似的外观。为了规避这一点,[71] 中提出的工作采用了一个粗略的位置识别模块,其中包含公共点的帧使用重叠视图聚类算法在位置类下分组在一起。然后基于哈里斯角的简要描述符之间的汉明距离完成特征匹配。

数据关联和 SLAM 是紧密耦合的问题,除了在少数研究工作中将它们作为两个优化子问题来解决之外,它们没有被联合考虑。估计每个观察-地标对的数据关联,然后用于估计传感器和地标姿势。使用这种方法,不正确的数据关联会严重降低传感器和地标姿态估计的准确性。此外,当获得相同地标的更精细测量时,不能重新考虑由于其模糊性而被丢弃的测量。

这些限制推动了 [10] 中提出的 SLAM 算法的变化,其中在单个优化问题中考虑了数据关联以及传感器和地标姿态的估计。不是将每个观察与单个地标相关联,而是使用期望最大化来考虑数据关联的整个密度,同时估计传感器和地标的姿势,这被称为软数据关联。估计基于惯性测量、ORB 特征和从对象检测器获得的语义信息。观察到的地标的深度是在该地标的边界框中检测到的 ORB 特征的中值。如果环境中存在同一对象的多个实例,则使用马氏距离来决定数据关联。在 [4] 中提出了这项工作的扩展,其中语义结构的推断方式不同。不是依赖 ORB 特征,而是使用堆叠的沙漏卷积网络来检测在每个边界框中找到的对象的语义特征。结构约束用于将每个语义特征与相应的地标相关联,然后使用 Kabsch 算法来估计对象的方向。在 [33] 中可以找到一种非常相似的方法,其区别在于它采用非高斯传感器模型,而不是大多数提出的方法,其中总是假设高斯模型。

[143] 中提出的系统结合了高级语义标记特征和低级 CNN 特征,通过粗到细的方法对移动机器人进行定位。通过首先比较图像中出现的对象,将观察结果与地图中的视觉帧进行匹配。然后根据图像的 CNN 特征进行更精细的搜索。相机的估计姿势以及特征最终使用 BA 进行细化。

3.4.3 低、中、高层次的基于特征的方法

在[54]和[137]中,SLAM系统是基于所有三个层次的特征开发的;点、平面和对象。

[54] 中提出的系统采用 RGB-D 传感器来观察环境中的特征。该系统的实时、高效性能是可以实现的,因为对象是通过不需要高度详细表示的二次曲线来表示的。SLAM 问题被表述为一个因子图,其中使用了各种类型的因子,包括对点、对象和平面以及点-平面、平面-平面和对象-平面关系的观察。ORB-SLAM2 的一种变体用于检测环境中的点,然后在从粗到细的金字塔中的帧之间进行匹配。Faster R-CNN 用于检测传入帧中的对象,然后计算表示对象的相应椭圆体。如果对象的单个实例出现在环境中,则跨帧使用语义标签将观察结果与对象相关联。否则,数据关联是通过最近邻匹配实现的。使用有组织的点云分割技术对表示场景的点云进行分割以提取平面。平面使用它们之间的距离和它们的法线之间的差异的阈值来关联。在属于它们的平面和点、对象和它们所在的相应平面之间以及假设曼哈顿世界的多个平面之间添加因子。采用词袋方法检测闭环。

与最先进的 SLAM 系统相比,使用通过单目相机观察到的点、平面和对象,[137] 中提出的工作实现了改进的定位,尤其是在没有闭环的情况下。这归因于物体和平面的远程可观测性,这有助于新旧测量之间的更多关联。对象被表示为长方体,平面边缘被检测然后反向投影以获得它们的参数,并添加点以进一步约束相机姿势。BA 公式与四种类型的约束一起使用:相机平面、相机对象、对象平面和点平面。生成的地图是密集的,并表现出高水平的表现力。

4 结论

同时定位和映射是机器人社区中最主要的研究问题,在该领域投入了大量的精力来生成新的方法,以最大限度地提高其鲁棒性和可靠性。在从要重建的环境中获取第一组测量值后,初始化机器人的轨迹和地图。随后的测量通过不同流程的流水线,这些流程在每个 SLAM 系统中实现不同,但确实达到了相同的目的。这些过程包括数据关联、闭环、重新定位以及轨迹和地图估计。

在本文中,我们调查了大多数最先进的视觉 SLAM 解决方案,这些解决方案利用特征来定位机器人并绘制其周围环境。我们根据它们所依赖的特征类型将基于特征的视觉 SLAM 方法分类;低级、中级、高级或混合功能。对每个类别的优势和劣势进行了彻底调查,并在适用时强调了每个解决方案克服的挑战。表格中提供了同一类别方法之间的比较,比较了实现 SLAM 管道的每个组件所采用的方法。

根据我们的深入审查,我们认为以下挑战仍未解决。

1. 普遍性 当前的 SLAM 解决方案缺乏适应机器人运行环境的能力。因为它们依赖于某种类型的特征。未能在环境中检测到这些特征会导致 SLAM 结果的准确性发生灾难性的下降。这可能是由于环境中间歇性地存在特征或所采用的视觉系统无法检测到它们。如果 SLAM 系统依赖于一组非常有限的特征,例如神经网络可以检测的对象集,而不利用图像中的其他元素,如平面、几何图元或新对象,则会发生前者网络没有经过训练来检测。后者可能发生在具有挑战性的环境中或由于突然运动。为了应对这些挑战,SLAM 使用的视觉系统应该灵活地适应基于机器人运行环境的各种类型的特征,例如在室内和室外环境之间的过渡期间。

2. 鲁棒性 在SLAM流程中存在来自多个来源的噪声时,估计算法有时很难生成地图和轨迹的最佳估计。已经进行了非常有限的研究工作来保证 SLAM 估计的最优性,或者至少验证估计是否是最优的 [17-19, 55-57]。为此,例如,通过神经网络对 SLAM 估计进行后处理可能会显着改善估计的轨迹和重建的地图,从而形成更强大的 SLAM 系统。

3. 场景理解和表达表示自从 2012 年深度学习取得突破以来,目标检测器在 SLAM 中得到了大量利用。然而,当前的目标检测器没有利用检测之间的任何时间或空间关系[117]。如果考虑到这些限制,预计检测的效率和可靠性会提高。我们目前目睹的软件和硬件技术的进步应该针对开发一种能够克服所有这些挑战的环境感知、无错误、通用的视觉 SLAM 算法。

致谢 本出版物基于哈利法科技大学资助的工作,奖励编号为 RC1-2018-KUCARS。

遵守道德标准 利益冲突 通讯作者代表所有作者声明不存在利益冲突

参考文献

1. Alahi A, Ortiz R, Vandergheynst P (2012) Freak: fast retina keypoint.In: 2012 IEEE conference on computer vision and pattern recognition, pp 510–517.https ://doi.org/10.1109/ CVPR.2012.62477 15

2. Angeli A, Doncieux S, Meyer J, Filliat D (2008) Real-time visual loop-closure detection.In: 2008 IEEE international confer- ence on robotics and automation, pp 1842–1847.https ://doi.org/10.1109/ROBOT .2008.45434 75

3. Annaiyan A, Olivares-Mendez MA, Voos H (2017) Real-time graph-based slam in unknown environments using a small UAV.In: 2017 international conference on unmanned aircraft systems (ICUAS), pp 1118–1123.https ://doi.org/10.1109/ICUAS .2017.79915 24

4. Atanasov N, Bowman SL, Daniilidis K, Pappas GJ (2018) A unify- ing view of geometry, semantics, and data association in slam.In: Proceedings of the twenty-seventh international joint con- ference on artificial intelligence, IJCAI-18.International Joint Conferences on Artificial Intelligence Organization, pp 5204– 5208. https ://doi.org/10.24963 /ijcai .2018/722

5. Bahraini MS, Bozorg M, Rad AB (2018) Slam in dynamic envi- ronments via ml-ransac.Mechatronics 49:105–118.https ://doi.org/10.1016/j.mecha troni cs.2017.12.002

6. Bay H, Ess A, Tuytelaars T, Gool LV (2008) Speeded-up robust features (surf ).Similarity matching in computer vision and mul- timedia.Comput Vis Image Understand 110(3):346–359.https ://doi.org/10.1016/j.cviu.2007.09.014

7. Beaudet PR (1978) Rotationally invariant image operators.In: Proceedings of the 4th international joint conference on pat- tern recognition.Kyoto, pp 579–583

8. Besl PJ, McKay ND (1992) A method for registration of 3-d shapes.IEEE Trans Pattern Anal Mach Intell 14(2):239–256.https ://doi.org/10.1109/34.12179 1

9. Bosse M, Zlot R, Flick P (2012) Zebedee: design of a spring- mounted 3-d range sensor with application to mobile mapping.IEEE Trans Robot 28(5):1104–1119.https ://doi.org/10.1109/TRO.2012.22009 90

10. Bowman SL, Atanasov N, Daniilidis K, Pappas GJ (2017) Proba- bilistic data association for semantic slam.In: 2017 IEEE inter- national conference on robotics and automation (ICRA), pp 1722–1729 (2017).https ://doi.org/10.1109/ICRA.2017.79892 03

11. Brandli C, Berner R, Yang M, Liu S, Delbruck T (2014) A 240 × 180 130 db 3

综述 | 基于特征的视觉同步定位和建图相关推荐

  1. 低成本激光和视觉相结合的同步定位与建图研究

    低成本激光和视觉相结合的同步定位与建图研究 作者 尹磊,欧勇盛,江国来,彭建盛 文章目录 低成本激光和视觉相结合的同步定位与建图研究 1. 引言 2. 主要工作 3. 基于图优化的同步定位与地图构建框 ...

  2. 视觉同时定位与建图(vSLAM)

    Visual simultaneous localization and mapping: a survey 内容翻译自以下论文,不当之处敬请指正. Fuentes-Pacheco J, Ruiz-A ...

  3. 综述|深度学习在SLAM定位与建图中的应用(近250篇参考文献)

    作者丨Jasper@知乎 编辑丨Realcat  计算机视觉SLAM " 近年来深度学习被广泛应用于定位与建图中.相比于传统的手动建模方法,深度学习提供了一种数据驱动的解决方案,并逐步发展成 ...

  4. 在多变环境中长期定位和建图的通用框架

    点云PCL免费知识星球,点云论文速读. 文章:A General Framework for Lifelong Localization and Mapping in Changing Environ ...

  5. 轻量化固态激光雷达的三维定位与建图

    点云PCL免费知识星球,点云论文速读. 文章:Lightweight 3-D Localization and Mapping for Solid-State LiDAR 作者:Han Wang, C ...

  6. se2lam翻译:基于 SE (2)-XYZ 约束的地面车辆视觉-里程计定位与建图

    摘要-本文关注的是地面车辆使用里程计和单目视觉传感器的SLAM问题,为了改进基于视觉的地面车辆估计精度,研究人员利用了近似平面运动的约束,通常将其作为 SE (3)位姿的随机约束来实现,在本文中提出了 ...

  7. 综述|深度学习在SLAM定位与建图中的应用(近250篇参考文献)_3D视觉工坊的博客-CSDN博客

    综述|深度学习在SLAM定位与建图中的应用(近250篇参考文献)_3D视觉工坊的博客-CSDN博客

  8. <Notes>城市复杂环境的视觉定位与建图(报告人:上交邹丹平教授)

    城市复杂环境的视觉定位与建图 出处:2022-05-19鹏城实验室线上分享 报告人:上交邹丹平教授 Google scholar 整理人:高斯球 其他资料:2018年邹丹平老师在北京大学题目为&quo ...

  9. ICRA2021| Intensity-SLAM:基于强度辅助的大规模环境定位和建图

    论文.代码地址:在公众号「计算机视觉工坊」,后台回复「Intensity-SLAM」,即可直接下载. 摘要:SLAM是一项基于传感器感知(如LiDAR和相机)可用于估计机器人位置并重建环境的任务.它广 ...

  10. 初识视觉SLAM 用相机解决定位和建图问题

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 引言:视 ...

最新文章

  1. [转]清华梦的粉碎—写给清华大学的退学申请
  2. java面试题解惑_JAVA面试题解惑系列(五)——传了值还是传了引用?
  3. html课表插件,课程表插件Timetables(原创)
  4. Windows下UEFI环境的搭建
  5. python同时满足两个条件_python算法-快速寻找满足条件的两个数
  6. java 守护进程 linux_Java实现Linux下服务器程序的双守护进程
  7. 微型计算机主机箱内的所有部件均由,计算机应用基础模拟题
  8. VS2022支持.net4.0和.net4.5SDK
  9. Android数据库程序开发必备工具SqliteDev
  10. 小米安卓java模拟器手机版_Android P(9.0) 行为变更完美适配WebView(小米手机也适用)...
  11. QQ获取好友列表接口 -
  12. lvuaagentinstbaseroot_桌面小助手UniAgent删除指南
  13. 色彩构成与搭配——色彩的设计
  14. 手写笔记软件android,有笔没笔一样写 五款安卓手写笔记APP
  15. 两个ViewControllerScene互相show,全局变量失效?简直就是zuo!
  16. 软件项目量化管理(CMMI高成熟度)实践经验谈——之概述篇
  17. [动态内存分配] Allocaotrs 1/3 : KR
  18. 计算机键盘被锁怎么解,解开电脑键盘锁的小窍门
  19. Chicken first or egg?
  20. VisualStdio2013旗舰版激活码-注册码.

热门文章

  1. STM32寄存器操作端口模式SDA_OUT()/SDA_IN()
  2. SpringBoot 1.快速搭建一个 SpringBoot Maven工程
  3. 【一步一步】Spring 源码环境搭建
  4. 电商网站主动取消客户已支付成功订单感想
  5. 【转】C# 3.0 和VS2008 bug 收集
  6. 通过HttpClient转发/调用HTTP请求
  7. SpringAOP 学习笔记
  8. c# 存储图片到oracle,c# winform 读取oracle中blob字段的图片并且显示到pictureBox里 保存进库...
  9. java list增改查_Java编程通过list接口实现数据的增删改查代码示例
  10. c语言= 什么意思,C语言=是什么意思?