Abstract
Kernel Point Convolution(KPConv)是一种点云卷积方法,它可以直接在点云数据上进行操作,无需任何中间的表示形式。方法的核心在于使用核点来定义卷积权重,核点位于欧几里得空间中,并仅对靠近它们的输入点应用卷积。KPConv还很灵活,能够根据需要使用任意数量的核点。
此外,KPConv的核点位置是连续的,并且可以在空间中学习,且适应不同的局部几何形状。KPConv能够学习如何根据局部几何形状调整核点的位置。
本文介绍了两种KPConv的方法,分别是rigid和deformable。无论是在复杂的任务中使用可变形KPConv,还是在简单的任务中使用刚性KPConv,在多个数据集上都显示出很好的性能。
Introduction
对现有研究的一个简单介绍,以及KPConv的描述。
深度学习中离散卷积是其基本构建块,这一操作结合了2D网格上局部邻域的数据。由于这种规则结构,可以在现代硬件上高效计算。随着3D扫描技术的兴起,许多依赖于不规则数据的场景逐渐增多。例如,3D点云分割或3DSLAM依赖于非网格结构数据:点云。
点云是一组在3D(或更高维度)空间中的点。在许多应用中,这些点与相应的特征(如颜色)相结合。本文中,始终将点云视为两个元素:点P ∈ RN×3和特征F ∈ RN×D。这样的点云是稀疏结构,具有无序的特性,与网格截然不同。在网格中,特征通过矩阵中的索引进行局部化,而在点云中,它们通过相应的点坐标进行局部化。
对于相关的工作,一些方法属于基于网格(grid)的类别,原理是将稀疏的3D数据投影到一个规则结构上,以便更容易定义卷积操作。其他方法使用多层感知机(MLP)直接处理点云,遵循之前提出的思路。最近,也有一些尝试直接在点上进行操作的卷积的方法,这些方法利用点云的空间局部化特性,定义具有空间核的点卷积。
引入了核点卷积(KPConv),是一种新型的点卷积算子,克服了之前方法的局限性。KPConv通过使用核点而非核像素来定义卷积区域。包括可变形卷积版本,能够适应输入点云的几何形状,特别是在较复杂的任务中。结果表明,KPConv在分类和分割任务中都在多个数据集上超过了SOTA算法。
Related Work
讲一下dl领域点云配准的相关工作
Projection networks
讨论了投影网络在处理点云数据时的不同方法。许多方法将点投影到中间的网格结构上,例如基于图像的多视图网络使用从不同视角渲染的2D图像进行场景分割,但这些方法容易受到遮挡和密度变化的影响。体素方法则将点投影到欧几里得空间的3D网格上,尽管使用稀疏结构(如八叉树或哈希映射)可以提升性能,但这些网络的灵活性不足。但是KPConv允许使用任意数量的核点,避免了中间结构。
Graph convolution networks
讨论了图卷积网络(GCN)中的卷积算子的定义和计算方式。图卷积主要在于边缘关系上学习滤波器,而不是点的相对位置。具体来说,图卷积在局部表面片段上组合特征,对这些片段在欧几里得空间中的变形具有不变性。与此不同,KPConv根据3D几何结构组合特征,从而捕捉表面的变形。
Pointwise MLP networks
介绍了PointNet在点云深度学习中的地位。此后,出现了一些分层架构来聚合局部邻域信息。文中提到,点卷积的核可以通过多层感知器(MLP)实现,但这种表示使卷积算子变得更复杂且收敛困难。KPConv则定义了显式卷积核,直接学习权重,并提供简单的可变形版本。与其他点卷积网络相比,KPConv在设计上独特,例如在处理稀疏性和计算成本上表现出色,且其权重在空间中的位置使其结果不受点顺序影响。此外,KPConv的设计更具可扩展性,相较于PCNN等方法,能够在多个实验中表现优异,且是首次实验空间可变形点卷积的工作。
Kernel Point Convolution
A Kernel Function Defined by Points
描述了KPConv(核点卷积)的数学定义及其构造过程。首先,KPConv基于图像卷积的概念,定义了点云中点的卷积操作。具体来说,对于点云中的每个点和其对应的特征,卷积操作被定义为在半径r内的邻居点的特征加权和。
KPConv使用半径邻域而非k最近邻(KNN),以增强对不同点云密度的鲁棒性。通过定义半径r形成的球体,卷积核函数接收邻居点的相对位置(相对于某些点的偏移)作为输入。
卷积核的核心在于定义函数g,它根据邻居点在球体内的位置,对特征加权。作者引入了一组核点和相应的权重矩阵,将特征从输入维度映射到输出维度。核函数的定义基于核点与邻居点之间的相关性,使用线性相关性来计算,简化了梯度反向传播过程。
最后,作者指出,使用线性相关性比高斯相关性更简单,有助于在学习核变形时的梯度反向传播。
Rigid or Deformable Kernel
讨论了KPConv中核点位置对卷积操作的重要性,特别是在刚性核的情况下,核点需要有规律地排列以提高效率。作者通过解决优化问题来安排核点位置,确保它们在一个球体内,并且其中一个核点固定在中心。周围的点会被重新缩放到平均半径1.5σ,以确保各核点影响区域之间的重叠最小,同时覆盖良好的空间。
作者提到,虽然刚性KPConv在使用足够的核点时效率极高,但通过学习核点位置可以进一步提高其能力。核函数是关于核点位置的可微分函数,因此核点可以作为可学习参数。相较于为每个卷积层学习一个全局的核点集合,作者选择为每个卷积位置生成一组偏移量 Δ(x)\Delta(x)Δ(x),并定义可变形KPConv。
在训练过程中,网络同时学习刚性核和可变形核,其中刚性核的学习率设置为网络全局学习率的0.1倍。然而,简单地将图像的可变形卷积适应于点云并不奏效,因为核点可能会远离输入点。为了应对这种现象,作者提出了一种“拟合”正则化损失,以惩罚核点与输入邻居中最近邻之间的距离。此外,还引入了“排斥”正则化损失,以防止核点的影响区域重叠而聚集在一起。
最终,正则化损失的总和包括拟合损失和排斥损失,使网络生成的偏移量能够适应输入点云的局部几何形状。
Kernel Point Network Layers
描述了如何将KPConv理论应用于实际操作。首先,提到使用网格子采样策略来处理输入点的不同密度,以确保点采样位置的空间一致性。每层的支持点作为所有非空网格单元中原始输入点的重心进行选择。
在池化层方面,为了构建多层尺度的架构,逐步减少点的数量。在每个池化层中,作者通过将网格单元大小加倍来增加接收域,同时使用“步幅KPConv”替代最大池化,类似于图像中的步幅卷积。
KPConv层接收输入点及其对应特征和邻域索引矩阵,邻域矩阵的大小由最大邻域数量决定,虽然许多邻域的邻居数量少于该值,因此存在未使用的“阴影邻居”,在卷积计算中被忽略。
关于网络参数,每层的单元大小决定其他参数。刚性KPConv的卷积半径自动设定为2.5σ。所有实验中使用的参数经过交叉验证选择,包括核点数量、比例系数。首个子采样单元的大小取决于数据集。
Kernel Point Network Architectures
描述了为分类和分割任务设计的两种网络架构,基于图像网络和实证研究。KP-CNN是一个五层的分类卷积网络,每层包含两个卷积块,第一个卷积块为步幅卷积,除了第一层。其卷积块设计类似于瓶颈ResNet块,使用KPConv替代图像卷积,并结合批归一化和leakReLU激活。最后,通过全局平均池化和全连接层处理特征,与图像CNN相似。对于可变形KPConv的结果,仅在最后五个KPConv块中使用可变形核。
KP-FCNN是一个全卷积网络用于分割,编码器部分与KP-CNN相同,解码器部分使用最近邻上采样获取最终的逐点特征。通过跳跃链接将编码器和解码器中间层的特征传递,并将这些特征与上采样后的特征连接,经过一维卷积处理,这相当于图像中的1×1卷积或PointNet中的共享MLP。
Experiment
分别在不同数据集上验证了分类和分割任务,同时进行了消融实验。
使用了ModelNet40和ShapenetPart两个常见数据集。ModelNet40包含12,311个来自40个类别的CAD模型,而ShapenetPart包含16,681个点云,每个点云有2-6个部分标签。为了标准化测试,数据进行了单位球的缩放,并忽略了法线信息。
结果是KPConv的效果非常好。
同时探讨了KPConv网络的学习机制,尤其是学习到的特征和有效感受野(ERF)。首先,作者通过训练KP-CNN在ModelNet40上可视化了网络学习到的特征,使用随机旋转增强输入形状的多样性。通过对点云按激活水平上色,结果显示网络在第一层学习到低级特征,如垂直/水平平面和线性结构;在后续层,网络则识别出更复杂的形状,如小支柱和锥体。
其次,作者计算了不同位置的有效感受野,以比较刚性和可变形KPConv的表示能力。结果显示,刚性KPConv的ERF在各种物体上的范围较为一致,而可变形KPConv的ERF则根据物体大小而变化,能够更好地集中在特定物体上。这种自适应行为表明可变形KPConv提升了网络对场景几何的适应能力,进一步解释了其在室内数据集上的优越表现。
Conclusion
KPConv是一种针对点云的卷积操作,它通过半径邻域作为输入,并利用一小组核点在空间中定位权重。此外,作者提出了一种可变形版本的卷积操作,能够有效学习局部位移,从而使卷积核适应点云的几何形状。根据数据集的多样性和网络配置的不同,刚性和可变形的KPConv都展现了其价值,且在几乎所有测试的数据集上都达到了新的最先进性能。