PointNet++论文翻译(PointNet++实现第1步)

PointNet++论文翻译

一、概览

论文地址:https://arxiv.org/ftp/arxiv/papers/2003/2003.09644.pdf
在这里插入图片描述
论文框架:
在这里插入图片描述
研究目的: 增强 PointNet 识别细粒度模式的能力和对复杂场景的泛化能力,使其能够能够高效、稳健地学习深层点集特征。

解决方法

递归应用PointNet的分层神经网络来对输入点集进行嵌套划分。
在训练过程中借助随机输入丢失,学习对不同尺度上检测到的模式进行自适应加权,并根据输入数据对多尺度特征进行组合。

研究贡献

PointNet++在多个尺度上利用邻域来实现健壮性和细节捕捉,在学习关于距离度量的分层特征方面是有效的。
针对非均匀点采样问题,提出了两个新的集合抽象层,根据局部点密度智能聚合多尺度信息。

实验数据集: MNIST、ModelNet40、SHREC15、ScanNet

二、相关工作

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

PointnetOrder matters 研究了如何将深度学习应用于无序集合。但它们忽略了基础距离度量,即使只有一个点集。因此,它们无法捕获点的局部上下文,并且对全局集合转换和归一化敏感。在这项工作中,我们以从度量空间中采样的点为目标,并通过在设计中显式地考虑潜在的距离度量来解决这些问题。

从度量空间中采样的点通常带有噪声,并且采样密度不均匀。这影响了点特征的有效提取,给学习带来了困难。其中一个关键问题是为点特征设计选择合适的比例尺。以前,在几何处理领域或摄影测量和遥感领域,已经开发了几种方法来解决这一问题。与所有这些工作不同的是,我们的方法学会了以端到端的方式提取点特征和平衡多个特征尺度。

在3D度量空间中,除了点集,还有几种流行的深度学习表示法,包括体积网格和几何图。然而,在这些工作中,都没有明确地考虑到抽样密度不均匀的问题。

三、本文方法

3.1 分层点集特征学习

虽然PointNet使用单个最大合并操作来聚合整个点集,但我们的新体系结构建立了点的分层分组,并沿着层次逐步抽象越来越大的局部区域。

我们的层次结构由多个 set abstraction(这里不知道怎么翻译合适) 组成。在set abstraction,对一组点进行处理和抽象,以产生具有较少元素的新集合。set abstraction 由三个关键层组成:采样层、分组层和 PointNet 层。采样层从定义局部区域质心的输入点中选择一组点。然后,分组图层通过查找质心周围的“相邻”点来构建局部区域集。PointNet层使用迷你PointNet将局部区域模式编码为特征向量。

在质心数目相同的情况下,该算法对整个点集的覆盖率更高。与扫描数据分布不可知的向量空间的CNN不同,我们的采样策略通过依赖于数据的方式生成感受野(receptive fields)。

在这里插入图片描述
在卷积神经网络中,像素的局部区域由在特定曼哈顿距离内使用数组索引的像素曼哈顿距离组成,这个特定的曼哈顿距离就是核大小。在从度量空间采样的点集中,点的邻域由度量距离来定义。
在这里插入图片描述

3.2.非均匀采样密度下的鲁棒特征学习

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

理想情况下,我们希望尽可能仔细地检查某个点集,以捕捉密集采样区域中的最精细细节。然而,这种近距离检查在低密度区域是被禁止的,因为局部特征可能会因采样不足而被破坏。在这种情况下,我们应该在更大的范围内寻找更大规模的特征。为了实现这一目标,我们提出了密度自适应PointNet层(如下图),当输入采样密度改变时,该层学习合并来自不同尺度区域的特征。我们称我们的具有密度自适应 PointNet 层的分层网络为PointNet++。

在PointNet++中,每个 set abstraction 提取多个尺度的局部模式,并根据局部点密度进行智能组合。通过对局部区域进行分组,结合不同尺度的特征,我们提出了两种密度自适应层,如下所示。
在这里插入图片描述

3.2.1 多尺度分组(MSG)

如上图(a)所示,捕捉多尺度模式的一个简单而有效的方法是应用不同尺度的分组图层,然后根据相应的 PointNet 来提取每个尺度的特征。连接不同尺度的特征以形成多多尺度特征。

我们对网络进行训练,学习一种优化策略,将多尺度特征结合起来。这是通过为每个实例分配的随机概率随机丢弃输入点来实现的,我们称之为随机输入丢弃(random input dropout)。
具体地说:在这里插入图片描述
在这里插入图片描述在这里插入图片描述

四、实验

数据集:MNIST、ModelNet40、SHREC15、ScanNet

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

