极市导读
DiffusionAD 用“噪声到正常”单步去噪+范数引导策略,实现毫秒级异常重建与定位,在 MVTec 等四数据集全面领先,为工业质检提供首个实时高精度扩散方案。>>加入极市CV技术交流群,走在计算机视觉的最前沿
在工业制造领域,异常检测就像工厂的"火眼金睛",能及时发现产品表面的划痕、裂缝等缺陷。但传统方法要么重建质量差,要么检测速度慢,始终难以满足实际生产需求。
今天要给大家介绍的这篇顶刊论文——《DiffusionAD: Norm-guided One-step Denoising Diffusion for Anomaly Detection》,彻底解决了这个难题!它提出的全新框架不仅检测精度远超现有方法,还能实现实时推理,堪称工业质检的"终极解决方案"。
论文信息
题目:DiffusionAD: Norm-guided One-step Denoising Diffusion for Anomaly Detection
DiffusionAD:用于异常检测的范数引导单步去噪扩散方法
作者:Hui Zhang, Zheng Wang, Dan Zeng, Zuxuan Wu, and Yu-Gang Jiang
源码:https://github.com/HuiZhang0812/DiffusionAD
01 为什么传统方法总掉链子?
在说DiffusionAD之前,咱们得先聊聊传统异常检测方法的痛点。目前主流的方法主要有两类:
基于特征嵌入的方法(比如PatchCore)依赖预训练模型提取特征,但遇到工业场景中特殊的纹理和结构时,很容易"水土不服"。
基于生成模型的方法(比如自动编码器AE)更惨:要么把异常区域原封不动地重建出来(导致漏检),要么把正常区域重建得乱七八糟(导致误检)。看下面这张图就明白了,AE的重建结果简直没法看!
而之前尝试用扩散模型做异常检测的方法,虽然重建质量不错,但需要几十到上千次迭代,速度慢得像蜗牛,根本满足不了工厂实时检测的需求。
02 DiffusionAD三大杀招,彻底解决痛点
DiffusionAD提出了三个革命性创新,直接把异常检测的性能和速度拉到新高度:
2.1 噪声到正常:让异常区域"自动消失"
传统扩散模型是从噪声生成正常图像,而DiffusionAD反其道而行之:给输入图像添加高斯噪声,让异常区域失去独特特征,然后用模型预测添加的噪声,从而把异常区域重建为正常状态。
就像给有污渍的照片撒上一层雾,让污渍变得模糊,再通过去雾技术把照片恢复干净,而且只擦掉污渍,不损伤原图。这种方式既能精准修复异常,又能保留正常区域的细节。
2.2 单步去噪:速度提升数百倍的秘诀
扩散模型慢就慢在需要反复迭代去噪,DiffusionAD发现:当噪声尺度较小时,只需要一次去噪就能得到和多次迭代差不多的效果!
看下面的实验结果,当时间步t≤400时,单步去噪和迭代去噪的重建质量几乎没差别,但速度快了几十甚至几百倍。这就好比原本需要煮100分钟的汤,现在发现煮1分钟味道就一样好,效率直接拉满!
2.3 范数引导:不同异常,不同对待
异常的种类太多了:有的是小划痕,有的是大块缺损。DiffusionAD发现,小异常适合用小噪声处理,大异常则需要大噪声。
于是它提出范数引导范式:先用大噪声处理得到一个"语义正确"的粗重建结果,再用这个结果引导小噪声的精细重建,最终得到既准确又精细的重建图像。就像先勾勒轮廓,再填充细节,两全其美!
03 方法全貌:DiffusionAD的"五脏六腑"
下面这张图是DiffusionAD的总体结构图,主要包含两个子网:
3.1 重建子网:异常修复的"巧手"
-
给输入图像x₀添加两种不同尺度的噪声,得到xₜₛ(小噪声)和xₜᵦ(大噪声) -
用扩散模型分别预测这两种噪声 -
用大噪声的重建结果n引导小噪声的重建,得到最终的无异常图像x̂₀g
3.2 分割子网:异常定位的"火眼金睛"
把原始图像x₀和重建的无异常图像x̂₀g拼接起来,通过U-Net结构预测每个像素的异常分数。分数越高,说明这个位置越可能是异常。
04 训练技巧:没有异常样本也能练出高手
工业场景中异常样本很少,DiffusionAD用了个聪明的办法:自己合成异常样本!流程如下:
-
从Perlin噪声生成随机异常区域(像不规则的污渍) -
从纹理库找一些和原图不搭的图案作为异常内容 -
把异常内容贴到正常图像上,合成带标签的异常样本
这样一来,就算没有真实异常样本,模型也能学得明明白白。
05 实验结果:碾压所有对手!
在四个权威数据集(MVTec、VisA、DAGM、MPDD)上,DiffusionAD的表现让所有方法都黯然失色:
5.1 速度对比:甩扩散模型几条街
和其他基于扩散的方法相比,DiffusionAD的FPS(每秒帧数)达到23.5,是DiffAD的19倍,KLAD的19.6倍!
5.2 精度对比:各项指标全面领先
在MVTec数据集上,DiffusionAD的像素级AP比最好的生成模型高7.7%;在VisA数据集上,图像级AUROC比最好的方法高3.3%。看下面的定性结果,DiffusionAD重建的图像几乎看不出异常,定位也精准无比,比PatchCore和DRAEM强太多!
更多数据集的可视化结果也证明了它的强大:

06 消融实验:每个创新都必不可少
作者通过消融实验证明了每个模块的重要性:
-
噪声到正常范式:比传统AE的性能提升巨大 -
单步去噪:速度提升300倍,性能还更好 -
范数引导:结合不同噪声尺度的优势,进一步提升精度
特别是训练-推理一致性这点很关键:训练时用单步重建,推理时也必须用单步,否则性能会下降。
07 总结:工业质检的新标杆
DiffusionAD用三个核心创新彻底解决了异常检测的痛点:
-
噪声到正常范式:让异常区域自然消失 -
单步去噪:速度提升数百倍,满足实时需求 -
范数引导:适应各种类型的异常
它在四个数据集上全面领先,既能精准定位细微划痕,又能识别大块缺损,还能实时处理,简直是为工业质检量身定做的完美方案!未来作者还会探索自适应噪声尺度和更真实的异常合成方法,让这个框架更强大。感兴趣的同学可以去github看看源码(https://github.com/HuiZhang0812/DiffusionAD),说不定能给你的研究带来新灵感~
公众号后台回复“数据集”获取100+深度学习各方向资源整理
极市干货

点击阅读原文进入CV社区
收获更多技术干货

