1. 项目概述
在工业质检领域,异常检测一直是个棘手的难题。想象一下,你负责一条电子产品生产线,每天要检测成千上万个零件,但手头只有几个正常样品的照片作为参考。更糟的是,缺陷类型千奇百怪,你甚至无法提前知道会出现什么样的异常。这就是典型的少样本工业异常检测场景。
传统解决方案往往陷入"越复杂越好"的误区:有的需要构建庞大的记忆库存储数百万个特征,有的依赖繁琐的提示调优过程,还有的必须进行耗时的模型微调。这些方法不仅部署成本高,在面对产线频繁切换产品品类时更是捉襟见肘。
埃因霍温理工大学的研究团队提出了一个令人耳目一新的解决方案——SubspaceAD。这个方法的核心思想出奇地简单:利用现成的视觉基础模型DINOv2提取图像特征,然后用经典的PCA(主成分分析)技术建立一个正常样本的"特征子空间",最后通过计算测试图像与这个子空间的距离来判断异常。整个过程无需训练、无需调参,新品类上线只需一张正常照片,模型体积不到1MB。
关键突破:当视觉基础模型的特征足够强大时,简单的统计方法就能超越复杂的深度学习流程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心原理与技术实现
2.1 特征提取:为什么选择DINOv2的中间层?
SubspaceAD使用冻结的DINOv2-G(ViT-G/14 with Registers)作为特征提取器。这里有几个关键设计选择:
-
patch划分:将输入图像划分为14×14的patch网格,每个patch对应一个1536维的特征向量。这种局部特征保留了空间信息,有利于精确定位缺陷位置。
-
中间层特征:不同于常规做法使用最后一层特征,SubspaceAD选择对第22-28层的patch token取平均。这是因为:
- 深层特征过度抽象,丢失了缺陷检测所需的空间细节
- 中间层同时包含语义信息和结构信息
- 多层平均可以稳定协方差估计,减少单层噪声
-
数据增强:对每张正常图像施加30次随机旋转(0°-345°),显著增加特征多样性。实验表明,这种简单的增强策略对提升子空间建模效果非常有效。
2.2 PCA子空间建模:异常检测的数学基础
PCA步骤是SubspaceAD的核心创新点。具体实现如下:
- 收集所有正常图像patch的特征,构成矩阵X_normal ∈ R^
