点云处理——3D shape classification


阅读的文献是国防科技大学的一篇综述:Guo Y , Wang H , Hu Q , et al. Deep Learning for 3D Point Clouds: A Survey[J]. 2019. 关于点云处理介绍的比较全面。文中介绍了一些常用的公开数据集:

  • ModelNet [6]:CAD 模型数据,总共有662种目标分类,127915个CAD,以及十类标记过方向朝向的数据。其中包含了三个子集: ModelNet10 十个标记朝向的子集数据;ModelNet40 40 类 三维模型;Aligned40:40类标记的三维模型。
  • ShapeNet :是一个丰富标注的大规模点云数据集,其中包含了55种常见的物品类别和513000个三维模型。
  • ScanNet :室内场景的语义分割(semantic segmentation)。1513个训练场景,100个测试场景。
  • Semantic3D :户外场景点云数据库,这个数据库分了两种数据:一种是semantic8,包含8类东西(1: man-made terrain, 2: natural terrain, 3: high vegetation, 4: low vegetation, 5: buildings, 6: hard scape, 7: scanning artefacts, 8: cars),训练集和测试集各15个,这套数据集总共包含超过10亿的点。作者怕你的算法消受不起,于是提供了一份压缩版的, reduced8,点数就少多了。
  • KITTI Vision Benchmark Suite :

数据集详细介绍:https://github.com/timzhang642/3D-Machine-Learning

       文章整体框架如下:

根据自己的情况选择了以下四个方向进行研读。

任务一:点云形状分类(3D shape classification)

任务二:点云目标分割(3D object detection)

任务三:点云语义分割 (3D point cloud semantic segmentation)

任务四:点云实例分割 (3D point cloud instance segmentation)

 


 

任务一:点云形状分类(3D shape classification)

一般过程:先学习单点特征,再聚合全局特征,再接两个全连接,最后分类。

在2015年,大多数方法都用多视图数据解决三维目标分类问题,2016年更多的方法使用了体素表示的点云学习,2017年基于点的方法有了大幅度的增长。

 

1. 基于多视图的方法(Multi-view projection methods)

将3D对象投影到多个视图中,如俯视图,正视图,从不同方位的视图中分别提取相应的特征,然后融合这些特征进行目标识别。关键点在于如何融合多视图特征,使之聚合为一个可区分的全局表示。MVCNN是该类方法的开创性工作,作者将多个视图的特征最大池化为一个全局描述符,用于分类。MHBN 通过协调双线性池化整合了局部卷积特征,以生成紧凑的全局描述符。

  • 将点云投影到不同的view,利用已有的网络结构(CNN)进行特征提取。
  • 处理速度慢,且视角越多越耗时。

 

2. 基于体积占用的方法(Volumetric-based methods)

也是投影方法的一种,相当于把点投影到规则网格中,每个网格可能存在不止一个空间点。

代表:

   VoxNet 网络:就是二维卷积在三维的扩展。

   3D ShapeNet:用体素网格上二进制变量的概率分布表示3D形状。

存在的问题:上述两种方法无法很好地应用到密集的3D数据,因为计算和内存占用量会随着分辨率的增加而三次增长。

OctNet首先使用混合网格八叉树结构对点云进行分层划分,使用位串表示对octree的结构进行有效编码,并通过简单的算法对每个体素的特征向量进行索引。树结构的优点是没有点云的地方不再细分,从而降低内存占用。

 

3. 基于点的方法(Point-based methods)

无需投影和体素化,直接对点操作。又分为以下四类:

  • 单点独立处理式
  • 考虑邻域空间关系的卷积式
  • 考虑邻域空间关系的图卷积式
  • 树结构式

3.1 单点独立处理式

这类方法以PointNet和PointNet++为主要代表,也是目前影响力最大的方法。每个点的特征计算都是使用Pointwise MLP直接单点 计算,即每个点的输出特征只与上一层自己的输入点特征有关,不受邻域点特征的影响,卷积核使用的是1x1的卷积核。最后通过一个聚合函数(聚合函数可以是max pooling, avg pooling等)提取全局点云特征,用于形状分类。

代表:

 PointNet:T-Net调整点云姿态;max pooling 解决点云排列不变性。

 DeepSets: 用summing up + nonlinear transformation实现permutation invariance。

存在的问题:上述两种方法没有考虑点云的局部空间关系

PointNet++:使用set abstraction结构逐层提取特征,采样后的点融合了邻域点的特征信息,同时每次采样只保留一半的点云,后续网络层的感受野逐渐扩大,最后通过聚合函数得到紧密的全局点云特征表示。

PointNet++详解:https://blog.csdn.net/qq_24505417/article/details/108741260

 

3.2 考虑邻域空间关系的卷积式

    

基于卷积的方法与Pointwise MLP方法不同的是,它会使用空间邻域像素的feature,并使用3x3的卷积核提取。

a. 连续卷积:在连续空间中定义卷积核,相邻点的权重与相对于中心点的空间分布有关(权重由MLP学习得到)。即邻域子集点的加权和。

代表:RS CNN、DensePoint、PointConv

详解:https://blog.csdn.net/qq_24505417/article/details/108740919            

b. 离散卷积:卷积定义在离散的规则网格上,同一网格的点云被赋予相同的权重。卷积的权重与相对中心点的偏移有关。也就是说卷积核权重不是分配给点云,而是分配给网格。

代表:Pointwise CNN、PointCNN

详解:https://blog.csdn.net/qq_24505417/article/details/108741144

 

3.3 考虑邻域空间关系的图卷积式

图模型具有强大的表达以及处理不规则数据能力。基于图的网络将点云中的每个点视为图的顶点,并基于每个点的邻居为图生成有向边。

a. 空间域图卷积在空间域定义卷积核(MLP)与池化。

代表:ECC (Dynamic Edge-conditioned Filters),Dynamic Graph CNN (DGCNN) 

b. 频率域图卷积在频率域定义卷积核(MLP)与池化。

代表:RGCNN

ECC和DGCNN详解:https://blog.csdn.net/qq_24505417/article/details/108741523

 

 

3.4 树结构式

在这些方法中,点特征是沿着树从叶节点到根节点分层学习的。根节点的特征代表了整个点云的特征。

代表:Octree guided CNN using spherical kernels (CVPR2019)、KdNet

详解:https://blog.csdn.net/qq_24505417/article/details/108741783

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页