小样本语义分割(HDMNet网络)
- 摘要
- HDMNet 解决的问题
- 本文贡献
- HDMNet 模型
- 1. 特征提取
- 2. 解耦下采样和匹配模块(分层匹配结构)
- 2.1. 粗粒度到细粒度解码器
- 2.2 . 自注意力模块
- 2.3. 相关性模块
- 3. 损失函数
- 总结
摘要
小样本语义分割(FSS)的目的是形成类不可知的模型分割看不见的类,只有少数的注释。现有的基于语义特征和原型表示的分割方法存在分割粒度过粗和训练集过拟合的问题。
本文基于Transformer架构设计了分层解耦匹配网络(HDMNet)挖掘像素级支持度相关。自注意模块用于辅助建立层次密集特征,作为完成查询和支持特征之间的级联匹配的手段。此外,我们提出了一个匹配模块,以减少训练集过拟合和引入相关蒸馏利用语义对应从粗分辨率,以促进细粒度分割。
该方法在实验中取得了较好的效果。我们在COCO-20 i数据集上实现了50.0%的mIoU,在五次分割上分别实现了56.0%。
HDMNet 解决的问题
大多数现有的语义分割深度网络无法扩展到以前看不见的类,并且依赖于注释数据集来实现令人满意的性能。数据收集和注释花费大量时间和资源,特别是对于密集预测任务。
小样本语义分割(FSS)将输入分为查询和支持集。它根据来自元学习或特征匹配的支持注释的语义线索分割查询目标。以往的方法仍然存在粗分割粒度和训练集过拟合问题。
如下图所示,“people”是在训练过程中被充分证明的基类。但是该模型仍然倾向于对“人”产生高激活,而不是对与支持样本相关的新类产生高激活,从而产生较差的结果。
如下图所示。基于原型的方法和自适应分类器方法旨在区分具有全局类特征的不同类别 。在密集预测任务中,查询对象和支持对象之间的对应关系是一个具有挑战性的问题.相比之下,基于匹配的方法挖掘像素级相关性,但可能严重依赖于特定类别的特征,并导致过拟合和弱泛化。
不同的小样本分割框架的图示。(a)基于原型的方法 (b) 自适应分类器方法。© 与Transformer架构相匹配的特性。(d) 我们的分层解耦匹配网络(HDMNet)与相关图提取。
为了解决这些问题,我们提出了分层解耦匹配网络(HDMNet)与相关映射蒸馏更好地挖掘像素级支持对应。HDMNet扩展了Transformer架构以构建特征金字塔并执行密集匹配。
以前的基于transformer的方法采用自注意层来解析特征,然后将查询和支持特征馈送到交叉注意层进行模式匹配,如上图(c)所示。这个过程将自我和交叉注意层多次叠加,混合了分离的嵌入特征,并意外地导致不必要的信息干扰。
本文贡献
本文将特征分析和匹配过程进行了分层解耦,设计了一种基于相关和提取的匹配模块。 这种关联机制计算像素级对应关系,而不直接依赖于特定于语义的特征,从而缓解了训练集过拟合问题。此外,我们引入了相关图蒸馏,鼓励浅层近似更深层的语义相关性,使前者更了解高质量预测的上下文。
- 扩展了Transformer的层次分析和特征匹配的小样本语义分割,与一个新的匹配模块减少过拟合。
- 提出了多层次多尺度结构下利用软对应的关联图提取方法。
HDMNet 模型
模型被训练为利用支持集提供的语义线索来定位查询图像上的感兴趣区域。该方法和基于支持原型的方法不同,该方法通过适当地利用查询集和支持集之间的像素级特征匹配来产生对查询图像的预测。
1. 特征提取
通过预训练ResNet-50来提取查询图像、支持图像、支持图像掩码的特征。
2. 解耦下采样和匹配模块(分层匹配结构)
在先前的基于匹配的方法与Transformer架构中,自注意和交叉注意层被交织多次,分别用于特征解析和模式匹配,如下图所示。我们注意到,交叉注意层实现了查询和支持特征之间的相互消息交换。查询样本的背景中的对象也可以与支持样本中的目标相关。 因此,它们可以用支持信息来丰富。利用这一发现,可以经由多个堆叠的交叉注意和自注意层将必要的支持信息累积到干扰物,使得解码器更难在它们之间进行区分。
为了保证序列特征的纯度和模式匹配的一致性,提出了一种新的分层匹配结构,将下采样和匹配过程解耦,只采用独立的自注意力层来构建分层特征。
解耦下采样和匹配
首先,从主干提取的查询和支持特征被独立地发送到仅具有自关注层的顺序Transformer块,以充分利用支持和查询特征内的自相关性。
在块之间插入下采样层以建立可以帮助挖掘尺度间相关性的分层结构。然后,收集L个阶段的中间特征图,即
F
l
=
1
q
F^{q}_{l=1}
Fl=1q和
F
l
=
1
s
F^{s}_{l=1}
Fl=1s。假设
F
l
=
1
q
F^{q}_{l=1}
Fl=1q和
F
l
=
1
s
F^{s}_{l=1}
Fl=1s具有相同的空间大小。
l
l
l 是阶段索引,最后,
F
l
=
1
q
F^{q}_{l=1}
Fl=1q和
F
l
=
1
s
F^{s}_{l=1}
Fl=1s用于产生相关性
和丰富的查询特征
。
2.1. 粗粒度到细粒度解码器
HDMNet结合了一个简单的解码器,以粗到细的方式预测查询图像的最终掩模,该掩模具有分层丰富的特征
具体地,粗粒度特征
X
l
+
1
′
X^{′}_{l+1}
Xl+1′被放大以具有与细粒度特征
X
l
′
X^{′}_ l
Xl′相同的空间大小。然后采用MLP层将它们与剩余连接融合
其中,l表示分层阶段,并且
:
R
H
×
W
R^{H×W}
RH×W →
R
h
l
×
w
l
R^{h_l×w_l}
Rhl×wl表示将输入大小拟合到输出大小的双线性插值调整大小函数。最后,我们对
X
1
′
X^{′}_1
X1′应用一个具有1 × 1内核大小的卷积层,然后是一个双线性上采样层,以预测查询掩码
M
o
u
t
M^{out}
Mout ∈
R
H
×
W
R^{H×W}
RH×W。
2.2 . 自注意力模块
基于现有的匹配方法直接采用交叉注意作为匹配模块,分别从查询集和支持集生成查询和关键特征。然而,我们观察到它导致过度拟合和弱泛化。该问题可能归因于模型更可能依赖于类特定特征来优化训练目标的事实。
遵循一般形式,Transformer块的关键元素是点积注意力层,公式为
HDMNet包含多个自注意力块(Self-Attn Block),每个块都会对特征进行层次化处理。自注意力机制用于捕捉图像内不同位置的长距离依赖关系,从而生成丰富的特征表示。不同层的特征会有不同的分辨率和通道数,用来表示不同层次的语义信息(如粗略轮廓和细节信息)。
2.3. 相关性模块
相关性计算(Correlation):HDMNet在每一层次的特征之间计算支持图像和查询图像的相关性。相关性计算能够捕捉查询图像和支持图像在每一层特征上的匹配关系。
相关性蒸馏(Correlation Distillation):通过多层次的相关性计算,逐步将粗分辨率的特征匹配信息传递到细分辨率层次。这样可以通过粗略到精细的过程,更准确地定位目标对象。
细节
- Flatten和Masked Flatten:支持特征和查询特征分别经过Flatten操作,支持特征会应用掩码(Mask)以保证只保留目标区域的特征信息。
- Cosine Similarity(余弦相似度):用于计算支持和查询特征的相似度,生成一个相似度矩阵。
- Scale和Inverse SoftMax:对相似度矩阵进行缩放和反向SoftMax操作,以突出重要的相关区域。
- MatMul:矩阵乘法,结合了支持特征和查询特征的信息。
- Concat和Linear:对结果进行拼接并通过线性层,以生成最终的分割表示。
3. 损失函数
HDMNet采用了 KL 散度损失,KL散度损失(KL Divergence Loss from Distillation):用于衡量不同分辨率相关性信息之间的一致性,从而使模型能够在各个层次保持一致的分割结果。这有助于减少训练集过拟合,提高模型对未见类别的泛化能力。
总结
HDMNet通过层次化特征和解耦的相关性计算模块,实现了少样本条件下的高精度语义分割。该网络在各层次上计算支持和查询图像的相关性,利用相关性蒸馏和KL散度损失减少过拟合,从而提升少样本分割任务的性能。