基于正样本的产品表面缺陷视觉检测方法

左 旺,陈仲生,李潮林,柳浩鹏

(湖南工业大学 电气与信息工程学院,湖南 株洲 412007)

随着中国制造业的快速发展,工业产品的数量和种类与日俱增。消费者和生产企业对产品的表面质量提出了更高要求,因此产品的表面缺陷视觉检测已成为质检重要环节之一。近年来随着高性能并行计算技术的逐渐成熟,机器深度学习在表面缺陷检测领域中取得了成功,逐渐替代了传统的人工目视检测方式。由于现阶段采用深度学习的表面缺陷检测需要大量的标注样本,将会耗费较大的人力,这极大限制了现有表面缺陷检测方法的应用。而无监督学习表面缺陷检测模型仅需要少量的正样本进行训练,已成为更适合于表面缺陷检测场景的检测方法[1]。

无监督学习在表面缺陷检测方法中,大致可以分为重构方法和嵌入向量相似性方法。重构网络方法是当样本中存在缺陷时,利用生成对抗网络生成的重构网络可以对缺陷进行修复,然后将输入样本与重构样本进行比较,得出准确的缺陷区域[2]。嵌入向量相似性方法是使用卷积神经网络来提取有意义的向量表示整张或局部图片用以缺陷检测,使用测试图像的嵌入向量和代表正常训练集的参考向量之间的距离作为缺陷分数[3]。

目前国内外学者对表面缺陷检测方法做了大量的研究工作。陈财彪等[4]提出了一种基于LBP(local binary pattern)直方图和SIFT(scale invariant feature transform)的药品包装缺陷检测方法,在一定程度上减少了运算时间,提高了检测效率,但该方法没有实现定位缺陷区域。董豪等[5]提出了一种基于YOLOv4(you only look once)的缺陷检测方法,实现了对药用空心胶囊多类型缺陷的分类与定位,且具有较好的检测效果和稳定性,但仍需大量标注样本训练检测模型。Wang Y.L.等[6]提出了一种增强重建方法和自监督训练策略的无监督学习方法,该方法使用没有标记的缺陷样本进行训练,在测试阶段中重建残差用于检测轮胎缺陷,但此方法只能完成二分类缺陷检测任务。Wang J.C.等[7]提出了一种无监督方法来检测和定位图案化纹理表面图像上的缺陷,利用扩展的深度卷积生成对抗网络重建方法,实现对缺陷分割。

综上所述,目前国内外科研人员在表面缺陷视觉检测方面已经取得了丰硕的研究成果。然而工程应用中仍存在如下问题:1)基于有监督学习的表面缺陷检测方法需要大量的标注样本;
2)大多数无监督表面缺陷检测方法只能对缺陷图像分类,而无法定位缺陷区域。为此,本文提出一种基于含注意力机制残差网络的表面缺陷检测模型,只需少量正样本进行训练,实现基于像素级的缺陷区域定位,同时在主干网络引入注意力机制,能够有针对性地在图像数据的空间范围内提取有效的特征信息,与已有的方法相比,检测精度更高,从而可以有效解决少样本的产品缺陷视觉检测难题。

为了有针对性地在图像数据的空间范围内提取有效的特征信息,本文将注意力模块(convolutional block attention module,CBAM)集成到Resnet50 的Bottleneck 结构中,提出一种基于含注意力机制残差网络的表面缺陷检测模型,如图1 所示。

图1 含注意力机制的表面缺陷检测模型Fig.1 Surface defect detection model with an attention mechanism

由图1 可知,首先,正样本的每个Patch 位置都与加入注意力模块的预训练网络Resnet50_CBAM 中其空间对应的激活向量相关联,将来自不同层的激活向量连接起来,得到包含来自不同语义层和分辨率信息的嵌入向量。其次,通过降维方法减少嵌入向量的冗余信息。最后,从嵌入向量中学习多元高斯参数用以表示图片的正常特征[3]。

