CVPR 2022:Generalized Few-shot Semantic Segmentation 解读
文章目录
- 1 引言部分
- 2 概述部分
- 3 GFS-Seg 和 FS-Seg 的处理流程对比分析
- 4 以GFS-Seg为目标的研究进展
- 5 基于上下文感知的原型学习机制(CAPL)
- 6 实验部分
- 7 总结部分
- 8 参考文献
1 前言
此前,关于小样本语义分割领域的相关研究已有所述。该研究探讨了基于 Transformer 理念的分类器在小样本分割任务中的应用。具体可参考链接:https://mp.weixin.qq.com/s/YVg8aupmAxiu5lGTYrhpCg。本研究发表于 CVPR 2022 年的 Generalized Few-shot Semantic Segmentation(简称 GFS-Seg)一文中,该模型旨在实现小样本语义分割任务的泛化。在深入论文细节之前,我们先对相关背景知识进行简要回顾。
深度学习是一种对数据极度渴求的方法,需要大量标注或非标注数据。少样本学习研究的核心目标是从有限的样本中有效学习。在分类任务中,每个类别通常仅包含一张或几张样本。少样本学习可以分为Zero-shot Learning和One-Shot Learning/Few shot Learning。Zero-shot Learning,例如,当你面对一个你从未见过的中文词汇"放弃",需要从I, your、she、them和abnegation五个单词中选择对应的英文单词。尽管你不知道"放弃"的英文是什么,但是你会将"放弃"跟每个单词对比,而且在你之前的学习中,你已经知道了I、your、she和them的中文意思,都不是"放弃",所以你会选择abnegation。需要明确以下几个关键概念:
Support set:支撑集,每次训练的样本集合。
Query set:查询集合,用于与训练样本进行对应或匹配的样本,通常情况下,Query set 就是一个样本。
在支持集中,当有n个不同的类别,每个类别包含k个训练样本时,这个学习过程被称为n-way k-shot学习。例如,每个类别中包含5个可供训练的样本。在训练过程中,需要将数据集划分为支持集和查询集。因此,5-shot场景至少需要5+1个样本,其中1个用于查询集,其余5个用于支持集,以便通过计算支持集样本与查询集样本之间的距离来进行分类判断。
2 概述
生成高质量语义分割数据集需要进行精细的标注工作,这使得现有方法在快速适应不满足现有标注标准的新类别方面存在诸多限制。为此,本文提出了一种基于上下文感知的原型学习架构(CAPL),通过动态整合每个Query Set图像的特征信息,显著提升了分类器的上下文表示能力。在不修改原模型结构的前提下,该方法构建了一个基准模型,表现良好。此外,该方法能够同时实现对具有极少样本的新类别以及具有充足样本的传统类别的分割任务。
3 GFS-Seg 和 FS-Seg 的 Pipeline 区别
如图所示,GFS-Seg划分为三个阶段:基类的学习阶段;新类的注册阶段,其中包含新类的少数Support set样本;对基类和新类的评估阶段。具体而言,GFS-Seg与FS-Seg的主要区别在于评估阶段的处理方式。在评估阶段,GFS-Seg无需转发测试(Query set)样本中包含相同目标类的Support set样本进行预测,这一特点源于GFS-Seg在基类学习阶段和新类注册阶段已分别获取了基类和新类的信息。即使在查询图像中预未知包含哪些类别的情况下,GFS-Seg仍能同时对新类进行预测,且在不降低基类预测准确性的前提下,仍能保持良好的预测性能。

4 Towards GFS-Seg
在经典的 Few-Shot Segmentation 任务中,有两个关键标准:(1) 模型在训练过程中未接触过测试类样本。(2) 模型要求其 Support set 中的样本涵盖 Query set 中的目标类别,从而进行相应的预测。
通过下图所示,我们来探讨GFS-Seg与经典人物之间的差异。下图中使用相同的Query图像来说明FS-Seg和GFS-Seg在2-way K-shot任务中的区别,其中牛和摩托车是新类,人和车是基类。首先,我们来看(a)部分,Prototypical Network通过Embedding Generation函数将牛和摩托车的少量训练样本映射至2个向量,在检测分类时,将待分割图像的特征通过Embedding Generation映射至向量,最后计算待检测向量与这2个向量的特征差异(假设是距离),并将距离最小的类作为预测类别。(a)部分仅限于预测Support set中包含的类的二进制分割掩码。右边的人和上面的车在预测中未被包含,这是因为Support set没有提供这些类别的信息,即使模型已经在基类上进行了足够的训练。此外,如果(a)部分的Support set提供了Query图像中未包含的多余新类(例如飞机),这些类别可能对模型性能产生影响,因为FS-Seg假设Query图像必须是Support set样本提供的类别。
FS-Seg模型仅学习并预测给定新类的前景掩码,在我们提出的GFS-Seg的通用化设置中,性能会显著下降,因为所有可能的基类和新类都需要参与预测。值得注意的是,(b)这一配置,即GFS-Seg,在未包含在Query图像中的类的先验知识的情况下,能够同时识别基类和新类。额外的Support set(如(b)左上角的飞机)对模型的影响不大。在评估过程中,GFS-Seg无需事前了解Query图像中的目标类别,而是通过动态注册新类别,一次性构建新的分类器(如(b)中的蓝色区域所示,表示新类别注册阶段)。

