Pointnet++中文翻译

                                 PointNet ++:度量空间中点集的深层次特征学习

摘要:以前很少有人研究点集的深度学习。 PointNet [20]是这方面的先驱。但是,根据设计,PointNet不会捕获由度量空间点所引发的局部结构,从而限制了识别细粒度模式的能力以及对复杂场景的普遍性。在这项工作中,我们引入了一个分层神经网络,它将PointNet递归地应用于输入点集的嵌套分区。通过利用度量空间距离,我们的网络能够通过增加上下文比例来学习局部特征。通过进一步观察,通常采用不同密度对点集进行采样,这导致对均匀密度训练的网络的性能大大降低,我们提出了新的集合学习层,以自适应地组合来自多个尺度的特征。实验表明,我们的网络PointNet ++能够高效,稳健地学习深度点集功能。特别是,在具有挑战性的3D点云基准测试中,结果明显优于现有技术

1.介绍

我们感兴趣的是分析几何点集,它是欧几里得空间中的点集合。 特别重要的几何点集类型是由3D扫描仪捕获的点云,例如来自适当配备的自动车辆。 作为一个集和,这些数据必须对其成员的排列不变。 此外,距离度量定义了可能表现出不同属性的局部邻域。 例如,点的密度和其他属性在不同位置可能不一致 - 在3D扫描中,密度变化可能来自透视效应,径向密度变化,运动等。

以前很少有人研究点集的深度学习。 PointNet [20]是一项直接处理点集的开创性工作。 PointNet的基本思想是学习每个点的空间编码,然后将所有单个点特征聚合到全局点云签名。 通过其设计,PointNet不能捕获由度量引起的局部结构。 然而,利用局部结构已证明对卷积体系结构的成功很重要。 CNN将在常规网格上定义的数据作为输入,并且能够沿着多分辨率层次以越来越大的尺度逐步捕获特征。 在较低水平,神经元具有较小的感受野,而在较高水平,它们具有较大的感受野。 沿着层次结构抽象局部模式的能力允许更好地概括到看不见的情况。

我们引入了一个名为PointNet ++的分层神经网络,以分层方式处理在度量空间中采样的一组点。 PointNet ++的一般概念很简单。 我们首先通过底层空间的距离度量将点集划分为重叠的局部区域。 与CNN类似,我们从小区域中提取捕捉精细几何结构的局部特征; 这些局部特征进一步分组为更大的单元并进行处理以产生更高级别的特征。 重复此过程,直到我们获得整个点集的特征。

PointNet ++的设计必须解决两个问题:如何生成点集的分区,以及如何通过本地特征学习器抽象点集或局部特征。 这两个问题是相关的,因为点集的分区必须跨分区产生公共结构,因此可以共享局部特征学习者的权重,如卷积设置。 我们选择我们的本地特色学习者为PointNet。 正如该工作所证明的那样,PointNet是一种有效的架构,用于处理语义特征提取的无序点集。 此外,该架构对输入数据损坏很稳健。 作为一个基本构建模块,PointNet将一组本地点或特征抽象为更高级别的表示。 在此视图中,PointNet ++以递归方式将PointNet应用于输入集的嵌套分区。

仍然存在的一个问题是如何生成点集的重叠分区。 每个分区被定义为底层欧几里德空间中的邻域球,其参数包括质心位置和比例。 为了均匀地覆盖整个集合,在通过最远点采样(FPS)算法设置的输入点中选择质心。 与使用固定步幅扫描空间的体积CNN相比,我们的本地感知域依赖于输入数据和度量,因此更有效和有效。

然而,由于特征尺度的纠缠和输入点集的不均匀性,确定局部邻域球的适当比例是更具挑战性但有趣的问题。 我们假设输入点集在不同区域可能具有可变密度,这在实际数据中非常常见,例如结构传感器扫描[18](参见图1)。 因此,我们的输入点集与CNN输入非常不同,CNN输入可以被视为在具有均匀恒定密度的常规网格上定义的数据。 在CNN中,本地分区比例的对应部分是内核的大小。 [25]表明使用较小的内核有助于提高CNN的能力。 然而,我们对点集数据的实验反驳这一规则。 由于采样不足,小邻域可能包含太少的点,这可能不足以允许PointNets强大地捕获模式。

