论文创新基本和之前一致,只是比之前表达更加规范化,此外添加了很多有趣实验验证,没有余力可以不看这篇论文,之前那篇看完就够了

摘要

位置识别是机器人导航中的一个关键模块。现有的研究路线主要集中在视觉位置识别,即仅根据外观识别以前访问过的地方。在本文中,我们通过基于结构化外观的位置识别,即从距离传感器来解决结构化的位置识别问题。扩展了我们以前关于具有旋转不变性的空间描述子的工作,该描述子完成了当横滚-俯仰运动不严重时对旋转(航向)和平移都鲁棒的通用描述子。我们引入了两个子描述子,启用拓扑位置检索,然后进行 1 自由度半度量定位,从而弥合了拓扑位置检索和度量定位之间的差距。我们从环境复杂性和规模两个方面对所提出的方法进行了全面的评价。源代码已经提供,可以很容易地集成到现有的激光雷达同时定位与建图(SLAM)中。

引言

识别以前访问过的地方对于各种机器人任务 (例如,同时定位与建图 (SLAM) 中的闭环检测[1]、被绑架机器人的全局定位[2]或多机器人建图[3]) 是重要的。在计算机视觉和机器人领域中,用一组紧凑的表示来描述一个位置已经得到了深入的解决,产生了许多最先进的视觉位置识别方法[4,5,6,7]。与视觉位置识别研究的蓬勃发展相反,距离传感器的研究仍然缺乏对这一全局定位问题的坚实解决方案。

最近的研究已经指出[1,2,8,9,10,11],结构信息可能比外观更有效,特别是在户外环境中。这些研究试图克服由无结构、无序和稀疏范围的传感器数据造成的主要瓶颈,这些特征使得使用距离传感器的输入数据比像素化的图像数据更困难。已有的方法侧重于对位置进行简洁的概括,但很少能在结构化的位置识别中实现不变性。

我们在[1]中提出的这篇论文的初步版本试图通过捕获当横滚俯仰扰动级别不严重 (例如,低于 10◦10^◦10◦) 时的最高的结构点来建立这种紧凑的表示,例如轮式机器人或缓慢移动的手持系统。这一策略使我们能够针对LiDAR 测量的潜在结构变化(例如,动态物体和季节变化) 实现鲁棒性。尽管我们之前的 Scan Context 显示了有意义的性能,但该算法无法实现横向不变性,并且使用暴力搜索时效率低下。克服了 [1] 中的这些限制,我们完成了包括旋转和横向鲁棒性的算法,从而为距离传感器引入了一种通用的结构化位置识别方法。其次,改进算法使用子描述子,改进了以往的蛮力搜索方法,使搜索速度提高了一个数量级。总而言之,我们的新贡献是:

  • 对横向/旋转变化的鲁棒性:在车道水平变化不可避免的城市环境中,缺乏横向不变性可能是一个关键问题。为了解决这一问题,我们将先前的描述子泛化来同时包含横向和旋转鲁棒性。这是通过基于城市道路假设的 Scan Context 增强实现的。
  • 半度量定位:结合位置检索和度量定位,我们的全局位置识别方法弥补了拓扑定位和度量定位之间的差距。该方法不仅提供了检索到的地图位置索引,而且为迭代最近点 (ICP) 等度量改进提供了1-DOF (偏航或横向) 的初始猜测。
  • 轻量级和模块独立性:作为一种全局定位器,所提出的方法不需要先验知识或任何几何约束 (例如,里程计)。这个实现是轻量级的,只需要一个 C++ 文件和对应的头文件就可以实现,并且很容易集成到现有的 SLAM 框架中。
  • CPU上的实时性能:通过引入紧凑概括的子描述子和键,我们实现了大幅降的计算资源的下降。基于树搜索的键检索代替了简单的逐像素比较,然后是基于预对齐的键对齐。我们的方法可以实时运行,在没有 GPU 的情况下支持高达100赫兹的运行频率 (例如,在 KITTI 00[12] 中平均需要 7.4ms)。
  • 广泛验证:我们在各种具有挑战性的测试场景中评估所提出的方法,以验证单任务和多任务场景。我们注意到由于SLAM 研究缺少对匹配分布的评估,现有的准确率-召回率曲线可能无法完全捕捉闭环检测性能。我们建议使用 DR (distribution-recall) 曲线来衡量有意义的闭环的召回率和它们的分布。

相关工作

在这一部分中,我们从视觉和结构两个方面对位置识别的文献进行了综述。我们简要回顾了最近的位置识别工作,重点是传感器形式以及全局和局部描述子。

A. 用于视觉感知的位置识别

在视觉识别方面,对地点概述的局部和全局方面进行了研究。基于局部描述的方法依赖于检测和描述手工设定的局部关键点 (即, 一个小 patch) [13,14]。基于这些局部描述子,应用贝叶斯推理 [4] 或词袋词汇树 [7] 进行位置识别。Cadena等人提出了融合词袋和三维几何的条件随机场 (CRF) 用于双目相机系统。

与局部描述子相比,全局描述子在表示上更紧凑,对局部噪声具有较强的鲁棒性。整个图像由单个压缩的表示(例如,固定大小的向量 [16,17] 或缩小的图像 [5] )概括,而不维护一组局部关键点的描述子。同样,与局部描述子一样,最近对全局描述子的研究通过利用结构信息提高了性能。Oertel 等人报告说 [11],在制作全局描述子时使用结构信息比仅使用外观的方法具有更高的性能。Mo and Sattar [10] 将重建的 3D 稀疏点传入 LiDAR 描述子工作流,该工作流的性能优于仅基于外观的全局描述子。

B. 用于距离感知的位置识别

  1. LiDAR:基于 LiDAR 的位置识别的早期阶段主要关注 2D 范围数据 [18,19]。Olson 提出了基于相关扫描匹配的二维 LiDAR 闭环检测算法 [20,21]。随着 3D 激光雷达的出现,三维点云概括引起了人们的关注。最初的 3D LiDAR 位置识别方法[22,23,24] 基于局部关键点,类似于上述视觉领域中的早期历史。

    来自 3D LiDAR 的点云在不同方面对位置识别问题构成了挑战。首先,数据是非结构化的,没有恒定和一致的网格密度。其次,数据稀疏性随着距离的增大而增大,目标对象密度随感知范围的不同而变化。这些传感器的特性使得局部描述子不够稳定,因此,对局部噪声和不一致的点密度具有较强鲁棒性的数据概述单元是首选。M2DP [25] 将单个 LiDAR 扫描压缩为一个全局描述子 (即 192D 向量),该描述子对噪声输入具有很强的鲁棒性。PointNetVLAD [26] 利用基于学习的方法将一个位置概括为单个向量表示。

    然而,尽管全局描述子的性能和鲁棒性较好,但与基于局部的方法相比,它们的一个缺点是不能确保不变性。如 [2] 所述,这些全局描述子对变换 (例如,航向变化) 的不变性较低,因为变换后的局部点坐标可能产生不同的编码并导致位置识别失败 (图1)。最近,与我们的方法类似,一种半手工的航向不变的特征学习方法 LocNet [27] 被提出。然而,与 LocNet 相比,在保持当前最先进的全局点云描述子的性能的同时,不仅需要实现旋转不变性,而且需要实现平移不变性。

    在这一研究领域中,我们考察了局部特征,例如分段或高度。例如,DUB́e 等人提出了一种基于分段的全局定位方法,使用手工设计的分段描述子 [29] 和 学习得到的分段编码 [28]。他们通过几何一致性检查恢复了两个匹配帧之间的相对变换,即使在反向重新访问等严重视角变化的情况下也可以征程工作。我们的初步工作,Scan Context [1],提出了基于周围结构高度来生成一种 2D 描述子。这一描述子获得了旋转不变性,并得到了相对偏航角度。由于这项工作,一些研究者 [30,31] 试图同时估计两次扫描之间的相对偏航和它们的相似性。基于学习的方法包括基于半学习 [32,2] 和完全学习的方法 [30,31]。

  1. Radar:最近,长距可感知调频连续波 (FMCW) radar 在机器人应用中受到重视 [33,34]。与相机和激光雷达相比,Radar 提供了更远的距离和更好的鲁棒性;然而,radar 位置识别方法仍然不够成熟。利用 radar 数据的类似图像的格式,一些研究利用计算机视觉技术在局部 [35] 和全局描述 [36,37] 层面描述 radar 图像。然而,radar 图像的投影模型不可避免地会消除生成自上而下视图的高度信息。为了处理这种高度损失,Hong等人 [38] 使用 LiDAR 描述子 M2DP[25],但使用像素的强度代替点的高度。同样,[34] 通过用强度替换高度来显示生成 Scan Context 的可行性。

