跳转至

InCLAD: A Continual Learning Benchmark for Industrial Visual Anomaly Detection

会议: NeurIPS 2026
arXiv: 2610.15032
OpenReview: https://openreview.net/forum?id=KLoy8Knatm
代码: https://github.com/LukaszMarcjan/InCLAD-benchmark
领域: 异常检测
关键词: 工业异常检测、持续学习、灾难性遗忘、任务增量学习、无监督/半监督学习

一句话总结

针对工业视觉质检中产线组件持续更替导致模型遗忘历史产品的核心瓶颈,本文提出了首个覆盖 5 大工业数据集、17 种场景序列与多数据集异构流的持续异常检测基准 InCLAD,并为 PatchCore、PaDiM 与 CFA 建立了原生持续自适应评测框架。

研究背景与动机

工业视觉异常检测在表面缺陷检测、结构组装质检和安全巡检中扮演着关键角色。现有学术评测体系几乎完全建立在静态单任务评估之上:模型仅针对单一数据集的固定工业部件在离线训练集上进行正常样本表征建模,随后在同一静态分布的测试集上打分。然而在真实的智能制造和工业 4.0 产线环境中,工业部件与加工产品处于动态切换、批次迭代与工况演化之中。当质检系统接入新部件时,若每次都退回全量历史数据重新离线训练,不仅存储开销巨大且违背了边缘部署的敏捷性;但若直接用新产品微调已有模型,深度神经网络必然遭遇剧烈的灾难性遗忘,导致系统在重温早期产品时产生大量缺陷漏检。

解决工业持续异常检测面临着特殊的范式矛盾。不同于连续增量图像分类中以监督缺陷类别为标签的增量学习,工业现场在训练期极难获取充分且多样的缺陷样本,通常仅有无瑕疵的正常样本参与训练(即半监督/仅正常样本建模机制)。这使得持续学习的核心矛盾从“连续区分缺陷类别”转变为“在无监督/仅正常样本约束下,如何持续吸收新部件的正常外观流形而不冲垮旧部件的紧凑法向边界”。此外,现有持续学习研究大多局限在单一数据集的随机序列中,缺乏对任务难度课程(Curriculum Ordering)以及跨数据集异构域迁移(Multi-Dataset Stream)对遗忘行为影响的系统研究,且往往忽略了图像级判别与像素级定位在遗忘动态上的显著分化。

为了填补这一理论与工程落差,本文将工业视觉异常检测规范化为基于部件演进的任务增量式基准问题。核心 idea:构建多粒度工业持续异常检测基准 InCLAD,引入由多专家 consensus 排序驱动的易到难/难到易/随机课程序列及 27 任务跨数据集流,并针对代表性非参数/半参数检测器(PatchCore、PaDiM、CFA)设计解耦记忆与软边界重建的持续适配机制,从图像级检测与像素级定位双重视角揭示知识保留与负向反向迁移机理。

方法详解

整体框架

InCLAD 确立了面向工业巡检全生命周期的任务增量学习基准协议。在持续任务流 \(\mathcal{T}_1, \mathcal{T}_2, \dots, \mathcal{T}_N\) 中,每一个任务 \(\mathcal{T}_t\) 代表一个特定的工业部件或制造对象。每个任务在训练阶段仅提供该部件的无缺陷正常图像 \(X_t\),模型在更新时受到严格的持续学习约束(禁止无限制访问所有历史原始数据);而在测试阶段,系统需要同时评估迄今所见全部部件 \(\mathcal{T}_1, \dots, \mathcal{T}_t\) 的正常与缺陷样本,并在提供标注掩码的数据集上执行像素级定位测试。

为了客观衡量任务演进顺序对模型学习稳定性的影响,InCLAD 通过单任务专家难度共识设计了三种序列编排机制(易到难课程、难到易课程、随机顺序),并进一步构建了涵盖 27 个任务的跨数据集混合流。在检测器侧,针对标准 Replay 无法直接作用于非梯度/内存匹配型检测器的瓶颈,本文分别提出了距离加权 Coreset 压缩的持续 PatchCore、多高斯库最小马氏距离路由的持续 PaDiM,以及训练/推理空间解耦重建的持续 CFA。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["多工业数据集任务池<br/>MVTec / VisA / BTAD / MPDD / DAGM"] --> B["多模型难度共识评分与任务排序<br/>PatchCore / PaDiM / CFA 单任务排序聚合"]
    B --> C["持续任务序列构建<br/>Easy-to-Hard / Hard-to-Easy / Random / 27-Task MultiDataset"]
    C --> D["持续适配检测器学习<br/>当前任务正常样本 Xt + 历史重放样本/记忆库压缩"]
    D --> E["无任务ID测试推理路由<br/>跨已学任务记忆库评估最小异常分"]
    E --> F["双视角动态终生评估<br/>图像级 ROC-AUC 与像素级 ROC-AUC + 反向迁移 BWT"]

