PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies
发布时间
阅读量:
阅读量
摘要
* PointNet++是用于点云理解的最有影响力的神经架构之一。尽管PointNet++的准确性已经在很大程度上被最近的网络如 PointMLP 和 Point Transformer 所超越,但发现很大一部分的性能提升是由于改进的训练策略,即数据增强和优化技术,以及增加的模型大小,而不是架构创新。因此,PointNet++的全部潜力还没有被开发出来。
* 本次工作通过对模型训练和扩展策略的系统研究,重新审视了经典的 PointNet++,并提供两个主要贡献:首先,提出一套改进的训练策略,大大改善了PointNet++的性能。例如,在不改变结构的情况下,PointNet++在ScanObjectNN 目标分类上的总体精度(OA)可以从77.9%提高到86.1%,甚至超过了最先进的PointMLP。其次,在PointNet++中引入倒置的残差瓶颈设计和可分离的MLPs,以实现高效和有效的模型扩展,并提出了PointNeXt,即PointNets的下一个版本。
* PointNeXt可以灵活地扩大规模,并且在三维分类和分割任务上都优于最先进的方法。在分类方面,PointNeXt在ScanObjectNN上达到了87.7%的总体准确率,超过PointMLP 2.3%,同时在推理方面快了10倍。对于语义分割,PointNeXt在S3DIS上建立了一个新的最先进的性能,平均IoU为74.9%(6倍交叉验证),优于最近的Point Transformer。
简介
* 3D点云领域的大多数工作专注于开发精巧的模块来提取点云的局部细节,例如 KPConv [3] 中的伪网格卷积以及 Point Transformer [4] 中的自注意力层。这些新提出的方法在各种任务中都远优于经典的点云理解网络PointNet++,给人的错觉是 PointNet++ 网络过于简单,无法学习复杂的点云表示。在这项工作中,我们发现影响PointNet++ 性能的原因不在于其网络模块,而在于其陈旧的训练以及模型缩放策略。
* 首先,我们发现SOTA方法的大部分性能增益源于改进的训练策略(即数据增强和优化技术)。例如,在训练过程中随机丢掉颜色信息,可以使得S3DIS上的性能提升5个点的mIoU. 遗憾的是,相比于神经网络结构的改进,训练策略的进步很少被公开提及和研究。
* 其次,SOTA方法的另一大性能增益来自于模型规模的提升。然而,我们发现,简单地提高PointNet++ 的卷积数量以及channel size无法提高模型的精度。因此,模型缩放策略, 即如何有效地扩展模型的深度(用更多卷积层)和广度(用更大的channel size),是一个很值得研究的话题。
* **基于上述两点,本文做出了如下贡献:** * 我们首次对点云领域的训练策略进行了系统研究,并表明仅采用改进的训练策略,PointNet++ 的性能就可以大幅度提升。 例如,在ScanObjectNN 物体分类任务上的 OA 可以增加 8.2个点,S3DIS 语义分割上的 mIoU 可以增加 13.6个点。改进的训练策略是通用的,可以很容易地应用于提升其他网络的性能(如PointNet[1],DGCNN[9],以及PointMLP[17])。
* 我们提出 PointNeXt,PointNets的下一代版本 (next version)。相比于PointNet++,PointNeXt在扩展模型规模后能实现较大幅度的精度提升。 PointNeXt在所有研究的任务上都超过了 SOTA,包括3D物体分类ScanObjectNN OA 87.8%(PointMLP 85.7%) 、语义分割 S3DIS 6-fold mIoU 74.9%(Point Transformer 73.5%)、物体部分分割ShapeNetPart mIoU 87.2% (CurveNet 86.8%),同时在推理速度上比 SOTA 更快。
2 背景知识:PointNet++
* 
3 方法论: 从 PointNet++到PointNeXt
* 在这一节,我们展示了通过更先进的训练策略以及模型缩放策略提升PointNet++ 的性能。我们从两个小节分别介绍他们:(1)训练策略现代化; (2)网络架构现代化。

