【论文阅读】3D点云 -- PointConv: Deep Convolutional Networks on 3D Point Clouds

Abstract

与在规则密集网格中表示的图像不同,三维点云是不规则和无序的,因此对其应用卷积可能很困难。
在本文中,我们将动态卷积扩展到一种新的卷积运算,名为PointConv。PointConv可以应用于点云,以构建深度卷积网络。

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

1 Introduction

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

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

我们工作的贡献是:逆密度、反卷积、高效的卷积结构,全文都在讲述这三部分的内容)

  • 提出PointConv,一种密度重加权卷积,它能够完全逼近任何3D点集上的3D连续卷积。
    PointConv包括将点云的位置作为输入,通过MLP的学习以近似得到权重函数,以及在学习的权重上应用逆密度标度 以补偿非均匀采样。(针对点云的非均匀采样的特性)
  • 设计了一种内存高效的方法,使用改变了求和顺序的技术实现PointConv,最重要的是,允许它扩展到现代CNN水平。
    当输出特性的通道大小非常大,因此难以训练和扩展到大型网络时,PointConv的简单实现是内存效率低下的。为了减少PointConv的内存消耗,我们引入了一种方法,该方法通过改变求和顺序来大大提高内存效率。新结构能够在3D点云上构建多层深卷积网络,其功能与光栅图像上的2D CNN类似。我们可以实现与二维卷积网络中相同的平移不变性,以及点云中点排序的置换不变性。
  • 将PointConv扩展到反卷积版本(PointDeconv),以获得更好的分割结果。
    在分割任务中,将信息从粗层逐渐传输到细层的能力非常重要。因此,能够充分利用从粗层到细层的特征的反卷积操作[24]对性能至关重要。大多数最先进的算法[26,28]无法执行反卷积,这限制了它们在分割任务中的性能。由于我们的PointConv是卷积的完全近似值,因此将PointConv扩展到PointDeconv是很自然的,它可以完全解开粗层中的信息,并传播到更细的层。通过使用PointConv和PointDeconv,我们可以在语义分割任务上获得更好的性能。

2 . Related Work

略(该段无重要信息)

3 PointConv

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


3.1. 三维点云的卷积(具有逆密度的卷积)

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

2D图像上的卷积
形式上,卷积定义为d维向量x的函数 f(x) 和g (x) 的式(1)。
( f ∗ g ) ( x ) = ∫ ∫ τ ∈ R d f ( τ ) g ( x + τ ) d τ           ( 1 ) (f*g)(x)=\underset{\tau \in \mathbb{R}^d}{\int \int }f(\tau )g(x+\tau )d\tau \,\,\,\,\,\,\,\,\,(1) (fg)(x)=τRdf(τ)g(x+τ)dτ(1)图像可以解释为二维离散函数,通常表示为网格状矩阵。在CNN中,每个滤波器被限制在一个小的局部区域,如3×3、5×5等。在每个局部区域内,不同像素之间的相对位置总是固定的,如图1(a)所示。并且该滤波器可以容易地离散为局部区域内每个位置具有实值权重的求和。

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

