PointConv:3D点云上的深度卷积网络

作者: Wenxuan Wu, Zhongang Qi, Li Fuxin

原文: https://arxiv.org/pdf/1811.07246v2.pdf

代码: https://github.com/DylanWusee/pointconv

数据集: http://www.scan-net.org/

如果scannet v2数据集过大,官方提供的下载工具依然不方便下载,您可以通过扫描页面右方或下方的捐款二维码捐款一次,并留下您的联系方式,我会在收款后24小时内将天翼云盘下载链接发送给您。支付宝支付支持蚂蚁花呗。

摘要

与在常规密集网格中表示的图像不同,3D点云是不规则且无序的,因此对它们应用卷积可能是困难的。在本文中,我们将动态过滤器扩展为一个名为PointConv的新卷积操作。 PointConv可以应用于点云以构建深度卷积网络。我们将卷积核视为由权重和密度函数组成的3D点的局部坐标的非线性函数。关于给定点,通过核密度估计利用多层感知器网络和密度函数来学习权重函数。这项工作最重要的贡献是为有效计算权重函数而提出的新颖重构,这使我们能够大幅扩展网络并显着提高其性能。学习的卷积核可用于计算3D空间中任何点集上的平移不变和置换不变卷积。此外,PointConv还可以用作反卷积运算符,以将子采样点云中的特征传播回其原始分辨率。 ModelNet40,ShapeNet和ScanNet上的实验表明,基于PointConv构建的深度卷积神经网络能够在3D点云上实现具有挑战性的语义分段基准测试的最新技术。此外,我们将CIFAR-10转换为点云的实验表明,构建在PointConv上的网络可以匹配类似结构的2D图像中卷积网络的性能。

介绍

在最近的机器人技术、自动驾驶和虚拟/增强现实应用中,可以直接获得3D数据的传感器越来越普遍。这包括室内传感器,如激光扫描仪、飞行时间传感器(如Kinect,RealSense或Google Tango),结构光传感器(如iPhoneX上的传感器),以及室外传感器(如LIDAR和MEMS传感器)。 直接测量3D数据的能力在这些应用中是非常宝贵的,因为深度信息可以从2D图像中消除大量的分割模糊,并且曲面法线提供场景几何的重要线索。

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

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

当输出特征的信道大小非常大并且因此难以训练和扩展到大型网络时,PointConv的朴素实现是存储器低效的。 为了减少PointConv的内存消耗,我们引入了一种方法,该方法能够使用改变求和顺序的重构来大大提高存储器效率。 新结构能够在3D点云上构建多层深度卷积网络,其具有与光栅图像上的2D CNN类似的能力。 我们可以实现与2D卷积网络中相同的平移不变性,以及点云中点的排序的不变性。

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

我们的工作贡献是:

  1. 我们提出PointConv,一种密度重加权卷积,能够在任何3D点集上完全逼近3D连续卷积。
  2. 我们设计了一种内存有效(memory efficient)的方法来实现PointConv,使用求和顺序技术的变化,最重要的是,它允许它扩展到现代CNN级别。
  3. 我们将PointConv扩展为反卷积版本(PointDeconv)以获得更好的分割结果。

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

相关工作

3D CNN网络上的大多数工作都将3D点云转换为2D图像或3D体积网格。 [36,27]提出将3D点云或形状投影到几个2D图像中,然后应用2D卷积网络进行分类。虽然这些方法已经在形状分类和检索任务上取得了主导性能,但将它们扩展到高分辨率场景分割任务是非常重要的[5]。 [43,43,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]提出了一种方法,将点云的输入特征投影到高维网格上,然后在高维网格上应用双边卷积(bilateral convolution,或译作“相互卷积”)来聚合特征,称为“SPLATNet”。 SPLATNet [35]能够提供与PointNet ++ [28]相当的结果。切线卷积(tangent convolution,或译作“正切卷积”)[37]在每个点周围的切平面上投影局部曲面几何,从而得到一组平面可卷积切线图像。逐点卷积(pointwise convolution)[13]在运行中(on the fly)查询最近邻居并将点分成内核单元,然后在分箱单元(binned cells)上应用内核权重以在点云上进行卷积。 Flex-convolution [9]引入了传统卷积层的推广以及高效的GPU实现,可以应用于具有数百万个点的点云。 FeaStNet [39]建议通过添加软分配矩阵将常规卷积层推广到3D点云。 PointCNN [21]是从输入点学习χ变换,然后用它来同时加权和置换与点相关的输入特征。与我们的方法相比,PointCNN无法实现排列不变性,而这是点云所必需的。