我们论文的一个重要贡献是PointNet ++利用多个尺度的邻域来实现稳健性和细节捕获。 在训练期间辅助随机输入丢失,网络学习自适应地加权在不同尺度下检测的模式,并根据输入数据组合多尺度特征。 实验表明,我们的PointNet ++能够高效,稳健地处理点集。 特别是,在具有挑战性的3D点云基准测试中,已经获得了明显优于现有技术的结果。

2.问题陈述

假设X =(M,d)是离散度量空间,其度量从欧几里德空间R n继承,其中M⊆Rn是点集,d是距离度量。 另外,环境欧几里德空间中的M密度在各处可能不均匀。 我们感兴趣的是学习集合函数f,它将这样的X作为输入(以及每个点的附加特征)并产生重新划分X的语义兴趣信息。 在实践中,这样的f可以是为X分配标签的分类功能或者为M的每个成员分配每点标签的分割功能。

3.方法

我们的工作可以看作是PointNet [20]的扩展,增加了层次结构。 我们首先回顾PointNet(第3.1节),然后介绍具有分层结构的PointNet的基本扩展(第3.2节)。 最后,我们提出了即使在非均匀采样点集中也能够稳健地学习特征的PointNet ++(第3.3节)。

3.1 回顾PointNet [20]:通用连续集函数逼近器

给定带有x_{i} \epsilon R^{d}的无序点集{x1,x2,...,xn},可以定义一组函数f:X→R将一组点映射到向量:

                                                 

其中γ和h通常是多层感知器(MLP)网络。

公式1中的集合函数f对于输入点排列是不变的,并且可以任意近似任何连续集函数[20]。 注意,h的响应可以解释为一个点的空间编码(详见[20])。

PointNet在一些基准测试中取得了令人瞩目的成绩。 但是,它缺乏捕捉不同尺度的局部环境的能力。 我们将在下一节中介绍一个分层特征学习框架来解决这个限制。

图2:我们的分层特征学习体系结构的图示及其在2D欧几里德空间中使用点进行集合分割和分类的应用。 单尺度点分组在这里可视化。 有关密度自适应分组的详细信息,请参见图3

3.2 分层点集特征学习

虽然PointNet使用单个最大池操作来聚合整个点集,但我们的新架构构建了一个点的分层分组,并逐步抽象出更大和更大的局部区域。

我们的层次结构由许多集合抽象层次组成(图2)。 在每个级别,处理和抽象一组点以产生具有较少元素的新集合。 集合抽象级别由三个关键层组成:采样层,分组层和PointNet层。 采样层从输入点中选择一组点,这些点定义了局部区域的质心。 然后,分组层通过查找质心周围的“相邻”点来构造局部区域集。 PointNet层使用迷你PointNet将局部区域模式编码为特征向量。

集合抽象级别采用N×(d + C)矩阵作为输入,其来自具有d-dim坐标和C-dim点特征的N个点。 它输出具有d-dim坐标的N' 个子采样点的N' ×(d + C' )矩阵和总结局部上下文的新C'  -dim特征向量。 我们在以下段落中介绍了集抽象级别的层。

采样层。 给定输入点{x1,x2,...,xn},我们使用迭代最远点采样(FPS)来选择点{xi1,xi2,...,xim}的子集,使得xij是最远点来自集合{xi1,xi2,...,xij-1}关于其余点。与随机采样相比,在给定相同数量的质心的情况下,它具有更好的覆盖整个点集。 与扫描与数据分布无关的向量空间的CNN相比,我们的采样策略以数据相关的方式生成感受域。

分组图层。 该层的输入是大小为N×(d + C)的点集和大小为N' ×d的一组质心的坐标。 输出是大小为N' ×K×(d + C)的点集的组,其中每个组对应于局部区域,K是质心点附近的点的数量。 请注意,K在不同的组中有所不同,但后续的PointNet层能够将灵活的点数转换为固定长度的局部区域特征向量。

在卷积神经网络中,像素的局部区域由具有在像素的某个曼哈顿距离(内核大小)内的阵列索引的像素组成。 在从度量空间采样的点集中,点的邻域由度量距离定义。

Ball查询查找查询点半径范围内的所有点(在实现中设置K的上限)。 替代范围查询是K最近邻(kNN)搜索,其找到固定数量的相邻点。 与kNN相比,球查询的局部邻域保证了固定的区域尺度,从而使得局部区域特征在空间上更加通用,这对于需要局部模式识别的任务(例如,语义点标记)是优选的。

PointNet图层。 在该层中,输入是数据大小为N' ×K×(d + C)的点的N' 个局部区域。 输出中的每个局部区域都由其质心和局部特征抽象,该特征对质心的邻域进行编码。 输出数据大小为N' ×(d + C' )。

