新闻  |   论坛  |   博客  |   在线研讨会
综述 | 基于特征的视觉同步定位和建图(2)
计算机视觉工坊 | 2022-04-10 20:20:11    阅读:652   发布文章

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 总结了审查过的方法所采用的实施选择。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客