对结构位置识别的要求

A. 术语和问题定义

我们首先定义我们的位置识别问题。当机器人穿越环境时,一组距离传感器测量结果会随着时间戳的增加而被流式传输。我们将在时间 ttt 的某一空间位置 ltl_tlt​ 处获取的每个单个传感器测量值 ztz_tzt​ 视为一个位置。地图是一个数据库,是机器人开始执行任务后所有被流式传输的测量数据的集合。然后,我们的位置识别问题就可以定义为在地图中查找待查询地点的重新访问的地点。同样重要的是要可信地决定地图上是否没有重新访问的地方。如果两个位置的空间位置之间的欧几里德距离小于某个阈值 (即,∣la−lb∣<δl|l_a - l_b| < \delta_l∣la​−lb​∣<δl​),则时间上大于特定窗口尺寸 (即,∣ta−tb∣>δt|t_a - t_b| > \delta_t∣ta​−tb​∣>δt​) 的两个位置 aaa 和 bbb 满足重新访问的定义。

为了构建这样的位置识别系统,需要两个子模块。第一个是描述函数 f(⋅)f(\cdot)f(⋅)。为了便于处理有噪声或大量的原始测量值,原始测量值 ztz_tzt​ 被编码为更紧凑的形式,称为描述子 ft=f(zt)f_t = f(z_t)ft​=f(zt​)。二是定义相似度函数 sim(⋅,⋅)sim(\cdot,\cdot)sim(⋅,⋅) 或距离函数 D(⋅,⋅)D(\cdot,\cdot)D(⋅,⋅) 的检索。它接受两个描述子,并返回描述子空间中的相似性或距离标量值。然后,利用描述函数和相似度函数,在给定待查询测量值 zzz 和地图的情况下,位置识别问题可以被简化为最近邻搜索问题。如果描述子距离 D(fa,fb)D(f_a, f_b)D(fa​,fb​) 低于阈值 τ\tauτ,人们可以得出结论,两个位置 aaa 和 bbb 的是相同的。

B. 不变性

大多数 LiDAR 位置识别方法 [25,28,32,31] 已经在几乎没有动态物体或者视角变化的较不复杂的环境 [12,39] 上进行了测试。现有的研究主要集中在提高描述子的区分性,而不是定义和克服结构的多样性。我们对结构化位置识别的潜在危害进行了分类分析,如表 I 所示。

表I

视觉和结构位置识别所需的不变性。

在与视觉位置识别问题的比较中,我们对每一种不变性进行了分类,对于每一种相应的不变性类型,视觉位置识别问题都得到了广泛的研究。

  1. 内部因素:测量结果的变化可能源于机器人本身,我们称之为内部因素。这包括主要由自我运动引起的传感器坐标的旋转、平移和尺度变化 (表 I 中的 R、T 和 SP)。图1说明了在旋转和平移变化下的样本测量差异。在尺度上,由于感知距离引起的点云密度的变化,相同的对象看起来非常不同。

图1

经历旋转(例如,反向重访)和平移(例如,横向车道改变)运动的样本点云。 红色表示查询扫描,蓝色表示数据库中的经验。 与全局坐标(即,世界坐标,顶行)中的视图不同,测量在局部坐标(即,传感器坐标,底行)中看起来不同。 另外,请注意,两次扫描中都存在许多动态对象。

  1. 外部因素:与视觉领域的光照变化 (短期变化) 和天气变化 (长期变化) 类似,结构可能在短期内通过动态对象的遮挡,在长期内通过建造或拆除造成的永久性的结构改变来经历类似的变化。当我们部署机器人进行长期导航时,这种外部因素变得至关重要。

  2. 传感器特性:最后一个因素,传感器特性,也许更适合于距离传感器。与相机获取的高度结构化的传感器数据不同,LiDAR 点云是非结构化的,感知会根据传感器的规格 (例如,范围、线数和依赖于视场 (FOV) 的点云分辨率) 发生巨大的改变。因此,一个通用的位置识别系统应该不受传感器规格的限制。

C. 概述

本文中提出方法由两部分组成:(i) 位置描述和 (ii) 位置识别。整个流程如图 2 所示。位置识别模块包括位置检索、半度量定位和验证。在接下来的两节中,我们将详细介绍每个模块。

图2

整体框架。 给定原始范围测量,所提出的方法从地图中的一组地点中寻找相应的地点索引。

Scan Context 描述子 (SCD)

在这一部分中,我们描述了一种新的空间描述子 — Scan Context 描述子 (SCD)。该工作流首先将原始测量数据分区,然后使用鸟瞰图视角 (BEV) 将其投影到离散的 bin 中。当划分到 BEV bin 中时,考虑两种类型的垂直基底 (极坐标和笛卡尔坐标)。在分区和坐标选择之后,使用二进制编码函数将测量的子集编码到其关联的离散化 bin。如上所述,本文提出的位置识别模块的不变性源于 bin 编码函数和距离函数。

A. 动机

我们的描述子和搜索引擎强烈地受到城市环境中的重新访问模式的推动。我们发现了由于车辆的非完整运动遵循交通规则 (例如,车道保持) 导致的典型的模式。车辆主要运动是局部二维的,并且运动发生在最多两个可能不相交的方向上。这些典型的模式推动了极坐标和笛卡尔坐标的选择,以及相关的匹配算法。

B. 描述子轴和分辨率

我们假设输入是 3D LiDAR 的单次扫描结果。生成描述子的第一阶段是在感兴趣区域 (ROI) 内划分下采样后的点云。ROI 的上界和分区分辨率决定了 SCD 的格式。给定分区后的原始测量值,我们将它们投影到 2D 描述子空间上;即,该方法首先 (i) 将每个 3D 点投影到 2D 点,(ii) 在极坐标或笛卡尔坐标中对 2D 点进行参数化,以及 (iii) 通过离散 2D 空间来获得每个 bin 的标量值 (详细信息见 IV-C )。

如图 2 所示,我们将水平轴命名为对齐轴 (A轴) ,将垂直轴命名为检索轴 (R轴)。沿 A 轴的变化对应于列方向的移动;因此,沿 A 轴的预对齐将允许我们推断出粗略的度量级相对位姿,克服了相应的方向的变化。对齐/检索轴的选择决定了 SCD 的类型,即 Polar Context (PC)Cart Context (CC)

  1. 极坐标:如我们前面的工作 [1] 所介绍的,PC 采用以方位角 θ\thetaθ 为 A 轴、以半径 r 为 R 轴的极坐标。由于方位角在 A 轴上,因此 PC 对旋转变化具有很强的鲁棒性
  2. 笛卡尔坐标:CC 利用笛卡尔坐标,以横向 (yyy) 作为 A 轴。纵向 (或行进方向,xxx) 为R轴。自然,描述子对横向平移具有不变性
  3. 描述子分辨率:轴的分辨率决定了描述子的分辨率,它是我们所提出方法的用户参数。用户参数表示为

(ΔR,ΔA,[Rmin,Rmax],[Amin,Amax])(1)(\Delta_R, \Delta_A,[R_{min},R_{max}],[A_{min},A_{max}]) \tag{1} (ΔR​,ΔA​,[Rmin​,Rmax​],[Amin​,Amax​])(1)

其中每个分量表示了由 R 轴的分辨率、A 轴的分辨率、R 轴的范围和 A 轴的范围组成的有序集合。样本参数集及其 SCD 如图 3(b) 所示。正如将在 VIII-A 中讨论的,粗略的离散化隐式地减少了动态对象、局部结构噪声和计算代价的影响。

图3

(a) 样本点云和 (b) 相关的 SCD。 在 (a) 中,黄色和灰色填充的实体分别描绘了 PC 和 CC 的 bin。 红色箭头表示对齐轴。 绿色箭头代表检索轴。 在 (b) 中,每个 bin 颜色表示 bin 中的最大高度; 红色高(例如 10 m),蓝色低(例如 0 m)。 在(b)中,PC(顶部)具有参数(20, 60, [0, 80] m, [0, 360]◦),CC(底部)具有参数(40, 40, [-100 , 100] 米, [-40, 40] 米)。

  1. 输入模式的独立性:分区独立于测量值的分布或数据类型 (例如,BEV图像、体素或 3D 点)。因此,我们的描述子对于距离范围测量值都是通用的。通过在 IV-C 中选择适当的 bin 编码函数,描述子表示不仅可以处理 3D 点云,而且还可以处理其他距离传感器,例如 radar[34]。