首先将局部区域中的点的坐标转换成相对于质心点的局部框架: ,其中i = 1,2,...,K和 j = 1,2,...,d其中 是质心的坐标。 我们使用PointNet [20],如第二节所述。 3.1作为本地模式学习的基本构建模块。 通过使用相对坐标和点要素,我们可以捕获局部区域中的点对点关系。

3.3 对非均匀采样密度下的鲁棒特征学习

如前所述,点集通常在不同区域具有不均匀的密度。 这种不均匀性为点集特征学习带来了重大挑战。 在密集数据中学习的特征可能不会推广到稀疏采样区域。 因此,针对稀疏点云训练的模型可能无法识别细粒度的局部结构。

理想情况下,我们希望尽可能接近地检查点集,以捕获密集采样区域中最精细的细节。 但是,在低密度区域禁止这种密切检查,因为样本缺陷会破坏局部模式。 在这种情况下,我们应该在更大的附近寻找更大规模的模式。 为了实现这一目标,我们提出了密度自适应PointNet层(图3),它们学习在输入采样密度变化时组合来自不同尺度区域的特征。 我们将具有密度自适应PointNet层的分层网络称为PointNet ++。

以前在Sec。 3.2,每个抽象级别包含单个规模的分组和特征提取。 在PointNet ++中,每个抽象级别提取多个局部模式的比例,并根据局部点密度智能地组合它们。 在对局部区域进行分组并组合来自不同尺度的特征方面,我们提出了两种类型的密度自适应层,如下所示

多尺度分组(MSG)。 如图3(a)所示,捕获多尺度模式的一种简单但有效的方法是应用具有不同尺度的分组图层,然后根据PointNets提取每个尺度的特征。 不同尺度的特征被连接起来以形成多尺度特征。

我们对网络进行培训,以学习优化策略,以结合多尺度功能。 这是通过随机丢弃每个实例的随机概率输入点来完成的,我们将其称为随机输入丢失。 具体地,对于每个训练点集,我们选择从[0,p]均匀采样的丢失比θ,其中p≤1。对于每个点,我们以概率θ随机地丢弃一个点。 在实践中,我们设置p = 0.95以避免生成空点集。 在这样做时,我们向网络呈现各种稀疏度(由θ引起)和变化均匀性(由丢失中的随机性引起)的训练集。 在测试期间,我们保留所有可用点。

多分辨率分组(MRG)。 上面的MSG方法在计算上是昂贵的,因为它在每个质心点的大规模邻域中运行本地PointNet。 特别是,由于质心点的数量在最低级别通常非常大,因此时间成本很高。

在这里,我们提出了一种替代方法,它避免了这种昂贵的计算,但仍然保留了根据点的分布特性自适应地聚合信息的能力。 在图3(b)中,某个层Li的区域的特征是两个矢量的串联。 通过使用设置的抽象级别从较低级别Li-1汇总每个子区域的特征来获得一个向量(图中左)。 另一个向量(右)是通过使用单个PointNet直接处理本地区域中的所有原始点而获得的特征。

当局部区域的密度低时,第一矢量可能不如第二矢量可靠,因为计算第一矢量的子区域包含更稀疏的点并且更多地受到采样不足的影响。 在这种情况下,第二个矢量应该加权更高。 另一方面,当局部区域的密度高时,第一矢量提供更精细细节的信息,因为它具有以较低水平递归地以较高分辨率检查的能力。

与MSG相比,该方法在计算上更有效,因为我们避免了在最低级别的大规模邻域中的特征提取。

3.4 集合分割的点特征传播

在集合抽象层中,原始点集是二次抽样的。 然而,在诸如语义点标记的集合分割任务中,我们想要获得所有原始点的点特征。 一种解决方案是始终将所有点作为所有设置抽象级别中的质心进行采样,然而这会导致高计算成本。 另一种方法是将特征从子采样点传播到原始点。