测试阶段的模型框架如图2 所示,首先,将缺陷图像通过预训练网络Resnet50_CBAM 计算出嵌入向量;
其次,训练阶段正样本的均值和协方差,通过马氏距离计算出所有像素点的缺陷分数图;
再次,利用阈值判断整张图片每个像素点是否为缺陷,得到预测掩膜;
最后,对缺陷图像和预测掩膜采用形态学操作,得到缺陷定位图,实现缺陷的定位。

图2 模型测试流程Fig.2 Model testing process

1.1 CBAM 注意力机制

CBAM 注意力机制分为两个独立的部分,通道注意力模块和空间注意力模块。CBAM 注意力机制根据特征图实现卷积运算,并利用混合跨通道和空间信息提取信息特征,使提取到的特征更为精炼,增强了模型的表现力。

1.1.1 通道注意力模块

为了让输入的图像更有意义,利用通道注意力模块为每个通道分配不同的权重,让网络关注重要的特征,抑制不重要的特征,从而提高特征表示能力。通道注意力模块采用了平均池化(AvgPool)和最大池化(MaxPool)两种处理方式,分别利用不同的信息,保持通道维度不变,压缩空间维度,让模块关注输入特征层中有意义的信息。模型框架如图3 所示。

图3 通道注意力模块示意图Fig.3 Channel attention module schematic diagram

由图3 可知,首先,输入特征层F,经过两个并行的AvgPool和MaxPool将C×H×W的特征图变成C×1×1 的大小;
其次,经过一个Shared MLP(共享卷积神经网络),压缩通道数C/r,r为压缩因子,再扩张回通道数C,得到两个激活后的结果,把得到的两个特征相加后通过一个Sigmoid激活函数获得权重系数MC;
最后,权重系数和原来的特征层F相乘即可获得缩放后的新特征层F',从而完成通道注意力操作,如式(1)所示[8]。

1.1.2 空间注意力模块

为了提升图像关键区域的特征表达,增强感兴趣的特定目标区域,同时弱化不相关的背景区域,从而引入空间注意力模块。空间注意力模块保持空间维度不变,压缩通道维度,该模块关注的是目标的位置信息。模型框架如图4 所示。

图4 空间注意力模块示意图Fig.4 Spatial attention module schematic diagram

由图4 可知,首先,由通道注意力模块所求出的特征层F',通过AvgPool和MaxPool得到的两个H×W×1 的特征张量,并把这两个张量拼接到一起;
其次,经过一个 7×7 的卷积层(激活函数为Sigmoid),获得权重系数MS;
最后,将权重系数和特征相乘即可得到缩放后的新特征层F〞,完成空间注意力操作,如式(2)所示[8]。

1.2 Resnet50_CBAM 网络结构

本文将CBAM 注意力模块集成到Resnet50 的Bottleneck 结构中,在每个(1×1,3×3,1×1) 卷积层后加入CBAM 注意力模块,沿着通道和空间两个维度依次推断出注意力权重,对特征进行自适应调整,进行端到端的训练,Resnet50_CBAM 网络结构如图5 所示。利用ImageNet 数据集对Resnet50_CBAM 网络进行预训练,得到预训练权重。在对本文模型输入少量的正样本进行训练时,只需加载预训练权重并能够快速完成训练阶段。

图5 Resnet50_CBAM 网络结构示意图Fig.5 Schematic diagram of Resnet50_CBAM network structure

2.1 提取嵌入向量

在训练和测试阶段,将图像的每个patch 关联到预训练网络Resnet50_CBAM,映射其空间对应的激活向量。然后将来自不同层次的激活向量连接起来,得到包含不同语义层次和分辨率信息的嵌入向量,从而使得网格中的每个patch 位置都与上面计算的嵌入向量相关联。由于预训练网络层数较多,嵌入向量可能含有冗余信息,本文采用随机降维方法进行降维。

2.2 学习正样本

在训练阶段,本文将从少量的N张正样本中计算出嵌入向量集Xij,如式(3)所示,用以表示正常图像不同(i,j)位置的特征信息。

式中:k为正样本数量;

(i,j)为每个像素块位置,且

其中W为原图像宽度;

H为原图像高度。

本文假设Xij之间相互独立,Xij可由多元高斯分布表示,uij为样本的均值,Cov(i,j)为样本的协方差,如式(4)所示。

