【3D计算机视觉】GACNet——点云上的图注意力机制卷积网络
Graph Attention Convolution for Point Cloud Segmentation
一. 论文简介
1.1 摘要
本文(CVPR2019刚录入)介绍了一种能在点云上端到端进行分割和分类的深度网络,其主要贡献点在于Graph Attention Convolution,其主要通过建立每个点与周围点的图结构,并通过引入注意力机制计算中心点与每一个邻接点的边缘权重,从而使得网络能在分割的边缘部分取得更好的效果。
如图可以看出,点1与五个点相邻接,因此点1上的特征由五个邻接点的特征与它自己本身的特征加权得到。可以看出,通过神经网络的训练,不同类别上的相邻点的边缘权重会比较小,相同类别的邻接边缘权重会比较大。
从分割结果也可以看出,如果去掉这样的结构(图三),在边缘部分就会分割得不够准确。
1.2 相关工作
Pointnet系列
如果不知道pointnet系列的可以查看三维深度学习之pointnet系列详解。
图卷积网络系列
如果不知道GCN系列的,这里有很全的学习资料。
二. 模型结构
2.1 Graph attention convolution
- 考虑一个图,其中和是图的定点vertex和边缘edge,有和,我们可以用来代表定点i的邻结点。
- 给定一组点云,可以用
来代表每个点的特征,其中为特征的维度。 - 对于每一个定点,其与邻接点的权重可以这样计算:
其中,,为一个维度F到K的映射函数(论文中是MLP),为拼接操作。 - 可以表示K个通道上的特征,最后将其对所有的做一个Softmax的操作使得所有的权重的和为1.这代表了第j个点对于第i个点在第k个通道上的权重值。
- 所以最后其可以表示成其中代表逐项相乘
- 最后其总体的流程可以如下图所示,先计算和,再通过拼接这两个向量并反向传播训练得其相互的权重,最后softmax归一化得到最终结果。其具体的代码实现可以参考Graph Attention Networks网络结构+代码
2.2 函数逼近
与pointnet一样,文章证明了该模型可以在Hausdorff空间上逼近任意的连续函数。(这里不细讲)
2.3 总体结构
这张图讲得很清楚,与pointnet++相似,GACNet先在点云中随机的采样(同pointnet++中的Sampling),再划去一个k为半径的区域(同pointnet++中的ball query)随机采样相邻点,最后通过这样的采样点计算attention的权重。最后通过权重加权计算好每个点的特征以后再通过Graph Pooling(其实就是max或者mean池化),进行点云的下采样。在上采样过程中都与pointnet++类似,采用插值+直连的方法。
三. 实验结果
其在室内和室外两个场景的数据集上进行了分割的实验,其中室内的实验结构如下:(不知道为什么没和pointnet++比)
最后作者在论文中说会公布源码,希望早日公开。