跳转至

Foundation Visual Encoders Are Secretly Few-Shot Anomaly Detectors

会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=YRrlJ8oVEH
代码: https://github.com/ymxlzgy/FoundAD
领域: 异常检测 / 工业质检 / 表示学习
关键词: 少样本异常检测, 基础视觉编码器, DINOv3, 自然图像流形, 流形投影

一句话总结

作者发现冻结的基础视觉编码器其实"悄悄"已经能区分异常——图像中异常区域的面积与其特征到自然图像流形的距离成正相关,于是只在编码器之上训练一个轻量非线性投影算子(FOUNDAD),把异常特征拉回正常流形、再用投影前后差异打分,就在少样本、多类别工业异常检测上达到 SOTA。

研究背景与动机

  • 领域现状:少样本异常检测(few-shot anomaly detection, FSAD)只用极少量正常样本训练,对工业安全质检很有吸引力——因为生产中收集缺陷样本既昂贵又不现实,缺陷类型在量产前往往未知。近期主流方法(WinCLIP、PromptAD、AnomalyCLIP、IIPAD 等)大多依赖 CLIP 这类视觉-语言模型,靠精心设计的文本提示来辅助判别正常/异常。
  • 现有痛点:样本稀缺让"正常 vs 异常"的细微差异难以学到,多类别(category-agnostic)条件下更难;而引入文本提示又带来额外设计复杂度,且把异常检测能力绑定到了"语言对齐"上。
  • 核心矛盾:基础视觉编码器是在海量自然图像上预训练的,其特征空间天然学到了正常图像的总体分布——但社区一直把它当作下游任务的通用特征提取器,没人系统利用它对"偏离正常分布"的天然敏感性。
  • 关键观察:作者发现一个有趣性质——图像中异常区域的像素面积越大,其嵌入特征到正常特征的 L2 距离越大(Figure 2 在 SigLIP、DINOv2 上都成立)。这说明基础编码器"秘密地"已经在检测缺陷区域。
  • 本文目标:不微调编码器、不依赖文本,只用纯视觉特征 + 极少正常样本,做出又轻又强的多类别少样本异常检测器。
  • 核心 idea【流形投影】 把"异常 = 偏离自然图像流形"形式化——冻结基础编码器以复用其语义/几何先验,仅训练一个轻量非线性投影算子 \(\phi\),把异常特征投回流形上对应的正常特征,再用投影前后的特征差异来定位与打分。

方法详解

整体框架

FOUNDAD 把异常检测重构为"特征到自然图像流形的投影残差"。训练时给一张正常图 \(I_r\),用 CutPaste 风格的合成模块按概率生成结构异常得到 \(I_s\);两个共享参数的冻结编码器分别编码异常图(Anomaly-Aware Encoder, AE)和原图(Reference Encoder, RE);唯一可训练的流形投影器 \(\phi\) 把异常特征 \(f_s\) 映射回正常参考特征 \(f_r\),损失只是两者的 L2 距离。推理时对任意图 \(I_a\),比较其特征 \(f_a\) 与投影特征 \(f_a^*=\phi(f_a)\) 的逐 patch 差异作为异常分数,再 Top-K 聚合成图像级分数、上采样成像素级热图。

flowchart LR
    subgraph 训练
        Ir[正常图 I_r] --> Syn[异常合成<br/>CutPaste+前景约束]
        Syn --> Is[合成异常图 I_s]
        Is --> AE[冻结编码器 AE θ]
        Ir --> RE[冻结编码器 RE θ]
        AE --> fs[异常特征 f_s]
        RE --> fr[参考特征 f_r]
        fs --> Proj[流形投影器 φ<br/>6层ViT-自注意力]
        Proj --> fstar[投影特征 f*_r]
        fstar -.L2 损失.-> fr
    end
    subgraph 推理
        Ia[测试图 I_a] --> AE2[冻结编码器 θ]
        AE2 --> fa[f_a]
        fa --> Proj2[投影器 φ]
        Proj2 --> fastar[f*_a]
        fa --> Score[逐patch L2 残差]
        fastar --> Score
        Score --> TopK[Top-K 聚合 + 上采样] --> Heat[异常热图]
    end

关键设计

