SLAM论文翻译(4) - LinK3D: Linear Keypoints Representation for 3DLiDAR Point Cloud

目录

1 Introduction

2 Related Work

3 The Proposed method

A. 关键点提取

B. 描述符生成

C. 匹配两个描述符

4 Experiments


摘要 - 特征提取和匹配是许多计算机视觉任务的基本部分,如2D或3D物体检测、识别和注册。众所周知,在2D领域,特征提取和匹配已经取得了巨大的成功。不幸的是,在3D领域,由于描述能力差和效率低下,目前的方法无法支持3D LiDAR传感器在视觉任务中的广泛应用。为了解决这个限制,我们提出了一种新颖的3D特征表示方法:线性关键点表示法(LinK3D),用于3D LiDAR点云。LinK3D的新颖之处在于它充分考虑了LiDAR点云的特点(如稀疏性、场景复杂性),并使用其稳健的邻近关键点表示当前关键点,从而对当前关键点的描述提供了强约束。我们对提出的LinK3D在两个公开数据集(即KITTI、Steven VLP16)上进行了评估,实验结果表明我们的方法在匹配性能方面远远优于现有技术。更重要的是,LinK3D表现出了优秀的实时性能(基于LiDAR的10 Hz频率)。LinK3D仅需要平均32毫秒从由64束激光束收集的点云中提取特征,并且在配备Intel Core i7 @2.2 GHz处理器的笔记本上执行时,仅需约8毫秒来匹配两次LiDAR扫描。此外,我们的方法可以广泛应用于各种3D视觉应用。在本文中,我们将LinK3D应用于3D配准、LiDAR里程计和位置识别任务,并与现有技术方法进行了竞争性结果的比较。

关键词 - 3D LiDAR点云、特征提取、匹配、高效、扩展到3D视觉任务。

1 Introduction

        特征提取和匹配是大多数计算机视觉任务的基础,如感知、识别和重建任务。在2D视觉领域,已经研究和广泛使用了各种2D特征提取方法(如Harris、SIFT、SURF和ORB)。然而,在3D视觉领域,3D特征表示和匹配仍存在一些未解决的问题。当前的方法可能不适用于高频率(通常≥10Hz)的3D LiDAR和大规模复杂场景,特别是在效率和可靠性方面。3D LiDAR点云的不规则性、稀疏性和无序性使得直接将2D方法应用于3D变得不可行。目前,3D LiDAR已广泛应用于一些移动设备(如机器人、自动驾驶汽车等),因此有必要针对3D LiDAR点云设计一种高效且强大的特征表示方法。

        现有的3D特征点表示方法[15]–[25]可以根据提取策略主要分为两类,即手工设计的特征和基于学习的特征。手工设计的特征[15],[17]–[19]主要以直方图形式描述特征,并使用局部或全局统计信息进行特征表示。由于激光雷达在大规模场景中通常存在许多相似的局部特征(如大量的局部平面),这些局部统计特征容易导致不匹配。全局特征[20]–[22]不太可能在点云内部生成准确的点对点匹配。 基于学习的方法[23]–[25]取得了巨大的进展,然而,这些方法通常耗时较长(例如,3DFeatNet [24]大约需要0.928秒来提取3D特征,D3Feat [26]用于3D配准时大约需要2.3秒)。 实际上,大多数当前的3D特征表示方法通常更适用于小规模场景和小物体表面(例如Stanford Bunny1点云)。 显然,小规模场景和激光雷达所使用的大规模场景之间存在一些差异(例如KITTI 00城市场景)。具体而言,主要差异如下:

  • 小物体表面通常是平滑连续的,局部表面是唯一的。然而,3D激光雷达点云包含许多不连续且相似的局部表面(例如许多相似的建筑物表面、树木、极坐标等)。如果使用这些具有相似局部表面的点云生成局部3D特征,那么这些3D特征显然也是相似的,容易导致不匹配。
  • 3D激光雷达点云通常较稀疏,点在空间中分布不均匀。如果在固定大小的空间中没有足够的点来生成局部统计描述,可能无法得到有效且准确的3D特征描述。
  • 激光雷达扫描中经常存在遮挡,这可能导致当前和后续激光雷达扫描中相同局部表面的描述不一致。因此,有必要专门为3D激光雷达点云设计特征表示方法。