我们采用基于距离的插值和跨越跳级链路的分层传播策略(如图2所示)。在特征传播级别中,我们将点特征从Nl ×(d + C)点传播到Nl-1 个点,其中Nl-1Nl (具有NlNl-1 )是集合抽象级别的输入和输出的点集大小。我们通过在Nl-1 点的坐标处内插Nl 个点的特征值f来实现特征传播。在插值的众多选择中,我们使用基于k个最近邻居的反距离加权平均值(如在等式2中,在默认情况下我们使用p = 2,k = 3)。然后,Nl-1 个点上的内插特征与来自集合抽象级别的跳过链接点特征连接。然后,连接的特征通过“Pointnet 单元”传递,这类似于CNN中的逐个卷积。应用一些共享的完全连接和ReLU层来更新每个点的特征向量。重复该过程,直到我们将特征传播到原始点集。

                               where ,    j=1,…,C                                                    

4.实验

数据集我们评估四个数据集,从2D对象(MNIST [11]),3D对象(ModelNet40 [31]刚性对象,SHREC15 [12]非刚性对象)到真实3D场景(ScanNet [5])。 对象分类通过准确性进行评估。 语义场景标记通过[5]之后的平均体素分类精度来评估。 我们在下面列出了每个数据集的实验设置:

  • MNIST: 具有60k训练和10k测试样本的手写数字图像。
  • ModelNet40:40个类别(主要是人造)的CAD模型。 我们使用官方拆分,9,843个形状用于培训,2,468个用于测试.
  • SHREC15:来自50个类别的1200种形状。 每个类别包含24种形状,大多是有机形状,具有各种姿势,如马,猫等。我们使用五折交叉验证来获得该数据集的分类准确性.
  • ScanNet:1513个扫描和重建的室内场景。 我们按照[5]中的实验设置,使用1201个场景进行训练,312个场景进行测试

4.1 欧氏度量空间中的点集分类

我们评估我们的网络分类从2D(MNIST)和3D(ModleNet40)欧几里德空间采样的点云。 MNIST图像被转换为数字像素位置的2D点云。 从ModelNet40形状的网格表面采样3D点云。 默认情况下,我们对MNIST使用512点,对ModelNet40使用1024点。 在表2的最后一行(我们的法线)中,我们使用面法线作为附加点特征,其中我们还使用更多点(N = 5000)来进一步提高性能。 所有点集都归一化为零均值并且在单位球内。 我们使用具有三个完全连接层的三级分层网络.

图4:左:具有随机点丢失的点云。 右图:曲线显示我们的密度自适应策略在处理非均匀密度方面的优势。 DP表示训练期间的随机输入丢失; 否则训练是在均匀密集点上进行的。 有关详细信息,请参见第3.3节。

结果。 在表1和表2中,我们将我们的方法与先前的现有技术水平进行比较。 请注意,表2中的PointNet(vanilla)是[20]中不使用转换网络的版本,它相当于我们只有一个级别的分层网络。

首先,我们的分层学习架构比非分层PointNet实现了更好的性能[20]。 在MNIST中,我们看到从PointNet(vanilla)和PointNet到我们的方法的错误率降低了60.8%和34.6%。 在ModelNet40分类中,我们还看到使用相同的输入数据大小(1024点)和特征(仅限坐标),我们的功能明显强于PointNet。 其次,我们观察到基于点集的方法甚至可以实现与成熟图像CNN更好或相似的性能。 在MNIST中,我们的方法(基于2D点集)实现了接近网络CNN中的网络的准确度。 在ModelNet40中,我们的有法向量信息的方法明显优于以前最先进的方法MVCNN [26]。

采样密度变化的稳健性。 直接从现实世界捕获的传感器数据通常会遇到严重的不规则采样问题(图1)。 我们的方法选择多个尺度的点邻域,并通过适当地加权来学习平衡描述性和鲁棒性。

我们在测试时间内随机丢弃点(见图4左侧),以验证我们的网络对非均匀和稀疏数据的鲁棒性。 在右图4中,我们看到MSG + DP(在训练期间具有随机输入丢失的多尺度分组)和MRG + DP(在训练期间具有随机输入丢失的多分辨率分组)对于采样密度变化非常稳健。 从1024到256个测试点,MSG + DP性能下降不到1%。 此外,与替代品相比,它在几乎所有采样密度上都实现了最佳性能。 PointNet vanilla [20]在密度变化下相当稳健,因为它专注于全局抽象而不是精细细节。 然而,与我们的方法相比,细节的丢失也使其不那么强大。 SSG(在每个级别中使用单一尺度分组的消融PointNet ++)无法推广到稀疏采样密度,而SSG + DP通过在训练时间中随机丢弃点来修正问题。

