TagCLIP: A Local-to-Global Framework to Enhance Open-Vocabulary Multi-Label Classification of CLIP


From: AAAI 2024
Paper: https://arxiv.org/abs/2312.12828
Code: https://github.com/linyq2117/TagCLIP
文章目录
-
问题
-
方法
-
- Coarse Classes
- DMAR
-
实验
-
- ViT最后一层的分析
- 消融实验
- 多分类任务
- 为分割任务提供伪标签
问题
-
CLIP被训练用对比损失对齐图像-文本对,目的是将图像与相应的文本描述相匹配,并与其他图像区分开来。由于这种损失而导致的softmax操作造成了不同类别之间的竞争,这不利于多标签设置 。
-
CLIP被训练为通过使用类标记的唯一全局嵌入来表示整个图像,而不显式地捕获特定区域的局部特征。

-
多标签分类的结果严重依赖于有区别的局部特征,但CLIP主要关注全局。
-
分析了CLIP中补丁式空间信息的保存,并提出了一个局部-全局框架来获取图像标签。它包括三个步骤:
- 通过Patch级分类以获得粗分数;
- 双掩蔽注意力细化(DMAR)模块来细化粗分数;
- 类级再识别(CWR)模块,从全局角度修正预测。
方法

Coarse Classes
s_i = \text{Linear}(x_{\text{dense},i}) * T P_{\text{coarse}}(i, c) = \frac{\exp(s_i^c)}{\sum_{k = 1}^{C} \exp(s_i^k)}
DMAR
获得的初始patch级分类分数经常存在噪声,阻碍了它们作为类别识别的可靠标准,通过DMAR解决。
通过利用所有L注意层的投票风格方法来选择置信的元素。每个置信位置在至少K层中应有显著的注意值(超过层平均值)
M_{\text{attn}}(i, j) = 1, \text{ if } \sum_{l = 1}^{L} \prod_{l' = 1}^{l} (A(i, j, l') > \bar{A})(A > K) 计算每个类的平均分,从而得到Mcls(去掉低于平均分的)
\hat{P}_{\text{refined}} = \frac{1}{|\mathcal{V}|} \sum_{\mathcal{V}} M_{\text{attn}} \odot A_l \ast P_{\text{coarse}} P_{\text{refined}}(c) = \frac{1}{|\mathcal{V}|} \sum_{l \in \mathcal{V}} M_{\text{attn}} \odot A_l \odot M_{\text{cls}}(c) \ast P_{\text{coarse}}(c)
实验
ViT最后一层的分析
cls token在整个Vision transformer中起着相对较小的作用,直到最后一层才被用于全局化(Ghiasi et al. 2022)。因此,它几乎不影响前一层的局部特征

消融实验

多分类任务

为分割任务提供伪标签


