[3D点云卷积]PointConv论文

转载请注明作者和出处: http://blog.csdn.net/john_bh/

论文链接:PointConv: Deep Convolutional Networks on 3D Point Clouds
作者及团队:Zhengxia Zou & Zhenwei Shi & Yuhong Guo & Jieping Ye
会议及时间: CVPR 2019
code:github:https://github.com/DylanWusee/pointconv

文章目录

    • Abstract
    • 1.Introduction
    • 2. Related Work
    • 3. PointConv
      • 3.1. Convolution on 3D Point Clouds
      • 3.2. Feature Propagation Using Deconvolution
    • 4. Efficient PointConv
    • 5. Experiments
      • 5.1. Classification on ModelNet40
      • 5.2. ShapeNet Part Segmentation
      • 5.3. Semantic Scene Labeling
      • 5.4. Classification on CIFAR10
    • 6. Ablation Experiments and Visualizations
      • 6.1. The Structure of MLP
      • 6.2. Inverse Density Scale
      • 6.3. Ablation Studies on ScanNet
      • 6.4. Visualization
    • 7.Conclusion

Abstract

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

1.Introduction

在最近的机器人技术,自动驾驶和虚拟/增强现实应用中,可以直接获取3D数据的传感器越来越普及。其中包括激光扫描仪等室内传感器,Kinect,RealSense或Google Tango等飞行时间传感器,iPhoneX上的结构光传感器以及LIDAR和MEMS传感器等室外传感器。在这些应用中,直接测量3D数据非常有价值,因为深度信息可以消除2D图像中的许多分割模糊性,而表面法线提供了场景几何的重要线索。

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

在本文中,我们提出了一种在非均匀采样下对3D点云进行卷积的新颖方法,我们注意到卷积运算可以看作是连续卷积算子的离散逼近。在3D空间中,我们可以处理权重该卷积算符是局部3D点坐标相对于参考3D点的(Lipschitz)连续函数。该连续函数可以用多层感知器(MLP)近似,如[33]和[16]所述。 。但是这些算法并没有考虑非均匀采样的问题,我们建议使用反密度标度对MLP学习的连续函数进行加权,这与连续卷积的蒙特卡洛近似相对应,我们称这种操作为PointConv 。 PointConv涉及将点云的位置作为输入并学习MLP以近似权重函数,并对学习的权重应用反密度标度以补偿非均匀采样。
当输出功能的通道大小非常大时,PointConv的简单实现会导致内存效率低下,因此难以训练和扩展到大型网络。为了减少PointConv的内存消耗,我们介绍了一种能够大大减少PointConv的内存消耗的方法。使用更改总和顺序的重新设计来提高存储效率。这种新结构能够在3D点云上构建多层深度卷积网络,该网络具有与光栅图像上2D CNN相似的功能。我们可以实现与2D卷积网络中相同的平移不变性,以及点云中点顺序的置换不变性。

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

  • 我们提出了PointConv,一种密度重新加权的卷积,它可以完全逼近任何3D点集上的3D连续卷积。
  • 我们设计了一种内存有效的方法,通过更改求和顺序技术来实现PointConv,最重要的是,它可以扩展到现代CNN级别。
  • 我们将PointConv扩展到反卷积版本(PointDeconv),以获得更好的分割结果。

实验表明,我们基于Point-Conv构建的深层网络与其他点云深层网络相比具有很高的竞争力,并且在部分分割[2]和室内语义分割基准[5]中取得了最新的成果。为了证明PointConv确实是真正的卷积运算,我们还通过将2D图像中的所有像素转换为CIFAR-10来评估PointConv。具有2D坐标的点云以及每个点的RGB特征。在CIFAR-10上进行的实验表明,我们的PointConv的分类准确度可与相似结构的图像CNN媲美,远胜过以前通过点云网络获得的最佳结果。作为在3D数据上使用CNN的基本方法,我们认为PointConv可能有许多潜在的应用。

