【点云处理之论文狂读经典版7】—— Dynamic Edge-Conditioned Filters in Convolutional Neural Networks on Graphs

摘要

  • 背景: 许多问题都可以表示为基于graph结构数据的预测
  • 方法: 将卷积操作从网格推广到任意的graphs,同时避免了频域,能够解决不同大小和连通性的graph
  • 细节: filters的权值依赖顶点到邻域的边值;开发了用于graph分类的深度神经网络
  • 结果: 在点云分类上的效果很好
  • 代码: https://github.com/mys007/ecc (PyTorch版本)

1.引言

  • 在空间域中构建了一个图卷积神经网络,filters的权值依赖于边上的值,并且对每个特定的输入都动态更新。提出的图卷积网络适用于任意的数据结构
  • 将图卷积网络应用到点云分类任务中,并取得到了较好的结果

2.相关工作

频域方法
空间域方法

3.方法

3.1 Edge-Conditioned Convolution

l ∈ { 0 , . . , l max ⁡ } l \in\left\{0, . ., l_{\max }\right\} l{0,..,lmax}为前馈神经网络层的索引。

G = G= G= ( V , E ) (V, E) (V,E)表示无向或有向图,其中 V V V是顶点(Vertex)的有限集合 ∣ V ∣ = n |V|=n V=n E ⊆ V × V E \subseteq V \times V EV×V是边(Edge)的集合 ∣ E ∣ = m |E|=m E=m

假设图是通过顶点和边进行表示的,即 X l : V ↦ R d l X^{l}: V \mapsto \mathbb{R}^{d_{l}} Xl:VRdl表示给每个顶点分配值(feature), L : E ↦ R s L: E \mapsto \mathbb{R}^{s} L:ERs表示给每个边分配值(attribute)。用矩阵的形式可以表示所有的顶点 X l ∈ R n × d l X^{l} \in \mathbb{R}^{n \times d_{l}} XlRn×dl和所有的边 L ∈ R m × s , X 0 L \in \mathbb{R}^{m \times s}, X^{0} LRm×s,X0表示为输入信号。

顶点 i i i的 neighborhood N ( i ) = { j ; ( j , i ) ∈ E } ∪ { i } N(i)=\{j ;(j, i) \in E\} \cup\{i\} N(i)={j;(j,i)E}{i}包含了所有相邻的顶点和 i i i本身。

顶点 i i i处的filtered信号 X l ( i ) ∈ R d l X^{l}(i) \in \mathbb{R}^{d_{l}} Xl(i)Rdl通过其neighborhood点信号 X l − 1 ( j ) ∈ R d l − 1 X^{l-1}(j) \in \mathbb{R}^{d_{l-1}} Xl1(j)Rdl1 j ∈ N ( i ) j \in N(i) jN(i)的加权和计算得到。

尽管这种交换聚合的方式解决了permutation-invariant和neighborhood 大小可变的问题,但是这样也抹除了任意的结构信息。(意思是指聚合的方法太暴力?只用顶点进行更新会损失结构信息,所以引出了边值作为权重)

为了解决这个问题,提出在每个边值上都加入filter权值的条件。定义一个输入为边值 L ( j , i ) L(j, i) L(j,i)的filter-generating network F l : R s ↦ R d l × d l − 1 F^{l}: \mathbb{R}^{s} \mapsto \mathbb{R}^{d_{l} \times d_{l-1}} Fl:RsRdl×dl1, 输出为特定边的权值矩阵 Θ j i l ∈ R d l × d l − 1 \Theta_{j i}^{l} \in \mathbb{R}^{d_{l} \times d_{l-1}} ΘjilRdl×dl1,见图1。

这个被称为 Edge-Conditioned Convolution (ECC) 的卷积操作,用公式可以表示为:
X l ( i ) = 1 ∣ N ( i ) ∣ ∑ j ∈ N ( i ) F l ( L ( j , i ) ; w l ) X l − 1 ( j ) + b l = 1 ∣ N ( i ) ∣ ∑ j ∈ N ( i ) Θ j i l X l − 1 ( j ) + b l \begin{aligned} X^{l}(i) &=\frac{1}{|N(i)|} \sum_{j \in N(i)} F^{l}\left(L(j, i) ; w^{l}\right) X^{l-1}(j)+b^{l} \\ &=\frac{1}{|N(i)|} \sum_{j \in N(i)} \Theta_{j i}^{l} X^{l-1}(j)+b^{l} \end{aligned} Xl(i)=N(i)1jN(i)Fl(L(j,i);wl)Xl1(j)+bl=N(i)1jN(i)ΘjilXl1(j)+bl
其中 b l ∈ R d l b^{l} \in \mathbb{R}^{d_{l}} blRdl是可学习的偏置, F l F^{l} Fl的可学习参数为网络权值 w l w^{l} wl w l w^{l} wl b l b^{l} bl是模型参数,仅在训练时更新, Θ j i l \Theta_{j i}^{l} Θjil是根据输入graph的边值动态生成的参数。filter-generating network F l F^{l} Fl可以是任意可导的模型,本文使用的是多层感知机。