C. Bin 编码函数

我们将由对齐轴和检索轴划分的单个不相交的部分表示为 bin。单个 bin 包括机器人传感器测量 (Zij∈ZZ_{ij} \in ZZij​∈Z) 的子集,其中 iii 和 jjj 分别表示 A 轴和 R 轴索引。当没有范围数据落入 bin 中时,bin可以是空的,Zij=∅Z_{ij} = \emptysetZij​=∅,在这种情况下,我们为该 bin 赋值 0。

对于 bin(i,j)bin(i,j)bin(i,j) 的每个测量子集 ZijZ_{ij}Zij​,我们使用 bin 编码函数 ψ(⋅)\psi(\cdot)ψ(⋅) 来分配代表值。bin 编码函数应该能够封装原始数据的子集,以便使描述子可辨别并且对干扰 (表I) 具有鲁棒性。

要求 1。bin 编码函数 ψ:Zij→R\psi: Z_{ij} \to Rψ:Zij​→R 对内部因素具有不变性,而且与传感器规格无关。

在我们以前的工作 [1] 的基础上,我们建议指定使用一个 bin 内 3D 点的最大高度。这种选择背后的直觉源于一个被称为 isovist 的城市规划概念[40,41]。在这个概念中,最大可见的结构及其可见体积的多边形形状决定了一个地方的使用,使一个地方变得可以区分。聚焦于最大高度而不是结构形状,消除了由传感分辨率、距离和物体尺寸引起的稀疏性变化。值得注意的是,满足上述要求的任何其他函数都可以用作编码函数。以 FMCW radar [34] 为例,使用了原始 radar 的强度值。我们之前工作的一些后续研究 [1] 利用了 Li DAR 的强度[42]、内插强度 [34] 和三维点的高度差 [10]。我们注意到在建图器和定位器不同的情况下 (例如,LiDAR 的安装高度不同),异类 LiDAR 的位置识别问题超出了本文的范围,因为它不符合上述要求。

D. Scan Context 描述子

在 ROI 划分 (IV-B) 和 bin 编码 (IV-C) 之后,每个 bin 包含 bin 内数据的j具有代表性特征概括 (即,最大高度)。我们将这些 bin 值累加成矩阵形式,以完成位置的 2D 描述子;矩阵的行和列对应于检索轴和对齐轴。由此得到的描述子可以理解为周围结构的天际线的轮廓。根据坐标选择,我们将生成的 2D 描述子命名为 Polar Context (PC) 或 Scan Context (CC)。

  1. Polar Context (PC):当使用极坐标 ROI 时,我们将得到的 SCD 命名为PC。PC 被设计用于旋转不变的位置识别 (例如,反向重新访问),因为旋转变化对应于列偏移。

  2. Cart Context (CC):类似地,使用笛卡尔 ROI 划分产生称为 CC 的 SCD。在 CC 中,横向平移反映为列偏移;因此 CC 可以处理横向变化,包括当车道更改时重新访问。

每一个 SCD 在应对内部因素方面都有自己的不变性。PC 和 CC 各处理 A 轴的一个维度,并且当旋转和平移同时发生时可能受到限制。为了应对这一问题,我们建议 hallucinating R 轴,以实现两个方向的鲁棒性 (V-D)。

E. SCD 之间的距离

接下来,我们通过对应的的 SCD的 相似度分数来定义两个位置之间的接近程度。

  1. 对齐分数:如图 4 所示,如果从同一位置获取两个 SCD,则两个描述子应在矩阵中包含一致的内容,但可能表现出列顺序不同。因此,为了衡量相似性,我们应该使用两个描述子之间的余弦相似性来检查列范围共现项的总和。这种逐列比较对于动态对象或分区噪声特别有效。余弦距离用于计算在相同列索引 jjj 处的两个列向量 CQjC^j_QCQj​ 和 CMjC^j_MCMj​ 之间的距离。

d(fQ,fM)=1NA∑j=1NA(1−cQj⋅cMj∣∣cQj∣∣∣∣∣cMj∣)(2)d(\pmb{f}_Q,\pmb{f}_M) = \frac{1}{N_A} \sum_{j=1}^{N_A} (1 - \frac{c_Q^j \cdot c_M^j}{||c_Q^j|| \, |||c_M^j|}) \tag{2} d(f​f​​fQ​,f​f​​fM​)=NA​1​j=1∑NA​​(1−∣∣cQj​∣∣∣∣∣cMj​∣cQj​⋅cMj​​)(2)

下标 QQQ 和 MMM 表示待查询的位置和地图的位置,其中描述符的维度为 f∈RNR×NA\pmb{f} \in \mathbb{R}^{N_R \times N_A}f​f​​f∈RNR​×NA​。此外,我们将求和除以的列数用于归一化。

图4

顶行中的三个白点表示真实轨迹中的三个样本节点。 车辆在改变车道时访问了该地点3次。 下面是每个节点对应的示例CC。 比较三个样本CC,内容保留在每列中,而仅列顺序在节点之间移动。 描述符中运动引起的变化表现为描述符空间中的 SCD 列顺序偏移。

  1. 简单的列对齐:然而,待查询的 SCD fQ\pmb{f}_Qf​f​​fQ​ 的列甚至可能在同一位置发生偏移 (图4)。只需在 fM\pmb{f}_Mf​f​​fM​ 固定的情况下改变待查询描述子的顺序,我们就可以使用所有可能的列偏移后的 fQ\pmb{f}_Qf​f​​fQ​ 来计算距离,并找到最小距离。然后,(2) 的最小距离成为我们期望的距离函数 D(⋅,⋅)D(\cdot,\cdot)D(⋅,⋅)

D(fQ,fM)=min⁡n∈[NA]d(fQ,n,fM)n∗=argmin⁡n∈[NA]d(fQ,n,fM)(3)D(\pmb{f}_Q,\pmb{f}_M) = \min_{n \in [N_A]} d(\pmb{f}_{Q,n}, \pmb{f}_M) \\ n^{*} = arg \min_{n \in [N_A]} d(\pmb{f}_{Q,n}, \pmb{f}_M) \tag{3} D(f​f​​fQ​,f​f​​fM​)=n∈[NA​]min​d(f​f​​fQ,n​,f​f​​fM​)n∗=argn∈[NA​]min​d(f​f​​fQ,n​,f​f​​fM​)(3)

其中 [NA][N_A][NA​] 表示集合 {1,2,.⋯,NA−1,NA}\{1,2,.\cdots,N_{A-1},N_A\}{1,2,.⋯,NA−1​,NA​},fQ,n\pmb{f}_{Q,n}f​f​​fQ,n​ 是其列从原始列偏移 nnn 列后的 SCD。列偏移过程使 PC 的旋转变化和 CC 的横向位移对齐。

F. 子描述子

上述对完整 2D 描述子的简单比较在计算上是昂贵的。为了减轻这个成本,我们引入了两个子描述子。从完整的 2D 描述子 SCD 中,我们通过在行和列方向上对描述子进行概括来提取 1D 向量。每个子描述子在位置识别和半度量定位中起着重要作用。

  1. 检索键:引入的第一个子描述子是检索键 v∈RNA\pmb{v} \in \mathbb{R}^{N_A}vvv∈RNA​,它是一个维度等于 SCD 行数 NRN_RNR​ 的向量。给定任何函数 fR(⋅)f_R(\cdot)fR​(⋅) 将 SCD 的一列映射到单个实数,我们通过对 SCD 中的每一行应用 fR(⋅)f_R(\cdot)fR​(⋅) 来压缩 SCD 的列维度。此外,还需要满足以下条件。对于 SCD 的给定行 rrr,

要求 2。 检索键函数 fR:r→Rf_R:r \to \mathbb{R}fR​:r→R 是置换不变的。

有了这个要求,我们可以创建一个不受列顺序影响的子描述子;这意味着我们可以产生一个一致的子描述符,而不受干扰的内部因素 (例如,旋转或车道改变) 的影响。实际上,我们在实验中使用了 L1L1L1 范数,但是只要满足上述要求,就可以使用任何其他函数将一个向量映射到单个实数。我们以前的工作 [1] 使用了 L0L0L0 范数。

  1. 对齐键:与检索键类似,我们引入了对齐键 w∈RNA\pmb{w} \in \mathbb{R}^{N_A}www∈RNA​ 作为 SCD 的另一个子描述子,它是一个维度等于 SCD 列数 NAN_ANA​ 的矢量。尽管对齐键不需要要求,但我们在概括列时采用了相同的L1L1L1 范数。

