PointConv  Deep Convolutional Networks on 3D Point Clouds

摘要

与以规则密集网格表示的图像不同,3D点云是不规则和无序的,因此对其应用卷积是很困难的。在本文中,我们将动态滤波器扩展为一种新的卷积运算,命名为PointConv。PointConv可以应用在点云上构建深度卷积网络。我们将卷积核视为三维点局部坐标的非线性函数,由权函数和密度函数组成。对于给定的点,通过多层感知器网络学习权重函数,通过核密度估计学习密度函数。这项工作最重要的贡献是提出了一种用于有效计算权重函数的新的重新表述,这使我们能够极大地扩大网络并显著提高其性能。该卷积核可用于计算三维空间中任意点集上的平移不变和置换不变卷积。此外,PointConv还可以用作反卷积算子,将下采样点云的特征传播回其原始分辨率。在ModelNet40、ShapeNet和ScanNet上的实验表明,在PointConv上构建的深度卷积神经网络能够在3D点云上挑战语义分割基准方面达到最先进的水平。此外,我们将CIFAR-10转换为点云的实验表明,在PointConv上构建的网络在类似结构的2D图像中可以与卷积网络的性能相匹配。

1、简介

在最近的机器人、自动驾驶和虚拟/增强现实应用中,可以直接获取3D数据的传感器越来越普遍。这包括室内传感器,如激光扫描仪,飞行时间传感器,如Kinect, RealSense或谷歌Tango,结构光传感器,如iPhoneX上的那些,以及室外传感器,如激光雷达和MEMS传感器。在这些应用中,直接测量3D数据的能力是非常宝贵的,因为深度信息可能会删除很多二维图像的分割模糊度,表面法线提供了重要的场景几何线索。

在2D图像中,卷积神经网络(cnn)通过极大地改善几乎所有视觉任务的结果,从根本上改变了计算机视觉的格局。cnn成功地利用了平移不变性,因此同一组卷积滤波器可以应用于图像中的所有位置,减少了参数的数量,提高了泛化能力。我们希望这样的成功能够转移到3D数据的分析上。然而,3D数据通常以点云的形式出现,它是一组无序的3D点,每个点上有或没有额外的特征(例如RGB)。点云是无序的,不符合二维图像中的规则网格。传统的神经网络很难应用于这种无序输入。另一种方法是将3D空间视为一个体积网格,但在这种情况下,体积将是稀疏的,并且cnn在高分辨率的体积上计算起来很棘手。

在本文中,我们提出了一种对非均匀采样的三维点云进行卷积的新方法。我们注意到,卷积运算可以被看作是连续卷积算子的离散逼近。在三维空间中,我们可以将这个卷积算子的权值视为局部三维点坐标相对于参考三维点的连续函数。连续函数可以用多层感知器(MLP)近似,如[33]和[16]中所做的那样。但是这些算法没有考虑到非均匀抽样。我们建议使用逆密度尺度来重新加权MLP学习的连续函数,这对应于连续卷积的蒙特卡洛近似。我们将这种操作称为PointConv。PointConv涉及将点云的位置作为输入,并学习MLP来近似权重函数,以及对所学习的权重应用逆密度标度来补偿不均匀采样。

当输出特征的通道大小非常大,因此很难训练和扩展到大型网络时,PointConv的简单实现是内存效率低下的。为了减少PointConv的内存消耗,我们介绍了一种方法,它能够大大提高内存效率,使用一种改变求和顺序的重新表述。新结构能够在3D点云上构建多层深度卷积网络,其功能与栅格图像上的2D CNN类似。我们可以实现与二维卷积网络中相同的平移不变性,以及点云中点排序的排列不变性。

在分割任务中,将信息从粗层逐渐转移到细层的能力非常重要。因此,反褶积操作[24]可以充分利用从粗层到细层的特征,这对性能至关重要。大多数最先进的算法[26,28]无法进行反褶积,这限制了它们在分割任务中的性能。由于我们的PointConv是卷积的完全近似,因此很自然地将PointConv扩展为PointDeconv,它可以完全利用粗层中的信息并传播到更细的层。通过使用PointConv和PointDeconv,我们可以提高语义分割任务的性能。

我们工作的贡献是:

•我们提出了PointConv,一种密度重加权卷积,它能够在任何3D点集上完全近似3D连续卷积。

•我们设计了一种内存高效的方法来实现PointConv,使用一种改变求和顺序的技术,最重要的是,允许它扩展到现代CNN级别。

