这里所提出的方法名为Token Contrast(ToCo),该方法用于提高使用图像级标签的弱监督语义分割的性能。ToCo 解决了ViT的over-smoothing问题,并进一步探索了它在 WSSS 中的潜力。
打破CAM的局限性!ToCo:进一步激发 ViT 在弱监督语义分割的潜力
原文链接:https://arxiv.org/abs/2303.01267
代码链接:https://github.com/rulixiang/ToCo
弱监督语义分割是一种利用更简单易得的图像级标注,以训练分类模型的方式获取物体的种子分割区域并优化,从而实现图像的像素级、密集性预测。这种方法在训练时使用弱监督信息作为监督信息,训练得到的分割图作为测试阶段的监督信息(在测试阶段用全监督)。
- 弱监督语义分割和全监督语义分割的区别在于,弱监督语义分割使用的是更简单易得的图像级标注,以训练分类模型的方式获取物体的种子分割区域并优化,从而实现图像的像素级、密集性预测。而全监督语义分割则需要对每个像素进行标注,需要更多的人力和时间成本。
- 弱监督语义分割和半监督语义分割的区别在于,半监督语义分割是在训练时使用少量的像素级标注数据和大量的未标注数据,以提高模型的性能。
以前使用 CAM 为弱监督语义分割生成伪标签的方法存在缺陷,因为它们只能识别判别区域,从而导致性能不佳。最近的研究提议使用 Vision Transformer 架构对全局特征交互进行建模并生成更准确的伪标签。但是ViT的self-attention中的过度平滑(over-smoothing)问题会导致patch token都是1(这样就是均匀分布了),完成 WSSS的任务就能加困难了。这一问题在最近的工作中尚未被解决。
在本文中,所提出的方法名为Token Contrast(ToCo),该方法用于提高使用图像级标签的弱监督语义分割(WSSS)的性能。ToCo 解决了 Vision Transformer (ViT) 的over-smoothing问题,并进一步探索了它在 WSSS 中的潜力。引入了两个模块:Patch Token Contrast (PTC) 和Class Token Contras (CTC),以提高 CAM 的准确性。Patch Token Contrast (PTC) 模块使用来自中间层的伪代币关系来监督最终的补丁令牌,从而使它们能够对齐语义区域,从而产生更准确的 CAM。Class Token Contrast (CTC) 模块通过对比不确定的局部区域和全局对象的类标记来促进其表示一致性。CTC 利用 ViT 中类代币捕获的高级语义,帮助区分 CAM 中的低可信度区域。这些实验是在PASCAL VOC和MS COCO数据集上进行的,以证明所提出的方法的有效性。
方法
本文的方法如上图所示,下面来看主要的两个点:
Patch Token Contrast
Patch Token Contrast实际上就是通过CAM的机制来解决过度平滑的问题:
Patch Token Contrast (PTC) 是通过利用 Vision Transformer (ViT) 中间层的可靠的伪 token 关系来监督最终的 patch tokens,从而解决了最终 patch tokens 的过度平滑问题。PTC 模块可以保留 patch tokens 的语义多样性,通过中间层的伪 token 关系来监督最终的 patch tokens,使它们能够对齐语义区域,从而产生更准确的 Class Activation Map (CAM)。所以设计了如下的loss function:
设计Patch Token Contrast(PTC)模块的动机是解决弱监督语义分割(WSSS)的Vision Transformer(ViT)中最终token的over-smoothing的问题。PTC 模块使用来自中间层的伪标签关系来监督最终的token。这是因为中间层仍然可以保留token的语义多样性。通过利用来自中间层的知识,即可靠的配对代币关系,PTC 可以监督最终token以调整语义区域,从而生成更准确的CAM。
Class Token Contrast
Class Token Contrast (CTC) 模块是通过对比不确定的局部区域和全局对象的类别token来促进其表示一致性。CTC 模块的灵感来自于 ViT 中的token可以捕获高级语义这一事实。它利用 ViT 中token捕获的高级语义,有助于区分类激活映射 (CAM) 中的低可信度区域。采用以下的loss function进行优化:
给定图像,CTC 模块首先从其辅助 CAM 指定的不确定区域中随机裁剪局部图像。由于 ViT 中的token捕获了语义对象的信息,因此全局和局部图像的token分别聚合了全局和局部对象的信息。然后,CTC 模块通过对比其class token来促进局部非突出区域和全局对象之间的表示一致性。这有助于强制在 CAM 中激活更多物体区域,从而提高分割的准确性。
实验
本文的文献调查侧重于使用图像级标签的弱监督语义分割(WSSS)。作者讨论了类激活图(CAM)在识别完整物体区域方面的局限性,这是由于CNN的局部结构感知造成的。他们还提到了最近为解决这一限制而提出的各种训练方案,例如擦除、online attention积累和跨图像语义挖掘。作者提出了一种名为Token Contrast(ToCo)的新方法,该方法利用Vision Transformer(ViT)架构来解决CAM和CNN对WSS的局限性。他们引入了两个新模块,补丁代币对比(PTC)和类别代币对比(CTC),以提高分割的准确性。作者对 PASCAL VOC 和 MS COCO 数据集进行了实验,结果表明 ToCo 的表现优于其他相似情况的方法,并且使用最先进的多阶段方法实现了很优越的性能。
可以发现在语义分割上也有较好的性能。
可视化对比也可以发现本文提出的ToCo的CAM图更接近于理想中的attention状态。
讨论
本文的贡献是:
- 提出一种名为Token Compare(ToCo)的方法,以提高使用图像级标签的弱监督语义分割(WSSS)的性能。
- 解决ViT的过度平滑问题,进一步探索其在 WSSS 中的潜力。
- 引入两个模块:补丁代币对比 (PTC) 和类别代币对比 (CTC),以提高 CAM 的准确性。
- 对 PASCAL VOC 和 MS COCO 数据集进行实验,以证明所提方法的有效性。
- 提出未来的工作建议,以改进所提出的方法并将其适用性扩展到其他相关任务。
然而本文也有局限性:它只关注使用图像级标签的 WSSS,不考虑其他类型的薄弱监督,例如涂鸦注释或边框注释。此外,所提出的方法需要预先训练的 ViT 模型,而某些用户可能不容易使用该模型。最后,实验仅在两个数据集上进行,将所提出的方法推广到其他数据集还有待探索。
该论文提出了几项未来的工作来改进所提出的方法。这些包括:-
- 探索 ToCo 在其他计算机视觉任务中的潜力,例如物体检测和实例分割。
- 研究 ToCo 在其他基于Transformer的模型(例如 Swin Transformer 和 CAiT)上的有效性。
- 在 ToCo 框架中加入其他信息,例如物体大小和形状,以进一步提高 WSSS 的准确性。
- 探索使用 ToCo 执行半监督或全监督语义分割任务的可能性。未来的这些工作有可能提高提出方法的性能,并将其适用性扩展到其他相关任务。
结论
本文提出了一种名为令牌对比(ToCo)的新方法,用于使用图像级标签进行弱监督语义分割(WSSS)。ToCo 利用 Vision Transformer (ViT) 架构,引入了两个新模块,即Patch Token Contrast (PTC) 和Class Token Contrast (CTC),以解决CAM和 ViT 的局限性。对PASCAL VOC和MS COCO数据集的实验表明,ToCo的表现优于其他单级竞争对手,并且使用最先进的多阶段方法实现了可比的性能。与CNN方法和最近的单级WSSS方法,即AFA相比,所提出的方法可以显著产生更积分和更准确的CAM。与 ViT 基线相比,ToCo 还能很好地解决过度平滑的问题。