当前位置: 首页 > news >正文

PointNet++改进策略 :模块改进 | PointNetXt ,利用训练测量大幅提升PointNet模型性能

Pasted image 20240916090629

  • 论文题目:PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies
  • 发布期刊:NeurIPS
  • 通讯地址:1阿卜杜拉国王科技大学 (KAUST)、2微软研究院
  • 代码地址:https://github.com/guochengqian/pointnext

介绍

这篇名为《PointNeXt: Revisiting PointNet++ with Improved Training and Scaling Strategies》的论文主要讨论了对经典的3D点云网络架构PointNet++进行的改进。作者提出了新的训练策略和模型扩展方法,旨在提高PointNet++的性能。论文的核心观点和贡献包括:

  1. 改进训练策略:通过系统地研究数据增强和优化技术,作者发现很多新网络(如PointMLP和Point Transformer)性能提升主要是由于更好的训练策略而非架构上的创新。因此,作者提出了一组改进的训练方法,使得PointNet++的性能大幅提升。例如,在ScanObjectNN数据集上的分类准确率从77.9%提升至86.1%,超越了最新的PointMLP方法。
  2. 引入PointNeXt架构:作者通过在PointNet++中引入倒置残差瓶颈设计和可分离MLP(多层感知机),提出了新架构PointNeXt。PointNeXt可以进行灵活的模型扩展,在3D分类和分割任务中超越了最先进的模型,并且推理速度更快。
  3. 系统性分析与实验验证:通过在多个基准数据集上的实验,如ScanObjectNN、S3DIS等,论文证明了改进训练策略和模型扩展的有效性。PointNeXt在语义分割任务中达到了新的SOTA(State-of-the-art)水平,并且在分类任务中比PointMLP快10倍。

Pasted image 20240916092021

核心思想及其实现

PointNeXt的核心思想是在经典的3D点云处理架构PointNet++的基础上,通过改进训练策略和模型扩展方法,充分挖掘其潜力,使其能够达到并超越当前最先进的方法(SOTA),而不依赖于复杂的架构创新。

  1. 优化训练策略:许多现代3D点云网络(如PointMLP、Point Transformer)性能的提升更多依赖于训练策略的改进,而非架构上的重大变革。因此,PointNeXt通过系统研究现代训练方法,尤其是数据增强和优化技术,来提升PointNet++的表现。
  2. 模型扩展与优化:PointNet++的原始架构虽然有效,但其规模较小,难以适应更大规模的数据或更复杂的任务。因此,PointNeXt通过在架构上引入倒置残差瓶颈(Inverted Residual Bottleneck)和可分离MLP(Separable MLP),使得模型能够更有效地扩展,同时提高性能和推理速度。

优化训练策略

  1. 训练现代化(Training Modernization)
    • 数据增强:作者系统性地研究了各种数据增强策略的影响,包括点采样(point resampling)、高度附加(height appending)、随机颜色丢弃(color drop)等。这些策略可以显著提升PointNet++在不同任务上的表现。
    • 优化技术:通过优化损失函数、优化器(如AdamW取代Adam)和学习率调度器(如Cosine Decay),进一步提升了模型的训练效果。比如,使用标签平滑(label smoothing)可以提高分类任务的准确率。
      Pasted image 20240916092121
      表在 ScanObjectNN 上顺序应用训练和缩放策略进行分类的附加研究。我们使用浅绿色、紫色、黄色和粉色背景颜色分别表示数据增强、优化技术、感受野缩放和模型缩放。

Pasted image 20240916092201
表在 S3DIS area 5 上顺序应用训练和缩放策略进行分割的附加研究。+/- 表示采用/删除策略。

PointNetXt架构

  1. 架构现代化(Architecture Modernization)
    • 感受野扩展:通过调整查询邻域的半径和使用相对位置归一化(Relative Position Normalization),增加网络的感受野,使其能够更好地捕捉局部几何信息。
    • 模型扩展
      • 倒置残差瓶颈(Inverted Residual Bottleneck):在原始PointNet++的“Set Abstraction”模块中引入了残差连接,解决梯度消失问题,允许更深的网络训练。并通过倒置残差设计,扩展MLP层的输出通道以丰富特征表示。
      • 可分离MLP(Separable MLP):通过将原有MLP分离为处理邻域特征和点特征的单独层,减少计算量并提高模型的效率。
      • 宏观架构调整:统一了分类和分割任务中的编码器设计,并加入了额外的MLP层来增强输入特征的表示能力。
        Pasted image 20240916092104

模型变体的设计

根据需求和任务的复杂度,PointNeXt设计了不同规模的变体,如PointNeXt-S、PointNeXt-B、PointNeXt-L等,通过调整模型的宽度(通道数)和深度(层数),实现灵活的扩展,适应不同的3D点云任务。

Pasted image 20240916092032

如何改进PointNet++

要利用PointNeXt的思想改进PointNet++,可以从以下几个方面入手,通过优化训练策略和模型架构来提升PointNet++的性能:

改进训练策略

