文章链接:https://papers.nips.cc/paper/8135-beyond-grids-learning-graph-representations-for-visual-recognition.pdf

TL;DR

文章中介绍如何利用GCN学习图片中大范围内不同regions之间依赖关系的方法(我认为主要是利用GCN扩大了网络的receptive field)。为了将图片feature map转换为图结构,提出了Graph Convolutional Unit。

Dataset/Algorithm/Model

Graph Convolutional Unit (GCU)架构如下:

网络架构

大概分为三部分:

  1. Graph Projection(feature map→ graph representation(A, node features))

    对于一个feature map,相同特征的pixels构成同一个顶点(顶点的数量是预先确定的)。顶点的特征是根据各个像素点的特征聚合而成,计算公式如下:

    qijk=exp((xijwk)/σk22/2)kexp((xijwk)/σk22/2)q_{i j}^{k}=\frac{\exp \left(-\left\|\left(x_{i j}-w_{k}\right) / \sigma_{k}\right\|_{2}^{2} / 2\right)}{\sum_{k} \exp \left(-\left\|\left(x_{i j}-w_{k}\right) / \sigma_{k}\right\|_{2}^{2} / 2\right)}

    ,其中σ\sigma 是和ww 是可更新的值,qq 是映射矩阵(后面的re-projection用到,有点玄乎的东西)。再对顶点的特征归一化:

    zk=zkzk2,zk=1ijqijkijqijk(xijwk)/σkz_{k}=\frac{z_{k}^{\prime}}{\left\|z_{k}^{\prime}\right\|_{2}}, \quad z_{k}^{\prime}=\frac{1}{\sum_{i j} q_{i j}^{k}} \sum_{i j} q_{i j}^{k}\left(x_{i j}-w_{k}\right) / \sigma_{k}

  2. Graph Convolution (features propagation)

    多层的GCN堆积(加上了BN和ReLU):

    Z~=f(AZTWg)\tilde{Z}=f\left(\mathcal{A} Z^{T} W_{g}\right)

  3. Graph Re-Projection (node features→ feature map)

    将每个pixel的特征还原,反映射公式如下:

    X~=QZ~T\tilde{X}=\mathcal{Q} \tilde{Z}^{T}

文章中提出,在两个layers之间可以插入多个GCU,架构如下所示:

GCU 堆叠

Experiments

不同任务下加入GCU的效果:

实验结果

Thoughts

文章中提出了GCU,可以将feature构图,增强了feature map中不同regions之间的依赖关系,这种想法在FR中可以借鉴。但是:

  1. 对于构图中V的数量是人为确定的,这个可以改进。

  2. 对于不同的regions,构图中没有考虑到空间位置的关系,这个也可以提升一下。

联系作者