PointConv的提出
为了使卷积与点集兼容,我们提出了一种置换不变卷积运算,称为PointConv。

  • 【3D卷积的连续版本】
    我们的想法是首先回到3D卷积的连续版本,如下所示: C o n v ( W , F ) x y z = ∫ ∫ ∫ ( δ x , δ y , δ z ) ∈ G W ( δ x , δ y , δ z ) F ( x + δ x , y + δ y , z + δ z ) d δ x δ y δ z        ( 2 ) Conv(W,F)_{xyz}=\underset{(\delta _x,\delta _y,\delta _z)\in G}{\int \int \int }W(\delta _x,\delta _y,\delta _z)F(x+\delta _x,y+\delta _y,z+\delta _z)d\delta _x \delta _y \delta _z\,\,\,\,\,\,(2) Conv(W,F)xyz=(δx,δy,δz)GW(δx,δy,δz)F(x+δx,y+δy,z+δz)dδxδyδz(2)其中 F ( x + δ x , y + δ y , z + δ z ) F(x+δ_x,y+δ_y,z+δ_z) F(x+δx,y+δy,z+δz) 是局部区域G中以点 p = ( x , y , z ) p=(x,y,z) p=(x,y,z) 为中心的点的特征。

  • 【PointConv公式】
    可以将点云视为来自连续 R 3 \mathbb{R}^3 R3 空间的非均匀样本。在每个局部区域中, ( δ x , δ y , δ z ) (\delta _x,\delta _y,\delta _z) (δx,δy,δz) 可以是局部区域中的任何可能位置。我们将PointConv定义如下: P o i n t C o n v ( S , W , F ) x y z = ∑ ( δ x , δ y , δ z ) ∈ G S ( δ x , δ y , δ z ) W ( δ x , δ y , δ z ) F ( x + δ x , y + δ y , z + δ z )        ( 3 ) PointConv(S,W,F)_{xyz}=\underset{(\delta _x,\delta _y,\delta _z)\in G}{\sum }S(\delta _x,\delta _y,\delta _z)W(\delta _x,\delta _y,\delta _z)F(x+\delta _x,y+\delta _y,z+\delta _z)\,\,\,\,\,\,(3) PointConv(S,W,F)xyz=(δx,δy,δz)GS(δx,δy,δz)W(δx,δy,δz)F(x+δx,y+δy,z+δz)(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) ,是因为点云可以非常不均匀地采样。直观地说,局部区域中的点的数量在整个点云中有所不同,如图2(b)和2( c)所示。此外,在图2( c)中,点 p 3 p_3 p3 p 5 p_5 p5 p 6 p_6 p6 p 7 p_7 p7 p 8 p_8 p8 p 9 p_9 p9 p 10 p_{10} p10彼此非常接近,因此每个点的贡献应该较小。
    在这里插入图片描述
    图2. PointConv的2D权重函数。(a) 是一个学习的连续权函数;(b) 和©是二维点云中的不同局部区域。给定2d点,我们可以获得特定位置的权重。这同样适用于三维点。规则离散二维卷积可以看作是连续卷积权函数的离散化,如(d)所示。

    【PointConv主要思想】
    我们的主要思想是用多层感知器从三维坐标 ( δ 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);通过核化密度估计[38],然后通过MLP实现非线性变换,求出逆密度 S ( δ x , δ y , δ z ) S(\delta _x,\delta _y,\delta _z) S(δx,δy,δz)。由于权重函数高度依赖于输入点云的分布,我们称整个卷积运算为PointConv。〔16, 33〕考虑了加权函数的逼近,但没有考虑密度尺度的逼近,因此不是连续卷积算子的完全逼近。我们对密度的非线性变换也不同于[12]。

    • PointConv中MLP的权重在所有点之间共享,以保持置换不变性。
    • 为了计算逆密度标度 S ( δ x , δ y , δ z ) S(\delta _x,\delta _y,\delta _z) S(δx,δy,δz) ,我们首先使用核密度估计(KDE)离线估计点云中每个点的密度,然后将密度馈入MLP进行一维非线性变换。使用非线性变换的原因是网络自适应地决定是否使用密度估计。

在这里插入图片描述
图3. PointConv。(a) 显示局部区域,点的坐标从全局坐标转换为局部坐标,p为点的坐标,f为相应的特征;(b)显示在围绕一个点 ( p 0 , f 0 ) (p0,f0) (p0,f0) 的一个局部区域上执行PointConv的过程。输入特征来自以 ( p 0 , f 0 ) (p0,f0) (p0,f0) 为中心的K个最近邻,输出特征位于p0处。

