VisualAD: Language-Free Zero-Shot Anomaly Detection via Vision Transformer

**论文地址:**https://arxiv.org/abs/2603.07952
**项目页面:**https://github.com/7HHHHH/VisualAD
学术交流:922230617
目录
[1. 引言](#1. 引言)
[3. 方法](#3. 方法)
[3.1 问题设定](#3.1 问题设定)
[3.2 空间感知交叉注意力(SCA)](#3.2 空间感知交叉注意力(SCA))
[3.3 自对齐函数与异常评分](#3.3 自对齐函数与异常评分)
[3.4 训练目标](#3.4 训练目标)
[4. 实验](#4. 实验)
[4.1 实验设置](#4.1 实验设置)
[4.2 与最先进方法的性能比较](#4.2 与最先进方法的性能比较)
[4.3 消融研究](#4.3 消融研究)
[4.4 可视化](#4.4 可视化)
1. 引言
零样本异常检测(zero-shot anomaly detection,ZSAD)旨在不使用任何类别内图像训练的情况下检测未见类别的异常,从而将异常检测与逐类别数据收集负担解耦。
在此背景下,大规模预训练模型为 ZSAD 提供了可行路径。
- 预训练视觉-语言模型(如 CLIP)通过在共享embedding空间中对齐视觉与文本语义,展现出强迁移性。
- 利用此特性,一系列工作将表示正常与异常的提示输入文本编码器,并将所得文本embedding与图像特征对比以实现开集异常检测。
该范式下的文本提示通常分为两类:
- 手工设计类(如 WinCLIP)依赖固定模板,将类别上下文词与状态描述词结合以表达正常与异常状态;虽无需训练且易用,但对措辞敏感且可能难以覆盖多样异常模式。
- 可学习类(如 AnomalyCLIP)将上下文词参数化为可训练向量,在小规模辅助数据集上优化,得到可跨类别泛化的对象无关正常/异常表示。
尽管方式不同,这些方法暗示一个简单原则:异常可由两组对应正常与异常的参考特征来描述。
然而,该原则引出一个问题:若最终决策仅由正常和异常两组潜在向量决定,语言模态是否真的不可或缺?
- 从纯视觉角度看,异常表现为纹理、形状或颜色上的结构或统计偏差,这些都可在视觉域内捕获。
- 为验证此假设,本文对 AnomalyCLIP 进行了小规模改动:移除文本编码器,直接优化两个表示正常与异常的可学习向量。
- 所得检测性能几乎未降,而可训练参数数量减少超过 99%。

如上图所示,
- 训练轮次间的评估曲线在泛化行为上呈现明显差异:本文的纯视觉变体稳定提升并保持平滑上升趋势,而原始 AnomalyCLIP 在各轮次间波动显著。
- 该发现表明,在基于 CLIP 的 ZSAD 流程中,文本提示可能主要作为 塑造一对判别性视觉原型的间接途径,而非提供必要的语义基础。

受此观察启发,本文提出 VisualAD------一个基于冻结 Vision Transformer 的纯视觉零样本异常检测框架。
- VisualAD 不依赖文本编码器,而是直接在 ViT token 序列中引入两个可学习 token(异常 token 和正常 token)。
- 通过多层自注意力,这些 token 与 patch token 交互,逐渐获取正常与异常的高层概念,同时引导 patch 突出异常相关线索。
- 为使高层语义 token 与跨层细粒度图像特征对齐,本文采用 空间感知交叉注意力(Spatial-Aware Cross-Attention,SCA)模块 为 token 提供显式空间线索和局部细节,并配合 **轻量级自对齐函数(Self-Alignment Function,SAF,实现为小型 MLP)**在 token-patch 对齐前重新校准 patch 特征。
- 与直接对齐到 patch 级特征的方法不同,SCA 利用细粒度视觉证据动态更新 token,从而提升 ZSAD 性能。
- 本文通过整合多个更新后 token 与跨层重新校准后 patch 特征之间的对齐结果来合成异常图,并从异常得分最高的前 1% 像素中获取图像级异常判定。
贡献总结如下:
-
重新审视文本在零样本异常检测中的必要性,表明判别性异常特征可仅从视觉线索中学习。
-
提出 VisualAD,一个纯 ViT 的零样本异常检测框架,在冻结主干中注入两个可学习 token,使其通过多层自注意力与 patch token 交互,编码正常与异常。
-
提出 SCA 和 SAF 模块,其中 SCA 向 token 注入显式空间证据,SAF 重新校准 patch 特征,实现稳定的多层对齐和改进的定位。
-
在工业和医学基准上的大量实验证明了其对未见类别和数据集的强零样本泛化能力。
3. 方法
3.1 问题设定
本文遵循零样本异常检测协议。模型在可见类别 C_s(来自工业数据集)上以监督方式训练,并直接评估于未见类别 C_u(来自其他工业或医学数据集)。根据定义 Cu∩Cs=∅;辅助训练类别与测试类别来自不同数据集,存在显著领域偏移。该设定评估跨域泛化能力,无需任何类别特定的微调。

如上图所示,本文提出 VisualAD,一个基于冻结 Vision Transformer 的零样本异常检测框架。
给定如 ViT-L/14@336px 的主干网络,本文插入两个可学习全局 token,即异常 token t_a 和正常 token t_n,直接在视觉特征空间中编码异常与正常。
输入序列为:

其中,t_c 为类别 token,{p_i}_{i=1}^N 为图像 patch token,所有 token 均为 d 维。
为捕获多样空间与语义线索,本文从一组中间层 L={l_1, ..., l_K} 中提取特征(默认对 ViT-L/14 使用 {6,12,18,24})。
- 对每个选定层,引入空间感知交叉注意力(SCA)模块,从 patch 特征中聚合局部空间证据以增强 token 表示。
- 同时,轻量级自对齐函数(SAF)在该层重新校准 patch 特征。
增强后的 token 与 SAF 重新校准的 patch 共同生成层间异常图,并在各层间融合。
像素级和图像级异常得分从融合图中获得。
训练与推理共享相同计算路径,无文本编码器或跨模态对齐。
3.2 空间感知交叉注意力(SCA)
全局 token 编码高层语义但缺乏显式空间基础。为在保持 ViT 流程完整的同时注入局部证据,本文在每个选定层 ℓ 应用单个 SCA 模块。
给定 patch 特征 P_ℓ ∈ R^{B×N×d}(B 为批量大小,N 为 patch 数量,d 为特征维度),首先添加层特定的可学习位置编码 E_pos^(ℓ):

使模块能够区分空间不同区域。
为高效聚合空间线索,SCA 采用 m 个可学习 anchor query Q_anchor ∈ R^{m×d},其中 m≪N。为清晰起见,省略batch维度,记 P_ℓ^pos ∈ R^{N×d}。交叉注意力权重与 anchor 聚合特征计算如下:

其中,A_ℓ ∈ R^{m×N} 为空间注意力分布,U_ℓ ∈ R^{m×d} 为 anchor 聚合特征,其第 i 行记为 a_i。
随后,SCA 通过 token 引导的门控机制将 anchor 特征适配到每个 token。计算门控向量:

其中,t∈{t_a, t_n} 为增强前的全局 token,W_g 在各 anchor 间共享。增强后 token 为:

α 为可学习残差缩放因子,g_i(t) 为 g(t) 的第 i 项。
该公式在保留全局 token 语义角色的同时,以 anchor 特定方式选择性注入空间信息。
本文为每个 ℓ∈L 独立实例化 SCA,产生 ~t_a^(ℓ) 和 ~t_n^(ℓ),随后与重新校准的 patch 特征匹配以形成层间异常图。
由于注意力和门控为每张图像重新计算,SCA 动态调整全局 token 的异常敏感性以适应每个测试样本的局部结构。
3.3 自对齐函数与异常评分
除 SCA 外,本文使用可学习的自对齐函数(Self-Alignment Function,SAF)精炼 patch 表示。
对每个选定层 ℓ,SAF 实现为单隐层 MLP,隐层维度与输入尺寸相同:

其中,F_ℓ 表示层 ℓ 的 SAF。该非线性重新校准使 patch 特征与不断演化的正常和异常 token 对齐。
随后通过自对齐的余弦对比计算 patch 级异常得分。使用 ℓ2 归一化特征

层 ℓ 第 i 个 patch 的得分为:

得分重塑为空间图 H_ℓ ∈ R^{H×W} 并上采样至输入尺寸。多层融合得到最终异常图:

图像级异常得分 S 通过取前 k 个最异常像素的平均值计算,其中 k=⌊0.01HW⌋ 表示所有像素的 1% 向下取整:

H(i) 为 H 中第 i 大值。至此完成 VisualAD 中异常图与图像级得分的构建。
3.4 训练目标
本文在统一目标下联合优化图像级分类、像素级分割和 token 对比分离,同时保持 ViT 主干冻结;仅更新异常/正常 token t_a,t_n、SCA 模块和每层变换 {F_ℓ}。对于图像级监督,对得分 S 应用二元交叉熵:

对于像素级监督,在每个选定层图上结合 Focal Loss 和 Dice Loss,其中,^M^(ℓ)=σ(H_ℓ) 为预测掩码,M 为二值真实掩码:

为显式分离异常与正常 token,在最大层索引 L(即 L 中最大元素)处施加余弦间隔惩罚:

鼓励其相似度低于 −0.5,对应角距离大于 120°,总损失为:

训练与推理严格共享同一流程,包括层集合 L、SCA、变换 F_ℓ、跨层融合和 top-k 聚合,无文本分支或跨模态对齐。
4. 实验
4.1 实验设置
数据集:为评估 ZSAD 性能,在 13 个真实数据集上实验,涵盖工业和医学领域。
- 工业领域采用 MVTec-AD、VisA、BTAD、KSDD2、DAGM 和 DTD-Synthetic;
- 医学领域采用 OCT17、BrainMRI、BrainAD、HIS、CVC-ClinicDB、Endo 和 Kvasir,覆盖多样成像模态和任务。OCT17 包含视网膜 OCT 用于疾病分类,BrainMRI 和 BrainAD 提供脑 MRI 用于肿瘤或病变分类,HIS 为组织病理图像用于异常组织分析,CVC-ClinicDB、Endo 和 Kvasir 为结肠镜数据集,带像素级息肉分割标注。
遵循先前工作,在一个工业数据集上训练,直接在其他工业和医学数据集上推理,无需进一步微调。
- 因 VisA 包含与其他类别不相交的对象类别,将其用作辅助训练集。
- 评估 VisA 自身时,在 MVTec-AD 上微调。
评估指标:
- 分类报告图像级 AUROC、最大 F1(F1-max)和 AP。
- 分割评估像素级 AUROC、F1-max、AP 和 Per-Region Overlap(PRO)以评估定位能力。
实现细节:
- 采用公开主干:CLIP(ViT-L/14@336px)和 DINOv2(ViT-L/14)。
- 输入图像缩放至 518×518。
- 从 24 层视觉编码器中提取层 {6,12,18,24} 的 patch token。
- SCA 中 anchor query 数默认 m=4。
- VisualAD 使用 Adam 优化器,初始学习率 1×10−3,批量大小 8。
4.2 与最先进方法的性能比较
本文比较 VisualAD 与五种最先进方法:WinCLIP、APRIL-GAN、CLIP-AD、AnomalyCLIP 和 AdaCLIP。由于本文方法可适配多种主干,报告了 CLIP 的 ViT-L/14@336px 和 DINOv2(ViT-L/14)的结果,以展示其在不同视觉架构上的灵活性。

表 1 报告了工业和医学基准上的定量 ZSAD 结果。
- 与现有方法相比,VisualAD 在几乎所有数据集的图像和像素级别均达到最先进性能。
- 尤其在工业数据集上,使用 CLIP ViT-L/14@336px 的 VisualAD 在所有分类指标上取得最佳结果。
- 进一步观察到基于 CLIP 和基于 DINOv2 的 VisualAD 实例呈现互补优势,前者略偏向图像级分类,后者在像素级分割上表现更强。

图 3 可视化了来自代表性工业和医学数据集的异常图,与其他方法相比,VisualAD 提供了更清晰、更精确的异常定位。
4.3 消融研究

模块消融实验结果如表 2 所示,移除任意单个组件都会导致性能持续下降,表明每个模块都对框架有积极贡献。
- 去除 SCA 会削弱空间对齐和细粒度证据聚合能力,而移除 SAF 则会破坏高层语义的非线性重校准;同时移除两者时性能下降最为显著,凸显了二者之间的互补作用。
- 在损失函数消融实验中,排除 Focal、Dice 或 Ctr 目标中的任一一项均会导致明显性能下降,说明混合监督机制有效平衡了分类关注、区域一致性与特征可分离性。
- 总体而言,完整模型在图像级和像素级上均取得了最优结果,验证了所有组件的有效性及其协同效应。

不同预训练视觉主干的影响:图 4 比较了从 small 到 large 规模的 CLIP 和 DINO 变体。更大主干和更高输入分辨率通常带来像素级和样本级指标的持续提升。在 CLIP 系列中 ViT-L/14@336px 取得最佳样本级结果,而在 DINO 系列中 ViT-g/14 取得最高像素级精度。

anchor 数量的影响:如表 3 所示,
- 像素级上,anchor 从 1 增至 4 时 AUROC、F1-max 和 AP 稳步提升,m=4 取得最强整体结果。
- 超过 4(如 8-32)则引入冗余,略微降低像素级精度,表明过多 anchor 会稀释空间聚焦而非增强。
- 图像级指标趋势较平缓,m=16 虽提供最高 AUROC、F1F1-max 和 AP,但相对 m=4 的提升在 1-2 个百分点内。
- 因此默认采用 m=4,在像素级精度与图像级鲁棒性间取得平衡。

不同层组合的影响:
- 如表 4 所示,单层中,中层({18})相比浅层或深层产生更强表示,在局部细节与全局语义间达到最佳平衡。
- 多层组合性能持续提升:{6,12,18} 已在像素和样本级指标上带来明显增益,扩展至 {6,12,18,24} 进一步提升稳定性和整体精度。
- 表明多层特征集成有效捕获跨尺度互补信息,带来更鲁棒的异常定位与分类。

SCA 中位置建模的影响:
- 如表 5 所示,比较了六种变体:无位置编码、可学习 1D 绝对 embedding、固定 1D 正弦编码、可学习 2D 绝对 embedding、固定 2D 正弦编码和可学习 2D 相对位置偏置。
- 简单的可学习 1D 绝对 embedding 在所有指标上取得最佳整体权衡,而更复杂的 2D 或相对公式仅带来微小增益甚至损害稳定性。因此默认采用可学习 1D 绝对变体。
4.4 可视化

层间 anchor 注意力:图 6 展示了地毯(carpet)上的层间 anchor 注意力。
- 同一层内各 anchor 一致关注几乎相同的空间区域,表明稳定连贯的局部证据。
- 跨层看,关注点以结构化方式转移:中层(如层 12)强调细粒度缺陷边界和细微纹理扰动,深层(如层 24)则突出更广泛的正常区域。
- 该递进反映了冻结 ViT 编码器的层次特性,中层 anchor 捕获细节不规则性,高层 anchor 编码整体正常模式,产生互补线索增强异常定位。

特征表示演变:图 5 绘制了三种配置下的 PCA 分布。
- 原始 CLIP 特征中正常与异常样本大量重叠,PC1 仅占 8.8%,表明可分离性差。
- 引入可学习正常和异常 token 后 PC1 略升至 9.0%,指示判别方向初步出现。
- 应用 SAF 后 PC1 升至 89.1%,方差集中于单一主轴,清晰分离两个类别。
- 异常聚类也更紧凑并远离正常聚类。表明 token 提供初始判别结构,而 SAF 增强类内紧凑性并扩大类间间隔。