TPAMI2021 Affinity Attention Graph Neural Network
Affinity Attention Graph Neural Network for Weakly Supervised Semantic Segmentation 亲和力与图卷积神经网络的结合
将弱监督转换为semi-supervised(部分点是有标注的)
Introduction
图神经网络GNN可以可以直接在不同节点之间建立长距离关系(边),聚合多个连接节点的信息,从而抑制标签噪声的负面影响,在标签有限的半监督任务中GNN也表现良好。
GraphNet的缺点:
- GraphNet通过阈值构建了一个未加权的邻接图(邻接矩阵A)作为输入,会丢失一些信息,这样的图不能准确地提供足够的信息,因为它平等地对待所有边,边权重为 0 或 1,尽管实际上并非所有连接的节点都期望相同的亲和力。(邻接图中所有的边都是0或1,并不能很好的体现亲和力)
- GraphNet仅使用初始的标签节点进行训练,这使得当输入的初始节点特征不准确时,会导致不正确的特征聚合,只使用交叉熵损失,不能减轻不正确的节点、边和标签的影响。
作者设计了一个 Affinity Attention Graph Neural Network (A2GNN) 来解决上述问题。具体来说,作者提出了一种新的亲和力CNN来将图像转换为加权图,而不是使用传统方法来构建未加权图。加权图比未加权图更合适,因为它可以为不同的节点对提供不同的亲和力。之前的方法如GraphNet只考虑局部连接的节点,构建了一个基于超像素的未加权图,而本文同时考虑了局部和长距离边,构建的加权图将一个像素视为一个节点。
特点:
- soft edge
- pixel as node
- local and long distance
为了产生准确的伪标签,作者设计了一个新的 GNN 层,其中应用了注意力机制和边缘权重,以确保准确的传播。因此,具有弱/无边缘连接或低注意力的成对节点之间的特征聚合可以显着下降,从而相应地消除不正确的传播。随着训练的进行,节点注意力会动态变化。
Related Work
- WSSS
- 用超像素扩展线标
- 正则化损失
- AffinityNet
- 区域生长
- 框监督
- GNN
- 半监督场景
Methodology
生成像素级的种子标签
给定带有标签的图像,我们首先使用分类 CNN 和 SEAM方法从图像级标签生成$M_I$。同时,使用 Grab-cut 将边界框标签转换为像素级标签 MB。最后,将$ M_I$和 $ M_B$整合在一起得到像素级种子标签 $ M_F$。每种颜色代表一个类别,“白色”表示像素标签未知。
使用grab-cut时,框内属于背景类$c_0$的部分标记为255,框外部分标记为255,255表示未知,也就是没有给出背景的标签。
$A^2GNN$
使用GNN生成准确的像素级伪标签,主要存在3个问题:
- 如何提供有用的监督信息并尽可能降低标签噪声
- 如何将图像数据image data转换为精确的图数据graph data
- 如何根据构建图和监督生成准确的伪标签
使用亲和力CNN将image转换为graph,使用高置信度的像素级种子标签作为节点标签,像素级种子标签通过一致性检查进一步细化。以往的GCN或AGNN时基于标签无噪声,100%准确的假设设计的,与弱监督场景的种子标签不同。本文设计了一个新的GNN层来解决这个问题。
本方法主要的三个步骤:
生成高置信度的种子标签
从$M_F$也就是图中的Pixel-level seed label选取前40%的高置信度区域得到 $ M_g$ Confident seed label
需要注意的是,经过选取后,Confident seed label依然存在一些缺陷,1.删除了一些正确的标签,剩余的标签稀缺而且主要集中在discriminative的对象部分,而不是均匀分布在对象上 2.仍然存在不准确的标签
使用affinity CNN把image转换为graph,将种子标签转换为节点标签
- 首先从$ M_g$中生成与类别无关的亲和力标签,此处使用的$ M_g^{‘}$代表是下采样到feature map尺寸的$ M_g$,也就是同一类别edge标记为1,不同为0
其中亲和力标签对是从有标记的区域取得的,且这两个像素的距离小于r
Ac loss
类似于AffinityNet,将网络预测的特征F计算距离得到D,也就是预测的两点间的edge,然后与标签做CE loss,Ac loss本质上是CE loss
Ar loss
对于任意两个距离小于r的像素对
使用一个CRF形式的loss进行约束
低级特征越相似,高斯核值越大,也就是要求后面的预测特征要更接近
- 使用graph作为输入进行训练,对graph中的所有节点进行预测,生成最终的像素级伪标签
最后使用伪标签训练一个FCN模型
Image level监督下的结果