图3显示了K点局部区域上的PointConv操作。
【参数设置】 C i n C_{in} Cin C o u t C_{out} Cout 是输入特征和输出特征的通道数, k k k c i n c_{in} cin c o u t c_{out} cout是第k个邻居的索引, c i n c_{in} cin-th通道是输入特征, c o u t c_{out} cout-th通道是输出特征。
【输入信息】 输入是点 P l o c a l ∈ R K ∗ 3 P_{local}∈ \mathbb{R}^{K*3} PlocalRK3 的3D局部位置,可通过减去局部区域质心和特征的坐标,特征 F i n ∈ R K ∗ C i n F_{in}∈ \mathbb{R}^{K*C_{in}} FinRKCin
【权重 W】 我们使用1×1卷积来实现MLP。权重函数的输出为 W ∈ R K ∗ ( C i n ∗ C o u t ) W∈ \mathbb{R}^{K*(C_{in}*C_{out})} WRK(CinCout)。所以, W ( k , c i n ) ∈ R C o u t W(k,c_{in})∈\mathbb{R}^{C_{out}} W(k,cin)RCout是一个向量。
【密度 S】 密度大小为 S ∈ R K S∈\mathbb{R}^K SRK
【输出公式】在卷积之后,来自具有K个相邻点的局部区域的特征 F i n F_{in} Fin 被编码到输出特征 F o u t ∈ R C o u t F_{out}∈ \mathbb{R}^{Cout} FoutRCout,如式(4)所示。 F o u t = ∑ k = 1 K ∑ c i n = 1 C i n S ( k ) W ( k , c i n ) F i n ( k , c i n )           ( 4 ) F_{out}=\overset{K}{\underset{k=1}{\sum }}\overset{C_{in}}{\underset{c_{in}=1}{\sum}}S(k)W(k,c_{in})F_{in}(k,c_{in})\,\,\,\,\,\,\,\,\,(4) Fout=k=1Kcin=1CinS(k)W(k,cin)Fin(k,cin)(4)

为了聚集整个点集中的特征,我们使用了一种层次结构,能够将详细的小区域特征组合成覆盖更大空间范围的抽象特征。我们使用的层次结构由几个特征编码模块组成,这与PointNet++中使用的模块类似[28]。每个模块大致相当于卷积CNN中的一层。每个特征编码模块的关键层是采样层、分组层和PointConv。这种方法的缺点是,每个滤波器都需要由网络近似,因此效率非常低。
在第4节中,我们提出了一种实现PointConv的有效方法。


3.2. 基于反卷积的特征传播

在这里插入图片描述
图4. 特征编码和传播。此图显示了如何在网络中为m类分段任务编码和传播特征。n是每层中的点数,c是特征的通道大小。最好是彩色的。

对于分割任务,我们需要逐点预测。为了获得所有输入点的特征,需要一种将特征从子采样点云传播到更密集点云的方法。
如图4所示,PointDeconv由两部分组成:插值和PointConv。

  • 【插值】PointNet++[28]建议使用基于距离的插值来传播特征,这是合理的,因为局部区域内存在局部相关性。
    我们使用插值来传播前一层的粗糙特征。遵从[28],通过从3个最近点线性插值特征来进行插值。
  • 【PointDeconv】然而,这并没有充分利用反卷积操作,反卷积操作从粗略级别捕获传播信息的局部相关性。我们建议在PointConv的基础上添加一个PointDeconv层,作为解决此问题的反卷积操作。
    使用跳过链接将插值特征与来自具有相同分辨率的卷积层的特征连接起来。拼接后,我们在拼接的特征上应用PointConv以获得最终的反卷积输出,类似于图像反卷积层[24]。我们应用此过程,直到所有输入点的特征都传播回原始分辨率。

补充:这里我看了下 point++和pointconv 的源码。发现都存在concat的操作
point++:插值、concat、MLP
pointconv:插值、采样+逆密度+conv、concat、MLP