复杂度
对所有顶点计算 X l X^l Xl至多需要 m m m F l F^l Fl的评估,以及 m + n m+n m+n(有向图)或 2 m + n 2m+n 2m+n(无向图)次矩阵-向量乘法运算。但是在GPU上进行操作会更有效率一些。

3.2 Relationship to Existing Formulations

在规则的网格上进行卷积可以看作是ECC的一种特殊形式。

3.3. Deep Networks with ECC

网络结构包括交错卷积、全局池化和全连接层组成,见图3。通过这种方式,从局部邻域中得到的信息会逐层结合得到最终的context(增大接受域)。虽然边值对特定的graph来说是固定的,但通过filter generating networks进行了(学习的)解释,可能会从一层到另外一层时发生改变(在层之间未共享 F l F^l Fl的权重)。 因此,只有1-hop neighborhoods限制的ECC并不会被约束,类似于在标准CNN中使用小的3×3filter来换取更深的网络,这是有益的。

在每次卷积后使用Batch Normalization,用于快速收敛。

Pooling

尽管(non-strided)卷积层和所有point-wise层不会改变基础graph,并且只能在顶点上更新信号,但池化层被定义为在一个新的、coarsened graph的顶点上输出聚合信号。因此,必须为每个输入graph构造一个逐步coarser的graph h m a x h_{max} hmax的pyramid。

h ∈ { 0 , … , h max ⁡ } h \in\left\{0, \ldots, h_{\max }\right\} h{0,,hmax}表示pyramid中不同的 graph G ( h ) = ( V ( h ) , E ( h ) ) G^{(h)}=\left(V^{(h)}, E^{(h)}\right) G(h)=(V(h),E(h)),每一个 G ( h ) G^{(h)} G(h)都与 L ( h ) L^{(h)} L(h) X ( h ) , l X^{(h), l} X(h),l相关联。coarsening的过程包含3步:

  1. subsampling or merging vertices
  2. creating the new edge structure E ( h ) E^{(h)} E(h) and labeling L ( h ) L^{(h)} L(h) (so-called reduction)
  3. mapping the vertices in the original graph to those in the coarsened one with M ( h ) : V ( h − 1 ) ↦ V ( h ) M^{(h)}: V^{(h-1)} \mapsto V^{(h)} M(h):V(h1)V(h)

最终,索引为 l h l_{h} lh的池化层将 X ( h − 1 ) , l h − 1 X^{(h-1), l_{h-1}} X(h1),lh1聚合到基于 M ( h ) M^{(h)} M(h)的更低维度 X ( h ) , l h X^{(h), l_{h}} X(h),lh

在coarsening的过程中,由于self-edge经常出现,因此会出现较小的graph减少为若干断开连接的顶点,这样也不会出现问题。因为该结构被用来处理带有变量 n , m n,m n,m的graph,我们通过全局 average/max池化操作解决最低分辨率下graph的变化的顶点数量 n h m a x n^{h_{max}} nhmax

3.4. Application in Point Clouds

Graph Construction