* PointNeXt有着和PointNet++ 同样的Set Abstraction和Feature Propagation模块。红框标注处是PointNeXt基于PointNet++ 的改进,包括在模型输入处添加了一层额外的MLP,用于缩放模型架构的Inverted Residual MLP (InvResMLP)模块,以及decoder部分使用与encoder对称的channel size。
3.1 训练策略现代化
* 在这一章节,我们系统并定量化地研究每种数据增强和优化策略。 本章节中,我们简述我们的研究方法, 具体的训练策略可见后续的消融实验章节。
3.1.1 数据增强
* 数据增强是提高神经网络性能的最重要策略之一,因此我们从这里开始进行现代化改造。最初的 PointNet++ 在各种基准测试中使用了随机旋转、缩放、平移和抖动等简单的数据增强组合[30]。最近的方法采用了比 PointNet++ 更强的增强。例如,KPConv[43] 在训练过程中随机丢弃(drop)颜色,Point-BERT[54] 使用常见的点重采样策略从原始点云中随机采样 1 024 个点进行数据缩放,而 RandLA-Net[15] 和 Point Transformer[56] 则在分割任务中加载整个场景作为输入。在本文中,我们通过加法研究量化了每种数据增强的效果。
* 我们以 PointNet++ [30] 为基线开始研究,它是用原始数据增强和优化技术训练出来的。我们移除每个数据增强,检查其是否必要。我们重新添加有用的增强,但删除不必要的增强。然后,我们系统地研究了代表性作品 [46, 43, 32, 56, 28, 54] 中使用的所有数据增强方法,包括数据缩放(如点重采样 [54] 和加载整个场景作为输入 [15])、随机旋转、随机缩放、平移以移动点云、抖动(jitter)以给每个点添加独立噪声、高度附加 [43](即、 高度附加[43](即附加每个点沿物体重力方向的测量值作为附加输入特征)、自动调整色彩对比度的色彩自动对比[56],以及随机替换为零值的颜色。我们逐步验证数据增强的有效性,只保留验证准确率较高的增强项。在本研究的最后,我们为每项任务提供了一系列数据增强方法,这些方法能够最大程度地提高模型的性能。第 4.4.1 节详细介绍并分析了所发现的问题。
3.1.2 优化策略
* 优化技术主要包含损失函数(loss function),优化器(optimizer),学习率计划器(learning rate schedulers),和超参数(hyperparmeters)。随着机器学习理论的发展,现代化的神经网络可以被理论上更好的优化器(如AdamW)和更好的损失函数(CrossEntropy with label smoothing)训练。Cosine learning rate decay也在近年被大量使用,因为相比 step decay,它的调参更为简单而且效果不会差。在这篇工作中,我们通过叠加实验量化了每种优化策略对PointNet++的影响。同样的,针对每一个数据集,我们提出了一组改进的优化技术可以进一步提高网络性能。
3.2 模型架构现代化:小修改 → 大改进
* 在本小节中,我们将PointNet++[30]现代化为提议的PointNeXt。现代化包括两个方面:(1)感受野缩放和(2)模型缩放。
3.2.1 感受野缩放
* 感受野是一个神经网络的重要设计,这里有至少两种方式去增大感受野。
* 采用更大的半径查询邻居 (radius of ball query),
* 采用层次化结构
* 
3.2.2 模型缩放
* PointNet++ 是一个相对较小的网络,PointNet++ 用于分类和分割的模型规模均小于2M。而现在的网络参数普遍在10M以上[3,4]。 有趣的是,我们发现无论是使用更多的SA模块还是使用更大的channel size都不会显着提高准确性,却反而导致thoughput显著下降。这主要是梯度消失和过度拟合导致的。 因此,在本小节中,我们研究如何以有效且高效的方式扩展PointNet++。
* 我们提出了Inverted Residual MLP (InvResMLP)模块以实现高效实用的模型缩放。该模块建立在SA模块上,如图一的中部所示。InvResMLP和SA模块的不同点有三个:
* 为了缓解梯度消失问题 [21](尤其是当网络更深时),我们在模块的输入和输出之间添加了残差连接
* 为了减少计算量,我们引入了可分离的MLP并加强逐点特征提取。SA中的3层MLPs都是基于邻域特征计算的。 InvResMLP将MLPs分为1层作用于邻域特征(在Grouping层和Reduction层之间),剩下两层作用于点特征(Reduction层后)
* 引入inverted bottleneck的设计 [23] 将第二个 MLP 的输出通道扩展了 4 倍,以提高特征提取的能力
* 在PointNet++基础上结合InvResMLP 和图一所示的宏观架构变化,我们提出了PointNeXt。 我们将 stem MLP 的channel大小表示为 C,将 InvResMLP 模块的数量表示为 B。通过改变C和B的值,从而实现PointNeXt在广度和深度层面的缩放。
* 当 B = 0 时,每个阶段仅使用一个 SA 模块且不使用 InvResMLP 模块。 SA 模块有2个MLP 层,每个 SA 模块内部添加一个残差连接(Residual Conntection)。
* 当 B ≠ 0 时,InvResMLP 模块被附加在原始 SA 模块之后。 在这种情况下,SA 模块只有1个 MLP,以减少计算资源。 我们 PointNeXt 系列的配置总结如下:
* PointNeXt-S: C = 32, B = 0
* PointNeXt-B: C = 32, B = (1, 2, 1, 1)
* PointNeXt-L: C = 32, B = (2, 4, 2, 2)
* PointNeXt-XL: C = 64, B = (3, 6, 3, 3)
实验
* 在所有研究的数据集上,PointNeXt超越了现有的SOTA方法,并且在性能和效率上都有很好的表现。 在S3DIS语义分割上,PointNeXt-XL以mIoU/OA/mACC=74.9%/90.3%/83.0%超越了Point Transformer[4]且在推理速度上更快。在ScanObjectNN分类上,PointNeXt-S超越目前的SOTA方法PointMLP[17],且推理速度快十倍。在ShapeNetPart部分分割上,加宽后的模型PointNeXt-S(C=160)达到87.2 Instance mIoU, 超越SOTA CurNet。 值得一提的是,PointNeXt是第一个跨越了87%门槛的基于点的点云识别算法。
* 表一 S3DIS数据集上语意分割的结果(6-fold交叉验证)。 PointNeXt相较于PointNet++的提升用绿色标注了出来。
* 表二 ScanObjectNN数据集(hardest variant)上的分类结果。

* 表三 ShapeNetPart数据集上的分割结果。

消融实验
* 表四,表五和表六展示了分别展示了在ScanObjectNN,S3DIS,以及ShapeNetPart数据集上,对于每种训练策略(数据增强,优化方法)和缩放策略的叠加实验结果。
* 通过叠加实验,我们定量化了每一种策略对模型性能提升的影响,展示出了模型性能一步步提升的过程,对未来的训练策略和缩放策略的研究有一定的启发作用。
对于数据增强,我们有如下结论:
* data scaling如S3DIS中使用全部点云作为输入,ScanObjectNN中点云重采样(训练阶段从2048点中随机采样1024点作为输入),可以稳定地提升网络性能
* height appending,将逐点高度作为额外的输入特征,可以提升网络性能,特别是物体分类任务
* color dropping,随机丢掉颜色信息,可以大幅度提升S3DIS上的分类结果(+5.9 mIoU)
* 越大的模型青睐更强的数据增强手段,例如S3DIS上随机旋转点云会损失小模型(PointNet++, PointNeXt-S)的精度,但是可以提升大模型(PointNeXt-{B,L,XL})的精度
对于优化方法,我们有如下结论:
* AdamW + SmoothCrossEntropy 是一个更强的优化组合
* Cosine Learning Rate Decay 与Step Decay相比更易调参,也能达到SOTA的性能
- 对于缩放策略,我们有如下结论:
- 提出的每一个模型改进(InvResMLP中的每一个部件,以及宏观网络结构的改进)都提升了模型的性能;
- 改进后的模型具有更强的可扩展性。 与naive scaling(增大PointNet++的深度和广度)相比,我们的模型具有显著的性能以及推理速度提升。
- 表四 在 ScanObjectNN 分类数据集上按顺序应用训练和缩放策略的叠加实验。

- 表五 S3DIS 分割数据集上按顺序应用训练和缩放策略的叠加实验。我们使用浅绿色、紫色、黄色和粉色背景颜色分别表示数据增强、优化技术、感受野缩放和模型缩放。

- 表六 ShapeNetPart 分割数据集上按顺序应用训练和缩放策略的叠加实验。

- 此外,如表七所示,我们还将训练策略运用到了不同的神经网络上,对训练策略的可泛化性进行了实验。我们发现了改进训练策略的可泛化性。我们的训练策略可以被用在其他算法,例如PointNet[1],DGCNN[9],以及PointMLP[17]上,并显著提升他们在ScanObjectNN分类任务上的效果。
- 表七 改进训练策略的可泛化性。用改进的训练策略在ScanObjectNN分类数据集上用不同的方法进行了实验。

- 我们使用性能最佳的模型 PointNeXt-XL 作为基线,对模型缩放进行了消融实验。我们在S3DIS Area 5上研究了InvResMLP的每个组件以及stage ratio对性能的影响。同时,我们对比了navide scaling的性能。
- 表八 在S3dis Area 5对于模型结构改变的消融实验。- 代表从baseline去除该模块 TP代表Throughput。

全部评论 (0)
还没有任何评论哟~
