PointNet 文献阅读及拓展阅读

在这里插入图片描述

一、概览

论文地址:https://arxiv.org/pdf/1612.00593.pdf
代码下载:https://github.com/charlesq34/pointnet
论文框架:
在这里插入图片描述
研究目的: 利用深度学习网络处理三维点云数据。

研究思路: 首先通过对齐网络保证点云对特定空间转换的不变性,然后将全局特征和局部特征进行串联,综合利用特征。

解决方法: 提出PointNet —— 一种直接对三维几何数据(如点云或网格)进行处理的深度学习模型。

研究贡献:

  1. 设计了一种直接输入三维无序点集的新型深度网络体系结构。
  2. 解决点云对特定空间转换的不变性。
  3. 展示了如何训练这样的网络来执行3D形状分类、形状部分分割和场景语义分析任务。

实验数据集: ModelNet40、ShapeNet、Stanford 3D semantic parsing data set

二、关于点云

点云的概念: 点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,包含了丰富的信息,可以是三维坐标X,Y,Z、颜色、强度值、时间等等。点云本质上是一长串点(Nx3矩阵,其中n是点数)。

点云包含的信息:

  1. 根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。
  2. 根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。
  3. 结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。

点云处理方法:
在这里插入图片描述

点云数据是在欧式空间下的点的一个子集,它具有以下三个特征:

2.1. 无序性

与图像中的像素阵列或体积网格中的体素阵列不同,点云是一组没有特定顺序的点。
点云数据是一个集合,对数据的顺序是不敏感的。这就意味着处理点云数据的模型需要对数据的不同排列保持不变性。
目前文献中使用的方法包括:

  1. 将无序的数据重排序。
  2. 用数据的所有排列进行数据增强然后使用RNN模型。
  3. 用对称函数来保证排列不变性。

由于第三种方式的简洁性且容易在模型中实现,论文作者选择使用第三种方式,既使用maxpooling 这个对称函数来提取点云数据的特征。

2.2. 点与点之间的空间关系

一个物体通常由特定空间内一定数量的点云构成,也就是说这些点云之间存在着空间关系。因此,模型需要能够捕捉附近点的局部结构,以及局部结构之间的组合相互作用。为了能有效利用这种空间关系,论文作者提出了将局部特征和全局特征进行串联的方式来聚合信息。

2.3. 刚性变换不变性

点云数据所代表的目标对某些空间变换应该具有不变性,如旋转和平移等刚性变换。论文作者提出了在进行特征提取之前,先对点云数据进行对齐的方式来保证不变性。对齐操作是通过训练一个小型的网络来得到变换矩阵,并将之和输入点云数据相乘来实现。

三、现阶段研究

3.1. Point Cloud Features
大多数现有的点云功能都是针对特定任务手工创建的。点特征通常编码某些点的统计属性,并且被设计成对某些变换是不变的,这些变换通常被分类为内部的或外部的。它们还可以分为局部特征和全局特征。对于特定的任务,要找到最优的特征组合并不是一件容易的事。

3.2. Deep Learning on 3D Data
根据3D数据的表示不同有多种深度学习的方法
Volumetric CNNs: 通过将物体表现为空间中的体素进行类似于二维的三维卷积。然而,由于三维卷积的数据稀疏性和计算开销,体素表示受到其时间和空间复杂度的限制,对于处理非常大的点云具有挑战性,目前已经不是主流的方法了。

Multiview CNNs: 通过多视角二维图片组合为三维物体,此方法将传统CNN应用于多张二维视角的图片,特征被view pooling procedure聚合起来形成三维物体。

Spectral CNNs: 在网格上使用谱CNNs。然而,这些方法目前仅限于有机对象等多种网格上,如何将其扩展到非等轴测形状(如家具)上并不明显。

Feature-based DNNs: 首先通过提取传统的形状特征将三维数据转化为向量,然后使用全连通网络对形状进行分类。我们认为它们受到所提取特征的表征能力的限制。