2. Related Work

3D CNN网络上的大多数工作都将3D点云转换为2D图像或3D体积网格。 [36,27]提出将3D点云或形状投影到多个2D图像中,然后将2D卷积网络用于分类。尽管这些方法在形状分类和检索任务上都取得了显著成绩,但将它们扩展到高分辨率场景分割任务[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]提出使用共享的多层感知器和最大池化层来获取点云的特征。由于最大池化层应用于点云中的所有点,因此很难捕获局部特征。 PointNet ++ [28]通过添加层次结构来改进PointNet [26]中的网络。分层结构类似于图像CNN中使用的那种结构,该结构从小局部区域开始提取特征,然后逐渐扩展到较大区域。 PointNet [26]和PointNet ++ [28]中用于聚合不同点的要素的关键结构是最大池。但是,最大池化层仅在局部或全局区域中的要素上保留最强的激活,这可能会丢失一些有用的细分任务详细信息。 [35]提出了一种方法,将点云的输入特征投影到高维格上,然后在高维格上应用双边卷积以聚合特征,这称为“ SPLATNet”。 SPLATNet [35]能够提供与PointNet ++ [28]相当的结果。切线卷积[37]将局部表面几何形状投影在围绕每个点的切线平面上,从而提供了一组可平面卷积的切线图像。逐点卷积[13]动态查询最近的邻居,并将这些点合并到核单元中,然后对合并的单元应用核权重以在点云上卷积。 Flex-convolution [9]引入了常规卷积层的概括以及有效的GPU实现,可以将其应用于具有数百万个点的点云。 FeaSt-Net [39]提出通过添加软分配矩阵将常规卷积层推广到3D点云。PointCNN[21]是从输入点学习-变换,然后用它同时加权和置换输入与我们的方法相比,PointCNN无法实现排列不变性,这是点云所需要的。

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

3. PointConv

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

3.1. Convolution on 3D Point Clouds

形式上,对于d维向量x的函数f(x)和g(x),如等式(1)中定义卷积。
在这里插入图片描述
图像可以解释为2D离散函数,通常表示为网格状矩阵。在CNN中,每个滤镜都限于一个小的局部区域,例如3×3、5×5等。在每个局部区域内,不同像素之间的相对位置始终是固定的,如图1(a)所示。而且,对于局部区域内的每个位置,可以轻松地将滤波器离散化为一个具有实际值权重的总和。
[3D点云卷积]PointConv论文_第1张图片

点云表示为一组3D点 { p i ∣ i = 1 , . . . , n } \{p_i | i = 1,...,n\} {pii=1...n},其中每个点都包含位置矢量 ( x , y , z ) (x,y,z) xyz及其特征,例如颜色,表面法线等。与图像不同,点云具有更灵活的形状。点云中某个点的坐标 p = ( x , y , z ) ∈ R 3 p =(x,y,z)\in R^3 p=xyzR3不在固定网格上,而是可以采用任意连续值。因此,每个局部区域中不同点的相对位置是不同的。栅格图像上的常规离散卷积滤镜无法直接应用于点云。图1显示了图像中的局部区域和点云之间的差异。