三阶段位置识别

我们的位置识别算法包括三个部分:(i) 使用检索键的位置检索,(i) 通过使用对齐键的预对齐进行半度量定位,以及 (iii) 用于潜在增强和定位质量评估的完整 SCD 比较。

A. 使用检索键进行位置检索

现有的被广泛采用的解决方案利用过去的轨迹或运动的不确定性来减小搜索空间 [29,31]。与他们不同的是,我们在没有先验信息的情况下追求全局定位。我们只依赖于描述子本身,同时通过引入子描述子来最小化全局搜索的计算代价。

使用地图中提取的所有检索关键字,构建一棵 k-d 树进行快速搜索,并根据检索关键字检索最近的位置。潜在地,前 k 个检索结果然后可以被用于在完整的 SCD 比较阶段进行检索。有趣的是,我们经验性地发现,只使用最佳候选 (k=1) 会产生较好的性能,优于使用多个候选的情况。关于候选集大小 (k) 的讨论将在VIII-B中提出。作为树搜索的结果,我们从拓扑地为待查询位置检索相应的地图位置。

B. 使用对齐键的半度量定位

在给定检索到的候选位置的情况下,典型的 SLAM 框架将通过寻找待查询位置和位置检索模块识别到的候选位置之间的相对位姿来进行度量级定位。众所周知的方法包括 ICP 及其变种,它们通过比较两次扫描来找到最优位姿,从而将对齐成本降至最低。尽管这些度量定位方法很受欢迎,但它们可能会陷入局部极小,并且需要良好的初始猜测。

在位置识别算法的第二阶段,我们利用对齐关键字,通过预对齐阶段确定部分相对位姿。简单的暴力对齐版本 (3) 在计算代价上与列数 NAN_ANA​ 成比例,NAN_ANA​ 比简单且经常使用的 L2L2L2 范数更重。我们建议使用待查询和目标的对齐键来进行暴力对齐,而不是使用完整的 SCD。使用对齐键的预对齐过程被形式化为

n^∗=argmin⁡n∈[Ninv]dw(wQ,n,wM)(4)\hat{n}^{*} = arg\min_{n \in [N_{inv}]} d_{\pmb{w}}(\pmb{w}_{Q,n},\pmb{w}_M) \tag{4} n^∗=argn∈[Ninv​]min​dwww​(wwwQ,n​,wwwM​)(4)

其中,n^∗\hat{n}^{*}n^∗ 是查询和目标 SCD 之间最佳对齐的偏移的估计值。我们只是建议使用 dwd_{\pmb{w}}dwww​ 作为两个向量之间的 L2L2L2 距离。这个计算出来的的列偏移 n^∗\hat{n}^{*}n^∗ 可以作为进一步使用例如 ICP 等方法进行定位结果增强的良好初始值。对这一初始猜测的评估见 VII-E。

C. 基于完整描述子的假阳性拒绝

位置识别的最后一步是比较完整的 SCD,以拒绝潜在的假阳性。如 VIII-B 所示,使用完整的描述符可能会恶化空间分辨能力。使用先前计算的初始列偏移 n^∗\hat{n}^{*}n^∗,将 (3) 中的原始搜索空间缩小到仅预先对齐的偏移 n^∗\hat{n}^{*}n^∗ 的邻域 N(⋅)\mathcal{N}(\cdot)N(⋅)。

D(fQ,fM)=min⁡n∈N(n^∗)d(fQ,n,fM)(5)D(\pmb{f}_Q, \pmb{f}_M) = \min_{n \in \mathcal{N}(\hat{n}^{*})} d(\pmb{f}_{Q,n},\pmb{f}_M) \tag{5} D(f​f​​fQ​,f​f​​fM​)=n∈N(n^∗)min​d(f​f​​fQ,n​,f​f​​fM​)(5)

当沿着列的变化很差时,当上垂直 FOV 较低 [12] 时,当我们的最大高度 bin 编码函数几乎不产生多样化分布时,这种减少后的的搜索空间可能是不安全的。 这可以通过开发更有识别力的 bin 编码函数来克服。然而,如实验 (见 VII) 所示,我们发现,即使在邻域中选择非常紧密的 N(n^∗)={n^∗}\mathcal{N}(\hat{n}^{*})=\{ \hat{n}^{*}\}N(n^∗)={n^∗} (即,假设预对齐是最佳对齐),在经验上也是足够的,并且优于其他方法。

最后,我们遍历由 k-d 树找到的 k 个候选对象,并搜索满足可接受阈值的候选对象来作为重新访问地点。

c∗=argmin⁡ck∈CD(fQ,fMck),s.tD<τ(6)c^* = arg \min_{c_k \in \mathcal{C}} D(\pmb{f}_Q, \pmb{f}_M^{c_k}), \quad s.t \, D<\tau \tag{6} c∗=argck​∈Cmin​D(f​f​​fQ​,f​f​​fMck​​),s.tD<τ(6)

其中,C\mathcal{C}C 是从 k-d 树提取的候选索引集,τ\tauτ 是可接受阈值,以及 c∗c^∗c∗ 是识别到的位置的索引。因为我们使用 k=1k=1k=1,所以在接受候选作为正确匹配结果之前,需要计算该完整描述子的相似性分数来进行有效性检查以确认 d<τd< \taud<τ。

D. Scan Context 描述子的增强

由于我们从 BEV 构造描述子,因此将主导运动的复杂性降低到 3 自由度 (DOF),然后将其概括为 2D 描述子。这表明这两个描述符在某些自由度上都是不足的。例如,PC 被写在极坐标中,并且丢失了平移分量;CC 被描述在笛卡尔坐标中,并且丢失了旋转分量。当在组合运动中发生重新访问时,这一缺陷是严重的。一个典型的例子是从对面车道反向进行路线重新访问。为了克服这一限制,并提升沿着固定的轴的鲁棒性,我们创建了虚拟 SCD 来增加一个位置,从而实现沿缺陷方向的伪不变性。

  1. 增强型 PC(A-PC):我们的目标是覆盖车道改变 (2m2m2m 间隔车道) 和反向路线 (180◦180^◦180◦方向改变) 。在这个增强过程中,通过假定一个虚拟的横向位移来综合地复制 PC。我们特别感兴趣的是变道,我们综合考虑了两个横向相距 2m2m2m 的虚拟车辆位置。相对于这些虚拟车辆位姿和根偏移的点云,生成两个附加的增强 Polar Context (A-PC)。这种根偏移与我们以前的工作 [1] 中的方法相同。

  2. 增强型 CC(A-CC):对于 CC,增强就像在两个轴上进行两次翻转一样简单。缺失的旋转部分应该包含车道变化,我们在两个轴上翻转描述符以创建增强的 Cart Context (A-CC)。

A-PC 和 A-CC 都如图 5 所示。扩展描述子的位置索引被分配为与其原始位置索引相同。对于匹配,经验上,我们发现维护包含原始关键字和扩展关键字的单个 k-d 树的性能优于使用多个 k-d 树。

图5

V-D 中 SCD 增强的说明。 (a) Oxford 2019-01-15-13-06-37 的样本显示了旋转和平移变化的重访案例。 (b) Polar Context 增强包括通过改变车辆的中心姿态来显式地重新计算描述符。 原始(红色)基于姿势的描述符显示的距离比基于移位的基于姿势的描述符更大。 仅显示单个虚拟车辆案例以进行可视化。 请注意,即使在视点变化的情况下,PC 也可以识别一个地方(即,图 5(b)中的切换彩色框)。 © 购物车上下文增强由简单的顺序翻转组成。 类似地,在 PC 中,增强描述符显示的距离地图比原始描述符更近。

E. 计算复杂性

在所有介绍的模块中,最近邻搜索的计算量最大。树构造消耗周期性资源,并且附加增强步骤需要与增强次数成正比增加的时间计算。正如 VII-G 所示,增强和定期树维护的数量可以忽略不计。即使是检索模块的主要计算瓶颈也是极其轻量级的。

如 (2) 和 (3) 所述,原始描述子比较需要计算 O(NA⋅NR⋅NA)O(N_A \cdot N_R \cdot N_A)O(NA​⋅NR​⋅NA​) 的时间复杂度。如 (4) 和 (5) 中所述,通过预先对准,消除了通过 NAN_ANA​ 元素的线性搜索,大大降低了成本。降低后的计算量变为O(NA⋅NR⋅1)O(N_A \cdot N_R \cdot 1)O(NA​⋅NR​⋅1)。假设 NA∼NR∼NN_A \sim N_R \sim NNA​∼NR​∼N,这个约简可以被认为是当描述子维度为 NNN 时计算复杂度从 O(N3)O(N^3)O(N3) 到 O(N2)O(N^2)O(N2) 的减少。例如,图 3(b) 中的 CC 是格式为 NA=NR=NN_A=N_R=NNA​=NR​=N 的正方形矩阵。

