新闻中心

【泡泡图灵智库】学习用于地点识别的3D片段特征(arXiv)

时间:2019-10-10 03:31

  在没有全局定位信息的情况下,地点识别是在任何环境中实现定位,建图和导航的关键功能。大多数地点识别方法依赖于图像,点云或二者的组合。在这项工作中,作者利用片段提取和匹配方法在基于LiDAR的3D点云地图中实现位置识别。一个重要的挑战是在观测点发生变化或出现遮挡时如何正确识别对应的片段。作者提出了使用基于学习的方法,以达到比先前已有的方法更高的召回率。使用当前最先进的分类器:卷积神经网络(CNN),作者提出了一种基于学习描述符的片段识别新方法。在本文中,作者比较了三种不同网络结构和训练方法的有效性。在城市驾驶场景中收集的真实数据中通过实验证明了本文所提出的基于学习的方法要优于手工提取的特征描述。

  使用卷积神经网络生成特征描述子的方法通常来说有三种:一是把卷积中间某一层的输出作为特征描述子,但是这种特征未必能满足我们期望的性质。例如对于从点云片段中提取的特征,我们希望其具有旋转不变性以及对遮挡的鲁棒性;第二种是显式地使用损失函数来迫使神经网络学习到的特征满足这些性质,但是这种方法的训练过程比较复杂,会影响模型收敛的速度;第三种为自编码器,可以同时完成压缩原始数据和提取特征两个任务,但是两种没有直接联系的任务之间可能会有互相矛盾的优化目标。

  本文作者使用网格搜索设计了一个性能较好的特征提取网络,其结构如图1所示。对于如何训练该网络,作者提出了三种策略,并分别进行了实验验证。

  在训练网络之前需要对点云数据进行预处理。预处理的步骤为:首先对每一帧点云进行基于区域生长的体素网格分割,随后根据相邻帧间的匹配关系对分割出的点云片段进行分组。也即,两帧点云中被认为是同一个片段的属于一组,这是根据点云片段质心距离来决定的。接着将点云片段缩放到固定大小的体素网格中,并且去均值、除方差归一化。

  预处理完后就可以对网络进行训练。作者提出的三种训练策略分别为:基于组的分类训练,基于孪生网络的训练和基于对比损失函数(contrastiveloss function)的训练,其结构分别如图2(a)~(c)所示。

  前文提到了在预处理过程中对分割出的点云片段进行了分组。这里将每个组作为一个类别,在特征提取网络之后训练一个分类网络(图2(a))以交叉熵损失来训练。这样有一个好处是类别数远大于特征维度,迫使网络学习到更加具有泛化性的特征而不是专注于某些特定的特征。

  孪生网络接受两个点云片段输入,包含两个相同的特征提取网络,随后两个网络的输出又传入第三个网络来判断两个输入的相似性(图2(b)),在进行网络推断时,特征提取部分可以单独使用。

  对比损失函数的定义如下,其中 y 代表两个特征向量是否匹配,m 是损失函数想要在正负样本对之间添加的距离。这种训练方式的目的在于最小化匹配的特征向量之间的欧氏距离,而最大化不匹配的特征向量之间的欧氏距离。损失函数直接应用到特征描述符上,因此不需要训练额外的分类网络(图2(c))。训练时选择最难的样本,即两个具有最大欧氏距离的匹配样本,和两个具有最小欧氏距离的不匹配样本。

  作者取 KITTI 数据集中的两次驾驶数据对算法进行测试,第一次驾驶数据用于生成训练集和验证集,第二次用于测试集。三种网络的训练过程如图3所示。

  对于第一种评价指标,作者使用了ROC曲线。除了孪生网络,其他的方法都额外训练了一个随机森林(RF)分类器来判断输入样本是否匹配,Eigen代表的是非学习的手动提取的基于特征值的特征。结果图如4所示。

  对于第二种评价指标,作者比较了不同方法提取到的特征在特征空间内进行最近邻搜索的匹配性能。结果如图5所示。

环亚