关键设计

1. 基于多专家共识排名的单/跨数据集课程序列构建

针对以往持续学习基准中任务序列排列随意、无法解耦部件内在检测难度与序列效应的问题,本文提出基于多专家共识难度的课程构建策略。单一检测器往往包含特定的归纳偏置(例如 PatchCore 依赖内存近邻检索、PaDiM 依赖局部空间高斯建模、CFA 依赖超球面特征压缩),若仅凭单一模型的单任务得分排列任务,会导致排序受限于特定算法的失效模式。

为此,InCLAD 针对每个候选部件独立训练 PatchCore、PaDiM 和 CFA 三大专家模型并测定其单任务 ROC-AUC,将三种模型的排序位次取算术平均作为该部件的真实基线难度共识。在单数据集内,据此衍生出从易到难(Easy-to-Hard)、从难到易(Hard-to-Easy)以及基准随机(Random)三种流;在跨数据集场景中,为防止大样本数据集主导流形,设计了极值与中位数平衡采样规则(每个数据量大于 6 的数据集保留 2 个最易、2 个最难和 2 个中等难度任务),从而合成包含 27 个工业任务的严苛综合测试流。

2. 距离加权贪心压缩的持续 PatchCore(Continual PatchCore)

标准 PatchCore 依靠预训练特征提取器构建无缺陷 Patch 嵌入的 Coreset 内存库,并在测试时通过贪心近邻距离进行异常打分。若直接在持续学习中堆积所有任务的特征,内存库规模会随任务数线性爆炸,且不同部件的正常 Patch 互相污染会导致近邻距离判别失效。

持续 PatchCore 为每个任务维护独立的特征库 \(C_j\)。当前任务 \(t\) 按照原生比例构建密集 Coreset 库 \(C_t\);而对于所有历史任务库 \(C_1, \dots, C_{t-1}\),分配严格的保留预算 \(B_t = \lfloor \rho |C_t| \rfloor\)(每个历史任务分配约 \(b_t = \max(1, \lfloor B_t / (t-1) \rfloor)\) 个补丁)。在压缩历史库时,引入距离加权机制:计算历史补丁 \(z \in C_j\) 到当前新任务特征集合的最小欧氏距离: $\(w_t(z) = \min_{c \in C_t} \|z - c\|_2\)$ 离新任务流形越远、越具独特部件特异性的补丁被赋予更高权重,随后通过加权贪心选择算子筛选出最有辨识力的历史 Patch: $\(z^\star = \arg\max_{z \in C_j} w_t(z) \min_{s \in S} \|z - s\|_2\)$ 推理阶段在无需测试时任务 ID(Task-ID-Free)的前提下,输入图像计算与各任务库的平均近邻距离,自适应路由至最匹配的部件法向模型计算最终异常分数。

3. 多任务统计解耦路由的持续 PaDiM(Continual PaDiM)

PaDiM 不依赖梯度反向传播,而是对图像各空间网格位置 \(p\) 建模均值与协方差高斯统计量 \(\mathcal{N}(\mu_p, \Sigma_p)\)。若在持续学习中直接增量更新单一全局高斯分布,不同工业部件(如圆柱形螺栓与片状晶圆)的几何结构差异将破坏局部特征的单模态高斯假设,导致协方差矩阵发散。

持续 PaDiM 为每个任务独立拟合并持久化一组特定位置的高斯统计元组 \(G_t = \{(\mu_{t,p}, \Sigma_{t,p}^{-1})\}_p\)。由于工业部署时测试图片并未附带部件类别标签,模型在推断阶段采用“最小假定异常”原则:令测试图像 \(x\) 并行输入各已学任务的高斯模型,计算位置级马氏距离并汇总为图像级异常候选分 \(A_j(x)\),选取异常分数最低的任务模型作为最佳匹配域: $\(j^\star(x) = \arg\min_j A_j(x)\)$ 进而输出选定部件模型 \(G_{j^\star}\) 对应的图像异常分与像素级热力图,在消除任务间特征分布污染的同时实现了免标签持续判别。

4. 软边界流形同步重建的持续 CFA(Continual CFA)

CFA 结合了可学习的特征描述网络 \(g_\theta\) 与超球面软边界约束。在持续学习场景中,若仅使用回放样本微调描述网络,网络权重的更新会导致之前任务生成的推理记忆库在新嵌入空间中产生表示漂移(Representation Drift),致使历史内存库直接失效。

