超点通过将相似点与局部几何结构分组形成,可以有效地减少点云原语的原语数量,用于后续的点云处理。现有的超点方法主要集中于使用聚类或图划分来生成具有手工制作或学习过的特征的超点。然而,这些方法并不能通过端到端网络来学习点云的超点。在本文中,我们开发了一种新的深度迭代聚类网络,直接从不规则的三维点云中以端到端的方式生成超点。具体来说,在我们的聚类网络中,我们首先从点云的坐标和特征空间中联合学习一个软点-超点关联映射,其中每个点都被分配给具有学习权值的超点。此外,我们还可以迭代地更新关联映射和超点中心,以便更准确地将这些点分组到具有局部相似几何结构的相应超点中。最后,通过预测超点中心的伪标签,我们建立了一个在点和超点中心上的标签一致性损失来训练网络。在各种数据集上的大量实验表明,该方法不仅达到了最先进的超点生成水平,而且提高了点云语义分割的性能。代码可在https://github.com/fpthink/SPNet上找到。
超点是点云的过分割,它可以语义地对具有相似几何特征的点进行分组。它们可以捕获点云的冗余性,并大大降低了后续点云处理算法的计算成本。由于超点的表征和计算效率,它们在点云处理任务中越来越流行,如三维对象建模[4]和点云语义分割[26,21]。然而,由于点云的几何结构复杂,如何将几何上相似的点分组以形成精确的超点仍然是一个具有挑战性的问题。
在过去的几年里,研究工作一直致力于点云的超点生成。大多数的超点生成方法依赖于点云的手工特征,通过使用聚类或图划分方法来对相似的点进行分组。例如,在体素云连通性分割(VCCS)方法[33]中,利用点云的空间连通性和快速点特征直方图(FPFHs)作为局部特征进行超点聚类。Lin等人[29]提出了一种生成超点的子集选择方法,其中点云的FPFHs也用于表征点云的局部结构。Guinard等人[14]利用贪婪图切割算法[24]提取点云的局部线性、平面性、散射和垂直度性特征,生成超点。然而,这些方法的性能受到点云的手工特性的限制。最近,监督超点(SSP)方法[21]使用深度网络获得点云的深度嵌入,并将其与图结构的深度度量学习相结合,对点云进行过分割。尽管如此,它仍然使用[14]中基于优化的方法来生成超点。因此,SSP不是一种端到端超点生成方法。最近,在[18]中,提出了二维图像上的可微滑动超像素方法,通过构造软关联映射进行端到端训练。我们建立了在三维点云上生成端到端超点的思想,它可以集成到其他可训练的深度神经网络中,用于点云处理任务。
在本文中,我们提出了一个简单而有效的端到端框架来生成三维点云上的超点。在我们的框架中,我们开发了一个深度迭代聚类网络来学习点和超点中心之间的关联映射。具体来说,我们首先使用深度神经网络来提取点云的局部几何特征。在聚类之前,我们在点云的坐标空间中采用最远点采样(FPS)算法来获得初始的超点中心。然后,我们同时从点云的坐标空间和特征空间中自适应地学习点与超点中心之间的双边权值。对于每个点,通过给具有不同几何结构的超点中心分配不同的权值,期望它有选择性地聚焦于最相似的超点中心。基于学习到的双边权值,我们可以构造点与超点中心之间的软关联映射。因此,我们通过用构造的关联映射加权对应点的嵌入来更新超点中心的特征和坐标。通过迭代更新学习到的双边权值和超点中心,我们可以逐步学习到一个精确的点-超点关联图。最后,通过利用点-超点关联映射对超点中心的伪标签进行投票预测,在点和相应的超点中心上建立标签一致性损失来训练深度迭代聚类网络。在S3DIS[1]、ScanNetv1[8]、vKITTI[10]等室内和室外数据集上的实验结果表明,所提出的超点网络(称为ªSPNetº)优于其他超点生成算法。由于端到端方式,我们的方法的推理速度也比SSP[21]更快。此外,利用学习到的超点,我们可以进一步提高点云语义分割的性能,同时减少推理时间。
本文的贡献如下:
1.据我们所知,我们的深度迭代聚类网络是第一个可以进行超点生成的端到端网络。
2.从点云的坐标和特征空间中共同学习自适应双边权值,构造点-超点关联映射。
3.我们制定了一个标签一致性损失来训练我们的网络的超点生成。
4.我们证明了端到端学习到的超点可以进一步提高点云语义分割的性能。
对点云的深度学习。最近在点云的深度表示学习方面进行了研究。关于点云的深度学习方法大致可以分为四类:基于点的[44,52,15,16],基于图的[40,3,22,25],基于多视图的[42,27]和基于体素化的方法[7,31]。作为一个先驱性的工作,PointNet[35]使用多层感知器(MLP)和最大池化操作来提取点云的特征。为了表征点云的局部几何结构,Qi等人[37]提出了一个名为PointNet++的层次特征学习框架,该框架将MLP应用于局部邻域来学习点云的局部特征。在PointCNN[28]中,提出了x变换同时对输入特征进行加权和排列,从而将卷积运算应用于变换后的特征。基于图的方法[39,6,5,50]通过构造点云的空间邻域,将点云表示为一个图,用于局部特征提取。例如,在动态图CNN(DGCNN)[46]中,提出了一种EdgeConv操作,它作用于图,动态地聚合点云的局部几何特征。Wang等人,[45]提出了图注意卷积(GACNet),它使用一个图注意模块来自适应地学习点云的结构化特征。
基于体素化的三维深度学习方法[32,36,48]表示具有规则体积占用网格的不规则和无序点云,从而利用三维卷积神经网络(3DCNNs)来提取特征。然而,由于大量的体素,体积表示通常会导致计算资源的负担。为了减少3Dcnn的消耗资源,提出将Kd-Net[20]和OctNet[38]聚焦于点云的信息体素,而不是空体素。此外,还提出了稀疏3DCNN[12]来加速标准的3DCNN,它将三维卷积应用于信息丰富的三维体素集,而不是空体素。除了基于体素化的三维深度学习方法外,基于多视图的三维深度学习方法[42,47]将点云投影成一组从多个视图呈现的二维图像,并使用二维卷积操作提取点云的特征。然而,通过多个视图的渲染图像,很难区分地表征三维物体的局部几何结构。
点云过度分割。点云过分割的目标是将点云分割成超点。与二维图像中的超像素相似,超点是一组三维点,它们紧密地分布在几何结构相似的三维空间中。在[33]中,提出了一种体素云连通性分割(VCCS)来生成超点的方法,利用点云的空间连通性和几何特征,使超点能够准确地符合目标边界。但是,它对种子设置的初始化很敏感。为了解决这一问题,Gao等人[11]提出了一种新的显著性引导的超点生成方法,该方法采用显著性引导的播种,而不是初始化的播种。此外,Lin等人[29]将超点过分割定义为一个子集选择问题,可以用启发式优化方法来解决。Song等[41]基于图结构提出了一种图结构方法,首先通过分析连续点来检测边界,然后剔除边界点后对剩余点进行聚类。同样,Guinard等人[14]将点云过分割作为一个结构化优化问题,并使用贪婪图割算法[23]生成超点。在点云局部变化(PCLV)[2]中,将基于二维局部变化(LV)图的过分割算法扩展到三维点云中,生成超点。最近,监督超点(SSP)[21]提出了一种基于图结构的深度度量学习方法,利用点云的深度嵌入对点云进行超细分,其中采用[14]中基于优化的方法来生成超点。
给定点云有n个点,超点生成的任务是将每个点以最高的概率分配给m个超点中心中的一个。因此,我们可以在这些点与超点中心之间构造一个点-超点关联映射,以获得匹配的分数。然而,在实践中,为了使关联映射在计算和内存方面的高效构建,我们只计算每个点与其在坐标空间中的k-最近的超点之间的关联。这样,我们将关联图重新表示为。
图1:左图:所提出的深度迭代聚类网络(SPNet)的概述。给定点云,我们首先使用一个类似于点网的结构来提取深度特征。然后利用最远点采样(FPS)算法对初始超点中心进行采样。然后,我们从坐标空间和特征空间中学习点-超点的关联。接下来,我们分别通过加权点的坐标和特征来更新超点中心。通过迭代更新点超点关联图和超点中心,网络可以逐步学习到一个精确的点-超点关联图。右图:点-超点关联模块的体系结构。关联映射是从坐标空间和特征空间中联合学习出来的。
为了得到点与k-最近的超点中心之间的精确关联映射,我们开发了一个深度迭代聚类网络来迭代更新关联映射和超点中心。如图1所示,我们首先采用[21]中提出的类点网网络,将原始点云的局部几何特征编码到特征空间中,用表示,其中c为特征维数。在聚类之前,我们在点云的坐标空间中采用最远点采样(FPS)算法,得到超点中心的初始超点坐标。此外,通过平均坐标空间中超点周围对应的初始点特征,计算出超点中心的初始超点特征。值得注意的是,也可以采用不同的采样方法,如反密度重要采样(IDIS)[13]和最小密度采样(MDS)[30]。然而,为了平衡采样的超点中心的速度和均匀性,我们采用FPS算法从点云中生成初始超点中心。
初始化后,我们通过自适应地学习坐标和特征空间中点和超点中心之间的双边权值,交替更新点超点关联图和超点中心。经过v次迭代,我们得到了最终的关联映射,它可以更准确地将这些点分组到相应的超点中。最后,为了从点云中获得超点,通过将每个点分配给一个概率最高的k-近邻的超点,我们可以将软关联映射转换为硬关联映射。
点-超点关联。对于第i个点,我们首先计算它在坐标空间中的k个最近的超点中心,用表示,其中表示超点中心的空间坐标。然后,我们自适应地学习双边权值,构造点与超点中心之间的关联映射。对于每个点,通过给不同的超点中心分配不同的权值,我们可以区别地捕获点和超点中心之间的几何结构的差异。此外,由于点云的几何结构复杂,这些点在特征空间中接近并不意味着它们在坐标空间中接近。因此,为了保持超点在各点间的空间连通性,我们同时从点云的坐标空间和特征空间中学习双边权值。
形式上,在第t次迭代时,第i个点与第j个超点中心之间的关联为:
其中,为超点中心的空间坐标,是超点中心的特征。分别是坐标空间和特征空间中的两个映射函数。此外,和是由MLP实现的一元映射函数。映射函数和被定义为:
其中,和为要学习的权重,ReLU为激活函数。向量和可以分别编码坐标空间和特征空间中的第i个点和第j个超点中心之间的差异。我们注意到,在等式(1)中,采用点积相似度来计算关联。为了获得将第i个点分配给第j个超点的概率,我们利用softmax函数得到了横跨邻域的归一化点-超点关联映射,如下所示:
超点中心更新。在计算了迭代t时的点超点关联映射后,我们依次更新了迭代t+1的超点中心。具体来说,我们分别通过学习到的关联图对相应点的坐标和特征进行加权,来更新超点中心的坐标和特征。鉴于特征的点云,第j个超点中心的新特征定义如下:
其中,指示器函数表示第j个超点是否位于第i个点的第k个最近的超点集中。这里如果第j个超点属于Ni,则等于1,否则等于0。请注意,由于更新后的超点中心用于t+1迭代,所以它用表示。此外,是归一化因子。
同样,给定坐标的点云,我们可以得到第j个超点中心的新坐标如下:
其中,和是该点的空间坐标。最后,在迭代t+1时,我们可以用和得到新的超点中心。在算法1中概述了我们的深度迭代聚类网络的方案。
为了训练我们的深度迭代聚类网络生成高质量的超点,我们在点和超点中心上建立了标签一致性损失和紧性损失。
标签一致性损失。期望同一超点中的点应该具有相同的标签。给定点云的标签向量,其中是一个热向量,我们可以通过用点关联映射对点的标签向量加权,生成m个超点中心的标签向量,如下:
其中为k-最近的超点集,为指示第j个超点是否位于中的指示函数,为归一化因子。
然后,通过关联映射将生成的超点中心的标签向量W映射回映射到点云上。换句话说,我们重建了这些点的标签向量通过用中相应的概率加权k-最近的超点的标签向量,定义如下:
此外,我们通过直接对同一超点点的标签向量进行投票,生成超点中心的伪标签向量,用表示。基于超点中心的伪标签向量,提出了一种标签一致性损失来训练深度迭代聚类网络。图2显示了标签的一致性损失。标签一致性的损失促使超点(U)的伪标签向量与超点(W)生成的标签向量保持一致。此外,点的重建标签向量应与点(E)的原始标签向量一致。在数学上,标签一致性损失被定义为:
其中为损失函数,我们在实验中选择交叉熵损失。
图2:标签一致性损失的概述。圆表示点标签,正方形表示超点标签。SP1和SP2是两个超点。
紧密损失。我们定义了紧致损失,以鼓励超点在空间上紧致。期望属于同一超点的点应该靠近坐标空间中的超点中心。我们通过最小化超点与超点中心之间的距离来鼓励超点的紧致性。具体来说,给定点云,我们可以得到超点中心的坐标。我们的超点生成网络的紧致性损失被定义为:
式中,||·||F表示Frobenius distance。
在本文中,最终的损失是标签一致性损失和紧致性损失的组合,,我们在所有实验中都通过经验设置了。
我们在室内和室外的数据集上评估了我们的方法。室内数据集包括S3DIS[1]和ScanNetv1[8]。S3DIS是一个密集的大规模数据集,它包含3DRGB点云(约2.73亿点),包含来自6个室内区域的13个类别。为了进行公平的比较,我们遵循[35,26]选择S3DIS数据集的第5区作为我们的测试集,其余的作为我们的训练集。与S3DIS相比,ScanNetv1是一个更稀疏的大尺度数据集,它包含3DRGB点云(约2.42亿点),有21个类别。在[37]之后,我们在离线测试数据集上评估了我们的方法。对于室外数据集,我们在稀疏的大规模vKITTI[10]数据集上进行了实验,该数据集包含RGB点云(约1500万点),来自6个序列的13个类别。在[26,21]之后,我们报告了在vKITTI数据集上进行6倍交叉验证的评估结果。
我们的模型是通过PyTorch[34]深度学习平台实现的。对于所有的实验,我们使用Adam[19]和β1=0.9和β2=0.999。我们训练我们的模型为1000个时代。初始学习率为0.001,每300个时代除以10。
为了进行公平的比较,我们采用了与SSP[21]相同的策略来处理室内和室外的点云。对于所有的数据集,我们使用规则的体素网格(S3DIS的体素宽度为3cm,ScanNetv为1,vKITTI)对点云进行子采样。在每个体素中,我们对所包含点的位置和颜色进行平均。为了进行训练,我们随机为每个房间或场景选择一个子区域(S3DIS和vKITTI为15000体素,ScanNetv1为8000体素)。我们通过在体素的邻接图上使用宽度优先搜索(BFS)来生成子区域。在实践中,我们观察到,当选择子区域中0.8%的体素作为初始种子点(超点中心)时,模型达到了最好的性能。请注意,超点评价结果是在体素水平上获得的,而关于语义分割的所有结果都是在点水平上获得的。
评估指标。我们采用与SSP[21]相同的指标来评估所提出的方法。具体来说,我们使用Oracle总体精度(OOA)、边界召回率(BR)、边界精度(BP)来评估超点的质量。OOA测量的是利用超点作为单位的语义分割的最高精度,而BR和BP测量的是超点边界与地面真实边界的对齐程度。请注意,点云边界的定义和OOA、BR、BP的计算请参考[21]。此外,我们还报告了F1评分:F1=2BP·BR/(BP+BR)。
表1:在S3DIS、ScanNetv1和vKITTI数据集上生成的超点的比较结果。
图3:在S3DIS数据集的第5区上,在不同的超点数量的情况下,不同方法的度量结果。
定量结果。我们在三个流行的数据集上评估了我们的方法,包括S3DIS[1]、ScanNetv1[8]和v上KITTI[10]。定量结果见表1。为了公平比较,在同一数据集上不同方法生成的超点的数量几乎相同。例如,S3DIS数据集的第5区域上的超点数量分别为1042(VCCS)、1059(Lin等)、1053(SPG)、1048(SSP)和1050(ouss)。从表中可以看出,我们的方法比其他有无颜色信息的方法都能获得更好的性能。与传统方法[33,29]中手工制作的特征相比,我们的方法从专门设计的网络中学习到的深度特征可以更好地表征点云中复杂的局部几何结构。因此,我们的方法的性能超过了这些传统方法[33,29]。与SSP不同的是,我们在训练过程中使用标签一致性损失来优化网络,使生成的超点符合对象的边界。因此,在BR的度量上,我们的方法可以获得比SSP更好的性能。从实验结果中可以看出,我们的方法倾向于在一个物体内聚集多个超点。在计算BP时,认为这些超点的边界为假边界。因此,我们的方法的血压有点低。特别是在室外vKITTI数据集中,我们的方法将道路上的多个超点聚类,而SPG和SSP通过图切割算法将道路划分为大规模的超点。因此,我们的方法在vKITTTI数据集上的BP略低。但是,由于对象内部的超点的错误边界不会对超点产生新的标签,因此对象内部的错误边界不会影响对象的分割结果(请参考第4.4节中的分割结果)。我们还在表1中报告了F1的分数。可以看出,我们的方法在F1评分方面与SSP具有比性。如图3所示,我们绘制了在S3DIS数据集的第5区上生成不同数量的超点的情况下,不同方法的性能曲线。从图中可以看出,我们的方法的性能与SSP方法的性能相当。此外,随着超点数量的减少,我们的SPNet仍然可以保持BR的高性能,而SSP则迅速下降。
视觉效果。如图4所示,我们将不同方法生成的超点进行了可视化。从图中可以看出,Lin等人[29]不能将白板从墙上分割出来,而SSP[21]和我们的方法可以很好地分割出来,边界更清晰。此外,由我们的方法生成的白板的边界比SSP更准确。虽然[29,21]中方法生成的超点的形状更规则,但对象边界并不清楚。
图4:在S3DIS数据集的区域5上使用的不同方法的可视化结果。
表2:S3DIS数据集第5区上不同方法的训练时间和推理时间。
时间成本。为了评估时间成本,我们比较了不同方法的运行时间。为了进行公平的比较,我们使用单一的Corei5CPU来分别评估VCCS[33]、Lin等人的[29]和SPG[26]。对于基于学习的方法,SSP和我们的方法都是在使用PyTorch框架的一个NVIDIA巨头RTXGPU上运行的。我们评估了在S3DIS数据集的区域5上生成超点的运行时间。此外,我们还计算了该方法和SSP的训练时间。如表2所示,可以看出,我们的方法比SSP运行得更快。由于我们的方法是一种端到端方法,因此我们可以直接从网络中生成超点,而无需进行任何后处理。而SSP首先使用网络提取点的嵌入,然后使用基于优化的方法生成超点。因此,SSP比我们的方法花费更多的时间。此外,我们的方法和SSP有相似的训练时间。虽然我们的方法的时间成本高于传统的方法[33,29],但我们的方法可以在所有三个数据集上获得更好的性能,如表1。
消融研究。在图5和表3中,我们展示了烧蚀研究结果,通过实验验证了实验中设置的合理性。具体来说,在图5中,我们研究了超参数λ、k和v对我们的网络性能的影响。为了进行公平的比较,我们只调整相应的参数,保持剩余的参数不变。如图5所示,我们显示了S3DIS数据集的第5区在不同超点数量下的边界召回率(BR)曲线。可以看出,当分别设置k=6、和v=4时,我们可以达到最好的性能。由图5可知,超参数λ、v、k对超点的生成不敏感。除k=1外,在k值不同的情况下性能没有很大变化。
表3:S3DIS数据集第5区不同设置的消融研究结果。
此外,我们还进行了实验,验证了在点-超点关联学习中同时使用坐标空间和特征空间的有效性。如表3所示,我们报告了OOA、BR和BP在S3DIS数据集的第5区上的性能。从表中可以看出,同时从坐标空间和特征空间中学习双边权值可以提高超点生成的性能。
实验设置。我们给出了S3DIS[1]、ScanNetv1[8]和vKITTI[10]的语义分割基准测试的结果。为了进行公平的比较,我们采用与[26,21]相同的网络,对我们生成的超点进行实验。我们使用与[26,21]中相同的设置来训练网络。为了评估分割结果,我们使用以下指标:每个类的平均交叉过并(mIoU)、每个类的平均精度(mAcc)、总体精度(OA)。
实验结果。如表4所示,我们报告了在三个数据集上的分割结果。在表中,我们将这些方法分为两种类型:基于点的方法和基于超点的方法。请注意,SPG[26]、SSP[21]和我们的方法都是基于超点的方法,其余的都是基于点的方法。此外,我们采用了与SPG和SSP相同的分割方法和相同的实验设置。可以看出,由于良好的超点划分结果,我们的方法在三个数据集上都能获得比SPG和SSP更好的性能。定量结果表明,所生成的超点可以有效地提高语义分割的性能。此外,与基于点的方法相比,我们的方法也优于大多数方法。值得注意的是,由于其先进的数据处理和投票策略,一些基于点的方法[45,44]已经取得了最先进的水平。由于我们的超点生成方法没有采用这种高级的数据处理,所以我们的分割结果略低于KPConv[44]。
表4:对S3DIS、ScanNetv1和vKITTI数据集进行6倍的语义分割的结果。这里,蓝色数字表示超点生成的时间,红色数字表示语义分割的时间。
在表4中,我们还报告了在测试过程中不同方法的推理时间。请注意,对于基于超级点的方法,我们报告了超点生成(蓝色)和语义分割(红色)的总时间。我们可以发现,我们的方法比其他方法运行得更快。特别是,基于超点,我们的方法甚至可以比点net[35]运行得更快。具体来说,在我们的方法中,使用了简化的点Net(3层MLP+空间变压器网络(STN)),而在点网中,使用5层MLP+坐标和特征STNs进行分割。由于我们的网络很浅,而且超点的数量远少于点,所以我们的方法比点网更快。我们的方法在S3DIS6倍图上的时间消耗为2828s(超点代2588s+简化了PointNet132s+超点图108s),低于PointNet(6050s)。因此,它进一步证明了该方法在语义分割任务上的优势。
在本文中,我们开发了一种新的用于超点生成的深度迭代聚类网络。在我们的网络中,我们从点云的坐标空间和特征空间中共同学习了一个软点-超点关联映射。为了获得更准确的点-超点关联图,我们迭代地更新了关联图和超点中心。最后,通过预测超点中心的伪标签,我们制定了一个在点和超点中心上的标签一致性损失来训练网络。在室内和室外数据集上的大量实验表明,该方法不仅可以从点云中生成高质量的超点,而且可以提高语义分割的性能。