PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Abstract
由于点云数据的无序性,大多数研究者把它转化为规则的 3D 体素网格或者转化为图像数据集来处理。这样会不必要的增大数据集并且产生一些(像素点失真)问题。本文作者设计了一个新的网络,直接处理点云数据。
1、Introduction
传统的卷积结构为了权值共享、进行卷积操作,要求高度规则的输入数据形式,就像image和3D体素。而点云数据是点的无序集合,无法像处理2D数据那样直接处理。文章提到了在处理点云数据时,主要有三个问题:输入的无序性、点与点之间的相关性、旋转不变性。
本文直接使用点云数据,点云数据是相对简单、统一的结构,可以避免网格组合的不规则性和复杂性,因此更容易学习。针对点云数据的无序性,需要在网络中使用对称函数。
本文提出的 PointNet 是直接以点云数据作为输入,输出每个输入所属的类别(classification)或者输入中每个点的标签(segmentation)。
文章所述方法的关键在于对称函数——max-pooling的使用。网络可以有效的学习一组优化函数,从而选择感兴趣或有用的特征,最终的全连接层将这些学到的有用特征聚合到整个形状的全局描述符中。(换到后面)
文章通过理论分析与实验验证表明,PointNet 可以近似任何连续函数。并且表明网络通过学习一组稀疏的关键点来概括输入点云,这些关键点可视化出来的结果大致对应于对象的骨架。同时结合理论分析,解释了 PointNet 能够对输入点的扰动、异常值、缺失数据有较高的鲁棒性。
作者在许多基准数据集上,对于分类、区域分割、语义分割等任务,将 PointNet 与基于多视图和体积表示的最先进方法进行了比较。表明,在统一的架构下,PointNet 不仅速度更快,而且还能够具有与当前最优模型相当甚至更好的性能。
文章的主要贡献有:
- 设计了一个全新的深度神经网络架构,适合于无序的 3D 点云数据
- 展示了这样一个网络该如何训练,从而应用于 3D 点云数据的分类、形状分割和场景语义分析任务
- 对所提出方法的稳定性和效率进行了实验和理论分析
- 可视化出了网络中神经元计算出的 3D 特征,进行了直观的解释
2、Related Work
- Point Cloud Features
点云的大多数现有特征都是根据特定的任务手工制作的,点特征通常编码点的某些统计特性,并且被设计为对某些变换具有不变性,它们也可以归类为本地特征和全局特征。 对于特定任务,找到最佳特征组合并非易事。
-
Deep Learning on 3D Data
3D 数据有多种流行的表示,导致了多种不同的学习方法。
Volumetric CNNs 是最早在体素上应用卷积神经网络的。但是,由于数据稀疏性和计算成本,体素表示受其分辨率的限制。
FPNN 和 Vote3D 提出了处理稀疏数据的方法,但是他们的操作依然是基于稀疏的数据,处理非常大的点云数据依然是很大的挑战。
Multiview CNNs 尝试将 3D 点云转换为 2D 图像,从而应用 2D 卷积来进行分类。虽然通过精心设计的网络,这种方法在分类和检索任务中取得了突出的性能。但是,更重要的是将他们扩展到其他场景如 3D 点云分类等任务中。
Spectral CNNs 等一些最新的方法使用了光谱 CNN ,但是这些方法被限制在有机物体之类的流行网格上,而如何将他们扩展到家具之类的非等距形状上,目前还并不明显。
Feature-based DNNs首先将3D数据转化为一个向量,通过提取传统的形状特征,然后使用全连接层对其进行分类,这一方法会受到所提取特征的表示能力的约束。
-
Deep Learning on Unordered Sets
从数据结构的角度来说,点云数据就是向量的无序集合(一组无序的向量集合)。然而之前深度学习的许多工作仅专注于规则的数据表示(如序列、图像),深度学习在点云数据上没有太多相关工作。最近的一项工作来自于 Oriol Vinyals 等人,他们使用了一个带注意力机制的网络来处理无序的输入数据,但是他们的工作重点是 NLP 任务。
3、Problem Statement
一个点云由 3D 点的集合表示,每个 3D 点由(x,y,z)坐标加上其他如颜色等