论文标题 | CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
论文来源 | CVPR 2021
论文链接 | https://arxiv.org/abs/2104.04015
源码链接 | 未公布

TL;DR

论文中提出了一种高性能的图像缺陷异常检测模型,可以不依赖于异常数据来检测未知的异常模式。框架整体属于 two-stage:首先通过自监督学习方法来学习正常图像的表示,然后基于学习到的图像表示来构建单分类器。CutPaste 技术主要是通过图片剪切然后再粘贴至其它位置来构造负样本。实验部分在 MVTec 数据集中验证了模型对图片缺陷检测的有效性,如果不使用预训练那么可以比当前 baselines 的 AUC 提升 3.1 ,如果基于 ImageNet 进行迁移学习那么 AUC 可以达到 96.6。

Algorithm/Model

论文中的框架如下所示:

模型框架

主要包含两步:

  • 基于自监督学习和 CutPaste 数据增强的图像表示学习;
  • 异常检测和定位;

自监督表示学习

CutPaste 仅是一个数据增强方法,从图像中裁剪出一块矩形区域粘贴到任意位置,见名知意。

结合自监督学习,模型训练的目标函数如下:

LCP=ExX{CE(g(x),0)+CE(g(CP(x)),1)}\mathcal{L}_{\mathrm{CP}}=\mathbb{E}_{x \in \mathcal{X}}\{\mathbb{C E}(g(x), 0)+\mathbb{C} \mathbb{E}(g(\mathrm{CP}(x)), 1)\}

包括正常样本误差和生成的异常样本误差,其中X\mathcal{X} 表示正常样本集合,CP(x)\text{CP}(x) 表示数据增强的样本,g()g(\cdot) 表示二分类器,CE()\mathbb{C} \mathbb{E}(\cdot) 表示交叉熵。

数据增强除了 CutPaste 还有很多形式,论文中比较了不同 aug 方法的效果如下

数据增强

异常分数计算

学习到图片表示ff 后,需要计算样本异常分数。论文中采用的是类似核密度估计 KDE 或者高斯密度估计 GDE 的方法。

由于非参数化的 KDE 方法需要很多样本进行估计,因此论文中采用的是简单的参数化的 GDE 方法,计算公式如下

logpgde(x){12(f(x)μ)Σ1(f(x)μ)}\log p_{\mathrm{gde}}(x) \propto\left\{-\frac{1}{2}(f(x)-\mu)^{\top} \Sigma^{-1}(f(x)-\mu)\right\}

其中μ\muΣ\Sigma 是基于正常数据学习到的参数。

Patch 定位

论文中直接学习到 CutPaste 裁剪的 Patch 表示,然后训练一个 CNN 异常检测器来判断 Patch 的异常分数。

训练 Patch Representation 的目标函数如下所示

ExX{CE(g(c(x)),0)+CE(g(CP(c(x))),1)}\mathbb{E}_{x \in \mathcal{X}}\{\mathbb{C E}(g(c(x)), 0)+\mathbb{C E}(g(\mathrm{CP}(c(x))), 1)\}

其中c(x)c(x) 表示在位置xx 裁剪的 patch。在模型测试阶段根据步长裁剪所有的 patch 判断异常分数,然后使用高斯平滑每个像素点的异常分数得的最终的异常区域。

Experiments

实验对比效果如下图所示

实验结果 实验结果

论文中还提供了非常多基于迁移学习的对比实验,有兴趣可以参考原文。

Contact