文章目录
- PointNet: 深度学习之3D点集分类与分割
- 做了什么
- 问题阐述
- 深度学习于点集
- 相关工作
-
中点云的特性
- PointNet架构
- 工作流程简述
- PointNet的三个关键模块
- 理论分析
- 实验
PointNet: 深度学习之3D点集分类与分割
做了什么
点云是不规则的,大多数研究人员将这些数据转换为规则的三维体素网格或图像集合。然而,这会使数据冗余。
该论文设计了一种新型的直接处理点云的神经网络——PointNet,它很好考虑到了点云的置换不变性。PointNet为点云分类、部件分割和语义分割等应用提供了一个统一的体系结构。虽然简单,但PointNet是高效的。从实验上看,它的表现相当出色,甚至达到当时的SOTA。
该论文还提供理论分析,证明PointNet具有对任意连续集函数的逼近能力,以及网络对于输入含噪和缺失是鲁棒的。
问题阐述
点云用3D点集合表示,其中每一个点
为坐标向量
,还可以有附加的通道,如颜色、法线等。
分类:
对于分类任务,输入的点云可以直接从形状中采样,也可以从场景中预分割。模型输出的是所有个候选类的
个分数。
分割:
对于语义分割,输入可以是用于零件区域分割的单个对象,也可以是用于对象区域分割的三维场景的子体积。模型将为点和
种语义子类别输出
个分数。
深度学习于点集
相关工作
Volumetric CNNs:是将3D卷积神经网络应用于体素化形状的先驱。然而,体素表示受到其分辨率的限制,因为体素数据具有稀疏性且三维卷积的计算成本很高。
FPNN、Vote3D:提出了处理稀疏问题的特殊方法;他们的操作仍在稀疏体素上,这对于于处理非常大的点云很有挑战性。
Multiview CNNs:尝试将三维点云渲染为二维图像,然后应用二维卷积网络对其进行分类。通过精心设计的图像CNN,这一系列方法在形状分类和检索任务上取得了卓越的性能。然而,这很难扩展到场景理解或其他3D任务(如点云分割和形状补全)。
Spectral CNNs:
仅适用于流形网格。
Feature-based DNNs:
首先通过提取传统形状特征将三维数据转换为向量,然后使用全连接网络对形状进行分类。这样可能受到所提取特征的表示能力的限制。
中点云的特性
欧几里德空间中点云有三个主要特性:
- 无序性:与图像中的像素阵列或体积栅格中的体素阵列不同,点云是一组没有特定顺序的点。换句话说,一个输入大小为
的3D点集的网络需要对数据输入顺序上的
种排列应该有同样的输出。
- 相邻点的相互影响:这些点来自具有距离度量的空间。这意味着点不是孤立的,相邻点形成一个有意义的子集。
- 变换不变性:作为一个几何对象,点集的学习表示应该对某些变换保持不变。例如,旋转和平移所有点不会改变全局点云的类别,也不应改变点云的分割结果。
PointNet架构
工作流程简述
分类网络(classification network)以个点为输入,应用输入和特征变换(input and feature transformations),然后通过最大值汇聚(max pool)聚合点特征。最后输出为
类的分类分数(output scores)。
分割网络(segmentation network)是分类网络的扩展。它将全局(global feature)和局部特征连接,输入mlp并最终输出每点的分数。
图中mlp代表多层感知器,括号中的数字是mlp每一层大小。每一层的mlp都用了ReLU激活函数以及Batchnorm。最后一个mlp使用了Dropout。所有点以及特征都共享一个mlp。
PointNet的三个关键模块
(1)无序输入的对称函数:
为了使模型对输入具有置换不变性,存在三种策略:
1) 将输入按规定顺序排序;
2) 将输入作为一个序列来训练RNN。用数据的所有排列做数据增强。
3) 使用简单的对称函数聚合每个点的信息。
这里,对称函数指的是:以个向量作为输入,并输出一个新的向量,输入顺序不影响输出。例如,
和
运算符是对称的二元函数。
虽然排序听起来像是一个简单的解决方案,但在高维空间中,实际上不存在一般意义上关于点扰动稳定的排序。如图5所示,直接在排序点集上应用MLP的性能很差,尽管略优于直接处理未排序的输入。
使用RNN的想法是将点集视为一个序列信号,并希望通过使用随机排列的序列训练RNN。经过实验,如图5,该论文得到基于RNN的模型的性能不如PointNet。
PointNet的想法是通过对点集进行变换得到的元素应用对称函数来近似定义处理点集的一般函数:
PointNet的基本模块非常简单:它用多层感知器网络来近似单变量函数,并与最大值汇聚函数组合来近似
。
(2)局部和全局信息聚合
上述部分的输出是一个向量,它是输入集的全局信息。因此,我们可以很容易地在形状全局特征上训练SVM或多层感知器分类器进行分类。
对于点分割,则需要结合局部和全局特征。
我们可以通过简单而高效的方式实现这一目标:在计算得到全局点云特征向量后,将全局特征与每个点特征连接起来。然后,我们基于组合点特征提取新的点特征,那么,新的点特征就同时包含局部和全局信息了。
通过这种修改,PointNet能够预测依赖于局部几何和全局语义的量。例如,我们可以用PointNet准确预测每个点的法线:
(3)联合对齐网络(Joint Alignment Network)
点云经过某些几何变换(如刚性变换),其语义标记应是保持不变的。因此,我们期望通过点集学习到的表示特征也是对这些变换是不变的。
首选的解决方案是在每一层特征提取之前将所有输入集对齐到规范空间。那么,我们可以通过一个迷你网络(T-Net)来预测这样的仿射变换矩阵,并将此变换直接应用于输入点的坐标。微型网络本身类似于大型网络,由点特征提取、最大值汇聚和全连接层等基本模块组成。
该思想还可以进一步扩展到特征空间的对齐。我们可以插入另一个对齐网络,处理点特征并预测特征转换矩阵,以对齐来自不同输入点云的特征。然而,特征空间中的变换矩阵比空间变换矩阵的维数要高得多(例如:图2中可以达到),这大大增加了优化的难度。因为PointNet还在softmax训练损失中还添加了一个正则化项,将特征变换矩阵约束为接近正交矩阵:
其中是由微型网络预测的特征对齐矩阵。正交变换不会丢失输入中的信息,因此是需要的。作者发现,通过添加正则化项,优化变得更加稳定,模型获得了更好的性能。
输入和特征转换的有效性:
理论分析
令是
关于Hausdorff距离
的连续集函数。即:
,对于任意
,如果
,则
。以下定理表明,如果在最大池层有足够的神经元,即公式(1)中的
足够大,则
可以由PointNet任意近似。
(1) 万能逼近:PointNet具有对任意连续集函数的逼近能力
(2) PointNet对输入点的异常值如小噪声或点缺失数据具有高度鲁棒性。
定义是
的子网络,它将
中的点集映射成
维向量。以下定理告诉我们,输入集中的小缺失或额加噪声点不太可能改变网络的输出。
定理的含义:
(a)只要的损坏集
能保留
中的所有点,则输出保持不变,即
;对于含额外噪声点的
,依然有
。
(b)包含的点数量,由(1)中的
确定。
换句话说,实际上完全由小于或等于
个元素的有限子集
决定。因此,我们称
为
的关键点集(critical point set),
为
的瓶颈维数(bottleneck dimension)。
下图给出一些的关键点集(Critical points)
和上限形状(upper bound shape)
更详细的内容见原论文 4.3. Theoretical Analysis、附录:G. Proof of Theorem
实验
物体分类:
三维物体部件分割
场景中的语义分割
鲁棒测试
时间和空间复杂度分析: