可视化的异常检测
冻结模型应当 保留、路由并信任哪些参考证据?
我固定表征不变,研究决定哪些正常证据能到达最终异常分数的那些决策。下面每个阶段都是其中一个决策。向下滚动,观看它如何发生。
交互场景是 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 下游发生了什么变化?
下游发生了什么变化?
上面的每个阶段都是一次受控干预:表征、记忆预算、检测器与读出规则保持不变,只改变一个决策。以下是各论文实际测得的后果。
CLEANCON02 · 04
按袋外支持分数筛选候选图像;构建器与记忆容量不变。
部署记忆中的污染降至零,类别宏平均 P-AP 在全部 12 个匹配比较中上升。但最干净的记忆并非最佳:R80 在 12 个比较中全部胜过 R50。
BoundarySupport03
同一预算、同一检测器、同一编码器,只改变候选补丁的身份。
MVTec P-AP 从 73.34 升至 76.95,缺陷两格以内的补丁恢复了 94.7% 的增益。
GCR05
用共享原型几何路由,而不是跨检测头比较异常分数。
在任务无关的持续评估下,MVTec AD 与 VisA 上的遗忘降至 0.000,且完全不做表征学习。
ProCon06 · 07
用局部重建取代单一最近锚点,再跨记忆库与深度达成共识。
沿消融阶梯,MVTec P-AP 在固定 1% 核心集下从 67.4 升至 73.0,图像 AUROC 从不倒退。
StructCore08
同一异常图,不同的图像级读出。
MVTec AD 图像 AUROC 从 98.7 升至 99.6,VisA 从 97.6 升至 98.4,而所有定位指标完全不变。
真实缺陷上的一个例子
阶段 06 与 07 的阶梯在 MVTec AD 上的表现
ProCon 的真实输出而非示意渲染:同一图像上的硬最近邻记忆、软投影记忆,以及带层共识的完整方法。





异常图来自 ProCon 论文图 5(MVTec AD 示例)。
一个研究计划,五个决策
哪些正常证据可用,其中保留哪些,查询哪个参照系统,如何比较并信任一个参照,以及补丁证据如何成为决策。
- 2026
CLEANCON
覆盖驱动的记忆选择会放大稀疏污染吗?纯度能解决问题吗?
全局覆盖把污染放大 16 至 40 倍。袋外门控能清除污染并带来提升,但最干净的记忆并不是最好的记忆。
- 2026
BoundarySupport
干净图像包含检测器需要的全部正常补丁吗?
不包含。真实缺陷旁的正常补丁在干净图像池中缺失。改变干净图像的周边语境、只保留像素不变的邻域即可补回它们。
- 2026
GCR
类别持续到来时,冻结检测器如何选对检测头?
在共享空间中按平均最近原型距离路由,再只在该头内评分。失败根源是路由不稳定,而不是遗忘。
- 2026
ProCon
一个邻近的正常锚点足以证明正常吗?
不够。软局部投影把记忆检索变成无解码器重建;经记忆库与深度共识稳定后的投影残差才是异常证据。
- 2026
StructCore
最大的补丁响应就是正确的图像级判断吗?
并非单独如此。用三维结构描述子在正常图上标准化,再以切比雪夫规则读取,可补回最大池化丢弃的证据。
图像:MVTec AD(Bergmann 等,CVPR 2019;CC BY-NC-SA 4.0)及作者 ProCon 仓库中的图表。交互场景为示意,使用合成的二维数据。