PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Abstract
点云是一种重要的几何数据类型结构,大多数研究者将其转换成regular 3D voxel grids来进行处理,但是这样使得数据过于庞大,并导致问题。这篇论文提出了PointNet的方法来直接处理点云数据,涵盖了object classification(物体检测) part segmentation(部分分割) scene semantic parsing(场景语义解析)等一系列应用。
1. Introduction
经典的卷积架构要求高度规则的输入数据格式,类似于image grids 或者 3D voxels,因为点云数据的不规则性,大部分研究者在将数据输入进网络的时候都会将其转换成规范的格式,这样的数据转换会导致不必要的数据冗长。
因此我们决定直接使用点云数据,点云是简单而统一的结构,避免了组合的不规则性和网格的复杂性,因此更容易学习。
PointNet是一个统一的架构,它直接将点云作为输入,并输出整个输入的类别标签或整个类中每个输入点的类别标签。网络架构简单,独立处理每个点,每个点都由它的3个坐标表示:(x, y, z),可以添加额外的维度。
网络的关键是使用单一对称函数:max pooling。网络有效地学习了一组优化准则,这些准则选择点云中有信息的点,并给出选择它们的原因。网络最终的全连接层将这些学习到的最优值聚合到如上所述的整个形状的全局描述符(shape classification)或用于预测每个点标签(shape segmentation)。
我们提供了一个理论分析和实验评估我们的方法。证明了我们的网络可以近似任何连续的集合函数,更有趣的是,我们的网络学会了通过一组稀疏的关键点来总结一个输入点云,根据可视化,这些关键点大致对应于对象的骨架。
总结:
- We design a novel deep net architecture suitable for
consuming unordered point sets in 3D; - We show how such a net can be trained to perform
3D shape classification, shape part segmentation and
scene semantic parsing tasks; - We provide thorough empirical and theoretical analysis on the stability and efficiency of our method;
- We illustrate the 3D features computed by the selected
neurons in the net and develop intuitive explanations
for its performance.
2. Related Work
略过
3. Problem Statement
一个点云由一系列3D点组成,{Pi| i = 1, …, n},其中每一个点由 (x, y, z) 坐标加上额外的特征通道例如:颜色法线等组成。我们的网络为K个候选类别输出K个分数,对于语义分割,输入可以是单个对象进行部分区域分割或者从三维场景中提取子场景进行目标区域分割。我们的模型将会输出n * m个分数来表示n个点和m个类别。
4. Deep Learning on Point Sets
4.1 Properties of Point Sets
我们的输入是来自欧氏空间的点的子集。它有三个主要特性:
- 无序性 Unordered
- 点之间相互作用 Interaction among points
- 转换不变性 Invariance under transformations
4.2 PointNet Architecture
网络的结构如上,分类网络部分和分割网络部分有很大一部分结构相同。网络拥有三个模块:
- the max pooling layer
- a local and global information combination structure
- two joint alignment networks
4.2.1 Symmetry Function for Unordered Input
为了使得模型对于输入数据具有不变性,存在三种战略:1)将输入按规范顺序排序 2)将输入作为序列来训练RNN,但通过各种排列来扩充训练数据 3)使用一个简单的对称函数来聚合每个点的信息,例如加法和乘法是二元不变函数。以下对这三种策略进行分析比较:
排序听起来是个简单的办法,但在高维空间中,其实并不存在一个适用任何场景的稳定的顺序,这可以被反证法证明。如果,这样的排序是存在的,它定义了高维空间和一维空间的双向映射,不难看出,要求排序稳定就等价于要求该映射在维度下降时保持空间的接近性。这是一个在通用场景下都不能实现的任务。
第二种是使用RNN的方法将点集作为序列信号并且期待训练随机排列的RNN,这样RNN就可以对于顺序是不变的了,但OrderMatters的作者表明RNN的方法对较短序列长度的输入有相对较好的性能,但它很难扩展到大量的输入单元,而大量的输入单元在点云中很常见。
我们的想法可以近似于一个定义在点集上的通用函数(对称函数,本文中使用的是maxpooling)
我们的基础模块很简单:我们通过多层感知网络近似h,通过简单的变换函数(single variable function)和最大池化函数近似g
4.2.2 Local and Global Information Aggregation
上面部分的输出形成了一个向量[f1,… fk],是输入集的global signature,我们可以很容易地在shape global features上训练支持向量机(SVM)或多层感知器分类器进行分类。然而点云的分割需要结合局部和全局。我们可以通过一种简单而高效的方式实现这一点。
在计算全局点云特征向量(global point cloud feature vector)之后,我们将新的特征连接到每个点的特征之后并送到网络中。然后我们提取基于组合的新的点的特征。这一次每个点的特征就可以看做局部和全局信息的融合了。
4.2.3 Joint Alignment Network
如果点云经历了几何变换,点云的语义标签具有不变性。因此我们期望学习到的点集的表示也是对这些变换具有不变性的。解决办法是,在特征提取之前,通过对齐所有的输入点集到一个规范的空间,点云的格式使得我们可以更加方便的做到这一点,我们预测一个通过mini-network的仿射变换矩阵(an affine transformation matrix)并且对于输入点云的坐标直接应用这个变换矩阵。这个网络本身像一个大网络,是由几个点云特征提取模块,最大池化层和全连接层组成的。
这个思想可以被扩展到特征(feature space)的对齐。我们可以插入另一个特征对齐网络并预测特征变换矩阵来对齐不同的输入点云的特征。然而,特征空间(feature space)的变换矩阵会比空间变换矩阵( spatial transform matrix)有更多维度,因此也会更大程度的增加优化的难度。此添加了一个正则化因子,我们将特征变换矩阵约束的更加接近正交矩阵:
5. Experiment
略过
6. Conclusion
In this work, we propose a novel deep neural network PointNet that directly consumes point cloud. Our network provides a unified approach to a number of 3D recognition tasks including object classification, part segmentation and semantic segmentation, while obtaining on par or better results than state of the arts on standard benchmarks. We also provide theoretical analysis and visualizations towards understanding of our network.