PointNet 中文翻译

Deep Learning on Point Sets for 3D Classification and Segmentation
https://github.com/charlesq34/pointnet

PointNet

摘要(Abstract)

点云是一种非常重要的几何数据结构类型。因为它的格式不规则,许多的研究人员通常会将点云数据转换为规则的3D体素网格或者图像集合。然而,这会造成大量的不必要的数据,并且很容易带来问题。在本文中,我们设计了一个直接以点云为输入的神经网络模型,这一模型很好的遵循了输入点的排列不变性。我们的网络模型叫做PointNet,它提供了一种从目标分类、零件分割到场景语义分析的通用模型结构。虽然它很简单,但PointNet非常高效而且有效。从经验上讲,它的效果甚至超过了目前最先进的水平。我们从理论上分析了PointNet学到了什么和为什么PointNet在输入有所干扰和损坏时有很强的鲁棒性。

1.引言(Introduction)

在本文中,我们探讨了能够处理点云或者网格等3D几何数据的深度学习结构。通常,为了实现权重共享和内核优化,卷积结构对输入数据的格式有非常高的要求。由于点云或网格的格式不规则,大多数研究人员通常在将这些数据输入到深度网络之前,会将其转换为规则的3D体素网格或图像集合(如视图)。然而,这种数据表示转换会导致大量不必要的数据,同时也会带来量化伪影(不太明白这个是啥),这些伪影会掩盖数据自身的不变性。
图1
图1 PointNet的应用 我们提出了一种以不需要体素化和渲染的原始点云(点集)数据为输入的深度网络框架。这是一个通用框架,可以学习全局和局部特征,为大量3D识别任务提供了一种简单有效的放法。

考虑到这一问题我们致力于一种不同的3D几何数据输入形式,即使用简单的点云,并将我们的深度网络命名为PointNets。点云是一种简单统一的结构,避免了网格的组合不规则性和复杂性,并且也因此更易于学习。然而,PointNet仍然不得不承认点云也只是一组点的集合,因此由于各个点的排列不变性,网络计算时必须是对称的。此外还需要考虑刚性运动的不变性。
我们的PointNet是一个通用模型,以点云作为输入并输出整个输入的类别标签或每个输入点的部分标签。PointNet的基本框架非常简单,因为在初始阶段,每个点都经过了相同的、独立的处理。在基本设置中,每个点都用三个坐标 ( x , y , z ) (x,y,z) (x,y,z)来表示。此外还通过计算法线和其他局部或全局特征来添加其他维度。
我们方法的关键在于使用最大池化这一单一对称函数。PointNet学习了一组选择点云中有趣点或信息点并对其选择原因进行编码的优化函数/规则。PointNet最后的全连接层将学习到的最优值综合为整个形状的全局描述(形状分类)或者用于预测每个点的标签(形状分割)。
我们输入的格式非常易于使用刚性或仿射变换,因为每个点的变换都是独立的。因此为了提高结果准确率,在使用PointNet之前,我们可以添加一些依赖数据的空间转换网络来规范化数据。
我们对PointNet进行了理论分析和实验评估。我们的网络可以近似任何连续函数。更有趣的是,根据可视化,我们的网络学习通过一组稀疏关键点来表示输入点云,这些关键点大致对应于目标的骨架。理论分析解释了为什么我们的PointNet对于通过点插入(异常值)或删除(丢失数据)导致有所损坏的输入点仍具有高度的鲁棒性。
在大量基准数据集上,从形状分类、分割到场景分割,我们通过实验对比了PointNet与其他现有的基于多态目标的方法。在一个通用的框架下,PointNet不只速度更快而且性能也超过了现有的方法。
我们的主要贡献如下:

  • 我们设计了一个适用于无序点集合的深度网络框架;
  • 我们展示了如何训练这样一个网络来实现3D形状分类,形状部分分割和场景语义分析任务;
  • 我们分析了该方法的稳定性和有效性;
  • 我们说明了由网络中所选神经元计算出的3D特征,并为其性能提供了直观的解释。
    通过神经网络处理无序点集合是一种非常常见的基本问题,我们希望我们的想法也可以迁移到其他领域。

2.相关工作(Related Work)

点云特征 大多已有的点云特征都是针对特定的任务人工设计的。点的特征通常被编码为某些统计特征,而且往往对某些变换保持不变,这些变换分为内在的[2, 24, 3]和外在的[20, 19, 14, 10, 5]。他们可以被分为局部特征和全局特征。对于特定的任务,找到最优的特征组合并不简单。
基于3D数据的深度学习 3D数据有多种常用的表示方法,也对应着许多的深度学习方法。CNNs:[28, 17, 18]中先驱们在体素上应用3D卷积神经。然而,由于3D卷积的数据稀疏性和计算成本,体积表示受到其分辨率的限制。FPNN [13]和Vote3D[26]提出了一种特殊的方法来解决稀疏性问题;然而他们的操作仍然是对针对稀疏数据的卷积,大规模点云对它们来说具有挑战性。Multiview CNNs:[23, 18]尝试将3D点云或者形状转换为二维图像,然后使用二维卷积网络来进行分类。图像CNN在形状分类和检索任务中取得了一席之地。然而,把它们拓展到场景语义理解或其他3D任务,如点分类和形状完成(这里指?)是不容易的。Spectral CNNs:一些最新的工作[4,16]在网格上使用光谱CNN。然而,这些方法目前被限制在多个网格上,如有机对象,如何将它们扩展到非等距形状(如家距)的方法并不明确。Feature-based DNNs:[6, 8]首先通过提取传统形状特征将3D数据转化为向量,然后使用全连接网络来进行形状分类。我们认为这些方法受到所提取特征的表示能力的限制。
深度学习在无序集上的应用 从数据结构的角度来看,点云是一种无序的向量集合。当众多深度学习工作都集中于输入表示的规则上,如序列(在语音和语言处理中),图像和体积(视频或者3D数据),但在点集方面做的工作却不多。
Oriol Vinyals等人近期的工作研究了这一问题。他们使用了一种带有注意力机制的读进程写来处理无序集合,并展示了他们网络的排序能力。但是,因为他们的工作专注于基因集合和NLP应用,因此缺乏在几何集合上的应用。

