一种基于蒸馏学习机制的瑕疵检测装置、方法、存储介质与流程

文档序号:26896124发布日期:2021-10-09 12:40阅读:120来源:国知局
一种基于蒸馏学习机制的瑕疵检测装置、方法、存储介质与流程

1.本发明属于异常检测的技术领域,具体涉及一种基于蒸馏学习机制的瑕疵检测装置、方法、存储介质。


背景技术:

2.随着国家经济的繁荣发展,推动了制造业的快速发展,工业产品自动化生产技术已经成为了一种走向。工业产品在生产过程中或多或少会出现缺陷,如印刷电路板坏点、纺织品外观瑕疵、电子屏脏污等不可避免的表面瑕疵,及时检测出并清除这些不合格的产品,既可以保证工业产品的质量,也能大幅度提高生产效率。
3.工业产品瑕疵检测方法主要分为传统方法和人工智能方法。传统方法也分两种,一种完全由人眼检测,这种方法检测结果不稳定,检测人员的主观因素占比很大,而且随着产品产量的增加,检测人员会出现视觉疲劳,造成大量误检;另外一种是对工业产品提取手工特征进行分类,是一种应用传统图像处理衍生的技术,但是由于手工特征的缺陷,给瑕疵检测造成了较差的泛化性。人工智能方法是指使用基于深度学习的方法进行瑕疵检测,通过深度神经网络模型对采集的工业产品图像数据进行分析,定位出瑕疵的位置,在数据量较大且复杂的情况下,也能通过加深加宽网络模型,提高模型的特征表达能力,从而精准检测产品表面缺陷,得到了令人满意的检测效果。
4.目前,大多数基于深度学习的工业产品瑕疵检测都需要大量的产品图像数据,该数据需包含有瑕疵的数据和无瑕疵的数据,这样才能学习得到精度较高的模型,但是在实际场景中无瑕疵的工业产品图像数据获取较为容易,而有瑕疵的工业产品图像数据是随机出现的,采集较为困难,所以有监督的学习方式就不适合这种场景。因此,急需一种贴合实际场景、部署简单的工业产品瑕疵检测方案,能够只是用无瑕疵的工业产品进行学习,提高模型的泛化性和精确度。


技术实现要素:

5.本发明的目的在于提供一种基于蒸馏学习机制的瑕疵检测装置、方法、存储介质,旨在解决上述问题。
6.本发明主要通过以下技术方案实现:
7.一种基于蒸馏学习机制的瑕疵检测装置,包括采集模块、训练模块、检测模块;所述采集模块用于采集无瑕疵的工业产品图像样本,并形成训练集;所述训练模块用于采用训练集训练网络模型,所述网络模型包括主干网络结构一致的老师模型、学生模型,采用老师模型指导学生模型,最终得到优化的网络模型;所述检测模块用于将待测图像输入优化的网络模型并输出检测结果;所述老师模型的网络层复杂度高于学生模型的网络层复杂度,所述老师模型与学生模型之间的中间层添加有特征信息嫁接模块,用于对老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,判断学生模型特征信息的表达能力与老师模型的是否近似,如果差异较大,则将老师模型特征信息和学生模型特征信息进
行融合,并替换原始的学生模型特征信息。
8.为了更好地实现本发明,进一步地,所述特征信息嫁接模块包括特征信息差异值计算部分和嫁接特征信息计算部分,所述特征信息差异值计算部分用于将老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,当差异值大于阈值时,则进入嫁接特征信息计算部分,将老师模型特征信息与学生模型特征信息融合在一起,然后替换掉原本的学生模型特征信息,当差异值小于或等于阈值时,就不替换学生模型特征信息。
9.为了更好地实现本发明,进一步地,在特征信息输入到特征信息差异值计算部分后,需先依次用拉平层和全连接层处理,以减少高维度带来的额外计算量,然后进行差异值计算;所述特征信息差异值计算部分的计算公式如下:
[0010][0011]
其中:d为特征信息差异值,
[0012]
m为特征信息的维度,虽然老师模型和学生模型使用的模块复杂度不同,但模块最后一个输出层的输出维度相同,
[0013]
m为维度索引参数,
[0014]
s为学生模型特征信息,
[0015]
t为老师模型特征信息。
[0016]
为了更好地实现本发明,进一步地,在嫁接特征信息计算部分,在通道方向对老师模型和学生模型特征信息进行柔性最大值计算,得到每个通道上特征信息的概率值,当概率值大于阈值时,不替换该通道学生模型特征信息,否则将老师模型特征信息与学生模型特征信息进行融合,并替换掉该通道学生模型特征信息。
[0017]
为了更好地实现本发明,进一步地,嫁接特征信息计算部分的特征信息融合映射关系如下:
[0018]
f=f
s
+αf
t
[0019]
其中:f表示处理后的特征信息,
[0020]
f
s
表示学生模型特征信息,
[0021]
f
t
表示老师模型特征信息,
[0022]
α是一个可学习的调节参数。
[0023]
所述的特征信息嫁接模块主要由特征信息差异值计算部分和嫁接特征信息计算部分组成,特征信息差异值计算部分是将老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,当差异值大于阈值时,进入嫁接特征信息计算部分,将老师模型特征信息与学生模型特征信息融合在一起,然后替换掉原本的学生模型特征信息,若差异值小于阈值时,就不替换学生模型特征信息,最后这种特征信息嫁接方式随模型迭代训练进行计算。
[0024]
为了更好地实现本发明,进一步地,所述老师模型和学生模型的主干网络分别包括从前至后依次设置的卷积层、批标准化层、激活函数层、若干残差模块。
[0025]
为了更好地实现本发明,进一步地,所述老师模型采用resnet101结构,学生模型采用resnet20结构,所述老师模型和学生模型分别包含4个残差组合块,且老师模型的4个残差组合块中包含的残差模块数量依次为6、12、24、6,学生模型的4个残差组合块中包含的
残差模块数量依次为1、2、4、1。
[0026]
本发明主要通过以下技术方案实现:
[0027]
一种基于蒸馏学习机制的瑕疵检测方法,采用上述的瑕疵检测装置进行,包括以下步骤:
[0028]
步骤s100:采集无瑕疵、有瑕疵的工业产品图像样本,并形成训练集、测试集,所述训练集由无瑕疵的工业产品图像样本组成,所述测试集由无瑕疵、无瑕疵的工业产品图像样本组成;
[0029]
步骤s200:输入训练集,同时对老师模型和学生模型进行训练,在老师模型与学生模型之间添加特征信息嫁接模块,最后对老师模型、学生模型输出的特征信息进行损失计算,得到训练后的网络模型;
[0030]
步骤s300:采用测试集测试训练后的网络模型的精度,得到优化的网络模型;
[0031]
步骤s400:将待测图像输入优化的网络模型并输出检测结果。
[0032]
为了更好地实现本发明,进一步地,所述步骤s200中,进行损失计算的损失函数是欧式距离度量损失函数和余弦相似度损失函数,所述欧式距离度量损失函数是计算学生模型和老师模型特征信息之间的距离相似度作为损失值;所述余弦相似度损失函数是在特征信息通道方向上计算老师模型和学生模型特征信息之间损失值;欧式距离度量损失函数的计算公式如下:
[0033][0034]
其中:n为批处理大小,i为样本索引参数,s
i
为学生模型特征信息,t
i
为老师模型特征信息;
[0035]
余弦相似度损失函数的计算公式如下:
[0036][0037]
其中:j为特征信息维度索引,
[0038]
flatten()为特征向量变换函数,用于将高维特征信息转换成一维特征信息;
[0039]
最后,总的损失函数的计算公式为:
[0040]
l=l
dis
+λ(l
c1
+l
c2
+l
c3
+l
c4
)
[0041]
其中:l
c1
表示第一级残差组合块计算出的余弦相似度损失函数,
[0042]
l
c2
表示第二级残差组合块计算出的余弦相似度损失函数,
[0043]
l
c3
表示第三级残差组合块计算出的余弦相似度损失函数,
[0044]
l
c4
表示第四级残差组合块计算出的余弦相似度损失函数,
[0045]
λ为调节参数,设为0.8。
[0046]
所述的余弦相似度损失函数是在特征信息通道方向上计算老师特征信息和学生特征信息之间损失值,在特征信息嫁接模块放置的位置,都并行插入损失计算。所述的欧式距离度量损失函数是计算学生模型和老师模型中特征信息之间的距离相似度作为损失值。通用的蒸馏学习模型采用的中间层技术一般是利用损失函数指导拉近老师模型和学生模
型特征,而本发明在中间层中使用了特征信息嫁接模块和余弦相似度损失函数,双管齐下,在特征级上直接加快学生特征学习,提高精度,而在空间上间接缩短两模型特征距离,提高学生模型特征的鲁棒性。
[0047]
一种计算机可读存储介质,存储有计算机程序指令,所述程序指令被处理器执行时实现上述的瑕疵检测方法。
[0048]
本发明根据设计构建老师模型和学生模型,其结构上保持一致,但老师模型的网络层复杂度大于学生模型,然后通过在中间层添加特征信息嫁接模块加快学生模型的学习进度和检测精度,最后使用损失函数计算损失值优化模型参数。所述的特征信息嫁接模块通过计算出老师模型与学生模型之间特征信息差异值,选择是否将计算出的融合特征信息嫁接到学生模型中,从而提高学生模型对老师模型的模仿能力。本发明通过利用蒸馏学习机制搭建出老师模型和学生模型,然后在双支网络中间层中引入了特征信息嫁接模块,优化学生模型的表达能力,加速学生模型的学习过程,提高学生模型的检测精度。
[0049]
本发明利用预训练模型初始化老师模型,而学生模型采用随机初始化方法,还需选择优化器对损失值进行优化,并迭代更新模型参数,直到训练迭代次数等于总迭代次数时得到最终的模型,最后,在测试集上测试模型的精度。
[0050]
所述特征信息嫁接模块主要由特征信息差异值计算部分和嫁接特征信息计算部分组成,引入这个模块是因为大量卷积核处理之后得到的特征信息虽然能覆盖很多种特征,例如纹理、边缘等特征,但是这些特征信息中存在很多无用的特征,在常用的方法中通过微调加上模型迭代训练的方式可以移除部分无用的特征,但也一定程度限制了模型算法的检测潜力。本发明根据模型的目的提出了特征信息嫁接模块,模型的目的是让老师模型对学生模型进行指导,理想的效果是学生模型在无瑕疵的图像数据上的表达能力与老师模型接近,在这个过程中如果不对模型训练过程中学习的特征信息进行处理,忽略无用特征的影响,会导致学生模型达不到老师模型的表达能力,所以该模块的主要目的就是在学生模型的特征信息中移除这些无效特征,嫁接新的特征对网络进行重新激活,达到提高精度的目的。
[0051]
本发明先针对学生模型和老师模型同级残块组合块输出的特征信息之间差异值计算,再对差异值进行判断,差异值大于阈值,说明学生模型这级的学习到的特征信息与老师模型的特征相差很大,需要进行嫁接,从而进行嫁接特征信息计算部分。在嫁接特征信息计算部分不能按照主观想法进行替换,所以本发明先在通道方向上进行柔性最大值计算,特征信息每个通道上的特征的概率值,可以通过这个概率值判断该特征对模型学习的贡献程度,再通过阈值判断进行嫁接特征,其中,如果将老师模型的特征全部嫁接到学生模型中,会影响学生模型的自主学习能力,且限制学生模型的泛化性,所以本发明中嫁接到学生模型中的特征是计算出的新特征,并且添加了可学习的参数,可以达到平衡嫁接之后的学生模型特征的目的,让学生模型可以通过整体网络训练学习过程进行自适应选择可用的特征。
[0052]
本发明的有益效果:
[0053]
(1)本发明通过特征信息嫁接模块对老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,判断学生模型特征信息的表达能力与老师模型是否近似,如果差异太大,就将老师模型特征信息和学生模型特征信息融合替换原始的学生模型特征信息,
达到优化学生模型的表达能力,加速学生模型的学习过程的目的;
[0054]
(2)本发明利用学习能力较强的老师模型对学生模型进行无瑕疵样本学习指导,使学生模型能将无瑕疵样本特征信息较好的重构出来,增大重构的有瑕疵特征信息和无瑕疵特征信息之间差异,达到瑕疵检测的目的,实现贴合实际场景、部署简单的优势;
[0055]
(3)本发明只使用无瑕疵的数据训练生成模型,更加贴合实际情况,其次,在老师模型与学生模型双支网络的中间层中引入了特征信息嫁接模块,优化学生模型的表达能力,加速学生模型的学习过程,提高学生模型的检测精度。
附图说明
[0056]
图1为本发明整体网络的结构示意图;
[0057]
图2为特征信息嫁接模块的结构示意图;
[0058]
图3为特征信息嫁接的流程图;
[0059]
图4为模型训练的流程图。
具体实施方式
[0060]
实施例1:
[0061]
一种基于蒸馏学习机制的瑕疵检测装置,包括采集模块、训练模块、检测模块;所述采集模块用于采集无瑕疵的工业产品图像样本,并形成训练集;所述训练模块用于采用训练集训练网络模型,所述网络模型包括主干网络结构一致的老师模型、学生模型,采用老师模型指导学生模型,最终得到优化的网络模型;所述检测模块用于将待测图像输入优化的网络模型并输出检测结果。
[0062]
如图1所示,所述老师模型的网络层复杂度高于学生模型的网络层复杂度,所述老师模型与学生模型之间的中间层添加有特征信息嫁接模块,用于对老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,判断学生模型特征信息的表达能力与老师模型的是否近似,如果差异较大,则将老师模型特征信息和学生模型特征信息进行融合,并替换原始的学生模型特征信息。
[0063]
所述的特征信息嫁接模块通过计算出老师模型与学生模型之间特征信息差异值,选择是否将计算出的融合特征信息嫁接到学生模型中,从而提高学生模型对老师模型的模仿能力。本发明通过利用蒸馏学习机制搭建出老师模型和学生模型,然后在双支网络中间层中引入了特征信息嫁接模块,优化学生模型的表达能力,加速学生模型的学习过程,提高学生模型的检测精度。
[0064]
本发明只使用无瑕疵的数据训练生成模型,更加贴合实际情况,其次,在老师模型与学生模型双支网络的中间层中引入了特征信息嫁接模块,优化学生模型的表达能力,加速学生模型的学习过程,提高学生模型的检测精度。
[0065]
实施例2:
[0066]
本实施例是在实施例1的基础上进行优化,如图2所示,所述特征信息嫁接模块包括特征信息差异值计算部分和嫁接特征信息计算部分,所述特征信息差异值计算部分用于将老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,如图3所示,当差异值大于阈值时,则进入嫁接特征信息计算部分,将老师模型特征信息与学生模型特征信息
融合在一起,然后替换掉原本的学生模型特征信息,当差异值小于或等于阈值时,就不替换学生模型特征信息。
[0067]
进一步地,如图3所示,在特征信息输入到特征信息差异值计算部分后,需先依次用拉平层和全连接层处理,以减少高维度带来的额外计算量,然后进行差异值计算;所述特征信息差异值计算部分的计算公式如下:
[0068][0069]
其中:d为特征信息差异值,
[0070]
m为特征信息的维度,虽然老师模型和学生模型使用的模块复杂度不同,但模块最后一个输出层的输出维度相同,
[0071]
m为维度索引参数,
[0072]
s为学生模型特征信息,
[0073]
t为老师模型特征信息。
[0074]
进一步地,如图3所示,在嫁接特征信息计算部分,在通道方向对老师模型和学生模型特征信息进行柔性最大值计算,得到每个通道上特征信息的概率值,当概率值大于阈值时,不替换该通道学生模型特征信息,否则将老师模型特征信息与学生模型特征信息进行融合,并替换掉该通道学生模型特征信息。
[0075]
进一步地,嫁接特征信息计算部分的特征信息融合映射关系如下:
[0076]
f=f
s
+αf
t
[0077]
其中:f表示处理后的特征信息,
[0078]
f
s
表示学生模型特征信息,
[0079]
f
t
表示老师模型特征信息,
[0080]
α是一个可学习的调节参数。
[0081]
本发明利用学习能力较强的老师模型对学生模型进行无瑕疵样本学习指导,使学生模型能将无瑕疵样本特征信息较好的重构出来,增大重构的有瑕疵特征信息和无瑕疵特征信息之间差异,达到瑕疵检测的目的,实现贴合实际场景、部署简单的优势。
[0082]
本实施例的其他部分与实施例1相同,故不再赘述。
[0083]
实施例3:
[0084]
本实施例是在实施例1或2的基础上进行优化,如图1所示,所述老师模型和学生模型的主干网络分别包括从前至后依次设置的卷积层、批标准化层、激活函数层、若干残差模块。所述激活函数层采用参数修正线性单元层。
[0085]
进一步地,所述老师模型采用resnet101结构,学生模型采用resnet20结构,所述老师模型和学生模型分别包含4个残差组合块,且老师模型的4个残差组合块中包含的残差模块数量依次为6、12、24、6,学生模型的4个残差组合块中包含的残差模块数量依次为1、2、4、1。
[0086]
本实施例的其他部分与上述实施例1或2相同,故不再赘述。
[0087]
实施例4:
[0088]
一种基于蒸馏学习机制的瑕疵检测方法,采用上述的瑕疵检测装置进行,包括以下步骤:
[0089]
步骤s100:采集无瑕疵、有瑕疵的工业产品图像样本,并形成训练集、测试集,所述训练集由无瑕疵的工业产品图像样本组成,所述测试集由无瑕疵、无瑕疵的工业产品图像样本组成;
[0090]
步骤s200:输入训练集,同时对老师模型和学生模型进行训练,在老师模型与学生模型之间添加特征信息嫁接模块,最后对老师模型、学生模型输出的特征信息进行损失计算,得到训练后的网络模型;
[0091]
步骤s300:采用测试集测试训练后的网络模型的精度,得到优化的网络模型;
[0092]
步骤s400:将待测图像输入优化的网络模型并输出检测结果。
[0093]
进一步地,所述步骤s200中,进行损失计算的损失函数是欧式距离度量损失函数和余弦相似度损失函数,所述欧式距离度量损失函数是计算学生模型和老师模型特征信息之间的距离相似度作为损失值;所述余弦相似度损失函数是在特征信息通道方向上计算老师模型和学生模型特征信息之间损失值。
[0094]
欧式距离度量损失函数的计算公式如下:
[0095][0096]
其中:n为批处理大小,i为样本索引参数,s
i
为学生模型特征信息,t
i
为老师模型特征信息;
[0097]
余弦相似度损失函数的计算公式如下:
[0098][0099]
其中:j为特征信息维度索引,
[0100]
flatten()为特征向量变换函数,用于将高维特征信息转换成一维特征信息;
[0101]
最后,总的损失函数的计算公式为:
[0102]
l=l
dis
+λ(l
c1
+l
c2
+l
c3
+l
c4
)
[0103]
其中:l
c1
表示第一级残差组合块计算出的余弦相似度损失函数,
[0104]
l
c2
表示第二级残差组合块计算出的余弦相似度损失函数,
[0105]
l
c3
表示第三级残差组合块计算出的余弦相似度损失函数,
[0106]
l
c4
表示第四级残差组合块计算出的余弦相似度损失函数,
[0107]
λ为调节参数,设为0.8。
[0108]
本发明利用学习能力较强的老师模型对学生模型进行无瑕疵样本学习指导,使学生模型能将无瑕疵样本特征信息较好的重构出来,增大重构的有瑕疵特征信息和无瑕疵特征信息之间差异,达到瑕疵检测的目的,实现贴合实际场景、部署简单的优势。
[0109]
实施例5:
[0110]
一种基于蒸馏学习机制的瑕疵检测方法,包括以下步骤:
[0111]
采集无瑕疵和有瑕疵的工业产品图像样本,将大部分无瑕疵样本作为训练集,并将剩余无瑕疵样本和全部有瑕疵样本作为测试集;
[0112]
根据设计构建老师模型和学生模型,其结构上保持一致,但老师模型的网络层复杂度大于学生模型,然后通过在中间层添加特征信息嫁接模块加快学生模型的学习进度和
检测精度,最后对老师模型输出的特征信息和学生模型输出的特征信息进行损失计算;
[0113]
利用欧式距离度量损失函数和余弦相似度损失函数组合计算上述特征信息之间的损失值;
[0114]
如图4所示,利用预训练模型初始化老师模型,而学生模型采用随机初始化方法,还需选择优化器对损失值进行优化,并迭代更新模型参数,直到训练迭代次数等于总迭代次数时得到最终的模型,最后,在测试集上测试模型的精度。
[0115]
进一步地,如图1所示,所述的老师模型与学生模型采用通用主干网络结构,两者保持结构一致,都采用卷积层、批标准化层、激活函数层、若干残差模块按一定组合规则堆叠,但网络层复杂度不一样,在实施例中老师模型采用resnet101结构,而学生模型采用resnet20结构,都有4个残差组合块,老师模型中残差组合块中包含的残差模块数量依次是6、12、24、6,学生模型中残差组合中包含的残差模块数量依次是1、2、4、1。
[0116]
进一步地,如图2所示,所述的特征信息嫁接模块主要由特征信息差异值计算部分和嫁接特征信息计算部分组成,特征信息差异值计算部分是将老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,如图3所示,当差异值大于阈值时,进入嫁接特征信息计算部分,将老师模型特征信息与学生模型特征信息融合在一起,然后替换掉原本的学生模型特征信息,若差异值小于阈值时,就不替换学生模型特征信息,最后这种特征信息嫁接方式随模型迭代训练进行计算。
[0117]
进一步地,所述的余弦相似度损失函数是在特征信息通道方向上计算老师特征信息和学生特征信息之间损失值,在特征信息嫁接模块放置的位置,都并行插入损失计算。
[0118]
进一步地,所述的欧式距离度量损失函数是计算学生模型和老师模型中特征信息之间的距离相似度作为损失值。
[0119]
本发明只使用无瑕疵的数据训练生成模型,更加贴合实际情况,其次,在老师模型与学生模型双支网络的中间层中引入了特征信息嫁接模块,优化学生模型的表达能力,加速学生模型的学习过程,提高学生模型的检测精度。
[0120]
本发明利用学习能力较强的老师模型对学生模型进行无瑕疵样本学习指导,使学生模型能将无瑕疵样本特征信息较好的重构出来,增大重构的有瑕疵特征信息和无瑕疵特征信息之间差异,达到瑕疵检测的目的,实现贴合实际场景、部署简单的优势。
[0121]
实施例6:
[0122]
一种基于蒸馏学习机制的瑕疵检测方法,包括以下步骤:
[0123]
采集无瑕疵和有瑕疵的工业产品图像样本,将大部分无瑕疵样本作为训练集,并将剩余无瑕疵样本和全部有瑕疵样本作为测试集;
[0124]
根据设计构建老师模型和学生模型,如图1所示,网络模型整体结构为双分支结构,根据设计构建老师模型和学生模型,其结构上保持一致,但老师模型的网络层复杂度大于学生模型,然后通过在中间层添加特征信息嫁接模块加快学生模型的学习进度和检测精度;
[0125]
最后对老师模型输出的特征信息和学生模型输出的特征信息进行损失计算。
[0126]
进一步地,如图1所示,老师模型与学生模型采用通用主干网络结构,两者保持结构一致,都采用卷积层、批标准化层、激活函数层、若干残差模块按一定组合规则堆叠,但网络层复杂度不一样,在实施例中老师模型采用resnet101结构,而学生模型采用resnet20结
构,都有4个残差组合块,老师模型中残差组合块中包含的残差模块数量依次是6、12、24、6,每个残差组合块称为复杂残差组合块,学生模型中残差组合中包含的残差模块数量依次是1、2、4、1,每个残差组合块称为简单残差组合块。
[0127]
进一步地,如图2所示,特征信息嫁接模块主要由特征信息差异值计算部分和嫁接特征信息计算部分组成,特征信息差异值计算部分是将老师模型和学生模型同级的残差组合块的特征信息进行差异值计算,计算公式如下:
[0128][0129]
公式中d为特征信息差异值,m为特征信息的维度,虽然老师模型和学生模型使用模块复杂度不同,但模块最后一个输出层的输出维度相同,m为维度索引参数,s为学生模型特征信息,t为老师模型特征信息。
[0130]
进一步地,如图3所示,特征信息输入到特征信息差异值计算部分后,需先用拉平层和全连接层处理,减少高维度带来的额外计算量。
[0131]
进一步地,然后,当差异值大于阈值时,将进行嫁接特征信息计算部分,若差异值小于阈值时,就不替换学生模型特征信息,这个阈值设为0.2。
[0132]
进一步地,替换特征信息是在特征信息的通道方向替换的,如图2所示,特征信息是一个特征块,每个通道上表示不同意义的特征,如图3所示,在通道方向对特征信息进行柔性最大值计算,得到每个通道上特征信息的概率值,当概率值大于阈值时不进行处理,反之将老师模型特征信息与学生模型特征信息进行融合,阈值设为0.3,最后将组合成的特征信息输出。嫁接特征信息计算部分中特征信息融合映射关系如下:
[0133]
f=f
s
+αf
t
[0134]
公式中f表示处理后的特征信息,f
s
表示学生模型特征信息,f
t
表示老师模型特征信息,α是一个可学习的调节参数。
[0135]
进一步地,本发明使用的损失函数是欧式距离度量损失函数和余弦相似度损失函数,欧式距离度量损失函数计算公式如下:
[0136][0137]
公式中n为批处理大小,i为样本索引参数,s
i
为学生模型特征信息,t
i
为老师模型特征信息。
[0138]
进一步地,余弦相似度损失函数计算公式如下:
[0139][0140]
公式中j为特征信息维度索引,flatten()为特征向量变换函数,将高维特征信息转换成一维特征信息。
[0141]
最后,总的损失函数计算公式为:
[0142]
l=l
dis
+λ(l
c1
+l
c2
+l
c3
+l
c4
)
[0143]
公式中l
c1
表示第一级残差组合块计算出的余弦相似度损失函数其他相似参数以
此类推,如图1所示,每级残差组合块都进行余弦相似度损失值计算,λ为调节参数,设为0.8。
[0144]
进一步地,如图4所示,利用预训练模型初始化老师模型,而学生模型采用随机初始化方法,还需选择优化器对损失值进行优化,并迭代更新模型参数,直到训练迭代次数等于总迭代次数时得到最终的模型,最后,在测试集上测试模型的精度。
[0145]
本发明在训练的过程中,将训练的图像同时输入学生模型和老师模型,计算两个模型输出的特征信息的差异值,其中老师模型因为设定了预训练参数,是可以区分无瑕疵产品图像和有瑕疵产品图像,而学生模型只是学习了无瑕疵产品图像,所以针对有瑕疵的产品图像,老师模型可以将特征信息很好的重构出来,而学生模型重构的不好,最后计算特征信息重构差异值,就可以判断该产品图像样本是否存在瑕疵,差异值大则存在瑕疵,反之即正常。如果需要定位出瑕疵的位置,就要将模型进行反向传播通过梯度变化找到瑕疵的位置。
[0146]
综上所述,本发明提出的瑕疵检测方法只需使用无瑕疵的产品图像样本进行学习,减少了样本采集困难的情况出现,更为贴合实际场景,网络结构搭建易操作,可实施性更高。
[0147]
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1