F. 实现细节

使用的参数如表 II 所示。

表II

实施细节

这里,ROI 和栅格大小决定分辨率。例如,对于PC,20×6020\times6020×60 表示 80/20=4m80/20=4 m80/20=4m,360/60=6◦360/60=6^◦360/60=6◦ 的分辨率。同样,CC 的 40×4040\times4040×40 表示 R 轴的分辨率为 200/40=5m200/40=5 m200/40=5m,A 轴的分辨率为 80/40=2m80/40=2 m80/40=2m。关于参数选择的讨论将在 VIII 中给出。

数据集和评价标准

A. 数据集

总共从涵盖不同环境的四个公开可用的数据集中选择了八个序列:KITTI Odometry[12]、MulRan[34]、Oxford Radar RobotCar[33] 和 NAVER LABS1 数据集。每个序列和环境的详细特征将在以下小节中提供。
航拍地图上的重叠轨迹,如图6所示,说明了轨迹的形状、尺度和周围环境(不包括众所周知的 KITTI 序列)。表 III 汇总了四个数据集的详细情况。

图6

覆盖在每个航空地图上的数据集轨迹。 第一列显示 KAIST 03 (MulRan) 和 Riverside 02 (MulRan),然后是 Oxford Radar RobotCar、MulRan 中的世宗序列和 Pangyo (NAVER LABS)。 右侧的洋红色框显示了 NAVER LABS 数据集的板桥序列中的宽阔道路。 每个序列的总长度及其特征总结在表 III 中。

表III

表 I 中关于不变性分类法的数据集详细信息。

  1. KITTI:KITTI Odometry[12] 是最广泛使用的用于 LiDAR 位置识别的的数据集 [25,29,32,30,31]。此数据集提供 64 线 LiDAR 扫描 (Velodyne HDL64E)。我们选择了两个序列,00 和 08,它们具有足够数量的闭环。请注意,序列 08 仅由反向闭环组成。

  2. MulRan: Multimodal Range (MulRan) 数据集 [34] 是专门为支持位置识别评估而设计的,包含大量闭环事件。该数据集提供了 12 个序列的 64 线 LiDAR 扫描 (OS1-64),覆盖了规划城市的校园。我们选择了三个序列:KAIST、Riverside 和 Sejong。

    KAIST 03 是一个动态物体少、建筑分布均匀的校园环境。Riverside 02 涉及在沿河的道路上行驶。这个序列包括很少的周围结构和许多感知上相似的在整个序列中经常重复的非结构化对象,例如路边树。更关键的是,这个序列在重新访问阶段有多次车道变化 (图 10(d) 中的蓝色部分),这使我们能够定量评估方法在横向变化下的鲁棒性。

    MulRan 的第三个环境是 Sejong 序列,它包括一条名为 Sejong 的总体规划城市的一条长的环形路线 [43]。作为一座规划城市,其环境即使在相对较短的时间内也会呈现出缓慢变化的结构性变化。我们选择了Sejong 01 和 Sejong 02,并测试了多任务闭环检测能力和在时间间隔 (2019年6月至2019年8月) 上的鲁棒性。

  3. Oxford Radar RobotCar:Oxford Radar RobotCar [33] 数据集,我们简称为 Oxford,是 Oxford RobotCar 数据集 [44] 的 radar 扩展。这一扩展提供了一台 FMCW radar 和两台安装在 radar 左侧和右侧的 32 线 3D LiDar (Velodyne HDL-32E) 的距离数据。对于每个地方,我们通过拼接来自左侧和右侧 LiDAR 的扫描 (其中心是新的传感器坐标) 来构建单个点云,并使用这一新生成的扫描进行评估。Oxford 的场地大多最多有两条车道,预计不会出现严重的横向偏移。相反,该序列包含反向重新访问,同时伴随着较小的车道改变 (即,图 12(A) 中的红色位置)。这个数据集使我们能够评估对同时发生的旋转和横向变化的鲁棒性。

    在同一地点重复记录的序列中,我们选择了两个序列 (2019-01-11-13-24-51 和 2019-01-15-13-06-37),它们的 INS 和 GPS 信号在整个轨迹上都是可靠的。序列 2019-01-11-13-24-51 用于任务内位置识别验证,如图 12 所示。所选序列还用于验证任务间位置识别性能,命名为 2019-01-15-13-06-37 to 2019-01-11-13-24-51,如图 15(A) 所示。我们可以看到,所有的全局重定位 (即重新访问) 都发生在同一个方向上。

  1. NAVER LABS:最后一个评估序列是来自 NAVER LABS 数据集的高度城市化环境中的一条名为Pangyo 的长的单轨迹。长达31公里的序列包括高楼大厦,宽阔的道路 (图 6 中的洋红盒子),以及每个地方的多次重新访问。超过一半的同向重新访问发生在不同的车道上,并伴随着旋转变化。我们使用 Pangyo 验证了方法的综合性能和可扩展性。

B. 正确性标准

对每个地点的测量强烈依赖于应用程序和目标环境(例如,室内或室外)。在这项评估中,我们的目标是包括最多三车道 (约 8 米) 的变化,这种变化经常发生在复杂的城市场地中。通过这样做,即使在横向远离的位置再次访问时,机器人也能识别到同一个地方。其次,在SLAM应用中,粗略的全局闭环检测通常跟随在位姿回归模块之后,生成待查询位置和地图之间的度量约束。如果闭环候选被检测得太宽 (例如,在 [36] 中为25m),则伴随的精细定位模块可能会失败。

考虑到这两个方面,如果待查询位置和检测到的循环候选位置之间的距离小于 8m,则将检测位置视为正确。我们准备了 1−1.5 米等距采样测量,以避免停止段期间的冗余帧,并使每个位置都能做出相同的贡献。用于评估的每个序列的节点数如表 III 所示。

C. 评估指标

  1. 准确率-召回率曲线:我们使用准确率-召回率曲线作为主要的评价指标 [6]。正如在 [6] 中所讨论的,对于位置识别系统,增加潜在的匹配是重要的,即使发生了一些错误预测 [45]。我们还检查了最高 F1 分数 (准确率和召回率的调和平均值) [46],作为我们的评估指标。

  2. 召回分布:我们想要注意的是,准确率-召回率曲线可能不能完全反映 SLAM 框架中的闭环检测性能。闭环的空间和时间分布对于 SLAM 来说是必不可少的,而准确率-召回率曲线被限制为测量位置识别的分布。从 SLAM 闭环检测的角度来看,并不是所有的召回都应该得到同等的评价。为了评估更多的分布式闭环检测,我们将真实的重新访文表示为参考闭环分布,并针对它测量 Kullback-Leibler(KL) 发散度。

图7

(a) 在透视图(左)和俯视图(右)中看到的闭环的真实分布。 可视化中使用的网格大小为 (0.5 m, 10°)。 闭环事件主要分为两个。 (b) 三个样本算法显示不同的检测到的事件分布。

如图 7(a) 所示,我们构建了地图中最近的一个和待查询位姿的之间的闭环事件相对于平移和旋转方差的直方图。Oxford 2019-01-15-13-06-37 收集的重新访问事件样本包含两大类。在这个示例中,我们模拟了三种算法,显示了不同的召回分布,并测量了相对于真值召回分布的 KL 发散度。在图 7(b) 中,对于最左边的情况,从组 2 中几乎没有发现闭环。另外两个显示了关于内部因素变化的更好分布的闭环检测结果,提供了空间无偏的定位性能。即使采用较小的重新访问检测,中间例子的分布也较好,KL-D 值较低。在评估过程中,我们用箭头表示更高的准确度 (↑),更高的 F1 得分 (↑),更低的 KL-D(↓) 代表性能更好。

潜在地,Wasserstein 距离 (又名 earth mover’s 距离) 或 Jensen-Shannon 散度也可以作为使用的量度,在 [47] 中也有详细讨论。然而,我们选择使用 KL-D,因为我们需要在以 GT 分布为参考的情况下比较方法之间的相对距离。相对信息的测量比对称性更受青睐。在这里,我们使用真值闭环作为参考分布,并针对该参考测量相对熵。

D. 比较目标

