[ECCV2024]GLAD Towards Better Reconstruction with Global and Local Adaptive Diffusion Models for Unsupervised Anomaly Detection

在工业异常检测任务中,引入并改进扩散模型,通过重建比较实现异常检测。

Background

异常检测(anomaly detection,AD)旨在检测和定位工业产品物体的异常模式,然而:

  • 在某些情况下,为所有异常类型收集足够的异常样本具有挑战性。
  • 由于产品设计和生产流程不断变化,不可能提前收集所有异常。

无监督异常检测 (un-supervised anomaly detection,UAD) 仅需正常样本,因此在异常检测任务中是一种更常用的设置。

基于嵌入(embedding-based)的方法:提取图像特征来评估异常。

  • 基于知识蒸馏的方法:用正常样本训练学生网络,将预训练的教师网络的特征与学生网络的特征进行比较,以检测和定位异常。
  • PaDiM 为正常样本的patch特征建立多元高斯分布,并使用马氏距离作为指标计算异常分数。
  • PatchCore 提出了使用memory bank来保存正常图像的特征,并将其与测试图像的特征图进行比较,以区分正常特征和异常特征之间的差异。

基于重建(reconstruction-based)的方法:通过给定样本与其正常样本之间的比较来检测和定位。

这类方法基于假设:在正常样本上训练的模型只能重建正常图像。因此可以通过比较重建前后的样本来检测异常。早期使用的网络架构为AE,最近几年还有GAN、Transformer、diffusion models、UNet架构等。

Motivation

扩散模型具有突出的建模能力。在训练过程中,由于仅使用正常样本,扩散模型只捕捉正常样本的分布。然而使用同样的去噪步骤数并不合理,
首先有不同的样本,每种样本有不同的缺陷,导致需要的去噪数不同;此外过度得去噪会破坏原始正常细节。如下图,第一行表示确实主体的异常,第二行表示划痕异常。可看到小的划痕异常仅需要300 steps去噪就能生成合适的结果;缺失异常需要900 steps才比较合适,但900 steps,对于划痕异常会导致部分细节的缺失。

此外,异常样本中的噪声不可避免大概率不属于标准的高斯分布。

Method

作者针对motivation,提出3点改进。

推理阶段:

  • 自适应去噪步数(Adaptive Denoising Step,ADS):自动调整去噪步数,实现重构质量和细节保留的平衡。
  • 空间自适应特征融合(Spatial-Adaptive Feature Fusion,SAFF):给非异常的部分加上掩码,避免对正常样本的过度重构。

训练阶段:

  • 面向异常的训练范式(Anomaly-oriented Training Paradigm,ATP):调整损失函数,允许噪声预测非高斯噪声。

Preliminary

扩散过程可以表示为:

\[\boldsymbol{x}_t=\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0+\sqrt{1-\bar{\alpha}_t}\epsilon,\tag{1} \]

\(\epsilon\)表示随机高斯噪声,\(\bar{\alpha}\)表示噪声衰减权重,\(\bar{\alpha}=\prod_{i=1}^t\alpha_i\), \(t\)表示步数。

中间结果表示为:

\[\boldsymbol{x}_{t \rightarrow 0}=\frac{1}{\sqrt{\bar{\alpha}_{t}}}\left(\boldsymbol{x}_{t} - \sqrt{1-\bar{\alpha}_{t}} \epsilon_{\theta}\left(\boldsymbol{x}_{t}, t\right)\right),\tag{2} \]

\(\epsilon_{\theta}\)为预训练的模型,用于预测添加的噪声。

生成过程表示为:

\[\hat{\boldsymbol{x}}_{t-1}=\sqrt{\bar{\alpha}_{t-1}} \hat{\boldsymbol{x}}_{t \rightarrow 0}+\sqrt{1-\bar{\alpha}_{t-1}} \epsilon_{\theta}\left(\hat{\boldsymbol{x}}_{t}, t\right).\tag{3} \]

形式上,生成过程与扩散过程很像,等式右边两项可以理解为,第一项表示去噪后恢复的部分,第二项表示通过预测的噪声进行调整。

