CVPR 2026 | SubspaceAD:无训练少样本异常检测,方法极其简洁,适合工业快速部署(附代码)
导读:
———————————————————————————————————————————
少样本工业异常检测是一个实际痛点:产线上往往只有几张正常样品图片,却需要检出各种未知缺陷。现有方法为此设计了复杂的记忆库、提示学习、多阶段训练等流程,部署门槛高,品类切换成本大。
埃因霍温理工大学的研究团队提出了一个反直觉的方案——SubspaceAD:用冻结的 DINOv2-G 提取 patch 特征,再用 PCA 拟合正常样本的低维子空间,推理时仅计算重建残差即可定位异常。整个方法无需训练、无需记忆库、无需提示调优,每个品类模型存储不到 1MB,新品类上线只需拍 1 张正常样品照片即可完成部署,适合多品种、频繁换线的制造场景。在 1-shot 设定下,SubspaceAD 在 MVTec-AD 上达到图像级 AUROC 98.0%、像素级 AUROC 97.6%,在 VisA 上达到图像级 93.3%、像素级 98.3%,在 1-shot 设定下超越此前的记忆库方法、重建方法和 VLM 方法。
论文详情:
———————————————————————————————————————————
- 论文标题:SubspaceAD: Training-Free Few-Shot Anomaly Detection via Subspace Modeling
- 作者:Camile Lendering, Erkut Akdag, Egor Bondarev
- 机构:AIMS Group, Department of Electrical Engineering, Eindhoven University of Technology
- 代码:https://github.com/CLendering/SubspaceAD
一、少样本异常检测为什么越来越复杂?
———————————————————————————————————————————
工业巡检中,异常样本稀缺是常态。现有少样本异常检测方法大致分为三类:
|
类别 |
代表方法 |
核心思路 |
局限 |
|---|---|---|---|
|
重建类 |
FastRecon、Transfusion |
学习只重建正常样本,异常区域重建失败 |
需要训练、超参调优,易过度泛化 |
|
记忆库类 |
PatchCore、AnomalyDINO |
存储正常 patch 特征,推理时近邻匹配 |
需存储数千至百万级 patch 描述子,推理开销大 |
|
VLM 类 |
WinCLIP、PromptAD、IIPAD |
利用 CLIP 等模型的文本提示检测异常 |
依赖提示调优或辅助数据,遵循"一类一提示"范式 |
这三类方法性能不断提升,但复杂度也在攀升:数据增强、多阶段训练、辅助损失、大规模记忆库层层叠加。与此同时,DINOv2 等视觉基础模型已经能提取高质量的稠密特征。SubspaceAD 的核心问题是:有了足够好的特征表示,还需要这些复杂流程吗?
答案是不需要。
二、DINOv2 + PCA:一个极简但有效的方案
———————————————————————————————————————————
SubspaceAD 的方法分为两个阶段:拟合(Fitting)和推理(Inference)。