给定一组点云 P P P 和对应的点特征 X P X_{P} XP,我们构造一个有向图 G = ( V , E ) G=(V, E) G=(V,E),并分配 X 0 X^{0} X0 L L L

  1. 对于每个点 p ∈ P p \in P pP都构造顶点 i ∈ V i \in V iV,通过 X 0 ( i ) = X P ( p ) X^{0}(i)=X_{P}(p) X0(i)=XP(p)分配对应的信号(如果没有特征,那么赋值为0)
  2. 通过有向边 ( j , i ) (j, i) (j,i)连接每个顶点 i i i 和其在空间neighborhood中的顶点 j j j ,实验表明,Ball query的表现更好
  3. 在笛卡尔坐标系和球面坐标系下,6D向量 L ( j , i ) = ( δ x , δ y , δ z , ∥ δ ∥ , arccos ⁡ δ z / ∥ δ ∥ , arctan ⁡ δ y / δ x ) L(j, i)=\left(\delta_{x}, \delta_{y}, \delta_{z},\|\delta\|, \arccos \delta_{z} /\|\delta\|, \arctan \delta_{y} / \delta_{x}\right) L(j,i)=(δx,δy,δz,δ,arccosδz/δ,arctanδy/δx)被作为边上的值,其中 δ = p j − p i \delta=p_{j}-p_{i} δ=pjpi表示顶点 j , i j,i j,i间的偏移。

Graph Coarsening

对于一组输入点云 P P P,通过VoxelGrid algorithm获得下采样点云的pyramid P ( h ) P^{(h)} P(h),具体流程包括在点云上覆盖上分辨率为 r ( h ) r^{(h)} r(h)的网格,对每个voxel中的点取质心。每个下采样后的点云 P ( h ) P^{(h)} P(h)都被独立转化成neighborhood 半径为 ρ ( h ) \rho^{(h)} ρ(h)的graph G ( h ) G^{(h)} G(h)和 labeling L ( h ) L^{(h)} L(h)。定义pooling map M ( h ) M^{(h)} M(h),保证 P ( h − 1 ) P^{(h-1)} P(h1)中的每个点都被分配给下采样点云 P ( h ) P^{(h)} P(h)中距离其( P ( h − 1 ) P^{(h-1)} P(h1)中的每个点)最近的点。

Data Augmentation

We randomly rotate point clouds about their upaxis, jitter their scale, perform mirroring, or delete random points.

4.实验

C ( c ) \mathrm{C}(c) C(c)表示ECC的输出通道数为 c c c,后面跟着batch normalization和ReLU激活函数。 M P ( r , ρ ) \mathrm{MP}(r, \rho) MP(r,ρ)表示最大池化层,grid分辨率为 r r r,neighborhood半径为 ρ \rho ρ G A P \mathrm{GAP} GAP为平均池化层。 F C ( c ) \mathrm{FC}(c) FC(c)是通道数为 c c c的全连接层。 D ( p ) \mathrm{D}(p) D(p)表示概率为 p p p的dropouot。

4.1 Sydney Urban Objects

C ( 16 ) − C ( 32 ) − M P ( 0.25 , 0.5 ) − C ( 32 ) − C ( 32 ) − M P ( 0.75 , 1.5 ) − C ( 64 ) − M P ( 1.5 , 1.5 ) − G A P − F C ( 64 ) − D ( 0.2 ) − F C ( 14 ) C(16)-C(32)-MP(0.25,0.5)-C(32)-C(32)-MP(0.75,1.5)-C(64)-MP(1.5,1.5)-GAP-FC(64)-D(0.2)-FC(14) C(16)C(32)MP(0.25,0.5)C(32)C(32)MP(0.75,1.5)C(64)MP(1.5,1.5)GAPFC(64)D(0.2)FC(14)

C C C里面的 F l F^l Fl包含 F C ( 16 ) − F C ( 32 ) − F C ( d l d l − 1 ) FC(16)-FC(32)-FC(d_ld_{l−1}) FC(16)FC(32)FC(dldl1)

4.2 ModelNet

C ( 16 ) − C ( 32 ) − M P ( 2.5 / 32 , 7.5 / 32 ) − C ( 32 ) − C ( 32 ) − M P ( 7.5 / 32 , 22.5 / 32 ) − C ( 64 ) − G A P − F C ( 64 ) − D ( 0.2 ) − F C ( 10 ) C(16)-C(32)-MP(2.5/32,7.5/32)-C(32)-C(32)-MP(7.5/32,22.5/32)-C(64)-GAP-FC(64)-D(0.2)-FC(10) C(16)C(32)MP(2.5/32,7.5/32)C(32)C(32)MP(7.5/32,22.5/32)C(64)GAPFC(64)D(0.2)FC(10)

C C C里面的 F l F^l Fl包含 F C ( 16 ) − F C ( 32 ) − F C ( d l d l − 1 ) FC(16)-FC(32)-FC(d_ld_{l−1}) FC(16)FC(32)FC(dldl1)

生词

  • commutative adj. 可交换的
  • interlace v. 隔行,交错
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值