CVPR 2023 点云系列 | Point-NN无需训练的非参数、即插即用网络

简介: 点云三维数据处理是自动驾驶,场景理解和机器人中的基本操作。点云包含无序点,离散描述三维空间中的物体表面。与基于网格的2D图像不同,它们是分布不规则和排列不变的,这导致了算法设计方面的非常规挑战。

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理


18ec6aad1cddb1b22e38973d6b0ada04.png


我们提出了一种用于 3D 点云分析的非参数网络 Point-NN,它由纯不可学习的组件组成:最远点采样 (FPS)、k 最近邻 (k-NN) 和池化操作,具有三角函数.令人惊讶的是,它在各种 3D 任务上表现良好,不需要参数或训练,甚至超过了现有的完全训练模型。从这个基本的非参数模型开始,我们提出了两个扩展。首先,Point-NN 可以作为基础架构框架,通过简单地在顶部插入线性层来构建参数网络。鉴于优越的非参数基础,派生的 Point-PN 表现出高性能与效率的权衡,只有几个可学习的参数。其次,Point-NN 可以被视为推理过程中已训练的 3D 模型的即插即用模块。Point-NN 捕获互补的几何知识,并在无需重新训练的情况下针对不同的 3D 基准增强现有方法。我们希望我们的工作可以让社区了解使用非参数方法理解 3D 点云。


项目代码:https://github.com/ZrrSkywalker/Point-NN


1.研究背景与动机:


点云三维数据处理是自动驾驶,场景理解和机器人中的基本操作。点云包含无序点,离散描述三维空间中的物体表面。与基于网格的2D图像不同,它们是分布不规则和排列不变的,这导致了算法设计方面的非常规挑战。


自PointNet ++以来,主流趋势是添加高级局部算子和扩展学习参数。提出了以提取局部几何形状(例如,自适应点卷积和类似图形的消息传递)的机制,而不是使用max pooling进行特征聚合。性能提升也来自于扩大参数数量,例如KPConv的14.3M和PointMLP 的12.6M,比PointNet ++的1.7M要大得多。这一趋势增加了网络复杂性和计算资源。


相反,所有可学习模块下的非参数框架自PointNet ++以来几乎保持不变,包括最远点抽样(FPS)k最近邻(k-NN)和池化操作。鉴于很少有研究调查它们的有效性,我们提出问题:能否仅使用这些非参数组件实现高性能的三维点云分析?


2.贡献


我们重新审视现有3D模型中的不可学习组件:最远点抽样(FPS),k最近邻(k-NN)和池化操作构件,并以此提出了Point-NN,这是一个纯非参数网络,用于3D点云分析。


以Point-NN为基本框架,通过在Point-NN的每个阶段插入线性层,引入了其 parameter-efficient 的变体 Point-PN(图a),它在没有先进算子的情况下具有优越的性能。


作为一个即插即用的模块,PointNN可以在推理过程中直接提升各种3D任务中的现成的训练过的模型(图b)


83987521987883f223547153546ea6c6.png


3.方法

3.1Point-NN


Point-NN(Figure 1)由不可学习的组件:最远点抽样(FPS),k最近邻(k-NN)和池化操作构成,它们形成了一个用于提****取3D特征的无参数编码器(Non - Parametric Encoder)以及一个用于特定任务识别的的点记忆库(Point-Memory Bank)。


多阶段编码器逐步采用FPS、k-NN、三角函数和池化操作来聚合局部几何信息,生成点云的高维全局向量。仅采用简单的三角函数来揭示每个池化阶段的局部的空间形态,而没有可学习的算子。然后我们采用Point-NN的无参数编码器来提取训练集的特征并缓存到点记忆库中。


对于测试的点云,通过朴素的特征相似度匹配,点记忆库输出特定任务的预测结果。


daf828e3e73d311abf5fbb9f34db1113.png


3.2 Non-Parametric Encoder


如Figure 3 所示,非参数编码器将P点的X Y Z 左边进行初始嵌入,转化为高维的向量,并经过多级结构逐步聚合成局部形态。


