Efficient 3D Point Cloud Feature Learning for Large-Scale Place Recognition
用于大规模场所识别的高效三维点云特征学习
摘要
由于变化环境中场景的外观和照度的急剧变化,基于点云的地点识别检索仍然是一个具有挑战性的问题。现有的基于深度学习的全局描述符的检索任务通常会消耗大量的计算资源(如内存),这可能不适合在硬件资源有限的情况下使用。在本文中,我们开发了一种高效的点云学习网络(EPC-Net)来形成视觉场所识别的全局描述符,它可以获得良好的性能,减少计算内存和推理时间。首先,我们提出了一个轻量级但有效的神经网络模块,称为ProxyConv,用来聚合点云的局部几何特征。我们利用空间相邻矩阵和代理点来简化原始边缘卷积,以降低内存消耗。然后,我们设计了一个轻量级的分组VLAD网络(G-VLAD)来形成用于检索的全局描述符。与原来的VLAD网络相比,我们提出了一个分组全连接(GFC)层,将高维向量分解为一组低维向量,这样可以减少网络的参数数量,保持特征向量的区分度。最后,为了进一步减少推理时间,我们开发了一个简单的EPC-Net版本,称为EPC-Net-L,它由两个ProxyConv模块和一个max pooling层组成,用于聚合全局描述符。通过提炼EPC-Net的知识,EPC-Net-L可以获得用于检索的鉴别性全球描述符。在牛津数据集和三个内部数据集上进行的大量实验表明,我们提出的方法能够以较低的参数、FLOPs和每帧运行时间达到最先进的性能。
I. 引言
视觉定位是计算机视觉的重要任务之一,可应用于各种机器人应用,如视觉同步定位和映射(SLAM)[1]-[3],环形封闭检测(LCD)[4]-[7],和全局定位[8],[9]。它的目的是预测机器人或代理到达的地方的定位。最近在深度学习方面的大量努力都致力于基于视觉的地方识别任务的方法。随着卷积神经网络(CNN)的发展[10]-[13],基于视觉的方法在二维图像的地点识别任务中取得了可喜的成果。然而,基于视觉的方法在某些情况下经常失败,如不同的光照、季节性变化和不同的气候。因此,在这些情况下,很难正确匹配一对图像进行地点识别。为了解决这些问题,三维点云为地方识别提供了另一种可行的解决方案,它对不同的光照条件、季节变化等都是不变的。
最近,PointNet[14]再次引起了人们对三维点云分析的兴趣。PointNet通过简单地使用最大集合函数和多层感知器(MLPs)来构建网络,提供了一个高效的点云特征学习。最近,在点云特征学习方面做出了许多努力[15]-[19]。基于PointNet,Mikaela等人首先提出了用于大规模地点识别的PointNetVLAD[20],它是现有PointNet和NetVLAD[21]的简单组合。然而,它忽略了点云的局部特征,而这对点云特征学习是有效的。因此,为了加强局部特征的学习,PCAN[22]提出了一个预测每个局部特征重要性的点情境注意网络,从而提高了点云特征的辨别能力。与PointNetVLAD相比,虽然PCAN可以提高地点识别的性能,但它需要大量的计算资源和较长的推理时间。最近,Liu等人提出了用于地点识别的LPD-Net[23],它利用了手工制作的特征并设计了一个基于图的聚合模块,从而大大提高了性能。尽管如此,LPD-Net也存在大量资源消耗的问题。因此,如何提高性能和减少资源消耗仍然是地方识别任务的一个挑战性问题。
为了解决上述问题,我们提出了一个高效的点云学习网络(EPC-Net),用于基于点云的地点识别。具体来说,EPC-Net包含两个子网络:代理点卷积神经网络(PPCNN)和分组VLAD网络(G-VALD)。代理点卷积神经网络专注于提取多尺度的局部几何特征,而G-VLAD网络旨在从获得的多尺度局部几何特征中生成具有辨别力的全局描述符。为了减少推理时间以实现高效检索,受边缘卷积(EdgeConv)[16]的启发,我们设计了一个轻量级但有效的模块,称为ProxyConv,用于聚合点云的局部几何特征。与EdgeConv不同的是,我们在空间上构建静态的k-近邻图,而不是在特征空间上构建动态的k-近邻图。我们进一步使用相邻矩阵来描述空间空间中的静态k-近邻图。点在特征空间中相互接近并不意味着它们在空间空间中也很接近。因此,使用空间空间来构建图可以更好地捕捉点云的局部几何结构。此外,我们使用代理点来代替边缘卷积中使用的k-近邻。代理点是通过平均化邻居产生的,可以通过空间邻居矩阵和点特征相乘来实现。因此,k个邻居的内存消耗被减少到一个代理点的内存消耗。通过堆叠ProxyConv模块,我们可以构建代理点卷积神经网络(PPCNN)并获得多尺度局部几何特征。需要注意的是,在PPCNN中,由于所有ProxyConv模块共享相同的空间相邻矩阵,可以减少资源消耗和推理时间。之后,我们提出了一个分组的VLAD网络(G-VLAD)来聚合全局描述符进行检索。由于原始的VLAD网络只是使用一个全连接层将非常高维的全局向量映射到固定维度的向量进行检索,因此它存在着大量的参数和消耗大量的内存。为了缓解这一问题,我们提出了分组全连接(GFC)层,将高维向量分解为一组相对的低维向量,并采用全连接层将其映射为新的特征向量。最后,我们通过对所有特征向量的求和得到全局描述符。我们通过将GFC层集成到VLAD网络中来构建G-VLAD网络。因此,我们可以得到具有判别力的全局描述符,并大大减少网络的参数数量。为了进一步减少推理时间,我们还开发了一个简单的EPC-Net版本,称为EPC-Net-L,它由两个ProxyConv模块和一个max pooling层组成,用于聚合全局描述符。通过提炼EPC-Net的知识,EPCNet-L可以获得用于检索的鉴别性全局描述符。大量的实验表明,我们提出的方法不仅可以达到最先进的水平,还可以减少推理时间和资源消耗。综上所述,本文的主要贡献有以下几点。
- 我们开发了一个高效的点云学习网络(EPC-Net),可以达到基于点云检索的最先进水平。
- 我们提出了一个轻量级但有效的模块ProxyConv,用来描述点云的局部几何特征,这可以减少资源消耗。
- 我们设计了一个分组的VLAD网络(G-VLAD)来聚集辨别性的全局描述符,其中分组的全连接(GFC)层被用来减少网络的参数数量。
- 为了进一步减少推理时间,我们提出了一个简单的EPC-Net版本,称为EPC-Net-L,它可以通过提炼EPC-Net的知识来获得判别性的全局描述符。
本文的其余部分组织如下。第二节介绍了相关工作。在第三节中,我们介绍了我们用于基于点云的地点识别的EPCNet。第四节展示了实验结果,第五节是本文的结论。
II. 相关工作
A. 手工制作的三维描述符
手工制作的点云特征通常被用于各种三维应用。关键问题是要形成稳健的描述符,它可以有效地描述点云的局部几何结构。在早期,Spin Images[24]计算了二维项目中点分布的直方图特征。TriSI[25]是利用局部参考框架(LRF)对Spin Images的改进。然而,[24]、[25]都对噪声敏感。方向直方图签名(SHOT)[26]结合了几何分布信息和直方图统计信息。正态排列径向特征(NARF)[27]是一种三维特征点检测和描述算法。RoPS[28]是一种基于旋转投影统计的三维刚性物体的局部特征描述器,但它对闭塞和杂波很敏感。点特征直方图(PFH)[29]的表示方法是基于k邻域中的点与它们的估计表面法线之间的关系。为了降低计算成本,提出了快速点特征直方图(FPFH)[30]。然而,[29], [30]需要高的数据密度来支持描述符的计算,这使得它无法扩展到大规模的环境。大多数手工制作的描述符是为特定任务设计的。然而,由于野生环境中点云的稀疏性,这些方法并不适合基于点云的大规模地点识别。
B. 学习的三维描述符
随着三维视觉的深度学习的发展,更多的方法被提出来学习三维数据的表示。因此,手工制作的特征被深度特征所取代,在各种任务中,如三维分类、三维物体检测、三维地点识别等,这些特征更加稳健。为了获得不同表征的判别性描述符,人们做了许多努力。
在体积表征方面,方法[31]-[34]通常将点云体素化为三维网格,然后应用三维卷积神经网络(3D CNN)来学习描述符,用于物体识别和分类。Wu等人[31]引入ShapeNets来学习三维形状的描述符,这些描述符被表示为体素网格。Maturana等人[32]提出了VoxNet来获得用于三维物体识别的鲁棒性描述符。然而,体素化表示并不总是有效的,因为它同时表示了场景中被占用和未被占用的部分,导致对内存存储的巨大不必要的需求。为了缓解这一问题,OctNet[35]考虑使用一组不平衡的八叉树,通过利用输入数据的稀疏性对空间进行分层划分。然而,体素化步骤本身就引入了离散化的假象和信息损失。此外,高分辨率的体素将导致更高的内存消耗,而低分辨率将导致细节的损失。
基于视图的方法[34], [36]-[39]通过将三维数据投影到二维视图中来表示,然后使用经典的卷积神经网络(CNN)从收集的多视图二维图像中提取多视图特征,学习用于三维形状识别的判别性描述符。MVCNN[36]是第一个将多视图特征聚合为全局描述符的工作,但视觉特征对于大的视点变化并不稳定。因此,Su等人[37]通过综合同一物体的其他视图的特征,提出了用于物体识别的稳健描述符。此外,Qi等人[34]利用体积CNN和多视图CNN来更好地捕捉三维物体分类的全球描述符。最近,Yang等人[39]利用一组视图上的区域-区域和视图-视图的关系,并将这些视图聚合起来,以获得三维物体的鉴别性描述符。然而,基于视图的方法对三维数据密度很敏感。例如,基于视图的方法会导致野生环境中稀疏的三维点云的细节损失。
基于点的表示法是一种高效的表示法,因为它直接使用原始的三维数据,不需要任何后期处理,而且基于点的方法具有较低的内存消耗。Qi等人[14]提出了PointNet,它只是使用一个对称函数(即最大集合函数)来聚合三维点云的全局描述符,用于三维分类和分割。为了提高描述符的区分度,Qi等人[15]对局部邻域应用最大集合函数来聚合局部描述符,并提出PointNet++。最近,许多人努力[16]-[19], [40]来提高三维点云的全局描述符的辨别能力。与基于体素和基于视图的方法相比,基于点的方法也能取得惊人的效果,同时具有较低的内存消耗,并且容易扩展到大规模环境中。
C. 大规模地点识别
许多人[20], [22], [23], [41]-[45]为基于点云的大规模地点识别做出了努力。具体来说,[41]提出了一种基于运动点云结构的场所识别方法,还提出了一种压缩的三维场景表示方法来提高识别率。最近,[42]提出了一种结构描述符,将稀疏的视觉信息聚合到一个紧凑的表示中,为场所识别提供了一个有区别的描述符。基于三维分割,[43]提出了SegMatch,这是一种地方识别算法,结合了局部和全局描述的优点,同时减少了它们各自的缺点。[44]提出了一个基于点云的地点识别系统,该系统采用在彩色图像上预训练的卷积神经网络来提取深度特征,而不是使用手工制作的特征。然而,上述方法都很复杂,不容易采用。最近,[20]提出了PointNetVLAD,一个轻量级的网络,来处理基于点云的大规模地点识别,并取得了良好的效果。具体来说,在PointNet[14]的基础上,明确利用现有的NetVLAD[21]来提高场所识别的全局描述符的分辨力。之后,PCAN[22]在[20]的基础上引入了一个注意力模块,将局部特征编码到一个有辨识度的全局描述符中,其中一个点状上下文网络被用来聚合多尺度的上下文信息以获得一个注意力图。然而,PointNetVLAD和PCAN只考虑了单点特征,大大忽略了点云的局部特征。为了解决这个问题,LPD-Net[23]利用一个基于图形的邻域聚合模块来聚合局部特征,然后采用NetVLAD来获得全局描述符,用于地方识别。请注意,LPD-Net的输入是原始点云加上额外的手工制作的特征。计算手工制作的特征是非常耗时的,所以很难将其应用于实际测试。此外,由于局部特征学习,它还存在着大量的参数和较高的内存消耗。同样,DH3D[45]提出了一个连体网络,共同学习三维局部特征检测和描述。在检索方面,DH3D采用了[22]中提出的基于注意力的VLAD网络,以获得鉴别性的全局描述符。因此,由于基于注意力的VLAD网络,DH3D仍然面临巨大的计算成本。在本文中,我们提出了一个高效的点云学习网络,可以有效地提取点云的局部特征,并产生一个用于地点识别的判别性全局描述符。更重要的是,我们的方法具有低资源消耗和快速推理的特点。
图1. 左图:EdgeConv[16]模块的结构。右边。我们的ProxyConv模块的架构。ProxyConv模块是EdgeConv模块的一个轻量级版本。
图2. 我们用于基于点云的地点识别的高效点云学习网络(EPC-Net)的结构。鉴于原始点云,我们首先在空间上计算出空间相邻矩阵。然后,我们使用代理点卷积神经网络(PPCNN)来提取多尺度局部几何特征。之后,我们将每个模块的多尺度特征图串联起来,得到一个(64*m)维的特征图。接下来,我们使用多层感知(MLP)将其映射到1024维的特征空间。最后,我们使用提出的分组VLAD网络(G-VLAD)得到256维的全局描述符,其中分组全连接(GFC)层被用来减少参数的数量。请注意,空间相邻矩阵在整个网络中只需要计算一次。
III. 建议的方法
在本节中,我们介绍了我们基于点云检索的方法的细节。在第三部分A,我们首先描述了用于提取局部几何特征的代理点卷积神经网络(PPCNN)。然后,我们设计了一个分组的VLAD网络(G-VLAD),在第三节B中聚集全局描述符。之后,我们在第三节C中介绍了用于基于点云检索的高效点云学习网络(EPC-Net)的结构。为了进一步减少推理时间,在第三节D中,我们提出了一个简单的EPC-Net版本,称为EPC-Net-L,它提炼了EPC-Net的知识,以提高泛化能力。
A. 代理点卷积神经网络
我们提出一个代理点卷积神经网络(PPCNN)来聚合多尺度的局部几何特征。它不仅可以聚合点云的局部几何特征,还可以减少推理时间、参数和资源消耗。PPCNN是由一组ProxyConv模块堆叠而成的,它是聚合局部几何特征的关键。我们的ProxyConv模块是EdgeConv[16]的一个轻量级但有效的版本。如图1所示,我们展示了EdgeConv和ProxyConv模块的详细结构。
EdgeConv是为了聚合局部几何特征而提出的。让我们考虑一个有n个点的d维点云,用X∈R n×d表示,其中n表示点的数量,d表示点特征的通道数量。它首先构建了X在特征空间中的k-近邻图。然后,边缘特征的定义是:
其中xi被认为是中心点,xj是k个最近的邻居之一。这里,hΘ : R d × R d → R d是一个具有可学习参数Θ的非线性函数。本地邻域信息由xj - xi捕获。最后,一个通道对称的函数,max pooling,被应用于聚合本地的几何特征:x 0i = maxj eij。从图中可以看出,EdgeConv的内存消耗是O(n ∗ d)+O(n ∗ k ∗ d)+O(n ∗ k ∗ 2d)+O(n ∗ k ∗ d)+O(n ∗ d)=O(n∗ (2+ 4k) ∗ d)。如果我们堆叠m个EdgeConv模块,总的内存消耗高达O(m ∗ n ∗ (2 + 4k) ∗ d)。当增加通道数量d和邻居k时,内存消耗将迅速增加。此外,EdgeConv需要重新计算特征空间中的k-近邻图,这将增加计算成本,从而增加推理时间。LPD-Net[23]采用了EdgeConv来提取特征。因此,它占用了大量的内存,并且需要很长的推理时间来进行检索。
为了缓解这个问题,我们在ProxyConv模块中考虑两点。(1)我们在空间上构建k-近邻图;(2)我们使用代理点来替代边缘卷积中使用的k-近邻。对于第一点,由于k-近邻在特征空间中相互接近并不意味着它们在空间中也相互接近,我们在空间中构建k-近邻图以更好地描述局部几何结构。此外,空间上的k-近邻图是一个静态图,只需要计算一次,从而节省了计算成本。对于第二点,在计算局部几何信息时,我们用代理点代替k-近邻。这样,特征图的内存消耗将从O(n ∗ k ∗ d)(见图1中的I1)减少到O(n ∗ d)(见图1中的A)。在本文中,代理点是通过对k个最近的邻居的特征进行平均而产生的。在我们的实验中,我们发现通过平均本地邻居的特征得到的代理点可以很好地工作。此外,这种平均操作可以通过将点的特征与空间相邻矩阵相乘来实现。因此,我们可以在所有ProxyConv模块中共享空间相邻矩阵以减少内存消耗和计算成本。
ProxyConv模块的详细结构见图1的右边部分。首先,我们介绍空间相邻矩阵G∈R n×n。相邻矩阵是一个用于表示图的方形矩阵。矩阵的元素表示图中的成对的点是否相邻。在本文中,我们根据空间中的k-近邻(k-NN)图来构建相邻矩阵G。我们首先通过以下方式计算点i和j之间的欧几里得距离。
其中pi∈R 3和pj∈R 3是两个坐标向量。为了得到空间相邻矩阵G∈R n×n,我们对每一行的元素进行二值化处理:最小的元素被设置为1,其余元素被设置为0。得到空间相邻矩阵后,我们可以用它来生成代理点。从形式上看,通过矩阵乘法对本地相邻特征进行平均化的公式写为:
其中Y∈R n×d为点特征,Q={q1, - -, qn | qi∈R d}为生成的新代理点,其中qi为第i个代理点的点特征。因此,EdgeConv的原始特征图I1∈R n×k×d可以简化为图1中ProxyConv的Q∈R n×d。因此,我们可以使用中心点和代理点来计算局部的几何信息,而不是使用中心点和其邻居。因此,新的聚合特征的定义是:
其中fiq∈R d是生成的新特征,gΘ : R d → R d是一个具有可学习参数Θ的非线性函数。注意,在公式(1)中,如果i等于j,那么xj-xi为零。因此,中心点特征xi应该在公式(1)中被串联起来。在公式(4)中,Qi不等于yi,所以我们不把yi串联到Qi-yi。最后,我们通过在生成的新特征上添加输入点特征来定义ProxyConv:Y 0i = fi +yi 。从图1来看,ProxyConv的内存消耗是O(n∗5d)+O(n∗n)。如果我们将m个ProxyConv模块堆叠在一起,总的内存消耗高达O(m ∗ n ∗ 5d)+O(n ∗ n)。由于相邻矩阵在所有ProxyConv模块中是共享的,相邻矩阵的内存消耗只计算一次。ProxyConv和EdgeConv模块的内存消耗比写为:
其中PC和EC分别代表ProxyConv和EdgeConv。一般来说,n、k、d和m的值分别为4096、20、64和4。公式(5)的比率约为25%。此外,由于空间相邻矩阵的存在,ProxyConv的内存消耗与邻居的数量无关。然而,随着邻居数量的增加,EdgeConv的内存消耗也会增加。此外,从公式(1)和公式(4)可以看出,我们的ProxyConv的参数数量较少。为了构建代理点卷积神经网络(PPCNN),我们直接堆叠ProxyConv模块。如图2的上部所示,我们提供了我们的PPCNN的详细结构。由于我们在空间上构建了空间相邻矩阵,所有模块都可以共享相同的空间相邻矩阵。因此,空间相邻矩阵在整个PPCNN中只需要计算一次。通过堆叠ProxyConv模块,我们可以获得多尺度的局部特征。由于我们的ProxyConv模块,我们的代理点卷积神经网络可以具有低内存消耗和短推理时间。如前所述,我们使用一个代理点来替代最近的邻居。虽然它似乎失去了一些局部信息,但我们希望在基于点云的地点识别中强调内存消耗和推理时间。令人惊讶的是,与原来的EdgeConv相比,通过使用代理点,我们可以减少大约75%的内存消耗。同样地,由于内存计算和特征图大小的减少,网络的推理时间也得到了减少。此外,代理点是通过对本地邻域的点特征进行平均而产生的。换句话说,代理点是一个聚集了本地信息的复合点。因此,使用代理点不仅可以减少内存,还可以利用点云的局部信息。
B. 分组VLAD网络 一旦我们从高效的代理点卷积神经网络中获得了局部描述符,我们就提取全局描述符用于基于点云的地点识别。在NetVLAD[21]的基础上,我们设计了一个分组VLAD网络(G-VLAD),它可以用较少的参数获得具有辨识度的全局描述符。给定一组学习的局部特征描述符{fi | i = 1, 2, - -, n},其中n是点的数量,fi∈R d是d维描述符向量。原始的VLAD网络首先学习K个聚类中心{c1, - -, cK | ck ∈ R d},然后为每个聚类中心ck计算子向量Vk。具体来说,Vk可以看作是fi和ck之间差异的加权和,并写成:
其中Vk∈R d,a k i是一个软权重。输出的全局描述符向量V = [V1, - - ,VK]是局部特征向量的聚合,其中V∈R K×d。当K或d变大时,得到的全局描述符是一个非常高的维度向量,即(K×d)-维向量,这在检索时在时间和资源上是很昂贵的。一般来说,在基于点云的检索中,(K×d)-维矢量至少是105-维矢量。因此,全连接(FC)层通常被用来将描述符向量从非常高的维度向量压缩到一个紧凑的低维向量。然而,由于高维输入向量,最后一个全连接层将导致大量的参数和内存消耗。为了解决这个问题,我们引入了分组全连接(GFC)层,将一个非常高维的向量分解成一组相对低维的向量,这样可以减少全连接层的参数数量,并保持全连接层的分辨能力。具体来说,如图2所示(参考分组VLAD网络),我们首先将(K×d)维的向量分成G组,即G=[U1, - -, UG | Ug∈R (K×d)/G]。请注意,每个组的维度是(K×d)/G,其中G被限制为可将K×d整除。因此,全连接层在每个组内分别进行,以获得新的向量U 0g∈R O。为了聚合最终的全局描述符,我们在此将所有分组的新向量相加。汇总后的向量被写成
其中
,代表地方识别的全局描述符。可以发现,参数K×d×O的数量减少到(K×d×O)/G。在实验中,我们根据经验设定G=8,这意味着我们可以减少8倍的参数。请注意,GFC层是FC层的泛化,因为在G=1时,两者是等价的。我们观察到,VLAD网络的泛化能力几乎不受GFC层的影响。由于从原始VLAD得到的高维向量的冗余性,分解后的低维向量可以对VLAD描述符的高维特征空间的流形结构进行判别。
C. 网络结构
如图2所示,我们提出了基于点云的地点识别的高效点云学习网络(EPC-Net)的结构。该框架主要由两部分组成:代理点卷积神经网络(PPCNN)和分组VLAD网络(G-VLAD)。给定一个只有空间坐标(即XYZ坐标)的原始点云,我们使用提议的代理点卷积神经网络来提取多尺度的局部几何特征。然后,我们将多尺度的特征图串联起来,得到一个(64*m)维的特征图,其中m是叠加模块的数量。之后,我们应用MLP将得到的特征映射为1024维的特征图。请注意,在PPCNN中,由于相邻矩阵只需要在所有m个ProxyConv模块中计算一次,所以它节省了大量的计算时间和内存消耗。由于我们已经获得了每个点的局部特征,我们利用提出的分组VLAD网络来聚合全局描述符进行检索。G-VLAD网络将整个点云的特征图作为输入,输出一个向量作为全局描述符。在G-VLAD网络中,分组全连接(GFC)层被用来减少训练中的参数数量。对于地点识别任务,我们计算测试场景和查询场景之间在描述符空间的距离,以确定它们是否是相同的地方。与之前的方法[20], [22], [23], [45]相比,我们的EPC-Net不仅可以有效地聚合局部几何特征,获得具有判别力的全局描述符,还可以减少内存消耗、参数和推理时间。
为了减少推理时间,我们还构建了一个简单版本的EPC-Net,称为EPC-Net-L。我们直接堆叠两个ProxyConv模块来构建轻量级的代理点卷积神经网络。因此,我们可以通过串联两个64维的特征图来获得一个128维的特征图。为了进一步减少推理时间,我们只使用max pooling来聚合全局描述符进行最终检索,而不是使用提议的G-VLAD网络。因此,EPC-Net-L的参数数量比EPC-Net的要少。虽然我们可以获得更短的推理时间,但EPCNet-L的性能要比EPC-Net低很多。在下一小节中,我们采用从EPC-Net中提炼知识的方法来提高EPC-Net-L的性能。
D. 网络提炼
我们的最终目标是开发一个高效的网络,在减少推理时间的同时还能实现良好的性能。为此,我们提出了一个师生网络,其中教师网络是上面提到的高效点云学习网络(EPC-Net),而学生网络是EPC-Net的一个简单版本,称为ECP-Net-L。
1)教师网络。如图2所示,我们使用提出的EPC-Net作为教师网络,它集成了代理点卷积神经网络和分组VLAD网络,用于提取基于点云的地方识别的判别性全局描述符。由于我们专注于设计一个高效的地点识别网络,我们采用了PointNetVLAD[20]中使用的相同的懒惰四重损失来训练该网络。给定一个点云,我们构建四元组T = (Pa, Ppos, {Pneg}, Pneg∗),其中Pa, Ppos, {Pneg}和Pneg∗分别代表锚点样本、与锚点相似的正样本、与锚点不相似的一组负样本和训练数据集中的随机样本。懒惰的四维损失被写成:。
其中 [...]+表示铰链损失,α/β是给定的余量。与PointNetVLAD相同,我们在教师网络中设定α=0.5和β=0.2。此外,δpos、δneg和δneg∗ k分别是相应样本对之间的距离。
2)学生网络。除了教师网络之外,学生网络是EPC-Net的一个简单版本。具体来说,我们只使用两个ProxyConv模块来提取局部几何特征。之后,使用全局最大集合得到点云全局特征,接着是全连接层,用来将高维向量转化为低维向量,即全局描述符。与之前的方法[20]、[22]、[23]、[45]相比,学生网络的结构更简单,因此它的参数少,推理时间短。由于教师网络和学生网络都有类似的特征提取模块,我们利用教师网络来指导学生网络的训练,以提高其泛化能力。假设学生网络和教师网络的全局描述符分别为X S和X T。我们鼓励教师网络学习的全局描述符和学生网络学习的全局描述符相似。具体来说,我们使用总和误差(SSE)损失来实现这一目标,公式写为:
其中,X S∈R O,X T∈R O。注意,通过这种方式,可以引导学生网络从教师网络中学习有用的信息,以便在点云上进行有效检索。此外,我们还使用与公式(8)中相同的懒惰四元组损失来训练学生网络。因此,训练学生网络的最终损失被定义为:
其中λ是超参数,我们在实验中设置λ=0.1。我们首先用懒惰的四重损失LlazyQuad训练教师网络。然后,我们用综合损失Lfinal来训练学生网络。注意,在训练学生网络的过程中,我们冻结了训练后的教师网络的参数,也就是说,它只进行前向推理。
IV. 实验
A. 实验设置
1) 数据集。我们在实验中采用了PointNetVLAD[20]中提出的基于LiDAR的地点识别的基准数据集。这些数据集是基于开源的Oxford RobotCar[47]和一个大学区(U.S.)、一个住宅区(R.A.)和一个商业区(B.D.)的三个内部数据集。具体来说,四个区域的LiDAR数据是由安装在汽车上的LiDAR传感器收集的。请注意,在实践中,PointNetVLAD删除了非信息性的地面平面,并将LiDAR数据下采样为4096点。此外,每个下采样的子图都有一个UTM坐标的标签。为了产生每个子图的注释,PointNetVLAD采用相距10米的点云作为正对,相距至少50米的点云作为负对。对于从牛津数据集收集的所有子图,21711个子图被用于训练,其余3030个子图被用于测试。内部数据集的子地图都被用来测试只在牛津数据集上训练的方法的泛化能力。请注意,在评价方案中,如果查询子图和检索子图之间的距离小于25米,则认为查询的点云已经被成功定位。
2) 评价指标。我们采用最常用的指标,即召回率,来评价基于LiDAR的地点识别。它通常能找到前K个候选者,其中K=1, 2, 3, - - - 。继[20]、[22]、[23]之后,我们使用前1%(@1%)和前1(@1)的召回率,以方便与这些方法进行比较。 被引导从教师网络中学习有用的信息,以便在点云上进行有效检索。此外,我们还使用与公式(8)中相同的懒惰四元组损失来训练学生网络。因此,训练学生网络的最终损失被定义为。此外,我们还将我们的方法与之前的方法在参数数量、浮点运算(FLOPs)和每帧运行时间方面进行了比较。
3) 实施细节。我们的高效点云学习网络(EPC-Net)主要由一个代理点卷积神经网络(PPCNN)和一个分组的VLAD网络(G-VLAD)组成。我们框架的结构如图2所示。在本文中,我们使用与[20]相同的4096个点的LiDAR数据。具体来说,我们首先堆叠m=4个ProxyConv模块,每个模块的神经元大小为4096×64。此外,本地邻居的数量k被设置为20,用于计算空间相邻矩阵。然后,我们将四个模块的多尺度特征图串联起来,得到一个4096×256的特征图。之后,我们使用多层感知器(MLP)将4096×256的特征图映射成大小为4096×1024的高维特征图。然后,得到的4096×1024的特征图被发送到GVLAD网络,以生成一个用于检索的全局描述符。在G-VLAD网络中,群组的数量K是64,输出维度O是256。此外,GFC层中的组数G为4。对于网络提炼,我们只将两个ProxyConv模块堆叠起来作为一个轻量级的特征提取网络,并使用max pooling来聚合全局描述符进行检索。同样,我们将两个模块的多尺度特征图串联起来,得到一个4096×128的特征图,并使用MLP将其映射成一个大小为4096×1024的高维特征图。通过对4096×1024的特征图进行最大池化,我们得到1024维的全局描述符。在这里,我们使用一个全连接层将1024维的向量压缩成256维的向量进行检索。在整个网络中,我们在每层之后使用Leaky ReLU[48]和批量归一化[49]。此外,我们使用学习率为5×10-5的Adam[50]来训练网络。对于超参数,我们将懒惰的四维损失的α和β分别设置为0.5和0.2。对于最终的损失,我们在实验中设置超参数λ=0.1。我们使用深度学习平台TensorFlow[51]来完成我们的方法。
B. 结果
为了评估我们的方法,我们对[20]中提出的基准数据集进行了实验。我们将我们的方法(EPC-Net)与之前的一系列方法进行比较。被称为PN MAX[20]的方法在原始PointNet架构之后使用了一个最大池来获得一个全局描述符。PN STD[20]使用ModelNet[31]数据集中训练好的PointNet来观察在ModelNet数据集上训练的模型是否可以扩展到大规模案例。PN VLAD[20]使用VLAD网络来替代PointNet中的最大池化。PCAN[22]引入了点式上下文注意网络,在聚合全局描述符时学习任务相关的特征。LPD-Net[23]通过图神经网络同时利用空间和特征空间来增强局部特征,以获得具有辨识度的全局描述符。DH3D[45]使用与PCAN中相同的基于注意力的VLAD网络,但它使用了不同的局部特征学习网络。请注意,对于所有的比较方法,我们只使用4096个点的下采样点云的空间坐标。
1) 定量结果。定量结果见Tab. I,其中EPC-Net、EPC-Net-L和EPC-Net-L-D是我们的方法。具体来说,EPC-Net表示我们用于检索的高效点云学习网络。EPC-Net-L是EPC-Net的一个轻型版本。为了提高性能,我们进一步提出了EPC-Net-L-D,其中我们使用EPC-Net(教师网络)来指导EPC-Net-L(学生网络)的训练。从表中可以看出,我们的EPCNet在牛津数据集上的表现明显优于其他先进方法。我们的EPC-Net达到了最先进的水平,前1%的平均召回率为94.74%,这证明了我们的方法可以生成用于检索的判别性全局描述符。此外,我们的EPC-Net-L仍然比PN VLAD、PCAN和DH3D有较大的优势,这进一步说明我们的方法在轻量级版本中也能产生良好的性能。由于我们使用EPC-Net来指导EPC-Net-L的训练,所以EPC-NetL-D的性能要好于之前的大多数方法。请注意,在表中,为了公平比较,LPD-Net∗的结果是通过使用他们的开源程序并去除手工制作的特征而得到的。此外,手工制作的特征的计算非常耗时,它很难被应用于实际环境中的检索。在手工制作的特征下,LPD-Net的平均召回率(@1%)在[23]中报告为94.92%。虽然我们的EPC-Net没有使用手工制作的特征,但我们的性能仍然可以与配备手工制作特征的LPD-Net相媲美。此外,"PN VLAD refine "和 "PCAN refine "代表了在训练过程中使用牛津数据集加上额外的美国和加拿大数据集的情况下获得的结果。除了这两个结果之外,其他的结果是在训练期间使用牛津数据集获得的。与使用额外数据集的方法相比,EPC-Net也能取得令人印象深刻的表现,平均召回率(@1%)从86.04%提高到94.74%,显著提高了8.7%。如表三所示,我们还对我们的方法进行了测试。III中,我们还在内部数据集中测试了我们的方法。这里我们报告了直接测试只在牛津数据集上训练的模型所得到的结果。可以发现,我们的方法也比其他方法明显提高了性能。此外,在图3中,我们还显示了每种方法在四个数据集的前25个检索结果中的召回曲线,其中我们的EPC-Net优于其他方法。这进一步证明了我们方法的有效性。
2) 视觉结果。在图4中,我们展示了B.D.数据集中一个数据库对的四种不同方法成功检索到的子图的热图。在图中,接近黄色的颜色表示子图可以被更准确地识别。可以发现,与其他方法相比,我们的EPC-Net对整个场景的地方有很好的识别能力。如图5所示,我们将不同方法在牛津数据集上的top 1匹配的检索结果可视化。视觉结果显示,与其他方法相比,我们的EPC-Net可以成功地检索到不同环境下的场景。例如,从图中第一行来看,PN VLAD和PCAN不能正确地检索到场景,其中搜索到的场景的环境与查询场景有很大不同。虽然LPD-Net搜索到的场景也与查询场景不一致,但这些场景在整体结构上是相似的。PN VLAD和PCAN不能有效地检索到这些场景,因为它们都忽略了点云的局部特征学习。LPD-Net使用特征空间中的动态图来提取局部特征。显然,在特征空间中相互接近的两个点并不意味着它们在空间空间中也很接近。请注意,我们使用空间空间来提取整个网络中的局部几何特征。因此,我们的结果要比LDP-Net好。视觉结果证明了我们方法的有效性。
3) 计算成本。为了评估不同方法所需的计算和内存,我们在表格II.中报告了每帧的参数数量、浮点运算(FLOPs)和运行时间。为了进行公平的比较,所有代码都在一个使用TensorFlow框架的NVIDIA TITAN RTX GPU上运行。由于高效的代理点卷积神经网络和G-VLAD网络,我们的EPC-Net可以在较低的4.70M参数、3.25G FLOPs和每帧32.82ms的运行时间下达到94.74%的最佳结果。与PN VLAD和LPD-Net不同的是,我们使用G-VLAD网络而不是原始的VLAD网络。如前所述,参数的数量主要来自最后一个全连接层,它将高维向量映射到低维向量。由于G-VLAD网络通过GFC层将高维向量分解为一组相对的低维向量,我们的EPC-Net可以获得更少的参数。此外,PCAN使用基于注意力的VLAD网络。因此,它的参数数量比我们的高。由于轻量级的ProxyConv模块,我们的EPC-Net仍然具有较低的FLOPs和每帧运行时间。此外,PN VLAD、PCAN和LPD-Net使用空间变换网络(STN)模块,这将带来巨大的计算成本,导致更高的FLOPs。请注意,我们的网络中没有使用STN模块。此外,LPD-Net使用EdgeConv模块,所以它的FLOPs比PN VLAD高。由于ProxyConv模块和分组的全连接层,我们的FLOPs比其他方法低。虽然EPC-Net-L的性能低于EPC-Net,但它仍然明显优于其他大多数方法。请注意,在表格. II中,EPC-Net-L和EPC-Net-L-D所需的计算量和内存是相同的。EPC-Net-L-D的结构与EPC-Net-L相同,但训练是由EPC-Net指导的。通过提炼EPC-Net的知识,EPC-Net-L-D将EPC-Net-L的性能从86.53%提高到92.23%,而每帧的参数数、FLOPs和运行时间都与EPC-Net-L相同。与其他方法相比,我们的EPC-Net-L和EPC-Net-L-D实现了最低的参数0.41M、1.37G FLOPs和每帧25.71ms的运行时间,这进一步证明了我们方法的有效性。
C. 消融研究
1) 代理点卷积神经网络中的不同k。在我们的代理点卷积神经网络中,邻居大小k是提取局部几何特征的一个重要参数。这里我们研究了邻居大小k的数量,以显示在不同环境下的影响。如表4所示,当邻域大小为1时,取得的效果最好。如表四所示,当k的值设置为20时,取得了最好的结果。此外,我们还在图6(a)中展示了牛津数据集前25名检索结果的不同k数的召回曲线。可以看出,k=20的曲线比其他曲线要高,这进一步说明它取得了更好的性能。较小的k会损害性能,因为很难从一个非常小的邻域产生有效的几何特征。然而,更大的k会给邻域引入更多的噪声,从而阻碍了对局部几何信息的学习。因此,我们在实验中根据表4选择k=20。四。请注意,与其他方法不同,k的选择很难影响我们网络的计算成本。例如,在LPD-Net[23]中,较大的k会产生较大的特征图,这将导致大量的计算和内存。然而,在我们的网络中,只有空间相邻矩阵对特征图的大小有贡献,而不是参数k。相邻矩阵的大小被固定为n×n(n为点的数量),因此k的不同值不能影响相邻矩阵和特征图的大小。因此,k的选择不能带来额外的计算和内存。
2) 堆叠不同数量的ProxyConv模块。在代理点卷积神经网络中,我们堆叠四个ProxyConv模块来获得多尺度特征,以增强特征表示。这里,我们研究了网络中使用的模块数量对性能的影响。具体来说,我们尝试了至少使用一个模块和最多五个模块的五种方案。为了进行公平的比较,我们只改变模块的数量,其余的设置保持不变。比较结果见表4和图6(b)。图6(b),其中EPC-Net配备了四个模块(即m=4),并取得了最好的性能。从图中可以看出,m=4的曲线比其他曲线要高,这意味着它有更好的性能。由于较少的模块会使网络的感受野变小,我们无法提取稳健的点特征。当堆叠更多的模块时,局部感受野会变得更大,这将带来更多的噪声,使我们难以提取有效的局部几何信息。因此,我们在本文中根据实验选择了四个模块。
3) 代理点卷积神经网络的有效性。为了比较不同方法的特征提取能力,我们在牛津数据集上进行了实验,以揭示我们的PPCNN的有效性。具体来说,我们分别使用PointNetVLAD[20]、PCAN[22]、LPD-Net[23]和EPC-Net的特征提取网络。为了公平比较,我们使用相同的VLAD网络来获得全局描述符。在Tab. V,我们显示了不同方法的平均召回率和GPU内存。请注意,在表中,我们用方法的名称来代表相应的特征提取网络。"EPC-Net + VLAD "意味着我们使用PPCNN加上原始的VLAD网络。可以看出,与其他方法相比,我们的 "EPC-Net + VLAD "可以在低GPU内存下获得最佳性能。"PN+VLAD "和 "PCAN+VLAD "具有相似的性能和相同的GPU内存,因为它们都使用PointNet作为特征提取网络。虽然他们的GPU内存比我们的方法低0.5G,但他们在前1%的平均召回率的表现比我们的方法低12.46%。由于 "LPD-Net + VLAD "使用EdgeConv模块来提取局部几何特征,它具有更高的性能和GPU内存消耗。由于使用了ProxyConv模块,我们的方法与 "LPD-Net + VLAD "相比可以获得更高的性能,同时减少GPU内存。
4) ProxyConv与EdgeConv:为了比较ProxyConv与EdgeConv,我们进行了基于代理点卷积神经网络(PPCNN)和动态图卷积神经工作(DGCNN[16])的实验。我们的PPCNN使用ProxyConv模块,而DGCNN使用EdgeConv模块。从Tab. 我们的 "EPCNet + VLAD "与 "DGCNN + VLAD "的结果相当,但其GPU内存较低。一方面,因为ProxyConv使用的是在空间上构建的静态图,而EdgeConv使用的是在特征空间上构建的动态图。在特征空间中相互接近的点并不意味着它们在空间空间中相互接近。我们在空间空间中构建静态图以更好地描述局部几何结构。另一方面,场景中存在许多平面结构,如图5所示。虽然EdgeConv可以在局部平面上提取局部特征,但它存在着大量GPU内存的问题。从局部平面上扫描的LiDAR点是相互类似的。因此,我们采用代理点来替代本地平面中的类似邻居点。这样,我们的ProxyConv可以通过代理点学习局部特征,同时大大减少GPU内存。实验结果进一步证明,我们的ProxyConv可以取得与EdgeConv相当的结果,同时具有较低的GPU内存。
5) G-VLAD网络中不同的K、O和G。在G-VLAD网络中,我们研究了不同参数对网络性能的影响。具体来说,我们研究了集群的数量K,以探索局部描述符的数量对聚合全局描述符的影响。为了公平比较,我们首先固定G=4,O=256的数量,然后选择K∈[32, 64, 96, 128, 160]。如表所示。如表四所示,我们列出了不同数量的集群的结果。K=64的集群具有最好的性能。为了更直观的比较,我们在图6(c)中显示了牛津数据集前25个检索结果的不同K数的召回曲线。可以看出,K=64的曲线比其他曲线高。较小的K会产生粗糙的聚类特征,这将导致在检索过程中辨别力差。然而,较大的K值会导致聚类空间中的特征破碎,不利于生成健壮的局部描述符。 因此,根据该图,我们在实验中设定K=64。此外,我们还研究了我们的网络在全局描述符的不同输出维度O上的判别能力,以便进行检索。我们在实验中选择O∈[64, 128, 256, 512, 1024],并固定K=64和G=4进行公平比较。在Tab. 四中,我们显示了不同维度的结果。请注意,输出维度d=1024的网络实现了最佳召回率@1%和召回率@1,比O=256和O=512的网络略高。在图6(d)中,我们还展示了牛津数据集中前25个检索结果的不同数量的O的曲线。从图中可以看出,O=1024的网络略微优于其他网络。然而,在G-VLAD网络的最后一个全连接层中,高维输出将在训练期间产生更多的计算和内存。因此,为了在性能和资源消耗之间取得良好的权衡,我们在实验中把O设置为256。为了研究分组全连接(GFC)层的参数G,我们在不同的G值下进行实验。具体来说,我们选择G∈[1,2,4,8,16,32]的值,同时固定K=64和O=256的数量。在牛津数据集上的平均召回率和参数见表。VI. 当G设置为4时,与其他设置相比,我们可以达到最好的结果,这也意味着我们可以将参数的数量减少4倍。请注意,当G设置为1时,意味着我们不使用分组操作来减少参数的数量。从表中可以发现,使用分组操作的结果略好于不使用分组操作的结果(即G=1),这说明我们配备了分组操作的GVLAD网络可以在降低参数的同时获得更好的性能。此外,随着组数的增加,参数的数量也在减少。当G=32时,参数的数量甚至可以减少到1.03M。与Tab.I中的其他方法相比,我们仍然可以达到最佳的性能。I中的其他方法相比,我们仍然可以取得最好的结果,这进一步证明了我们EPC-Net的有效性。
6) G-VLAD网络的有效性。为了获得鉴别性的全局描述符,我们提出了G-VLAD网络来替代原来的VLAD网络,以减少参数的数量。在此,我们进行实验来研究我们的G-VLAD网络的有效性。具体来说,基于我们的EPC-Net,我们分别使用全局平均池(AVG)、全局最大池(MAX)和VLAD网络(VLAD)来替代提议的G-VALD网络。如表七所示,我们报告了不同的结果。VII,我们报告了不同设置的结果。请注意,"EPC-Net + AVG "和 "EPC-Net + MAX "表示我们只是使用全局平均池和全局最大池来聚合全局描述符。我们可以看到,带有G-VLAD的EPC-Net在1%的平均召回率和前1名的平均召回率上都取得了最佳性能。更重要的是,我们的G-VLAD网络的参数数量比VLAD的要少得多。因为分组全连接层将高维全局向量分解为一组低维向量,参数的数量将通过分组操作减少。虽然我们的G-VLAD的参数数量比全局平均池和全局最大池要多,但我们的性能却以很大的优势超过了它们。这是因为我们的G-VLAD比全局平均池化和全局最大池化能提取更多的鉴别性全局描述符。因此,这进一步证明了我们的G-VLAD网络的有效性。
7) 网络提炼中的不同λ。在本文中,我们提出了一个轻量级的EPC-Net(被称为 "EPC-NetL")来减少推理时间。我们通过提炼EPC-Net(教师网络)中的知识来提高EPC-Net-L(学生网络)的性能。这里我们研究了从教师网络中提炼知识的参数λ的影响。在实验中,我们选择了五个不同的λ值,包括0、0.001、0.01、0.1和1.0。如表八所示,我们显示了教师网络的平均召回率。八,我们显示了不同的λ设置下网络的平均召回率。可以看出,当λ被设置为0.1时,它取得了最好的性能。请注意,λ=0意味着我们只用原始的懒惰四元损失来训练学生网络。从表中可以看出,在教师网络的指导下训练的学生网络可以将性能从86.53%提高到92.23%,这进一步证明了网络提炼策略的有效性。
V. 结论
在本文中,我们提出了一种高效的点云学习网络(EPC-Net),用于基于点云的地点识别,在参数少、推理时间短的情况下可以获得良好的性能。具体来说,我们首先提出了一个轻量级的神经网络模块,称为ProxyConv,它利用空间相邻矩阵和代理点来简化原始边缘卷积,从而减少内存消耗。通过堆叠ProxyConv模块,我们构建了代理点卷积神经网络(PPCNN)来聚合多尺度的局部几何特征,同时由于所有模块中共享的相邻矩阵,资源消耗较低。之后,我们设计了一个分组VLAD网络(G-VLAD)来获得用于检索的全局描述符。在G-VLAD网络中,我们使用分组全连接(GFC)层将高维向量分解为一组相对的低维向量,从而减少了参数的数量。为了进一步减少推理时间,我们还开发了一个轻量级网络(EPC-Net-L),它由两个ProxyConv模块和一个max pooling层组成。为了获得具有判别力的全局描述符,我们利用EPC-Net通过知识提炼指导EPC-Net-L的训练。在牛津数据集和三个内部数据集上进行的大量实验表明,我们提出的方法能够以较低的参数、FLOPs和每帧运行时间实现最先进的性能。