我们将本文提出的方法与其他两种方法:M2DP 和 SegMatch 进行了比较。所有比较目标都与传感器类型 (例如线数) 无关,并在CPU上运行。

  1. SCD:我们给出了 PC[1]、CC、A-PC 和 A-CC 的性能。对于所提出的方法,我们仅从 k-d 树 (k=1) 中检索到单个候选者。使用 0.5m30.5m^30.5m3 体素的下采样点云被用来制作 SCD (表II)。通过改变SCD距离的阈值得到评价曲线。

  2. M2DP:与我们的方法相同,M2DP[25] 只需要单次扫描的点云作为输入。我们使用作者代码和提供的参数,只有一个区别。我们的实验发现,先应用 0.1m0.1m0.1m 立方体素下采样可以提高 M2DP 的性能,我们进行了这一修改以确保更好的性能。根据欧几里得距离将待查询描述子与所有地图描述子进行比较,欧几里德距离被用作阈值。

  3. SegMatch:在SegMatch[29] 中的三个选项中,我们使用特征值来描述一个 segment,这与作者为KITTI 数据集设计的配置相同。我们排除了基于学习的版本 SegMap[28],因为我们的方法在 CPU 上工作,并且为了进行公平的比较。通过改变 segment 特征距离阈值获得 SegMatch 的评价曲线。与其他全局定位方法 (我们的和M2DP) 不同,SegMatch 需要里程计信息。在评估过程中,我们利用真值来提供里程计。正如我们将看到的,尽管使用了高精度里程计,SegMatch 未能克服严重的差异,而我们的方法可靠地定位而不需要任何几何先验。SegMatch 不像 M2DP 和 SCD 那样是一个全局描述子,它的 PR 和 DR 曲线只有一个很短的范围。这是因为 SegMatch 中的参数是针对局部 segmentation 进行调整的,并不会对召回率产生实质性影响。

实验评估

接下来,我们在不同的数据集上验证了我们的空间描述子和位置识别算法。如图 1 和表 I 所述,应对一个位置的多次变化对于闭环检测和全局定位至关重要。为了清楚地说明相关的不变性,我们根据重新访问类型对路线进行了颜色编码。

A. 具有小变化的重新访问

在表 III 中的8个序列中,KITTI 00 和 MulRan KAIST 03 是相对简单的序列,包含较小的旋转/平移变化和很少的动态对象。对于KITTI 00 (图 8(b)),M2DP 在准确率和召回率方面都显示出最高的性能。SegMatch 显示的召回率比其他组要低;然而,识别的分布足以构建一个全局一致的地图。特别是,SegMatch 成功地识别了中间十字路口的闭环,在那里存在复合变化 (旋转和横向) (见图 9(a)),而其他方法无法做到这一点。PC 和 CC 表现出类似的表现,因为 KITTI 00 在闭环上几乎没有任何旋转或车道变化。图 9(b) 显示了 100100%100 精度的 PC 匹配对。在 MulRan KAIST 03 (图 8(d)) 中,所有方法都成功识别了闭环,因为该序列适用于几乎没有车道变化和很少有动态对象的校园环境。

图8

(左)重访地点的标记轨迹,(中)真实重访分布,(右)PR曲线。 在 (a) 和 © 中,轨迹按重访类型进行颜色编码。 大多数闭环事件集中在真实重访分布的左下角,显示出小的旋转和平移方差。 这种集中分布在透视图中被描绘为单个峰。

图9

(a)-(b) 图 8(b) 中 KITTI 00 的最大精度匹配对(绿色)。 © 分布召回曲线,命名为 DR 曲线,根据召回率的 KL 散度。 理想情况下,对于所有召回率而言,具有恒定 0 KL 散度的平坦曲线将表明召回率完全分布。 DR 曲线中的分数越低表示性能越好 (↓)。 在这条 DR 曲线中,CC、PC 和 M2DP 的所有召回率都显示出较低的 KD 分歧分数,随着召回率的增加逐渐衰减。 SegMatch 检测到稀疏的闭环,召回率低于其他方法。 这在低召回率下表现为更大的 KL 散度。 然而,KD 散度显着减小,并达到了与其他方法相似的水平。 这表明 SegMatch 提出了更有效的闭环,以较少的检测次数实现了相似的分布分数(即 KL 散度)。

B. 具有旋转或横向变化的重新访问

接下来,我们检查了在旋转或横向方向上具有显著差异的序列。他们的表现如图 10 所示。

图10

两个序列显示主要是旋转或横向变化。 (a) KITTI 08 的大部分重访发生在相反的方向,集中分布在左上象限。 (b)-© PC 是 KITTI 08 最稳健的方法。 (d) MulRan Riverside 02 包含横向变化,旋转变化很小。 (e)-(f) CC 能够更好地处理横向变化。 所有召回的较高精度 (↑) 和较低分布 (↓) 表示更好的性能。

  1. KITTI 08:这个序列只包含反向重新访问,其中一半还包括同时换道。这在图 10(a) 中表现为重新访问事件的集中分布。M2DP 和 CC 由于严重的旋转变化而失败,而 PC 的精度要好得多。SegMatch 提供了足够的准确率,但召回率有限。对于这个有旋转变化的序列,我们检查了 A-CC 以查看增强版本带来的的改善。

  2. MulRan Riverside 02:在这个序列中,车辆重新访问一个有多次车道变化但方向相同的地方。这种差异在图 10(d) 中被清楚地捕捉到。在准确率-召回率方面,CC大大超过了其他技术 (图 10(e))。图11中的时间-高度曲线图显示了该序列的真/假匹配。CC 在具有极少假阳性(红色)的挑战性区域中的表现优于其他区域,这可能可以使用现有的鲁棒的后端来处理[45,48,49]。在 KITTI 08 中,随着 A-CC 的改进,增强版 (A-PC) 改善了横向变化下的 PC。

C. 同时发生的旋转和横向变化

更复杂的情况包括同时发生的旋转和横向变化。我们使用 Oxford 和 Pangyo 来评估在合成变化下的性能。我们排除了复合情况下的 SegMatch,因为它们高度依赖里程计。改进其他用于位置识别的先验模块超出了本文的范围。

  1. Oxford:如图 12 所示,即使提高了阈值,原始 PC 和 CC 在特定召回率时的性能也受到了极大的限制。有趣的是,在这个陡峭的点上未被识别的召回率与表 III 中显示的不同方向的重新访问比率 (4343%43) 相匹配。对 PC 和 CC 应用相关的增强显示在较高的召回率时提高了准确率,两个描述符子的提升幅度都很大。总体而言,A-CC 总体上表现出比 A-PC 更高的精度。在图 13 中,可视化了每个方法的真/假匹配。为了进行公平的比较,我们将所有方法的召回率固定在 5050%50,以定量衡量每种方法的准确性和有效性。

请注意图 12 所示分布的重要性。根据该图,CC 在精度和最大 F1 得分方面优于 PC,但分布得分除外。这表明 CC 的精度提高集中在容易的区域,而 PC 可以检测到可能对 SLAM 性能有关键影响的困难闭环 (参见图 13(b))。然而,CC 的受限性能通过 A-CC 得到缓解,这可以从图 12(d) 所示的改进的分布分数中看出。这一改进也在图 13(e) 中描述,在图 13(e)中,A-CC 检测良好分布的闭环。

  1. NAVER LABS Pangyo:这个 Pangyo 序列包括在重新访问期间零星的车道变化,并伴随着旋转变化。当反向路线必然涉及变道时,这种复合变化 (旋转和横向) 在城市环境中是不可避免的。如图 14 所示,Pangyo 序列包含了丰富的变化类型。总体而言,当重新访问经历复合变化时,增强产生了实质性的改善。A-PC 表现出最好的旋转变化性能 (图 14(g)),而 M2DP 对横向变化有意义。然而,在同时存在旋转和横向变化的情况下,A-CC 相比其他方法证明了其有效性。

D. 多任务能力

到目前为止,我们已经在单次任务内研究了重新访问的情况。在这里,我们考虑走向长期自动驾驶的多任务场景中的位置识别问题。为了在多任务场景中验证我们的方法,我们从一个具有足够时间差异的数据集中选择了两个序列。

第一对是 Oxford 2019-01-15-13-06-37 到 Oxford 2019-01-11-13-24-51。我们以 Oxford 2019-01-11-13-24-51为地图,以 Oxford 2019-01-15-13-06-37 为待查询序列,测试其闭环性能。用于测试多任务闭环的另一对显示了两个月的较大时间间隔。我们选择了 MulRan 数据集中的 Sejong 01 作为地图,使用 Sejong 02 作为待查询序列。

如图 15 所示,这些重新访问主要包括横向变化,但有时间间隔。对于 Oxford 对,所有方法都成功地检测到了循环。Sejong 对更具挑战性,因为横向变化包括多车道变化。Sejong 对的闭环检测结果在图 16 中进一步可视化。M2DP 似乎显示出有意义的性能,但包含错误的闭环检测结果。CC 展现了多任务场景的最佳性能。通过增强可以取得明显的改进,尽管这不包括在多任务场景的设想中。

E. 度量定位评估和质量评估

与检索到的地点相结合,本文提出的方法能够估计待查询位置和地图位置之间的一维相对位姿。当拓扑位置检索与度量定位相结合时,这一点很重要,因为该初始估计可以用于进一步的度量增强。

通过对齐键的配准,我们估计了一维相对位姿 (即 PC 的旋转和 CC 的横向位移)。使用 Pangyo 序列中提供的真实位姿,我们将估计的一维相对位姿与真实的来自真值的相对位姿进行对比。如图 17(a) 和图 17© 所示,该估计平均产生了 1.03◦1.03^◦1.03◦ 的 A-PC 和 0.84m0.84m0.84m 的A-CC的有意义的相对位姿推断。

我们可以使用完整描述子的相似性分数进一步检查该度量定位的质量。在该方法中,我们使用该相似度作为第二个指标,以排除SCD距离较大 (即相似度较小) 的检索。为了评估指标评估质量,我们在图 17 中给出了来自 ICP 相对估计的 RMSE 和 SCD 距离之间的散点图。

F. 外部模块依赖和 SLAM 集成

全局定位器需要轻量且独立于外部模块。我们的目标是开发一个独立的模块,而不需要事先获得里程计等先验信息。在评估过程中,我们发现 SegMatch 的位置识别性能受到里程计质量的影响。我们还从经验上发现,当由于动态物体较多而很难获得良好质量的帧到帧里程计结果时,SegMatch 很难应对 Riverside 02(MulRan) 序列这样的恶劣环境。在以前的评估中,虽然我们将真值作为里程计结果来确保它们的最佳性能,但在结构较少和重复的环境中,它的性能受到限制。

本文提出的的实现是在单个 C++ 文件和头文件对中提供的轻量级实现。因此,我们的方法很容易与任何基于关键帧的位姿图 SLAM 系统相结合,因为基于 Scan COntext 的位置识别的原子元素是单个关键帧测量值。除了我们的开源位置识别模块,我们还公开了一个实时的 LiDAR SLAM 系统。它是用 C++ 编写的,命名为 SC-Lego-LOAM 与 LeGO-LOAM[50]集成。如表 IV 所示,使用 iSAM2[51] 进行的基于 Scan Context 的闭环检测和位姿图优化成功地缓解了里程计的轨迹漂移。有关详细演示,请参阅所附的多媒体文件。

G. 计算成本

文中提出的位置描述子生成和识别模块均具有较快的速度。图 18 显示了两个序列的每个模块的计算成本。图 18 中显示了了 PC 的计算成本,因为在类似的分辨率下,PC 和 CC 的计算成本几乎相同,只是坐标选择不同。这些时间消耗是在 Intel i9-9900 CPU (3.10 GHz) 和 64G RAM 运行集成 Scan Context 的实时 LiDAR SLAM (VII-E) 时测量的。

如图 18(b) 所示,平均计算时间不到 10ms。最耗时的任务是 k-d 树重建,它是周期性地成批执行的。然而,当我们每隔 10 秒重复重建树时,图表显示了保守的情况。这可以根据应用程序的不同而延长,以降低总成本,对于多任务场景甚至不需要。

尽管 Pangyo 规模很大,但平均执行时间甚至更短,因为 Pangyo 使用的 32 线 LiDAR 比 KITTI 00 的点数更少。这也表明,尽管周期批处理树重建与地图 O(N)O(N)O(N) 成线性关系,但总的计算复杂度为 O(1)O(1)O(1),其中 NNN 是地图中的节点数。

与其他方法的时间成本比较如表 V 所示。我们和 M2DP 的时序是使用 MatLab 测量的,而 SegMatch 是从[29] 复制的。SegMatch 的大部分时间都花在了 segmentation 上。M2DP 是最轻量的的。A-PC 在增强阶段只需要额外的描述时间,因为不需要额外的成本来管理检索关键字。尽管需要 GPU(GTX 1080 TI),但PointNetVLAD(VIII-E) 的计算代价比我们的昂贵。M2DP 和 PointNetVLAD 的检索速度很快,因为固定长度的向量的欧几里得距离的比较非常轻量。

讨论

除了对所提出的全局定位方法进行评估外,我们还提供了模型简化测试和解释。

A. 描述子解析

我们考察了描述子的分辨率和相应的性能。如表 V 所示,分辨率越低,性能越好。因此,我们对以下小节使用了基准分辨率。

B. 检索键性能分析

候选数。在 V-A 中,我们利用 k-d 树提出 k 个候选检索结果,在基于完整描述子的假阳性拒绝 (V-C) 之后,只选择一个答案。在这一小节中,我们考察 k 对性能的影响。我们首先注意到,k 的增加并不意味着放宽成功准则,而是意味着增加我们算法的第一步中的候选者的数量。有趣的是,正如表 VII 所示,当我们只选择最好的候选时,所有统计数据都优于其他统计数据。在 k=1 时,表现最佳性能的完整描述子可能会受到混淆。尽管这似乎与更多候选可以获得更好性能的普遍信念相反,但结果表明完整描述子的空间可辨别性降低。

检索关键字与全描述子暴力搜索。此外,我们分析了如果使用基于全描述子的距离比较整个数据库(即,暴力搜索),时性能如何变化。通过表 VIII 中的多个测试,基于检索关键字的搜索和暴力搜索之间的性能差异可以忽略不计,尽管暴力搜索需要 O(N)O(N)O(N) 的更昂贵的计算代价(例如,对于4500 帧的 KITTI 00,几乎 需要 1 秒)。

完全描述子的效果。尽管表 VII 证明了基于完整描述子的相似性的混淆,但这种额外的相似性验证提高了增强情况的精度以及其半度量定位能力。在图 19 中,通过使用完整描述子的补充相似性验证消除不太精确的匹配,提高了增强 Scan COntext 的精度。

C. 正确性标准

如表 IX 所示,当采用更严格的标准时,性能往往会得到改善。出现这种现象是因为横向移位的查询通常很难识别,当它们被遗漏时被认为是正确的拒绝。然而,在反向重新访问 (即,表 IX 中的 KITTI 08) 中,精确定位更为困难,因为先前正确识别的查询 (例如,在 4m−8m 内) 被认为是错误警报。根据这些结果,8m 被用来作为正确识别的地方的标准,在我们的第 VII 节的主要评估和第 VII 节的模型简化测试中,我们成功地处理了横向偏移的重新访问。即使从稍远的地方 (例如,相距 4m−8m) 识别出一个位置,本文所提出的方法也可以成功地进行闭环矫正,因为它提供了半度量定位结果。

D. 对横滚-俯仰和高度扰动的鲁棒性

以前使用的数据集主要来自横滚-俯仰和高度扰动很小的轮式平台。然而,传感器测量值的变化可能会在两次扫描之间的旋转和高度变化方面发生。在这方面,我们增加了额外的横滚-俯仰扰动仿真实验和真实世界手持 LiDAR 实验。我们预先相对横滚和俯仰旋转了输入扫描来用于仿真。在真实世界的手持式 LiDAR 数据集中,当人在路上导航时,测量起点的高度略有变化。

仿真。预转的程度分为三个级别:[−5◦,5◦][−5^◦,5^◦][−5◦,5◦],[−10◦,10◦][−10^◦,10^◦][−10◦,10◦] 和 [−15◦,15◦][−15^◦,15^◦][−15◦,15◦]。对两个序列 KAIST 03 和 Riverside 02 进行了仿真,所有方法都明显地观察到了性能损失。对于 KAIST 03 序列,M2DP 的性能降幅比我们的要小。然而,在 Riverside 02 中,对于所有方法的三种扰动程度,性能降级变得明显。我们相信,这一课题,在严重的横滚-俯仰变化下的鲁棒位置识别,还没有得到太多的研究,它可能是一个未来有价值的学术研究课题。

