基于异常合成的图像异常检测方法
基于异常合成思路实现图像异常检测的方法,它们的核心思路是:
试图通过合成异常样本穷尽所有可能出现的异常类型,从而将无监督的异常检测(one class classification)建模为一个全监督的二分类问题。这就要求合成的异常样本数量足够多、质量足够好(和真实缺陷分布相同)、种类足够全(涵盖各种已知的和未知的真实缺陷)。【SimpleNet和GLASS都是这个原理,CutPaste不一样,它只是利用合成异常建立适合异常检测的自监督表征学习任务,目的是学习到适合做异常检测的representations】
**根据异常合成的不同层次,可以分为图像级和特征级。**图像级指的是在图像水平伪造异常,如CutPaste、Perlin Noise+DTD;特征级指的是在特征水平伪造异常,如在正常特征图上添加高斯噪声来伪造异常。
CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
1.CutPaste数据增强
CutPaste是2021年CVPR的工作,属于图像级异常合成。主要提出了一种新的数据增强策略CutPaste,它的步骤包括:
- 从正常训练图像中裁出一小块可变大小和纵横比的矩形区域,叫做patch
- (可选)旋转patch或者抖动patch的像素值
- 把上述patch粘贴回原始图像的任意位置
利用这一增强策略,可以构造一个自监督表征学习任务,训练集为:原始训练图像和对应标签0,经CutPaste合成的图像和对应标签1;训练的损失函数为:
通过上述自监督表征学习任务,我们可以得到更加适用于图像异常检测任务的representations f。
2.One-Class Classifier(GDE)
接下来,论文通过Gaussian density estimator(GDE)构造one-class classifer以计算异常得分,GDE的log-density按照如下公式计算:
3.定位任务
定位任务提供了两种实现:
- 通过分类+GradCAM可解释性算法获得热力图;
- 推理时将图像按照一定的步长划分patch,各patch分别通过前向传播获得anomaly score map,利用Gaussian
smoothing将anomaly score传播至各像素,即可获得定位结果。
二者的比较:
SimpleNet: A Simple Network for Image Anomaly Detection and Localization
SimpleNet发表于2023年的CVPR,属于特征级异常合成。它包含4个组件:
- 预训练的Feature Extractor,用于抽取局部特征
- 浅层的Feature Adapter,用于将特征从预训练域迁移到目标域
- Anomaly Feature Generator,通过向正常特征上添加高斯噪声来伪造异常特征
- 二分类的Anomaly Discriminator,用于区分正常特征和异常特征
上述设计基于3个直觉:
- 将pre-trained features迁移至target-oriented features,有助于缓解域偏移
- 在特征空间合成异常更加有效,因为缺陷在图像空间并没有太多的共性
- 简单的discriminator(2层的MLP)足够有效
A Unified Anomaly Synthesis Strategy with Gradient Ascent for Industrial Anomaly Detection and Localization
GLASS是2024年arXiv上的论文,包含图像级和特征级的异常合成。其中图像级的异常合成思路是在Perlin Noise+DTD上进行改进,特征级的异常合成思路是在SimpleNet上进行改进。
分类器的部分和SimpleNet的Discriminator比较相似,都是直接将one-class classification任务建模为全监督分类任务来做。