本文提出了 VisualAD,一种纯视觉的零样本异常检测(Zero-shot Anomaly Detection, ZSAD)框架。该方法通过在冻结的 Vision Transformer (ViT) 中引入可学习的正/负原型 Token,摆脱了对文本编码器的依赖,在 13 个工业和医疗基准数据集上达到了 SOTA 性能。
TL;DR
在零样本异常检测(ZSAD)领域,主流做法一直是通过 CLIP 的文本分支来定义何为“正常”和“异常”。然而,本文提出的 VisualAD 彻底颠覆了这一直觉:它通过在冻结的 ViT 中插入两个简单的可学习 Token,并辅以空间感知模块,在完全不使用文本的情况下,在 13 个基准测试中刷写了 SOTA。
动机:文本分支真的是必须的吗?
现有的方法(如 AnomalyCLIP, WinCLIP)依赖于构建复杂的文本 Prompt。作者进行了一个极具启发性的实验:如果把 AnomalyCLIP 的文本编码器直接扔掉,换成两个直接在视觉空间学习的向量,会发生什么?
结果令人惊讶:性能几乎没有下降,参数量减少了 99%,而且训练曲线变得异常平滑。 这表明,文本提示在 ZSAD 中更像是一个“中转站”,最终起作用的依然是视觉特征空间中的原型。

核心架构:VisualAD 的纯视觉方案
VisualAD 的设计哲学非常简洁:将异常检测任务转化为在冻结的视觉特征空间中进行“原型对齐”。
1. 正常与异常 Token 的注入
在 ViT 的输入序列中,除了原有的 Patch Tokens,额外插入了两个 learnable tokens:ta (Anomaly Token) 和 tn (Normal Token)。这两个 Token 随模型一起经过多层 Self-attention,逐渐习得“什么是缺陷,什么是正常”的抽象概念。
2. 空间感知交叉注意力 (SCA)
全局 Token 往往缺乏局部位置信息,这不利于精确定位。SCA 模块通过设置 m 个锚点查询(Anchor Queries),从图像 Patch 中动态提取局部证据并注入到全局 Token 中。

3. 自对齐函数 (SAF) 与多层融合
不同层的特征具有不同的语意。VisualAD 在多个中间层应用 SAF(轻量级 MLP)对 Patch 特征进行重校准,使其更好地与当前层的 Token 进行余弦相似度对比,最终通过多层得分图的融合生成高精度的异常 Map。
实验结果:横扫工业与医疗领域
VisualAD 在跨域场景下表现出了极强的鲁棒性。即使只在 VisA(工业数据)上训练,它也能直接在 OCT 视网膜扫描、脑部 MRI 等医疗影像上精准识别病变。
- 精度突破:在多个数据集中,分类 AUROC 高于 95%,分割精度显著优于现有的 CLIP 改进版。
- 骨干网络解耦:不仅能用 CLIP 的 Image Encoder,换成 DINOv2 同样强悍。

深度洞察:为什么它有效?
通过 PCA 分析(见下图),我们可以清晰地看到:
- 原始 CLIP 特征(Vanilla)中,正常与异常样本高度混叠。
- 加入 Learnable Tokens 后,分类边界开始萌芽。
- 应用 SAF 之后,主成分(PC1)占比飙升至 89.1%,正常和异常类簇被彻底推开,实现了极高的类别纯度。

总结
VisualAD 是一篇“返璞归真”的高质量工作。它告诉我们,在处理高度结构化的异常检测任务时,过度的跨模态引入可能会掩盖视觉特征本身的潜力。对于工业质检、医学辅助诊断等实际落地场景,这种轻量、稳定且无需文本输入的纯视觉架构具有巨大的应用价值。
