异常检测之MemSeg
MemSeg: A semi-supervised method for image surface defect detection using differences and commonalities
- 论文链接:https://arxiv.org/abs/2205.00908
- 论文开源代码:https://github.com/TooTouch/MemSeg或https://download.csdn.net/download/thisiszdy/88893714
论文概要及其相关代码
文章主要贡献:
- 提出了一种精心设计的异常模拟策略,用于模型的自监督学习,融合了目标前景异常、纹理和结构异常3个方面。
- 提出了一种具有更高效特征匹配算法的记忆模块,并创新性地在U-Net结构中引入正常模式的记忆信息来辅助模型学习。
- 通过以上两点,并结合多尺度特征融合模块和空间注意力模块,有效地将半监督异常检测简化为端到端的语义分割任务,使半监督图像表面缺陷检测更加灵活。
- 通过广泛的实验验证,MemSeg在表面缺陷检测和定位任务中具有较高的准确性,同时更好地满足工业场景的实时性要求。
本文介绍了用于检测和定位细粒度异常的新框架,MemSeg的框架如下图所示。MemSeg以U-Net为基础框架,在训练阶段借助模拟异常样本和记忆信息完成语义分割任务,在推理阶段端到端定位图像中的异常区域。MemSeg由几个重要的部分组成,我们将按照以下顺序描述这些部分:通过人工模拟的方式生成异常样本(第3.1节),记忆信息和空间注意图的生成(第3.2节),用于融合记忆信息和图像高层特征的多尺度特征融合模块(第3.3节),以及损失函数(第3.4节)。
3.1异常模拟策略
在工业场景中,异常发生的形式多种多样,在进行数据收集时无法覆盖所有异常,这限制了监督学习方法的建模。然而,在半监督框架中,仅使用正常样本而不与非正常样本进行比较,不足以让模型学习到什么是正常模式。受DRAEM的启发,设计了一种更有效的策略来模拟异常样本,并在训练过程中引入异常样本来完成自监督学习。MemSeg通过比较非正常样本的模式来总结正常样本的模式,以缓解半监督学习的缺陷。如下图所示,本文提出的异常模拟策略主要分为三个步骤。
-
第一步:生成二维Perlin噪声 P P P,然后通过阈值 T T T二值化得到掩码 M P M_P MP;由其产生的Perlin噪声具有多个随机峰值,能够提取图像中连续的区域块。同时,考虑到某些工业部件的主体在获取的图像中所占比例较小,如果直接进行数据增强而不进行处理,容易在图像的背景部分产生噪声,增大了模拟异常样本与真实异常样本在数据分布上的差异,不利于模型学习有效的判别信息。因此,对这类图像采用前景增强策略。即对输入图像 I I I进行二值化得到掩模 M I M_I MI,利用open或close操作去除二值化过程中产生的噪声。然后,通过对得到的两个掩码 M I M_I MI和 M P M_P MP进行元素积来获得最终的掩码图像 M M M。
-
第二步,将掩模图像 M M M和噪声图像 I n I_n In进行元素积,得到感兴趣区域(ROI)。遵循DRAEM的思想,在融合过程中引入透明度因子 δ \delta δ来平衡原始图像和噪声图像的融合,使模拟异常的模式更接近真实异常。因此,有噪声的前景图像 I n ′ I_n^{'} In′可以用下面的公式生成:
I n ′ = δ ( M ⨀ I n ) + ( 1 − δ ) ( M ⨀ I ) I_n^{'}=\delta(M\bigodot I_n)+(1-\delta)(M\bigodot I) In′=δ(M⨀In)+(1−δ)(M⨀I)
对于噪声图像 I n I_n In,我们希望其最大的透明度更高,以增加模型学习的难度,从而提高模型的鲁棒性。因此,对于上述公式中的 δ \delta δ,我们将从[0.15,1]中随机均匀采样。 -
在第三步中,对掩模图像 M M M进行逆求得到 M ˉ \bar{M} Mˉ,然后对 M ˉ \bar{M} Mˉ与原图像 I I I进行元素积得到图像 I ′ I^{'} I′,并根据
I A = M ˉ ⨀ I + I n ′ I_A=\bar{M}\bigodot I+I_n^{'} IA=Mˉ⨀I+In′
得到数据增强后的图像<