[33,16,41,12,40]和[44]的工作建议学习连续滤波器来执行卷积。 [16]提出2d卷积中的权重滤波器可以被视为连续函数,可以通过MLP近似。 [33]首先将这个想法引入到3d图结构中。 [40]将[33]中的方法扩展到分割任务并提出了一个有效的版本,但它们的有效版本只能近似深度卷积而不是真正的卷积。动态图CNN [41]提出了一种可以动态更新图形的方法。 [44]提出了一个特殊的过滤器系列来近似权重函数,而不是使用MLP。 [12]通过考虑密度,提出了3D卷积的Monta Carlo近似。我们的工作与3个方面的工作不同。最重要的是,在以前的工作中从未提出过真正的卷积的有效版本。此外,我们利用密度不同于[12],我们提出了一个基于PointConv的反卷积算子来执行语义分割。

三维点云上的卷积

形式上,对于d维向量x的函数f(x)g(x),卷积定义为等式(1)。

(f*g)(x) = \displaystyle\iint\limits_{\mathcal{T} \in \mathbb{R}^d}f(\mathcal(T))g(x+\mathcal(T))d\mathcal(T)

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

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

一个点云可以表示为一组三维点集{p_i|i=1, ... , n},其中每个点包含一个位置向量(x, y, z)和特征,如颜色、表面法线等。与图像不同,点云具有更灵活的形状。点云中的一个点的坐标p=(x, y, z) \in \mathbb{R}^3并非位于固定网格上,而是可以采用任意连续值。因此,每个局部区域的不同点的相对位置是不同的。光栅图像上的传统离散卷积滤波器不能直接应用于点云。图1显示了图像中的局部区域和点云之间的差异。

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

Conv(W, F)_{xyz} = \displaystyle\iiint\limits_{(\delta_x, \delta_y, \delta_z) \in G} W(\delta_x, \delta_y, \delta_z)F(x + \delta_x, y + \delta_y, z + \delta_z)d {\delta_x}{\delta_y}{\delta_z}

其中,F(x + \delta_x, y + \delta_y, z + \delta_z) 是以点p =(x, y, z)为中心的局部区域G中的点的特征。点云可以被视为来自连续\mathbb{R}^3空间的非均匀样本。在每个局部区域,(\delta_x, \delta_y, \delta_z) 可以是局部区域中的任意位置。我们将PointConv定义如下:

PointConv(S, W, F) = \\ \displaystyle\sum_{(\delta_x, \delta_y, \delta_z) \in G} S(\delta_x, \delta_y, \delta_z) W(\delta_x, \delta_y, \delta_z) F(x + \delta_x, y + \delta_y, z + \delta_z)

其中S(\delta_x, \delta_y, \delta_z) (\delta_x, \delta_y, \delta_z) 的反密度。S(\delta_x, \delta_y, \delta_z) 是必须的,因为点云采样可以非常不规则。直观地说,局部区域中的点的数量在整个点云中的变化,如图2(b)和(c)所示。此外,在图2(c)中,点p_3, p_5, p_6, p_7, p_8, p_9, p_10彼此非常接近,因此每个点的贡献应该更小。

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

我们的主要思想是通过来自3D坐标 (\delta_x, \delta_y, \delta_z) 的多层感知器近似权重函数 W(\delta_x, \delta_y, \delta_z) 以及通过核化密度估计[38]、然后用MLP实现非线性变换的反密度 S(\delta_x, \delta_y, \delta_z) 。 因为权重函数高度依赖于输入点云的分布,我们称之为整个卷积运算Point-Conv。 [16,33]考虑了权重函数的近似,但没有考虑密度尺度的近似,因此不是连续卷积算子的完全近似。 我们对密度的非线性变换也与[12]不同。

