【论文阅读--WSSS】Multi-class Token Transformer for Weakly Supervised Semantic Segmentation

文章目录

  • 方法
  • 实验
  • Limitation

论文链接:https://arxiv.org/abs/2203.02891
代码链接:https://github.com/xulianuwa/mctformer

方法

【论文阅读--WSSS】Multi-class Token Transformer for Weakly Supervised Semantic Segmentation_第1张图片

  1. plain ViT 只有一个cls token, 对应得到的attn map 是 class-agnostic;为了使得attn map变得class-specific,采用num_classes 个 cls token

  2. 分别对cls token 和 patch token 计算 logits

    1. cls token(B, num_classes, C) 对通道维度求mean得到cls token logits(B, num_classes),计算多标签分类损失。这样来使得 一个cls token 与 一个类别 对应,从而每个cls token 对应的attn map 变得class-specific
    2. 将patch token 变回feature map的形式,经过一层3x3卷积,后接着avgpooling 得到 patch token logits
  3. patch affinity

    vision transformer无需像过去CNN的方法,用额外的网络取得到affinity,attn weights(B h N+num_classes, N+num_classes)中就自带了, 其中 patch affinity(B, h, N, N)

  4. 生成CAM
    将 attn map 与 patchcam 通过点乘耦合,然后将patch affinity通过矩阵乘法对耦合后的CAM进行refine

实验

消融验证本文方法对CAM的质量的提升

【论文阅读--WSSS】Multi-class Token Transformer for Weakly Supervised Semantic Segmentation_第2张图片

可视化看到 attn map有听过背景噪点,patchcam激活比较泛;

消融验证本文方法对最终分割的提升

【论文阅读--WSSS】Multi-class Token Transformer for Weakly Supervised Semantic Segmentation_第3张图片

cls token 得到logits的不同方式

【论文阅读--WSSS】Multi-class Token Transformer for Weakly Supervised Semantic Segmentation_第4张图片

其中 maxpooling 和 avgpooling都是针对通道维(B, num_classes, C)→ (B, num_classes)

全连接方式:对token 维求mean,然后经过FC将通道数映射为类别数量(B, num_classes, C)→ (B, C)→(B, num_classes)

CAM 质量评估

VOC 上最终分割评估

CoCo上最终分割评估

Limitation

个人看法:

attn map的噪声问题

patchcam的泛激活问题

refine后也会有泛激活

你可能感兴趣的:(弱监督语义分割,论文阅读,深度学习,弱监督语义分割)