3.3. Deep Learning on Unordered Sets
从数据结构的角度来看,点云是一组无序的矢量。虽然大多数深度学习的研究都集中在规则的输入上,如序列(语音和语言处理)、图像和体积(视频或3D数据),但在点集的深度学习方面却没有做太多的工作。
Oriol Vinyals等人最近的一项研究探讨了这个问题。他们使用一个带有注意力机制的 read-process-write 网络来消费无序的输入集,并表明他们的网络具有对数字进行排序的能力。然而,由于他们的工作集中在一般集合和NLP应用上,在集合中缺少几何学的作用。

四、本文方法

点云表示为一组三维点 {Pii=1,...,n}\{P_i | i=1,…,n\},其中每个点 PiP_i 都是 (xyz)(x,y,z) 坐标的向量加上额外的功能通道(如颜色、法线等)。为简单和清晰起见,除非另有说明,否则我们仅使用 (xyz)(x,y,z) 坐标作为点的表示。

我们网络架构的灵感来自于 Rn\Bbb R^n 中的点集属性。

4.1. Rn\Bbb R^n 中点集的属性 (Properties of Point Sets in Rn\Bbb R^n)

我们的输入是来自欧几里得空间的点的子集。它有三个主要属性:

  1. 无序性
  2. 点之间的空间关系
  3. 刚性变换不变性

(此部分已在 “二、关于点云” 中详细说明)

4.2. PointNet 架构 (PointNet Architecture)

在这里插入图片描述
原文说明:
该分类网络(Classification Network,图中蓝色部分)以 nn 个点为输入,应用输入和特征变换,然后通过最大池化(max pool)的方法聚合点特征。输出是 kk 个类的分类分数。分段网络(Segmentation Network,图中浅黄色部分)是分类网络的扩展。它将全局和局部特征以及每类分数的输出连接在一起。“MLP”代表多层感知机,括号中的数字为层大小。Batchnorm用于具有RELU的所有层。丢弃层用于分类网络中的最后一个MLP。

网络主要流程为:

  1. 输入为一帧的全部点云数据的集合,表示为一个nx3的2d tensor,其中n代表点云数量,3对应xyz坐标。
  2. 输入数据先通过和一个T-Net学习到的转换矩阵相乘来对齐(input transform),保证了模型对特定空间转换的不变性。
  3. 通过多次mlp对各点云数据进行特征提取后,再用一个T-Net对特征进行对齐(feature transform)。在特征的各个维度上执行最大池化(max pool)操作来得到最终的全局特征。
  4. 对分类任务,将全局特征通过mlp来预测最后的分类分数;
  5. 对分割任务,将全局特征和之前学习到的各点云的局部特征进行串联,再通过mlp得到每个数据点的分类结果。

我们的网络有三个关键模块:

  • 作为从所有点聚合信息的对称函数的最大池化层
  • 局部和全局信息组合结构
  • 两个同时对齐输入点和点要素的联合对齐网络

我们将在下面的单独段落中讨论这些设计选择背后的原因:

4.2.1 无序输入的对称函数(Symmetry Function for Unordered Input)

该部分位于分类网络中(图中蓝色部分),构建分类网络主体。(个人理解)
前面已经说过,对于无序输入,目前文献中使用的方法包括:

  1. 将无序的数据重排序。
  2. 用数据的所有排列进行数据增强然后使用RNN模型。
  3. 用对称函数来保证排列不变性。

文章指出,重新排序的方法,在高维空间中对于点扰动并不稳定。而使用RNN的想法将点集视为顺序信号,并希望通过用随机排列的序列训练RNN,数据的顺序将按照输入顺序固定不变,OrderMatters 已经证明了顺序确实很重要,不能完全省略。虽然RNN对于长度较小(几十个)的序列的输入排序具有相对较好的鲁棒性,但很难扩展到数千个输入元素,而这是点集的常见大小。

为了使结果不受输入排列顺序的影响,本文作者提出通过对集合中的元素应用对称函数来近似定义在点集上的一般函数:

f({x1,...,xn})=g(h(x1),...,h(xn))f(\{x_1,…,x_n\})=g(h(x_1),…,h(x_n))

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享