4.2 语义场景标注的点集分割

为了验证我们的方法适用于大规模点云分析,我们还评估了语义场景标记任务。 目标是预测室内扫描中点的语义对象标签。 [5]在体素扫描上使用完全卷积神经网络提供基线。 它们纯粹依赖于扫描几何体而不是RGB信息,并以每个体素为基础报告精度。 为了进行公平的比较,我们在所有实验中删除了RGB信息,并在[5]之后将点云标签预测转换为体素标签。 我们还与[20]进行了比较。 在图5(蓝色条)中以每个体素为基础报告准确度。

我们的方法大大优于所有基线方法。 与在体素扫描中学习的[5]相比,我们直接学习点云以避免额外的量化误差,并进行数据相关采样以允许更有效的学习。 与[20]相比,我们的方法引入了分层特征学习并捕获不同尺度的几何特征。 这对于理解多个级别的场景和标记各种大小的对象非常重要。 我们将示例场景标记结果可视化为图6。

采样密度变化的稳健性为了测试我们训练的模型在非均匀采样密度的扫描中的表现,我们合成了类似于图1中的Scannet场景的虚拟扫描,并根据这些数据评估我们的网络。 我们向读者推荐我们如何生成虚拟扫描的补充材料。 我们在三种设置(SSG,MSG + DP,MRG + DP)中评估我们的框架,并与基线方法进行比较[20]。

性能比较如图5所示(黄色条)。 由于采样密度从均匀点云向虚拟扫描场景的转变,我们发现SSG性能大大下降。 另一方面,MRG网络对采样密度偏移更加稳健,因为它能够在采样稀疏时自动切换到描绘较粗粒度的特征。 即使在训练数据(具有随机丢失的均匀点)和具有非均匀密度的扫描数据之间存在域间隙,我们的MSG网络仅受到轻微影响并且在比较方法中实现最佳准确度。 这些证明了我们的密度自适应层设计的有效性。

图6:Scannet标签结果。 [20]正确捕捉房间的整体布局,但未能发现家具。 相比之下,我们的方法在分割房间布局之外的对象方面要好得多。 

 

4.3 非欧几里德度量空间中的点集分类

在本节中,我们展示了我们对非欧几里德空间的方法的普遍性。 在非刚性形状分类中(图7),一个好的分类器应该能够将图7中的(a)和(c)正确地归类为同一类别,即使它们的姿势不同,这需要内在结构的知识。 SHREC15中的形状是嵌入3D空间的2D表面。 沿着表面的测地距离自然地引起度量空间。 我们通过实验表明,在此度量空间中采用PointNet ++是捕获基础点集的内在结构的有效方法。

对于[12]中的每个形状,我们首先构造由成对测地距离引起的度量空间。 我们遵循[23]来获得模仿测地距离的嵌入度量。 接下来,我们提取该度量空间中的内在点特征,包括WKS [1],HKS [27]和多尺度高斯曲率[16]。 我们使用这些功能作为输入,然后根据基础度量空间对点进行采样和分组。 通过这种方式,我们的网络学习捕获不受形状的特定姿势影响的多尺度内在结构。 替代设计选择包括使用XY Z坐标作为点要素或使用欧几里德空间R3作为基础度量空间。 我们在下面显示这些不是最佳选择.

结果。 我们将我们的方法与表3中先前的最新方法[14]进行了比较。[14]将测地时刻提取为形状特征,并使用堆叠稀疏自动编码器来消化这些特征以预测形状类别。 我们使用非欧几里德度量空间和内在特征的方法在所有设置中实现了最佳性能,并且大幅优于[14]。

比较我们的方法的第一和第二设置,我们看到内在特征对于非刚性形状分类非常重要。 XY Z特征未能揭示内在结构,并且受姿势变化的影响很大。 比较我们的方法的第二和第三设置,我们看到使用测地邻域是有益的欧几里德邻域。 欧几里德邻域可能包括远离表面的点,当形状提供非刚性变形时,该邻域可能会发生显着变化。 这引入了有效的重量分配的困难,因为局部结构可能变得组合复杂。 另一方面,表面上的测地线邻域摆脱了这个问题并提高了学习效率。

