0%

CVPR2022 CCAM

CVPR2022 CCAM

C^2^AM: Contrastive learning of Class-agnostic Activation Map for Weakly Supervised Object Localization and Semantic Segmentation

Github

Motivation

observation

  • 前景对象的语义信息通常与背景不同
  • 具有相似外观的前景对象或具有相似颜色/纹理的背景在特征空间中具有相似的表示

Methodology

image-20221029114900284

Architecture

利用moco或detco在ImageNet-1k上对编码器(如ResNet或VGG)进行预训练,作为编码器的初始化。首先通过编码器获取图像高级特征图$Z_i$,作为解纠缠器(distentangler)的输入,然后使用一个$3\times3$ conv + batch normalization组成的激活头$\varphi(\cdot)$来获得类别无关的激活图$P_i$, $ P_i$被指定为前景,背景激活图可以表示为$(1-P_i)$。然后利用前景激活图和背景激活图将特征图 $ Z_i$分离为前景和背景的特征表示:

$\mathbf{v}_{i}^{f}=\mathbf{P}_{i} \otimes \mathbf{Z}_{i}^{\top}, \quad \mathbf{v}_{i}^{b}=\left(1-\mathbf{P}_{i}\right) \otimes \mathbf{Z}_{i}^{\top}$

$\mathbf{P}_{i}$ and $\mathbf{Z}_{i}$ are flattened, i.e., $\mathbf{P}_{i} \in \mathbb{R}^{1 \times H W}$ and $\mathbf{Z}_{i} \in \mathbb{R}^{C \times H W}$,

$\mathbf{v}_{i}^{f} \in \mathbb{R}^{1 \times C}$ and $\mathbf{v}_{i}^{b} \in \mathbb{R}^{1 \times C}$ . $\otimes$ and $\top$ indicate the matrix multiplication and transpose, respectively.

Foreground-background Contrast

使用对比学习来推开前景背景的特征表示,通过解纠缠器的解耦,对于n张输入图像,我们可以得到n个前景特征表示$\mathbf{v}_{1: n}^{f}$和n个背景特征表示$\mathbf{v}_{1: n}^{b}$

forground-background表示对被视作negative pair。负对比损失设计为:

$\mathcal{L}_{N E G}=-\frac{1}{n^{2}} \sum_{i=1}^{n} \sum_{j=1}^{n} \log \left(1-s_{i, j}^{n e g}\right)$

其中$s_{i, j}^{n e g}=\operatorname{sim}\left(\mathbf{v}_{i}^{f}, \mathbf{v}_{j}^{b}\right)$代表了两个特征表示之间的余弦距离,当$i=j$时计算了within image,$i \neq j$时计算了cross-image的负对比损失

Foreground-foreground and Background-background Contrast with Rank Weighting

positive pair在计算时,只有具有相似外观和具有相似颜色/纹理的背景的表示在特征空间中具有较小的距离,并且应被拉在一起。距离大的正对会影响学习过程,因为在这两个前景对象或背景中类似的语义较少。

为了解决这个问题,作者设计了一种基于特征相似性的等级加权方法,以自动减少那些不同的正对的影响。具体来说,首先计算每个候选positive pair之间的余弦相似性:

$s_{i, j}^{f}=\operatorname{sim}\left(\mathbf{v}_{i}^{f}, \mathbf{v}_{j}^{f}\right), s_{i, j}^{b}=\operatorname{sim}\left(\mathbf{v}_{i}^{b}, \mathbf{v}_{j}^{b}\right)$

然后根据rank来得到正样本对的权重,也就是相似性更高的正样本获得更高的权重,相似性较低的正对分配较小权重,可以一定程度上减少不同对的影响:

$w_{i, j}^{f}=\exp \left(-\alpha \cdot \operatorname{rank}\left(s_{i, j}^{f}\right)\right), w_{i, j}^{b}=\exp \left(-\alpha \cdot \operatorname{rank}\left(s_{i, j}^{b}\right)\right)$

$\alpha$是平滑超参数,最终的正对比损失为:

$\mathcal{L}_{P O S}=\mathcal{L}_{P O S}^{f}+\mathcal{L}_{P O S}^{b}$

$\mathcal{L}_{P O S}^{f}=-\frac{1}{n(n-1)} \sum_{i=1}^{n} \sum_{j=1}^{n} \mathbb{1}_{[i \neq j]}\left(w_{i, j}^{f} \cdot \log \left(s_{i, j}^{f}\right)\right)$

$\mathcal{L}_{P O S}^{b}=-\frac{1}{n(n-1)} \sum_{i=1}^{n} \sum_{j=1}^{n} \mathbb{1}_{[i \neq j]}\left(w_{i, j}^{b} \cdot \log \left(s_{i, j}^{b}\right)\right)$

注意正对比损失仅针对$i \neq j$的情况,总的对比损失为正负对比损失之和:

$\mathcal{L}=\mathcal{L}_{P O S}+\mathcal{L}_{N E G}$

前景背景区域的确定:通过设置阈值对类不可知的激活图进行二值化,并检测最大轮廓来确定前景对象区域

WSOL

在PSOL基础上,使用CCAM替换DDT

WSSS

在CAM基础上,使用CCAM检测背景,用于减少背景的错误激活

Contribution

  • 无监督
  • 跨图像前景背景对比学习
  • 可以应用于提升WSOL和WSSS所用的伪标签