\(\boldsymbol{x}\)表示正常产品,\(\boldsymbol{x}^a\)表示对应的异常样本,通过扩散、生成过程重建异常样本:\(\boldsymbol{x}^a\xrightarrow{diff}\boldsymbol{x}_t^a\xrightarrow{gen}\hat{\boldsymbol{x}}^a\),理想情况下希望它们的误差\(\|\hat{\boldsymbol{x}}^{a}-\boldsymbol{x}\|_{\infty}<\tau\),其中\(\tau\)表示手动设置的阈值。这样就可以通过比较\(\boldsymbol{x}^a\)\(\hat{\boldsymbol{x}}^a\)差异来检测和定位异常。

可以认为\(\hat{\boldsymbol{x}}=\boldsymbol{x}+\boldsymbol{n}\),代入Eq. 1:

\[\begin{aligned}\boldsymbol{x}_{t}^{a}&=\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0^a+\sqrt{1-\bar{\alpha}_t}\epsilon^a\\&=\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0+\sqrt{1-\bar{\alpha}_t}\epsilon^a+\sqrt{\bar{\alpha}_t}\boldsymbol{n},\end{aligned}\tag{4} \]

重建后与正常样本的误差表示为:

\[\begin{aligned} \hat{\boldsymbol{x}}^a-\boldsymbol{x}& =g_t(\boldsymbol{x}_t^a)-g_t(\boldsymbol{x}_t) \\ &=g_t(\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0+\sqrt{1-\bar{\alpha}_t}\epsilon^a+\sqrt{\bar{\alpha}_t}\boldsymbol{n})-g_t(\sqrt{\bar{\alpha}_t}\boldsymbol{x}_0+\sqrt{1-\bar{\alpha}_t}\epsilon) \\ &\overset{\infty}{\operatorname*{\sim}}\sqrt{1-\bar{\alpha}_t}(\epsilon^a-\epsilon)+\sqrt{\bar{\alpha}_t}\boldsymbol{n}, \end{aligned}\tag{5}\]

误差与\(\sqrt{1-\bar{\alpha}_t}(\epsilon^a-\epsilon)+\sqrt{\bar{\alpha}_t}\boldsymbol{n}\)正相关,因此我们希望于减少这一项的结果。

Adaptive Denoising Steps (ADS)

\(\boldsymbol{x}^a\xrightarrow{add\ T\ steps\ noise}\boldsymbol{x}^a_T\xrightarrow{generate}\hat{\boldsymbol{x}}^a_t\xrightarrow{Eq. 2}\hat{\boldsymbol{x}}^a_{t\rightarrow0}\)

\(\boldsymbol{x}^a\xrightarrow{add\ t\ steps\ noise}\boldsymbol{x}^a_t\xrightarrow{Eq. 2}\boldsymbol{x}^a_{t\rightarrow0}\)

作者认为,\(\boldsymbol{x}^a_t\)保留了一定的异常信息,因此可以比较\(\hat{\boldsymbol{x}}^a_{t\rightarrow0}\)\(\boldsymbol{x}^a_{t\rightarrow0}\)的异常分数(异常分数稍后介绍)之差,如果它们见的差值小于阈值,说明\(\hat{\boldsymbol{x}}^a_{t\rightarrow0}\)还保留了一些噪声,因此需要继续去噪,反之则去噪结束。这样保证异常能被重建,正常的区域能保留。

Spatial-Adaptive Feature Fusion (SAFF)

作者认为重建整张图并不合理,因为只有异常区域需要大量去噪步骤,因此引入了掩码\(\boldsymbol{m}\),掩码的值表示像素是异常部分的概率。

文中并没有直接给出\(\boldsymbol{m}\)的计算,但根据图可知,应该是根据异常分数得到的。

\[\hat{\boldsymbol{x}}_{t}^{f}=\boldsymbol{m}\cdot\hat{\boldsymbol{x}}_{t}^{a}+(1-\boldsymbol{m})\cdot\boldsymbol{x}_{t}^{a}.\tag{6} \]

代入Eq. 1得到:

\[\begin{aligned} \hat{\boldsymbol{x}}_t^f& =\sqrt{\bar{\alpha}_t}\hat{\boldsymbol{x}}_{t\to0}^f+\sqrt{1-\bar{\alpha}_t}\epsilon \\ &=\sqrt{\bar{\alpha}}_t(\boldsymbol{m}\cdot\hat{\boldsymbol{x}}_{t\to0}^a+(1-\boldsymbol{m})\cdot\boldsymbol{x}_{t\to0}^a)+\sqrt{1-\bar{\alpha}_t}\epsilon. \end{aligned}\tag{7}\]

Anomaly-oriented Training Paradigm (ATP)

