PointConv: Deep Convolutional Networks on 3D Point Clouds

摘要
图像数据通常可以表示成密集的网格形式,而三维的点云数据通常是不规则的无序的。因此,在点云数据上使用卷积是困难的。本文将动态滤波器拓展为一种新的卷积操作——PointConv。PointConv可以应用于点云进而搭建深度卷积网络。我们把卷积核视作一个作用在局部三维点坐标系上的由权重和密度函数组成的非线性函数。给定一个点,权重函数可以通过多层感知网络习得,而密度函数可以通过核密度估计来得到。本文最重要的贡献是:提出了一种新颖的高效的计算权重函数的方法。这种方法允许我们动态的拓展网络并极大的提升模型能力。习得的卷积核可以用于计算三维空间任意给定的点集上的卷积,而这种卷积能保证语义不变和置换不变性。此外,PointConv还可以用作反卷积运算符,从而将子采样点云中的特征传播回其原始分辨率。

介绍
CNNs的成功源于利用了翻译不变性(translation invariance),所以一组相同设置的卷积滤波器可以作用在同一图像的所有位置,这一做法可以降低参数量提升泛化性能。我们期望能够在3D数据的分析中延续这种成功。然而三维数据通常以点云的形式表示,也就是一组无序的三维点,也许每个点还包含额外的特征(比如颜色信息)。
本文中,我们提出了一种新颖的方法,用来在非均匀采样的3D点云数据集上执行卷积操作。我们注意到实际的卷积操作可以视作对连续的卷积的离散近似。在3D空间中,我们可以将该卷积算子的权重视为相对于参考3D点的局部3D点坐标的(Lipschitz)连续函数。连续函数可以通过多层感知机(MLP)来近似得到。但是这些算法没有考虑非均匀采样带来的影响。我们提出使用一个反向密度估计(inverse density scale)的方法重新计算MLP习得的连续函数。我们称这一操作为PointConv。PointConv综合考虑点云的位置分布,学习一个MLP来近似权重函数,并使用反向密度估计(inverse density scale)的方法对学习到的权重根据非均匀采样进行补偿。
为了降低原生PointConv的内存开销,我们引入了一种改变总和顺序(summation order)的方法,可以极大的提升内存效率。新的结构可以用于在3D点云上搭建多层深度卷积网络,我们的方法同样可以达到相同的翻译不变性,并且根据输入点云序列保证序列不变性。我们提出的PointConv是卷积的完全近似,因此将PointConv扩展为PointDeconv是很自然的事情,它可以完全利用粗糙层中的信息并传播到更精细的层。

我们的主要工作贡献是:
1)我们提出PointConv,一种密度函数重加权卷积,它能够在任何3D点集上完全逼近3D连续卷积。
2)我们设计了一种内存高效的方法来实现PointConv,使用求和顺序技术的变化提升性能,最重要的是,它允许模型能够扩展到现代CNNs的层数。
3)我们将PointConv扩展为反卷积(PointDeconv)版本以获得更好的分割结果。

PointConv
1、3D点云上的卷积
由于图像一般以固定网格状的矩阵形式存储,因此在图像上,卷积核通常在固定网格上实现。在CNN中,不同邻域采用同一个卷积核进行卷积,从而实现平移不变性。如图 1 所示,不同于图像,3D 点云通常由一些 3D 点组成。3D 点之间没有前后顺序之分,因此,在 3D 点云上的卷积操作应具有排列不变性,即改变 3D 点集中点顺序不应影响卷积结果。此外,点云上的卷积操作应适应于不同形状的邻域。
PointConv: Deep Convolutional Networks on 3D Point Clouds_第1张图片
一组点云集合可以表示为一组3D点的集合{pi|i = 1, …, n},其中每个点包含一组位置向量 (x, y, z)或其它信息如颜色、表面切线等。不同于图像,点云的表示形式更灵活。在坐标系 p = (x, y, z) ∈ R3中,一个点的坐标不会限制在一个固定网格里,而是有可能取任意的连续值。因此,每个局部区域中不同点的相对位置是不同的。栅格化的图像上的传统离散卷积滤波器不能直接应用于点云。图1显示了图像中的局部区域和点云之间的差异。为了使卷积能在点集兼容使用,我们提出了一种序列不变卷积运算,称为PointConv。我们的首先回忆3D卷积的连续版本:
在这里插入图片描述
在 3D 空间中,可以把连续卷积算子的权重看作关于一个 3D 参考点的局部坐标的连续函数。其中F(x + δx, y + δy, z + δz) 是以点为中心的局部区域G中的点的特征。一组点云可以视为从一个连续空间R3进行非均匀采样的结果。在每个局部区域中, (δx, δy, δz)可能是局部区域的任何可能的位置。我们对PointConv进行如下定义:
在这里插入图片描述
其中S(δx, δy, δz)是点 (δx, δy, δz)处的反密度估计(inversedensity)。S(δx, δy, δz)是必要的,因为点云往往存在非均匀采样。连续函数 W 可以用多层感知器(MLP)近似。函数 W 的输入是以 (x, y, z) 为中心的 3D 邻域内的 3D 点的相对坐标,输出是每个点对应的特征 F 的权重。S 是一个关于密度的函数,输入是每个点的密度,输出是每个点对应的逆密度系数。这个非线性的函数同样可以用一个多层感知机近似。直观上看,局部区域中的点数在整个点云中变化,如图2(b)和(c)所示。
PointConv: Deep Convolutional Networks on 3D Point Clouds_第2张图片
此外,在图2(b)和(c)中,点均相邻较近。所以每个点对全局特征的贡献较小。
我们的主要思想是通过多层感知机从三维坐标中近似权重函数并利用一个核密度估计以及一个非线性变换(MLP实现)近似反密度函数。因为权重函数高度依赖于输入点云的分布,我们称整个卷积运算为PointConv。
PointConv中的MLP的权重在所有点之间共享,以便保证序列不变性。为了计算反向密度尺度估计函数S(δx, δy, δz),我们首先使用核密度估计(KDE)离线估算点云中每个点周边的密度,然后将密度值输入到一个1D非线性变换的MLP中。使用非线性变换的原因是有必要让网络自适应地决定是否使用密度估计。

