一种基于生成对抗网络的表面缺陷检测方法

allin2025-05-29  113


本发明属于计算机视觉领域,具体涉及一种基于生成对抗网络的表面缺陷检测方法。


背景技术:

1、在工业制造生产场景中,表面缺陷检测是实际生产过程中的关键环节,产品存在表面缺陷不仅会影响产品的外观品质,而且会直接影响产品的功能和性能,甚至导致严重后果,在一定程度上给企业造成损失,为有效保证流入市场的产品良品率,维护良好企业形象,对产品进行表面缺陷检测便尤为重要。

2、传统用于识别表面缺陷的人工目视法,基于肉眼观测并依靠经验对缺陷进行检测,不仅识别效果易受主观因素的影响,而且成本高、效率低,不能满足工业生产的实时检测要求,更无法适应工业信息化的发展趋势。随着计算机视觉领域在工业检测上的发展,基于卷积神经网络的缺陷检测也被广泛研究,主要包括目标检测、语义分割、基于生成对抗网络和自动编码器的检测方法,以及基于预训练模型的方法。其中,基于标准检测模型ssd、yolo、faster r-cnn的目标检测模型通常具有良好的精度和速度,但是只能以矩形框的形式定位出缺陷的位置,无法提取到准确的缺陷轮廓,在一些特定的检测上并不能很好地满足市场需求。

3、在文献《automatic defect detection and segmentation of tunnel surfaceusing modified mask r-cnn》中提出了一种基于语义分割模型mask r-cnn的隧道缺陷检测方法,增加了一个路径增强特征金字塔网络(pafpn)和一个边缘检测分支以提高网络检测准确性;在发明专利“一种基于两阶段增量学习的表面缺陷分割方法”(专利号:202211600304.2)中以unet模型为语义分割基础,从模型参数的优化层面提高学习率的同时克服灾难性遗忘问题,使之能更好应用于表面缺陷分割。语义分割模型mask r-cnn、unet、segnet等虽然可以定位缺陷并分割出缺陷的实际轮廓,但是它们都是基于监督学习的方法,训练阶段需要大量的样本和像素级别的标注。在实际工业场景中,由于缺陷样本的数量通常较少,且人工标注成本高、易受主观因素影响。

4、基于无监督的缺陷检测方法在训练阶段样本不需要人工标注,近年来受到关注。在文献《基于卷积自编码器的医用玻璃瓶口缺陷检测方法》中通过建立编码器-解码器结构的卷积自编码网络缺陷检测模型,将空间和通道注意力的卷积注意力模块嵌入编码器中增强网络特征提取能力,结合多尺度结构相似性ms-ssim和l1损失来改善图像重构效果,实现了准确、高效的自动化产品质量检测;文献《automatic fabric defect detection with amulti-scale convolutional denoising autoencoder network model》中使用卷积去噪自编码器网络在多个高斯金字塔层重建图像块,并综合来自各分辨率通道的检测结果,利用每个图像补丁的重建残差作为直接像素级预测的指标,通过对每个分辨率级别的重构残差图进行分割和综合,生成最终的检测结果;在专利“一种基于gan改进算法的光伏组件无监督缺陷检测方法”(专利号:202010135948.3)中通过构建ssim-gan模型,由编码器网络生成输入正常图像对应的隐空间,利用结构相似性描述图像间的差异以此来判断图像是否存在缺陷。

5、上述基于无监督的缺陷检测方法主要基于自动编码器模型结构、借助重构误差判别待检测图像是否有缺陷,当待检测目标结构复杂时,模型在待检测图像上的重建残差通常较大,特别是本来没有缺陷的区域也存在较大的图像重建残差。另外,直接依据重建残差来构建缺陷轮廓分割图,通常受到噪声残差的干扰,导致难以精确检测面积较小的缺陷,且缺陷轮廓的分割图不准确,不能满足实际应用需求。


技术实现思路

1、本发明的目的在于克服上述不足,提供了一种基于生成对抗网络的缺陷检测方法,基于无缺陷样本训练具有矢量量化器和判别器的生成网络模型,并设计了专门的缺陷分割模块和基于transformer的精修方法,可得到待检测图像的有精确缺陷轮廓的缺陷分割图,该检测方法的步骤流程图可参阅附图1,解决现有无监督表面缺陷检测方法缺陷分割图不准确、面积较小的缺陷漏检率高的问题。

2、所公开的缺陷检测方法,包括以下步骤:

3、s1、采用正常无缺陷的样本,训练具有如下结构的生成对抗网络:

4、(1)网络依次由编码器、矢量量化器、解码器与判别器构成;

5、(2)编码器与解码器中含有se-resnet模块与基于sagan的自注意力模块(attnblock),其中se-resnet模块将输入特征图x分别经residual残差模块和shortcut操作后的结果相加得到新的特征图,再进行全局池化,接下来进行两次卷积核大小为1的卷积操作后使用sigmoid激活函数得到每个特征通道重要度,基于通道重要度对池化前的特征进行组合;自注意力模块(attn block)将卷积特征图x作为输入特征向量,使用卷积核大小为1的卷积层进行线性变换,线性变换输出的g(x),f(x),h(x)对应transformer模型的q,k,v,输出自注意结果;

6、(3)编码器与解码器中间有矢量量化器,矢量量化器使用一个特定的嵌入空间匹配并替换编码器的输出特征,以字典学习的方式,将编码器输出的每一维特征从嵌入空间中依概率大小采样进行替换,进而得到输入图片的离散特征图;

7、(4)解码器之后,连接判别器,判别器使用patchgan模型的判别器,它输出一个矩阵,矩阵中的每个元素是对图像中的某块局部区域(感受野)的评价;

8、s2、根据模型对输入图片的要求预处理待检测图片;

9、s3、定义一种基于transformer的图片精修方法,对矢量量化后的特征图索引进行重采样;

10、s4、利用步骤s1中的训练好的生成对抗网络结合步骤s3中发明的精修方法,对步骤s2处理后的待检测图片进行重构;

11、s5、将步骤s4得到的重构图像与步骤s2的待检测图像输入到发明的缺陷分割器中得到具有精确缺陷轮廓的缺陷分割图。

12、作为优选,步骤s1所述生成对抗网络的训练过程可参阅附图2,具体为:

13、s11、准备正常无缺陷的图片;

14、s12、构建训练数据集,该步骤通过以下子步骤实现:

15、s121、将训练集中的图像进行尺寸调整:先将原始图像灰度化,且大小调整为256×256,再将图像随机裁剪成适应模型的224×224大小;

16、s122、根据训练数据集的规模,选择随机水平翻转、mix-up、mosaic等图像增强方式对尺寸调整后的图像进行数据扩充;

17、s13、构建生成对抗网络模型,该步骤通过以下子步骤实现:

18、s131、构建生成器网络结构;所述生成器是基于矢量量化变分自动编码器(vq-vae)进行构建,由依次连接的编码器、矢量量化器、解码器组成,该步骤通过以下子步骤实现:

19、s1311、构建编码器网络结构;所述编码器包括依次连接的se-resnet(squeeze-and-excitation-residual network)、三个下采样模块(downsample)、基于sagan网络中的自注意力模块(attn block)、中间层模块(mid block)四个模块;所述的下采样模块的结构为两个se-resnet模块,在这之间使用卷积核大小为3步长为2的下采样卷积层;所述中间层模块为两个se-resnet模块,在这之间使用一个自注意力模块;所述se-resnet模块结合了se模块和residual模块,se模块可抑制不重要通道,residual模块使得建立更深的网络的同时不会出现梯度消失;所述自注意力模块解决卷积感受野有限的问题,也使得计算更简便;所述编码器的激活函数是swish激活函数,计算式为:

20、f(x)=x·sigmoid(x) (1)

21、s1312、构建矢量量化器:将图片编码后的连续特征映射到离散的特征空间;

22、(1)输入图片经过编码器输出为ze(x),通过卷积核大小为1的卷积将其通道数变为嵌入空间中向量的个数k,记为ze′(x),然后对ze′(x)的通道维度进行gumbelsoftmax操作,具体的:

23、

24、其中,gi=-log(-log(ui)),ui~u(0,1)称为gumbel噪声,目的是添加随机性增加探索度;πi表示嵌入空间中第i个向量被选中的概率,zi表示嵌入空间中第i个向量的采样概率,当τ越小(τ→0),整个softmax函数越逼近argmax,即z向量越接近one-hot分布;

25、(2)选取z向量中分量最大的下标k,然后查表将ek向量作为解码器的输入zq(x),即:

26、zq(x)=ek,其中k=argmaxjz (3)