除此之外,关于 GFS-Seg 的细节部分,这里就不进行详细介绍。建议读者在阅读代码的同时,参考论文中的相关内容进行深入理解,这样会更容易掌握该方法。
5 上下文感知原型学习(CAPL)
基于原型学习(PL)的方法主要应用于小样本分类任务和FS-Seg场景,但在GFS-Seg场景中其表现相对较弱。在FS-Seg的设置中,查询样本的标签仅来源于新类。因此,新类与基类之间没有必然的联系,可以利用这一特点进一步改进。然而,在GFS-Seg中,对每个测试图像中包含的类别没有这样的限制,需要对所有可能的基类和新类进行预测。

如上图所示,我们不涉及SCE和DQCE的计算细节。SCE主要在新类别的注册阶段产生,它通过支持集(Support set)提供的先验信息来辅助分类。然而,在评估阶段,所有查询分类器共享相同的Query图像特征,这可能导致先验知识过于依赖有限的支持样本,从而影响对不同Query图像的泛化能力。为此,我们提出了一种动态查询上下文丰富计算(DQCE)的方法,通过动态整合单个查询样本中的基本语义特征,使分类器能够更好地适应不同的上下文环境。继续观察上图,N‘n个新类别的权重分配直接基于特征的平均计算得出。此外,支持集中的N’b个基类(如人、汽车、羊等)的权重分配,是由SCE采用原始权重计算得到的。同时,DQCE还通过提取Query集样本中的动态上下文特征,进一步丰富了分类器中N’b个基类的权重分配。综上所述,该分类器成功结合了SCE和DQCE的优势,实现了更好的分类性能。
GFS-Seg 使用 CAPL 的方式完成训练,具体性能表现在下面的实验部分列出。
6 实验
如下表所示,CANet、SCL、PFENet 和 PANet 与基于 CAPL 实现的模型相比,在表现上存在明显不足。值得注意的是,在表中列出的 mIoU 指标是在 GFS-Seg 配置条件下获得的,因此这些结果低于 FS-Seg 模型在论文中报道的数值。这种差异主要源于不同全局设置的影响。在 GFS-Seg 模型中,测试图像需要识别所有类别,包括基础类和新类,而 FS-Seg 模型则只需定位特定新类的像素,无需分割基础类。支持集样本为模型提供了目标类的先验知识。因此,在 GFS-Seg 模型中,当存在基础类干扰时,识别新类的难度显著增加,导致实验结果数值较低。

FS-Seg 是 GFS-Seg 的一个极端特例。因此,为了验证提出的CAPL在FS-Seg中的性能,在下表中,我们将CAPL整合到PANet和PFENet中。通过实验结果可以看出,CAPL在baseline上实现了显著的改进。数据集包括 Pascal-5i 和 COCO-20i,仅需识别新增类别。

下图展示了分割结果的可视化效果,其中,SCE 与 DQCE 的组合进一步完善了 baseline 的预测能力。此外,关于消融实验的效果,这里不做详细讨论。

7 结论
这篇阅读笔记主要基于个人理解,文章提出了一种具有泛化性的GFS-Seg方法,并提出了一种新的解决方案:上下文感知原型学习(CAPL)。与经典的FS-Seg方法不同,GFS-Seg旨在识别FS-Seg模型无法识别的基础类和新类。提出的CAPL通过动态地丰富上下文信息的适应性特征,显著提升了性能。CAPL对基础模型的结构没有限制,因此它能够方便地应用于常规的语义分割框架,并且能够很好地推广到FS-Seg方法。