式中正则化项∈I使得协方差矩阵满足可逆条件。

在训练阶段计算出正样本的嵌入向量Xij,从中学习多元高斯参数N(uij,Cov(i,j))用以表示图片的正常特征。在测试阶段中,缺陷图像通过预训练网络计算出嵌入向量xij。根据马氏距离公式可计算出正样本与缺陷图像相对应每个像素点之间的距离,得到每张测试图像的缺陷分数图,如式(5)所示。

式中:uij为正样本的均值;

xij为缺陷图像的嵌入向量。

3.1 数据集与评价指标

为了验证本文所提出方法的有效性,本文在MVTec 木地板图像公开数据集进行了实验。实验环境为Inter i5 CPU、Nvidia GTX2080GPU、8 GB 内存、Python3.7 及Pytorch 框架。木地板的缺陷类型包括油污、钻洞、褶皱、划伤等,如图6 所示。木地板的图像大小为1 024×1 024×3,本文将图像切割成224×224×3 大小的木地板图像块,使用50 张无缺陷木地板图像作为训练集,71 张木地板缺陷图像作为测试集。

图6 木地板缺陷类型示意图Fig.6 Different types of defects in wood flooring

为了评估模型对木地板图像的缺陷检测性能,本文采用真阳性率TPR、假阳性率FPR、ROCAUC分数以及F1作为评价指标,如式(6)~(8)所示。

式(6)~(8)中:TP为真正例,表示预测类别和真实类别都为缺陷像素点(缺陷图像)的数量。

TN为真反例,表示预测类别和真实类别都为正常像素点(正样本)的数量。

FP为假正例,表示预测类别为缺陷像素点(缺陷图像)而真实类别为正常像素点(正样本)的数量。

FN为假负例,表示预测类别为正常像素点(正样本)而真实类别为缺陷像素点(缺陷图像)的数量。

ROCAUC分数为计算曲线ROC下AUC的面积,为了更好度量分割缺陷性能,使用像素级ROCAUC(image ROCAUC)和图像级ROCAUC(pixel ROCAUC)作为评价指标之一。

F1为图像查全率和图像查准率的调和均值,是衡量检测模型精确度的评价指标。

3.2 实验参数设置

本文输入图像的大小为224×224 像素,训练集与测试集的批次大小为26,Patch 尺寸设置为56×56。由于嵌入向量是由不同层次的激活向量所组成,其中激活向量分别为Resnet50_CBAM 网络的第一阶段输出层(Layer1)、第二阶段输出层(Layer2)、第三阶段输出层(Layer3)和第四阶段输出层(Layer4),对应输出维度为(256×56×56),(512×28×28),(1 024×14×14),(2 048×7×7)。为了更好表示不同语义层次的嵌入向量,本文分别使用不同层次的激活向量作为嵌入向量,测试结果如表1 所示。由表中数据可知,前三层输出相加比前三层任意一层输出的评价指标得分都高,由此可得出,层数越深具有更高的语义信息,能够更好的代表正样本的特征,但将前四层输出相加的评价指标得分比前三层输出相加要低,是因为第四层维度很深,信息更复杂,难以特征表示。因此,在本文采用Layer1+2+3 作为超参数。

从嵌入向量中学习多元高斯分布表示图片正常特征,由于前三层组成的嵌入向量共有1 792 维(256+512+1 024),可能含有冗余信息,本文采用随机降维方法对嵌入向量降维至某一维度d,减少模型的计算和内存复杂性,并采用F1作为评价指标,测试结果如表2 所示。从表2 中可以看出,当维度d=550 时模型的F1分数最高。因此,本文采用d=550作为超参数。

表2 不同维度嵌入向量的测试结果Table 2 Test results of embedded vectors in different dimensions

3.3 实验结果分析