PointConv中的MLP的权重在所有点之间共享,以便维持置换不变性。为了计算反密度尺度 S(\delta_x, \delta_y, \delta_z) ,我们首先使用核密度估计(KDE)估算离线点云中每个点的密度,然后将密度输入到一维非线性的MLP中变换。使用非线性变换的原因是网络自适应地决定是否使用密度估计。

图3显示了“K个点”局部区域的PointConv操作。 设C_{in}, C_{out}是输入特征和输出特征的通道数,k, c_{in}, c_{out}是第k个邻居的索引,用于输入特征的第c个通道和用于输出特征的第c个通道。 输入是点P_{local} \in \mathbb{R}^{K \times 3}的3D局部位置,其可以通过减去局部区域的质心的坐标和局部区域的特征F_{in} \in \mathbb{R}^{K \times C_{in}}来计算。 我们使用1 \times 1 卷积来实现MLP。权重函数的输出为W \in \mathbb{R}^{K \times (C_{in} \times C_{out})}。 因此,W(k, c_{in}) \in \mathbb{R}^{C_{out}}是一个向量。 密度标度为S \in \mathbb{R}^K。在卷积之后,来自具有K个邻居点的局部区域的特征F_{in}被编码到输出特征F_{out} \in \mathbb{R}^{C_{out}}中,如等式(4)所示。

图3. PointConv。(a)表示局部区域,其坐标点从全局变换到局部坐标,p是点的坐标,f是相应的特征; (b)显示了以一个点为中心的一个局部区域(p_0, f_0)进行PointConv的过程。 输入特征来自以(p_0, f_0) 为中心的K最近邻居,输出特征为p_0处的F_{out}

\mathbb{F}_{out} = \displaystyle\sum_{k=1}^{K} \displaystyle\sum_{c_{in} = 1}^{C_{in}} S(k)W(k, c_{in})F_{in}(k, c_{in})

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

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

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

使用反卷积的特征传播

对于分割任务,我们需要逐点预测。为了获得所有输入点的特征,需要一种将特征从二次采样点云传播到更密集的点的方法。 PointNet ++ [28]建议使用基于距离的插值来传播特征,这是基于局部区域内的局部相关性而定的。然而,这并未充分利用去卷积操作来捕获来自粗略级别的传播信息的局部相关性。 我们建议添加一个基于PointConv的PointDeconv层作为解卷积操作来解决这个问题。

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

图4. 特征编码和传播。 此图显示了如何在网络中为m类分段任务编码和传播要素。 n是每层中的点数,c是要素的通道大小。 最好看的颜色。

高效的 PointConv

PointConv的朴素实现会消耗大量内存,效率较低。 与[33]不同,我们提出了一种新的重构方法,通过将PointConv减少到两个标准操作来实现PointConv:矩阵乘法和2d卷积。这种新颖的技巧不仅利用了GPU的并行计算,而且可以使用主流深度学习框架轻松实现。因为反密度尺度没有这样的存储消耗大的问题,所以下面的讨论主要集中在权重函数上。

具体来说,让B为训练阶段的“小批量”的具体大小,N为点云中的点数,K为每个局部区域的点数,C_{in}为输入通道的数量,C_{out}为输出通道的数量。对于一个点云,每个局部区域共享相同的权重函数,而此权重函数可以通过多层感知机学习而来。然而,根据不同点处的权重函数计算的权重是不同的。MLP生成的权重过滤器的大小为B \times N \times K \times (C_{in} \times C_{out}) 。假设B = 32, N = 512, K = 32, C_{in} = 64, C_{out} = 64,并且过滤器以单点精度存储。然后,仅一个层的过滤器的内存大小为8GB。 如此高的内存消耗将很难训练网络。 [33]使用非常小的网络,几乎没有过滤器,这显着降低了其性能。 为了解决这个问题,我们提出了一个基于以下引理的内存高效版PointConv:

引理1:PointConv等效于以下公式:\mathcal{F}_{out} = Conv_{1 \times 1} (H, (S \cdot F_{in})^T \otimes M),其中M \in \mathbb{R}^{K \times C_{mid}}是用于计算权重函数的MLP中最后一层的输入,其中\mathcal{H} \in \mathbb{R}^{C_{mid} \times (C_{in} \times C_{out})}是同一MLP中最后一层的权重,Conv_{1\times1}1\times1卷积。