训练策略的优化是PointNeXt提升性能的关键因素之一。通过以下几种方法可以显著提高PointNet++的表现:

数据增强使用更强大的数据增强方法来提升模型的泛化能力。具体策略包括:

  • 点采样(Point Resampling):在训练期间随机采样点云中的点数,并在测试时使用均匀采样。这可以提高模型对不同点云分布的鲁棒性。
  • 高度附加(Height Appending):为点云中的每个点增加一个高度维度,使模型能够感知点云的空间分布。
  • 随机颜色丢弃(Color Drop):对点云中的颜色信息进行随机丢弃,迫使模型更加关注几何结构而非颜色,从而提高模型的泛化能力。
  • 随机旋转、缩放、平移:对点云进行随机的旋转、缩放和平移,增加训练数据的多样性。

使用更先进的优化技术来提高模型的训练效果:

  • 标签平滑(Label Smoothing):在训练过程中加入标签平滑技术,可以减少模型过拟合,并提高分类任务的表现。
  • AdamW优化器:相比于传统的Adam优化器,AdamW可以更好地控制权重衰减,从而提升模型的泛化能力。
  • Cosine Decay学习率调度器:使用Cosine Decay替代Step Decay,以更平滑地调整学习率,从而提高模型的收敛速度和性能。

架构优化

在模型架构方面,PointNeXt通过对PointNet++的扩展和改进,实现了更高的性能。可以参考以下几种方法来改进PointNet++的架构:

倒置残差瓶颈(Inverted Residual Bottleneck)

在PointNet++的每个Set Abstraction(SA)模块中引入倒置残差瓶颈设计:

  • 残差连接(Residual Connections):通过加入残差连接,可以缓解梯度消失问题,允许网络变得更深而不会影响性能。
  • 倒置残差设计:在MLP层中扩展特征维度,然后再进行降维处理,使得网络可以更有效地提取丰富的特征。
可分离MLP(Separable MLP)

在PointNet++的MLP层中引入可分离MLP设计,降低计算复杂度并提升特征提取的效率:

  • 邻域特征与点特征分离:将MLP分为处理邻域特征的层和处理单点特征的层,从而降低计算成本,并提升模型对几何结构的处理能力。
感受野扩展

通过扩展感受野来提升PointNet++在捕捉局部几何结构时的表现:

  • 查询邻域半径缩放:针对不同数据集的特点,调整查询邻域的半径大小,使模型能够更好地捕捉到有效的局部信息。
  • 相对位置归一化(Relative Position Normalization):将相对坐标归一化处理,使模型的优化过程更加稳定。
宏观架构调整

可以对PointNet++的宏观架构进行一些调整,使其更具扩展性:

  • 增加更多的层数:在分类任务中,PointNet++的编码器只有2个阶段,而分割任务中有4个阶段。可以在分类任务中增加更多的Set Abstraction层,以增强模型的表示能力。
  • 对称的解码器:在解码器部分调整通道大小,使其与编码器保持一致,从而增强信息恢复的能力。
  • 引入初始MLP层:在输入点云进入网络之前,添加一个额外的MLP层,将点云特征映射到更高维度,有助于提升后续层的特征提取效果。

模型扩展

根据任务的需求,PointNeXt提供了灵活的模型扩展方案。你可以通过调整以下两个方面来扩展PointNet++的模型规模:

  • 深度扩展:增加更多的网络层(如增加SA层或倒置残差瓶颈层),让模型变得更深,以提取更复杂的特征。
  • 宽度扩展:增加每层的通道数,使网络能够处理更多的特征信息。

http://www.mrgr.cn/news/27926.html

相关文章:

  • Qt Quazip压缩解压实例
  • 多轮对话中让AI保持长期记忆的8种优化方式篇
  • Ubuntu22.04.2 k8s部署
  • 【ChatGPT】让ChatGPT生成批判性思维问题的回答
  • ChatGPT学术专用版,一键润色纠错+中英互译+批量翻译PDF
  • 刷别的学校oj—河工大oj1073-1099
  • 如何迈向IT行业的成功之路
  • 智能机巢+无人机:自动化巡检技术详解
  • redisson实现分布式锁
  • 基于yolov5的混凝土缺陷检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑生产环节内特性的工业负荷调峰优化运行及二次调频能力评估 》
  • 建筑裂缝检测图像ai模型训练数据集
  • 利用Python在Win10环境下实现拨号上网
  • PHP环境搭建
  • 解码 OpenAI 的 o1 系列大型语言模型
  • Linux查看自己公网IP
  • java 网络编程URL与URLConnection的使用
  • AIGC实战——多模态模型Flamingo
  • 使用EXPORT_SYMBOL
  • Python编程 - 异常处理与文件读写
  • 拒绝低效!开发者必备AI工具助你事半功倍!
  • Sitecore 定时任务使用介绍
  • python多线程程序设计 之一
  • 【Python爬虫系列】_022.异步文件操作aiofiles
  • Python快速入门 —— 第二节:函数与控制语句
  • comfyui中,sam detector与yoloworld图像分割算法测试以及影响