本文以50 张木地板正样本作为训练集,71 张木地板缺陷图像作为测试集,设置相同的超参数。首先使用Resnet50 和Resnet50_CBAM 预训练网络分别进行测试,不同预训练网络的测试结果如表3 所示,可知加入注意力机制模块网络的F1值、image ROCAUC和pixel ROCAUC评价指标得分均高于Resnet50 预训练网络的。同时本文对Resnet 101 和Resnet 152 网络加入注意力机制模块,测试结果表明,各评价指标得分都小于Resnet50_CBAM 预训练网络的得分,由此可以得出,加入注意力机制的网络能进一步提升精度,但网络越深、结构越复杂,注意力机制对网络的影响越小。

表3 不同预训练网络的测试结果Table 3 Test results of different pre-training networks

本文以Resnet50_CBAM 作为预训练网络,使用不同批次正样本数作为输入图像,分别为5,10,20,30,50 个正样本,不同样本数的测试结果如表4 所示。由表中数据可知,以50 个样本进行训练时,测试结果 的F1值、image ROCAUC和pixel ROCAUC评 价指标得分最高,其他批次正样本数的评价指标得分相比50 个样本虽然有所降低,但各评价指标得分相对较高,没有大幅度下降,说明本模型适用于少样本数的表面缺陷检测。

表4 不同样本数的测试结果Table 4 Test results under different sample numbers

本文对测试结果的图像进行可视化检测,结果如图7 所示。由图7a 所示测试阶段输入的缺陷图像、图7b 所示缺陷图像的真实掩膜、图7c 所示预测结果的热力图可以发现,引入注意力机制模块后特征覆盖到图像的缺陷区域,这表明注意力机制能使网络聚焦重点信息;
图7d 为预测掩膜,对预测结果进行形态学操作的开运算;
图7e 为预测图像,并用线框定位缺陷区域。

图7 测试结果Fig.7 Test results

为了评估木地板表面缺陷检测方法的性能,本文将该方法与已有文献中的SPAD[9]和PatchCore[10]两种无监督检测方法进行对比分析,设置相同的超参数、训练集和测试集数量,不同算法的测试结果如表5 所示。由表5 可知,本文方法比其他两种检测算法具有更好的检测效果,其原因在于本文方法融入了注意力机制,能针对性地在图像数据空间范围内提取有效的特征信息,减少了模型对冗余数据的处理过程,从空间上改善了模型捕获图像数据核心特征的能力,从而提升了检测精度[11]。

表5 不同算法测试结果比较Table 5 Comparison of test results from different algorithms

本文提出了一种基于正样本的产品表面缺陷视觉检测方法。在训练阶段,通过预训练网络Resnet50_CBAM 学习到包含来自不同语义层和分辨率信息的嵌入向量,并利用多元高斯参数用以表示图像的正常特征。在测试阶段,将缺陷图像通过预训练网络学习到的嵌入向量和表示正样本特征的多元高斯参数,通过马氏距离计算出整张缺陷图像所有像素点的缺陷分数图。本文方法将注意力机制加入Resnet50 网络,能够有针对性地在图像数据的空间范围内提取有效的特征信息,减少了模型对冗余数据的处理过程,从空间上改善了模型捕获图像数据核心特征的能力,提升了模型的检测精度。不足之处是本文方法对新的样本进行表面缺陷检测结果不是很好,之后将继续从提高算法的泛化性方面展开研究。

猜你喜欢注意力向量样本向量的分解新高考·高一数学(2022年3期)2022-04-28让注意力“飞”回来小雪花·成长指南(2022年1期)2022-04-09用样本估计总体复习点拨中学生数理化·高一版(2021年2期)2021-03-19聚焦“向量与三角”创新题中学生数理化(高中版.高考数学)(2021年1期)2021-03-19推动医改的“直销样本”知识经济·中国直销(2018年8期)2018-08-23“扬眼”APP:让注意力“变现”传媒评论(2017年3期)2017-06-13随机微分方程的样本Lyapunov二次型估计数学学习与研究(2017年3期)2017-03-09A Beautiful Way Of Looking At Things第二课堂(课外活动版)(2016年2期)2016-10-21向量垂直在解析几何中的应用高中生学习·高三版(2016年9期)2016-05-14村企共赢的样本中国老区建设(2016年1期)2016-02-28

推荐访问:样本 缺陷 检测方法