可视化的异常检测

冻结模型应当 保留、路由并信任哪些参考证据?

我固定表征不变,研究决定哪些正常证据能到达最终异常分数的那些决策。下面每个阶段都是其中一个决策。向下滚动,观看它如何发生。

交互场景是 768 维计算的二维示意;数值按所示规则实时更新。

01 固定表征 · ProCon

一张图像变成 784 个 token

冻结的 DINOv2 ViT-B/14 把 392 × 392 图像编码为 28 × 28 的 768 维补丁 token,并取多个深度。没有任何训练;下游所有工作都是在决定正常 token 如何被收集、保留、检索与比较。

上方的开场动画即此步骤:像素 → 补丁网格 → 特征空间中的 token。红色 token 是与真值裂纹重叠的单元。

784 tokens · 0 overlap the annotated cut

02 候选证据 · 资格 · CLEANCON

哪些训练图像有资格参与

在存储任何东西之前,候选池本身就是一个决策。CLEANCON 用二十个袋外支持库的软投影残差,衡量其他训练图像解释某张图像的程度,只把分数较低的一半交给不变的记忆构建器。检测器、构建器与最终记忆容量都不改变。

三张污染图像排到最前,中位数门控将其剔除。提高保留率会有一张重新进入,但论文中 P-AP 在最干净点之后仍持续上升:纯度本身并不能为有用的记忆排序。

03 候选证据 · 缺失的支持 · BoundarySupport

干净图像遗漏了缺陷旁的正常补丁

即使候选池完全干净,也可能不完整。缺陷图像的大多数补丁仍是正常的,但紧邻缺陷的正常补丁处在任何干净图像都无法提供的语境中,因而没有参照。BoundarySupport 有意制造这种语境:向干净图像插入合成缺陷,排除插入与混合触及的全部 token,只保留像素保持不变的环带作为新的正常证据。

插入区 A、混合像素 D、排除集 C,以及保留环 R。在 MVTec 固定记忆预算下,真实缺陷周围同样的环带恢复了 94.7% 的先知增益。

步骤

04 保留 · CLEANCON

只保留少量正常 token 作为参照

存储全部候选 token 太慢,PatchCore 类流程保留一个核心集:贪心最远优先选择,用 K 个中心覆盖特征空间。覆盖偏爱稀有点。若少量异常图像越过了门控,其稀有 token 恰恰是选择器最先抓取的对象。

调节预算并切换选择器。随机选择使污染保持在池内比例(A_K ≈ 1);全局最远优先则把污染成倍拉入记忆,正如 CLEANCON 在 1% 预算下测得的 16 至 40 倍。

选择器

05 路由 · GCR

按几何选择检测头,而不是按异常分数

类别依次到来且测试图像无标签时,检测器必须先选择类别头,然后才能比较任何东西。跨头比较异常分数并不稳定:尺度不同,缺陷也可能翻转选择。GCR 用少量采样补丁的平均最近原型距离路由,然后只在该头内评分。

从一张属于头 2 且含四个缺陷补丁的图像中采样 32 个补丁。均值准则路由正确;对峰值敏感的 top-q 准则被拖向相邻的宽泛检测头。

06 比较与信任 · ProCon

一个邻近锚点并不足够

最近邻评分只问是否存在一个邻近的正常锚点。有缺陷的补丁可能恰好落在某个孤立锚点旁而被判为正常,即假正常匹配。ProCon 改为询问补丁能否由其局部正常邻域重建:按距离加权 k 个锚点,并对投影残差评分。

移动鼠标即可移动测试 token。按下预设按钮把它停在孤立锚点旁:虚线的硬最近邻距离仍然很小,而残差骤增。把 k 设为 1,两条规则重合。

07 共识 · ProCon

信任峰值之前先跨记忆达成一致

单个核心集取决于一次特定的锚点选择,不走运的选择会制造虚假峰值。ProCon 为每个深度构建 B 个随机种子扰动的记忆库,对残差取中位数,再对各深度对齐后的残差图取均值。融合发生在每个库与每一层都产出同一量之后。

库 2 含有一个假峰。min 能去掉它却也削弱真实缺陷;mean 让它泄漏;median 去掉它的同时保留了共同的缺陷。

库规则

