本系列是按照bilibili上刘永成博士的分享课的论文笔记,主要针对点云的规则化处理。对于一些有新颖的方法会讲得详细一些。
继续讲一些经典的点云的规则化处理的方法。包括:PointSift、SO-Net、Pointwise CNN、Kd-Net和FCPN
PointShift
PointSIFT: A SIFT-like Network Module for 3D Point Cloud Semantic Segmentation
具体思想
将sift算子的思想用在点云中。主要是两个方面:1.方向编码。8个重要方向的信息通过一个方向编码单元(orientation-encoding unit)来提取特征。2.通过堆叠多个尺度下的方向编码单元(orientation-encoding unit),以获得尺度不变性。
核心部分
方向编码卷积(orientation-encoding convolution)
如图所示,包含以下几个部分:
- 给定点$p_0$,其对应的特征为$f_0$。以$p_0$为中心点的3D空间中,可以根据8个方向分为8个子空间(octant)。从其中分别寻找最近邻点,如果在某个子空间(octant)内,搜索半径$r$内没有找到点,就将这个子空间的特征认为等于$f_0$。采样之后原本一个中心点d维度的特征变为了2x2x2xd的特征,表示八个象限对应的特征向量。
- 为了使卷积操作能感知方向上的信息,分别在X、Y、Z轴上进行三阶段的卷积。使用的卷积核为[1,2],stride为[1,2]。
- 在三次卷积后,每个点都被转换为了一个d维的向量。
尺度感知结构(scale-aware architecture)
经过多个OE unit单位提取特征之后用shortcut的方式,对多个尺度的特征进行concatenate,保证尺度不变性。
网络整体结构
PointSift模块表示前文的尺度感知结构,SA模块用的pointNet++的下采样模块,FP模块用的pointNet++的上采样模块。
SO-Net
SO-Net: Self-Organizing Network for Point Cloud Analysis
( SO-Net, CVPR 2018)
具体思想
将SOM(自组织映射)的想法应用到点云规则化处理上。基本上是应用SOM替换了点云采样这一步,使用自组织映射来模拟点云分布,达到降维和确定关键点的目的。
核心部分
主要是讲SOM部分,后面部分基本上跟常用方法差不多。
SOM(自组织映射)
如图所示尽可能找到关键点拟合原始数据,用SOM的方式替换点云采样的一系列方法(最远点采样等)。
SOM初始化
算法的过程如第一幅图所示,效果为第二幅图所示。
关键想法是在任何一对节点之间施加排斥力,并且将节点逼近原始数据点。
Batch Update Training
如图所示,w是服从高斯分布的,经过迭代SOM中的点会拟合原始数据,并且具有表示原始数据的能力(降维)。
整体框架
后续部分和其他方法类似。定义knn的k值,进行平均化。这个地方的每个代表点都有k个点的特征,一共就有kN个点的特征都放入共享参数的全连接层中进行特征提取。后面将特征进行max-pooling又可以筛出掉冗余特征留下代表性点的特征,即又一个SOM层。
Pointwise CNN(CVPR 2018)
简单暴力,直接用3x3的网格,求和+归一化,当作一个特征去卷积。
Kd-Net(ICCV 2017)
参考博客:https://blog.csdn.net/hongbin_xu/article/details/93915673
具体思想
用Kd-Tree对原始点云做划分,通过变换的学习到达根节点。将数据结构用到点云分割里。
- 图1是KD-Netwoks的示意图。图中只考虑二维的情况。
- 在一个有8个点的点云上建立KD树,在每一层都从X/Y轴选择一个维度进行划分。
- 从根节点到叶节点对KD树的每个节点进行编号,根节点编号为0,往后递增。
- KD数最左边的8到15号节点实际就是原始点云,右边的0号节点可以看做输出的类别预测
- 从左到右,可以看做这个KD-Network的特征前向传播的方向。
- 图中的圆圈表示的是特征传播并聚合的过程,对应卷积核,其参数是可学习的。相同的颜色表示共享参数,即如果是在相同维度对点集进行划分,认为其卷积参数也应该共享。
现实的点云数据是三维的,所以有三个方向的划分。而划分面可以看作是决策面,区分两个部分点云,非叶子节点的参数相当于也是决策面的参数。对于每一个点云样本都需要提前建立Kd-tree。这种方法也可以用自编码的方式来实现点云分割,如图所示:
FCPN(ECCV 2018)
Fully-Convolutional Point Networks for Large-Scale Point Clouds
- 提出了一个能有效处理大规模3D数据的全卷积网络——FCPN,该网络将无规则的3D输入数据比如点云,转换为内部有序的数据结构,然后再使用3D卷积进行处理。与输入输出结构一致的传统方法相比,FCPN具有在高效存储输入数据中操作的优点,同时利用自然结构的卷积运算以避免对冗余空间信息的计算与存取。该网络消除了对原始数据预处理和后处理的需求,加之全卷积结构的特点,使其能够端到端处理大规模空间的点云数据。FCPN另一个优点是能够直接从输入点云生成有序的输出或者预测图,因此使其能够作为很多3D任务的通用点云描述器。
具体思想
3D grid + PointNet + 3D CNN
模仿2D空间的FCN,用3D grid, 用pointnet学习每个grid的low-level特征,再用3D CNN做分割
可以一次性处理200k个点