【论文阅读】DGCNN

动态图卷积神经网络(DGCNN)

一、简介

1、下图是运用所提出的神经网络进行点云分割过程

在这里插入图片描述
如上图所示:

  • 底部表示图神经网络架构的原理
  • 上部表示网络不通层所产生的特征空间的结构,可视化为红点到其他所有点的距离(图中从左到右分别为输入层和layer1-3,之间用EdgeConv网络连接,最右边的图显示了分割结果)

2、设计EdgeConv模块的原因

  • 点云本质上缺乏拓扑结构,因此需要设计一个拓扑模型来丰富点云的表示能力
  • 直接将点云作为输入的深度网络PointNet,它只是独立的处理每个点,但未考虑点的局部特征,忽视了点之间的几何相关信息,导致丢失一部分局部特征信息
  • pointnet网络的各种扩展考虑了点的邻域,而不是独立地对每个点起作用,这些允许网络利用局部特征,提高基本模型的性能。在很大程度上独立处理局部尺度上的点,以保持排列不变性。然而这种独立性忽略了点之间的几何关系,提出了一个根本的限制,不能捕获局部特征

3、EdgeConv的贡献

  • 提出了一个新的模块EdgeConv,可以直接在点云上操作。EdgeConv能在在保证置换不变性的同时捕获局部几何信息。
  • DGCNN模型可以在动态更新图的同时,在语义上将点聚合起来。
  • EdgeConv可以被集成,嵌入多个已有的点云处理框架中。
  • 合并了局部邻域信息,可以堆叠应用于学习全局形状属性。

二、原理

  • 提出了一种受PointNet和卷积操作启发的方法。然而,我们并没有处理像PointNet这样的单个点,而是按照图神经网络的精神,通过构造一个局部邻域图,并在连接相邻点对的边上应用类似卷积的操作来开发局部几何结构。我们在下面展示了这种运算,称为边缘卷积(EdgeConv),具有介于平移不变性和非局域性之间的性质。
  • 与图cnn不同的是,我们的图不是固定的,而是在网络的每一层之后动态更新的。也就是说,一个点的k个最近邻的集合在网络的每一层变化,并从嵌入序列中计算出来。特征空间的接近度与输入的接近度不同,导致信息在整个点云中的非局部扩散

2.1Edge Convolution
在这里插入图片描述

  • 考虑一个有n个点的f维点云,记为:在这里插入图片描述,最简单的情况下,F=3(表示三维坐标),当然也可以包含颜色、表面法线等信息的坐标
  • 在深度神经网络体系结构中,后续每一层都对前一层的输出进行操作,所以一般来说,维F表示给定层的特征维数
  • 局部点云结构的有向图G=(V,E),顶点V={1,…,N},边E属于V x V。在最简单地情况下,我们建立一个KNN图G。假设距离点xi最近的点在这里插入图片描述包含许多有向边缘在这里插入图片描述
  • 我们定义边缘特征为:在这里插入图片描述,其中在这里插入图片描述是一个非线性函数,具有一组可学习参数在这里插入图片描述。总的来说,给定一个有n个点的F维点云,EdgeConv生成了一个具有相同点数的F’维点云。
  • 我们对每个顶点产生的边通过应用一条通道对称聚合操作□(例如求和或取最大值)来定义EdgeConv操作。因此,EdgeConv在第i个顶点处的输出为完整公式为:
    在这里插入图片描述
  • h和□的选择有四种:
    1)当x1,…, xn代表规则网格上的图像像素,图G具有代表每个像素周围固定大小的斑块的连通性,选择θm·xj作为边缘函数和和进行聚合运算得到标准卷积:在这里插入图片描述
    2)在PointNet中,只编码全局形状信息而不考虑局部邻域结构,这种是EdgeConv的特例。当K=1且在这里插入图片描述
    时表示:在这里插入图片描述
    3)在PointNet++中,试图通过以局部方式应用PointNet来解释局部结构,首先根据点之间的欧氏距离构造图,并在每一层应用一个图粗化操作。对于每一层,使用最远点采样(FPS)选择一些点;在这一层之后,只有选中的点被保留,其他的点被直接丢弃。通过这种方式,在每一层上应用操作后,图形会变得更小。
    在这里插入图片描述
    4)这种方法只对局部信息进行编码,将形状视为小块的集合,而失去了全局结构在这里插入图片描述
    5)第四种,也是文中采用的:明确的结合了全局形状结构(xi)和局部邻域信息(xj-xi)。在这里插入图片描述
    有向边缘表示:在这里插入图片描述这些可以实现为一个共享的MLP,并采取在这里插入图片描述,这里在这里插入图片描述
    2.2动态图更新
  • 假设第L层的输出为在这里插入图片描述那么X0就是输入点云。
  • 新计算图使用最近邻的特征空间产生的每一层。这是我们的方法与处理固定输入图的图cnn的一个关键区别
  • 我们的体系结构学习如何构建每一层使用的图G,而不是在计算网络之前将其作为一个固定常数。在我们的实现中,我们在特征空间中计算成对的距离矩阵,然后为每个单点取最近的k个点

三、实现细节

整个网络结构图如下:
在这里插入图片描述

  • 整体的网络结构与PointNet的很类似,都使用了一个空间变换单元,最后计算了一个全局信息。
  • 分类网络中包含了两个EdgeConv层,后面接上了一个池化操作和3个全连接层,然后得到分类结果。
  • 分割网络使用了三个EdgeConv层,后面接上了三个全连接层,最后每个点都会输出一个预测分数。
  • 对于每个EdgeConv模块,我们都是用共享边缘函数:在这里插入图片描述
    而这个函数是用一个多层感知机实现的,聚合操作□ =max即为最大池化。
  • KNN图中的K值是一个超参,分类网络中K=20,而在分割网络中K=30
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值