4.4 特征可视化

在图8中,我们可视化我们的分层网络的第一级内核所学到的内容。 我们在空间中创建了一个体素网格,并聚合了局部点集,这些点集在网格单元格中最能激活某些神经元(最多使用100个例子)。 保留具有高票数的网格单元并将其转换回3D点云,其表示神经元识别的模式。 由于模型是在ModelNet40上训练的,而ModelNet40主要由家具组成,因此我们可以看到可视化中的平面,双平面,直线,角等结构。

图8:从第一层内核学习的3D点云模式。 该模型针对ModelNet40形状分类进行训练(随机选择128个内核中的20个)。 颜色表示点深度(红色接近,蓝色接近)。

5. 相关工作

分层特征学习的想法非常成功。 在所有学习模型中,卷积神经网络[10,25,8]是最突出的之一。 但是,卷积不适用于具有距离度量的无序点集,这是我们工作的重点。

最近的一些作品[20,28]研究了如何将深度学习应用于无序集合。 即使点集确实具有一个,它们也会忽略基础距离度量。 因此,他们无法捕获点的本地上下文,并且对全局集合转换和规范化很敏感。 在这项工作中,我们针对从度量空间采样的点,并通过明确考虑我们设计中的基础距离度量来解决这些问题

从度量空间采样的点通常是有噪声的并且采样密度不均匀。 这会影响有效的点特征提取并导致学习困难。 关键问题之一是为点特征设计选择合适的比例。 以前在几何处理社区或摄影测量和遥感社区中已经开发了几种关于[19,17,2,6,7,30]的方法。 与所有这些作品相比,我们的方法学习提取点特征并以端到端的方式平衡多个特征尺度。

在3D度量空间中,除了点集之外,还有几种流行的深度学习表示,包括体积网格[21,22,29]和几何图形[3,15,33]。 然而,在这些工作中,没有明确考虑采样密度不均匀的问题。

6. 结论

在这项工作中,我们提出了PointNet ++,这是一个强大的神经网络架构,用于处理在度量空间中采样的点集。 PointNet ++递归地在输入点集的嵌套分区上起作用,并且在学习关于距离度量的分层特征方面是有效的。 为了处理非均匀点采样问题,我们提出了两个新颖的集合抽象层,它们根据局部点密度智能地聚合多尺度信息。 这些贡献使我们能够在具有挑战性的3D点云基准上实现最先进的性能。

在未来,如何通过在每个局部区域共享更多计算来考虑如何加速我们所提出的网络的推理速度,特别是对于MSG和MRG层,这是值得的。 在更高维度度量空间中找到应用程序也很有趣,其中基于CNN的方法在计算上是不可行的,而我们的方法可以很好地扩展。

补充材料

A:概要

该补充材料提供了主要论文中有关实验的更多细节,并包括更多实验来验证和分析我们提出的方法。

在Sec B中,我们提供了用于主要论文中的实验的特定网络架构,并且还描述了数据准备和培训中的细节。 在Sec C中,我们展示了更多的实验结果,包括部件分割的基准性能和邻域查询分析,对采样随机性和时间空间复杂度的敏感性。

B:实验中的细节

架构协议。 我们使用以下符号来描述我们的网络架构。 SA(K, r, [l_{1}, ... , l_{d}])是一个集抽象(SA)级别,具有球半径为r的K个局部区域,使用PointNet的d个完全连接的层,宽度为l_{i} (i=1, ..., d)SA([l_{1}, ... , l_{d}])是一个全局集抽象级别,它将集合转换为单个向量。 在多尺度设置中(如在MSG中),我们使用SA(K, [r^{(1)}, ... , r^{(m)}], [l_{1}^{(1)}, ... , l_{d}^{(1)}], ... , [l_{1}^{(m)}, ... , l_{d}^{(m)}])表示具有m个标度的MSG。 FC(l,dp)表示具有宽度l和压差比dp的完全连接的层。 FP(l_{1}, ... , l_{d})是具有d个完全连接层的特征传播(FP)级别。 它用于更新插值和跳过链接连接的特征。 除了最后一个得分预测层之外,所有完全连接的层之后是批量标准化和ReLU。

B1:网络结构

对于所有分类实验,我们使用具有不同K(类别数)的以下架构(我们的SSG):

