Abstract
通常情况下研究人员会把点云数据转换为规则的3D体素网格或图像集合。这导致数据不必要的庞大,所以本文引入了一种新型的神经网络,能很好的尊重点云的排列不变性,名称是pointnet,并且能够应用于分类、分割、场景解析等下游任务。同时,网络的架构简单而且非常的高效。
Introduction
首先提到点云是3D几何数据的一种重要类型,但由于其不规则格式,大多数研究者将其转换为规则的3D体素网格或图像集合,导致数据量增加并可能引入量化伪影。
所以本文提出了PointNet,是一种新型的神经网络,能直接处理点云数据,并且很好地尊重了输入点的排列不变性。PointNet提供了一个统一的架构,适用于从物体分类、部件分割到场景语义解析等多种3D识别任务。而且虽然结构简单,pointnet在效率和效果上都很出色。
文章还提供了对pointnet的理论分析,以理解网络学习的内容以及其对输入扰动和损坏的鲁棒性。
PointNet 的应用 适用于分类分割等领域
PointNet的基本架构非常简单,在初始阶段,每个点都以相同的方式独立处理,仅由其三维坐标(x, y, z)表示。网络使用单一对称函数,即最大池化(max pooling),来学习选择点云中有趣或信息丰富的点,并编码选择它们的原因。而最终的全连接层将学习到的最优值聚合成整个形状的全局描述符,用于形状分类或预测每个点的标签。文章还提出了一种数据依赖的空间变换器网络,用于在PointNet处理之前对数据进行规范化,以提高结果。
文章的主要贡献概括如下:
•设计了一种新颖的深度网络架构,适合于在3D中消费无序点集;
•展示了如何训练这样的网络来执行3D形状分类,形状部分分割和场景语义解析任务;
•对方法的稳定性和效率进行了全面的实证和理论分析;
•说明了由网络中选定的神经元计算的3D特征,并对其性能进行了直观的解释。
同时还提到,神经网络处理无序集的问题是一个非常普遍和基本的问题,作者期望这个想法也可以转移到其他领域。
Related Work
这一部分以介绍相关概念为主
Point Cloud Features
这段内容强调了点云特征的设计是为了满足特定任务的需求,并且这些特征需要对某些变换保持不变性。同时,点云特征可以根据其作用范围被分为局部特征和全局特征,而且为特定任务找到最合适的特征组合是一个具有挑战性的问题。
Deep Learning on 3D Data
这段内容讨论了3D数据深度学习的不同方法,包括体素化CNN、多视图CNN、谱CNN和基于特征的DNN,以及它们各自的优势和局限性。
Deep Learning on Unordered Sets
这部分强调了点云作为无序向量集的特性,并指出深度学习领域在处理这类数据结构方面的研究相对较少。同时提到了Oriol Vinyals等人在这一领域的工作,他们尝试使用带有注意力机制的网络来处理无序集,但该研究更多关注于通用集合和NLP应用,没有充分利用点云数据的几何特性。
Problem Statement
这一部分详细描述了所设计的深度学习的框架。点云被表示为一组3D点的集合。为了简化,文中主要使用点的坐标作为特征。
对于物体分类任务,输入的点云可以直接从形状中采样或从场景点云中预分割而来。所提出的深度网络输出所有k个候选类别的k个分数。
对于语义分割任务,输入可以是单个物体用于部分区域分割,或3D场景的子体积用于物体区域分割。模型将为每个点的n个点和每个语义子类别的m个输出n×m个分数。
Deep Learning on Point Sets
这一章分成了三个小部分,分别介绍了点的性质、模型的架构、理论性质的分析。
Properties of Point Sets in Rn
点集是无序的(unordered),意味着网络需要对输入点集中的排列顺序不变。
点之间存在交互(interaction among points),网络需要能够捕捉邻近点的局部结构和组合交互。
点集在变换下是不变的(invariance under transformations),即点集的几何变换不应改变其类别或分割。
PointNet Architecture
作者详细介绍了网络的结构设计,PointNet的架构设计用于直接处理无序的点集,无需事先对点进行排序或转换为规则网格。采用了对称函数,特别是最大池化操作,以确保网络对输入点集的任何排列都具有不变性。每个点首先通过一个共享的多层感知机(MLP),用于提取每个点的局部特征,使用最大池化层来聚合所有点的特征,形成一个全局特征向量,这个向量捕捉了整个点云的总体结构信息。
PointNet架构图。该分类网络以n个点作为输入,进行输入和特征变换,然后通过最大池化对点特征进行聚合。输出是k个类的分类分数。分割网络是分类网络的扩展。它连接全局和局部特征,并输出每个点的分数。“mlp”代表多层感知机,括号内数字为层大小。Batchnorm用于所有带有ReLU的层。Dropout层用于分类网络的最后一个mlp。
分类网络接受n个点作为输入,通过输入变换和特征变换(两个共享的MLP)处理点特征,然后通过最大池化层聚合特征,最终通过一个或多个全连接层输出k个类别的分类得分。分割网络是分类网络的扩展,它在最大池化后将全局特征与局部特征结合,然后通过另一个MLP提取新的局部特征,最后输出每个点的语义类别得分。
其中,T-Net是一个小型的子网络,用于学习输入点云或特征的最佳对齐方式,以提高特征提取的鲁棒性和准确性。为了稳定训练过程,PointNet在特征变换中引入了正则化项,鼓励学习到的变换矩阵接近于正交矩阵,从而保持信息不变性。整个网络是端到端训练的,从原始点云直接到分类或分割结果,无需任何中间的手工特征设计。
Theoretical Analysis
作者首先探讨了网络对于连续集函数的通用逼近能力。他们提出,由于连续集函数的连续性,对输入点集的小扰动不应该导致函数值的大幅度变化。例如,在分类或分割任务中,即使输入点集发生微小变化,分类或分割的分数也不应有太大差异。作者还给出了一个形式化的定理,表明如果一个函数f:X→R是在点集上相对于Hausdorf距离连续的,那么存在一个连续函数h和一个对称函数g,使得对于任何点集S∈X,函数f(S)可以通过g和最大池化操作逼近到任意精度。
接着分析了网络的瓶颈维度和稳定性。他们定义了一个子网络u,它将点集映射到一个固定维度的向量,并且证明了小的输入扰动或噪声点不太可能改变网络的输出。具体来说,如果点集S中的一个关键子集CS被保留,那么无论添加多少额外的噪声点,函数f(S)的输出都保持不变。
此外,这个关键子集的大小受到最大池化层维度K的限制,表明f(S)实际上由点集S的一个有限子集决定,这个子集的大小不超过K。作者进一步解释了这种鲁棒性,将其与机器学习中的稀疏性原则相类比。直观上,PointNet通过一组稀疏的关键点来总结形状。实验部分展示了这些关键点如何形成物体的骨架。
最后,作者通过可视化分析,展示了网络如何识别出对整体形状定义至关重要的点,以及任何包含这些关键点的点云都会产生相同的全局形状特征。这些分析不仅提供了对PointNet工作原理的深入理解,而且证明了网络在实际应用中的稳定性和效率。
Experiment
这个章节分成四个部分,首先,展示了PointNets可以应用于多个3D识别任务。其次,提供了详细的实验来验证网络设计。可视化了网络学习的内容,并分析了时间和空间复杂性。
Applications
这一部分展示了PointNet网络在多个3D识别任务中的应用,包括3D物体分类、物体部分分割和场景语义分割。虽然是第一次应用于点集,但能够实现与现有最先进技术相当或更优的性能。
对于3D物体分类任务,PointNet学习了全局点云特征,这些特征被用于在ModelNet40形状分类基准测试上进行评估。与以往侧重于体积和多视图图像表示的方法不同,PointNet是第一个直接处理原始点云的方法。在训练过程中,通过随机旋转对象以及对每个点的位置添加高斯噪声来进行数据增强。在与其他基于3D输入的方法(包括体积和点云)的比较中,PointNet在推理速度上取得了显著的领先,并且可以很容易地在CPU上并行化。
在3D物体部分分割任务中,PointNet被评估在ShapeNet部分数据集上。PointNet将部分分割任务表述为每个点的分类问题,并使用mIoU作为评估指标。与其他利用点几何特征和形状之间对应关系的传统方法相比,PointNet在大多数类别中都取得了更好的性能,并且在模拟的Kinect扫描数据上测试了这些方法的鲁棒性。
最后,在场景语义分割任务中,PointNet的部件分割版本被扩展应用于场景的语义分割,其中点标签变为语义对象类别而不是对象部分标签。在Stanford 3D语义解析数据集上进行了实验。每个扫描点都使用13个类别中的一个进行注释。PointNet在该数据集上的表现显著优于使用手工设计特征的基线方法,并且能够输出平滑的预测,对缺失点和遮挡具有鲁棒性。
这个部分证明了PointNet在3D识别任务中的多样性和有效性,展示了其在不同基准测试中的性能。
Architecture Design Analysis
这一部分探讨了PointNet架构设计的各个方面,包括对照实验验证设计选择的有效性,以及网络超参数的影响。
作者首先比较了不同的顺序不变性方法。他们使用ModelNet40形状分类问题作为测试基础,比较了在未排序和排序的点上应用多层感知机(MLP)、将输入点视为序列的递归神经网络(RNN),以及基于对称函数的模型。实验结果表明,最大池化操作在性能上取得了显著的优势,从而证实了在PointNet中使用最大池化作为对称函数的选择。
接下来,论文展示了输入和特征转换的有效性。作者通过一系列控制实验展示了输入转换和特征转换(用于对齐)的积极效果。特别是,使用输入转换可以提高0.8%的性能。正则化损失对于高维变换工作是必要的。结合这两种转换和正则化项,可以达到最佳性能。
此外,作者还展示了PointNet对各种输入损坏的鲁棒性。他们使用与先前相同的最大池化网络架构,并将输入点标准化到单位球内。实验结果表明,即使在缺失50%的点时,准确率仅下降了2.4%和3.8%。网络对异常点也具有鲁棒性,如果在训练期间见过这些异常点,即使有20%的点是异常点,网络的准确率仍然可以保持在80%以上。此外,网络对点的扰动也表现出鲁棒性。
最后,论文通过可视化分析,展示了PointNet如何通过稀疏的关键点集来总结形状,这些关键点集在理论上构成了PointNet的全局形状特征。通过可视化关键点集和上界形状,作者展示了PointNet的鲁棒性,即丢失一些非关键点也不会改变全局形状。
Visualizing PointNet
这一部分通过可视化的方式深入探讨了PointNet网络内部的学习过程和关键点集(Critical Point Sets, CS)以及上界形状(Upper-bound Shapes, NS)。这些可视化结果不仅展示了PointNet如何捕捉点云数据的全局结构特征,还揭示了网络对于输入点集的鲁棒性。
作者首先描述了关键点集的概念,这些点集是网络通过最大池化层提取的,并且足以定义给定点云的全局形状特征。可视化结果显示,这些关键点集通常对应于物体的骨架或主要特征,即使在部分点缺失的情况下,也能够保持对整体形状的有效描述。
接着,论文展示了上界形状,这是一种理论上的构造,它包含了所有可能的点云,这些点云与原始输入点云产生相同的全局形状特征。通过这种构造,作者说明了PointNet的鲁棒性——即使输入点云中包含一些非关键点的扰动或缺失,网络的输出仍然保持稳定。
此外,论文还提供了关键点集和上界形状的可视化示例,这些示例展示了在不同形状上PointNet的表现。通过这些示例,读者可以直观地看到网络如何识别和利用点云中的关键信息,并且理解这些关键点如何联合起来定义了物体的整体结构。
最后,论文指出这些可视化结果不仅有助于理解PointNet的工作原理,也为进一步改进网络结构和优化算法提供了有价值的见解。通过观察网络如何响应不同的点集变化,研究人员可以更好地调整网络参数,提高模型的性能和泛化能力。
Time and Space Complexity Analysis
这一部分对PointNet在分类任务中的时间和空间复杂度进行了详尽的分析,并将结果与其他主流的3D数据分类架构进行了比较。
作者首先总结了PointNet的空间复杂度,即网络中的参数数量,以及时间复杂度,即每样本所需的浮点运算次数。他们指出,PointNet在参数数量上远远少于多视图卷积网络(MVCNN)和子体积卷积网络(Subvolume),使得PointNet在空间效率上具有显著优势。
接着,论文对比了PointNet与其他架构的时间复杂度。作者指出,尽管MVCNN和Subvolume通过在输入数据上应用多个旋转或视图的池化操作来提高性能,但PointNet在计算效率上仍然具有数量级的优势。PointNet的计算复杂度与输入点的数量成线性关系(O(N)),与基于卷积的体积方法的时间复杂度随体积大小呈立方增长的特性形成鲜明对比。
此外,作者还强调了PointNet在实际应用中的可扩展性。提出使用NVIDIA 1080X GPU在TensorFlow上运行PointNet时,能够每秒处理超过一百万点的点云分类任务,或者每秒处理大约两个房间的语义分割任务。
最后,论文通过表格形式列出了不同架构的参数数量和每样本的浮点运算次数,直观地展示了PointNet在空间和时间复杂度上的优势。作者证明了PointNet不仅在理论上具有高效的计算特性,而且在实际应用中也展现出了卓越的性能。
Conclusion
在这项工作中,我作者提出了一种新的直接使用点云的深度神经网络PointNet。该网络为许多3D识别任务提供了统一的方法,包括对象分类、部件分割和语义分割,同时在标准基准上获得与最先进的技术相当或更好的结果。同时还提供理论分析和可视化来理解这个网络