论文:https://arxiv.org/abs/1811.07246
代码:https://github.com/xautdestiny/pointconv
摘要:与常规密集网格所代表的图像不同,3D点云数据是不规则且无序的,因此很难将卷积操作应用到3D点云数据。在本文中,我们将动态滤波器扩展成为新的名为PointConv的卷积操作,PointConv可以用于点云数据,创建深度卷积网络。我们将卷积核视为由权重和密度函数组成的3D点的局部坐标的非线性函数。对于给定点,通过核密度估计利用多层感知机网络和密度函数来学习权重函数。这项工作最重要的贡献是为有效计算权重函数提出的新构想,这使我们能够大幅度扩展网络并显著提高网络性能。用于计算3D空间中任何点集上的卷积核具有平移不变性和序列(置换)不变性。此外,PointConv还可以用作反卷积运算,将子采样点云中的特征传播回其原始分辨率。ModelNet40,ShapeNet和ScanNet上的实验结果表明,基于PointConv构建的深度卷积神经网络能够在3D点云的语义分割基准上达到最高水准。此外,我们将CIFAR-10转换为点云的实验表明,构建在PointConv上的网络可以达到2D图像中具有类似结构的卷积网络的性能。
文章创新点:
1、提出了PointConv:PointConv是一种密度重加权卷积,它能够在任何一组3D点上完全逼近3D连续卷积。
2、引入了一种有效提高存储效率的方法来实现PointConv,能够使用改变求和顺序的重构来大大提高存储器效率。最重要的是,它允许扩展到CNN的规模。该方法可以实现与2D卷积网络中相同的平移不变性,以及点云中点的排序的不变性。
3、将PointConv扩展到反卷积—PointDeconv,获得更好的分割结果,而大多数先进算法不能实现反卷积操作。
1、3D点云的卷积
在3D空间中,可以把连续卷积算子的权重看做关于一个3D参考点的局部坐标的连续函数(2)。
W和F均为连续函数,(x, y, z)是3D参考点的坐标,(δx, δy, δz)表示邻域 G 中的 3D 点的相对坐标。点云可以被视为来自连续空间的非均匀样本。上式可以离散化到一个离散的3D点云上,如(3)。
其中,S 表示逆密度系数函数。然后使用逆密度对学到的权重进行加权,补偿不均匀采样。函数 W 的输入是以 (x, y, z) 为中心的 3D 邻域内的 3D 点的相对坐标,输出是每个点对应的特征 F 的权重。使用多层感知机近似权重函数w。S 是一个关于密度的函数,输入是每个点的密度,输出是每个点对应的逆密度系数。使用核化密度估计近似逆密度S,核化密度估计后带有使用多层感知机实现的非线性变换。
PointConv中的MLP的权重在所有点之间共享,以便维持置换不变性。逆密度尺度S(δx, δy, δz)的计算过程为:首先使用核密度估计(KDE)估计离线点云中每个点的密度,然后将密度输入到一维非线性变换的多层感知机中。使用非线性变换的原因是使网络自适应地决定是否使用密度估计。
图b展示了K个3D点组成的邻域上执行PointConv操作的流程。Cin,Cout为输入特征和输出特征的通道数,k,cin,cout表示索引。输入是点Plocal的邻域位置,其可以通过减去局部区域的质心的坐标和局部区域的特征Fin来计算。 我们使用核为1的卷积构成多层感知机。权重函数的输出是W,密度尺度为S。在卷积后,K近邻邻域的特征Fin被编码到输出特征Fout中,如等式(4)所示。
2、反卷积操作
对于分割任务,需要逐点预测。为了获得所有输入点的特征,需要一种将特征从二次采样点云传播到更密集的点的方法。 PointNet建议使用基于距离的插值来传播特征,这并未充分利用反卷积操作来捕获来自粗糙层的传播信息的局部相关性。
该文建议添加一个基于PointConv的PointDeconv层来解决这个问题。如图3所示,PointDeconv由两部分组成:插值和PointConv。首先,采用插值来传播先前层的粗糙特征,通过从3个最近点线性插值特征来进行插值。
图3
然后,使用跳跃连接将插值特征与来自卷积层的具有相同分辨率的特征连接起来。然后在连接特征上应用Point-Conv以获得最终的反卷积输出。直到所有输入点的特征已传播至原始分辨率。
3、高效PointConv
该文证明了PointConv可以简化为两个标准操作:矩阵乘法和 2D 卷积,证明部分见原文,大大降低了卷积操作的内存占用量,单层卷积层的内存占用变为原来的1/64。高效PointConv卷积操作如图4所示:
图4
为了评估PointConv网络,在几个广泛使用的数据集上,包括Model-Net40 ,ShapeNet和ScanNet进行了实验。为了证明PointConv能够完全接近常规卷积,还报告了CIFAR-10数据集的结果。
Table 2. Results on ShapeNet part dataset