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 解析

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

二、EdgeConv层介绍

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

Dynamic Graph CNN for Learning on Point Clouds 解析

通俗的描述一下:

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

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

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

 Dynamic Graph CNN for Learning on Point Clouds 解析

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

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

                                                          Dynamic Graph CNN for Learning on Point Clouds 解析

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

                                                      Dynamic Graph CNN for Learning on Point Clouds 解析Dynamic Graph CNN for Learning on Point Clouds 解析

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

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

                                                         Dynamic Graph CNN for Learning on Point Clouds 解析

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

                                            Dynamic Graph CNN for Learning on Point Clouds 解析Dynamic Graph CNN for Learning on Point Clouds 解析

三、EdgeConv理解图示

                                    Dynamic Graph CNN for Learning on Point Clouds 解析

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