摘要(Abstract): 在弱监督语义分割(WSSS)中,传统方法通常使用类激活映射(CAM)生成伪标签,但受限于卷积神经网络(CNN)的局部结构感知能力,往往难以识别完整的对象区域。尽管最近的研究表明,视觉Transformer(ViT)可以弥补这一缺陷,但作者观察到ViT也带来了过度平滑问题,即最终的patch tokens趋于一致。为了解决这个问题,本文提出了Token Contrast(ToCo)方法,通过探索ViT在WSSS中的优势。首先,作者设计了一个Patch Token Contrast(PTC)模块,通过使用来自中间层的伪token关系来监督最终的patch tokens,使它们能够对齐语义区域,从而生成更准确的CAM。其次,为了进一步区分CAM中的低置信度区域,作者提出了一个Class Token Contrast(CTC)模块,该模块受到ViT中类token能够捕获高级语义的启发,通过对比它们的类token来促进不确定局部区域与全局对象之间的表示一致性。在PASCAL VOC和MS COCO数据集上的实验表明,所提出的ToCo方法可以显著超越其他单阶段竞争对手,并与最先进的多阶段方法相媲美。
拟解决的问题
- WSSS中使用图像级标签时,CAM通常只能识别最具区分性的语义区域,导致最终的语义分割性能严重下降。
- CNN的局部特征感知限制了CAM的完整性。
- ViT虽然能够建模全局特征交互,但存在过度平滑问题,导致不同patch tokens的表示趋于一致。
创新之处
- 提出了Patch Token Contrast(PTC)模块,利用中间层的知识来监督最终的patch tokens,解决过度平滑问题。
- 设计了Class Token Contrast(CTC)模块,通过对比局部和全局图像的类token,促进局部与全局对象的表示一致性。
- 将ToCo方法集成到单阶段WSSS框架中,无需对ViT架构进行修改,即可解决过度平滑问题。
效果对比:
方法论
前置知识
类激活映射(CAM)
CAM被提议在分类网络预测图像时识别激活区域。由于其功效和简单性,CAM 已被广泛用于为 WSSS 生成初始伪标签。具体来说,给定图像,其特征图 F 使用分类网络 (CNN 或 ViT) 提取,CAM 是通过在分类层中使用权重 W 对特征图进行加权和求和来计算的,其中 c 是语义类的数量。然后将relu函数和最大归一化应用于消除负激活,并将CAM缩放到[0,1]。因此,类 c 的 CAM 计算如下:
符号定义:
公式的工作流程:
- 逐通道加权:对于特征图 𝐹F 的每个通道,将其像素值 𝐹:,𝑖 与对应的权重 𝑊𝑐,𝑖 相乘。这是逐元素的乘法操作。
- 求和:将加权后的所有通道的像素值求和,得到一个二维的激活图,其尺寸与 𝐹F 的空间维度相同,即 ℎ×𝑤。
- 应用ReLU激活函数:通过ReLU函数处理求和后的结果,将所有负值置为0,这有助于突出显示正的激活区域。
通常,会设置一个背景阈值来区分前景和背景区域,从而得到最终的分割结果。
过渡平滑
在 Vision Transformer 中,over-smoothing 是一个挑战,指的是在多个 Transformer encoder 层之后,不同 tokens 的特征表示趋于一致,导致它们之间的差异性减少。这种现象的原因可能包括:
- 自注意力机制: MHSA 作为一种低通滤波器,倾向于平滑输入特征,减少高频(细节)信息。
- 多头注意力的堆叠: 连续的 MHSA 层相当于多次执行空间平滑操作,进一步加剧了特征的同质化。
- Patch Size: 使用较大的 patch size 可以减少 over-smoothing,但这会降低模型对局部细节的敏感性。
- 模型深度: 较深的 Transformer 模型可能会更加显著地表现出 over-smoothing 现象。
为了解决 over-smoothing 问题,研究人员提出了多种方法,例如:
- 调整 Transformer 架构: 例如,通过引入新的注意力模式或修改 MHSA 来减少平滑效果。
- 使用残差连接: 在 Transformer 层中添加残差连接可以帮助保留更多的局部特征。
- 深度监督: 在多个阶段对模型的中间表示进行监督,以鼓励学习更多样化的特征。
- Patch Diversity: 通过增加 patch 之间的多样性来减少特征的同质化。
论文方法
ToCo方法利用Vision Transformer(ViT)作为主干网络,并在其中集成了两个关键模块:Patch Token Contrast(PTC)和Class Token Contrast(CTC)。整体框架的目标是生成高质量的伪标签,以用于训练语义分割模型。
Patch Token Contrast(PTC)模块
PTC模块的目的是解决ViT中的过度平滑问题。它通过以下步骤实现:
-
中间层特征利用:选择ViT中间层的输出作为辅助特征,记为,其中 𝑛 是token数量,𝑑 是特征维度。
-
辅助CAM生成:在辅助特征上添加辅助分类头,通过全局最大池化(GMP)和全连接层 计算辅助分类损失 ,并生成辅助:
-
伪token标签生成:使用两个背景阈值 和 将 分割为伪token标签 。
-
Patch Token Contrast Loss(Lptc):
其中,CosSim(⋅,⋅)计算两个向量的余弦相似度, 和 分别是正样本对和负样本对的数量。
Class Token Contrast(CTC)模块
CTC模块旨在区分CAM中的不确定区域,通过以下步骤实现:
-
局部图像裁剪:从不确定区域随机裁剪局部图像。
-
类token表示对比:将全局类token和局部图像的类token通过投影头 和 投影,然后使用InfoNCE损失来最小化(最大化)它们之间的表示差异。
-
Class Token Contrast Loss(Lctc):
其中,𝑝 是投影后的全局类token, 和 分别是从不确定区域和背景区域裁剪的局部图像的投影类token集合,𝜏 是温度参数,𝜖 是稳定项。
ToCo的训练目标(Training Objective)
最小化损失函数:
其中 是最终分类层的损失, 是辅助分类层的损失。
结论
ToCo方法通过解决ViT的过度平滑问题,并进一步利用ViT的优势,显著提高了WSSS的性能。在PASCAL VOC和MS COCO数据集上的实验结果表明,ToCo能够生成更准确、更完整的CAM,并且与最先进的多阶段方法相比具有可比的性能。