点云规则化处理(二)

本系列是按照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)

20200210143159.png

如图所示,包含以下几个部分:

  • 给定点$p_0$,其对应的特征为$f_0$。以$p_0$为中心点的3D空间中,可以根据8个方向分为8个子空间(octant)。从其中分别寻找最近邻点,如果在某个子空间(octant)内,搜索半径$r$内没有找到点,就将这个子空间的特征认为等于$f_0$。采样之后原本一个中心点d维度的特征变为了2x2x2xd的特征,表示八个象限对应的特征向量。
  • 为了使卷积操作能感知方向上的信息,分别在X、Y、Z轴上进行三阶段的卷积。使用的卷积核为[1,2],stride为[1,2]。
    20200210144329.png
  • 在三次卷积后,每个点都被转换为了一个d维的向量。

尺度感知结构(scale-aware architecture)

20200210144605.png

经过多个OE unit单位提取特征之后用shortcut的方式,对多个尺度的特征进行concatenate,保证尺度不变性。

网络整体结构

20200210144748.png

PointSift模块表示前文的尺度感知结构,SA模块用的pointNet++的下采样模块,FP模块用的pointNet++的上采样模块。

SO-Net

SO-Net: Self-Organizing Network for Point Cloud Analysis
( SO-Net, CVPR 2018)

具体思想

将SOM(自组织映射)的想法应用到点云规则化处理上。基本上是应用SOM替换了点云采样这一步,使用自组织映射来模拟点云分布,达到降维和确定关键点的目的。

核心部分

主要是讲SOM部分,后面部分基本上跟常用方法差不多。

SOM(自组织映射)

20200213120041.png

如图所示尽可能找到关键点拟合原始数据,用SOM的方式替换点云采样的一系列方法(最远点采样等)。

SOM初始化

20200213120247.png

20200213120328.png

算法的过程如第一幅图所示,效果为第二幅图所示。
关键想法是在任何一对节点之间施加排斥力,并且将节点逼近原始数据点。

Batch Update Training

20200213120623.png

20200213120653.png

如图所示,w是服从高斯分布的,经过迭代SOM中的点会拟合原始数据,并且具有表示原始数据的能力(降维)。

整体框架

20200213120857.png

后续部分和其他方法类似。定义knn的k值,进行平均化。这个地方的每个代表点都有k个点的特征,一共就有kN个点的特征都放入共享参数的全连接层中进行特征提取。后面将特征进行max-pooling又可以筛出掉冗余特征留下代表性点的特征,即又一个SOM层。

Pointwise CNN(CVPR 2018)

简单暴力,直接用3x3的网格,求和+归一化,当作一个特征去卷积。

20200213121541.png

Kd-Net(ICCV 2017)

参考博客:https://blog.csdn.net/hongbin_xu/article/details/93915673

具体思想

用Kd-Tree对原始点云做划分,通过变换的学习到达根节点。将数据结构用到点云分割里。
20200213183441.png

  • 图1是KD-Netwoks的示意图。图中只考虑二维的情况。
  • 在一个有8个点的点云上建立KD树,在每一层都从X/Y轴选择一个维度进行划分。
  • 从根节点到叶节点对KD树的每个节点进行编号,根节点编号为0,往后递增。
  • KD数最左边的8到15号节点实际就是原始点云,右边的0号节点可以看做输出的类别预测
  • 从左到右,可以看做这个KD-Network的特征前向传播的方向。
  • 图中的圆圈表示的是特征传播并聚合的过程,对应卷积核,其参数是可学习的。相同的颜色表示共享参数,即如果是在相同维度对点集进行划分,认为其卷积参数也应该共享。

现实的点云数据是三维的,所以有三个方向的划分。而划分面可以看作是决策面,区分两个部分点云,非叶子节点的参数相当于也是决策面的参数。对于每一个点云样本都需要提前建立Kd-tree。这种方法也可以用自编码的方式来实现点云分割,如图所示:
20200213184100.png

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个点

#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×