1. 异常面积与特征距离的正相关:把异常检测变成"测离流形多远"。 这是整篇工作的立论基石。作者在两种不同范式的基础编码器(SigLIP、DINOv2)上做了对照实验:在真实正常图上贴入逐渐增大的合成异常,编码后量测嵌入到原始正常嵌入的 L2 距离,发现距离随异常像素量单调上升。直观解释是:基础模型在海量自然图像上学到一张"自然图像流形",正常图被嵌入到流形上,带异常的图会被推离流形,且偏离程度与异常占比挂钩。这个性质把"判断是否异常"等价转化为"测量特征偏离自然图像流形的程度",从而不需要任何缺陷标签或文本先验。

2. 双共享冻结编码器 + CutPaste 合成:用最简单的扰动驱动训练,又保证正常区域不被误判。 框架用两个参数完全相同的冻结编码器 \(\theta\)(AE 处理合成异常图、RE 处理原图),共享参数确保两路特征落在同一潜空间、可逐 patch 对齐——这样合成图里的正常 patch 与原图对应 patch 仍然贴得很近,只有被篡改的异常区域才显出差异。异常合成沿用 CutPaste,但作者强调一个关键观察:合成异常在像素层面和真实异常差别明显,可一旦进入潜空间这种差别就被抹平了,所以"简单合成足以把异常特征推离流形",无需复杂逼真的缺陷生成。为提升合成真实性,用自适应阈值二值化把异常约束在前景区域。训练时按阈值 \(\sigma\) 用伯努利门控决定是否合成:\(z\sim\text{Bernoulli}(1-\sigma)\)\(I_s=(1-z)\,I_r+z\,\text{Syn}(I_r)\),让网络同时见到"已合成异常"和"保持正常"两种情形。

3. 轻量非线性流形投影器:只训这一个模块,把异常特征拉回流形。 投影器 \(\phi\) 是唯一可训练部件,实现为一个深度为 6 的自注意力 ViT,每个 block 用残差连接 \(x_{out}=\text{Attn}(x_{in})+x_{in}\) 稳定训练并保留输入信息。因为特征是 token 化的,自注意力天然支持 patch 间交互,比 MLP 更擅长捕捉细粒度异常(消融里 ViT 在同深度下全面优于 MLP)。训练目标极其简单——只最小化投影特征与参考正常特征的逐 patch L2 距离:

\[\mathcal{L}=D(f_r^*,f_r)=\frac{1}{N}\sum_{i=1}^{N}\left(f_{r,i}^*-f_{r,i}\right)^2,\quad f_r^*=\phi(f_s)\]

整个方法完全在潜空间操作,无需像重建式方法那样回到像素空间,大幅降低计算量。投影器仅 11.8M 参数,配 DINOv3 总参数 97.8M。

4. Top-K 残差打分与多级输出:从 patch 残差聚合出图像级判别与像素级定位。 推理时不依赖任何参考库,直接用投影前后的自我对比。逐 patch 异常分数为投影残差 \(S_{patch}=D(f_a^*,f_a)=\frac{1}{N}\sum_i (f_{a,i}^*-f_{a,i})^2\);图像级分数取最高的 K 个 patch 分数求平均 \(S_{image}=\frac{1}{K}\sum_{i=1}^{K}S_{patch,i}\)(只看最可疑的区域,避免被大量正常 patch 稀释,MVTec-AD 取 K=10、VisA 取 K=6);像素级热图则把 patch 分数上采样回原分辨率。这套"残差即异常"的打分让整条管线快、轻、易训。

实验关键数据

主实验表格(多类别-单模型少样本,image-level/pixel-level AUROC、AUPR、PRO,%)

1-shot 下 FOUNDAD 在两大工业数据集上全面领先(✓ 表示无需文本):

Shot 方法 w/o Texts MVTec I-AUROC MVTec PRO VisA I-AUROC VisA PRO
1 PatchCore 63.7 72.7 58.9 64.3
1 WinCLIP 92.8 83.5 83.1 80.9
1 AnomalySD 93.6 89.2 86.1 93.9
1 IIPAD 94.2 89.8 85.4 87.3
1 FOUNDAD 96.1 92.8 92.6 98.0
2 FOUNDAD 96.8 93.3 93.5 98.0

VisA 上的提升尤其显著(I-AUROC 比次优 +6.2、PRO 比次优 +4.1),显示在结构更复杂、多实例的场景下流形投影更稳健。BTAD/DTD 上也持续 SOTA(在 BTAD 上比最接近的 AdaptCLIP 高约 3.0%)。

消融实验表格

编码器对比(1-shot, MVTec-AD) —— DINOv3 最优,纯视觉监督的编码器整体强于含文本对齐的 CLIP:

