[CVPR2022] (SSPCAB)Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection
CVPR 2022
Link: [2111.09099] Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection (arxiv.org)
Code: ristea/sspcab (github.com)
1. Intro
提出了**self-supervised predictive convolutional attentive block (SSPCAB),**使用masked 卷积核和channel注意力机制,执行一个重构masked信息的自监督任务用于训练,原始特征经过该block达到增强特征的效果(让特征在正常和异常图上的差异变大,因为只在正常图像上训练)
SSPCAB可以整合到任何CNN架构的任何层中(⭐)
在当前video和image AD的SOTA模型中加入SSPCAB可以提高检测效果。
2. Method
SSPCAB = masked conv layer + Squeeze-and-Excitation (SE) module
Motivation:
现有的CNN框架能提取到一个层次化的特征,从low-level(边、角)到high-level(语义特征,如车轮、鸟头等),但是缺乏一种把这些局部特征整合起来的能力。因此提出SSPCAB进行一个reconstruction自监督学习任务来学习这些局部特征的global structure。使用了dilated masked convolution kernel 和 channel attention module
2.1 Masked convolution
一个kernel包含四个sub-kernel,只有这四个sub-kernel参与运算。
每个sub-kernel的大小为 k ’ k’ k’
dilation rate 为 d d d
感受野的中心为 M M M,大小为1
所以,整个kernel大小为 k = 2 k ’ + 2 d + 1 k=2k’+2d+1 k=2k’+2d+1
四个sub-kernal的输出做sum作为M位置(mask)的输出,输出是一个单值
(zero-padding =
k
’
+
d
k’+d
k’+d,stride =
1
1
1)
因为通道数为 c c c,所以需要 c c c 个大kernel
输入( X X X)和输出( Z Z Z)的维度不变。
2.2 Channel attention module
对于Masked convolution的输出,想要探究通道之间的关系,施加注意力在更重要的通道上,使用了 Hu e t a l et\ al et al提出的SE(Squeeze-and-Excitation)module,一种在channel维自适应重新校准的机制(channel attnetion)。
SE相关解读可以阅读:
解读Squeeze-and-Excitation Networks(SENet) - 知乎 (zhihu.com)
Attention module
先对feature map( z z z)先进行GAP(Globle Average Pooling): h ∗ w ∗ c → 1 ∗ 1 ∗ c h*w*c→1*1*c h∗w∗c→1∗1∗c
再经过两个FC,第一个加ReLU,第二个加sigmoid,先降维再升维度( c → c / r → c c→c/r→c c→c/r→c )得到一组channel attention权重。
再将该权重加载原始feature map的各个通道上输出(
s
s
s),保持输入输出维度不变。
2.3 Reconstruction loss
使用自监督学习方法重构masked区域来训练block
重构结果和目标计算MSE作为loss
总loss为模型原始loss L F L_F LF加 L S S P C A B L_{SSPCAB} LSSPCAB
3. Experiment
3.1 在Avenue数据集上调参
后续实验选择: k ’ = 1 k’=1 k’=1, d = 1 d=1 d=1, MSE Loss,Attention module中 r = 8 r=8 r=8,使用channel attention module
3.2 Image AD
dataset:MVTec-AD
在DRAEM和CutPaste上加入SSPCAB进行实验,结果有所提高。
但不是SOTA。
3.3 Video AD
dataset:Avenue & ShanghaiTech
SOTA
3.4 Inference Time
4 Ablation
4.1 将SSPCAB放在网络的不同置
结论:放在后面好一点
4.2 使用不同大小的mask M
结论:没啥区别
5 Limitation
将SSPCAB放在靠近输入的位置没啥效果