2.1 特征提取
使用冻结的 DINOv2-G(ViT-G/14 with Registers)作为特征提取器。每张图像被切分为 14×14 的 patch,每个 patch 产生一个 1536 维的特征向量。
关键设计:不使用最后一层特征,而是对中间层(第 22–28 层)的 patch token 取平均。原因在于:
最深层倾向于将局部细节压缩为类别级抽象,丢失空间细节
中间层兼具语义信息和结构信息
多层平均能稳定协方差估计,减少单层噪声
对 k 张正常图像各施加 Na=30 次随机旋转增强(0°–345°),得到 k×31 张图像的全部 patch 特征集合 X_normal。
2.2 PCA 子空间建模
对 X_normal 计算均值 μ 和协方差矩阵 Σ,取前 r 个主成分(解释方差阈值 τ=0.99),得到正交基矩阵 C ∈ R^{D×r}。
核心假设:正常 patch 特征分布在一个低维线性子空间附近,异常区域的特征偏离这个子空间。这是一个经典的统计学原理——异常即为主成分子空间的离群点。
2.3 推理与异常定位
对测试图像的每个 patch 特征 x_p:
投影:x_proj = μ + CC^T(x_p − μ)
异常分数:S(x_p) = ‖x_p − x_proj‖²(重建残差)
图像级聚合:取异常分数最高的 top 1% patch 均值(TVaR统计量)
像素级可视化:双线性上采样 + 高斯平滑(σ=4)
整个推理过程:672×672 图像在单卡 H100 上约 300ms,其中 DINOv2 前向传播占 270ms,PCA 投影和打分仅需 30ms。模型存储仅需均值向量 μ 和基矩阵 C,每个类别不到 1MB。
2.4 工业部署优势
从工程落地角度看,SubspaceAD 相比现有方法有明显的部署优势:
|
对比维度 |
记忆库类(PatchCore等) |
VLM 类(PromptAD等) |
SubspaceAD |
|---|---|---|---|
|
新品类上线 |
需采集大量正常样本构建记忆库 |
需设计/训练品类专属提示 |
拍1张正常图,秒级PCA拟合即可上线 |
|
模型存储 |
需存储数千至百万级patch描述子 |
依赖完整VLM权重 |
每品类 <1MB(均值+基矩阵) |
|
训练成本 |
部分方法需微调 |
需提示调优或适配训练 |
零训练,无GPU训练开销 |
|
推理依赖 |
大规模近邻搜索 |
VLM前向+提示编码 |
DINOv2前向+矩阵乘法 |
|
超参调优 |
核心集大小、近邻数等 |
提示模板、学习率等 |
仅方差阈值τ,且对τ不敏感 |
对于产线频繁切换品类的场景(如电子元器件多品种混线生产),SubspaceAD 的"拍照即部署"特性意味着:换一个品类只需要采集 1–4 张正常样本、运行一次 PCA 拟合(耗时可忽略),无需重新训练模型或重建记忆库。
三、1-shot 即达 SOTA:两大基准大幅领先
———————————————————————————————————————————
3.1 主实验:1/2/4-shot 对比
在 MVTec-AD 和 VisA 两个标准基准上的完整对比(单位:%):
MVTec-AD(1-shot):
|
方法 |
类型 |
图像 AUROC |
图像 AUPR |
像素 AUROC |
PRO |
|---|---|---|---|---|---|
|
SPADE |
记忆库 |
81.0 |
90.6 |
91.2 |
83.9 |
|
PatchCore |
记忆库 |
83.4 |
92.2 |
92.0 |
79.7 |
|
WinCLIP |
VLM |
93.1 |
96.5 |
95.2 |
87.1 |
|
PromptAD |
VLM |
94.6 |
97.1 |
95.9 |
87.9 |
|
IIPAD |
VLM |
94.2 |
97.2 |
96.4 |
89.8 |
|
AnomalyDINO |
记忆库 |
96.6 |
98.2 |
96.8 |
92.7 |
| SubspaceAD | PCA | 98.0 | 99.0 | 97.6 | 93.7 |
VisA(1-shot):
|
方法 |
类型 |
图像 AUROC |
图像 AUPR |
像素 AUROC |
PRO |
|---|---|---|---|---|---|
|
SPADE |
记忆库 |
79.5 |
82.0 |
95.6 |
84.1 |
|
PatchCore |
记忆库 |
79.9 |
82.8 |
95.4 |
80.5 |
|
WinCLIP |
VLM |
83.8 |
85.1 |
96.4 |
85.1 |
|
PromptAD |
VLM |
86.9 |
88.4 |
96.7 |
85.1 |
|
IIPAD |
VLM |
85.4 |
87.5 |
96.9 |
87.3 |
|
AnomalyDINO |
记忆库 |
87.4 |
89.0 |
97.8 |
92.5 |
| SubspaceAD | PCA | 93.3 | 93.2 | 98.3 | 93.4 |
在 VisA 上,SubspaceAD 的图像级 AUROC 比此前最优的 AnomalyDINO 高出 +5.9% 。
随着 shot 数增加,SubspaceAD 保持领先。4-shot 时,MVTec-AD 图像级 AUROC 达 98.4%,VisA 达 94.5%。
3.2 Batched 0-shot:无参考图像的极端场景
SubspaceAD 还支持 batched 0-shot 设定——直接用整个测试集拟合 PCA(假设大部分 patch 为正常):
|
方法 |
MVTec-AD |
VisA |
|---|---|---|
|
WinCLIP |
91.8 |
78.1 |
|
AnomalyCLIP |
91.5 |
82.1 |
|
MuSc |
97.8 |
94.1 |
|
AnomalyDINO |
94.2 |
90.7 |
| SubspaceAD |
96.6 |
97.7 |
在 VisA 上以 97.7% 大幅领先 MuSc(94.1%)达+3.6%。