为了使卷积与点集兼容,我们提出了一种排列不变的卷积运算,称为PointConv。我们的想法是首先回到3D卷积的连续版本:
[3D点云卷积]PointConv论文_第2张图片
其中 F ( x + δ x , y + δ y , z + δ z ) F(x + \delta x,y + \delta y,z + \delta z) Fx+δxy+δyz+δz是局部区域 G G G中以点 p = ( x , y , z ) p =(x,y,z) p=xyz为中心的点的特征。 点云可以看作是来自连续 R 3 R^3 R3空间的非均匀样本。 在每个局部区域中, ( δ x , δ y , δ z ) (\delta x,\delta y,\delta z) δxδyδz可以是局部区域中的任何可能位置。 我们将PointConv定义如下:
[3D点云卷积]PointConv论文_第3张图片
其中 S ( δ x , δ y , δ z ) S(\delta x,\delta y,\delta z) Sδxδyδz是点 ( δ x , δ y , δ z ) (\delta x,\delta y,\delta z) δxδyδz的反密度。 S ( δ x , δ y , δ z ) S(\delta x,\delta y,\delta z) Sδxδyδz是必需的,因为可以非常不均匀地对点云进行采样1。直观地,局部点的数量在整个点云中变化,如图2(b)和(c)所示。此外,在图2(c)中,点 p 3 , p 5 , p 6 , p 7 , p 8 , p 9 , p 1 0 p_3,p_5,p_6,p_7,p_8,p_9,p_10 p3p5p6p7p8p9p10彼此非常接近,因此每个点的贡献应较小。
[3D点云卷积]PointConv论文_第4张图片
我们的主要思想是通过多层感知器根据3D坐标 ( δ x , δ y , δ z ) (\delta x,\delta y,\delta z) δxδyδz近似权重函数 W ( δ x , δ y , δ z ) W(\delta x,\delta y,\delta z) Wδxδyδz,通过核密度近似计算逆密度 S ( δ x , δ y , δ z ) S(\delta x,\delta y,\delta z) Sδxδyδz估计[38],然后是使用MLP实现的非线性变换。

PointConv中MLP的权重在所有点之间共享,以保持排列不变性。要计算反密度标度 S ( δ x , δ y , δ z ) S(\delta x,\delta y,\delta z) Sδxδyδz,我们首先估算一个点中每个点的密度使用内核密度估计(KDE)将云离线,然后将密度输入MLP以进行一维非线性变换。使用非线性变换的原因是网络可以自适应地决定是否使用密度估计。
[3D点云卷积]PointConv论文_第5张图片
图3显示了在 K K K点局部区域上的PointConv操作。设 C i n , C o u t C_{in},C_{out} CinCout为输入要素和输出要素的通道数, k , c i n , c o u t k,c_{in},c_{out} kcincout为第 k k k个邻域的索引,第 c i n c_{in} cin个通道为输入要素和第 c o u t c_{out} cout个通道为输出要素。输入是点 P l o c a l ∈ R K × 3 P_{local}\in R^{K×3} PlocalRK×3的3D局部位置,可以通过减去局部区域的质心坐标和局部区域的特征 F i n ∈ R K × C i n F_{in}\in R^{K×C_{in}} FinRK×Cin来计算。我们使用1×1卷积实现MLP,权重函数的输出为 W ∈ R K × ( C i n × C o u t ) W\in R^{K×(C_{in}×C_{out})} WRK×Cin×Cout,因此 W ( k , c i n ) ∈ R C o u t W(k,c_{in})\in R^{C_{out}} WkcinRCout是一个向量。密度标度为 S ∈ R K S\in R^K SRK。卷积后,来自具有 K K K个相邻点的局部区域的特征 F i n F_{in} Fin被编码为输出特征 F o u t ∈ R C o u t F_{out}\in R^{C_{out}} FoutRCout,如式(4)所示。
在这里插入图片描述
PointConv学习一个网络来估计卷积的连续权重。对于每个输入点,我们可以使用MLP的相对坐标从MLP计算权重。图2(a)显示了用于卷积的示例连续权重函数。将点云输入作为连续输入的离散化,可以由图2(b)计算离散卷积以提取局部特征,该局部特征对于不同的点云样本(图2)可能有效(近似精度不同) (bd)),包括规则网格(图2(d))。请注意,在光栅图像中,局部区域的相对位置是固定的,然后PointConv(仅将相对位置作为权重函数的输入)将在整个图像上输出相同的权重和密度,从而减少到传统的离散化卷积。

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

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

3.2. Feature Propagation Using Deconvolution

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