3.问题陈述(Problem Statement)

我们设计了一种直接以无序点集为输入的深度学习网络。一个点云就是一组3D点集合 P i ∣ i = 1 , . . . , n {P_i|i=1,...,n} Pii=1,...,n的表示方式,其中,每个点 P i P_i Pi是一个由坐标 ( x , y , z ) (x,y,z) (x,y,z)加上额外的特征通道,如颜色、法线等组成的向量。为了简单说明,除非有其他的注释,我们只使用 ( x , y , z ) (x,y,z) (xyz)坐标作为我们点的通道。
对于目标分类任务,输入点云或者直接从形状中采样,或者从场景点云中预先分割。我们提出的深度学习网络输出k个分类的k个分值。对于语义分割任务,输入可以是用于部分区域分割的单个对象,或者来自用于对象区域分割的3D场景的子部分。对于 n n n个点中的每个点和 m m m个语义子类别,我们的模型会输出 n × m n\times m n×m个得分。
图2
图2. PointNet结构 这一分类网络以n个点为输入,应用输入和特征转换,然后使用最大池化聚合点的特征。输出是k个类别的得分。分割网络与分类网络密切相连。他结合了全局和局部特征并输出每个点的得分。"mlp"代表多层感知机,括号里的数字为层的大小。对于所有使用ReLU的层使用Batchnorm。分类网络中的最后一个mlp使用dropout。

4.点集上的深度学习

我们的网络架构(4.2节)受到来自 R n \mathbb{R}^{n} Rn(4.1节)中的点集属性的启发。

4.1 R n \mathbb{R}^{n} Rn中的点集属性

我们的输出是一个欧氏空间点集的子集。它有如下三个主要属性:

  • 无序。 与图像中的像素阵列或体积网格中的体素阵列不同,点云是一组没有特定顺序的点集。换句话说,一个消耗 N N N个3D点集的网络对 N ! N! N!种排列顺序的输入点集数据的应是不变的。
  • 点之间的交互。 这些点来自于具有距离度量的空间。这意味着点与点之间不是孤立的,并且相邻点可以形成一个有意义的集合。因此,这个模型需要从相邻点中捕捉局部结构,以及局部结构之间的结合相互作用。
  • 变换下的不变性。 作为一个几何物体,点集的学习表示对某些变换应该是不变的。例如,旋转和平移不能改变全局点云类别或点的分割情况。

4.2 PointNet的架构

我们的网络架构在图2中展示,其中分类网络和分割网络共享了大部分结构。请查阅图2的标题。
我们的网络有三个关键模块:最大池化层作为聚集所有点信息的非对称函数,一个本地和全局信息组合结构,以及两个同时对齐输入点和点特征的联合对齐网络。
我们将在下面的段落中讨论这些设计选择的原因。
无序输入的对称函数 为了使模型对于不同排列组合的顺序是不变的,有三种策略:1)将输入排序为特定的顺序;2)将输入作为序列来训练RNN,通过各种排列增强训练数据;3)使用简单的对称函数整合来自每个点的信息。一个对称函数以n个向量作为输入,输出一个与输入顺序无关的新向量。例如, + + + ∗ * 运算符是对称二元函数。
虽然排序听起来像一个简单的解决方案,但在高维空间中实际上并不存在相对于一般意义上的点扰动稳定的排序。通过比较很容易发现。如果存在这样的排序策略,那么在高维空间与一维实线之间存在双射映射。不难看出,要求对点扰动稳定的排序等价于要求该映射在维数减少时保持空间接近度,一般情况下这是无法实现的。因此,排序不能完全解决顺序问题,而且当顺序问题依然存在时,网络很难学习到从输入到输出的一致映射。如实验所示(图5),我们发现直接将MLP应用于排序点集的性能很差,尽管略优于直接处理未排序的输入。
使用RNN的思想是将点集看作一个序列信号,并希望通过随机排列序列训练RNN,使RNN对输入序列具有不变性。然而,在“顺序问题”中[25]作者指出顺序问题不能完全忽略。虽然RNN对较短的(几十个)序列的输入序列具有较好的鲁棒性,但很难扩展到像点集这样有数千个输入元素的问题。从经验上讲,我们也证明了基于RNN的模型在性能上不如我们提出的方法(图5)。
我们的想法是在集合中应用对称函数对变换单元中的一般函数进行逼近:
f ( x 1 , . . . , x n ) ≈ g ( h ( x 1 ) , . . . , h ( x n ) ) , f({x_1,...,x_n}) ≈ g(h(x_1),...,h(x_n)), f(x1,...,xn)g(h(x1),...,h(xn)),
其中 f : 2 R N → R , h : R N → R K , g : R K × ⋅ ⋅ ⋅ × R K ⏟ n → R f:2^{\mathbb{R}^{N}} → \mathbb{R}, h : \mathbb{R}^{N} → \mathbb{R}^{K} , g : \underbrace{\mathbb{R}^{K}\times···\times\mathbb{R}^{K}}_n→ \mathbb{R} f:2RNR,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值