Patchcore-原理学习

异常检测学习


摘要

这篇论文主要关注大规模工业制造中的关键组件——检测缺陷部件。主要解决了检测中冷启动问题,即仅使用正常(无缺陷)的示例图像来拟合模型。虽然每个类别都可以有手工制作的解决方案,但目标是构建能够同时在许多不同任务上自动工作的系统。最佳的方法是将ImageNet模型的嵌入与异常检测模型相结合。本文在此基础上进行了扩展,提出了PatchCore,它使用了一个最大代表性的记忆库来存储正常的补丁特征。


总体流程

Patchcore总体可以分为三个部分:

  1. 将局部补丁特征(local patch features )聚合到内存库中。
  2. 使用核心集缩减方法(coreset-reduction method)以提高效率
  3. 形成检测和定位决策的完整算法。
    在这里插入图片描述

part 1 Locally aware patch features 局部补丁特征聚合

该方法的主要思想是利用预训练的网络提取图像特征,使用一个记忆库M存储这些特征。

这种方法继承与SPADE与Padim,使用ImageNet上预训练的特征提取网络。如ResNet-50 / WideResNet-50

使用其中间层作为输入,原因是:
保留更多的信息
可以使在ImageNet上预训练的网络提取出来的特征不那么偏向原数据集

提取得到的特征,进行局部领域聚合操作,这是为了增加感受野的大小并且增加对小的空间变化鲁棒性,以下几个公式就是其操作步骤:
在这里插入图片描述
在这里插入图片描述
(1)表示一块大小p×p的邻域
在这里插入图片描述(2)
(2)表示第i张图输入到backbone后输入的第j层特征,这个特征及其在N_p上的领域进行了f_agg(某种聚集函数)操作,Patchcore中使用的是自适应平均池(adaptive average pooling)。

在这里插入图片描述
(3)表示局部特征集合
同时,还是用了第j+1层特征,使用双线性缩放使两个特征相匹配
在这里插入图片描述
(4)表示遍历所有数据集,形成记忆库M

part 2 Coreset-reduced patch-feature memory bank 核心集减小M大小

在这里插入图片描述
形成得到的记忆库M很大,希望一个寻找一个子集代替。之前的方法使用随机搜索的方法,patchcore提出贪婪核心集算法,上图表示两种方法效果,可见GC算法表示的更加均匀,效果更好。

算法流程图
在这里插入图片描述
其中最重要的是:
在这里插入图片描述
选择一个M_c,使得原始集中的任何实例与 M_c 中最近的实例的最大距离最小化

part 3 Anomaly Detection with PatchCore 计算得分

在这里插入图片描述
每个点先找最近的邻近区域,然后在这邻近区域中找最远的点的距离作为异常分数。
获取到全局得分并且之后,为了匹配原始输入分辨率,采用了双线性插值来放大结果。还使用了高斯滤波对结果进行了平滑处理。

算法改进

1 SA-PatchCore:

Anomaly Detection in Dataset With Co-Occurrence Relationships Using Self-Attention
引入只注意力机制,解决共现相关的异常的问题,自创数据集,如下
在这里插入图片描述

2 FR-PatchCore:

An Industrial Anomaly Detection Method for Improving Generalization
FR-PatchCore方法首先构建一个特征矩阵,然后将其提取到内存库中,并使用最优负余弦相似性损失进行持续更新。
同时其中的后处理方法(还没明白)值得学习。

之后的一些思路与方向

  1. 针对特征的增强,类似于图像增强技术,只不过其作用在特征提取之后特征上的,理论上其比针对图像的增强更具普遍性,相同的增强可能可以在不同的领域中应用,方法有一些。
  2. 提取特征时,利用的是j和j+1,j+1层特征还要上采样在于j层融合,可以考虑不同网络提取再做融合。
  3. 对cnn的特征提取器的转换,transformer的框架以及抗锯齿技术(anti-aliasing)。
  • 27
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值