写在前面,笔者在阅读该篇文献时,发现当时网络上没有很好的该文献的阅读笔记
故生此拙笔之作。。。
ICLR 2022 ;Rethinking Network Design and Local Geometry in Point Cloud: A Simple Residual MLP Framework
论文地址:Rethinking Network Design and Local Geometry in Point Cloud: A Simple Residual MLP Framework (arxiv.org)
代码地址:PointMLP-Pytorch
PointMLP
纯纯的清新脱俗,化繁为简
作者总结:
作者认为,
show 秀:
有一说一,确实在速度和精度上表现SOTA
文章通过一个简单的前馈残差 MLP 网络(称为 PointMLP)来学习点云表示,该网络分层聚合 MLP 提取的局部特征,并放弃使用精细的局部几何提取器。
详细框架如下图所示:
图 :PointMLP 中一个阶段的概述。给定输入点云,PointMLP 使用残差点 MLP 块 Residual Point Block
逐步提取局部特征。在每个阶段,作者首先使用几何仿射模块 Geometric Affine Module
变换局部点,然后分别在聚合操作之前和之后提取它们(几何特征)。 PointMLP 通过重复多个阶段逐步扩大感受野并模拟完整的点云几何信息。
作者简要介绍了三个代表性的网络结构(不做重点展开)
其中:A表示聚合过程(PointNet++中使用MaxPooling);$\Phi $ 表示特征计算过程(PointNet++中使用MLP);f_ij表示第i个采样点的第j个邻居点的特征
RSCNN …
Point Transformer …
PointMLP的一个阶段(即ResP Block)可以用公式表示为:
式中:
其映射函数可以写成一系列同质的残差 MLP 块:MLP(x) + x,其中 MLP 由 FC、归一化和激活层组合而成(重复两次)。
在分层和深度网络中,需要将上述阶段重复执行(堆叠) s 次。尽管 PointMLP 的框架很简洁,但是:
在实验中,重复执行4次(s=4)阶段,使用KNN(k=24)查找领域点
geometric affine module
**该模块解决的问题:**由于点云的密度不均匀和几何结构不确定性,对于不同的局部区域,需要使用不同的提取器,用以提高性能(精度)
表示为:
式中:
哈达玛积
(Hadamard product)通过这样做,作者将局部点转换为正态分布
,同时保持原始几何属性
为进一步提高效率(速度更快,更轻量级),作者引入 elite
版本,大大提升了训练测试速度,降低了内存要求,虽然精度比PointMLP略微差一点,但也好过大多数
❓ 是如何是实现的?
此外,作者还尝试了分组FC操作,但是实验发现并没有提高性能,就放弃了。
该实验部分细节建议直接看文章中的原图。
在本文中,作者提出了一种简单而强大的架构,名为 PointMLP,用于点云分析。 PointMLP 背后的关键见解是复杂的局部几何提取器可能对性能并不重要。
作者首先用简单的残差 MLP 表示局部点,因为它们是置换不变且简单的。然后作者引入了一个轻量级的几何仿射模块来提高性能。
为了进一步提高效率,作者还引入了一个轻量级网络 PointMLP-elite。
实验结果表明,PointMLP 在简单性和效率方面优于不同基准上的相关工作。
作者希望这个新颖的想法能够激发社区重新思考点云中的网络设计和局部几何。
其实笔者有很多文献笔记,鉴于网络上有更优秀的笔记(同一文献),就不制造网络垃圾了