MemSeg 半监督工业图像表面缺陷检测

由于自己也做工业的缺陷检测和瑕疵检测所有研究了一下

针对表面缺陷检测中同一生产线的产品类内差异小的问题,本文从差异和共性角度出发,提出一个基于记忆的端到端分割网络(MemSeg),其借助异常模拟策略来完成端到端异常定位,通过记忆池辅助模型学习,并且设计高效特征匹配算法来缓解计算负担。实验结果表明,MemSeg在MVTec AD数据集上实现了SOTA性能,同时满足现实工业场景实时性需求。

MemSeg 半监督工业图像表面缺陷检测_第1张图片

论文地址:https://arxiv.org/abs/2205.00908​​​​​​​

一、表面缺陷检测领域的一些Gap

表面缺陷检测通过定位图像中异常区域(划痕、污点等)来实现对工业产品的质量划分,然而由于生产中异常样本出现概率低且形式多样,传统监督学习的方法并不适用于此。

同时,现有相关方法多根据重建正常图像后的误差来定位异常,然而基于传统CNN方法的重建模型在推理阶段受到异常区域的影响(即图像中的异常区域被很地重建),从而使得异常判别无效,这违反了重建模型的基本假设。

因此一种灵活通用的模型有必要被提出。在本文中,作者等人通过对同一工业生产线上产品的类内差异观察,提出“人为地创造类内差异和保留类内共性可以帮助模型实现更好的缺陷检测性能”这一观点。通过异常模拟策略,使得模型可以端到端完成缺陷定位,同时缓解传统半监督式异常检测中只能使用正常样本的不足;另外还引入记忆池来辅助模型学习,并通过更高效的特征匹配算法来减轻计算负担。

小白答疑:什么是半监督学习?

相比较传统监督学习,即样本的类别和标签都是已知的,学习的目的是找到样本的特征与类别标签之间的联系。然而在现实场景中,更多的数据体现为无标签的形式,因此半监督学习就是利用大量的无标签样本和少量带有标签的样本来训练分类器,解决有标签样本不足的难题。

那么这样一个从差异和共性角度出发的模型,到底神奇在哪里,下面笔者带领大家一探究竟~

二、MemSeg剖析

MemSeg 半监督工业图像表面缺陷检测_第2张图片

图1:MemSeg整体架构示意图。

MemSeg整体架构如图1所示,下面笔者将分两个部分来详细讲解这一架构,分别为异常模拟策略、记忆信息和空间注意图。

1.异常模拟策略

MemSeg通过在训练过程中引入异常样本来完成自我监督学习。本文受相关工作的启发,提出一种更有效的异常模拟策略,其步骤如下:

MemSeg 半监督工业图像表面缺陷检测_第3张图片

图2:异常模拟策略步骤示意图。

  • Step 1:如图2,代表拥有部分随机峰值的二维Perlin噪声,其经过二值化处理(阈值设置)可得;代表原始输入图像,同样使用二值化处理得到掩码图。最终与进行逐元素相乘得到。

对于输入图像为什么要进行二值化处理呢?

作者解释道,一般地,在采集的图像中工业成分的主体比例小,若直接进行数据增强容易在背景部分产生噪声。这不利于模型学习有效的判别信息,因此对于输入图像先进行了二值化处理得到掩码,然后又利用开/关操作去除二值化过程中产生的噪声。

  • Step 2:如图2,代表噪声图像,代表噪声前景图像,可由如下公式得到。其中为引入的透明度系数,用以平衡原始与噪声图像的融合。而将与、逐元素相乘可得对应ROI(感兴趣区域)。

噪声图像从何而来?

作者解释道,来自用于模拟纹理异常的DTD纹理数据集和用于模拟结构异常的输入图像。对于结构异常的模拟,只需将输入图像先进行随机调整(包含亮度、饱和度、色调等),接着将其进行均匀的网格状划分,随机排列后即可得到模拟了结构异常的。

  • Step 3:如图,由反转后的与原始输入进行逐元素相乘后得到。接着将Step 2中得到的噪声前景图像与进行叠加得到最终模拟的异常图像。

综上,得到的被引入训练过程进行监督学习,缓解了传统半监督框架的不足(即仅使用正常样本而不与非正常样本进行比较)。