•我们将PointConv扩展为反褶积版本(PointDeconv),以实现更好的分割结果。

实验表明,我们在PointConv上构建的深度网络与其他点云深度网络相比具有很强的竞争力,并在部分分割[2]和室内语义分割基准[5]中获得了最先进的结果。为了证明我们的PointConv确实是一个真正的卷积操作,我们还在ciremote -10上评估PointConv,方法是将2D图像中的所有像素转换为具有2D坐标的点云,每个点上都有RGB特征。在CIFAR-10上的实验表明,我们的PointConv的分类精度与类似结构的图像CNN相当,远远超过了以前点云网络获得的最佳结果。作为一种基于3D数据的CNN的基本方法,我们相信PointConv有很多潜在的应用。

2.相关工作

大多数3D CNN网络的工作是将3D点云转换为2D图像或3D体积网格。[36, 27]提出将三维点云或形状投影到若干个二维图像中,然后应用二维卷积网络进行分类。虽然这些方法在形状分类和检索任务中取得了主要的性能,但将其推广到高分辨率场景分割任务[5]中并非易事。[43,23,27]代表了另一种类型的方法,通过量化将点云体素化为体积网格,然后应用3D卷积网络。这种方法受到其3D体积分辨率和3D卷积计算成本的限制。[31]通过使用一组不平衡的八叉树显著提高了分辨率,其中每个叶节点存储一个池化的特征表示。Kd-networks[18]在具有一定大小的kd树上以前馈自底向上的方式计算表示。在kd网络中,在训练和测试时,点云中的输入点数需要相同,这对于很多任务来说并不适用。SSCN[7]利用基于体积网格的卷积,通过只考虑输入点上的CNN输出,具有新颖的速度/内存改进。但是,如果对点云进行稀疏采样,特别是在采样率不均匀的情况下,对于稀疏采样的区域可能无法在体积卷积滤波器内找到任何邻居,这可能会导致显著的问题。

一些最新的工作[30,26,28,35,37,13,9,39]直接将原始点云作为输入,而不将其转换为其他格式。[26,30]提出使用共享多层感知器和Max pooling层获取点云特征。由于最大池化层应用于点云中的所有点,因此很难捕获局部特征。pointnet++[28]通过增加层次结构改进了PointNet[26]中的网络。这种分层结构类似于图像cnn中使用的结构,从局部小区域开始提取特征,并逐渐扩展到较大的区域。在PointNet[26]和pointnet++[28]中用于聚合来自不同点的特征的关键结构是max-pooling。然而,最大池化层只保留局部或全局区域特征上最强的激活,这可能会丢失一些用于分割任务的有用详细信息。[35]提出了一种方法,将点云的输入特征投影到高维格上,然后在高维格上应用双边卷积来聚合特征,称为“SPLATNet”。SPLATNet[35]能够给出与pointnet++[28]相当的结果。切卷积[37]将局部曲面几何投影到每个点周围的切平面上,从而给出一组可平面卷积的切图像。逐点卷积[13]动态查询最近的邻居,并将这些点归类到内核单元格中,然后对归类的单元格应用内核权值,在点云上进行卷积。Flex-convolution[9]引入了传统卷积层的泛化和高效的GPU实现,可应用于数百万点的点云。FeaStNet[39]通过添加软赋值矩阵,将传统的卷积层推广到三维点云。点cnn[21]是从输入点,然后使用它来同时加权和排列与这些点相关的输入特征。与我们的方法相比,PointCNN无法实现点云所需的置换不变性。

工作[33,16,41,12,40]和[44]提出学习连续滤波器来进行卷积。[16]提出二维卷积中的权重滤波器可以看作一个连续函数,可以用mlp来近似。[33]首次将这一思想引入三维图形结构中。[40]将[33]中的方法扩展到分割任务中,并提出了一种高效的版本,但是他们的高效版本只能近似深度卷积,而不是真正的卷积。动态图CNN[41]提出了一种动态更新图的方法。[44]提供了一个特殊的滤波器家族来近似权值函数,而不是使用mlp。[12]提出了考虑密度的三维卷积的Monta Carlo近似。我们的工作有三个不同之处。最重要的是,在之前的工作中从未提出过我们的实卷积的有效版本。此外,我们利用密度不同于[12],并提出了一个基于PointConv的反褶积算子来执行语义分割。

3.PointConv

