【3D计算机视觉】GACNet——点云上的图注意力机制卷积网络

论文地址
自己尝试实现的pytorch版本:https://github.com/yanx27/GACNet
(真正的版本还要等原作者开源)

一. 论文简介

1.1 摘要

本文(CVPR2019刚录入)介绍了一种能在点云上端到端进行分割和分类的深度网络,其主要贡献点在于Graph Attention Convolution,其主要通过建立每个点与周围点的图结构,并通过引入注意力机制计算中心点与每一个邻接点的边缘权重,从而使得网络能在分割的边缘部分取得更好的效果。
在这里插入图片描述
如图可以看出,点1与五个点相邻接,因此点1上的特征由五个邻接点的特征与它自己本身的特征加权得到。可以看出,通过神经网络的训练,不同类别上的相邻点的边缘权重会比较小,相同类别的邻接边缘权重会比较大。
在这里插入图片描述
从分割结果也可以看出,如果去掉这样的结构(图三),在边缘部分就会分割得不够准确。

1.2 相关工作

Pointnet系列

图卷积网络系列

  • 如果不知道GCN系列的,这里有很全的学习资料。
  • 除了GCN,这篇文章的idea也比较像 Edge-Conditioned Convolution,只是将固定的边的权重变为了用Attention去求,图的中心点由体素的中心改为了学习pointnet++随机采样。

二. 模型结构

2.1 Graph attention convolution

  • 考虑一个图 ( V , E ) (V,E) (V,E),其中 V V V E E E是图的定点vertex和边缘edge,有 V ∈ 1 , 2 , . . . . N V \in {1,2,....N} V1,2,....N E ∈ ∣ V ∣ × ∣ V ∣ E\in |V|\times |V| EV×V,我们可以用 N ( i ) N(i) N(i)来代表定点i的邻结点。
  • 给定一组点云 P = { p 1 , p 2 , . . . , p N } ∈ R 3 P=\{p_1,p_2,...,p_N\}\in R^3 P={p1,p2,...,pN}R3,可以用
    h = { h 1 , h 2 , . . . , h N } ∈ R F h = \{h_1,h_2,...,h_N\}\in R^F h={h1,h2,...,hN}RF来代表每个点的特征,其中 F F F为特征的维度。
  • 对于每一个定点 i i i,其与邻接点的权重可以这样计算:
    a ~ i j = α ( Δ p i j , Δ h i j ) = M L P ( [ Δ p i j ∣ ∣ Δ h i j ] ) , j ∈ N ( i ) \tilde{a}_{ij} = \alpha (\Delta p_{ij},\Delta h_{ij}) = MLP([\Delta p_{ij}||\Delta h_{ij}]),j\in N(i) a~ij=α(Δpij,Δhij)=MLP([ΔpijΔhij]),jN(i)其中 Δ p i j = p j − p i \Delta p_{ij} = p_j-pi Δpij=pjpi Δ h i j = M g ( h j ) − M g ( h i ) \Delta h_{ij} = M_g(h_j) - M_g(h_i) Δhij=Mg(hj)Mg(hi) M g M_g Mg为一个维度F到K的映射函数(论文中是MLP), ∣ ∣ || 为拼接操作。
  • a ~ i j \tilde{a}_{ij} a~ij可以表示K个通道上的特征 [ a ~ i j , 1 , a ~ i j , 2 , . . . , a ~ i j , K ] [\tilde{a}_{ij,1},\tilde{a}_{ij,2},...,\tilde{a}_{ij,K}] [a~ij,1,a~ij,2,...,a~ij,K],最后将其对所有的 j j j做一个Softmax的操作使得所有的权重的和为1. α i j , k = e x p ( a ~ i j , k ) ∑ l ∈ N ( i ) e x p ( a ~ i j , k ) ) \alpha_{ij,k} = \frac{exp(\tilde{a}_{ij,k})}{\sum_{l\in N(i)}exp(\tilde{a}_{ij,k}))} αij,k=lN(i)exp(a~ij,k))exp(a~ij,k)这代表了第j个点对于第i个点在第k个通道上的权重值。
  • 所以最后其可以表示成 h i ′ = ∑ l ∈ N ( i ) α i j ∗ M g ( h j ) + b i h'_i = \sum_{l\in N(i)} \alpha_{ij} * M_g(h_j)+b_i hi=lN(i)αijMg(hj)+bi其中 ∗ * 代表逐项相乘
  • 最后其总体的流程可以如下图所示,先计算 Δ h \Delta h Δh Δ p \Delta p Δp,再通过拼接这两个向量并反向传播训练得其相互的权重,最后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++比)
在这里插入图片描述
最后作者在论文中说会公布源码,希望早日公开。

  • 9
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值