证明:通常,MLP的最后一层是线性层。在一个局部区域中,让\widetilde{\mathcal{F}} = \mathcal{S} \cdot \mathcal {F}_{in} \in \mathbb{R}^{K \times C_{in}}并将MLP重写为1×1卷积,这样权重函数的输出是W = Conv_{1\times1}(H,M)\in\mathbb{R}^{K \times (C_{in} \times C_{out})}。让k 为局部区域点集的索引,且c_{in}, c_{mid}, c_{out}分别为输入层、中间层和过滤输出层的索引。然后W(k, c_{in}) \in \mathbb{R}^{C_{out}}是来自W的一个向量。且H(C_{mid}, C_{in}) \in \mathbb{R}^{C_{out}}是来自H的一个向量。根据等式(4),PointConv可以表示为等式(5)

\mathcal{F}_{out} = \displaystyle\sum_{k=0}^{K-1} \displaystyle\sum_{C_{in} = 0}^{C_{in} - 1} (W(k, c_{in}) \widetilde{\mathcal{F}}_{in} (k, c_{in}))

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

W(k, c_{in}) = \displaystyle\sum_{c_{mid} = 0}^{c_{mid} - 1} (M(k, c_{mid})H(c_{mid}, c_{in}))

将等式(6)带入等式(5):

\mathcal{F}_{out} = \displaystyle\sum_{k=0}^{K-1} \displaystyle\sum_{C_{in} = 0}^{C_{in} - 1} (\widetilde{\mathcal{F}}_{in} (k, c_{in})  \displaystyle\sum_{c_{mid} = 0}^{c_{mid} - 1} (M(k, c_{mid})H(c_{mid}, c_{in}))) \\ = \displaystyle\sum_{C_{in} = 0}^{C_{in} - 1}  \displaystyle\sum_{c_{mid} = 0}^{c_{mid} - 1} ( H(c_{mid}, c_{in}) )  \displaystyle\sum_{k=0}^{K-1}   (\widetilde{\mathcal{F}}_{in} (k, c_{in}) M(k, c_{mid})  ) \\ = Conv_{1 \times 1}(H, \widetilde{F}^T_{in}M)

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

图5. 高效的PointConv。 具有K点的一个局部区域上的PointConv的存储空间相对友好的版本。

在这种方法中,我们不是将生成的滤波器存储在内存中,而是将权重滤波器分为两部分:中间结果M和卷积核H。我们可以看到,内存消耗降低到原始版本的\frac{C_{mid}}{K \times C_{out}}。使用与图3相同的输入设置并让C_{mid} = 32,内存消耗为0.1255GB,约为原始PointConv的1/64。

实验

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

ModelNet40 上的分类结果

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

方法输入精确度(%)
Subvolume[27]voxels89.2
ECC[33]graphs87.4
Kd-Network[18]1024 points91.8
PointNet[26]1024 points89.2
PointNet++[28]1024 points90.2
PointNet++[28]5000 points + normal91.9
SpiderCNN [44]1024 points + normal92.4
PointConv1024 points + normal92.5

ShapeNet 零件分割

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