如图4所示,PointDeconv由两部分组成:插值和PointConv。首先,我们采用插值法传播来自上一层的粗略特征。继[28]之后,通过线性插值来自3个最近点的要素进行插值。然后,使用跳过链接将内插特征与来自具有相同分辨率的卷积层中的特征连接起来。连接后,我们对连接的特征应用Point-Conv以获得最终的去卷积输出,类似于图像去卷积层[24]。我们应用此过程,直到所有输入点的特征都传播回原始分辨率为止。
[3D点云卷积]PointConv论文_第6张图片

4. Efficient PointConv

PointConv的简单实现很消耗内存并且效率低下。与[33]不同,我们提出了一种新颖的重新定义形式,通过将PointConv简化为两个标准运算来实现:矩阵乘法和2d卷积。这个新颖的技巧不仅可以利用GPU的并行计算优势,而且可以使用主流深度学习框架轻松实现。由于逆密度尺度不存在此类内存问题,因此以下讨论主要针对权重函数。

具体而言,令 B B B为训练阶段的小批量大小, N N N为点云中的点数, K K K为每个局部区域中的点数, C i n C_{in} Cin为输入通道数, C o u t C_{out} Cout为数输出通道数。对于点云,每个局部区域共享相同的权重函数,可以使用MLP进行学习,但是从不同点的权重函数计算得出的权重不同。 MLP生成的权重过滤器的大小为 B × N × K × ( C i n × C o u t ) B×N×K×(C_{in}×C_{out}) B×N×K×Cin×Cout。假设 B = 32 , N = 512 , K = 32 , C i n = 64 , C o u t = 64 B = 32,N = 512,K = 32,C_{in} = 64,C_{out} = 64 B=32N=512K=32Cin=64Cout=64,并且滤波器以单点精度存储。然后,过滤器的内存大小仅为一层,为8GB,因此如此高的内存消耗将很难训练网络。 [33]使用非常小的网络,几乎没有过滤器,这会严重降低其性能。若要解决此问题,我们建议基于以下引理的PointConv的内存有效版本:
引理1 PointConv等效于以下公式: F o u t = C o n v 1 × 1 ( H , ( S ⋅ F i n ) T ⊗ M ) F_{out} = Conv_{1×1}(H,(S·F_{in})^{T}\otimes M) Fout=Conv1×1(HSFin)TM其中 M ∈ R K × C m i d M\in R^{K×C_{mid}} MRK×Cmid是MLP中用于计算权重函数的最后一层的输入,而 H ∈ R C m i d × ( C i n × C o u t ) H \in R^{C_{mid}×(C_{in}×C_{out}}) HRCmid×Cin×Cout是同一MLP中最后一层的权重, C o n v 1 × 1 Conv_{1×1} Conv1×1是1×1卷积。

证明:通常,MLP的最后一层是线性层。在一个局部区域中,令 F i n ~ = S ⋅ F i n ∈ R K × C i n \tilde {F_{in}} = S·F_{in} \in R^{K×C_{in}} Fin~=SFinRK×Cin并将MLP重写为1×1卷积,从而权重函数的输出为 W = C o n v 1 × 1 ( H , M ) ∈ R K × ( C i n × C o u t ) W = Conv_{1×1}(H,M)\in R^{K×(C_{in}×C_{out}}) W=Conv1×1HMRK×Cin×Cout。令 k k k为局部区域中的点的索引,并且 c i n , c m i d , c o u t c_{in},c_{mid},c_{out} cincmidcout分别为输入,中间层和过滤器输出的索引。那么 W ( k , c i n ) ∈ R C o u t W(k,c_{in})\in R^{C_{out}} WkcinRCout是来自W的向量,而 H ( c m i d , c i n ) ∈ R C o u t H(c_{mid},c_{in})\in R^{C_{out}} HcmidcinRCout是来自 H H H的向量。根据等式(4),PointConv可以用等式(5)表示。
[3D点云卷积]PointConv论文_第7张图片
让我们更详细地探讨方程式(5)。权重函数的输出可以表示为:
[3D点云卷积]PointConv论文_第8张图片
因此,原始PointConv可以等效地简化为矩阵乘法和1×1卷积。图5显示了PointConv的高效版本。
[3D点云卷积]PointConv论文_第9张图片
在这种方法中,我们将权重过滤器分为两部分:中间结果M和卷积内核H.而不是将生成的过滤器存储在内存中,如我们所见,内存消耗减少到原始版本的 C m i d K × C o u t \frac{C_{mid}}{K×C_{out}} K×CoutCmid。使用与图3相同的输入设置,并让 C m i d = 32 C_{mid} = 32 Cmid=32,则内存消耗为0.1255GB,约为原始PointConv的1/64。