基于这些差异,本论文提出了一种新颖的用于LiDAR点云的三维特征,可用于准确的点对点匹配。我们的方法首先提取稳健的聚合关键点,然后将提取的聚合关键点输入到描述符生成算法中,该算法以一种新颖的关键点表示形式生成描述符。如图1所示,当前关键点的描述符由其邻居关键点表示。在获取描述符后,提出的匹配算法可以快速匹配两个LiDAR扫描的描述符。此外,本文提出的LinK3D已应用于各种实时三维视觉任务。总结一下,我们的主要贡献如下:

  • 提出了一种新颖完整的三维LiDAR点云特征提取方法,包括关键点提取、特征描述和匹配。与最先进的三维特征相比,我们的方法在匹配和运行时间方面取得了显著进展,并且在稀疏的LiDAR点云中更可靠。
  • 所提出的方法有潜力应用于各种三维视觉任务。在本文中,LinK3D已应用于三维注册、LiDAR里程计和三维LiDAR SLAM中的位置识别。与最先进的方法相比,我们的方法在这些任务中取得了竞争力的结果。
  • 所提出的方法显示出令人印象深刻的效率,使得我们的方法可以实时应用。我们的方法平均需要32毫秒提取LinK3D特征,8毫秒匹配两个LiDAR扫描的描述符,并在用于位置识别任务时需要13毫秒来检索机器人的重新访问位置。

图1. 我们的LinK3D的核心思想和基于我们的LinK3D的两个激光雷达扫描的匹配结果。绿色线段表示有效匹配。当前关键点的描述符用其邻近关键点表示。描述符的每个维度对应一个扇区区域。第一个维度对应当前关键点最近的关键点所在的扇区区域,其他维度按逆时针顺序排列。如果一个扇区区域内存在关键点,则搜索并使用该扇区区域内最近的关键点来表示相应维度的描述符。 

2 Related Work

3 The Proposed method

我们的方法的流程主要包括两个部分:特征提取(即关键点提取和描述符生成,如图2所示)和特征匹配。 如图2所示,我们首先提取激光雷达扫描的边缘点,然后将它们输入到边缘关键点聚合算法中,从中提取出鲁棒的关键点,用于后续的描述符生成。然后,描述符生成算法首先构建距离表和方向表,可用于快速生成描述符。

  图2. 提出的LinK3D的工作流程,包括关键点提取和描述符生成。输入点云首先经过关键点
提取处理,然后进行LinK3D描述,得到高效的关键点描述符。

A. 关键点提取

        边缘点提取:在关键点提取中,我们使用类似于2D图像关键点的策略,即角点或边缘点。在这里,我们也从3D激光雷达扫描中提取代表性的边缘点作为关键点。激光雷达扫描可以大致分为两类:边缘点和平面点。边缘点和平面点的主要区别在于它们所在的局部表面的光滑程度。

        给定一个3D激光雷达点云,设中的一个点。设是位于与点在同一条扫描线上在两侧均匀分布的连续点的集合。令表示的基数。当前点的光滑项定义如下:

 其中,分别是点的坐标。边缘点(如图3a所示)是通过大于阈值值提取的。

        边缘关键点聚合:在收集边缘点时,通常会有很多点超过阈值但不稳定。具体来说,这些不稳定的点出现在当前扫描中,但可能在下一个扫描中不出现。如图3a中红色虚线框所示,不稳定点通常是分散的。如果我们利用这些点进行匹配,可能会导致不匹配。因此,有必要过滤掉这些点并找到正有效的边缘关键点。如图3a中蓝色虚线框所示,有效的边缘关键点通常以垂直簇的形式分布。

        本文设计了一种新的关键点聚合算法,用于寻找有效的边缘关键点。使用角度信息来指导,并将潜在点聚集在一个小组中,而不是整个区域中,如算法1所示。动机是具有大致相同水平角度的点更有可能位于同一簇中。具体而言,我们首先将以LiDAR坐标系原点为中心的水平平面分为相等的扇区,然后只在每个扇区中聚集点。值得注意的是,当我们在实验中设置时,我们的算法运行速度约比经典的KMeans [47]快25倍。