我们使用点交叉联合(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进行比较。

分类平均实例平均
SSCNN[45]82.084.7
Kd-net[18]77.482.3
PointNet[26]80.483.7
PointNet++[28]81.985.1
SpiderCNN[44]82.485.3
SPLATNet3D[35]82.084.6
SSCN[7]86.0
PointConv82.885.7

语义场景标签

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

我们将我们的算法与Tangent Convolutions [37],SPLAT Net [35],PointNet ++ [28]和ScanNet [5]进行比较。 所有提到的算法都将新扫描数据集的结果报告给基准测试,算法的输入仅使用3D坐标数据和RGB。 在我们的实验中,我们通过从室内房间随机抽取3m×1.5m×1.5m立方体来生成训练样本,并在整个扫描过程中使用滑动窗口进行评估。 我们报告交叉联合(IoU)作为我们的主要措施,它与基准相同。 我们将图7中的一些示例语义分段结果可视化。表3中报告了mIoU。mIoU是所有类别中IoU的平均值。 我们的PointConv在很大程度上优于其他算法(表3)。 在一台GTX1080Ti上用于在ScanNet上训练一个周期的PointConv的总运行时间约为170秒,而8×8192点的评估时间约为0.5秒。

方法mIoU(%)
ScanNet[5]30.6
PointNet++[28]33.9
SPLATNet[35]39.3
Tangent Convolutions[37]43.8
PointConv55.6

CIFAR-10上的分类结果

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

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

精确度(%)
Image Convolution88.52
AlexNet[20]89.00
VGG19[34]93.60
PointCNN[21]80.22
SpiderCNN[44]77.97
PointConv(5层)89.13
PointConv(VGG19)93.19

消融实验和可视化

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

多层感知机结构

在本节中,我们设计实验来评估PointConv中MLP参数的选择。 为了快速评估,我们从ScanNet数据集生成一个子集作为分类任务。 子集中的每个示例是从具有1,024个点的原始场景扫描中随机采样的。 ScanNet数据集有20种不同的场景类型。 我们根据经验在PointConv中扫描不同的C_{mid}选择和不同数量的MLP层。 每个实验进行3次随机试验。结果可以在补充材料中找到。 从结果中,我们发现较大的 C_{mid} 不一定能提供更好的分类结果。 并且MLP中不同的层数在分类结果上没有太大差异。 由于 C_{mid} 与每个PointConv层的内存消耗线性相关,因此结果表明我们可以选择相当小的 C_{mid} 以获得更高的内存效率。

反密度尺度

在本节中,我们研究了反密度尺度S的有效性。我们选择ScanNet作为我们的评估任务,因为ScanNet中的点云是从真实的室内场景生成的。我们遵循作者提供的标准训练、验证分组。我们分别使用和不使用反密度标度训练网络,如第2节所述。表5显示了结果。正如我们所看到的,具有反密度尺度的PointConv比没有反密度尺度的情况下表现好了约1%,这证明了反密度尺度的有效性。在我们的实验中,我们观察到反密度尺度在靠近输入的层中往往更有效。在深层,MLP倾向于减小密度尺度的影响。一个可能的原因是,使用最远点采样算法作为我们的子采样算法,更深层中的点云倾向于更均匀地分布。如表5所示,直接应用密度而不使用非线性变换得到的结果与ScanNet数据集上没有密度的结果相比更差,这表明非线性变换能够学习数据集中的反密度尺度。

输入步幅(米)mIoUmIoU
无密度
mIoU
密度
(无多层感知机)
xyz0.5
1.0
1.5
61.0
59.0
58.2
60.3
58.2
56.9
60.1
57.7
57.3
xyz+RGB0.5
1.0
1.5
60.8
58.6
57.5
58.9
56.7
56.1


ScanNet的消融研究

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

可视化

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

图8. 已学习卷积滤波器。 由ShapeNet上的MLP学习的卷积滤波器。为了更好的可视化,我们从z = 0平面获取所有权重滤波器。

总结

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

引用

  1. Michael M Bronstein and Iasonas Kokkinos. Scale-invariant heat kernel signatures for non-rigid shape recognition. In Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on, pages 1704–1711. IEEE, 2010.
  2. Angel X Chang, Thomas Funkhouser, Leonidas Guibas, Pat Hanrahan, Qixing Huang, Zimo Li, Silvio Savarese, Manolis Savva, Shuran Song, Hao Su, et al. Shapenet: An information-rich 3d model repository. arXiv preprint arXiv:1512.03012, 2015.
  3. Ding-Yun Chen, Xiao-Pei Tian, Yu-Te Shen, and Ming Ouhyoung. On visual similarity based 3d model retrieval. In Computer graphics forum, volume 22, pages 223–232. Wiley Online Library, 2003.
  4. Hang Chu, Wei-Chiu Ma3 Kaustav Kundu, Raquel Urtasun, and Sanja Fidler. Surfconv: Bridging 3d and 2d convolution for rgbd images. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 3002– 3011, 2018.
  5. Angela Dai, Angel X Chang, Manolis Savva, Maciej Halber, Thomas Funkhouser, and Matthias Nießner. Scannet: Richly-annotated 3d reconstructions of indoor scenes. In Proc. IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), volume 1, 2017.
  6. Yi Fang, Jin Xie, Guoxian Dai, Meng Wang, Fan Zhu, Tiantian Xu, and Edward Wong. 3d deep shape descriptor. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2319–2328, 2015.
  7. Benjamin Graham and Laurens van der Maaten. Submanifold sparse convolutional networks. arXiv preprint arXiv:1706.01307, 2017.
  8. Adrien Gressin, Clement Mallet, J ´ er´ ome Demantk ˆ e, and ´ Nicolas David. Towards 3d lidar point cloud registration improvement using optimal neighborhood knowledge. ISPRS journal of photogrammetry and remote sensing, 79:240–251, 2013.
  9. Fabian Groh, Patrick Wieschollek, and Hendrik Lensch. Flex-convolution (deep learning beyond grid-worlds). arXiv preprint arXiv:1803.07289, 2018.
  10. Kan Guo, Dongqing Zou, and Xiaowu Chen. 3d mesh labeling via deep convolutional neural networks. ACM Transactions on Graphics (TOG), 35(1):3, 2015.
  11. Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770–778, 2016.
  12. Pedro Hermosilla, Tobias Ritschel, Pere-Pau Vazquez, ´ Alvar ` Vinacua, and Timo Ropinski. Monte carlo convolution for learning on non-uniformly sampled point clouds. In SIGGRAPH Asia 2018 Technical Papers, page 235. ACM, 2018.
  13. Binh-Son Hua, Minh-Khoi Tran, and Sai-Kit Yeung. Pointwise convolutional neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 984–993, 2018.
  14. Qiangui Huang, Weiyue Wang, and Ulrich Neumann. Recurrent slice networks for 3d segmentation of point clouds. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2626–2635, 2018.
  15. Jorn-Henrik Jacobsen, Jan van Gemert, Zhongyou Lou, and ¨ Arnold WM Smeulders. Structured receptive fields in cnns. In Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on, pages 2610–2619. IEEE, 2016.
  16. Xu Jia, Bert De Brabandere, Tinne Tuytelaars, and Luc V Gool. Dynamic filter networks. In Advances in Neural Information Processing Systems, pages 667–675, 2016.
  17. Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
  18. Roman Klokov and Victor Lempitsky. Escape from cells: Deep kd-networks for the recognition of 3d point cloud models. In 2017 IEEE International Conference on Computer Vision (ICCV), pages 863–872. IEEE, 2017.
  19. Alex Krizhevsky and Geoffrey Hinton. Learning multiple layers of features from tiny images. Technical report, Citeseer, 2009.
  20. Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep convolutional neural networks. In Advances in neural information processing systems, pages 1097–1105, 2012.
  21. Yangyan Li, Rui Bu, Mingchao Sun, and Baoquan Chen. Pointcnn. arXiv preprint arXiv:1801.07791, 2018.
  22. Haibin Ling and David W Jacobs. Shape classification using the inner-distance. IEEE transactions on pattern analysis and machine intelligence, 29(2):286–299, 2007.
  23. Daniel Maturana and Sebastian Scherer. Voxnet: A 3d convolutional neural network for real-time object recognition. In Intelligent Robots and Systems (IROS), 2015 IEEE/RSJ International Conference on, pages 922–928. IEEE, 2015.
  24. Hyeonwoo Noh, Seunghoon Hong, and Bohyung Han. Learning deconvolution network for semantic segmentation. In Proceedings of the IEEE International Conference on Computer Vision, pages 1520–1528, 2015.
  25. Charles R Qi, Wei Liu, Chenxia Wu, Hao Su, and Leonidas J Guibas. Frustum pointnets for 3d object detection from rgb-d data. arXiv preprint arXiv:1711.08488, 2017.
  26. Charles R Qi, Hao Su, Kaichun Mo, and Leonidas J Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. Proc. Computer Vision and Pattern Recognition (CVPR), IEEE, 1(2):4, 2017.
  27. Charles R Qi, Hao Su, Matthias Nießner, Angela Dai, Mengyuan Yan, and Leonidas J Guibas. Volumetric and multi-view cnns for object classification on 3d data. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 5648–5656, 2016.
  28. Charles Ruizhongtai Qi, Li Yi, Hao Su, and Leonidas J Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. In Advances in Neural Information Processing Systems, pages 5105–5114, 2017.
  29. Xiaojuan Qi, Renjie Liao, Jiaya Jia, Sanja Fidler, and Raquel Urtasun. 3d graph neural networks for rgbd semantic segmentation. In Proceedings of theqi IEEE Conference on Computer Vision and Pattern Recognition, pages 5199– 5208, 2017.
  30. Siamak Ravanbakhsh, Jeff Schneider, and Barnabas Poczos. Deep learning with sets and point clouds. arXiv preprint arXiv:1611.04500, 2016.
  31. Gernot Riegler, Ali Osman Ulusoy, and Andreas Geiger. Octnet: Learning deep 3d representations at high resolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, volume 3, 2017.
  32. Radu Bogdan Rusu, Nico Blodow, and Michael Beetz. Fast point feature histograms (fpfh) for 3d registration. In Robotics and Automation, 2009. ICRA’09. IEEE International Conference on, pages 3212–3217. IEEE, 2009.
  33. Martin Simonovsky and Nikos Komodakis. Dynamic edgeconditioned filters in convolutional neural networks on graphs. In Proc. CVPR, 2017.
  34. Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
  35. Hang Su, Varun Jampani, Deqing Sun, Subhransu Maji, Evangelos Kalogerakis, Ming-Hsuan Yang, and Jan Kautz. Splatnet: Sparse lattice networks for point cloud processing. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2530–2539, 2018.
  36. Hang Su, Subhransu Maji, Evangelos Kalogerakis, and Erik Learned-Miller. Multi-view convolutional neural networks for 3d shape recognition. In Proceedings of the IEEE international conference on computer vision, pages 945–953, 2015.
  37. Maxim Tatarchenko, Jaesik Park, Vladlen Koltun, and QianYi Zhou. Tangent convolutions for dense prediction in 3d. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 3887–3896, 2018.
  38. Berwin A Turlach. Bandwidth selection in kernel density estimation: A review. In CORE and Institut de Statistique. Citeseer, 1993.
  39. Nitika Verma, Edmond Boyer, and Jakob Verbeek. Feastnet: Feature-steered graph convolutions for 3d shape analysis. In CVPR 2018-IEEE Conference on Computer Vision & Pattern Recognition, 2018.
  40. Shenlong Wang, Simon Suo, Wei-Chiu Ma, Andrei Pokrovsky, and Raquel Urtasun. Deep parametric continuous convolutional neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2589–2597, 2018.
  41. Yue Wang, Yongbin Sun, Ziwei Liu, Sanjay E Sarma, Michael M Bronstein, and Justin M Solomon. Dynamic graph cnn for learning on point clouds. arXiv preprint arXiv:1801.07829, 2018.
  42. Zizhao Wu, Ruyang Shou, Yunhai Wang, and Xinguo Liu. Interactive shape co-segmentation via label propagation. Computers & Graphics, 38:248–254, 2014.
  43. Zhirong Wu, Shuran Song, Aditya Khosla, Fisher Yu, Linguang Zhang, Xiaoou Tang, and Jianxiong Xiao. 3d shapenets: A deep representation for volumetric shapes. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1912–1920, 2015.
  44. Yifan Xu, Tianqi Fan, Mingye Xu, Long Zeng, and Yu Qiao. Spidercnn: Deep learning on point sets with parameterized convolutional filters. arXiv preprint arXiv:1803.11527, 2018.
  45. Li Yi, Hao Su, Xingwen Guo, and Leonidas Guibas. Syncspeccnn: Synchronized spectral cnn for 3d shape segmentation. In Computer Vision and Pattern Recognition (CVPR), 2017.
  46. Tinghui Zhou, Matthew Brown, Noah Snavely, and David G Lowe. Unsupervised learning of depth and ego-motion from video. In CVPR, volume 2, page 7, 2017.
  47. Yin Zhou and Oncel Tuzel. Voxelnet: End-to-end learning for point cloud based 3d object detection. arXiv preprint arXiv:1711.06396, 2017.

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据