Few-Shot Semantic Segmentation with Democratic Attention Networks阅读笔记
摘要
DAN机制可以激活更多的目标像素点,在support和query图像间构建一个稳固的关系。
介绍
目前大部分的小样本分割方法都是基于prototype来进行。这类方法用了一个两分支的编解码结构,这两个分支为support分支和query分支,support分支主要为了从support图像中提取到一个prototype类,query分支用这个得到的prototype来分割query图像。为了实现这个目的,使用全局平均池化 来将support图像上的特征映射到一个向量上,让分割基于一个新的特殊矩阵,比如在全局向量与query图像的特征图的cos相似度 。但是掩膜平均池化的操作不可避免地会导致丢失support图像上的空间信息 ,得到一个含噪声的输出。
考虑到这个问题,利用图注意力机制 构建了在support和query图像的像素点到像素点的连接。然而,由于在像素间的偏好竞争,在support图像中只有前景目标的一小部分会被激活,这就会导致support和query图像的像素点之间的连接只有一小部分比较明显,很大程度地限制传递信息。
而本文的主要思想就是在训练时增大权重小的,抑制权重大的连接。 这样就可以通过处理更大的区域,而不是较小的特定区域,使得网络能够建立更加稳固的连接。 通过这种方法前景的所有像素点都能够参与到连接当中。同时,构建了一个多层图注意力 来获得多层的语义信息,其中多层图进行编码,在解码部分使用提取融合单元 (refinement fusion unit)进行融合多层注意力信息。
DAN ( Democratic Attention Network)
在小样本分割当中,训练集Dtrain与测试集Dtest中的类别是不重叠的,在实验过程中这些数据集会划分成多个子集,每个子集里面包含一个S={xsi,msi}si=1其中包含某个c类的k张xs图像,对应的二值掩膜ms,而\vartheta={xq,mq}包含query图像xq和相关的真实掩膜mq。
训练过程是将在Dtrain里随意采样的support和query对进行训练,然后得到从{S,xq}到目标掩膜mq的映射。

可以从图中了解到DAN的作用就是构建support图像与query图像间的联系,然后将不同的语义层获取到的特征图{f^a_l}Ll=1输入到设计好的提取融合单元(refinement fusion unit RFU)来得到用于query图像实现多尺度的效果。将x^q ,(x^s,m^s)作为输入,然后输出query图像的分割图\hat{m}。
结构总览
首先对support图像与query图像都进行特征提取,使用的是一个共享权重参数网络,最后得到一些深度特征图

然后将得到的每个深度特征对输入到DGA(democratized graph attention)块中,得到在每一个独立语义层support与query之间的联系。这样就能够得到在多个语义层上的分层注意图{f^a_l}Ll=1。
DGA(democratized graph attention)
小样本分割的一个关键就是提取support图像信息,并且将其传递到query图像上。相比于prototype向量会丢失结构信息 ,本文基于图注意力机制,在support图像与query图像上建立了一种像素与像素的连接方式。但是在传统的图注意机制上倾向于表现一些最明显的区域,这个区域对于新的目标类鲁棒性差,泛化能力差,而本文所提出的DGA能够增强连接的鲁棒性。本文基于多层的语义特征构建了一个分层图,这个图能够得到更加准确的分割效果,将更加有关的信息从support图像传递到query图像上。
在每一个中间层,support图的特征和query图的特征作为DGA的输入。其中图3的卷积层就是将特征图f分别嵌入到键值映射(key map)k和值映射v当中,其中k常用于衡量query和support图像间的相关性,v存储特征图提取出来的细节信息。只要获取到了k^s,k^p,v^s,v^p,就通过k^s,k^p两者的图关系来构建像素关联。
图关系矩阵A使用pairwise函数g(\cdot)来计算所有query key map k^q与support key mapk^s的像素间的相似性。在query图像上的像素点i与support图像上的像素点j上的连接权重可以表示为:

在query以及support图像的像素点上使用g(\cdot)函数,可以得到连接图A\in R^{HW\times HW}.对图关系矩阵A在第一个维度下求平均值,然后产生在support图像A^s =\sum^{HW}_iA_i\in R^{H\times M}上的注意力图。其中得到的值表示了在support图像上的像素点与query图像上的所有像素点间的平均连接权重。
注意力图A^s通常反映了在support图像上的像素点的重要性,以及在指导query图像目标分割方面的重要性

然而,在一般的图注意力中,激活的像素倾向于落在一个小的具有判别性的区域,这个区域构成了连接。从图3中可以看出来,大部分的权重连接都在鸟的头上,这个主要是由于support像素中的偏好竞争导致,限制了从support图像传播信息到query图像上。
为了保证对新目标变体的泛化性,将会尽可能多的用上support图像标注目标的像素。为了实现这个目标,本文设计了一个新的DGA机制来构建更好的注意力u。确切来说,本文提出了在训练过程中进行排序以及重新分配在A^s上的每个像素关系。对A^s的像素进行降序排序,并且获取到像素点j的排序索引e_j,然后根据对应的索引再重新分配像素点j上的权重连接,具体由函数\phi(A^s_j,e)计算得到.

其中H,W表示A^s的高和宽。之后,具有高连接权重的像素被抑制,因此像素的其他部分能够得到增强,具体看上图3。其中鸟的身体上的像素被激活了。重新构造的注意力图\hat A^s用于计算权重关系图

激活的像素点将会扩展到前景目标中的一些没有判别性的区域,并且这样就会有更多的像素会用在信息传播上,这样就能够得到更强的鲁棒性以及泛化能力。与dropout相似,DGA在训练过程中,只用在样本的一小部分。最后,模型在新目标的分割过程中学习获取到使用support图像上的更多前景目标的像素点的能力。
除此之外,为了在不同像素上的连接权重具有可比较性,对这些像素使用softmax函数 进行了归一化,并且产生了归一化的图关系矩阵\hat A'。然后support值映射v^s与A'的乘积进行了加权和,然后与query值映射v^q进行串接,得到注意力特征图f^a

在这里是获取到了位置i上的输出注意力特征图,其他位置上的特征也是这样得到。
Multi-Scale Guidance
另一个关键就是充分使用从support图像上提取到的信息,然后指导query图像的分割。将DGA模块用在不同的语义层上,产生多个注意特征图\lbrace f^a_l\rbrace^L_{l=1},这里面包含了前景目标的不同层语义信息。为了充分利用到这个注意力特征图,设计了一个以序列的方式提纯融合单元使用对应的解码层来融合\lbrace f^a_l\rbrace^L_{l=1}中的多层信息。
如图2.提纯融合单元在解码网络中对输入使用二值上采样法进行上采样,并且使用一个残差网络将对应处理过后的注意力特征图进行串接。串接后的特征图使用一个卷积模块进行处理,产生一个密度表示图(dense representation map)。最后层的提纯融合单元的输出输入到一个卷积层,同时一个softmax操作用于区分每个像素。softmax的输出层有两个概率的通道图,分别表示前景和背景。获取到query图形的预测分割图是把选取每个像素的最大概率的对应类的标签。