08 决策 · StructCore

取最大值会丢掉信息

图像级判断通常取异常图的最大值。最大值相同的两张图可以结构完全不同:正常图像上孤立的虚假峰值,与缺陷图像上分散、重尾的证据。StructCore 用三个数描述每张图,在正常图上标准化,并报告最强的校准偏差。

两张图被缩放到相同最大值,因此最大池化无法区分。增大缺陷范围,观察结构分数在最大值不变的情况下拉开差距。

09 下游发生了什么变化?

下游发生了什么变化?

上面的每个阶段都是一次受控干预:表征、记忆预算、检测器与读出规则保持不变,只改变一个决策。以下是各论文实际测得的后果。

  1. CLEANCON02 · 04

    按袋外支持分数筛选候选图像;构建器与记忆容量不变。

    记忆污染率
    之前6.5%
    之后0.0%

    部署记忆中的污染降至零,类别宏平均 P-AP 在全部 12 个匹配比较中上升。但最干净的记忆并非最佳:R80 在 12 个比较中全部胜过 R50。

  2. BoundarySupport03

    同一预算、同一检测器、同一编码器,只改变候选补丁的身份。

    P-AP
    之前73.3
    之后77.0

    MVTec P-AP 从 73.34 升至 76.95,缺陷两格以内的补丁恢复了 94.7% 的增益。

  3. GCR05

    用共享原型几何路由,而不是跨检测头比较异常分数。

    遗忘 (I-FM)
    之前0.010
    之后0.0

    在任务无关的持续评估下,MVTec AD 与 VisA 上的遗忘降至 0.000,且完全不做表征学习。

  4. ProCon06 · 07

    用局部重建取代单一最近锚点,再跨记忆库与深度达成共识。

    P-AP
    之前67.4
    之后73.0

    沿消融阶梯,MVTec P-AP 在固定 1% 核心集下从 67.4 升至 73.0,图像 AUROC 从不倒退。

  5. StructCore08

    同一异常图,不同的图像级读出。

    图像 AUROC
    之前98.7
    之后99.6

    MVTec AD 图像 AUROC 从 98.7 升至 99.6,VisA 从 97.6 升至 98.4,而所有定位指标完全不变。

真实缺陷上的一个例子

阶段 06 与 07 的阶梯在 MVTec AD 上的表现

ProCon 的真实输出而非示意渲染:同一图像上的硬最近邻记忆、软投影记忆,以及带层共识的完整方法。

bottle: 输入
输入
bottle: 真值
真值
bottle: 最近邻记忆
最近邻记忆
bottle: 软投影
软投影
bottle: ProCon
ProCon

异常图来自 ProCon 论文图 5(MVTec AD 示例)。

一个研究计划,五个决策

哪些正常证据可用,其中保留哪些,查询哪个参照系统,如何比较并信任一个参照,以及补丁证据如何成为决策。

  1. 2026

    CLEANCON

    覆盖驱动的记忆选择会放大稀疏污染吗?纯度能解决问题吗?

    全局覆盖把污染放大 16 至 40 倍。袋外门控能清除污染并带来提升,但最干净的记忆并不是最好的记忆。

  2. 2026

    BoundarySupport

    干净图像包含检测器需要的全部正常补丁吗?

    不包含。真实缺陷旁的正常补丁在干净图像池中缺失。改变干净图像的周边语境、只保留像素不变的邻域即可补回它们。

  3. 2026

    GCR

    类别持续到来时,冻结检测器如何选对检测头?

    在共享空间中按平均最近原型距离路由,再只在该头内评分。失败根源是路由不稳定,而不是遗忘。

  4. 2026

    ProCon

    一个邻近的正常锚点足以证明正常吗?

    不够。软局部投影把记忆检索变成无解码器重建;经记忆库与深度共识稳定后的投影残差才是异常证据。

  5. 2026

    StructCore

    最大的补丁响应就是正确的图像级判断吗?

    并非单独如此。用三维结构描述子在正常图上标准化,再以切比雪夫规则读取,可补回最大池化丢弃的证据。

图像:MVTec AD(Bergmann 等,CVPR 2019;CC BY-NC-SA 4.0)及作者 ProCon 仓库中的图表。交互场景为示意,使用合成的二维数据。