Dynamic Graph CNN for Learning on Point Clouds 解析

      该文章是最新出的一篇针对Point Clouds数据分类、分割的网路,它是受点云数据处理的鼻祖论文PointNet、PointNet++的启发所进行的修改,PointNet只是独立处理每个点,来实现permutation invariance,但忽视了点之间的局部特征。所以这篇文章主要提出了一个EdgeConv层来实现获取局部特征,解决PointNet所没有的处理局部特征的问题。

一、网络结构

该文章的网络结构和PointNet的相似,只是对其中的提取特征的结构进行了修改为EdgeConv

Dynamic Graph CNN for Learning on Point Clouds 解析_第1张图片

其中EdgeConv的设计是文章的创新之处。文章原文是这样描述的:输入为nxf的tensor,通过MLP按照给定的每一层的输出特征尺寸{a1,a2,...,an}计算边缘特征,最后沿着neighboring的边缘特征的方向做pooling操作生成新的tensor——n x an。

二、EdgeConv层介绍

为了细致的说明EdgeConv层的道理,文章针对EdgeConv举了一个例子,文中的图是这样的。

Dynamic Graph CNN for Learning on Point Clouds 解析_第2张图片

通俗的描述一下:

(1)图1,描述了一个关注点Xi和其邻近的一个点Xj的边缘特征的求解过程,图中的全连接操作只是一个示例。实际操作作者使用MLP操作。

(2)图2,假设一个关注点Xi周围的K个邻近点(图中K=5)。按照图例,需要按照图1的方式计算Xi和图中5个点的边缘特征。

(3)图3,将计算出的5个邻近点的边缘特征pooling到 点数 乘以 特征 的尺寸上。(公式如下,可以采取求和或max)

 

文章还针对h的选择和其中点的选择进行了讨论,主要分为四种;

(1)第一种,描述了一种2D图像的场景,如果我们的关注点Xi为一个图像的像素点,而Xj可以认为是其周围相连接的一些像素值,此时可以将边缘特征的计算过程写成如下。此时形式和一个卷积核的加权求和过程一致,

                                                          

(2)第二种,描述了一种仅考虑全局特征的形式,即只有关注点Xi的形式,也就是PointNet中提到的形式,此时

                                                      

所以说PointNet中使用MLP操作可以认识是EdgeConv中特殊的一种操作。

(3)第三种,描述了一种仅考虑局部特征的形式,即只有关注点和邻近点之间联系的操作,此时

                                                         

(4)最后一种,也是文章采用的一种,既考虑全局又考虑局部,即将上述(2)和(3)操作结合

                                            

三、EdgeConv理解图示

                                    Dynamic Graph CNN for Learning on Point Clouds 解析_第3张图片

输入为NxF的张量,其中包括原数据Xi和与其附近的K个点。首先原数据的每个点和附件的K个点,通过MLP生成K个NxM特征,即NxKxM,最后通过一个pooling操作输出NxM特征。



你可能感兴趣的:(机器学习)