前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >异常检测 PatchSVDD

异常检测 PatchSVDD

作者头像
为为为什么
发布2023-12-26 10:22:34
3660
发布2023-12-26 10:22:34
举报
文章被收录于专栏:又见苍岚

本文记录神经网络用于一分类异常检测的改进工作 —— PatchSVDD。

简介

改进 deep SVDD,提高异常检测能力与添加瑕疵定位能力,输出异常位置的热力图。

Patch 级中心

核心改动为将 Deep 的整图输入改为 Patch 输入,如果将图片划分为多个块,有的块是背景有的块是物体,那么将这些块映射到一个超球空间是不合理的,本文提出将空间相近的块给映射到一起。

但这样会引入一个新问题,那么空间相近的块就会倾向提取出相似的特征,本文利用自学习方法让编码器提出的特征具备位置可分特性。

本文提出的优化损失函数为:

$$ \mathcal{L}_{\mathrm{SVDD'}}=\sum_{i,i'}|f_\theta(\mathbf{p}_i)-f_\theta(\mathbf{p}_{i'})|_2 $$

p_i 为轮训图片的一个 Patch,p_{i’}p_i 的空间临近点。

该 Loss 强行拉近位置相近 patch 特征的距离,可能会损坏 patch 的信息,文章假设提取出的特征能够分辨出位置信息,那么可以认为该体特征依然保留了有用的特征信息。

参考Unsupervised visual representation learning by context prediction提出的前置任务

自监督学习

确定好patch的大小后,随机在图片中选择一个patch,作为中心位置,画一个9宫格,那么对应的位置分别1-8.C_\phi 代表分类网络Classifier,P_{1} 为中心点,P_{2} 是8个位置的任意一点,分类器需要识别 P_{2} 是哪一个位置。

自监督学习 Loss 定义:

$$ \mathcal{L}_{\mathrm{SSL}}= \mathrm{Cross- entropy}\left ( y, C_{\phi}\left ( f_{\theta}( \mathbf{p} _{1}) , f_{\theta}( \mathbf{p} _{2}) \right ) \right ) $$ 总的 Loss 定义为: $$ \mathcal{L}_{\mathrm{Patch~SVDD}}=\lambda\mathcal{L}_{\mathrm{SVDD}}+\mathcal{L}_{\mathrm{SSL}}. $$

该 SSL loss 会提升对象类的图像的异常检测性能,对于纹理类的图像性能收益不大。因为纹理中很难识别到位置信息,而且理论上纹理存在很多重复部分,提取的特征本来就具备相似性。

推断

训练好encoder 后,提取并保留所有训练数据中的 Patch 特征,给定一个查询图像 x ,其中的每个 Patch 通过编码器提取特征,每个Patch 特征在训练特征中距离最新的特征距离为该 Patch 的异常得分。

$$ \mathcal{A}_\theta^{\mathrm{patch}}(\mathbf{p})\doteq\min_{\mathbf{P}_{\mathrm{normal}}}\left|f_\theta(\mathbf{p})-f_\theta(\mathbf{p}_{\mathrm{normal}})\right|_2 $$

该推断过程在 MVtec 数据集中需要 0.5s。

参考资料

文章链接: https://cloud.tencent.com/developer/article/2374475

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • Patch 级中心
  • 自监督学习
  • 推断
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档