我们对从 2D(MNIST) 和 3D(ModleNet40) 欧几里德空间采样的点云进行了分类,并对我们的网络进行了评估。

把 MNIST 图像转换为具有数字像素位置的二维点云,从 ModelNet40 形状的网格曲面采样三维点云。默认情况下,我们对 MNIST 使用 512 点,对 ModelNet40 使用 1024 点。在下图表2的最后一行(我们的 baseline )中,我们使用面法线作为附加点特性,其中我们还使用更多的点(N=5000)来进一步提高性能。所有点集都归一化为零平均值,并且在一个单位球内。我们使用具有三个全连接层的三级分层网络。
对于MNIST图像,我们首先将所有像素的亮度归一化到 [0,1] [0,1][0,1] 范围内,然后选择所有强度大于 0.5 0.50.5 的像素作为有效的数字像素。然后,我们将图像中的数字像素转换为坐标在 [−1,1] [−1,1][−1,1] 内的二维点云,其中图像中心是原点。创建扩充点是为了将设置为固定基数的点添加到固定基数(在我们的示例中为512)。我们抖动初始点云(随机平移高斯分布 N(0,0.01) N(0,0.01)N(0,0.01) 并修剪到 0.03 0.030.03 )以生成增强点。对于ModelNet40,我们基于面面积从CAD模型曲面中均匀采样 N NN 个点。
对于所有实验,我们使用学习率为 0.001 0.0010.001 的 ADAM 优化器进行训练。对于数据增强,我们使用随机缩放对象、扰动对象位置和点样本位置的方法。我们还遵循V olumetric and multi-view cnns for object classification on 3d data随机旋转对象的方法以进行ModelNet40数据增强。我们使用 TensorFlow 和 GTX 1080、Titan X 进行训练,所有层都在 CUDA 中实现,以运行 GPU。将我们的模型训练到收敛大约需要20个小时。

实验结果

在这里插入图片描述
在表1和表2中,我们将我们的方法与以前技术水平的代表性集合进行了比较。请注意,表2中的 PointNet(Vanilla) 是 PointNet 中不使用转换网络的版本,这相当于我们的分层网络只有一个级别。

在MNIST中,我们看到 PointNet(Vanilla) 和 PointNet 与我们的方法相比错误率分别降低了 60.8% 和 34.6%。在 ModelNet40 分类中,我们还看到,使用相同的输入数据大小(1024个点)和特征(仅坐标),我们的分类比 PointNet 强得多。其次,我们观察到基于点集的方法甚至可以获得比成熟的图像CNN更好或相近的性能。在 MNIST 中,我们的方法(基于二维点集)在网络CNN中达到了接近网络的精度。在 ModelNet40 中,我们使用普通信息的方法明显优于以前的最先进的方法 MVCNN。

对采样密度变化的鲁棒性分析

直接从真实世界获取的传感器数据通常存在严重的不规则采样问题,如下图。我们的方法选择多个尺度的点邻域,并通过对它们进行适当的加权来学习平衡描述性和鲁棒性。
在这里插入图片描述
我们在测试期间随机落点(见下图左侧),以验证我们的网络对非均匀和稀疏数据的鲁棒性。在下图右侧,我们看到 MSG+DP (在训练期间具有随机输入丢弃的多尺度分组)和 MRG+DP 对采样密度变化非常稳健。从1024个测试点到256个测试点,MSG+DP性能下降不到 1% 。此外,与其他方法相比,它在几乎所有的采样密度上都取得了最好的性能。PointNet vanilla 在密度变化下相当健壮,这是因为它关注全局抽象而不是精细细节。然而,与我们的方法相比,丢失细节也会使其功能较弱。SSG(Ablated PointNet++,每级单尺度分组)不能推广到稀疏采样密度,而 SSG+DP 通过在训练时间内随机丢弃点来弥补这一问题。
在这里插入图片描述

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

为了验证我们的方法适用于大规模的点云分析,我们还对语义场景标注任务进行了评估。

目标是预测室内扫描中点的语义对象标签。ScanNet 在体素化扫描上使用完全卷积神经网络作为我们的 baseline。它们纯粹依赖于扫描几何体而不是RGB信息,并以每个体素为基础报告精确度。为了进行公平的比较,我们在所有的实验中都去掉了RGB信息,并按照 ScanNet 将点云标签预测转换为体素标签。我们还与 PointNet 进行了比较。
我们的方法在很大程度上超过了所有的 baseline 方法。与在体素化扫描上学习的 ScanNet 相比,我们直接在点云上学习,避免了额外的量化误差,并进行数据相关采样,以实现更有效的学习。与文献 PointNet 相比,该方法引入了分层特征学习,捕获了不同尺度的几何特征。这对于了解多个级别的场景和标记各种大小的对象非常重要。

