本文介绍异常检测 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 层感知机来完成这个步骤。
判别器标记为 :
端到端训练判别器、特征适配器、特征提取器
单个 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 到原始图像大小即可得到异常定位图。
同时图像级异常检测结果的得分:
由于网络简单,在 3080Ti 上 256*256 的图在未经过量化的模型上可以达到接近 80 的FPS。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有