现在开始学习点云系列的论文了,从最经典的PointNet开始。
三维深度学习
PointNet系列论文
研究介绍
传统的结构是将不规则的数据转为规则的形式,这样一个方法的缺陷在于:使得数据变得庞大,并且引入了量化伪影。
因此,希望直接将3D点云投入训练,减小数据量。
点云问题以及解决方案
- 无序性:点云数据只是一系列的点,因此点的顺序并不影响整体的空间形状。
- 旋转性:相同的点云在空间中经过一定的刚性变化(旋转或平移),坐标发生变化。
对于第一个问题,希望得到的效果是,无论点云数据的顺序如果,网络提取出来的特征都是一样的,因此选择最大池化层的对称方法(symmetric function,max pooling)来解决这个问题。
对于第二个问题,希望无论点云数据进行怎么样的刚性变化或者放射变化,网络都可以识别出来,这可以通过空间转换网络来实现(spatial transformer netword)。
相关工作
关于3D数据有很多种呈现形式,这也导致了深度学习的多样性。
- Volumetric CNN: 通过将物体表现为空间中的体素进行类似于二维的三维卷积(例如,卷积核大小为5x5x5),是规律化的并且易于类比二维的,但同时因为多了一个维度出来,时间和空间复杂度都非常高,目前已经不是主流的方法了;
- Multiview CNNs: 通过多视角二维图片组合为三维物体,此方法将传统CNN应用于多张二维视角的图片,特征被view pooling procedure聚合起来形成三维物体,但是这种方法在拓展到场景理解或者点云分类形状填补等任务较难;
- Spectral CNNs: 这种方法主要用于manifold meshes上,在non-isometric上应用困难;
- Feature-based DNNs: 通过将3D数据转为向量,然后提取其特征,再利用全连接层进行分类。
问题阐述
我们设计了一个直接将无序点云作为输入的深度学习框架,点云里面每一个点都是由其坐标以及他们附带的特征通道向量组成。
网络结构
PointNet的结构有三个主要的组成部分:
- Symmetry Function for Unordered Input: 网络对每个点进行了一定程度的特征提取之后,maxpooling可以对点云的整体提取出global feature。网络的鲁棒性就来源于此处,只要保留了关键点,及时点云有变换和扰动结果也不会受到影响。
- Local and Global Information Aggregation: 由于分割任务需要把每个点都考虑进去,因此最后用于MLP的矩阵不能只含有全局特征(global feature),还需要包含每个点的特征。最左边的矩阵白色部分是经过特征第一次升维和transform的矩阵,右边灰色部分是将全局特征重复n次,将这两个部分拼接到一起,最后再经过两层MLP,最后得到每一个点的分类,以完成分割任务。
- Joint Alignment Network: pointnet采用了两次STN,第一次input transform是对空间中点云进行调整,直观上理解是旋转出一个更有利于分类或分割的角度,比如把物体转到正面;第二次feature transform是对提取出的64维特征进行对齐,即在特征层面对点云进行变换。
其实就是提出了一种全新的数据模式叫点云,它的主要特点包括无序性和旋转性,针对这两个问题,提出利用maxpool和transform变化来解决,同时为了应对分割问题,加入segmentation网络来连接全局和局部信息。
点云视频报告
补充一下,原作者做论文报告的视频,以及学习感悟
点云上的深度学习以及场景应用
点云数据更接近真实的直接得到的数据,例如用激光雷达扫描得到的,直接就是点云数据。
因此本论文提出的是一种端到端的深度学习,利用点云数据可以实现:分类、局部分割以及语义分割等任务。
针对点云数据的几个特点:
首先是无序输入,网络需要达到 permutation invariance 的效果
如果直接使用对称函数对原始点云进行操作,那必然会出现信息丢失的问题,因此,作者首先对点云进行特征提取,然后对冗余信息进行对称操作
注意到
h
h
h对每个点分别操作,因此只需要
g
g
g是对称的,那么
f
f
f就是对称函数。
其次是我们希望网络对于点云的几何变化 Transformation Invariance能够有所应对,这是一种基于数据本身的点云变化,利用Tnet根据数据输出变换矩阵。
继续推广,不仅在输入上做这个变换,在特征上也可以做这个变换,也同时是利用矩阵乘法实现:
下面主要是介绍网络结构和实验结构,在此不赘述
在这之后,作者解释了PointNet对于缺失点的鲁棒效果:通过可视化发现,PointNet利用Max提出出来的主要是边缘点,因此只要这些点存在,其他点的缺失对于实验结果影响就不会很大。