手持数据。其次,真实世界手持LiDAR数据的结果如图 20(g) 所示。我们使用 LILI-OM[52] 中提供的 KA Urban Campus 1 序列,该序列由从缓慢行走的人类进行导航获得的。它具有相同方向的重新访问和狭窄的前向水平 FOV(∼70◦\sim 70^◦∼70◦)。在这一真实世界的数据中,我们的性能大大超过了 M2DP,并表明轻微的(例如,人类行走时) 横滚-俯仰和高度扰动是可以接受的。因此,本文所提出的方法可能不局限于轮式平台,也适用于手持式导航设备在轻微横滚-俯仰运动下的工作。

E. 与基于深度学习的方法的比较

我们还提供了与最近基于深度学习的方法 SegMap[28] 和 PointNetVLAD[26] 的比较。对于这两种方法,我们使用了作者发布的预先训练的权重。SegMap 与 SegMatch 相比表现出了受限的性能。这可能是由于对没有见过的环境的泛化能力的限制。PointNetVLAD 在旋转和平移变化较小的环境中表现出类似的性能 (即图21(a)),但当变化增加时失败 (分别为图21(b) 和 (图21©。

F. 失败案例

我们举例说明了本文所提出的方法在地图上定位成功和失败的示例。如图7所示,对于输入处理,我们遵循[2]。在图 22(a) 中,本文所提出的方法克服了地图和待查询扫描之间的横向和/或旋转差异。即使有许多动态对象 (例如,汽车),SCD 也可以成功地定位到地图。然而,当一个高大的物体 (例如,巴士) 在查询和地图扫描中都看起来非常接近传感器时,定位可能会失败,如图 22© 所示。另一起故障发生在车辆沿长廊状位置移动时 (图22(b))。

G. 使用哪个 SCD?

最后一个要回答的问题是使用哪种 SCD 以及在什么情况下使用。根据评估,通常情况下,A-CC 即使在复合变化 (即 Rot+Lat)下也能产生最佳性能,如 Oxford (图12) 和 Pangyo (图14) 所示。因此,当目标环境是城市道路时,CC 和 A-CC 更受欢迎。我们建议在更一般的环境中使用 PC 或 A-PC,以及当半度量定位能力更关键时。由于传统的 ICP 对初始化的旋转分量更加敏感,PC 将是更好的选择,尽管 CC 在精度上稍有牺牲(但仍具有相当的性能)。对于以最小变化重复相同路线的巡逻机器人和穿梭车,PC 将表现出更有意义的性能,如在多任务场景中所证明的那样 (图 15)。

H. 限制和潜在的扩展

  1. 单向不变性:本文所提出的方法在一个方向上是本质不变的,我们选择旋转和横向作为不变轴。鲁棒的搜索方案和增强克服了这一限制。

  2. 将深度学习用于 Scan Context 描述子:本文提出的描述子本身是有序的2D格式,将其输入深度神经网络非常简单。如文献 [2,53] 所述,该描述子是可学习的,并且仅通过使用小型网络来提供有意义的性能。当GPU 可用并且定位几乎是内存问题时,这种类型的方法将特别有益。

  3. 对非城市环境的应用:在描述子可以编码附近结构变化的城市环境中,本文所提出的方法是最有效的。本文所提出的描述符是具有高度值的单通道,但易于扩展。例如,[42] 将 LiDAR 强度值视为在室内环境中成功运行的附加通道。将深度学习与室内应用相结合,在人流密集的情况下产生了有意义的性能 [54]。我们认为,将点云分布或语义标签作为额外的通道,将进一步增强城市环境以外的 Scan Context,如室内和自然环境。

  4. 对其他距离传感器的应用:该描述子不仅适用于 LiDAR 传感器,还适用于包括 radar 在内的一般距离传感器。正如我们在 [34] 中报告的对 radar 传感器的潜在扩展,该描述子可以应用于 radar。

  5. 对测量变化的泛化:进一步研究建图和定位阶段之间的传感器差异也将是有意义的。LiDAR 测量值因硬件选择和安装配置而异。需要实现对测量变化的泛化。

结论

本文提出了一种结合拓扑定位和度量定位的全局位置识别模型。作为一种全局定位器,该方法可以在启动阶段充当位置识别器解决被绑架机器人的问题。我们还证明了 Scan Context 在旋转和横向方向上的不变性。通过评估,我们验证了所提出的定位器在不需要先验知识的情况下获得了可区分性和实时性能。

(回环检测)Scan Context++: Structural Place Recognition Robust to Rotation and Lateral Variations in Urba相关推荐

  1. Scan context: 3D点云的场景识别/回环检测

    作者丨铜离子c@知乎 来源丨https://zhuanlan.zhihu.com/p/214309563 编辑丨3D视觉工坊 回环检测,或者说场景识别问题,关键在于如何构建每个场景(图片/点云)的&q ...

  2. 经典激光slam配准及回环检测框架:ScanContext

    论文名称: Scan context: Egocentric spatial descriptor for place recognition within 3d point cloud map 论文 ...

  3. segMatch:基于3D点云分割的回环检测

    该论文的地址是:https://arxiv.org/pdf/1609.07720.pdf segmatch是一个提供车辆的回环检测的技术,使用提取和匹配分割的三维激光点云技术.分割的例子可以在下面的图 ...

  4. 高仙技术家|SLAM(二)——完善回环检测的视觉SLAM

    高仙技术家|SLAM(二)--完善回环检测的视觉SLAM 高仙是全球较早从事自主移动技术研发与应用探索的机器人公司之一.成立至今,高仙不断打磨并完善了机器人全场景移动技术,并通过全球超过50+机型.1 ...

  5. 详解 | SLAM回环检测问题

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文经知乎作者fishmarch授权转载,二次转载请联系作者 原文 ...

  6. 视觉SLAM回环检测、词袋模型和视觉位置识别--论文记录和实验简析

    一.传统方法部分(词袋模型,bag of words,BoW) 1. 预先在环境中采集足够多的图像或者所有位置的图像(成千上万张图片)之后构建视觉词汇表 参考论文:2012年的TRO顶刊 Gálvez ...

  7. BLAM源码解析(五)—— 回环检测

    上一节介绍了BLAM的帧间匹配和帧图匹配,代码简洁明了. 本节介绍BLAM的回环检测模块.具体代码块如下: // Check for new loop closures.bool new_keyfra ...

  8. Karto的后端优化与回环检测功能对比测试与分析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 上篇文章讲解了Karto的前端是如何工作的. 这篇文章将slam_karto中的后端优化部分的代码添加 ...

  9. 开源!用于3D激光雷达SLAM回环检测的实时词袋模型BoW3D

    点击进入->3D视觉工坊学习交流群 0. 笔者个人体会 回环检测对于SLAM系统的全局一致性有着至关重要的影响.现有的视觉SLAM回环检测大多是基于词袋模型,也就是2012年推出的BoW2库和2 ...

最新文章

  1. 带有中文的字符串各个字符的获取c++程序
  2. 石家庄的联通破网络,请大家鉴定
  3. 新书上市 | 为什么你的英语总是学不好?
  4. C++阶段01笔记汇总【C++软件安装、C++初识、数据类型、运算符、程序流程结构、数组、函数、指针、结构体】
  5. 常用公有云接入——亚马逊
  6. vue中请求接口怎么封装公共地址_vue请求接口的封装
  7. 【译】Immutable.js : 操作 Set -8
  8. 「javaScript-每三位插入一个逗号实现方式」
  9. 用gSOAP开发Web Service程序
  10. ie8下a标签中的图片出现边框
  11. Xmarks浏览器书签同步的末日临近
  12. Approaching (Almost) Any Machine Learning Problem
  13. 网络知识之——Mac地址和ping
  14. 医院预算目标分解公式
  15. [技术随笔(一)] 文件分割的两种方法
  16. Puppet学习之hiera(8)
  17. web.xml中security-constraint安全认证标签说明
  18. Win10专业版企业版如何关闭系统更新
  19. 4.28 DP练习赛
  20. linux pam 版本号,Linux中pam板块详解

热门文章

  1. 人工智能知识全面讲解:初识生成对抗网络
  2. ansible常用模块 -- fial模块 -- 自定义消息失败
  3. 【缺陷检测】基于形态学实现印刷电路板缺陷检测技术附matlab代码
  4. python之plt.figure
  5. excel与云mysql连接数据库_小程序读取excel表格数据,并存储到云数据库
  6. AI识别PS篡改图像
  7. Unity URP Shader Graph Unit 阴影 light Atten
  8. 京瓷1025打印机打印有底灰简单处理
  9. java环境安装完毕,运行web项目报javax annotation managedbean unsup错误
  10. INF442 Amphi 6: Supervised learning and k-NN predictors | Genericity