SA(512, 0.2, [64, 64, 128]) → SA(128, 0.4, [128, 128, 256]) → SA([256, 512, 1024]) →  F C(512, 0.5) → F C(256, 0.5) → F C(K)

多尺度分组(MSG)网络(PointNet ++)架构如下:

SA(512, [0.1, 0.2, 0.4], [[32, 32, 64], [64, 64, 128], [64, 96, 128]]) →  SA(128, [0.2, 0.4, 0.8], [[64, 64, 128], [128, 128, 256], [128, 128, 256]]) →  SA([256, 512, 1024]) → F C(512, 0.5) → F C(256, 0.5) → F C(K)

跨层多分辨率分组(MRG)网络的体系结构使用三个分支:

Branch 1: SA(512, 0.2, [64, 64, 128]) → SA(64, 0.4, [128, 128, 256])

Branch 2: SA(512, 0.4, [64, 128, 256]) using r = 0.4 regions of original points

Branch 3: SA(64, 128, 256, 512) using all original points.

Branch 4: SA(256, 512, 1024).

将分支1和分支2连接并馈送到分支4.然后将分支3和分支4的输出连接并馈送到F C(512,0.5)→F C(256,0.5)→F C(K)用于分类。

用于语义场景标记的网络(FP中的最后两个完全连接的层之后是具有丢弃率0.5的丢失层):

SA(1024, 0.1, [32, 32, 64]) → SA(256, 0.2, [64, 64, 128]) →

SA(64, 0.4, [128, 128, 256]) → SA(16, 0.8, [256, 256, 512]) →

F P(256, 256) → F P(256, 256) → F P(256, 128) → F P(128, 128, 128, 128, K)

用于语义和部分分割的网络(FP中的最后两个完全连接的层之后是丢弃率为0.5的丢失层):

SA(512, 0.2, [64, 64, 128]) → SA(128, 0.4, [128, 128, 256]) → SA([256, 512, 1024]) → F P(256, 256) → F P(256, 128) → F P(128, 128, 128, 128, K)

 

B2:虚拟扫描生成

在本节中,我们将介绍如何使用ScanNet场景生成具有非均匀采样密度的标记虚拟扫描。 对于ScanNet中的每个场景,我们将摄像机位置设置在地板平面的质心上方1.5m处,并在8个方向上均匀地在水平面上旋转摄像机方向。 在每个方向上,我们使用尺寸为100像素×75像素的图像平面,并将来自相机的光线通过每个像素投射到场景中。 这提供了一种在场景中选择可见点的方法。 然后,我们可以为每个测试场景生成8个类似的虚拟扫描,图9中显示了一个示例。注意点样本在靠近摄像机的区域中更密集。

B3:MNIST和ModelNet40实验细节

对于MNIST图像,我们首先将所有像素强度归一化到范围[0,1],然后选择强度大于0.5的所有像素作为有效数字像素。 然后我们将图像中的数字像素转换为坐标在[-1,1]内的2D点云,其中图像中心是原点。 创建增强点以将点设置添加到固定基数(在我们的示例中为512)。 我们抖动初始点云(随机平移高斯分布N(0,0.01)并剪切到0.03)以生成增广点。 对于ModelNet40,我们基于面部区域从CAD模型表面均匀地采样N个点。

对于所有实验,我们使用Adam [9]优化器,学习率为0.001用于训练。 对于数据增强,我们随机缩放对象,扰动对象位置以及点样本位置。 我们还遵循[21]随机旋转对象以进行ModelNet40数据增强。 我们使用TensorFlow和GTX 1080,Titan X进行培训。 所有层都在CUDA中实现以运行GPU。 训练我们的模型到收敛大约需要20个小时。

B4:ScanNet实验细节

