本文最后更新于:2024年1月14日 晚上

本文记录一篇生成异常数据用于自监督学习的异常检测工作 —— MemSeg。

基本信息

项目 内容 备注
方法名称 MemSeg
论文题目 MemSeg: A semi-supervised method for image surface defect detection using differences and commonalities
论文连接 https://arxiv.org/pdf/2205.00908v1.pdf
开源代码 https://github.com/TooTouch/MemSeg
发表时间 2022
方法类别 深度学习 -> 基于特征 -> 自监督学习
Detection AU-ROC 99.56%
Segmentation AU-ROC 98.84%
Segmentation AU-PRO -
FPS 31.3
核心思想 人工生成异常图像,用于训练自监督的分割网络,为限制网络泛化能力加入了记忆模块,利用注意力机制降低特征冗余,再利用U-Net跳跃连接做二轮的特征融合。一系列的操作将不同尺度信息充分融合又不冗余,实现检测及定位。

论文框架

上图为 MemSeg 整体架构,主要由 异常模拟、记忆模块和空间注意力组成。

异常模拟

监督学习分割网络关键在于生成异常数据,使用惯用套路,生成 mask,将其他图像叠加在 Mask 上,按照透明度融合在一起:
$$
I_n’=\delta\left(M\odot I_n\right)+\left(1-\delta\right)\left(M\odot I\right)
$$

生成的异常样本在特征空间中的表现:

记忆模块

输入为批大小为N的记忆样本(由正常图像随机选取所得),输入预训练好的编码器后得到三种尺寸不同的输出特征,分别为:N×64×64×64、N×128×32×32和N×256×16×16。由记忆样本得到的输出特征记作MI。

冻结ResNet的 block1/2/3 的参数保证高维特征与记忆信息统一,其余部分仍可训练。训练及推理阶段,通过原文公式(下式),比较距离。

$$ DI=\bigcup_{i=1}^N\|MI_i-II\|_2 $$

取距离最小的特征作为 $x$ 图像的特征:

$$ DI^{*}=\operatorname*{arg}_{DI_{i}\in DI}\sum_{x\in DI_{i}} $$

N个存储信息中,每个包括块1/2/3生成的三张特征图,将输入的三张特征图与N中所有的三个特征图比较找出距离最小的N中的三张特征图。将输入的三张特征图与和其距离最小的三张特征图连接形成CI。后经多尺度特征融合块,经U-Net跳跃连接(这里可以将一些模拟的可分性不强的异常特征去除,保证模拟的真实性。)进入解码器。

为什么不直接使用CI输入到空间注意模块进行计算呢?
作者解释道: 由于串联后不经过任何操作,输入到空间注意模块不可避免的会有特征冗余的问题,同时导致计算效率低下,一种合适的特征融合手段可以有效解决这些问题。

空间注意力

计算特征空间注意力权重:

$$ \begin{gathered} M_{3}=\frac{1}{C_{3}}\sum_{i=1}^{C_{3}}DI_{3i}^{*} \\ M_{2}=\frac{1}{C_{2}}\Big(\sum_{i=1}^{C_{2}}DI_{2i}^{*}\Big)\odot M_{3}^{U} \\ M_{1} =\frac{1}{C_{1}}\Big(\sum_{i=1}^{C_{1}}DI_{1i}^{*}\Big)\odot M_{2}^{U} \end{gathered} $$

训练

L1 损失和 focal 损失。L1 比 L2 保留更多边缘信息。focal 缓解样本不平衡问题,使模型专注于分割本身而不是样本的情况。

推断

直接端到端从输入图像到异常得分结果前向传播即可。

原始论文

参考资料



文章链接:
https://www.zywvvd.com/notes/study/deep-learning/anomaly-detection/memseg/memseg/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

异常检测 MemSeg
https://www.zywvvd.com/notes/study/deep-learning/anomaly-detection/memseg/memseg/
作者
Yiwei Zhang
发布于
2023年12月25日
许可协议