我们提出了一种卷积运算,将传统的图像卷积扩展到点云,称为PointConv。PointConv是三维连续卷积算子的蒙特卡罗近似的扩展。对于每个卷积滤波器,它使用MLP来近似一个权重函数,然后应用密度尺度来重新加权学习的权重函数。第3.1节介绍了PointConv层的结构。第3.2节介绍了PointConv,使用PointConv层来解卷积特征。

3.1. 3D点云卷积

形式上,卷积的定义如式(1)中d维向量x的函数f(x)和g(x)

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_点云

图像可以解释为二维离散函数,通常表示为网格形状的矩阵。在CNN中,每个滤波器被限制在一个小的局部区域,如3 × 3,5 × 5等。在每个局部区域内,不同像素之间的相对位置始终是固定的,如图1(a)所示。并且该滤波器可以很容易地离散化为局部区域内每个位置的实值权重的总和。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_3D_02

图1。图像网格与点云。(a)在图像中显示了一个5 × 5的局部区域,其中点之间的距离只能获得很少的离散值;(b)和(c)表明,在点云内的不同局部区域,顺序和相对位置可能有很大差异。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_卷积_03

图2。PointConv的二维权重函数。(a)为习得的连续权函数;(b)和(c)是二维点云中的不同局部区域。给定2d点,我们可以得到特定位置的权值。这同样适用于3D点。正则离散二维卷积可以看作是连续卷积权函数的离散化,如(d)所示

点云表示为一组3D点{pi |i = 1,…, n},其中每个点包含一个位置向量(x, y, z)及其颜色、表面法线等特征。与图像不同,点云具有更大的灵活形状。点云中点的坐标p = (x, y, z)∈r3并不位于固定网格上,而是可以取任意连续的值。因此,不同点在每个局部区域的相对位置是不同的。传统的栅格图像离散卷积滤波器不能直接应用于点云。图1显示了图像中的局部区域与点云之间的区别。

为了使卷积与点集兼容,我们提出了一种置换不变的卷积操作,称为PointConv。我们的想法是首先回到3D卷积的连续版本:

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_点云_04

其中F(x + δx, y + δy, z + δz)是局部区域G中以点p = (x, y, z)为中心的点的特征。点云可以看作是来自连续r3空间的非均匀样本。在每个局部区域,(δx, δy, δz)可以是局部区域的任意可能位置。我们将PointConv定义如下:

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_卷积_05

其中S(δx, δy, δz)为点(δx, δy, δz)的逆密度。S(δx, δy, δz)是必需的,因为点云的采样可能非常不均匀1。直观地,如图2 (b)和(c)所示,局部区域的点数在整个点云上是不一样的。另外,在图2 (c)中,p3、p5、p6、p7、p8、p9、p10点之间的距离非常近,因此各点的贡献应该较小。

我们的主要思想是通过三维坐标(δx, δy, δz)的多层感知器来近似权重函数W(δx, δy, δz),并通过核化密度估计[38]来逆密度S(δx, δy, δz),然后用MLP实现非线性变换。由于权重函数高度依赖于输入点云的分布,我们将整个卷积运算称为PointConv。[16,33]考虑了权函数的逼近,但没有考虑密度尺度的逼近,因此不是连续卷积算子的完全逼近。密度的非线性变换也不同于[12]。

PointConv中MLP的权重在所有点之间共享,以保持排列不变性。为了计算逆密度尺度S(δx, δy, δz),我们首先使用核密度估计(KDE)离线估计点云中每个点的密度,然后将密度输入MLP进行1D非线性变换。使用非线性变换的原因是为了让网络自适应地决定是否使用密度估计。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_卷积_06

图3。PointConv。(a)为局部区域,点坐标由全局坐标转换为局部坐标,p为点坐标,f为对应的特征;(b)表示在一个以点(p0, f0)为中心的局部区域上进行PointConv的过程。输入特征来自于以(p0, f0)为中心的K个最近的邻居,输出特征是p0处的Fout。

图3显示了k点局部区域上的PointConv操作。设Cin, Cout为输入特征和输出特征的通道数,k, Cin, Cout为第k个邻居的指标,输入特征为第Cin -通道,输出特征为第Cout -通道。输入点为局部区域质心坐标与局部区域特征Fin∈R K×Cin相减得到的点的三维局部位置。我们使用1 × 1卷积来实现MLP。权函数的输出为W∈R K×(Cin×Cout)。W(k, cin)∈rcout是一个向量。密度尺度为S∈R K。卷积后,一个具有K个相邻点的局部区域的特征Fin被编码为输出特征Fout∈R Cout,如式(4)所示。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_卷积_07