5. Experiments

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

5.1. Classification on ModelNet40

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

5.2. ShapeNet Part Segmentation

[3D点云卷积]PointConv论文_第11张图片
零件分割是一项具有挑战性的细粒度3D识别任务。 ShapeNet数据集包含来自16个类别的50个零件的16,881个形状。任务的输入是由点云表示的形状,目标是为点云中的每个点分配零件类别标签,并给出每种形状的类别标签。我们在大多数相关工作中遵循实验设置[28,35,44,18]。通常,通过使用已知的输入3D对象类别将可能的零件标签缩小到特定于给定对象类别的部分标签。并且我们还将每个点的法线方向计算为输入特征,以更好地描述基础形状。图6可视化了一些示例结果。
[3D点云卷积]PointConv论文_第12张图片
我们使用点交叉点联合(IoU)来评估我们的PointConv网络,与PointNet ++ [28],SPLATNet [35]和其他一些部分分割算法[45、18、44、7]相同。结果显示在表2中。Point-Conv获得的类平均mIoU为82.8%,实例平均mIoU为85.7%,与仅将点云作为输入的最新算法相提并论。根据[35],SPLATNet2D-3D还采用了渲染的2D视图作为输入。由于我们的PointConv只接受3D点云作为输入,为了公平比较,我们只将我们的结果与[35]中的SPLATNet3D进行比较。

5.3. Semantic Scene Labeling

诸如ModelNet40 [43]和ShapeNet [2]之类的数据集是人造的合成数据集。正如我们在上一节中看到的那样,大多数最新算法都能在此类数据集上获得相对较好的结果。为了评估我们的方法处理包含大量噪声数据的现实点云的能力,我们使用ScanNet数据集评估了基于语义场景分割的PointConv。任务是在给定由点云表示的室内场景的情况下,预测每个3D点上的语义对象标签。 ScanNet的最新版本[5]包含所有1513个ScanNet扫描和100个新测试扫描的更新注释,其中所有语义标签均不公开,我们将结果提交给官方评估服务器以与其他方法进行比较。
[3D点云卷积]PointConv论文_第13张图片
我们将算法与Tangent卷积[37],SPLAT Net [35],PointNet ++ [28]和ScanNet [5]进行了比较。所有提到的算法均在新的ScanNet数据集上将其结果报告给基准,并且仅输入算法使用3D坐标数据加上RGB。在我们的实验中,我们通过从室内房间随机采样3m×1.5m×1.5m立方体来生成训练样本,并在整个扫描过程中使用滑动窗口进行评估。我们将结合交会(IoU)报告为主要措施,这是与基准相同。我们在图7中可视化了一些示例性的语义分割结果。表3中列出了mIoU。mIoU是所有类别中IoU的平均值。我们的PointConv大大优于其他算法(表3)。 PointConv在一台GTX1080Ti上在Scan-Net上训练一个纪元的总运行时间约为170s,而8×8192点的评估时间约为0.5s。
[3D点云卷积]PointConv论文_第14张图片

5.4. Classification on CIFAR10