四、消融实验:哪些设计选择最关键?
———————————————————————————————————————————
4.1 特征聚合策略
|
策略 |
MVTec-AD I-AUROC |
MVTec-AD PRO |
VisA I-AUROC |
VisA PRO |
|---|---|---|---|---|
|
Mean-pool(中间7层,22-28) |
98.4 |
94.2 |
94.5 | 94.1 |
|
Mean-pool(最后7层,34-40) |
98.2 |
92.3 |
91.9 |
90.3 |
|
Concat(中间7层) |
98.6 |
94.2 |
93.8 |
93.1 |
|
仅最后一层 |
97.5 |
91.4 |
89.1 |
88.3 |
仅用最后一层特征在 VisA 上 I-AUROC 掉至 89.1%,中间层平均策略比最后层平均高出 +2.6%(VisA I-AUROC)。
4.2 骨干网络规模
DINOv2 从 ViT-S 到 ViT-G 的性能单调递增,验证了更强的基础特征直接增强 PCA 子空间建模效果。
4.3 PCA 解释方差阈值 τ
τ 在 0.95–0.99 范围内性能稳定。但 τ=1.00 时性能崩溃(MVTec-AD I-AUROC 从 98.0% 骤降至 45.3%),因为保留全部方差等于不做降维,丧失了"异常在残差子空间中"这一核心机制。
4.4 图像分辨率
672px 在两个数据集上均为最优分辨率。VisA 对分辨率更敏感(高分辨率收益更明显),MVTec-AD 从 448px 起即相对稳定。

五、总结与工业部署展望
———————————————————————————————————————————
SubspaceAD 提出了一个极其简洁的少样本异常检测方案:冻结 DINOv2-G 提取中间层 patch 特征 → PCA 拟合正常子空间 → 重建残差作为异常分数。无需训练、无需记忆库、无需提示调优,模型存储不到 1MB,单张图像推理约 300ms。
方法的核心洞察是:当视觉基础模型的特征质量足够好时,经典的统计方法就能胜过复杂的深度学习流程。这与近年来异常检测领域不断"加法"的趋势形成对比——越来越多的模块、损失函数和训练策略被堆叠上去,但 SubspaceAD 证明了"做减法"同样可以达到 SOTA。
从工业部署角度看,SubspaceAD 的价值不仅在于精度领先,更在于它将异常检测系统的部署复杂度降到了极低水平:无需 GPU 训练、无需大规模数据采集、无需专业算法工程师调参,产线工程师拍几张正常样品照片即可完成品类上线。对于多品种、小批量、频繁换线的制造场景,这种"即拍即用"的特性具有直接的工程价值。
值得注意的局限:方法强依赖 DINOv2-G 的特征质量(换用 ViT-S 性能明显下降),DINOv2-G 本身是一个较大的模型(约 1.1B 参数),对边缘设备的推理能力有一定要求。此外,PCA 假设正常特征分布在线性子空间附近,对某些非线性分布模式可能不够灵活。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)