PointConv学习一个网络来近似卷积的连续权值。对于每个输入点,我们可以使用相对坐标从mlp中计算权重。图2(a)显示了卷积的连续权函数示例。将点云输入作为连续输入的离散化,可以通过图2(b)计算离散卷积来提取局部特征,这将适用于不同的点云样本(可能具有不同的近似精度)(图2(b-d)),包括一个规则网格(图2(d))。注意,在光栅图像中,局部区域的相对位置是固定的。然后PointConv(它只将相对位置作为权重函数的输入)将在整个图像上输出相同的权重和密度,在这里它简化为传统的离散卷积。

为了聚合整个点集中的特征,我们使用了一种层次结构,能够将详细的小区域特征组合成覆盖更大空间范围的抽象特征。我们使用的层次结构是由几个特征编码模块组成的,这与pointnet++[28]中使用的结构类似。每个模块大致相当于卷积CNN中的一层。每个特征编码模块中的关键层是采样层、分组层和PointConv。更多的细节可以在补充材料中找到。

这种方法的缺点是每个滤波器都需要一个网络来近似,因此效率非常低。在第4节中,我们提出了一种实现PointConv的有效方法。

3.2. 使用反褶积的特征传播

对于分割任务,我们需要逐点预测。为了获得所有输入点的特征,需要一种将特征从次采样点云传播到密度更大的点云的方法。pointnet++[28]提出使用基于距离的插值来传播特征,这是合理的,因为局部区域内存在局部相关性。然而,这并没有充分利用反褶积操作,从粗水平捕获传播信息的局部相关性。我们建议在PointConv的基础上添加一个PointDeconv层,作为解决这个问题的反褶积操作。

如图4所示,PointDeconv由插补和PointConv两部分组成。首先,我们使用插值来传播前一层的粗特征。在[28]之后,通过从最近的3个点开始的线性插值特征进行插值。然后,使用跳跃链接将插值后的特征与相同分辨率的卷积层特征连接起来。拼接后,我们对拼接后的特征应用PointConv得到最终的反褶积输出,类似于图像反褶积层[24]。我们应用这个过程,直到所有输入点的特征都传播回原始分辨率。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_3D_08

图4。特征编码和传播。该图显示了特征是如何在网络中编码和传播的,以完成m类分割任务。N为每一层中的点数,c为特征的通道大小。彩色观看效果最好。

4.高效的PointConv

PointConv的简单实现是内存消耗和效率低下的。与[33]不同的是,我们提出了一种新的重新表述来实现PointConv,将其简化为两个标准操作:矩阵乘法和2d卷积。这种新颖的方法不仅利用了GPU的并行计算,而且可以轻松使用主流深度学习框架实现。因为逆密度标度没有这样的内存问题,下面的讨论主要集中在权重函数上。

其中,B为训练阶段的迷你批大小,N为点云中的点数,K为每个局部区域的点数,Cin为输入通道数,Cout为输出通道数。对于点云,每个局部区域共享相同的权重函数,可以使用MLP学习。但是,由不同点的权函数计算出的权值是不同的。MLP生成的权重滤波器大小为B × N × K × (Cin × Cout)。假设B = 32, N = 512, K = 32, Cin = 64, Cout = 64,以单点精度存储滤波器。然后,只有一层过滤器的内存大小为8GB。在如此高的内存消耗下,网络很难训练。[33]使用非常小的网络和很少的滤波器,这大大降低了它的性能。为了解决这个问题,我们提出了一个基于以下引理的PointConv的内存高效版本:

引理1 PointConv等价于以下公式:Fout = Conv1×1(H,(S·Fin) T⊗M)其中M∈R K×Cmid是MLP中最后一层的输入,用于计算权函数,H∈R Cmid×(Cin×Cout)是同一MLP中最后一层的权值,Conv1×1是1×1卷积。

证明:一般来说,MLP的最后一层是线性层。在一个局部区域内,设Fein = S·Fin∈R K×Cin,将MLP重写为1×1卷积,使权函数的输出W = Conv1×1(H, M)∈R K×(Cin×Cout)。设k为局部区域内各点的指标,cin、cmid、cout分别为输入、中间层和滤波输出的指标。那么W(k, cin)∈R Cout是来自W的向量,H(cmid, cin)∈R Cout是来自H的向量。根据式(4),PointConv可表示为式(5)。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_点云_09

让我们以更详细的方式探讨Eq.(5)。权重函数的输出可以表示为:

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_点云_10

将式(6)代入式(5):

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_3D_11

