【点云处理之论文狂读前沿版1】——Rethinking Network Design and Local Geometry in Point Cloud: A Simple Residual MLP

本文主要是介绍【点云处理之论文狂读前沿版1】——Rethinking Network Design and Local Geometry in Point Cloud: A Simple Residual MLP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

重新审视点云处理中的网络设计和局部几何结构——一个简单的残差MLP框架

  • 1.摘要
  • 2.引言
  • 2.相关工作
  • 3.方法
    • 3.1 Revisiting point-based methods
    • 3.2 PointMLP的框架结构
    • 3.3 Geometric Affine Module
    • 3.4 计算复杂度和Elite版
  • 4.实验
    • 4.1 Shape classification on ModelNet
    • 4.2 Shape classification on ScanObjectNN
    • 4.3 消融实验
    • 4.4 Part segmentation
    • 5.结论
  • 6. 附录
    • 6.1 PointMLP detail
    • 6.2 Experiment setting detail
    • 6.3 More detialed ablation studies
    • 6.4 PointMLP depth
  • 论文写作亮点

1.摘要

  1. 点云的局部几何结构可能并不是点云处理的关键。
  2. 提出了一个基于纯残差的MLP网络——PointMLP。
  3. 网络不考虑点云的局部信息,结构简单,推理速度更快,性能更好。
  4. 搭配一个轻量版的几何放射模块(geometric affine module),效果更佳。
  5. 代码地址:https://github.com/ma-xu/pointMLP-pytorch

2.引言

  1. 点云的特性:无序性、不规则性、稀疏性、敏感性
  2. 点云的应用:分类、语义分割、目标检测
  3. 之前对于点云的局部几何结构提取已经做的够好了,我们应该反过头来看看局部几何结构到底有没有必要考虑,网络上有没有什么可以改变的?
  4. 本文只用基于残差的MLP网络,其他啥也不用。
  5. 如果再加上local geometric affine module,自适应地对特征进行变换,那就更好啦。
  6. 我们提出的PointMLP又简单,效果又好,不信你看下图。

2.相关工作

点云分析

  1. Voxels & image
  2. Original point cloud

局部几何结构

  1. convolution-based methods (PointConv/2019, PAConv/2021)
  2. graph-based methods (DGCNN/2019, 3D-GCN/2021)
  3. attention-based methods(PCT, Point Transformer)

适用于点云的深度网络框架

就在最近,由于简洁MLP结构的高效和可扩展性,受到了很多地关注,因此,我们不再盲目跟风。

3.方法

feed-forward residual MLP network + geometric affine module

3.1 Revisiting point-based methods

给定一组点云 P = { p i ∣ i = 1 , ⋯ , N } ∈ R N × 3 \mathcal{P}=\left\{p_{i} \mid i=1, \cdots, N\right\} \in \mathbb{R}^{N \times 3} P={pii=1,,N}RN×3 N N N 表示点云的数量, ( x , y , z ) (x, y, z) (x,y,z)表示笛卡尔坐标系下的坐标。

简单介绍下PointNet++

简单介绍下RSCNN

简单介绍下Point Transformer

3.2 PointMLP的框架结构

PointML一个阶段的整体架构 给定一组点云, PointMLP使用residual point MLP blocks逐步地抽取局部信息。在每个阶段中,首先使用geometric affine module,然后分别在聚合操作之前和之后提取它们。通过连续使用多个阶段,PointMLP不断地增大感受野并对完整的点云几何结构信息进行建模。

整个结构用数学语言表示为:

g i = Φ pos  ( A ( Φ pre  ( f i , j ) , ∣ j = 1 , ⋯ , K ) ) g_{i}=\Phi_{\text {pos }}\left(\mathcal{A}\left(\Phi_{\text {pre }}\left(f_{i, j}\right), \mid j=1, \cdots, K\right)\right) gi=Φpos (A(Φpre (fi,j),j=1,,K))

其中 Φ pre  ( ⋅ ) \Phi_{\text {pre }}(\cdot) Φpre () Φ pos  ( ⋅ ) \Phi_{\text {pos }}(\cdot) Φpos ()是residual point MLP blocks:

  • Φ pre  ( ⋅ ) \Phi_{\text {pre }}(\cdot) Φpre ()用于从局部区域学习共享权值
  • Φ pos  ( ⋅ ) \Phi_{\text {pos }}(\cdot) Φpos ()用于提取深度聚合特征

具体而言,残差块里包含了许多一样的MLP组合(MLP ( x ) + x (x)+x (x)+x):MLP(FC)+normalization+ activation layers(重复两次)

A ( ⋅ ) \mathcal{A}(\cdot) A() 表示max-pooling

上式只表示一个阶段,可以重复 s s s次。

PointMLP有着如下优点:

  1. MLP结构使得处理点云时具有序列不变性。
  2. 残差的引入可以使得网络构造的更深。
  3. 没有复杂的特征提取器,主要的就是feed-forward MLP

在没有提前声明的情况下, s = 4 s=4 s=4,2个 Φ pre  ( ⋅ ) \Phi_{\text {pre }}(\cdot) Φpre (),2个 Φ pos  ( ⋅ ) \Phi_{\text {pos }}(\cdot) Φpos ()。选择k-nearest neighbors算法提取邻居, K = 24 K=24 K=24

3.3 Geometric Affine Module

由于点云的局部区域就具有稀疏和不规则性,只使用间的MLP网络的性能并不好。不同局部区域的多个几何结构可能需要不同的提取设备,但共享的残留MLP难以实现这一点。

{ f i , j } j = 1 , ⋯ , k ∈ \left\{f_{i, j}\right\}_{j=1, \cdots, k} \in {fi,j}j=1,,k R k × d \mathbb{R}^{k \times d} Rk×d表示 f i ∈ R d f_{i} \in \mathbb{R}^{d} fiRd 的邻居,有 k k k个点,每个邻居点 f i , j f_{i, j} fi,j 是一个 d d d维向量。将局部相邻的点变换为:

{ f i , j } = α ⊙ { f i , j } − f i σ + ϵ + β , σ = 1 k × n × d ∑ i = 1 n ∑ j = 1 k ( f i , j − f i ) 2 , \left\{f_{i, j}\right\}=\alpha \odot \frac{\left\{f_{i, j}\right\}-f_{i}}{\sigma+\epsilon}+\beta, \quad \sigma=\sqrt{\frac{1}{k \times n \times d} \sum_{i=1}^{n} \sum_{j=1}^{k}\left(f_{i, j}-f_{i}\right)^{2}}, {fi,j}=ασ+ϵ{fi,j}fi+β,σ=k×n×d1i=1nj=1k(fi,jfi)2 ,

其中 α ∈ R d \alpha \in \mathbb{R}^{d} αRd β ∈ R d \beta \in \mathbb{R}^{d} βRd是可学习的参数, ⊙ \odot 表示两个矩阵元素间相乘, ϵ = \epsilon= ϵ= 1 e − 5 1 e^{-5} 1e5是一个为了数值稳定性的数。 σ \sigma σ 是系数,描述了所有局部和通道的特征差异,并保留了原始的几何特征。

3.4 计算复杂度和Elite版

全连接层参数很多,复杂度也很高,提出了bottleneck结构。我们选择将中间FC层的通道数减少 r r r倍,并增加通道数作为原始特征映射。

在PointMLP-elite中, r = 4 r=4 r=4

4.实验

4.1 Shape classification on ModelNet

ModelNet40:40个类别,9843个训练模型,2468个测试模型。
Metric:class-average accuracy (mAcc)和overall accuracy (OA)

训练了300个epochs

模型的复杂度不能直接反应效能。

4.2 Shape classification on ScanObjectNN

ScanObjectNN:真实世界中的重建模型,它包含15000个对象,这些对象分为15个类,在现实世界中有2902个唯一的对象实例。数据集中存在噪声、遮挡,选择最难的PB_T50_RS。

e p o c h s = 200 , b a t c h = 32 epochs=200, batch=32 epochs=200,batch=32,训练了四次,并将标准差记录在下表中。

类别整体精度和平均精度很相近,证明方法很鲁棒。

4.3 消融实验

网络深度

  1. 层数越多,效果不一定越好,但是标准差会变小
  2. 无论哪种深度,效果都比现在最优的效果好

Geometric Affine Module

  1. the geometric affine module将局部输入特征映射为normal分布,更容易训练
  2. the geometric affine module通过局部质心和方差的通道距离对局部几何信息进行隐式编码,弥补了几何信息的不足。
  3. 结果更鲁棒。

成份消融实验

Loss landscape

4.4 Part segmentation

ShapeNetPart:16个类别,16,881个形状,每个物体的部分为2-6个。

5.结论

  1. residual MLPs
  2. geometric affine module
  3. PointMLP-elite

6. 附录

6.1 PointMLP detail

PointMLP 和 PointMLP-elite有着以下的区别:

  1. 减少了residual point MLP blocks的数量
  2. Embedding的维度从64减少到32
  3. 通过引入bottleneck结构,参数减少了4倍

6.2 Experiment setting detail

ModelNet40

PyTorch + Tesla V100 GPU
epochs =300
batchsize = 32
synchronous SGD
Nesterov momentum = 0.9
weight decay = 0.0002
initial learning rate = 0.1
input point = 1024

ScanObjectNN

epochs =200
其他参数同上

ShapeNetPart
input point = 2048
range = [0.67, 1.5]
其他参数同PointNet一样

6.3 More detialed ablation studies

Skip connection

试着在PointNet++上加了两个skip connection,在ModelNet40上的分类精度变为92.7%。

Pre-MLP block vs. Pos-MLP block

去掉Pos-MLP block的话效果会变得不好,表明

  1. Pos-MLP block还是很重要的
  2. 增加Pre-MLP block的数量没有必要

Geometric Affine Module Applications

将Geometric Affine Module用到PointNet++上,在ModelNet40上的分类精度提高到了93.3%。

将Geometric Affine Module用到DGCNN上的效果反而变差了。

6.4 PointMLP depth

网络深度计算公式:

L = 1 + ∑ i = 1 4 ( 1 + 2 × Pre ⁡ i + 2 × Pos ⁡ i ) + 3 L=1+\sum_{i=1}^{4}\left(1+2 \times \operatorname{Pre}_{i}+2 \times \operatorname{Pos}_{i}\right)+3 L=1+i=14(1+2×Prei+2×Posi)+3

Pre ⁡ i \operatorname{Pre}_{i} Prei表示 Φ pre  \Phi_{\text {pre }} Φpre 的重复数量, Pos ⁡ i \operatorname{Pos}_{i} Posi表示 Φ pos  \Phi_{\text {pos }} Φpos 的重复数量,不算Batch Normalization和activation functions,每个块里有两个MLP层,最终的网络深度配置如下图所示。

论文写作亮点

  1. unfavorable latency 不利的因素
  2. Lately 最近
  3. endow 赋予… v.
  4. gratifying 令人满足的 adj.
  5. saturate 简单的、紧凑的 adj.
  6. eschew 避免 v.
  7. regime 体系 n.
  8. seamlessly 无限接近地 adv.
  9. flesh out 使…丰满,充实 v.
  10. Unless explicitly stated
  11. outbeat 胜过 v.

这篇关于【点云处理之论文狂读前沿版1】——Rethinking Network Design and Local Geometry in Point Cloud: A Simple Residual MLP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/204743

相关文章

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失