持续 CFA 提出了训练记忆库与推理记忆库解耦的机制:在学习任务 \(t\) 时,将当前正常样本 \(X_t\) 与历史重放样本 \(R_t\) 结合为集合 \(U_t\),首先使用冻结的上一轮描述器 \(g_{\theta_{t-1}}\) 初始化训练记忆库 \(B_t^{\text{train}}\);接着通过最小化 CFA 紧致边界损失优化新权重 \(\theta_t\)。在更新完成后,关键步骤在于流形同步重建:使用最新网络 \(g_{\theta_t}\) 重新投影所有已学任务的缓存样本,全面重构历史推理记忆库 \(B_j^{\text{inf}} = \text{Bank}(g_{\theta_t}(X_j))\)(\(j=1,\dots,t\)),保证所有历史部件在统一且未退化的最新度量空间中参与测试推理。

损失函数 / 训练策略

评估体系引入了全生命周期矩阵分析。设任务总数为 \(N\),测试矩阵 \(R \in \mathbb{R}^{N \times N}\) 中 \(R_{i,j}\) 表示学习完第 \(i\) 个任务后在第 \(j\) 个任务测试集上的 ROC-AUC。持续异常检测的终身平均性能定义为下三角矩阵的平均值: $\(\text{ROC-AUC}_{\text{CL}} = \frac{2}{N(N+1)} \sum_{i=1}^N \sum_{j=1}^i R_{i,j}\)$ 用于衡量历史任务受后续学习干扰程度的后向迁移度(Backward Transfer, BWT)定义为: $\(\text{BWT} = \frac{2}{N(N-1)} \sum_{i=2}^N \sum_{j=1}^{i-1} (R_{i,j} - R_{j,j})\)$ \(\text{BWT} < 0\) 反映了灾难性遗忘的严重程度,\(\text{BWT} \ge 0\) 则代表正向后向增益。

实验关键数据

主实验

论文对 9 种代表性工业异常检测算法(GANomaly、PatchCore、PaDiM、CFA、STFPM、RD4AD、EfficientAD、PaSTe、FastFlow)在 ResNet-18 和 WideResNet-50-2 骨干网络下展开全面评估。下表呈现了五大单数据集在 naive 非持续基线(NCL)与持续适配学习(CL)下的全模型均值表现(取自 Easy-to-Hard 排序):

数据集 评估层级 NCL ROC-AUC CL ROC-AUC 性能增益 (ROC) NCL BWT CL BWT 遗忘抑制增益 (BWT)
MVTec AD 图像级 0.583 ± 0.095 0.784 ± 0.146 +0.201 -0.039 ± 0.018 -0.017 ± 0.015 +0.022
MVTec AD 像素级 0.629 ± 0.128 0.842 ± 0.105 +0.213 -0.035 ± 0.008 -0.010 ± 0.008 +0.025
VisA 图像级 0.549 ± 0.045 0.748 ± 0.109 +0.199 -0.056 ± 0.019 -0.019 ± 0.021 +0.037
VisA 像素级 0.784 ± 0.090 0.886 ± 0.081 +0.102 -0.031 ± 0.013 -0.013 ± 0.015 +0.018
BTAD 图像级 0.666 ± 0.094 0.861 ± 0.148 +0.195 -0.289 ± 0.133 -0.046 ± 0.093 +0.243
BTAD 像素级 0.773 ± 0.086 0.925 ± 0.080 +0.152 -0.247 ± 0.039 -0.010 ± 0.014 +0.237
MPDD 图像级 0.541 ± 0.066 0.675 ± 0.136 +0.134 -0.112 ± 0.052 -0.061 ± 0.048 +0.051
MPDD 像素级 0.797 ± 0.133 0.888 ± 0.079 +0.091 -0.039 ± 0.017 -0.009 ± 0.008 +0.030
DAGM 图像级 0.557 ± 0.224 0.751 ± 0.151 +0.194 -0.035 ± 0.019 -0.011 ± 0.014 +0.024
DAGM 像素级 0.631 ± 0.269 0.808 ± 0.166 +0.177 -0.025 ± 0.015 -0.007 ± 0.007 +0.018

跨数据集流与任务排序消融分析

下表对比了 27 任务极度复杂的 MultiDataset 跨数据集流在不同课程序列下的表现(汇总 CFA、PaSTe 和 PaDiM 三大顶尖模型均值):

