【论文阅读--WSOL】Spatial-Aware Token for Weakly Supervised Object Localization
文章目录
- 方法
- 实验
- Limitation
论文:https://arxiv.org/abs/2303.10438
代码:https://github.com/wpy1999/SAT/blob/main/Model/SAT.py
方法
这篇文章的方法应该属于FAM这一类。
-
额外添加的一个spatial token,从第10-12层开始,利用其得到的attn map (对hea求mean–B, 1, 1, N+2) 作为visual cue去指出oject region,作用方式为将attn map 点乘到 attn weights(B, h, N+2, N+2)
-
attn map得到的方式:不同与attn weights 是经过softmax,它这里是经过Sigmoid的。至于为什么,可能是Sigmoid后得到的map 激活更完整吧
-
最后的localization map是将前面L层的attn map求mean。虽然这种方法可以最大限度地捕获分类网络中的定位信息,但是从图像级标签获得的像素级监督是稀疏和不平衡的。为了补偿和加强这种监督,我们设计了批量区域损失和归一化损失。
-
Bach Area Loss
Lba=∣∑bB∑iH∑jW(λ−Mb(i,j)B×H×W)∣\\mathcal{L}_{b a}=\\left|\\sum_{b}^{B} \\sum_{i}^{H} \\sum_{j}^{W}\\left(\\lambda-\\frac{M_{b}(i, j)}{B \\times H \\times W}\\right)\\right| Lba=b∑Bi∑Hj∑W(λ−B×H×WMb(i,j))
让激活区域更紧致,这类Loss这WSOL和WSSS很常见。
where λ is a sparse area supervision with prior knowledge.The λ is set to 0.25 and 0.35 on CUB-200 and ImageNet.
-
Normalization Loss
Lnorm =1H×W∑iH∑iWM∗(i,j)(1−M∗(i,j))\\mathcal{L}_{\\text {norm }}=\\frac{1}{H \\times W} \\sum_{i}^{H} \\sum_{i}^{W} M^{*}(i, j)\\left(1-M^{*}(i, j)\\right) Lnorm =H×W1i∑Hi∑WM∗(i,j)(1−M∗(i,j))
增强前-背景的区分度。应该会使得前景的激活响应更强,背景的激活响应更弱。
在计算这个loss之前先用高斯滤波对loc map处理,增强局部一致性。(那为什么batch area loss之前 不先用高斯滤波处理??)
-
-
分类就跟之前transformer-based的方法一样,将patch token 变回feature map的形式,经过一层3x3 conv 后接avgpooling
注意:这篇文章的定位仅依赖于spatial token 带来的 attn map,不同与一些之前transformer-based的方法将attn map 与 semantic map 耦合。
实验
现有方法对比
在ImageNet上的消融,四幅图对应四种情况
area loss 和 normalization loss 效果我比较关注;
不同backone下验证
为什么要额外加一个spatial token 而不直接利用原有的cls token?
文章里从优化角度解释
Limitation
在ImageNet上应该会有更多困难的情况。