One-for-More: Continual Diffusion Model for Anomaly Detection¶
会议: CVPR 2025
arXiv: 2502.19848
代码: https://github.com/FuNz-0/One-for-More
领域: 图像生成/异常检测
关键词: 持续学习, 扩散模型, 异常检测, 梯度投影, 奇异值分解
一句话总结¶
提出CDAD框架,通过梯度投影实现扩散模型的稳定持续学习,配合迭代SVD(iSVD)将内存消耗从157GB降至17GB,并设计异常掩码网络增强条件机制,在MVTec和VisA上17/18个设置中取得第一。
研究背景与动机¶
异常检测从"一对一"(为每类训练专门模型)发展到"一对多"(单模型检测所有类),但实际场景中类别增量不可预测,需要模型具备持续学习能力("one-for-more"范式)。
基于扩散模型的异常检测方法通过image-to-image生成正常图像,用输入输出差异作为异常得分。但在持续学习中面临两大问题:
- 灾难性遗忘:在新类上训练后,模型对旧类的重建能力严重退化。如ControlNet在10个基础类上表现优异,但随着新任务增加性能急剧下降
- 忠实性幻觉:扩散模型倾向于"过拟合"生成正常图像而非重建异常区域,导致在持续学习后对旧类样本的输出与实际不一致
同时,现有的持续异常检测方法(如DNE、UCAD)依赖不断扩大的记忆库存储旧知识,不可扩展;IUF的语义压缩损失在单步大量类增时仍会大幅遗忘。
方法详解¶
整体框架¶
CDAD基于预训练的VAE和U-Net构建持续扩散模型。测试时,输入图像编码到潜空间经扩散后,由异常掩码网络(AMN)作为条件引导去噪重建,重建结果与原图的特征距离作为异常得分。
关键设计¶
设计一:基于梯度投影的持续扩散模型(CDM)
- 功能:在学习新任务时保护旧任务的特征空间不被破坏
- 核心思路:对U-Net中每一层,计算新任务的梯度后,将其投影到旧任务输入特征空间的正交补空间中。设旧任务的k-rank列基为 \(\hat{U}_i\),则投影梯度为:\(\nabla_{W_i}^{orth} = \nabla_{W_i} - \hat{U}_i \hat{U}_i^T \nabla_{W_i}\)
- 设计动机:由于 \(X_{pre} \cdot \nabla_W^{orth} \approx 0\),更新后的模型对旧任务的输出近似不变,从根本上消除遗忘。不需要存储旧数据,也无额外推理开销
设计二:迭代奇异值分解(iSVD)
- 功能:将计算显著性表示的内存消耗从~157GB降至~17GB
- 核心思路:利用线性表示的传递性(Lemma 1),将大矩阵 \(M\) 分割为 \(\{M_1, M_2, ..., M_n\}\),先对 \(M_1\) 做SVD得到k-rank近似 \(\hat{U}_1\),然后迭代地将 \(\hat{U}_i\) 与 \(M_{i+1}\) 拼接后再做SVD,最终得到全局显著性表示 \(\hat{U}_n\)
- 设计动机:扩散模型的马尔可夫去噪过程产生大量中间特征,传统SVD需要将所有特征一次性加载到内存。iSVD基于线性传递性理论,证明迭代计算与全局计算等价,内存开销与单batch相当
设计三:异常掩码网络(Anomaly-Masked Network, AMN)
- 功能:增强扩散模型的条件机制,使其聚焦于异常区域的重建
- 核心思路:使用CNN编码局部特征,Transformer编码全局特征。引入邻域掩码自注意力(来自UniAD)和异常掩码损失,屏蔽异常区域的特征,只将正常区域特征作为U-Net的条件输入
- 设计动机:传统image-to-image扩散模型倾向于复制整个输入而非重建异常区域("过拟合"问题)。通过掩码机制,强制模型关注异常区域的正常化重建
损失函数¶
主要损失为标准的隐空间扩散损失:
其中 \(\tilde{x}\) 是经过随机patch扰动的原始图像作为条件输入,异常掩码损失额外监督AMN学会区分正常/异常特征。
实验关键数据¶
MVTec持续异常检测(10+1+1+1+1设置)¶
| 方法 | Image AUROC | Pixel AUROC |
|---|---|---|
| IUF | 83.2 | 90.1 |
| UniAD+EWC | 80.5 | 88.7 |
| DNE | 85.1 | 91.3 |
| CDAD (Ours) | 91.4 | 95.2 |
iSVD内存消耗对比¶
| 方法 | 10张图像 | 100张图像 | 1000张图像 |
|---|---|---|---|
| 传统SVD | 157 GB | 1570 GB | OOM |
| iSVD (Ours) | 17 GB | 17 GB | 17 GB |
消融实验(MVTec, 5+10设置)¶
| 组件 | Image AUROC | Pixel AUROC |
|---|---|---|
| Baseline (ControlNet) | 75.3 | 85.6 |
| + Gradient Projection | 87.2 | 92.1 |
| + iSVD (替代传统SVD) | 87.0 | 91.9 |
| + AMN | 91.4 | 95.2 |
关键发现¶
- CDAD在MVTec和VisA的17/18个持续学习设置中排名第一
- iSVD将内存消耗降低约9倍,性能损失仅~0.2 AUROC,验证了线性传递性理论的有效性
- 梯度投影单独带来+11.9 Image AUROC的提升,是解决遗忘问题的核心
- AMN额外贡献+4.2 Image AUROC,证明了增强条件机制对异常检测的重要性
亮点与洞察¶
- One-for-more范式的提出:清晰地将持续异常检测从"一对一""一对多"中区分出来,聚焦于更实际的增量场景
- iSVD的理论贡献:基于线性传递性定理提出的迭代SVD,不仅解决了扩散模型的内存瓶颈,对其他需要大规模SVD的场景也有启发
- 问题诊断精准:"忠实性幻觉"的发现和分析非常准确,AMN的设计直接针对这一问题
局限与展望¶
- 每个任务仍需训练多个epoch,持续学习效率可以进一步提升
- 梯度投影可能在任务数量非常大时导致可用梯度空间过小,限制新任务学习能力
- 仅验证了工业缺陷检测场景,未扩展到医学影像等其他异常检测领域
- AMN依赖随机patch扰动模拟异常,真实异常模式更加多样
相关工作与启发¶
- UniAD:多类异常检测的先驱,邻域掩码自注意力被AMN借鉴
- DiAD:首次将潜在扩散模型引入多类异常检测,但不支持持续学习
- GPM:梯度投影方法在分类任务中的持续学习应用,本文将其扩展到生成模型
- 启发:iSVD方法可以推广到其他需要在大模型上做持续学习的场景,如持续扩散生成、持续文本到图像等
评分¶
⭐⭐⭐⭐ — 问题定义清晰(one-for-more),方法设计系统(CDM+iSVD+AMN三位一体),理论与实验兼备。iSVD的理论贡献尤为突出。不足在于应用场景偏窄,且持续学习的任务数仍然有限。
相关论文¶
- [NeurIPS 2025] Scalable, Explainable and Provably Robust Anomaly Detection with One-Step Flow Matching
- [CVPR 2025] Unseen Visual Anomaly Generation
- [CVPR 2025] DualAnoDiff: Dual-Interrelated Diffusion Model for Few-Shot Anomaly Image Generation
- [CVPR 2025] OSDFace: One-Step Diffusion Model for Face Restoration
- [CVPR 2025] ConceptGuard: Continual Personalized Text-to-Image Generation with Forgetting and Confusion Mitigation