提取的边缘关键点如图 3b 所示。可以观察到我们的算法可以过滤掉无效的边缘点,并找到正有效的边缘关键点。此外,计算每个簇点的质心,并将其命名为聚合关键点,可以表示其簇并用于后续的描述符生成。

B. 描述符生成

        在描述符生成中,首先将所有聚集关键点投影到水平平面上,这可以消除沿垂直方向分布不均匀的聚类边缘关键点所造成的影响。为了快速匹配,我们的LinK3D被表示为一个多维向量,每个维度使用0或者当前关键点与其邻近关键点之间的距离。如图4所示,我们将水平平面分为以当前关键点k0为中心的180个扇区区域,描述符的每个维度对应一个扇区区域。受到2D描述符SIFT [10]搜索主方向以确保姿态不变的启发,LinK3D的主方向也是通过搜索并表示为从当前关键点k0到最近关键点k1的方向向量来确定的,该方向向量位于第一个扇区区域内,其他扇区区域按逆时针顺序排列。然后,在每个扇区中搜索与k0最近的关键点。如果存在最近的关键点,则将当前关键点与最近关键点之间的距离作为描述符的相应值,否则将该值设置为0。

 图4. 以当前关键点ko为中心的水平平面被分成180个扇区。我们首先搜索最接近关键点k0的关键点k1,然后主方向是从k0到k1的向量。此外,主方向将第一个扇区面进行二等分。其他扇区按逆时针顺序排列

在该过程中,从当前点到其他点的方向表示为,并使用与主方向之间的角度来确定属于哪个扇区。该角度通过以下公式计算:

 其中定义为:

 上述算法中存在两个主要问题。

  • 一个问题是该算法对最近的关键点非常敏感。在存在来自离群关键点的干扰时,匹配将失败。
  • 另一个问题是我们需要频繁计算两个点之间的相对距离和方向,因此会出现大量重复的计算。

为了解决第一个问题,我们搜索一定数量的最近关键点(具体数量在实验部分中进行评估)。假设我们搜索3个最近的关键点,并计算相应的3个关键点描述符,如图5所示。Des1对应最近的关键点,Des3对应第三个最近的关键点。我们基于这三个距离值定义优先级。Des1具有最高优先级,因为它具有最近的距离,Des3具有最低优先级,因为它具有最远的距离。最终描述符中每个维度的值对应于它们中具有最高优先级的非零值。

 图5. 最终描述符中每个维度的值对应于在Des1、Des2和Des3中具有最高优先级的非零值。 

如图5中红色虚线框所示,Des1具有一个非零值,那么它在最终描述符中的相应值也设置为,因为它具有较高的优先级。其他两种情况在图5中以紫色和黑色虚线框显示。这大大提高了我们的LinK3D对离群值的鲁棒性。为了解决第二个问题,我们建立了距离表和方向表,可以通过直接参考这些表来获取所有关键点的距离和方向,以避免重复计算。具体算法如算法2所示,该算法展示了提取一个描述符的过程。

C. 匹配两个描述符

        在本节中,介绍了匹配算法。为了快速测量两个描述符的相似度,我们采用了类似于汉明距离的计算方法来定义两个LinK3D描述符的相似度分数。 它们都计算相应的维度。然而,与汉明的XOR操作不同,我们只计算两个描述符中的非零维度。具体而言,计算两个描述符中对应的非零维度的差的绝对值。如果该值小于0.2,则相似度分数增加1。如果匹配的相似度分数超过阈值Thscore,则将该匹配视为有效。具体的匹配算法如算法 3 所示。 在匹配两个描述符之后,搜索边缘关键点的匹配项。对于匹配的汇聚关键点,选择每个扫描线上具有最高 r 值(平滑项)的相应边缘关键点。位于同一扫描线上的边缘关键点进行匹配。

4 Experiments

猜你喜欢

转载自blog.csdn.net/qq_41921826/article/details/131858910