百度飞浆图像分割课程 笔记07:基于视觉特征的图推理方法 Beyond Grids(Learning Graph Representations for Visual Recognition)

基于视觉特征的图推理方法 Beyond Grids:Learning Graph Representations for Visual Recognition
百度飞浆图像分割课程 笔记07:基于视觉特征的图推理方法 Beyond Grids(Learning Graph Representations for Visual Recognition)_第1张图片
具体方法
百度飞浆图像分割课程 笔记07:基于视觉特征的图推理方法 Beyond Grids(Learning Graph Representations for Visual Recognition)_第2张图片

图投影(Graph Projection)
本质:把一些特征相似的pixel分配到同一个节点,也就是特征点聚合。
百度飞浆图像分割课程 笔记07:基于视觉特征的图推理方法 Beyond Grids(Learning Graph Representations for Visual Recognition)_第3张图片
如何特征点聚合
分配特征X={ x 1 ; x 2 ; x 3 ; . . . ; x N x_{1};x_{2};x_{3};...;x_{N} x1x2x3...xN}∈ R N × d R^{N×d} RN×d到节点集合。其中N=H×W。

步骤1:首先计算一个分配矩阵,作用:计算每个pixel的特征group到每个node上的权重有多大。
在这里插入图片描述

  • v表示最后要聚合成多少个node
  • w k w_{k} wk为聚类中心。
  • q i j k q^{k}_{ij} qijk代表(i,j)表示位置(i,j)处feature与第k个节点的距离度量。然后距离度量作为权重,去做group。

本质:算一个归一化的高斯径向基的距离,也就是每个pixel位置计算和 w k w_{k} wk(第k个node的聚类中心)的距离,按照高斯形式,然后算出归一化的权重 q i j k q^{k}_{ij} qijk
其中 w k w_{k} wk σ k σ_{k} σk为可学习的,可定义的参数。

步骤2:计算图表征 Z∈ R d ∣ v ∣ R^{d|v|} Rdv
q i j k q^{k}_{ij} qijk和feature map X做一个加权求和,就可以得到每个节点node的表征。
![在这里插入图片描述](https://img-blog.csdnimg.cn/dd0c45b6add247e5aded8cbf931e8
每个位置的feature x i , j x_{i,j} xi,j和第k个node对应的序列中心 w k w_{k} wk做减法,然后除以 σ k σ_{k} σk,再乘以权重 q i j k q^{k}_{ij} qijk,再做归一化,得到第k个node的表征

步骤3:做卷积前,需要计算邻接矩阵
邻接矩阵:前面已经将每个node拼接成大的矩阵Z,然后 Z T Z Z^{T}Z ZTZ得到一个相似度矩阵。
在这里插入图片描述

图卷积(Graph Convolution)
在这里插入图片描述
邻接矩阵 × 图表征 × W g {W_g} Wg W g {W_g} Wg为图表征可学习的参数。做了图卷积,相当于在整个Graph上node与node之间都进行信息传递,并进行了状态更新,最后得到了一个新的增强的Graph。

图反投影(Graph Reprojection)
最后需要还是要做pixel的预测,所有graph还是要投影成二维的feature map
在这里插入图片描述

注意:

  • Node不是类别数,只是将相似的像素聚合在一起,可以设置为16或者32,为经验值。
  • 图神经网络不是用来做分类的(不是作为classifier),只是将feature map进行分组,分成几个node,然后学习了node之间的关系,最后再返回为feature map(可以理解为学习了node的上下文信息的feature map),图神经网络可以放在model中的任何位置(如果用在网络的前端,则node数量要大一点,因为分辨率高,feature map较大,如果再网络高层,分辨率较小,则node数量少点),然后继续进行其他操作,最后再加classifier进行分类。

你可能感兴趣的:(百度飞浆图像分割课程,笔记,百度)