27、s1313、构建解码器结构:所述解码器包括依次连接的se-resnet、中间层模块(midblock)、基于sagan网络中的自注意力模块(attn block)、三个上采样模块(upsample)、一个3×3卷积核的卷积层;所述上采样模块使用的是两个se-resnet模块,并在它们之间采用最近邻插值加卷积的组合方式;所述解码器的激活函数为swish函数;

28、s132、构建判别器网络:所述判别器包含五个子层,前四个子层的作用是提取输入图像的特征,每个子层由卷积层、归一化层、激活层组成,最后一个子层由卷积层和激活层组成,此处卷积层的作用是将特征图的通道数变为1;所述判别器的输出为n×n矩阵,矩阵中的每个值代表图像中的一块区域(感受野)的评价;所述判别器的激活函数为leakyrelu,计算式为:

29、f(x)=max(αx,x) (4)

30、式(4)中α为一个比较小的正值,本发明中将其取值为0.2;

31、判别器归一化层使用组归一化函数,计算式为:

32、

33、上式(5)中xi表示第i组数据,μg表示第i组数据的均值,表示第i组数据的方差,∈为一个较小正值,通常取10-6,γ和β表示可学习参数;

34、s133、所述的生成器和判别器构成生成对抗网络模块;

35、s14、训练生成对抗网络模型,该步骤通过以下子步骤实现:

36、s141、将步骤s12预处理后的图片输入编码器;

37、s142、编码器输出尺寸为28×28×c(c表示特征通道数)的特征图;

38、s143、通过矢量量化器将上述特征图替换为由嵌入空间中的向量组成的新特征图;

39、s144、将步骤s143产生的新特征图输入解码器,对输入图片进行重构;

40、s145、将经过预处理后的输入图像与经过重构的图像输入到判别器中,分别计算生成器损失和判别器损失,生成器损失为:

41、lg=λ1 lrec+λ2lssim+λ3lkl+λ4ladv (6)

42、上式(6)中lrec为重构损失,定义为:

43、lrec=ex~p(x)[||x-g(x)||1] (7)

44、上式(6)中lssim为结构性损失,考虑到ssim指标是从图像的亮度、对比度和纹理结构衡量两图像之间相似性,引入ssim相关的损失以提高生成图像的质量和加快网络的收敛速度,损失定义为:

45、

46、上式(8)中μx表示x的均值,σx表示x的标准差,px表示真实数据的分布,μx,μg(x)分别是以滑动窗口的方式计算的输入图片与重构图片的各像素平均灰度,σxg(x)为原始输入图像x与重构图像g(x)对比度参数的协方差;

47、上式(6)中ladv是为了进一步提高生成的图像的质量而引入的对抗损失,定义为:

48、ladv=ex~p(x)(d(g(x))-1)2 (9)

49、上式(6)中lkl为kl散度损失,是变分自编码器中后验分布与先验分布的一个约束,定义为:

50、lkl=dkl(qφ(z∣x)||pθ(z)) (10)

51、其中qφ(z∣x)表示ze′(x)在通道维度上归一化的概率分布,pθ(z)表示假定的嵌入空间的向量的采样分布服从均匀分布。

52、判别器损失为:

53、ld=ex~p(x)(d(x)-1)2+ex~p(x)(d(g(x))-0)2 (11)

54、s146、根据所述生成器与判别器损失函数,使用adam作为生成器和判别器的优化器,更新生成对抗网络的权值;

55、s15、保存步骤s14生成对抗网络中的参数及训练好的权值。

56、作为优选,步骤s2所述预处理测试集图片的具体过程如下:

57、s21、将测试集图像进行尺寸调整:先将原始图像灰度化,且大小调整为256×256;

58、s22、将步骤s21得到的图像中心裁剪为224×224的大小;

59、作为优选,步骤s3所述基于transformer的图片精修网络结构,所述结构的激活函数为gelu激活函数,该模块流程可参阅附图4,具体步骤如下:

60、s31、训练基于transformer的图片精修网络模块,该步骤通过以下子步骤实现:

61、s311、对矢量量化后得到的嵌入空间索引特征图序列化,随机挑选索引序列中25%的位置,同时80%的概率对被选中的索引进行遮掩,10%的概率随机替换当前位置索引,10%的概率保持不变;

62、s312、将步骤s311处理后的索引序列作为transformer的输入;

63、s313、利用transformer预测被选中位置的新索引;

64、s314、计算被选中位置遮掩前索引与transformer预测后的新索引之间的交叉熵损失函数,使用adamw优化器,其中β1=0.9,β2=0.95,学习率从0.0003经过100个epoch余弦退火到0.00005,最大训练epoch为200;

