来自美国东北大学 SmileLab,哥伦比亚大学的研究者提出一种纯 MLP 的点云网络架构PointMLP,在 ModelNet40、ScanObjectNN 等点云数据集上取得了非常好的结果,并大幅提升了推理速度。
3D 点云数据由于其无序性 (unorderness)、稀疏性(sparisity)和不规则性(irregularity)等特点,往往难以处理。为了描述 3D 数据的几何特征,研究者专注于局部几何的获取,提出各种基于卷积、图卷积或者注意力机制的「复杂的」局部几何描述模块。然而这些操作往往会导致较慢的推理速度,并没有带来实质的提高。
近日,来自美国东北大学和哥伦比亚大学的研究者发现,复杂的局部几何描述模块也许并不是 3D 网络的关键, 一个纯 MLP 架构的网络能取得更好的结果,并且能够大幅提升推理速度。该论文已被 ICLR 2022 接收,代码已经开源。
论文地址:https://arxiv.org/abs/2202.07123
代码地址:https://github.com/ma-xu/pointMLP-pytorch
模型概览
点云已成为 3D 视觉中的热门话题。最近的一些文章通过卷积、图、或注意力机制来提取点云中的局部几何特征。这些方法尽管取得了可喜的结果,但主要依赖于一个前提,即精细的局部提取器对于 3D 点云分析至关重要。然而这类方法也存在一些问题:一方面,由于这些操作会产生大量的计算和内存访问开销,并不能很好地应用于实践;另一方面,更复杂的局部操作设计很难进一步提高性能,因为之前的方法已经很好地描述了局部几何特性。因此,我们可能需要重新考虑复杂的局部特征提取器的必要性,并进一步重新审视点云分析中简洁的设计理念。
在本文中,研究者希望建立一个仅使用残差 MLP 模块进行点云分析的模型,从而无需一些精细的局部特征提取器,这样既避免了由复杂的局部操作引起的高额计算量和持续的内存访问,也利用了高度优化的 MLP 带来的效率优势。为了进一步提高性能和泛化能力,作者引入了一个轻量级的局部几何仿射模块,可以自适应地转换局部区域中的点特征。由此提出的新网络架构称为 PointMLP。下图显示了 PointMLP 在 modelNet40 上与其他网络的速度 / 准确率比较。
PointMLP 的架构非常简单,与传统的点云网络类似, PointMLP 也采用了阶段结构,每一阶段(stage)通过最远点下采样以减少计算量。下图展示了 PointMLP 任意一阶段的操作。
给定输入点云,PointMLP 使用残差点 MLP 块逐步提取局部特征。在每个阶段,PointMLP 首先使用几何仿射模块 (Geometric Affine Module)对局部点进行仿射变换,然后通过几个残差 MLP 模块 (Residual Point Block) 来提取深层的特征。注意此时的局部区域中仍包含多个点,作者通过一个简单的聚合器 (使用的是 max-pooling) 来将局部多个点聚合成一个点以描述局部信息, 并且再次使用残差 MLP 模块来提取特征。
PointMLP 通过重复多个阶段(每个阶段中通道数翻倍) 逐步扩大感受野,并模拟完整的点云几何信息。为了进一步提高推理速度、减轻模型大小,该研究减少了每个阶段的通道数以及残差 MLP 模块的个数,并在残差 MLP 模块中引入了瓶颈 (bottleneck) 结构。研究者将得到的更加轻量化的版本称作 PointMLP-elite。
实验及结果
PointMLP 在多个数据集上大放异彩,刷新了多个数据集的最好成绩。不仅大幅提高了分类的准确率,还提供了更快的推理速度。值得注意的是,在 ScanObject NN 上,PointMLP 取得了 85.4% 的分类准确率(该研究给出代码的准确率达到 86.1%),大幅超越第二名的 82.8%。
总的来说,该研究提出了一种名为 PointMLP 的简单而强大的架构,用于 3D 点云分析。研究者指出复杂的局部几何提取器可能对于 3D 点云而言并不重要。基于此,研究者首先用简单的残差 MLP 抽取局部特征,因为 MLP 是位置置换不变且非常简单高效的, 然后提出了一个轻量级的几何仿射模块来提高性能。为了进一步提高效率,研究者还改进了一个更加轻量级的版本 PointMLP-elite。实验结果表明,PointMLP 在简单性和效率方面超越了以往的相关工作。研究者希望这个新颖的想法能够激发大家重新思考点云中的网络设计和局部几何操作。