大数跨境
0
0

NeurIPS 22|重振PointNet++雄风!PointNeXt:改进模型训练和缩放策略审视PointNet++

NeurIPS 22|重振PointNet++雄风!PointNeXt:改进模型训练和缩放策略审视PointNet++ 极市平台
2022-12-29
0
导读:性能优于PointMLP、Point Transformer等网络,代码已开源
↑ 点击蓝字 关注极市平台

作者丨CVer 登高居士
来源丨CVer
编辑丨极市平台

极市导读

 

本文通过对模型训练和缩放策略的系统研究重新审视了经典的PointNet++,并提供了两个主要贡献,进而提出PointNeXt,表现SOTA!性能优于PointMLP、Point Transformer等网络,代码已开源! >>加入极市CV技术交流群,走在计算机视觉的最前沿

PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies

单位:KAUST, 微软

代码:https://github.com/guochengqian/pointnext

论文:https://arxiv.org/abs/2206.04670

PointNet++ 是用于点云理解的最有影响力的神经架构之一。尽管 PointNet++ 的准确性已被 PointMLP 和 Point Transformer 等最近的网络在很大程度上超越,但我们发现很大一部分性能提升是由于改进了训练策略,即数据增强和优化技术,以及增加了模型大小而不是架构创新。因此,PointNet++ 的全部潜力还有待探索。

在这项工作中,我们通过对模型训练和缩放策略的系统研究重新审视了经典的 PointNet++,并提供了两个主要贡献。

首先,我们提出了一组改进的训练策略,显著提高了 PointNet++ 的性能。例如,我们表明,在不改变架构的情况下,PointNet++ 在 ScanObjectNN 对象分类上的整体准确率(OA)可以从 77.9% 提高到 86.1%,甚至优于最先进的 PointMLP。

其次,我们将倒置残差瓶颈设计和可分离 MLP 引入 PointNet++,以实现高效且有效的模型缩放,并提出 PointNeXt,即下一版本的 PointNets。

PointNeXt 可以灵活扩展,在 3D 分类和分割任务上都优于最先进的方法。

图一 PointNeXt网络结构

算法细节

在这一节,我们展示了通过更先进的训练策略以及模型缩放策略提升PointNet++ 的性能。我们从两个小节分别介绍他们:(1)训练策略现代化;(2)网络架构现代化。

训练策略现代化

本章节中,我们简述我们的研究方法, 具体的训练策略可见后续的消融实验章节。

数据增强

数据增强是提升神经网络性能的最重要的方法之一,而PointNet++ 使用了简单的数据增强组合如随机旋转,缩放,平移,抖动(jitter)并应用于不同的数据集。最新的一些方法使用了更强的数据增强方法。例如, KPConv在训练时随机的失活(drop)部分颜色信息。在这篇工作中,我们收集了近期方法中用到的常见数据增强方法,并通过叠加实验定量地研究每个数据集上每种数据增强方法的效果。针对每一个数据集,我们提出了一组改进的数据增强方法,其可以大幅度提升了PointNet++ 的性能。

优化策略

优化技术主要包含损失函数(loss function),优化器(optimizer),学习率计划器(learning rate schedulers),和超参数(hyperparmeters)。随着机器学习理论的发展,现代化的神经网络可以被理论上更好的优化器(如AdamW)和更好的损失函数(CrossEntropy with label smoothing)训练。Cosine learning rate decay也在近年被大量使用,因为相比 step decay,它的调参更为简单而且效果不会差。在这篇工作中,我们通过叠加实验量化了每种优化策略对PointNet++的影响。同样的,针对每一个数据集,我们提出了一组改进的优化技术可以进一步提高网络性能。

模型架构现代化:小修改 → 大改进

感受野缩放

在点云网络中,使用不同的ball query radius (查询半径)会影响模型的感受野,进而影响性能。我们发现初始半径对于网络性能有很大程度上的影响,并且不同数据集上最佳查询半径不同。此外,我们发现相对坐标 使得网络优化更难,导致性能下降。因此,我们提出利用相对坐标处以查询半径以实现的归一化:

如果没有归一化,相对坐标的值会非常小(小于半径)。这就要求网络能学习到更大的权重应用于 。这使得优化变得困难,特别是考虑到权重衰减的正则化手段限制了网络权重的大小。

模型缩放

PointNet++ 用于分类和分割的模型规模均小于2M。而现在的网络参数普遍在10M以上[3,4]。有趣的是,我们发现无论是使用更多的SA模块还是使用更大的channel size都不会显著提高准确性,却反而导致thoughput显著下降。这主要是梯度消失和过度拟合导致的。在本小节中,我们提出了Inverted Residual MLP (InvResMLP)模块以实现高效实用的模型缩放。该模块建立在SA模块上,如图一的中部所示。InvResMLP和SA模块的不同点有三个:

  • 在模块的输入和输出之间添加了残差连接, 以缓解梯度消失问题
  • 引入了可分离的MLP 以减少计算量,并增强逐点的特征提取
  • 引入inverted bottleneck的设计,以提高特征提取的能力

在PointNet++基础上结合InvResMLP 和图一所示的宏观架构变化,我们提出了PointNeXt。我们将 stem MLP 的channel大小表示为 C,将 InvResMLP 模块的数量表示为 B。我们 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)

实验

在S3DIS语义分割上,PointNeXt-XL以mIoU/OA/mACC=74.9%/90.3%/83.0%超越了Point Transformer取得SOTA性能且在推理速度上更快。在ScanObjectNN分类上,PointNeXt-S超越目前的SOTA方法PointMLP,且推理速度快十倍。在ShapeNetPart部分分割上,加宽后的模型PointNeXt-S(C=160)达到87.2 Instance mIoU, 超越SOTA CurNet。

消融实验


公众号后台回复“pytorch”,获取Pytorch 官方书籍英文版电子版

极市干货
技术干货数据可视化必须注意的30个小技巧总结如何高效实现矩阵乘?万文长字带你从CUDA初学者的角度入门
实操教程Nvidia Jetson TX2使用TensorRT部署yolov5s模型基于YOLOV5的数据集标注&训练,Windows/Linux/Jetson Nano多平台部署全流程

极市原创作者激励计划 #


极市平台深耕CV开发者领域近5年,拥有一大批优质CV开发者受众,覆盖微信、知乎、B站、微博等多个渠道。通过极市平台,您的文章的观点和看法能分享至更多CV开发者,既能体现文章的价值,又能让文章在视觉圈内得到更大程度上的推广,并且极市还将给予优质的作者可观的稿酬!

我们欢迎领域内的各位来进行投稿或者是宣传自己/团队的工作,让知识成为最为流通的干货!

对于优质内容开发者,极市可推荐至国内优秀出版社合作出书,同时为开发者引荐行业大牛,组织个人分享交流会,推荐名企就业机会等。


投稿须知:
1.作者保证投稿作品为自己的原创作品。
2.极市平台尊重原作者署名权,并支付相应稿费。文章发布后,版权仍属于原作者。
3.原作者可以将文章发在其他平台的个人账号,但需要在文章顶部标明首发于极市平台

投稿方式:
添加小编微信Fengcall(微信号:fengcall19),备注:姓名-投稿
△长按添加极市平台小编
点击阅读原文进入CV社区
获取更多技术干货

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读3.2k
粉丝0
内容8.2k