R&D
CENTER

如何选择异常检测算法:11 种算法分别在什么时候用

AD Workbench 的 11 种算法,包括 PaDiM、PatchCore、AnomalyDINO、WinCLIP、EfficientAD 等,输出结果相同,但各有所长。本文按数据量、零件是否固定、分辨率和节拍时间整理选择依据。

基础4 分钟1 浏览
本课要点
  1. 算法大致分为“扫描一遍收集特征的方式(1-pass)”和“训练神经网络的方式(梯度下降)”两类。
  2. 良品图像越少,基于预训练模型的 WinCLIP、AnomalyDINO 越有优势;越多,则 PatchCore、Dinomaly2 越有优势。
  3. 用夹具固定的零件,适合采用按位置建立基准的 PaDiM、PatchCore;位置会晃动的零件,则 AnomalyDINO 更强。
  4. 难以抉择时,勾选多个算法,再用 Auto Run 在同一份数据上一次性比较,是最可靠的做法。

AD Workbench 的算法都输出相同的结果:逐像素的异常度热力图和一个代表整张图像的分数,判定方式为 score ≥ Threshold → NG。区别在于用什么提取特征、如何衡量异常度。这一区别决定了所需数据量、速度以及擅长的缺陷类型。

两种训练方式

A. 统计・特征收集型(1-pass) — PaDiM、PatchCore、SPADE、AnomalyDINO、WinCLIP、HoleMetric、Tiled 2 种

将良品图像扫描一遍,收集特征或计算均值与协方差。由于没有反向传播,也就没有 epoch 的概念,训练只需几秒到几分钟即可完成。但由于要保存收集到的特征,模型文件可能会变大。

B. 梯度下降训练型 — EfficientAD、FastFlow(20 epochs)、Dinomaly2(5,000 iterations)

需要真正训练神经网络权重,因此耗时较长。相应地,推理速度快、模型文件小。当产线节拍时间很紧时,可以作为候选。

11 种算法一览

算法 特征提取 异常度计算 主要优势
PaDiM WideResNet50-2 与各位置高斯分布的马氏距离 位置固定的对象,缺陷位置清晰
PatchCore WideResNet50-2 记忆库的 k 近邻距离 顶级精度(推荐默认)
SPADE WideResNet50-2 与 K 张相似良品的逐位置最小距离 简单,小规模数据可快速搭建
WinCLIP CLIP ViT-B-16+ 与“良品/不良品”文本的相似度 几乎没有良品图像也能立即尝试
EfficientAD 轻量专用网络 Teacher–Student 不一致 + 重建误差 推理非常快
FastFlow WideResNet50-2 归一化流的概率密度 模型小、推理快
AnomalyDINO DINOv2 ViT patch token 最近邻余弦距离 复杂形状、few-shot、位置变动
Dinomaly2 DINOv2 + 解码器 编码器与解码器的特征差异 用单个模型整合多个视角
HoleMetric 传统视觉 对齐后的像素・cell 统计 孔・cell 级微细形状、CPU、训练 3 秒
AnomalyDINO Tiled DINOv2 ViT-B/14 原始分辨率下各 tile 的记忆库 高分辨率微细缺陷、异物・破损
PatchCore Tiled WideResNet50-2 各 tile 的 coreset 记忆库 良品 20 张以上、微细表面缺陷

基础模型(Foundation Model)带来的改变

WinCLIP、AnomalyDINO 和 Dinomaly2 直接使用以超过 1 亿张图像预先训练的通用视觉模型(CLIP、DINOv2)的特征。这些模型已经训练得能够很好地表达“物体的结构”,因此即使只有几张良品图像,也能提取出区分正常与异常的特征。WinCLIP 使用同时学习图像与文本的 CLIP,即使良品图像为 0 张,也会尝试根据与“没有划痕的零件”“有划痕的零件”这类文本的相似度进行判断(Zero-shot)。在收集数据之前,可用于评估检测是否可行。

高分辨率微细缺陷:tile 方式

大多数模型会把图像缩小到 512 像素左右再处理。如果把 2048 像素的原图缩小为四分之一,直径 4 像素的孔堵塞就会变成 1 像素而消失。tile 方式先对零件进行对齐,再以原始分辨率切分为 518 像素的 tile(重叠 10%),并为每个 tile 分别建立记忆库。在原图中一个孔呈现为 4×4 patch,因此 cell 级缺陷能保留在特征中。

HoleMetric 不使用深度学习,而是通过对齐和统计,测量每个孔(cell)的亮度、暗部比例和偏差,并用 cell_report.csv 说明是哪个 cell 导致 NG。建议与擅长非典型异常(异物、破损)的 AnomalyDINO Tiled 搭配使用。

选择指南

情况 推荐 理由
良品 0~10 张(可行性评估) WinCLIP · AnomalyDINO 以 Zero/Few-shot 立即尝试
良品 10~50 张 AnomalyDINO · SPADE · HoleMetric · Tiled 无需训练的记忆库・统计方式
良品 50~300 张 PatchCore · AnomalyDINO · PaDiM 顶级精度
良品 300 张以上 PatchCore · Dinomaly2 视角多时用 Dinomaly2 一套覆盖
用夹具固定,始终在同一位置 PaDiM · PatchCore · HoleMetric 逐位置基准完全吻合
对象会移动或略有旋转 AnomalyDINO 对位置变化相对稳健
连接器、注塑件等复杂形状 AnomalyDINO · Dinomaly2 更擅长表达复杂结构
孔・针脚微细形状(2048px) HoleMetric + AnomalyDINO Tiled 在原始分辨率下按 cell 测量
在线节拍时间很紧 EfficientAD · FastFlow 推理快、模型轻

最终还是靠实验决定

上表只是起点。即使是同一种零件,排名也会随光照和缺陷类型而变化。在 AD Workbench 中,在 Setup 中勾选多个候选算法并点击 Auto Run,就会用相同的训练・评估数据全部运行,便于并排比较分数分布和热力图。比较依据请参阅模型评估与现场运维。