2.记忆模块和空间注意图

本文使用少量正常样本作为记忆样本,并使用预训练好的编码器来提取记忆样本的高级特征作为记忆信息,从而帮助MemSeg学习。其步骤如下:

MemSeg 半监督工业图像表面缺陷检测_第4张图片

图3:记忆模块。

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

  • 如图3,训练或推理阶段给定一输入图像,同样经编码器得到三种不同尺寸的输出特征,记作II。

  • 接着计算所有II和MI之间的L2距离,其公式如下:

  • 取作为最佳差异信息,某位置差异值越大,其对应输入图像区域出现异常的概率越高

MemSeg 半监督工业图像表面缺陷检测_第5张图片

图4:多尺度特征融合模块。

  • 最后将与II在通道维度上串联得到三种不同尺寸的CI(分别记作1、2和3),并通过多尺度特征融合模块进行特征融合。如图4,对于每一种尺寸的CI,首先用3×3卷积来融合特征,同时在另一个分支以coordinate attention来捕捉特征通道间的信息关系,经过逐元素相乘后得到对不同通道有不同关注度的特征。接着再以连续的3×3卷积提取特征,最后的输出经过上采样、3×3卷积和逐元素相加实现多尺度特征融合。

为什么不直接使用CI输入到空间注意模块进行计算呢?

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

之后,为加强对异常区域最佳差异信息的猜测,融合后的特征被送入空间注意模块,如下所示。

MemSeg 半监督工业图像表面缺陷检测_第6张图片

图5:空间注意模块。

对于输入的三种不同维度的特征图,首先进行通道平均池化,得到三种尺寸的特征图(16×16、32×32和64×64)。空间注意图由输入特征沿通道平均池化后直接得到,可用公式表示:

之后进行上采样,再与之前得到的32×32的特征图进行逐元素相乘得到,同样也由计算所得。

至此MemSeg中的重点模块剖析结束,在网络框架的尾部,L1损失和焦点损失被用于保证图像空间中所有像素的相似性。最后在训练和测试阶段的数据使用情况如下图所示,MemSeg使用正常和模拟的异常图像来完成模型训练,并直接判断输入图像的异常区域,在推理阶段没有任何辅助任务。

MemSeg 半监督工业图像表面缺陷检测_第7张图片

图6:训练和推理阶段的数据使用情况。

三、性能对比

MVTec AD 数据集上不同方法的评估结果如下表所示(指标为(ROC,AUC)):

MemSeg 半监督工业图像表面缺陷检测_第8张图片

表1:本文方法在MVTec AD 数据集上的性能评估结果。

MemSeg 半监督工业图像表面缺陷检测_第9张图片

图7:MemSeg与其他方法在MVTec AD数据集上进行异常定位的比较(阈值化之前)。

MemSeg 半监督工业图像表面缺陷检测_第10张图片

图8:MVTec AD数据集中正常样本、模拟异常样本和真实异常样本的可分离性显示。

whaosoft aiot http://143ai.com

延庆川北小区45孙老师东屯

收卖破烂垃圾废品炒股

四、思考与总结

本文从差异和共性角度出发,通过异常模拟策略来缓解传统半监督学习弊端,辅以记忆模块来帮助模型学习,最终实现了工业场景中的实时性与有效性。

然而由MVTec AD性能对比结果可以看出,MemSeg在图像级别对于screw(螺丝)的检测效果最差,这归咎于本文方法难以对螺丝生成有效的差异信息(因为螺丝方向随机排列,而本文方法由于记忆信息的引入更多依赖于对象在空间位置的对齐)。同样在像素级别,对于transistor(晶体管)的检测效果不足,这同样是由于transistor的方向偏移所导致。

这说明在检测性能方面,本文方法还有一定的提升空间,而对于检测实时性,作者等人在RTX 3090上与PaDiM和SPADE方法进行推理时间对比测试,结果显示MemSeg的推理速度相较二者提升10倍有余

本文根据实际工业观察,提出了一种有效且SOTA的模型,每一个模块都是精心设计,期待日后能有更多同类工作出现~

你可能感兴趣的:(ai)