a928ea0dfcdd15a63255b8c695787a87.png


Raw-point Embedding

文章中的原始点嵌入参考了Transformer中的位置编码并将他扩展为3D的无参数嵌入,对于一个原始点的坐标为,我们利用三角函数将其嵌入成维向量。其中代表着三个轴的嵌入,而代表初始维度。以为例,对于通道索引


其中α,β分别控制幅度和波长。由于三角函数的固有特性,变换后的向量可以很好地编码不同点之间的相对位置信息,并捕捉3D形状的精细结构变化。


Local Geometry Aggregation


我们采用四阶段的网络架构来逐层聚合空间局部特征。在使用FPS和k-NN之后,我们放弃任何可学习的运算符Φ(·),而是简单地利用**三角函数PosE(·)**来揭示局部模式。具体而言,对于每个中心点及其邻域,我们旨在实现三个目标。


(1)Feature Expansion


随着网络阶段的加深,每个点特征被分配更大的感受野并需要更高的特征维度来编码3D语义。我们通过将邻居特征与中心特征沿特征维度简单地进行连接来进行这种特征扩展。


(2)Geometry Extraction


为了指示局部区域内k个邻居的空间分布,我们通过相对位置编码对每个进行加权。我们用平均值和标准差对它们的坐标进行归一化,表示为,并通过下面的方程进行嵌入。然后,k个邻居的特征被加权:


(3)Feature Aggregation


称重后,我们利用最大池化和平均池化进行局部特征聚合:


3.3Point-Memory Bank


我们的 Point-NN 不使用传统可学习分类头,而采用点存储器从 3D 训练集中获取足够的类别知识。如图 4 所示,该存储器首先通过无需训练的非参数编码器构建,然后在推理时通过相似度匹配输出预测。


ddaa93f1470c07ffba9c6c146eec0cd8.png


Memory Construction


点记忆库由特征记忆库和标签记忆库。其中:


通过标记,可以将视为3D训练集的编码类别知识。具有相同标签的特征共同描述相同类别的特征,并且嵌入空间距离也可以反映类间区别。


Similarity-based Prediction


对于测试点云,我们还使用非参数编码器提取其全局特征作为,它与特征记忆位于相同的嵌入空间中。然后,通过构建的记忆库简单地通过两个矩阵乘法完成分类。首先,我们通过计算测试特征和之间的余弦相似度来完成:


其中,表示测试点云与每N个训练样本之间的语义相关性。除此之外,我们还将标签存储器中的one -hot标签按加权整合,公式化为:


其中φ(x) = exp(−γ(1−x))为激活函数的一种形式。在中,得分越高的相似特征记忆对最终分类logits的贡献越大,反之亦然。


4.Starting from Point-NN

4.1 As Architectural Frameworks


a51174e697a59e6849b12d34e40a8f19.png


如图5所示,在Point-NN的顶部,我们首先替使用一个传统的可学习的分类头替代点存储库(上图A位置),这个轻量级的版本在ModelNet40上就实现了90.3%的分类准确率,只有0.3M的参数。


为了更好的提取多尺度层次结构,我们在编码器的额每个阶段添加了简单的线性层。在每个阶段,在几何特征提取之前或者之后添加2个可学习的线性层(上图C D E位置),以捕捉更高层次的空间形态。Point-PN在0.8M参数下达到了竞争性的93.8%的精度。


d3bdcd735e25d9f26aaaa5b64b8dbc45.png


4.2 As Plug-and-play Modules


aaefd6d452b0835f7b789db48e125503.png


此外Point-NN也可作为一种即插即用的增强模块,我们可以将其运用在其他网络上。以形状分类为例,我们直接使用线性插值来融合Point-NN和成品模型的分类预测。该设计产生了两种类型的知识集成:来自Point-NN的低级结构信号和经过训练的网络的高级语义知识。


如图6所示,Point-NN提取的点云特征,在锐利的3D结构周围产生高响应值,例如飞机的翼尖、椅子的腿和灯杆。相比之下,经过训练的PointNet++更注重具有丰富语义的3D结构,例如飞机的主体、椅子的底部和灯罩。