场景与排序方案 图像级 ROC-AUC 图像级 BWT 像素级 ROC-AUC 像素级 BWT
MultiDataset (Easy-to-Hard) - NCL 0.526 ± 0.013 -0.026 ± 0.002 0.711 ± 0.056 -0.017 ± 0.004
MultiDataset (Easy-to-Hard) - CL 0.792 ± 0.026 -0.004 ± 0.005 0.925 ± 0.019 -0.001 ± 0.001
MultiDataset (Hard-to-Easy) - NCL 0.552 ± 0.018 -0.023 ± 0.000 0.713 ± 0.044 -0.023 ± 0.008
MultiDataset (Hard-to-Easy) - CL 0.785 ± 0.044 -0.006 ± 0.006 0.904 ± 0.037 -0.003 ± 0.002
MVTec (Hard-to-Easy) - CL 0.710 ± 0.117 -0.017 ± 0.015 0.839 ± 0.103 -0.010 ± 0.006
MVTec (Random) - CL 0.766 ± 0.124 -0.020 ± 0.016 0.858 ± 0.090 -0.012 ± 0.010

关键发现

  • 课程顺序对图像级判别具有显著塑造效应:在所有数据集中,从易到难(Easy-to-Hard)的课程顺序始终取得最高的图像级持续 ROC-AUC(平均达 0.764),显著优于难到易(Hard-to-Easy 的 0.708);尽早掌握结构平稳、法向界限清晰的部件特征能够为后续复杂部件的持续增量奠定更优表征流形。
  • 像素级异常定位对遗忘具有更高抵抗力:无论是 NCL 还是 CL 模式,像素级定位的 ROC-AUC 及 BWT 稳定性均大幅优于图像级检测(像素级 BWT 普遍控制在 -0.01 左右)。这说明预训练视觉特征中的局部异常响应具备跨工业部件的空间不变性,遗忘主要发生在全局阈值校准与图像级异常聚合评分层面。
  • 跨数据集流揭示异构域干扰模式:在 27 任务混合流中,NCL 的图像级检测近乎降至随机猜测水平(0.526),而 CL 方案成功将 ROC-AUC 恢复至近 0.80。细粒度迁移热力图表明,性能骤降高度集中在跨数据集切换边界处,而非同数据集内部部件之间。

亮点与洞察

  • 半监督工业增量问题的基准范式确立:摆脱了将持续异常检测机械等同于持续缺陷分类的误区,构建了完全基于仅正常样本适配与无任务标签测试的真实质检协议。
  • 非梯度检测器的持续化重构:巧妙通过距离加权贪心压缩使 PatchCore 克服了特征库无限扩张与域混淆,为工业非参数内存匹配算法的持续演进提供了标准化方案。
  • 难度排序共识机制:利用 PatchCore、PaDiM、CFA 三种互补归纳偏置的交叉排名排除了单一模型的评价偏见,建立了严谨可复现的持续学习难度梯度。

局限与展望

  • 受限于既有静态公开集的工业表征深度:虽然基准汇集了 5 大开源数据集,但公开数据仍以受控拍摄环境为主,无法完全还原真实产线中光照衰减、震动失焦以及机械磨损带来的连续长期漂移。
  • 内存模型在超长序列中的推断延迟:持续 PaDiM 与 PatchCore 为各任务维持独立统计/特征库,尽管利用了压缩策略,在跨越数十甚至上百个任务时,推断阶段对所有已学库的遍历评分仍会导致端侧时延上升。
  • 未来方向:探索免存历史原图与特征的参数高效动态扩展架构(如适配器路由或低秩生成重放),并建立考虑实时检测帧率与显存开销的帕累托约束基准。

相关工作与启发

  • vs ADBench & CableInspect-AD: ADBench 涵盖广泛异常检测但聚焦静态非序列环境;CableInspect-AD 关注电力巡检单点静态挑战。InCLAD 填补了工业领域任务增量、持续演化的体系空白。
  • vs LeMO & UCAD: LeMO 与 UCAD 探索了在线流学习或 Prompt 机制,但仅在单数据集内部验证。InCLAD 提供了多数据集异构流与明确课程难度的系统评测工具链。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次系统规范了无监督/半监督工业视觉持续异常检测基准并提出了多专家共识课程协议。
  • 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 5 大数据集、17 种场景配置、9 类主流检测算法及 27 任务长序列,评估维度严密完整。
  • 写作质量: ⭐⭐⭐⭐⭐ 逻辑严谨清晰,问题定义切中制造业质检实际痛点,方法自洽详实。
  • 价值: ⭐⭐⭐⭐⭐ 为推动工业质检算法从离线一次性训练走向在线自适应部署建立了至关重要的评测基石。