DGCNN 学习笔记


一、简介

该文章是最新出的一篇针对点云数据分类、分割的网路,它是受PointNet以及PointNet++的启发所进行的修改,PointNet只是独立处理每个点,同过最大池化后的全局特征来进行网络输出,但忽视了点之间的局部特征。所以这篇文章主要提出了一个EdgeConv层来实现获取局部特征,解决PointNet所没有的处理局部特征的问题,整体的网络结构与PointNet的结构类似,最重要的区别就是使用EdgeConv代替MLP。

1.1 解决的问题

  • 使用深度学习处理3D点云。
  • 设计一个可以直接使用点云作为输入的CNN架构,同时可以获取足够的局部信息,可适用于分类、分割等任务。

1.2 贡献

  • 提出了一个新的操作——可微网络模块EdgeConv(边卷积操作),可以直接在点云上操作。EdgeConv能在保证置换不变性的同时捕获局部几何信息。
  • DGCN模型可以在动态更新图的同时,在语义上将点聚合起来。
  • EdgeConv可以被集成,嵌入多个已有的点云处理框架中。
  • 使用EdgeConv搭建的DGCNN网络,在多个基准数据集上取得了state-of-the-art的效果。

1.3 EdgeConv的优缺点

  • 包含了局部领域信息;
  • 通过堆叠EdgeConv模块或循环使用,可以提取到全局形状信息;
  • 在多层系统中,特征空间中的相对关系包含了语义特征。(注:点云中形状近似的部分,在特征空间中距离较小)

效果如何?

  • 在标准数据集ModelNet40和S3DIS上取得了state-of-the-art的效果。
  • EdgeConv考虑了点的坐标,与领域点的距离,忽视了相邻点之间的向量方向,最终还是损失了一部分局部几何信息。

二、网络结构

该文章的网络结构和PointNet的相似,只是对其中的提取特征的结构进行了修改为EdgeConv。
在这里插入图片描述

2.1 EdgeConv层介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 函数的选择

关于公式中的h和 □ 有四种可能的选择
(1)第一种,描述了一种2D图像的场景,如果我们的关注点 Xi ​为一个图像的像素点,而 Xj 可以认为是其周围相连接的一些像素值,此时可以将边缘特征的计算过程写成如下。此时形式和一个卷积核的加权求和过程一致,认为Xi的特征是周围所有点的加权求和,这一点类似于图像的卷积操作,其中每个卷积核为θm,他的维度与x的维度相同,Θ=(θ1,…,θM)表示所有卷积核的集合。
在这里插入图片描述
在这里插入图片描述

2.3 动态CNN

在这里插入图片描述

2.4 实现细节

在这里插入图片描述
在这里插入图片描述

三、实验结果

该网络在分类和分割上都有不错的效果:
在这里插入图片描述
在这里插入图片描述
同时实验还证明了在不同的特征空间都可以长距离范围内携带语义信息,例如即使桌子的两个角距离较远,还是在高维语义特征上表现为接近。
在这里插入图片描述