本发明涉及深度学习,具体为一种基于dtgan模型的铝型材表面缺陷检测方法。
背景技术:
1、近年来,我国铝型材的需求和应用市场发生了巨大的变化。由于铝及其合金材料具有密度小、耐腐蚀性强和可塑性高等优点,使其成为仅次于钢铁的重要金属材料。然而,铝型材在生产过程中可能会产生各种缺陷,尤其是表面缺陷,这会严重影响产品的质量、安全性、使用性和美观性。因此,准确识别出有问题的铝型材在生产中至关重要。此外,生产环境和工艺可能会导致铝型材表面被油渍、泥点和灰尘等遮挡物覆盖,增加了识别表面缺陷的难度。尽管传统的人工识别方法在某些情况下有效,但它们难以应对生产环境的复杂性。为了解决这个问题,采取适当的措施来修复这些缺陷图像是必要的。
2、现有技术对于铝型材表面缺陷的检测进行了一系列研究,例如,周晓锋等(中国科学院沈阳自动化研究所.基于机器视觉的铝型材表面缺陷检测方法:cn201310442167.9[p].2015-03-25.)提供了基于机器视觉的铝型材表面缺陷检测方法,实现了铝型材表面缺陷的实时检测,且效率、准确性较高。魏若峰(魏若峰.基于深度学习的铝型材表面瑕疵识别技术研究[d].浙江大学,2019.)提出了多尺度瑕疵检测网络,解决了表面瑕疵尺寸差异大的问题。
3、以上述文献为代表的铝型材表面缺陷检测方法研究存在诸多不足,主要表现为:
4、(1)文献1中对纹理区域采用水平边缘检测算子检测缺陷,该算子对噪声敏感,边缘可能不连续且较粗糙,可能会忽略一些细微的边缘;
5、(2)文献1基于图像处理的机器视觉识别不适用于特征复杂多变的表面缺陷;
6、(3)文献2采用深度残差学习网络作为瑕疵检测的特征提取框架,需要大量的计算资源来训练和推理,特别是在网络较深时,在深度残差网络中有大量的冗余;
7、(4)文献2网络结构较大,难以适应工业环境中计算机有限的计算和存储能力。
技术实现思路
1、本发明的目的在于提供一种基于dtgan模型的铝型材表面缺陷检测方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于dtgan模型的铝型材表面缺陷检测方法,包括以下步骤:
3、s1:双任务模式的生成式对抗网络是在dcgan网络结构基础上进行改进,增设一个识别器c;dtgan由生成器g以及判别器d和识别器c组成;
4、s2:对dtgan网络结构的训练分为图像修复阶段和图像识别阶段;
5、s3:在图像修复阶段,引入“相似感知损失函数”构建修复阶段生成器g的损失函数;在图像识别阶段,识别器c的损失函数由无监督损失函数和半监督损失函数组成;
6、s4:基于差分进化算法对dtgan模型参数进行优化,将4层卷积层、全连接层的权重以及偏置作为参数,编码后作为染色体,按照差分变异、交叉、选择、保留参数步骤,进行寻优;全连接层的权重包括共4层卷积核和1层全连接层的权重;偏置包括共4层卷积层和1层全连接层的偏置;
7、s5:数据掩膜处理,通过在样本的随机位置进行二进制掩膜处理来等效模拟缺陷的随机遮挡,从各类缺陷中各随机挑选出小样本集并将其中每个样本元素和中的对应元素相乘得到积,得到的积即为带随机遮挡物的缺陷图像,用于完成图像修复任务;
8、s6:损坏铝型材表面缺陷图像修复,先对dtgan模型进行数据分布学习,用处理好的铝型材数据集训练生成器,生成器在训练过程从随机噪声向量中利用卷积神经网络强大的数据特征提取能力学习数据分布;
9、s7:铝型材表面缺陷识别,识别过程中的识别器使用操作,识别过程中生成器和识别器均使用批量标准化,提取出上层隐含层的输出结果的均值和标准差,进行批量标准化后,输入到下一层;参数调优算法采用的算法。
10、进一步的,所述s2中,对dtgan的训练分为图像修复阶段和图像识别阶段,对应dtgan处理双任务的功能要求。
11、进一步的,所述s3中,修复阶段生成器g的损失函数为:
12、loss_g_complete=λ1perceptual_loss+λ2contextual_loss+λ3similar_perceptual_loss
13、其中,λ1=1,λ2=0.1,λ3=0.01,表示的不同损失函数的权重系数。perceptual_loss为感知损失函数,而contextual_loss为上下文损失函数,其表达式如下:
14、contextual_loss=l1(maskθg(z)-maskθp′data(x))
15、其中,mask表示的是二进制掩膜,g(z)为生成器g生成的伪图像像素点值高维分布,p′data(x)为用于等效处理成损坏图像的数据集,l1范数,即向量中各元素绝对值之和。
16、similar_perceptual_loss表达式如下:
17、
18、表示修复辅助数据集。
19、进一步的,所述s3中,由无监督损失函数和半监督损失函数组成识别器c的损失函数。识别器c的总损失函数表达式如下:
20、loss_c=loss_c_unsupervused+loss_c_supervised
21、总损失函数表达式中无监督损失函数如下:
22、
23、其中,pmodel(·)表示的是识别器c判别为伪数据的概率。
24、总损失函数表达式中半监督损失函数如下:
25、
26、进一步的,所述s4中,变异过程中的缩放因子取固定值0.7;交叉概率cr取固定值0.6,对两个染色体个体在特定的交叉区域进行互换;选择过程将网络训练精度作为适应度度量函数,采用最佳个体保存方法,具体实现过程为:
27、(1)找出当前群体中适应度最高的个体和适应度最低的个体;用到的python实现函数为np.argmax(),该函数返回第一次出现最大值的索引;
28、(2)当前种群中最优适应度值高于迭代以来最优适应度值时,用相应个体代替迭代以来最优个体进行寻优;
29、(3)用目前为止的最优个体替换掉当前种群中适应度最差的个体;
30、若适应度满足条件或者达到终止迭代次数,保存最优模型参数用于后续过程中设置为dtgan模型的三大架构网络参数,优化结束;否则继续寻优。
31、进一步的,所述s5中,数据掩膜处理时将该样本集中每个样本元素和mask中的对应元素相乘得到hadamard积,hadamard积矩阵计算如下:
32、c=(cij)=(aij)×(bij)
33、得到的hadamard积即为带随机遮挡物的缺陷图像,用于完成图像修复任务;
34、更具体的mask实现过程如下:用python语句np.ones()将mask向量初始化为一个shape与image_shape相同的全1向量,再根据随机遮挡的随机位置、随机数量,设置相应的参数,使得向量mask相应的位置设置为0,最后将批量缺陷图像输入向量与作点乘,即得到带随机遮挡物的缺陷图像。
35、进一步的,所述s6中,损坏铝型材表面缺陷图像修复,图像修复阶段正式开启前,要对dtgan模型进行数据分布学习;首先用处理好的铝型材数据集训练生成器,生成器在训练过程从随机噪声向量z~pz(z)中利用卷积神经网络强大的数据特征提取能力学习数据分布,并在训练到一定阶段保存生成器的模型参数。
36、进一步的,所述s7中,铝型材表面缺陷识别,识别过程中的识别器使用dropout操作,按照前向传播计算预计输出,计算误差按照反向传播,更新保留下来的节点信息值,再恢复被删除的节点后循环上述过程;识别过程中生成器和识别器均使用batchnormalization批量标准化,提取出上层隐含层的输出结果的均值和标准差,进行批量标准化后,输入到下一层,通过调整相应的可学习参数恢复网络重要的学习特征。参数调优算法采用的adam算法。
37、与现有技术相比,本发明的有益效果是:
38、本发明构建一种可同步适用于铝型材表面缺陷进行缺陷表面去任意形状遮挡物和缺陷的分类识别双任务的gan模型,即dtgan。其中,引入相似感知损失函数,用以提高修复质量,然后基于差分进化算法对dtgan模型参数进行优化。得到dtgan模型后,用预处理好的缺陷图像集对其进行训练,然后进行数据掩膜处理,损坏铝型材表面缺陷图像修复工作,最后进行铝型材表面缺陷识别,并采用adam算法进行参数调优。此方法能有效检测铝型材表面缺陷,有效解决了铝型材生产过程中产生的缺陷识别基本问题以及损坏缺陷图像影响缺陷识别结果需要进行图像修复的问题,具有一定的工业生产价值。