PointConv: Deep Convolutional Networks on 3D Point Clouds_第3张图片
PointConv: Deep Convolutional Networks on 3D Point Clouds_第4张图片
PointConv学习一个网络用以近似卷积的连续权重。对于每个输入点,我们可以使用其相对坐标来计算MLP的权重。图2(a)展示了一个用于卷积的连续权重函数。不妨将点云输入视作对连续输入的离散化采样,一个离散卷积可以通过图2(b)所示的方式进行计算,用以提取局部特征,这对于不同的点云采样集合都有作用(可能具有不同的近似精度)(图2) (b-d)),其中的一个例子包括规则网格(图2(d))。注意,在栅格化图像中,局部区域中的相对位置是固定的。这时,PointConv(仅采用各点的相对位置作为权重函数的输入)将在整个图像上输出相同的权重和密度,此时它退化成为传统的离散化卷积。
为了聚合整个点集中的特征,我们使用层次化的结构,该结构能够整合细粒度的小区域特征进而组合成覆盖更大空间范围的抽象特征。我们使用的层次结构由几个特征编码模块组成,类似于PointNet ++ [28]中使用的模块。每个模块大致相当于卷积CNN中的一个层。每个特征编码模块中的关键层是采样层,分组层和PointConv。
这种方法的缺点是每个滤波器需要由一个网络近似,因此效率非常低。

2、使用反卷积的特征传播
对于语义分割任务,我们需要逐点预测。为了获得所有输入点的特征,需要一种将特征从二次采样点云传播到更密集的点的方法。
如图4所示,PointDeconv由两部分组成:插值和PointConv。首先,我们使用插值来传播前一层的粗粒度特征。我们通过从3个最近点来进行线性特征插值。然后,使用skip links将插值特征与来自卷积层的具有相同分辨率的特征连接起来。连接后,我们在连接的特征上应用PointConv以获得最终的反卷积输出,类似于图像反卷积层。我们反复执行此过程,直到所有输入点的要素已传播回原始分辨率。
PointConv: Deep Convolutional Networks on 3D Point Clouds_第5张图片
高效的PointConv
原生的PointConv实现内存消耗巨大和比较低效。我们提出了一种新的重构方法,这种方法通过将PointConv减少到两个标准操作来实现PointConv:矩阵乘法和2d卷积。这种新颖的技巧不仅利用了GPU的并行计算,而且可以使用主流深度学习框架轻松实现。因为反密度估计函数不存在内存问题,所以下面的讨论主要集中在权重函数上。
PointConv: Deep Convolutional Networks on 3D Point Clouds_第6张图片
在这里插入图片描述PointConv: Deep Convolutional Networks on 3D Point Clouds_第7张图片

实验结果
为了评估PointConv网络,在Model-Net40 ,ShapeNet和ScanNet等数据集上进行了实验,结果表明在ModelNet40上,在基于3D输入的方法中,PointConv实现了最先进的性能;在ShapeNet中我们还将每个点上的法线方向作为输入要素,以更好地描述基本形状;为了评估我们的方法处理包含大量噪声数据的真实点云的能力,我们使用ScanNet数据集来评估我们的PointConv语义场景分割性能,实验结果表明我们的PointConv在很大程度上优于其他算法。为了证明PointConv能够完全接近常规卷积,我们使用CIFAR-10数据集作为比较基准,实验表明,CIFAR-10上的PointConv确实具有与2D CNN相同的学习能力。

你可能感兴趣的:(PointConv: Deep Convolutional Networks on 3D Point Clouds)