4 高效的 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,Cin=64,Cout=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·Fin)T⊗ M) Fout=Conv1×1(H(SFin)TM) M ∈ R K × C m i d M∈ \mathbb{R}^{K×C_{mid}} MRK×Cmid是MLP中最后一层的输入,用于计算权重函数,
    H ∈ R C m i d × ( C i n × C o u t ) H∈ R^{C_{mid}×(C_{in}×C_{out})} HRCmid×(Cin×Cout) 是同一MLP中最后一层的权重,Conv1×1是1×1卷积。

    F i n ∈ R K F_{in}∈\mathbb{R}^K FinRK具有K个相邻点的局部区域的特征
    S ∈ R K S∈\mathbb{R}^K SRK ​密度大小

  • 证明 通常,MLP的最后一层是线性层。在一个局部区域中,设 F ~ i n = S ⋅ F i n ∈ R K × C i n \tilde {F}_{in}=S·F_{in}∈ \mathbb{R}^{K×C_{in}} F~in=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)∈\mathbb{R}^{K×(C_{in}×C_{out})} W=Conv1×1(H,M)RK×(Cin×Cout)。设k是局部区域中点的索引, c i n c_{in} cin c m i d c_{mid} cmid c o u t c_{out} cout分别是输入、中间层和滤波器输出的索引。 W W W 中的一个向量 W ( k , c i n ) ∈ R C o u t W(k,cin)∈ R^{C_{out}} W(k,cin)RCout H H H 中的一个向量 H ( c m i d , c i n ) ∈ R C o u t H(c_{mid},c_{in})∈ \mathbb{R}^{C_{out}} H(cmid,cin)RCout 。根据式(4) F o u t = ∑ k = 1 K ∑ c i n = 1 C i n S ( k ) W ( k , c i n ) F i n ( k , c i n )           ( 4 ) F_{out}=\overset{K}{\underset{k=1}{\sum }}\overset{C_{in}}{\underset{c_{in}=1}{\sum}}S(k)W(k,c_{in})F_{in}(k,c_{in})\,\,\,\,\,\,\,\,\,(4) Fout=k=1Kcin=1CinS(k)W(k,cin)Fin(k,cin)(4),PointConv可以用式(5)表示。 F o u t = ∑ k = 0 K − 1 ∑ c i n = 0 C i n − 1 ( W ( k , c i n ) F ~ i n ( k , c i n ) )           ( 5 ) F_{out}=\overset{K-1}{\underset{k=0}{\sum }}\overset{C_{in}-1}{\underset{c_{in}=0}{\sum}}(W(k,c_{in})\widetilde{F}_{in}(k,c_{in}))\,\,\,\,\,\,\,\,\,(5) Fout=k=0K1cin=0Cin1(W(k,cin)F in(k,cin))(5)等式(5)中,权重函数的输出可以表示为: W ( k , c i n ) = ∑ c m i d = 0 C m i d − 1 ( M ( k , c m i d ) H ( c m i d , c i n ) )           ( 6 ) W_{(k,c_{in})}=\overset{C_{mid}-1}{\underset{c_{mid}=0}{\sum }}(M(k,c_{mid})H(c_{mid,c_in}))\,\,\,\,\,\,\,\,\,(6) W(k,cin)=cmid=0Cmid1(M(k,cmid)H(cmid,cin))(6)将式(6)替换为式(5)。
    在这里插入图片描述

  • 因此,原始PointConv可以等价地简化为矩阵乘法和1×1卷积。下图5显示了PointConv的高效版本。
    在该方法中,我们不将生成的滤波器存储在内存中,而是将权重滤波器分为两部分:中间结果M和卷积核H。如我们所见,内存消耗降低到原始版本的 C m i d / ( K × C o u t ) C_{mid}/(K×C_{out}) Cmid/(K×Cout)。使用与图3相同的输入设置,让 C m i d = 32 C_{mid}=32 Cmid=32,内存消耗为0.1255GB,约为原始PointConv的1/64。
    在这里插入图片描述
    图5. 高效点conv。具有K个点的一个局部区域上的PointConv的内存有效版本。

