当前位置:网站首页>PointNeXt:通过改进的模型训练和缩放策略审视PointNet++
PointNeXt:通过改进的模型训练和缩放策略审视PointNet++
2022-07-04 17:54:00 【马少爷】
PointNet++ 是用于点云理解的最有影响力的神经架构之一。尽管 PointNet++ 的准确性已被 PointMLP 和 Point Transformer 等最近的网络在很大程度上超越,但我们发现很大一部分性能提升是由于改进了训练策略,即数据增强和优化技术,以及增加了模型大小而不是架构创新。因此,PointNet++ 的全部潜力还有待探索。
在这项工作中,我们通过对模型训练和缩放策略的系统研究重新审视了经典的 PointNet++,并提供了两个主要贡献。
首先,我们提出了一组改进的训练策略,显著提高了 PointNet++ 的性能。例如,我们表明,在不改变架构的情况下,PointNet++ 在 ScanObjectNN 对象分类上的整体准确率(OA)可以从 77.9% 提高到 86.1%,甚至优于最先进的 PointMLP。
其次,我们将倒置残差瓶颈设计和可分离 MLP 引入 PointNet++,以实现高效且有效的模型缩放,并提出 PointNeXt,即下一版本的 PointNets。
PointNeXt 可以灵活扩展,在 3D 分类和分割任务上都优于最先进的方法。
论文题目:PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies
详细解读:
https://www.aminer.cn/research_report/62afdfb27cb68b460fd6c4fa?download=false
icon-default.png?t=M5H6https://www.aminer.cn/research_report/62afdfb27cb68b460fd6c4fa?download=false
AMiner链接:https://www.aminer.cn/?f=cs
https://zhuanlan.zhihu.com/p/526818590
本文通过对模型训练和缩放策略的系统研究重新审视了经典的PointNet++,并提供了两个主要贡献,进而提出PointNeXt,表现SOTA!性能优于PointMLP、Point Transformer等网络,代码已开源(5天 90+ star)!

PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies
单位:KAUST, 微软
代码:https://github.com/guochengqian/pointnext
论文:https://www.aminer.cn/pub/62a2b6955aee126c0f4d8e79
PointNet++ 是用于点云理解的最有影响力的神经架构之一。尽管 PointNet++ 的准确性已被 PointMLP 和 Point Transformer 等最近的网络在很大程度上超越,但我们发现很大一部分性能提升是由于改进了训练策略,即数据增强和优化技术,以及增加了模型大小而不是架构创新。因此,PointNet++ 的全部潜力还有待探索。
在这项工作中,我们通过对模型训练和缩放策略的系统研究重新审视了经典的 PointNet++,并提供了两个主要贡献。
首先,我们提出了一组改进的训练策略,显著提高了 PointNet++ 的性能。例如,我们表明,在不改变架构的情况下,PointNet++ 在 ScanObjectNN 对象分类上的整体准确率(OA)可以从 77.9% 提高到 86.1%,甚至优于最先进的 PointMLP。
其次,我们将倒置残差瓶颈设计和可分离 MLP 引入 PointNet++,以实现高效且有效的模型缩放,并提出 PointNeXt,即下一版本的 PointNets。
PointNeXt 可以灵活扩展,在 3D 分类和分割任务上都优于最先进的方法。

在这一节,我们展示了通过更先进的训练策略以及模型缩放策略提升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 以减少计算量,并增强逐点的特征提取
- 引入invertedbottleneck的设计,以提高特征提取的能力
在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。


消融实验

边栏推荐
- Have you guys ever used CDC direct Mysql to Clickhouse
- sqlserver的CDC第一次查询的能读取到数据,但后面增删改读取不到,是什么原因
- One question per day (2022-07-02) - Minimum refueling times
- Is Guoyuan futures a regular platform? Is it safe to open an account in Guoyuan futures?
- 大佬们,求助一下,我用mysql cdc 2.2.1(flink 1.14.5)写入kafka,设置
- LeetCode 赎金信 C#解答
- IBM WebSphere MQ检索邮件
- Go microservice (II) - detailed introduction to protobuf
- 资料下载 丨首届腾讯技术开放日课程精华!
- Go微服务(二)——Protobuf详细入门
猜你喜欢

MySQL数据库基本操作-DDL | 黑马程序员

Rookie post station management system based on C language

神经网络物联网是什么意思通俗的解释

The 300th weekly match of leetcode (20220703)

Nebula importer data import practice
![[release] a tool for testing WebService and database connection - dbtest v1.0](/img/4e/4154fec22035725d6c7aecd3371b05.jpg)
[release] a tool for testing WebService and database connection - dbtest v1.0

Process of manually encrypt the mass-producing firmware and programming ESP devices

与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用

小发猫物联网平台搭建与应用模型

Basic tutorial of scala -- 16 -- generics
随机推荐
小发猫物联网平台搭建与应用模型
1672. 最富有客户的资产总量
每日一题(2022-07-02)——最低加油次数
Detailed explanation of issues related to SSL certificate renewal
26. Delete the duplicate item C solution in the ordered array
Caché JSON 使用JSON适配器
LeetCode 赎金信 C#解答
6.26cf simulation race e: solution to the problem of price maximization
Summary and sorting of 8 pits of redis distributed lock
Leetcode ransom letter C # answer
Oracle with as ora-00903: invalid table name multi report error
性能优化之关键渲染路径
2022养生展,健康展,北京大健康展,健康产业展11月举办
模板_判断素数_开方 / 六素数法
LM10丨余弦波动顺势网格策略
读写关闭的channel是啥后果?
Technologie de base de la programmation Shell IV
Caché WebSocket
Scala basic tutorial -- 12 -- Reading and writing data
Shell 编程核心技术《三》