为了从ScanNet场景生成训练数据,我们从初始场景采样1.5m×1.5m×3m立方体,然后保持立方体中≥2%的体素被占用,≥70%的表面体素具有有效注释(这是 [5]中的相同设置。 我们在运行中对这些训练立方体进行采样,并沿着右上轴随机旋转。 增加的点被添加到点集以产生固定的基数(在我们的例子中为8192)。 在测试期间,我们类似地将测试场景分成较小的立方体,并首先获得立方体中每个点的标签预测,然后在同一场景的所有立方体中合并标签预测。 如果一个点从不同的立方体获得不同的标签,我们将进行多数投票以获得最终点标签预测。

B5:SHREC15实验细节

我们在每个形状上随机抽取1024个点用于训练和测试。 为了生成输入固有特征,我们分别提取100维WKS,HKS和多尺度高斯曲率,导致每个点的300维特征向量。 然后我们进行PCA以将特征尺寸减小到64.我们使用[23]之后的8维嵌入来模拟测地距离,用于在选择点邻域时描述我们的非欧几里德度量空间。

C:更多试验

在本节中,我们提供了更多的实验结果来验证和分析我们提出的网络架构。

C1:语义部分分割

按照[32]中的设置,我们评估我们对零件分割任务的方法,假设每个形状的类别标签已知。 将点云表示的形状作为输入,任务是预测每个点的零件标签。 该数据集包含16个类中的16,881个形状,总共注释了50个部分。 我们使用[4]之后的官方列车测试分组。

我们为每个点配备其法线方向,以更好地描绘下面的形状。这样我们就可以摆脱[32,33]中使用的手工制作的几何特征。我们将我们的框架与传统的基于学习的技术[32]以及表4中最先进的深度学习方法[20,33]进行比较。结合点交叉(IoU)用作评估度量,平均跨所有部分类。在训练期间,交叉熵损失最小化。平均而言,我们的方法可以实现最佳性能。与[20]相比,我们的方法在大多数类别上表现更好,这证明了分层特征学习对于详细语义理解的重要性。请注意,我们的方法可以被视为隐式构建不同尺度的接近图并在这些图上运行,因此与图CNN方法相关,如[33]。由于我们的多尺度邻域选择的灵活性以及设置操作单元的功能,与[33]相比,我们可以获得更好的性能。请注意,与图卷积核相比,我们的集合运算单元要简单得多,而且与[33]相比,我们不需要进行昂贵的特征分解。这些使我们的方法更适合大规模点云分析。

                                              表4:ShapeNet零件数据集上的分割结果。

C2:邻居查询:kNN  v.s. 球查询。

在这里,我们比较两个选择当地社区的选项。 我们在主要论文中使用了基于半径的球查询。 在这里,我们还尝试了基于kNN的邻域搜索,并且还使用不同的搜索半径和k进行游戏。 在本实验中,所有培训和测试均采用具有均匀采样密度的ModelNet40形状。 使用1024点。 如表5所示,基于半径的球查询略好于基于kNN的方法。 但是,我们推测在非常不均匀的点集中,基于kNN的查询将导致更差的泛化能力。 我们还观察到,稍大的半径对于性能有帮助,可能是因为它捕获了更丰富的局部模式。

                                 表5:邻里选择的影响。 评估指标是ModelNet 40测试集上的分类准确度(%)。

C3:随机性在最远点采样中的影响

对于我们的集合抽象级别中的采样层,我们使用最远点采样(FPS)进行点集子采样。 然而,FPS算法是随机的,并且子采样取决于首先选择哪个点。 在这里,我们评估我们的模型对这种随机性的敏感性。 在表6中,我们测试了在ModelNet40上训练的模型的特征稳定性和分类稳定性。

为了评估特征稳定性,我们使用不同的随机种子提取所有测试样本的全局特征10次。 然后我们计算10个采样中每个形状的平均特征。 然后我们计算特征与均值特征的差异的标准偏差。 最后我们平均所有标准。 在表中报告的所有要素维度中。 由于在处理之前将特征归一化为0到1,因此0.021差异意味着特征范数的2.1%偏差。

                                                    表6:FPS(最远点采样中)中随机性的影响(使用ModelNet40) 

C4:时空复杂性。

表7总结了基于几个点集的深度学习方法之间的时间和空间成本的比较。 我们使用TensorFlow 1.1和单个GTX 1080记录批量大小为8的前向时间。第一批被忽略,因为有一些GPU准备。 虽然PointNet(vanilla)[20]具有最佳的时间效率,但我们的没有密度自适应层的模型以合理的速度实现了最小的模型尺寸。

                                      表7:几个网络的模型大小和推理时间(正向通过) 

值得注意的是,我们的MSG虽然在非均匀采样数据中具有良好的性能,但由于多尺度区域特征提取,它比SSG版本昂贵2倍。 与MSG相比,MRG更有效,因为它使用跨层的区域。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值