摘要
点云是一种重要的几何数据结构类型。由于其不规则的格式,大多数研究人员将这些数据转换成规则的三维体素网格或图像集合。这使得数据非要地大量增加而造成问题。本文设计了一种直接消耗点云的新型神经网络,充分考虑了输入点的置换不变性。我们的网络名为PointNet,为从对象分类、部分分割到场景语义解析的应用提供了统一的体系结构。虽然简单,但PointNet是非常高效的。从经验上看,它表现出与现有技术相当甚至更好的性能。从理论上讲,我们分析了网络已经学习了什么,以及为什么网络对于输入扰动和破坏具有鲁棒性。
1.简介
在本文中,我们探索了能够推理3D几何数据(如点云或网格)的深度学习架构。典型的卷积架构需要高度规则的输入数据格式,比如图像网格或3D立体像素,以便执行权重共享和其他内核优化。由于点云或网格不是一种规则的格式,大多数研究人员通常会将这些数据转换成规则的3D体素网格或图像集合(例如视图),然后再将它们送入深度网络架构中。然而,此数据表示转换将呈现结果。
由于这个原因,我们关注于使用点云为3D几何图形提供不同的输入表示,并将结果命名为PointNets。点云是一种简单统一的结构,避免了网格的组合不规则性和复杂性,因此更容易学习。然而,PointNet仍然必须尊重这样一个事实,即点云只是一组点,因此对其成员的排列是不变的,因此在网络计算中需要某些对称。进一步的刚性运动不变性也需要考虑。
我们的PointNet是一个统一的体系结构,它直接将点云作为输入和输出,或者作为整个输入的类标签,或者作为每个输入点的每个点段/部分标签。我们的网络的基本架构是惊人的简单,因为在最初的阶段,每个点都是相同的和独立的处理。在基本设置中,每个点只用它的三个坐标(x, y, z)来表示,可以通过计算法线和其他局部或全局特征来增加额外的维度。
我们的方法的关键是使用一个单一的对称函数,最大池。网络有效地学习一组优化函数/标准,这些优化函数/标准选择点云中感兴趣的或有信息性的点,并对其选择的原因进行编码。最终的网络全连接层将这些学习到的最优值聚合成上面提到的整个形状的全局描述符(形状分类)或用于预测每个点标签(形状分割)。
我们的输入格式很容易应用刚性或仿射变换,因为每个点都独立变换。因此,我们可以添加一个依赖于数据的空间转换器网络,在PointNet处理数据之前尝试规范化数据,从而进一步提高结果。
图1:点云网络的应用
我们对我们的方法进行了理论分析和实验评估。我们证明了我们的网络可以近似任何连续集函数。更有趣的是,我们的网络学会了通过一组稀疏的关键点来总结一个输入点云,这大致相当于根据可视化得到的对象的骨架。理论分析帮助我们理解为什么我们的点网对于输入点的小扰动以及通过点插入(离群值)或删除(丢失数据)造成的破坏具有高度的鲁棒性。
在一些基准数据集上,从形状分类,部分分割到场景分割,我们实验比较我们的点网与先进的基于多视图和体积表示的方法。在统一架构下,我们的PointNet不仅在速度上快得多,而且还展示了与当前技术水平相当甚至更好的强大性能。
我们工作的主要贡献如下:
• 我们设计了一种新的深度网络结构,适用于三维空间中对无序点集的处理;
• 我们展示了如何训练这样一个网络来执行三维形状分类,形状部分分割和场景语义解析任务;
• 我们对我们的方法的稳定性和效率提供了全面的经验和理论分析;
• 我们举例说明由网络中选定的神经元计算出的三维特征,并对其性能发展出直观的解释。
神经网络处理无序集的问题是一个非常普遍和基本的问题——我们希望我们的想法也可以转移到其他领域。
2.相关工作
点云特性大多数现有的点云特性都是针对特定任务手工制作的。点特征通常编码点的某些统计性质,并被设计为对某些变换不变性,通常被分为内在或外在。它们也可以分为局部特征和全局特征。对于一个特定的任务,找到最优的特征组合是很重要的。
3D数据的深度学习 3D数据有多种流行的表示形式,这导致了不同的学习方法。Volumetric CNNs是将三维卷积神经网络应用于体素化形状的先驱。但是,由于数据稀疏性和三维卷积的计算代价,体积表示受到分辨率的限制。FPNN[12]和Vote3D[23]提出了处理稀疏性问题的特殊方法;但是,他们的操作仍然是在稀疏的卷上进行的,对他们来说处理非常大的点云是一个挑战。Multiview CNNs尝试将3D点云或形状渲染成2D图像,然后应用2D conv网对其进行分类。在经过良好设计的图像神经网络中,这类方法在形状分类和检索任务中取得了显著的效果。然而,将它们扩展到场景理解或其他3D任务(如点分类和形状完成)并非易事。一些最新的研究在网格上使用了Spectral CNNs。然而,这些方法目前还局限于有机物体等多种网格,如何将其推广到家具等非等距形状上还不是很明显。基于特征的DNNs:[6,8]首先将三维数据转化为矢量,提取传统的形状特征,然后利用全连通网络对形状进行分类。我们认为它们受到了提取特征的表示能力的限制。
对无序集的深度学习 从数据结构的角度来看,点云是一组无序的向量。虽然深度学习的大部分工作都集中在常规输入表示上,如序列(语音和语言处理)、图像和海量(视频或3D数据),但在点集深度学习上做的工作并不多。Oriol Vinyals等人最近的一项研究研究了这个问题。他们使用带有注意机制的读-进程-写网络来使用无序的输入集,并显示他们的网络具有排序数字的能力。然而,由于他们的工作集中在泛型集和自然语言处理的应用,缺乏几何在集的作用
3.问题陈述
我们设计了一个直接使用无序点集作为输入的深度学习框架。点云表示为一组3D点{Pi| i = 1,…, n},其中每个点Pi是其(x, y, z)坐标加上额外特征通道(如颜色,法线等)的向量。为了简单明了,除非另有说明,我们只使用(x, y, z)坐标作为点的通道。
对于目标分类任务,输入点云是直接从一个形状采样或从一个场景点云预分割。我们提出的深度网络对所有的k个候选类输出k个分数。对于语义分割,输入可以是单个对象进行局部区域分割,也可以是三维场景中的子体进行对象区域分割。我们的模型将为每n个点和每m个语义子类别输出n×m个分数。
4.点集的深度学习
我们网络的架构(第4.2节)是受到Rn(第4.1节)中点集的性质的启发
4.1 Rn中点集的性质
我们的输入是欧几里得空间中点的子集。它有三个主要特性:
• 无序。与图像中的像素数组或体网格中的体素数组不同,点云是一组没有特定顺序的点。换句话说,一个消耗N个3D点集的网络需要对N!不变量按数据输入顺序排列输入集.
• 点之间的相互作用。这些点来自一个有距离度量的空间。它意味着点不是孤立的,相邻的点形成一个有意义的子集。因此,该模型需要能够从附近的点获取局部结构,以及局部结构之间的组合相互作用。
• 转换的不变性。作为一个几何对象,学习过的点集的表示应该对某些转换是不变的。例如,一起旋转和平移的点不应该改变全局点云类别,也不应该改变点的分割。
4.2 点云架构
我们的完整网络架构如图2所示,其中分类网络和分割网络共享了很大一部分结构。请阅读图2管道说明。
图2:点云网络结构
我们的网络有三个关键模块:以聚合所有点信息为对称函数的最大池化层,一个局部和全局信息组合结构,以及两个对齐输入点和点特征的联合对齐网络。
我们将在下面单独的段落中讨论这些设计选择背后的原因。
用于无序输入的对称函数 为了使模型对输入的排列不变性,有三种策略:1)将输入排序为规范顺序;2)将输入作为一个序列来训练一个RNN,但是通过各种排列来扩充训练数据;3)使用一个简单的对称函数来聚合每个点的信息。这里,一个对称函数以n个向量作为输入,并输出一个不随输入顺序变化的新向量。例如,+和∗操作符是对称的二进制函数。
虽然排序听起来像一个简单的解决方案,但在高维空间中实际上并不存在一般意义上稳定的w.r.t.点扰动的排序。这一点很容易用矛盾来说明。如果存在这种排序策略,则定义高维空间与一维实线之间的双射映射。不难看出,要求一个稳定的w.r.t点扰动的顺序等同于要求这个地图在维数减少时保持空间接近性,这是一个在一般情况下无法实现的任务。因此,排序并不完全。
利用神经网络的思想是把点集看作一个序列信号,希望通过对随机序列的训练,使神经网络不受输入顺序的影响。然而,在“OrderMatters”中,作者已经表明,顺序是重要的,不能完全忽略。虽然RNN对小长度序列(几十个)的输入排序具有较好的鲁棒性,但难以伸缩到数千个输入元素,这是点集的通用大小。经验表明,基于RNN的模型并没有我们所提出的方法那么好(图5)。
我们的思想是通过对集合中的变换元素应用对称函数来近似定义在点集上的一般函数:
根据经验,我们的基本模块非常简单:我们用一个多层感知器网络来近似h,用一个单一变量函数和一个最大池函数的组合来近似g。实验证明这很有效。通过h的集合,我们可以学习一些f来获取集合的不同性质。
虽然我们的关键模块看起来很简单,但它有一些有趣的特性,并且可以实现强大的性能在一些不同的应用中。由于我们的模块简单,我们还可以像第4.3节那样提供理论分析。
局部和全局信息聚合 以上部分的输出形成一个向量[f1,…我们可以很容易地对形状全局特征进行SVM或多层感知器分类器的训练来进行分类。然而,点分割需要结合局部知识和全局知识。我们可以通过一种简单而高效的方式来实现这一点。
我们的解决方案如图2(分割网络)所示。计算全局点云特征向量后,通过将全局特征与每个点特征连接起来,将全局特征反馈给每个点特征。然后我们在合并的点特征的基础上提取新的每点特征——这一次,每点特征都能识别局部和全局信息。
有了这个修改,我们的网络能够预测每个点的数量,依赖于局部几何和全局语义。例如,我们可以准确地预测每个点的法线,验证网络能够从点的局部邻域总结信息。在实验中,我们也证明了我们的模型在形状部分分割和场景分割上可以达到最先进的性能。
联合定位网络 如果点云经历了某些几何变换(如刚性变换),则点云的语义标记必须是不变的。因此,我们期望通过我们的点集学习的表示法对这些变换是不变的。
一种自然的解决方案是在提取特征之前将所有输入集对齐到一个规范空间。Jaderberg等人引入了空间变压器的思想,通过采样和插值对二维图像进行对齐,通过在GPU上实现一个专门定制的层来实现。
与Jaderberg等人相比,我们的点云输入形式允许我们以更简单的方式实现这个目标。我们不需要发明任何新的层和别名是引入的图像情况。我们通过一个小网络(图2中的t网)来预测一个仿射变换矩阵,并直接将这个变换应用到输入点的坐标上。微网络与大网络相似,由点独立特征提取、最大池化和全连接层等基本模块组成。关于t网的更多细节在补充部分。
这种思想也可以进一步扩展到特征空间的对齐上。我们可以在点特征上插入另一个对齐网络,并预测一个特征变换矩阵来对不同输入点云中的特征进行对齐。但特征空间中的变换矩阵比空间变换矩阵维数高得多,大大增加了优化的难度。因此,我们在softmax训练损失中增加了一个正则化术语。约束特征变换矩阵与正交矩阵:
4.3 理论分析
通用逼近性 首先证明了神经网络对连续集函数的通用逼近能力。根据集合函数的连续性,直观地说,对输入点集的一个小扰动应该不会对函数值产生很大的改变,例如分类或分割分数。
正式,让X ={:年代⊆[0,1]m和S | | = n}, f: X→R是一个连续集合函数X w.r.t豪斯多夫距离dH(··),也就是说,∀> 0,∃δ> 0,对于任何年代,S∈X,如果dH (S, S)
定理1假设f: X→R是一个连续集函数w.r.t Hausdorff距离dH(·,·)。∀> 0,∃一个连续函数h和对称函数g (x1,…,xn) =γ◦MAX,这样对于任何S∈X,
x1,…,xn是按任意顺序排列的S中的完整元素列表,r是一个连续函数,而MAX是一个向量z最大操作符,它接受n个向量作为输入,并返回一个新的元素最大值向量。
这个定理的证明可以在我们的补充材料中找到。关键思想是,在最坏的情况下,网络可以通过将空间划分为等大小的体素,学会将点云转换为体积表示。然而,在实践中,网络学习了一种更聪明的策略来探测空间,我们将在点函数可视化中看到这一点。
Bottleneck尺寸和稳定性 从理论和实验上我们发现,我们的网络的表达性受到最大池化层的维数的强烈影响,即K 在(1)中。在这里,我们提供了一个分析,它也揭示了与我们的模型的稳定性相关的特性。
我们定义u = MAX xi∈S {h(xi)}是f的子网络,它将一个[0,1]m的点集映射到一个k维向量。下面的定理告诉我们,输入集中的小的破坏点或额外的噪声点不太可能改变我们网络的输出:
定理2假设u: X→RK,使u = MAX xi∈S {h(xi)}, f = r◦u,则
我们解释这个定理的含义。(a)表示如果CS中的所有点都保持不变,则f(S)在输入损坏之前是不变的;它也没有改变,直到NS有额外的噪声点。(b)表示,CS只包含有限数量的点,由(1)中的K确定。换句话说,f(S)实际上完全由小于或等于K个元素的有限子集CS⊆S确定。因此我们称CS为S的临界点集,称K为f的瓶颈维数。
结合h的连续性,这解释了我们的模型w.r.t点扰动、腐败和额外噪声点的鲁棒性。与机器学习模型中的稀疏原理相似,获得了鲁棒性。直观地说,我们的网络学会了通过一组稀疏的关键点来总结一个形状。在实验部分我们可以看到,关键点形成了一个物体的骨架。
5.结论
在这项工作中,我们提出了一种新的深度神经网络直接消耗点云的点网。我们的网络提供了一个统一的方法来完成一些3D识别任务,包括对象分类,部分分割和语义分割,同时获得与标准基准上的水平或更好的结果。我们也提供理论分析和可视化来理解我们的网络。