在第3.1节中,我们声称PointConv可以与2D CNN等效。 如果是这样,则基于PointConv的网络的性能应等同于光栅图像CNN的性能。 为了验证这一点,我们使用CIFAR-10数据集作为比较基准。 我们将CIFAR-10中的每个像素视为具有 x y xy xy坐标和RGB特征的2D点。 在训练和测试之前,将点云缩放到单位球上。
[3D点云卷积]PointConv论文_第15张图片
实验表明,CIFAR-10上的PointConv实际上具有与2D CNN相同的学习能力。 表4显示了图像卷积和Point-Conv的结果。 从表中可以看出,在CIFAR-10上PointCNN [21]的准确度仅为80.22%,远低于图像CNN。 但是,对于5层网络,使用PointConv的网络可以达到89.13%,与使用图像卷积的网络相似。而且,具有VGG19 [34]结构的PointConv与VGG19相比也可以达到同等精度。

6. Ablation Experiments and Visualizations

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

6.1. The Structure of MLP

在本节中,我们设计实验以评估PointConv中MLP参数的选择。 为了快速评估,我们从ScanNet数据集中生成一个子集作为分类任务。 该子集中的每个示例均从原始场景扫描中随机抽取1,024个点进行采样.ScanNet数据集有20种不同的场景类型。根据经验,我们遍历了不同的 C m i d C_{mid} Cmid选择和PointConv中不同数量的MLP层。 每个实验进行了3次随机试验,结果可在补充中找到。 从结果可以看出,较大的 C m i d C_{mid} Cmid不一定提供更好的分类结果,而MLP中不同的层数在分类结果中并没有太大差异。 由于 C m i d C_{mid} Cmid与每个PointConv层的内存消耗呈线性关系,因此该结果表明,我们可以选择一个较小的 C m i d C_{mid} Cmid以提高内存效率。

6.2. Inverse Density Scale

在本节中,我们研究密度反比S的有效性。我们选择ScanNet作为评估任务,因为ScanNet中的点云是从真实的室内场景生成的。我们遵循作者提供的标准培训/验证拆分。我们分别在Sec3.1中描述了在有和没有逆密度标度的情况下训练网络。表5示出了结果。如我们所见,具有逆密度标度的PointConv的性能比不具有逆密度标度的PointConv的性能好大约1%,这证明了逆密度标度的有效性。在我们的实验中,我们观察到反密度标度在靠近输入的层中趋于更有效。在深层,MLP倾向于学会减少密度标度的影响。一个可能的原因是,使用最远的点采样算法作为我们的子采样算法,更深层的点云倾向于更均匀地分布。如表5所示,与ScanNet数据集上没有密度的方法相比,不使用非线性变换直接应用密度的结果较差,这表明非线性变换能够学习数据集中的逆密度标度。
[3D点云卷积]PointConv论文_第16张图片

6.3. Ablation Studies on ScanNet

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

6.4. Visualization

图8展示了我们PointConv中从MLP中学到的过滤器。 为了更好地可视化过滤器,我们通过平面z = 0对学习的函数进行采样。从图8中,我们可以看到学习的连续过滤器中的一些模式。
[3D点云卷积]PointConv论文_第17张图片

7.Conclusion

在这项工作中,我们提出了一种在3D点云上执行卷积运算的新颖方法,称为PointConv。 PointConv在局部点坐标上训练多层感知器,以在卷积滤波器中近似连续的权重和密度函数,这使其自然地具有排列不变和平移不变的特性,这允许直接在3D点云上构建深度卷积网络。 我们提出了一种有效的实现方式,极大地提高了其可伸缩性。 我们在多个具有挑战性的基准上展示了其强大的性能,并具有与2D图像中基于网格的卷积网络的性能相匹配的功能。 在以后的工作中,我们希望使用PointConv(例如ResNet和DenseNet)将更多主流图像卷积网络体系结构引入点云数据中。 可以在这里找到代码:https://github.com/DylanWusee/pointconv

你可能感兴趣的:(3D,点云)