65、s32、保存步骤s31得到的基于transformer的精修网络模块中的参数及训练好的权值;

66、s33、利用步骤s31的训练结果,将步骤s2预处理后的待检测图片经编码器并矢量量化后得到采样概率图,对其中概率小于0.5的位置所对应的索引值进行遮掩;

67、s34、将步骤s33遮掩后的索引序列输入到transformer中,利用transformer预测遮掩位置处的新索引;

68、s35、新的索引序列输入到解码器解码成一张重构的新图片,对遮掩的索引序列进行8次重采样,均依次进行步骤s33和步骤s34操作,得到8张新图片;

69、s36、步骤s35所得到的8张图片进行算数平均操作,最终得到一张精修图片作为原始待检测图片的重构图片。

70、作为优选,步骤s4所述对输入的待检测图片进行重构,具体步骤如下:

71、s41、读取训练好的步骤s1训练好的生成对抗网络;

72、s42、读取步骤s3训练好的基于transformer的图片精修模块;

73、s43、将步骤s2中预处理之后的待检测图片输入改进后的网络结构中,得到重构后的待检测图片。

74、作为优选,步骤s5所述本发明提出的一种新颖的缺陷分割器,缺陷分割过程示意图可参阅附图5,具体包括以下分步骤:

75、s51、构建ssim相似度计算式,计算重构图片与步骤s2预处理后的待检测图片之间的差异特征图;

76、s511、以滑动窗口的方式构建局部ssim指数,固定ssim窗口大小为5,逐像素遍历整幅图片,设置使用标准差为1.0的高斯核进行加权平均;

77、s512、设μx,μg(x)分别为滑动窗口的方式得到的输入图片与重构图片的各像素的平均灰度,将平均灰度作为亮度的度量,计算亮度相似度l(x,g(x)),计算式为:

78、

79、s513、计算对比度相似度c(x,g(x)),计算式为:

80、

81、上式(13)中是根据窗口内各像素的平均亮度μx计算的窗口内各像素的标准差,称为对比度参数;

82、s514、计算结构相似度s(x,g(x)),计算式为:

83、

84、上式(14)中,σxg(x)为窗口内原始输入图像x与重构图像g(x)对比度参数的协方差;

85、s515、根据步骤s512、步骤s513和步骤s514构建ssim度量输入图片与重构图片之间的相似度,表达式为:

86、ssim=l(x,g(x))c(x,g(x))s(x,g(x)) (15)

87、同时,本发明中上式(15)中常数c2与c3满足数值关系得到最终的局部ssim指数表达式:

88、

89、s515、将步骤s2得到的图像与步骤s4重构图像进行padding为2的反射填充(reflect padding),然后ssim窗口以滑动的形式计算两幅图像的局部结构相似性,最终得到与测试图像相同大小的差异特征图;

90、s52、使用ostu算法对步骤s51中得到的特征图进行自适应阈值分割得到初步残差图,具体步骤如下:

91、s521、找到前景与背景的分割阈值t,该步骤可以通过以下子步骤实现:

92、s5211、统计重构图像中每个像素在整幅图像中的个数;

93、s5212、计算每个像素在整幅图像的概率分布;

94、s5213、遍历每一个灰度层,计算当前灰度值下前景背景类间概率;

95、s5214、建立目标函数:当分割阈值为t时的类间方差g(t),表示式为:

96、g(t)=w0×(u0-u)2+w1×(u1-u)2=w0×w1×(u1-u0)2 (17)

97、式(17)中,w0指前景像素个数,w1指背景像素个数,u0指前景加权平均,u1指背景加权平均,u=u0×w0+u1×w1指整幅图的加权平均;

98、s5215、找出使得步骤s5214中g(t)最大的t作为前景与背景的分割阈值;

99、s522、小于步骤s521得到的阈值t将被划分为背景,大于等于该阈值t将被划分为候选缺陷,从而得到带有部分噪声的残差图;

100、s53、遍历每张残差图中候选缺陷区域面积的最大值,并统计出使得f1指标最高的面积值作为最佳分割阈值k;

101、s531、从步骤s52中的残差图中找到面积最大的候选缺陷,并统计每张残差图的最大缺陷轮廓面积;

102、s532、将步骤s531中使得f1分数最高的面积值作为图像分割的最佳阈值k,其中f1分数的表达式为:

103、