对于部分分割和三维物体检测,同时运行额外的Point-NN来增强现有模型会在时间和内存方面都很昂贵。因此,我们直接采用已经训练好的模型的编码器提取点云特征,并仅在其上方应用我们的点存储器,用于即插即用。通过利用相似度匹配和传统可学习分类头之间的互补知识,我们也可以实现性能提升。


101730fb71bb74e20f20014016141c4d.png


5.Experiments

5.1 Shape Classification


01bdfc6fe5750fea682e2fdd38e27044.png

5d2a20d1db32d08c61e7b1a93d0e305b.png



5.2Ablation Study


e004ba904b7f96b6bf3843a9f9e8ece5.png


6.Conclusion


我们重新审视现有 3D 模型中的不可学习部分,并提出 Point-NN,这是一个纯非参数的 3D 点云分析网络。Point-NN 不受任何参数或训练的限制,在各种 3D 任务中都能取得良好的准确性。从 Point-NN 开始,我们提出了其两个有前途的应用:PointPN 的结构框架和性能改进的即插即用模块。广泛的实验已经证明了它的有效性和重要性。对于未来的工作,我们将集中探索更先进的非参数模型,以应用于更广泛的 3D 点云分析场景。

目录
相关文章
|
2月前
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
26天前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。
|
2月前
|
机器学习/深度学习
|
2月前
|
机器学习/深度学习
CNN网络编译和训练
【8月更文挑战第10天】CNN网络编译和训练。
77 20
|
2月前
|
监控 Linux 测试技术
什么是Linux系统的网络参数?
【8月更文挑战第10天】什么是Linux系统的网络参数?
47 5
|
2月前
|
安全 Apache 数据安全/隐私保护
你的Wicket应用安全吗?揭秘在Apache Wicket中实现坚不可摧的安全认证策略
【8月更文挑战第31天】在当前的网络环境中,安全性是任何应用程序的关键考量。Apache Wicket 是一个强大的 Java Web 框架,提供了丰富的工具和组件,帮助开发者构建安全的 Web 应用程序。本文介绍了如何在 Wicket 中实现安全认证,
33 0
|
2月前
|
机器学习/深度学习 数据采集 TensorFlow
从零到精通:TensorFlow与卷积神经网络(CNN)助你成为图像识别高手的终极指南——深入浅出教你搭建首个猫狗分类器,附带实战代码与训练技巧揭秘
【8月更文挑战第31天】本文通过杂文形式介绍了如何利用 TensorFlow 和卷积神经网络(CNN)构建图像识别系统,详细演示了从数据准备、模型构建到训练与评估的全过程。通过具体示例代码,展示了使用 Keras API 训练猫狗分类器的步骤,旨在帮助读者掌握图像识别的核心技术。此外,还探讨了图像识别在物体检测、语义分割等领域的广泛应用前景。
13 0
|
2月前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API两种训练GAN网络的方式
使用Keras API以两种不同方式训练条件生成对抗网络(CGAN)的示例代码:一种是使用train_on_batch方法,另一种是使用tf.GradientTape进行自定义训练循环。
28 5
|
2月前
|
机器学习/深度学习 PyTorch 测试技术
深度学习入门:使用 PyTorch 构建和训练你的第一个神经网络
【8月更文第29天】深度学习是机器学习的一个分支,它利用多层非线性处理单元(即神经网络)来解决复杂的模式识别问题。PyTorch 是一个强大的深度学习框架,它提供了灵活的 API 和动态计算图,非常适合初学者和研究者使用。
35 0
|
2月前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习的奥秘:探索神经网络的构建与训练
【8月更文挑战第28天】本文旨在揭开深度学习的神秘面纱,通过浅显易懂的语言和直观的代码示例,引导读者理解并实践神经网络的构建与训练。我们将从基础概念出发,逐步深入到模型的实际应用,让初学者也能轻松掌握深度学习的核心技能。
下一篇
无影云桌面