因此,原始的PointConv可以等效地简化为矩阵乘法和1 × 1卷积。图5显示了PointConv的有效版本。

在这种方法中,我们没有将生成的过滤器存储在内存中,而是将权重过滤器分为两部分:中间结果M和卷积核h。我们可以看到,内存消耗减少到原来版本的Cmid K×Cout。使用与图3相同的输入设置,并让Cmid = 32,内存消耗为0.1255GB,大约是原始PointConv的1/64。

论文阅读:PointConv Deep Convolutional Networks on 3D Point Clouds_点云_12

5. 实验

为了评估我们新的PointConv网络,我们在几个广泛使用的数据集上进行了实验,ModelNet40 [43], ShapeNet[2]和ScanNet[5]。为了证明我们的PointConv能够完全近似传统卷积,我们还报告了CIFAR-10数据集[19]上的结果。在所有实验中,我们使用Adam优化器在GTX 1080Ti GPU上使用Tensorflow实现模型。除最后一层全连接层外,每一层都应用ReLU和批量归一化。

5.1.ModelNet40 上的分类

ModelNet40包含来自40个人造对象类别的12,311个CAD模型。我们使用官方分割,其中9,843个形状用于训练,2,468个形状用于测试。按照[26]中的配置,我们使用PointNet[26]的源代码对1024个点进行统一采样,并从网格模型中计算法向量。为了进行公平的比较,我们采用了与[26]相同的数据增强策略,即沿z轴随机旋转点云,并用均值为零、标准差为0.02的高斯噪声抖动每个点。在表1中,PointConv在基于3D输入的方法中实现了最先进的性能。ECC[33]与我们的方法相似,不能扩展到一个大型网络,这限制了它们的性能。

5.2. ShapeNet部件分割

零件分割是一项具有挑战性的细粒度3D识别任务。ShapeNet数据集包含16,881个形状,来自16个类和50个部分。任务的输入是由点云表示的形状,目标是为点云中的每个点分配一个零件类别标签。给出了每个形状的类别标签。我们在大多数相关工作中遵循实验设置[28,35,44,18]。通常通过使用已知的输入3D对象类别,将可能的部件标签缩小到特定于给定对象类别的标签。我们还计算每个点的法线方向作为输入特征,以更好地描述底层的形状。图6显示了一些示例结果。

我们使用point intersection-over-union(IoU)来评估我们的PointConv网络,与pointnet++ [28], SPLATNet[35]等部分分割算法相同[45,18,44,7]。结果如表2所示。PointConv获得的类平均mIoU为82.8%,实例平均mIoU为85.7%,这与仅以点云作为输入的最先进算法相当。根据[35],SPLATNet2D−3D也将渲染的2D视图作为输入。由于我们的PointConv只将3D点云作为输入,为了公平比较,我们只将我们的结果与[35]中的SPLATNet3D进行比较。

5.3. 语义场景标记

数据集ModelNet40[43]和ShapeNet[2]是人工合成数据集。正如我们在前一节中所看到的,大多数最先进的算法都能够在这样的数据集上获得相对较好的结果。为了评估我们的方法在处理包含大量噪声数据的现实点云方面的能力,我们使用ScanNet数据集评估我们的PointConv语义场景分割。任务是在给定点云表示的室内场景下,预测每个3D点上的语义对象标签。最新版本的ScanNet[5]包括所有1513个ScanNet扫描的更新注释和100个新的测试扫描,所有语义标签都是公开不可用的,我们将我们的结果提交给官方评估服务器,以与其他方法进行比较。

我们将我们的算法与tan Convolutions [37], SPLAT Net [35], pointnet++[28]和ScanNet[5]进行比较。所有算法都将其在新的ScanNet数据集上的结果报告给基准测试,并且算法的输入仅使用3D坐标数据加RGB。在我们的实验中,我们通过从室内房间随机采样3m × 1.5m × 1.5m立方体来生成训练样本,并在整个扫描中使用滑动窗口进行评估。我们报告交集超过联合(IoU)作为我们的主要衡量标准,这与基准相同。图7显示了一些语义分割结果示例。

mIoU如表3所示。借条是所有类别借条的平均值。我们的PointConv算法明显优于其他算法(表3)。PointConv在一台GTX1080Ti上在ScanNet上训练一个epoch的总运行时间约为170s, 8 × 8192点的评估时间约为0.5s。

5.4. CIFAR-10分类