编码器 纯视觉(无文本) I-AUROC P-AUROC PRO
DINOv3 96.1 96.8 92.8
DINOv2 95.2 96.4 92.5
DINOSigLIP 92.5 93.1 87.2
DINO 88.3 96.2 87.8
SigLIP 87.8 86.0 71.1
CLIP 79.0 90.9 70.9
WideResNet 73.1 89.4 75.6

投影器结构(1-shot, MVTec-AD) —— ViT 同深度全面胜过 MLP,6 层最优:

类型 深度 I-AUROC PRO
ViT 4 95.5 92.6
ViT 6 96.1 92.8
ViT 8 95.8 92.5
MLP 6 92.1 90.7
MLP 8 87.8 82.1

此外:DINOv3 第 10 层特征最佳(中-后层兼顾语义与空间精度);Top-K 中 K=10(MVTec)/K=6(VisA) 最优,过大反而下降。

关键发现

  • 效率优势明显:投影器仅 11.8M 可训练参数,总参数 97.8M,单张 RTX 3090 上 128.7ms/图(约 7.8 FPS),峰值显存 1386 MiB;在性能-参数权衡上比 LogSAD 少约 13.3×、比 IIPAD 少约 10.3× 参数仍取得最佳精度。
  • 文本并非必需:纯视觉特征(DINO 系列)在无任何文本提示下即可超过依赖 CLIP+文本的强基线,CLIP 因缺乏像素级信息在定位(PRO)上明显落后。
  • 简单合成够用:合成异常与真实异常在潜空间差异被抹平,证明无需复杂逼真的缺陷生成。

亮点与洞察

  • "重新解读已有能力"而非堆新模块:核心贡献是揭示"异常面积 ↔ 流形距离"这一基础编码器的隐藏性质,再用最小代价(一个投影器 + L2 损失)兑现它,是典型的"观察驱动设计",优雅且可解释。
  • 去文本化:在 CLIP/文本提示几乎成为 FSAD 标配的当下,本文反向论证纯视觉特征已足够,给该方向减负并拓宽了视角。
  • 全潜空间操作:相比重建式方法回到像素空间,纯潜空间投影大幅降低计算量,契合工业部署对轻量、实时的需求。
  • 对新基础模型即插即用:换上更强的 DINOv3 直接涨点,说明方法能随基础模型进步自然受益。

局限与展望

  • 依赖基础编码器质量:方法上限被冻结编码器决定(WideResNet、CLIP 表现弱),对没有强自监督视觉基座的场景适配性存疑。
  • 合成范式单一:仅用 CutPaste 风格的结构异常合成,对逻辑异常、纹理细微缺陷等非"剪切-粘贴"型异常的覆盖未充分验证。
  • 数据集集中工业域:评测集中在 MVTec-AD/VisA/BTAD/DTD 等工业质检,对医疗、视频等其他异常域的迁移性尚待考察。
  • Top-K 与层选择需调:K 值、DINOv3 取层对数据集敏感,跨域部署需重新搜参。

相关工作与启发

  • 基础视觉编码器:DINO/DINOv2/DINOv3、SigLIP、CLIP 等提供可迁移特征;本文把它们当作"自然图像流形"的提供者而非通用 backbone。
  • 预测式表示学习:思想上受 JEPA、SimSiam 启发——纯潜空间预测配对输入的表示依赖、不做像素重建;但本文反其道冻结编码器只训投影器,享受现成流形。
  • 少样本/多类别异常检测:PatchCore、SPADE、FastRecon(无文本)与 WinCLIP、PromptAD、AnomalyCLIP、IIPAD、AdaptCLIP(依赖文本)是主要对比;本文以无文本路线超越含文本 SOTA。
  • 启发:当面对"标注稀缺"的判别任务时,先系统检查"现成基础模型是否已隐含所需信号",再以最小投影/适配兑现,可能比从零设计复杂模块更高效。

评分

  • 新颖性: ⭐⭐⭐⭐ 「异常面积↔流形距离」这一观察新颖且有解释力,把 FSAD 重构成流形投影、并实证纯视觉特征可去文本化,视角清晰。
  • 实验充分度: ⭐⭐⭐⭐ 覆盖 4 个数据集、多种 shot、7 种编码器、投影器结构/层选/Top-K 等消融充分,并报告参数/时延/显存。
  • 写作质量: ⭐⭐⭐⭐ 故事线(观察→方法→验证)连贯,图示与公式清晰,立论扎实。
  • 价值: ⭐⭐⭐⭐ 轻量、易训、即插即用且 SOTA,对工业质检落地价值高,也为"复用基础模型隐藏能力"提供范式。