104、上式(18)中precision为混淆矩阵中的准确率,recall为混淆矩阵中的召回率;

105、s54、利用步骤s53得到的最佳分割阈值k对步骤s52中的残差图进行二值化处理,得到去掉大部分噪声的较精确的缺陷分割图;

106、s541、若步骤s52中的图像中所有的候选区域的面积都小于步骤s53得到的最佳分割阈值k,则该图像将被判别为无缺陷;若图像中存在缺陷轮廓面积大于步骤s53中的最佳分割阈值k,则判定该图像为缺陷图像;

107、s542、若步骤s541中的检测图像被判别为缺陷图像,则将图像中小于最佳分割阈值的轮廓内的灰度值均设置为0,得到去掉大部分噪声且有准确缺陷位置的缺陷分割图。

108、综上所述,本发明所公开技术的区分技术特征至少包括:

109、1、本发明将ostu算法对差异特征图进行自适应阈值分割,找到使得f1分数最高的面积值作为判别是否具有缺陷的最佳阈值k,再将被判别为有缺陷的图片通过二值化得到去除大部分噪声且具有精确缺陷轮廓的缺陷分割图,提供了一种新颖的缺陷分割方法,该分割方法可有效去除重建残差中的噪声,同时有效发现面积较小的缺陷;

110、2、本发明所公开的模型中含有矢量量化器,可对输入图片通过稀疏编码空间进行编码得到离散特征空间,可起到正则化的作用,减缓训练阶段过拟合发生、提升重构图片质量,同时为图片精修模块奠定基础;

111、3、本发明提供了一种基于transformer的图片精修方法,将索引特征图序列化后,遮掩索引序列中不置信的索引,利用transformer预测遮掩位置处的新索引,解决由于测试阶段缺陷位置在训练阶段未被训练所带来的重建残差较大的问题。

112、与现有技术相比,本发明的有益效果是:

113、1、本发明所提供的一种新的缺陷分割方法,使得缺陷分割图具有更精确的缺陷轮廓,从而有效去除重建残差中的噪声,明显提升缺陷分割质量,;

114、2、在此基础上提出的基于transformer的图片精修方法,提高了矢量量化变分自动编码器重构的图像质量,有效减少缺陷区域漏检情况,弥补了现有缺陷检测方法对特定面积缺陷检测精度较低这一不足;

115、3、本发明所公开的技术是一种基于生成方法的无监督缺陷检测方法,仅需要没有缺陷的正常样本,适用于样本缺乏人工标注、有缺陷样本数量较少的场景。


技术特征:

1.一种基于生成对抗网络的表面缺陷检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于生成对抗网络的表面缺陷检测方法,其特征在于,步骤s1所述生成对抗网络的编码器与解码器之间有如下结构的矢量量化器:

3.根据权利要求1所述的一种基于生成对抗网络的表面缺陷检测方法,其特征在于,步骤s3所述对矢量量化后的特征索引基于transformer方法进行重采样,具体为:

4.根据权利要求1所述的一种基于生成对抗网络的表面缺陷检测方法,其特征在于,步骤s5所述的缺陷分割器的处理步骤具体为:


技术总结
本发明涉及图像处理领域,公开了一种基于生成对抗网络的表面缺陷检测方法。构建基于无监督重构思想的表面缺陷检测模型,将矢量量化变分自动编码器引入到缺陷检测模型中,得到输入图像的离散特征表示,以对抗训练的方式重构样本,根据预设阈值使用多种损失函数,使得模型可以修复缺陷样本,提出基于Transformer“精修”的方法对缺陷样本特征索引序列中某些不置信的位置进行遮掩处理,利用Transformer对遮掩位置进行多次预测,再解码成图像并加以平均操作以达到“精修”图像的目的。同时,提出一种利用OSTU算法对差异特征图进行自适应阈值分割的新式缺陷分割方法,进而达到精确缺陷分割的目的。与现有技术相比,本发明不仅可以得到更完整的重构图像,而且也具备更出色的缺陷精确分割效果,本发明避免了人工标注,在一定程度上解决了工业场景中单一使用卷积神经网络进行模型训练的检测过程中误检率和漏检率偏高的问题,同时,能够实现对多种缺陷精确且快速分割,更具实际应用价值。

技术研发人员:梁锡军,曾攀,汪怡,朱莉莉,渐令,宋允全,杜珅瑜
受保护的技术使用者:中国石油大学(华东)
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-21598.html

最新回复(0)