实验结果
下图蓝色条代表基于每个体素的精度。
在这里插入图片描述
下图可见,PointNet 正确捕捉房间的总体布局,但找不到家具。相比之下,除了房间布局之外,我们的方法在分割对象方面要好得多。
在这里插入图片描述

对采样密度变化的鲁棒性分析

为了测试我们的训练模型在非均匀采样密度的扫描上的性能,我们合成了 Scannet 场景的虚拟扫描,并在此数据上评估了我们的网络。我们在三种设置(SSG、MSG+DP、MRG+DP)中评估我们的框架,并与基线方法 PointNet 进行比较。

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

性能比较如实验结果中黄条所示。我们看到,由于采样密度从均匀的点云转移到虚拟扫描的场景,SSG的性能大大降低。另一方面,MRG网络对采样密度漂移的鲁棒性更强,因为它能够在采样稀疏时自动切换到描述较粗粒度的特征。即使训练数据(均匀的点随机丢失)和密度不均匀的扫描数据之间存在领域差距,但我们的MSG网络受到的影响很小,在各种方法中达到了最好的准确率。这些都证明了我们的密度自适应层设计的有效性。

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

在这一实验中,我们展示了我们的方法在非欧几里德空间上的推广。解决同一个物体不同姿态的识别问题。
在这里插入图片描述

在非刚性形状分类中,一个好的分类器应该能够将图中的 (a) 和 © 正确地分类为相同的类别,即使它们的姿势不同,这需要内在结构的信息。SHREC15 中的形状是嵌入在三维空间中的二维曲面。沿曲面的测地线距离自然会产生度量空间。(Geodesic distances along the surfaces
naturally induce a metric space. )实验表明,在该度量空间中采用 PointNet++ 是捕捉底层点集内在结构的有效途径。

对于文 SHREC15 Track 中的每种形状,我们首先构造了由成对测地距离诱导的度量空间。(we firstly construct the metric space induced by pairwise geodesic distances.)使用 Interior distance using barycentric coordinates 的方法来获得模拟测地距离的嵌入度量。接下来,我们提取该度量空间中的本征点特征,包括 WKSHKS多尺度高斯曲率。我们使用这些特征作为输入,然后根据底层度量空间对点进行采样和分组。通过这种方式,我们的网络学会了捕捉不受形状特定姿态影响的多尺度内在结构。另一种设计选择包括使用 XYZ坐标作为点要素或使用欧几里得空间 R^3作为底层度量空间。实验结果显示,这些都不是最佳选择。

实验细节:

我们在每个形状上随机抽样 1024 个点进行训练和测试。为了生成输入的固有特征,我们分别提取100维的 WKS、HKS 和多尺度高斯曲率,得到每个点的 300 维特征向量。然后进行主成分分析,将特征维数降至 64。我们在 Interior distance using barycentric coordinates 后面用一个 8 维的嵌入来模拟测地线距离,它被用来描述我们的非欧几里德度量空间,同时选择点的邻域。

实验结果:

在这里插入图片描述
DeepGM 提取测地线矩作为形状特征,并使用堆叠式稀疏自动编码器来处理这些特征并预测形状类别。我们的方法使用了非欧几里德度量空间和固有特征,在所有设置下都取得了最好的性能,并且大大超过了 DeepGM。

4.4 特征可视化

我们将通过分层网络的第一层核学习到的内容可视化。在空间中创建了一个体素网格,并聚合了在网格单元中激活神经元最多的局部点集(使用了最高100个示例)。高投票率的网格单元被保留下来,并转换回三维点云,这代表了神经元识别的模式。由于模型是在主要由家具组成的 ModelNet40 上训练的,所以在可视化中我们可以看到平面、双平面、线、角等结构。

五、结论

在这项工作中,我们提出了 PointNet++,这是一个强大的神经网络体系结构,用于处理度量空间中采样的点集。PointNet++ 递归地作用于输入点集的嵌套划分,并且在学习关于距离度量的分层特征方面是有效的。针对非均匀点采样问题,我们提出了两个新的集合抽象层,根据局部点密度智能聚合多尺度信息。这些贡献使我们能够在具有挑战性的三维点云基准上获得最先进的性能。
如何通过在每个局部区域共享更多的计算来提高网络的推理速度,特别是MSG层和MRG层的推理速度,是今后值得思考的问题。同样有趣的是,在高维度量空间中,基于CNN的方法在计算上是不可行的,而我们的方法可以很好地扩展。

————————————————

转载于CSDN博主「万俟淋曦」的原创文章

原文链接:https://blog.csdn.net/maizousidemao/article/details/105205619
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值