在章节3.1中,我们声称PointConv可以等价于2D CNN。如果这是真的,那么基于PointConv的网络的性能应该等同于栅格图像CNN。为了验证这一点,我们使用CIFAR-10数据集作为比较基准。我们将CIFAR-10中的每个像素视为具有xy坐标和RGB特征的2D点。点云在训练和测试之前在单位球上按比例缩放。

实验表明,CIFAR-10上的PointConv确实具有与2D CNN相同的学习能力。表4显示了图像卷积和PointConv的结果。从表中可以看出,PointCNN[21]在CIFAR-10上的准确率只有80.22%,比image CNN差很多。但是对于5层网络,使用PointConv的网络能够达到89.13%,这与使用图像卷积的网络相似。同时,采用VGG19[34]结构的PointConv也可以达到与VGG19相当的精度。

6.消融实验和可视化

在本节中,我们将进行额外的实验来评估PointConv每个方面的有效性。除了对PointConv结构的烧蚀研究,我们还对PointConv的性能进行了深入的分析在ScanNet数据集上的PointConv。最后,我们提供了一些可视化的学习过滤器。

6.1. MLP的结构

在本节中,我们设计了实验来评估PointConv中MLP参数的选择。为了快速评估,我们从ScanNet数据集生成一个子集作为分类任务。子集中的每个示例都是从原始场景扫描中随机抽取的1024个点。ScanNet数据集有20种不同的场景类型。我们经验地横扫了PointConv中Cmid的不同选择和MLP的不同层数。每个实验随机进行3次。结果可在补充中找到。从结果中我们发现,Cmid越大,分类结果不一定越好。MLP中不同的层数对分类结果的影响不大。由于Cmid与每个PointConv层的内存消耗是线性相关的,这个结果表明我们可以选择一个合理小的Cmid来获得更高的内存效率。

6.2. 逆密度标度

在本节中,我们研究了反密度尺度s的有效性。我们选择ScanNet作为我们的评估任务,因为ScanNet中的点云是由真实的室内场景生成的。我们遵循作者提供的标准训练/验证分割。我们分别使用第3.1节中描述的逆密度尺度和不使用逆密度尺度来训练网络。表5显示了结果。可以看出,带逆密度尺度的PointConv比不带逆密度尺度的PointConv性能提高了约1%,证明了逆密度尺度的有效性。在我们的实验中,我们观察到逆密度尺度往往在更接近输入的层中更有效。在深层,MLP倾向于学习减少密度尺度的影响。一个可能的原因是,使用最远点采样算法作为我们的子采样算法,更深一层的点云分布会更均匀。并且如表5所示,在ScanNet数据集上直接应用密度而不使用非线性变换的结果比不使用密度的结果差,这说明非线性变换能够学习到数据集中的逆密度尺度。

6.3. ScanNet消融研究

正如我们所看到的,我们的PointConv在很大程度上优于其他方法。由于我们只允许向ScanNet的基准服务器提交算法的一个最终结果,因此我们使用[5]提供的公共验证集为PointConv执行更多的消融研究。对于分割任务,我们用从3m ×1.5m ×1.5m中随机采样的8192个点来训练PointConv,并用尽所有点来评估模型在3m × 1.5m × 1.5m的立方体中以滑动窗口的方式通过不同步幅的xy平面。为了稳健性,我们在所有的实验中都使用了来自5个窗口的多数投票。从表5中可以看出,较小的步幅能够改善分割结果,而ScanNet上的RGB信息似乎并没有显著改善分割结果。即使没有这些额外的改进,PointConv仍然在很大程度上优于基线。

6.4. 可视化

图8可视化了从PointConv中的mlp中学习到的过滤器。为了更好地可视化滤波器,我们通过平面z = 0对学习的函数进行采样。从图8中,我们可以看到学习的连续滤波器中的一些模式。

7.结论

在这项工作中,我们提出了一种对3D点云进行卷积运算的新方法,称为PointConv。PointConv在局部点坐标上训练多层感知器来近似卷积滤波器中的连续权重和密度函数,这使得它自然地具有置换不变性和平移不变性。这使得深度卷积网络可以直接在3D点云上构建。我们提出了一种有效的实现方法,极大地提高了它的可伸缩性。我们展示了它在多个具有挑战性的基准测试中的强大性能,以及在2D图像中匹配基于网格的卷积网络的性能的能力。在未来的工作中,我们希望使用PointConv将更多主流的图像卷积网络架构应用到点云数据中,例如ResNet和DenseNet。代码可以在这里找到:https://github.com/DylanWusee/pointconv。