尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

(论文速读)SubspaceAD:用 PCA 子空间做 Training-Free Few-Shot 异常检测

(论文速读)SubspaceAD:用 PCA 子空间做 Training-Free Few-Shot 异常检测 论文题目SubspaceAD: Training-Free Few-Shot Anomaly Detection via Subspace ModelingSubspaceAD基于子空间建模的免训练少样本异常检测会议CVPR 2026摘要工业检测中的视觉异常检测往往面临每个类别只有少量正常图像可用的情况。近期少样本方法借助基础模型特征取得了很强的结果但通常仍依赖记忆库、辅助数据集或对视觉-语言模型进行多模态调优。因此作者提出一个直接的问题当视觉基础模型已经能够提供高质量特征表示时这些复杂机制是否仍然必要为回答这一问题论文提出 SubspaceAD一种无需训练的方法。首先使用冻结的 DINOv2 从少量正常图像中提取 patch 级特征随后用主成分分析PCA拟合这些特征估计正常变化所在的低维子空间。推理时通过测试特征相对于该子空间的重建残差检测异常得到具有可解释性和统计依据的异常分数。尽管方法简单SubspaceAD 在 one-shot 与 few-shot 设置下都取得了最先进的性能同时不需要训练、Prompt Tuning 或 Memory Bank。在 one-shot 中摘要报告其在 MVTec-AD 上的图像级和像素级 AUROC 分别为 98.0% 和 97.6%在 VisA 上分别为 93.3% 和 98.3%。源码与 DemoGitHub - CLendering/SubspaceAD · GitHub一、研究背景与核心问题工业异常检测的现实难点是正常样本也可能非常少。Full-shot 方法需要大量无缺陷图像建立正常分布Zero-shot 方法可以依赖 CLIP 一类视觉语言模型和文本 Prompt但细小裂纹、污染、缺件等非语义异常并不总能被语言准确描述。因此论文聚焦 k ∈ {1, 2, 4} 的 Few-Shot 场景每个类别只给极少量正常图像让模型定义“什么是正常”。现有方法要么训练重建模型要么保存大量正常 patch 构建 Memory Bank要么引入 Prompt、辅助数据和多模态调优。SubspaceAD 的核心问题很直接如果 DINOv2 已经提供了足够好的特征空间还需要这么复杂的后端吗论文最终选择彻底放弃 Memory Bank 和 Prompt Tuning转而用 PCA 直接刻画正常特征的变化空间。论文Figure 1仅使用 1 张正常参考图像时SubspaceAD 在 MVTec-AD 15 个类别上的异常分割结果Figure 1 先给出一个直观结论只用一张正常图像方法依然能在对象和纹理类别上定位多种缺陷。论文真正想强调的是“强表征 简单统计模型”可能已经足够。二、方法整体框架DINOv2 PCA论文Figure 2SubspaceAD 的 Fitting 与 Inference 两阶段整体流程Figure 2 概括了方法。Fitting 阶段只使用正常样本冻结的 DINOv2-G 提取 patch token对多个中间层特征做平均再用所有正常 patch 特征拟合 PCA。Inference 阶段执行同样的特征提取把每个测试 patch 投影到正常子空间投影前后差得越多该位置越异常。正常图像 → DINOv2 多层特征 → PCA 正常子空间测试图像 → 子空间投影 → 重建残差 → 异常图这里的 Training-Free 指不进行梯度训练也没有可学习检测头或类别 Prompt。PCA 直接通过统计量建立正常子空间每个类别最终只需保存均值向量 μ 和子空间基矩阵 C。三、特征表示为什么平均 DINOv2 中间层SubspaceAD 的关键并不只是“使用 DINOv2”而是使用哪一层。DINOv2-G 把图像划分为 14 × 14 patch作者选择第 22–28 层在同一空间位置进行均值聚合其中 () 是第 (l) 个 Transformer Block 在位置 (p) 的特征。中间层同时保留语义与局部结构而最深层更偏类别级抽象异常检测恰恰依赖划痕、边缘破坏等细节因此最后一层未必最佳。Few-Shot 下一两张正常图像也不足以稳定估计协方差。论文为每张正常图生成 Na 30 个随机旋转视图范围为 0°–345°再把原图和增强图的 patch 一起用于 PCA以覆盖常见几何变化。方向敏感的 transistor 类别不使用旋转增强。四、核心机制异常就是离开正常子空间PCA 假设正常 patch 虽处在 D 维特征空间中但主要变化集中在更低维的线性子空间。论文将正常特征写为 ()其中 C 由协方差矩阵前 r 个特征向量组成。r 不固定而由累计解释方差决定推理时()并用 () 作为 patch 异常分数。也就是说模型不是寻找“最近的正常 patch”而是判断“该特征能否被正常变化的主方向解释”无法解释的正交残差就是异常证据。图像级分数使用 TVaR即取异常图最高 1% patch 分数的平均值减少单个噪声极值的影响。像素级结果由 patch 异常图双线性上采样再用 σ 4 的 Gaussian Filter 平滑可视化使用 Min-Max 归一化而 AUROC、PRO 计算使用原始分数。五、实验结果与消融分析5.1 实验设置实验使用 MVTec-AD 和 VisA图像级指标为 AUROC、AUPR像素级指标为 AUROC、PRO。默认设置为 DINOv2-G、22–28 层均值、672 px 输入、τ 0.99、TVaR ρ 1%1/2/4-shot 均运行 5 个随机种子。5.2 Few-Shot 主实验论文Table 1MVTec-AD 与 VisA 上 1/2/4-shot 的图像级检测和像素级定位对比Table 1 是核心定量证据。1-shot 时SubspaceAD 在 MVTec-AD 上达到97.1% 图像级 AUROC、97.5% 像素级 AUROC 和 93.7% PRO在 VisA 上达到93.4% 图像级 AUROC、98.2% 像素级 AUROC 和 93.5% PRO。VisA 图像级 AUROC 相比 AnomalyDINO 的 87.4% 高 6.0 个百分点。4-shot 时MVTec-AD 的 PRO 为 94.3%VisA 图像级 AUROC 达到 94.7%。但并非所有指标都第一例如 VisA 4-shot PRO 为 93.8%略低于 AnomalyDINO 的 94.1%。因此准确说法是SubspaceAD 在绝大多数指标上达到或超过现有方法而不是“全面第一”。需要注意的是论文摘要中的 one-shot 数字与 Table 1 的五次随机运行均值略有差异摘要给出 MVTec-AD 98.0% / 97.6%、VisA 93.3% / 98.3%而主实验表采用上述 mean ± std 结果。本文实验解读统一以 Table 1 为准。论文Figure 3SubspaceAD、PromptAD 与 AnomalyDINO 在 VisA / MVTec-AD 上的 1-shot 定性对比Figure 3 中SubspaceAD 的热力图更集中在真实缺陷区域背景误激活更少边界也更清晰与“异常由子空间外残差体现”的设计逻辑一致。5.3 Batched 0-Shot论文Table 2Batched 0-shot 场景下的图像级 AUROC 对比作者进一步假设整批未标注测试图中“大多数 patch 正常”直接用全部测试 patch 拟合 PCA。VisA 上 SubspaceAD 达到94.1% AUROC与 MuSc 并列最好MVTec-AD 为96.6%低于 MuSc 的 97.8%但高于两种 AnomalyDINO-S 配置。这个实验很有意思因为它说明 PCA 并不只能工作在 Few-Shot只要异常相对稀疏、正常变化占据主导方向主成分仍有机会从混合数据中提取出主要正常结构。5.4 消融性能主要由特征质量决定论文Table 3不同 DINOv2 层聚合策略的 4-shot 消融只用最后一层时VisA 图像级 AUROC 为89.1%、PRO 为88.3%使用 22–28 层 Mean-pool 后提升到94.7% 和 93.8%。Concat(Middle-7) 在 MVTec-AD 图像级 AUROC 上更高但 Mean-pool(Middle-7) 在两个数据集上更均衡。论文Figure 4输入分辨率 256–672 px 对性能的影响Figure 4 显示分辨率从 256 px 增大后性能明显提升但448–672 px逐渐饱和672 px 整体最好。也就是说足够的空间细节很重要但继续增加分辨率并不会带来线性收益。论文Figure 5DINOv2 ViT-S/B/L/G 不同 Backbone 规模对性能的影响Figure 5 的趋势很清楚Backbone 越大整体性能越强。SubspaceAD 的上限主要由 Foundation Model 的表示能力决定如果更关注边缘部署也可以使用更小的 DINOv2-S/14。论文Table 4PCA 累计解释方差阈值 τ 的消融τ 在 0.95–0.99 之间时整体较稳定但τ 1.00 时性能突然崩溃例如 MVTec-AD 1-shot 图像级 AUROC 降到 45.3%VisA 降到 38.6%。当 PCA 把全部方差都纳入“正常空间”时异常也更容易被重建正交残差信号因此消失。这是论文“异常主要存在于残差子空间”这一假设最直观的一组证据。效率方面每个类别的 PCA 模型通常小于1 MB单张 H100 上处理 672 × 672 图像约300 ms其中约 226 ms 是 DINOv2-G 前向子空间投影和打分约 74 ms。真正的计算瓶颈仍是 Backbone而不是 PCA。六、总结与思考如果把 SubspaceAD 压缩成一句话用 DINOv2 构造高质量特征空间用 PCA 找到正常变化的主方向再把无法被这些方向解释的残差当作异常。这篇论文有意思的地方不在于 PCA 本身而在于它重新回答了“强 Foundation Model 时代后端还需要多复杂”这个问题。实验表明在 Few-Shot 工业异常检测中一个无梯度训练、无 Memory Bank、无 Prompt Tuning 的线性子空间模型已经能与复杂方法竞争并在多数指标上更好。从方法设定上看Training-Free 也不等于零成本DINOv2-G 仍是大 BackboneFew-Shot 拟合还要进行旋转增强和多次特征提取速度与显存主要由编码器决定。但这反而强化了论文的核心洞察——异常检测后端可以很简单真正决定效果上限的可能是特征表征本身。
返回列表