5 . Experiments

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

  • 5.1 【Classification on ModelNet40
    【数据集】ModelNet40包含来自40个人造对象类别的12311个CAD模型。我们使用官方的分割,9843个形状用于训练,2468个形状用于测试。
    【数据处理】按照[26]中的配置,我们使用PointNet[26]的源代码对1024个点进行统一采样,并从网格模型计算法向量。
    【数据增强】为了进行公平比较,我们采用了与[26]相同的数据增强策略,沿z轴随机旋转点云,并通过均值为零、标准偏差为0.02的高斯噪声抖动每个点。
    【实验结果】在表1中,PointConv在基于3D输入的方法中实现了最先进的性能。ECC[33]与我们的方法类似,无法扩展到大型网络,这限制了它们的性能。
    在这里插入图片描述
  • 5.2 【ShapeNet Part Segmentation
    【任务介绍】零件分割是一项具有挑战性的细粒度三维识别任务。任务的输入是由点云表示的形状,目标是为点云中的每个点指定零件类别标签。
    【数据集】ShapeNet数据集包含16个类的16881个形状,共50个零件。给出了每个形状的类别标签。
    【数据设置】我们在大多数相关工作中遵循实验设置[28,35,44,18]。通常,通过使用已知的输入三维对象类别,将可能的零件标签缩小为特定于给定对象类别的标签。我们还计算每个点上的法线方向作为输入特征,以更好地描述底层形状。
    【实验结果】我们使用 IoU 来评估我们的PointConv网络,与PointNet++[28]、SPLATNet[35]和其他一些零件分割算法[45、18、44、7]相同。结果如表2所示。pointconv 获得了82.8%的类平均miou和85.7%的实例平均miou,这与仅以点云作为输入的最新算法相媲美。根据[35],SPLATNet2D−3D还将渲染的2D视图作为输入。由于我们的PointConv仅将3D点云作为输入,为了公平比较,我们仅将结果与[35]中的SPLATNet3D进行比较。
    在这里插入图片描述
  • 5.3 【语义场景标注
    【任务介绍】为了评估我们的方法处理包含大量噪声数据的真实点云的能力,我们使用ScanNet数据集评估了语义场景分割上的PointConv。该任务是预测由点云表示的室内场景中每个3D点上的语义对象标签。
    【数据集】ScanNet[5]的最新版本包括所有1513个ScanNet扫描和100个新的测试扫描的更新注释,所有语义标签都公开不可用,我们将结果提交给官方评估服务器,与其他方法进行比较。
    【实验对比】我们将我们的算法与切线卷积[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上的ScanNet上训练一个轮的总运行时间约为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的结果。(1)从表中可以看出,CIFAR-10上PointCNN[21]的准确率仅为80.22%,比图像CNN差得多。(2)然而,对于5层网络,使用PointConv的网络能够达到89.13%,这与使用图像卷积的网络类似。与VGG19(34)结构相比,PooToNCOV也能达到与VGG19相比的PAR精度。
    在这里插入图片描述

6 消融实验与可视化

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


6.1 MLP的结构

在本节中,我们设计实验来评估PointConv中MLP参数的选择。

  • 为了快速评估,我们从ScanNet数据集生成一个子集作为分类任务。
    子集中的每个示例都是从原始场景扫描中随机采样的,共有1024个点。ScanNet数据集有20种不同的场景类型。我们之所以使用ScanNet数据集的子集,是为了避免在过于简单的数据集(如ModelNet40)上拟合错误的参数。所选数据集是具有RGB信息的真实三维点云。由于问题足够复杂,我们可以想象参数对于具有类似复杂性的其他数据集来说足够好。
    我们根据经验在PointConv中扫描不同的 C m i d C_{mid} Cmid 选择和不同层数的MLP。每个实验进行3次随机试验。结果如图8所示。从结果中,我们发现较大的 C m i d C_{mid} 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,并通过不同步幅的xy平面以滑动窗口方式彻底选择3m×1.5m×1.5m立方体中的所有点来评估模型。为了稳健性,我们在所有实验中使用了5个窗口的多数票。从表5可以看出,较小的步幅能够改善分割结果,而ScanNet上的RGB信息似乎并没有显著改善分割结果。即使没有这些额外的改进,PointConv的性能仍然大大优于基线。


6.4 可视化

图9显示了在PointConv中从MLP学习到的过滤器。为了更好地可视化过滤器,我们通过平面z=0对学习函数进行采样。从图9中,我们可以看到学习的连续过滤器中的一些模式。
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值