回顾下Eq. 5,简化下:

\[\hat{\boldsymbol{x}}^a-\boldsymbol{x}\overset{\infty}{\operatorname*{\sim}}\sqrt{1-\bar{\alpha}}_t(\epsilon^a-\epsilon)+\sqrt{\bar{\alpha}_t}\boldsymbol{n}\to0.\tag{8} \]

其中\(\epsilon,\ \bar{\alpha},\ \boldsymbol{n}\)都是给定的,因此交换下位置

\[\epsilon^a\to\epsilon-\frac{\sqrt{\bar{\alpha}_t}}{\sqrt{1-\bar{\alpha}_t}}\boldsymbol{n}.\tag{9} \]

对于一般的扩散模型仅使用正常样本训练,所有噪声服从高斯分布,因此为了让模型能预测高斯分布外的噪声,对损失进行改进:

\[\begin{aligned} L_{ATP}& =\mathbb{E}_{(\boldsymbol{x},\boldsymbol{x}^a)\boldsymbol{\sim}p_{data},\epsilon\boldsymbol{\sim}\mathcal{N}(\boldsymbol{0},\mathbf{I}),t}[\|(\epsilon-\frac{\sqrt{\bar{\alpha}_t}}{\sqrt{1\boldsymbol{-}\bar{\alpha}_t}}\boldsymbol{n})-\epsilon^a\|_2] \\ &=\mathbb{E}_{(\boldsymbol{x},\boldsymbol{x}^a)\thicksim p_{data},\epsilon\thicksim\mathcal{N}(\mathbf{0},\mathbf{I}),t}[\|(\epsilon-\frac{\sqrt{\bar{\alpha}_t}}{\sqrt{1-\bar{\alpha}_t}}(\boldsymbol{x}^a-\boldsymbol{x}))-\epsilon_\theta(\boldsymbol{x}_t^a,t)\|_2]. \end{aligned}\tag{10}\]

如果样本是正常的,那么\(L_{ATP}\)会退化到原始的扩散模型损失。相较于原始的损失函数,它多了个\(\boldsymbol{x}^a\),为了保持无监督的设置,作者使用MemSeg将异常样本与正常样本合成,使训练能够以无监督的方式进行。

然而这种做法依然不能保证模型能预测高斯分布之外的噪声,特别是异常样本本身的噪声。

Anomaly Scoring and Map Construction

前面的步骤,都是为了对异常样本重建生成正常样本,关于特征的提取,作者使用一个预训练的DINO,测试样本特征表示为\(F_t\in\mathbb{R}^{c\times u\times v}\),重建样本的特征为\(F_r\in\mathbb{R}^{c\times u\times v}\)

计算模型\(l\)层的\(F_t,\ F_r\)的余弦相似度:

\[M_l^{(i,j)}(F_t^l,F_r^l)=\min(1-\langle F_t^{l^{(i,j)}},F_r^l\rangle),\tag{11} \]

\((i,j)\)表示矩阵上的每个分量。多层结果相加得到最后的异常map:

\[M=\sum_lM_l(F_t^l,F_r^l),\tag{12} \]

关于异常分数的定义:\(M\)的前\(K\)个最大值的平均值。

实验

使用预先训练的潜在扩散模型 (Latent Diffusion Model,LDM)并对 UNet 进行微调以适应数据进行重建。采用 ViT-B/8 架构的DINO用作特征提取模型

消融实验:

\[\begin{array}{c|c}\hline\text{Method}&\text{I-AUROC\ \ \ \ P-AUROC}\\\hline\text{Baseline}&98.3&98.0\\\text{Baseline + ADS}&99.0&98.5\\\text{Baseline + ATP}&98.7&98.5\\\text{Baseline + ADS + ATP w/o SAFF}&99.2&98.3\\\text{Baseline + ADS + ATP with SAFF (Ours)}&\textbf{99.3}&\textbf{98.6}\\\hline\end{array} \]

直接看可视化实验

相较于其他方法,作者的方法重建得更好,因此能更准确的定位异常。

对比固定去噪步长,ADS确保异常重建并尽可能多地保留有关正常区域的信息。

Reference

  • Yao, Hang, et al. "Glad: Towards better reconstruction with global and local adaptive diffusion models for unsupervised anomaly detection." European Conference on Computer Vision. Springer, Cham, 2025.
posted @ 2024-11-26 11:27  October-  阅读(24)  评论(0编辑  收藏  举报