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

异常检测 SimpleNet

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

本文介绍异常检测 2023 年一篇优秀工作 —— SimpleNet。

基本信息

项目

内容

备注

方法名称

SimpleNet

论文题目

SimpleNet: A Simple Network for Image Anomaly Detection and Localization

论文连接

开源代码

发表时间

2023.05.28

方法类别

深度学习 -> 基于特征 -> 自监督学习

Detection AU-ROC

99.6%

Segmentation AU-ROC

98.1%

Segmentation AU-PRO

-

FPS

77 (FP32 on 3080ti)

核心思想

提取正常图像特征,人工在正常图像特征上加噪作为异常特征,训练分类网络进行分类判断

框架

SimpleNet 包含 特征提取器,特征适配器,异常特征生成器和判别器。

特征提取器

用类似 ResNet 网络提取不同层级的图像特征:

$$ \phi^{l,i}\sim\phi^{l}(x_{i})\in\mathbb{R}^{H_{l}\times\dot{W_{l}}\times C_{l}}, $$

l 表示层级,x_i 为输入数据,\phi 为特征

定义 Patch Size p ,将特征分为 p \times p 的小块,自适应池化:

$$ z_{h,w}^{l,i}=f_{agg}({\phi_{h',y'}^{l,i}|(h',y')\in\mathcal{N}_{p}^{h,w}}) $$

将来自不同层级的特征 resize 到相同(最大)尺寸,将特征在通道层拼接起来:

$$ o^i=f_{cat}(resize(z^{l',i},(H_0,W_0))|l'\in L $$ 简写为: $$ o^i=F_\phi(x^i) $$

特征适配器

由于工业图像通常与主干预训练中使用的数据集具有不同的分布,因此采用特征适配器 G_θ 将训练特征转移到目标域 q

$$ q_{h,w}^i=G_\theta(o_{h,w}^i) $$

特征适配器可以由简单的神经块组成,例如全连接层或多层感知器(MLP)。通过实验发现单个全连接层性能就足够好了。

异常特征生成器

为了训练判别器估计样本正常的似然概率,最简单的方法是对负样本(缺陷特征)进行采样,并将其与正常样本一起优化。但是异常样本的数量往往不足以支持训练,不同于其他文章生成异常图像,本文在特征空间中的正常样本上添加简单的噪声生成异常特征(文章声明该方法优于其他手工方法)。

异常特征是通过在正常特征 $q_{h,w}^i\in{\mathbb{R}^C}$ 上添加高斯噪声生成的,噪声 $\epsilon\in\mathbb{R}^C$ 独立同分布地采样于高斯分布 $\mathcal{N}(\mu,\sigma^2)$,异常特征 $q^{i-}_{h,w}$ 表示为: $$ q_{h,w}^{i-}=q_{h,w}^{i}+\epsilon $$

判别器

判别器用于判断数据是否为异常,直接输出 (h,w) 位置的正常水平,正常与添加过异常扰动的人工异常特征共同训练,相当于训练分类网络。

文章仅使用 2 层感知机来完成这个步骤。

判别器标记为 :

D_{\psi}(q_{h,w})\in\mathbb{R}.

训练

端到端训练判别器、特征适配器、特征提取器

单个 Patch 损失函数为:

$$ l_{h,w}^{i}=\max(0,th^{+}-D_{\psi}(q_{h,w}^{i}))+\max(0,-th^{-}+D_{\psi}(q_{h,w}^{i-})) $$

其中 th^+ = 0.5,th^-=-0.5

整体损失函数:

$$ \mathcal{L}=\min_{\theta,\psi}\sum_{x^i\in\mathcal{X}_{train}}\sum_{h,w}\frac{l_{h,w}^i}{H_0*W_0} $$

推断时不需要异常生成器了,异常分数直接由一系列前向推导得到:

$$ s_{h,w}^i=-D(q^i_{h,w}) $$ 推理过程中异常定位的异常图定义为: $$ S_{AL}(x_{i}):={s_{h,w}^{i}|(h,w)\in W_{0}\times H_{0}} $$

将结果 resize 到原始图像大小即可得到异常定位图。

同时图像级异常检测结果的得分:

S_{AD}(x_i):=\max_{(h,w)\in W_0\times H_0}s_{h,w}^i

由于网络简单,在 3080Ti 上 256*256 的图在未经过量化的模型上可以达到接近 80 的FPS。

参考资料

  • SimpleNet: A Simple Network for Image Anomaly Detection and Localization

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本信息
  • 框架
  • 特征提取器
  • 特征适配器
  • 异常特征生成器
  • 判别器
  • 训练
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档