一种基于软优化知识蒸馏的带钢表面缺陷识别方法

未命名 07-27 阅读:111 评论:0


1.本发明涉及表面缺陷识别技术领域,具体涉及一种基于软优化知识蒸馏的带钢表面缺陷识别方法。


背景技术:

2.带钢是自动驾驶、电机、和变压器等领域的主要制作材料,裂纹、夹杂、斑块、划痕等表面缺陷会严重损害带钢的抗腐蚀性、抗疲劳性和铁损特性。若存在缺陷的带钢在出厂前未能被鉴别出来,直接影响电机、变压器等产品的性能,甚至可能导致严重的安全事故。因此,产品的表面缺陷识别必须覆盖在生产的中间关节以及出厂前的最后环节。而且,随着消费水平的不断升级,大众对产品的质量和外观越来越关注,生产高质量、高可靠性的产品已是大势所趋。在这种背景下,产品表面缺陷识别有助于减少大量生产成本、提高产品质量和生产效率。然而现阶段的产品缺陷检查主要依赖于专业技术人员的人工观察,这种识别方法既费时又存在主观性。因此,对于钢铁表面缺陷的识别,期望一种高精度且快速的自动识别方法。
3.目前,针对表面缺陷的自动识别有很多的研究和相关专利。在早期,表面缺陷识别多采用传统的图像分析方法。申请号为cn201811245513.3的中国发明专利申请公开了一种基于图像识别的表面缺陷识别方法,提出通过对表面缺陷图像中缺陷轮廓以及表面缺陷图像与背景之间轮廓的提取来识别表面缺陷,这些算法存在对不同手机膜表面纹理和光照敏感的问题,需要人为设定很多阈值等缺点。最近,随着深度学习在图像识别领域取得了重大突破,申请号为cn202011264401.x的中国发明专利申请公开了一种基于迁移学习的钢板表面缺陷的分类方法,使用神经网络模型mobilenet,但这种模型虽然提高了缺陷识别的速度,但是精度提升有限,而且为了提高识别速度设计的深度可分离卷积结构不利于硬件部署,难以应用在实际的工业场景当中。
4.现存最先进的基于计算机视觉的自动识别方法要么是使用大型模型面向精度,但导致推理速度上的高延迟,要么是使用轻量级模型面向速度,但牺牲了检测精度。虽然一些轻量级分类算法权衡了精度与速度,但往往会设计一些特殊的结构,对硬件的要求较高,很难广泛应用在工业生产中。就钢铁表面缺陷的识别成本而言,亟待一种在资源受限的平台例如常规gpus甚至是嵌入式系统就可以实现高精度且高速的自动识别方法。为此,提出一种基于软优化知识蒸馏的带钢表面缺陷识别方法。


技术实现要素:

5.本发明所要解决的技术问题在于:如何减少模型高额的存储空间以及计算资源消耗,将缺陷识别网络更稳定、高效地部署在硬件平台上,从而在极大地降低识别成本的同时又能兼顾识别精度,提供了一种基于软优化知识蒸馏的带钢表面缺陷识别方法。
6.本发明是通过以下技术方案解决上述技术问题的,本发明包括以下步骤:
7.s1:图像样本处理
8.获取带钢表面缺陷数据库中的带钢表面缺陷图像样本,形成带钢表面缺陷数据集,并对带钢表面缺陷数据集中的样本进行预处理;
9.s2:构建并训练教师网络
10.构建一个带钢表面缺陷识别网络,即教师网络,在步骤s1中经过预处理的带钢表面缺陷数据集上进行训练和测试,得到符合识别性能要求的教师模型;
11.s3:软优化知识蒸馏训练
12.从教师网络中提取一个子结构,即学生网络,利用软优化知识蒸馏训练学生网络,得到符合识别性能要求的学生模型并保存模型,即得到带钢表面缺陷识别模型;
13.s4:缺陷识别
14.利用步骤s3中得到带钢表面缺陷识别模型对待识别带钢表面缺陷图像进行识别,获取识别结果。
15.更进一步地,在所述步骤s1中,具体过程如下:
16.s11:将带钢表面缺陷数据集中的样本按照固定比例划分为训练集和测试集;
17.s12:将训练集和测试集中的样本尺寸调整为设定尺寸,并对样本进行随机裁剪、随机水平翻转处理。
18.更进一步地,在所述步骤s2中,具体过程如下:
19.s21:选择卷积神经网络resnet-152作为教师网络,利用其在imagenet上训练好的权重进行迁移学习,并将卷积神经网络resnet-152中最后一层输出神经元的数目由imagenet的1000类更改为6类,在带钢表面缺陷数据集上进行训练;
20.s22:将教师网络经过训练集训练得到的教师模型在测试集上进行测试,输出测试结果。
21.更进一步地,在所述步骤s3中,具体过程如下:
22.s31:分析教师网络的结构,从中提取一个子结构作为学生网络;
23.s32:进行学生网络的自主学习和教师模型的知识传递;
24.s33:设置好训练参数,让学生网络在教师模型的指导下进行训练。
25.更进一步地,在所述步骤s31中,resnet-152网络包括50个瓶颈残差块,每个瓶颈残差块均包括2个1x1和1个3x3的卷积块,选择第一个瓶颈残差块作为学生网络。
26.更进一步地,在所述步骤s32中,学生网络自主学习的优化目标是将交叉熵损失函数最小化,定义为硬损失:
[0027][0028]
其中,m表示样本类别数目,n表示样本总数目,y
ij
表示输入xi的真实标签,是学生网络s
θ
的输出概率分布。
[0029]
更进一步地,在所述步骤s32中,教师模型的知识传递是指将教师模型自身的先验知识传递到学生网络当中。
[0030]
更进一步地,在所述步骤s32中,具体过程如下:
[0031]
s321:设为教师模型t
θ
输出的概率分布;
[0032]
s322:引入温度因子t对其他类别的预测值进行放大,为学生网络在自主学习时提
供额外的类别信息,将温度因子t的值设置在设定范围内,生成如下的软概率分布:
[0033][0034]
其中,zi表示第i类的对数值,t是温度因子,k∈[0,m);
[0035]
然后采用相同的温度因子使学生网络生成软概率分布来匹配教师模型的软概率分布;
[0036]
s323:采用kl散度去最小化学生与教师模型软概率分布之间的误差,定义为软损失:
[0037][0038]
学生网络最后一层每个神经元输出的值的logit z
si
的交叉熵梯度为:
[0039][0040]
当温度因子t的值超出对数值达到预设范围且学生网络最后一层每个神经元输出的值均为零均值,则得到:
[0041][0042]
s324:得到软优化知识蒸馏的总目标函数为:
[0043]
l(s
θ
,xi)=αt2l
soft
(s
θ
)+(1-α)l
hard
(s
θ
)
[0044]
其中,α用于权衡t2l
soft
(s
θ
)和l
hard
(s
θ
)两项的比重。
[0045]
更进一步地,在所述步骤s33中,具体过程如下:
[0046]
s331:训练步长设置为200个epoch,批处理大小为32,初始学习率为0.0001;
[0047]
s332:采用带有预热型的余弦退火学习率衰减方案对学习率进行更新,直到模型稳定学习后回归起始设定的学习率大小;
[0048]
s333:在训练阶段,每间隔50个训练epoch就减少超参数α的值;
[0049]
s334:训练完毕得到符合识别性能要求的学生模型。
[0050]
本发明相比现有技术具有以下优点:
[0051]
(1)从一个识别精度为100%,速度为22fps的大网络resnet-152(教师)中提取出了一个简化的子网络(学生网络);
[0052]
(2)提取出的子网络在教师模型的指导下,达到了100%的识别精度,且参数量和浮点运算次数只有大模型的0.12%及1.5%,识别速度更是达到了200fps;
[0053]
(3)蒸馏出的学生模型不仅兼顾了识别精度与速度,而且没有复杂的结构,更有利于硬件的部署。
附图说明
[0054]
图1是本发明实施例中基于软优化知识蒸馏的带钢表面缺陷识别方法的流程图的流程示意图;
[0055]
图2(a)是本发明实施例中neu-cls数据库中带钢表面麻点缺陷样本示例图;
[0056]
图2(b)是本发明实施例中neu-cls数据库中带钢表面夹杂缺陷样本示例图;
[0057]
图2(c)是本发明实施例中neu-cls数据库中带钢表面轧制氧化皮缺陷样本示例图;
[0058]
图2(d)是本发明实施例中neu-cls数据库中带钢表面裂纹缺陷样本示例图;
[0059]
图2(e)是本发明实施例中neu-cls数据库中带钢表面划痕缺陷样本示例图;
[0060]
图2(f)是本发明实施例中neu-cls数据库中带钢表面斑块缺陷样本示例图;
[0061]
图3是本发明实施例中软优化知识蒸馏的过程示意图;
[0062]
图4是本发明实施例中预热型余弦退火与传统阶梯式学习率衰减方案的比较示意图;
[0063]
图5是本发明实施例中学生模型最后一层卷积t-sne对提取特征的可视化示例图。
具体实施方式
[0064]
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0065]
本实施例提供一种技术方案:一种基于软优化知识蒸馏的带钢表面缺陷识别方法,以对热轧带钢表面缺陷为例进行识别,如图1所示,其步骤如下:
[0066]
s1:对带钢表面缺陷的图像样本进行预处理。
[0067]
在步骤s1中,包括以下两个子步骤:
[0068]
s11:在neu-cls官网上获取热轧带钢表面缺陷图像数据库(neu-cls数据库),以7:3的比例划分为训练集和测试集,典型的6类缺陷样本,即麻点(pitted surface,ps)、夹杂(inclusion,in)、轧制氧化皮(rolled-in scale,rs)、裂纹(crazing,cr)、划痕(scratches,sc)、斑块(patches,pa)的示例如图2(a)-(f)所示;
[0069]
s12:将训练集中的图像尺寸调整为224
×
224,并对训练样本进行随机裁剪和翻转等数据增强处理。
[0070]
s2:构建一个高性能的带钢表面缺陷识别网络(教师网络),在带钢表面缺陷数据集上进行训练,并测试教师模型的识别性能。
[0071]
在步骤s2中,包括以下三个子步骤:
[0072]
s21:选择识别性能高的resnet-152网络作为教师网络,具体结构如表1所示;
[0073]
表1教师网络的结构
[0074][0075]
s22:将resnet-152网络最后一层中输出神经元的数目更改为6,并利用其在imagenet数据集上训练好的权重对neu-cls训练集进行微调;
[0076]
s23:将教师网络经过训练集训练得到的教师模型在测试集上进行测试,输出测试结果,查看识别性能是否满足教师的要求,即各种识别准确率的指标尽可能接近于100%。
[0077]
s3:从教师网络中提取一个子结构(学生网络),利用软优化知识蒸馏训练这个学生网络。
[0078]
在步骤s3中,包括以下三个子步骤:
[0079]
s31:如表1所示,resnet-152网络(教师网络)包含50个瓶颈残差块(residual block),每个瓶颈残差块均包含2个1x1和1个3x3的卷积块,选择第一个瓶颈残差块作为学生网络,可以最高限度的压缩学生模型的参数,极大地减少了模型训练和推理的时间;
[0080]
s32:如图3所示,软优化知识蒸馏包括学生网络的自主学习和教师模型的知识传递两个部分。
[0081]
具体的,在步骤s32中,软化知识蒸馏的第一部分,学生网络自主学习的优化目标是将交叉熵损失函数最小化,这里定义为硬损失:
[0082][0083]
其中,m表示样本类别数目,n表示样本总数目,y
ij
表示输入xi的真实标签,是学生网络s
θ
的输出概率分布;
[0084]
具体的,在步骤s32中,软化知识蒸馏的第二部分,教师模型的知识传递是指一个能力强大的模型将自身的先验知识传递到学生网络当中。教师网络通常比学生网络的性能更强大,在教师网络的指导下,学生网络可以在参数量比教师网络少的情况下得到充分训
练。
[0085]
步骤s32的具体过程如下:
[0086]
s321:假设为教师模型t
θ
输出的概率分布,由于其他类别所预测的概率很小,不能为学生网络提供额外的类别信息,从而造成学生网络在学习时容易产生过拟合、泛化性差、识别精度低等情况,因此不能直接用于指导学生网络的学习。
[0087]
s322:这里引入温度因子t对其他类别的预测值进行放大,从而为学生网络在自主学习时提供额外的类别信息。温度因子t越大,模型输出的概率分布就会偏“软”,这种软概率分布会提示学生网络“这是某一种缺陷类别的图像的概率最大,是某种或多种缺陷图像的概率较小,是剩下缺陷类别图像的概率是0”。因此,只要温度因子t的值在一定范围内就能生成一组较为合适的软概率分布:
[0088][0089]
其中,zi表示第i类的对数值,t是温度因子,温度越高,预测类别的概率分布越软,k∈[0,m);然后采用相同的温度因子使学生网络生成软概率分布来匹配教师模型的软概率分布。
[0090]
323:由于kl散度可以衡量两种分布的差异,因此采用kl散度去最小化学生与教师模型软概率分布之间的误差,这里将其称为“软损失”:
[0091][0092]
其中,是已知的,所以第二项为常数,因此学生网络的logit z
si
(网络最后一层每个神经元输出的值)的交叉熵梯度为:
[0093][0094]
如果温度因子t的值远高于对数值,且网络最后一层每个神经元输出的值均为零均值,则上式可简化为:
[0095][0096]
由于kl散度损失函数产生的梯度的大小被缩小了1/t2,因此将其乘以t2以确保梯度的贡献与自主学习时大致保持不变。
[0097]
s324:综上所述,软优化知识蒸馏的总目标函数为:
[0098]
l(s
θ
,xi)=αt2l
soft
(s
θ
)+(1-α)l
hard
(s
θ
)
[0099]
其中α用于权衡t2l
soft
(s
θ
)和l
hard
(s
θ
)两项的比重。知识蒸馏时,教师模型总是先进行预先训练的,并且在指导学生时通常使用较高的权重α,即教师模型的知识传递处于学习
环节的主导地位时,学生模型往往可以获得最好的识别结果。然而“学生网络总能在老师的持续指导下才能学习的更好”这种思想,却与实际反映的结果有所差异。具体表现为过分注重于最小化软损失而忽略硬损失,进而限制了学生网络进一步的学习。
[0100]
在所述步骤s324中,教师模型的先验知识对于学生网络学习的约束问题,在训练阶段,每间隔50个训练epoch就减少超参数α的值。因此,学生网络在训练的前半阶段专注于对教师网络的学习;在训练的后半阶段逐渐摆脱教师模型先验知识的约束,即更注重减少硬损失。
[0101]
s33:设置好训练参数,让教师模型在教师网络的指导下进行训练。详细的训练方案为:
[0102]
s331:训练步长设置为200个epoch,批处理大小为32,初始学习率为0.0001。
[0103]
s332:采用带有预热型的余弦退火学习率衰减方案对学习率进行更新,直到模型稳定学习后回归起始设定的学习率大小。如图4所示,相比传统阶梯式的学习率衰减方案,带预热型的余弦退火学习率衰减方案在网络训练前期学习率衰减缓慢,确保模型快速地学习;在训练后期学习率衰减迅速,使得模型能够保持较小的学习率进行稳定地学习。
[0104]
s333:在训练阶段,每间隔50个训练epoch就减少超参数α的值,这样可以减少教师网络的先验知识对于学生网络在后半阶段的学习约束。
[0105]
s334:为了了解学生模型是否真正学习到相关的重要信息,我们对学生模型最后一层卷积的特征进行了可视化。如图5所示,可以看出相同类别的缺陷特征被紧密地聚类到一起,而不同类别的缺陷特征相距较远,即模型拥有较小的类内聚散度和较大的类间聚散度。
[0106]
s4:在独立测试集上验证学生的识别性能。详细方案如下:
[0107]
s41:为了评估本发明的有效性,我们在测试集上测试了蒸馏后的学生模型(带钢表面缺陷识别模型)与其它一些先进的缺陷识别方法进行了对比,测试结果如表2所示:
[0108]
表2本发明中学生模型与其他先进模型的比较
[0109][0110]
从表2中可以看出,本发明所设计的带钢表面缺陷识别模型的参数量仅有0.07m、
浮点运算(flops)仅为177.02m、推理速度(fps)达到了200,而且识别准确率、精确率、召回率和f1分数都达到了100%。
[0111]
s42:为了评估本发明提出方案的可扩展性,我们在保持教师网络不变的情况下还选择了不同的学生网络进行了蒸馏,评估结果如表3所示。
[0112]
表3软化知识蒸馏方法拓展到其他分类网络的结果
[0113][0114][0115]
由表3可以看出,squeezeunit、denseunit、mobilenetv3unit和bottleneck都以极少的参数量与flops达到100%的识别性能,其余网络的基础单元都实现99%以上的识别性能,而且其参数量以及flops都远远小于教师网络,且识别速度是教师网络的5倍左右。因此,一方面可以看出本发明所提出的基于软化知识蒸馏的带钢表面缺陷识别方法是有效的,可扩展的;另一方面,在教师网络与学生网络设计方面对非神经网络专家来说是友好的,即对热轧带钢表面缺陷识别任务来说可以压缩任意一种经典的卷积神经网络。
[0116]
综上所述,上述实施例的基于软化知识蒸馏的带钢表面缺陷识别方法,先训练了一个大规模但识别精度高的大模型(教师模型),再从教师网络中提取出一个子结构(学生网络),最后以软优化知识蒸馏方案对学生网络进行训练,得到了一个高精度的缺陷识别模型,减少了模型高额的存储空间以及计算资源消耗,将缺陷识别模型更稳定、高效的落地在硬件平台上。
[0117]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于,包括以下步骤:s1:图像样本处理获取带钢表面缺陷数据库中的带钢表面缺陷图像样本,形成带钢表面缺陷数据集,并对带钢表面缺陷数据集中的样本进行预处理;s2:构建并训练教师网络构建一个带钢表面缺陷识别网络,即教师网络,在步骤s1中经过预处理的带钢表面缺陷数据集上进行训练和测试,得到符合识别性能要求的教师模型;s3:软优化知识蒸馏训练从教师网络中提取一个子结构,即学生网络,利用软优化知识蒸馏训练学生网络,得到符合识别性能要求的学生模型并保存模型,即得到带钢表面缺陷识别模型;s4:缺陷识别利用步骤s3中得到带钢表面缺陷识别模型对待识别带钢表面缺陷图像进行识别,获取识别结果。2.根据权利要求1所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s1中,具体过程如下:s11:将带钢表面缺陷数据集中的样本按照固定比例划分为训练集和测试集;s12:将训练集和测试集中的样本尺寸调整为设定尺寸,并对样本进行随机裁剪、随机水平翻转处理。3.根据权利要求1所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s2中,具体过程如下:s21:选择卷积神经网络resnet-152作为教师网络,利用其在imagenet上训练好的权重进行迁移学习,并将卷积神经网络resnet-152中最后一层输出神经元的数目由imagenet的1000类更改为6类,在带钢表面缺陷数据集上进行训练;s22:将教师网络经过训练集训练得到的教师模型在测试集上进行测试,输出测试结果。4.根据权利要求1所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s3中,具体过程如下:s31:分析教师网络的结构,从中提取一个子结构作为学生网络;s32:进行学生网络的自主学习和教师模型的知识传递;s33:设置好训练参数,让学生网络在教师模型的指导下进行训练。5.根据权利要求4所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s31中,resnet-152网络包括50个瓶颈残差块,每个瓶颈残差块均包括2个1x1和1个3x3的卷积块,选择第一个瓶颈残差块作为学生网络。6.根据权利要求5所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s32中,学生网络自主学习的优化目标是将交叉熵损失函数最小化,定义为硬损失:
其中,m表示样本类别数目,n表示样本总数目,y
ij
表示输入x
i
的真实标签,p

(x
i
)是学生网络s
θ
的输出概率分布。7.根据权利要求6所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s32中,教师模型的知识传递是指将教师模型自身的先验知识传递到学生网络当中。8.根据权利要求7所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s32中,具体过程如下:s321:设为教师模型t
θ
输出的概率分布;s322:引入温度因子t对其他类别的预测值进行放大,为学生网络在自主学习时提供额外的类别信息,将温度因子t的值设置在设定范围内,生成如下的软概率分布:其中,z
i
表示第i类的对数值,t是温度因子,k∈[0,m);然后采用相同的温度因子使学生网络生成软概率分布来匹配教师模型的软概率分布;s323:采用kl散度去最小化学生与教师模型软概率分布之间的误差,定义为软损失:学生网络最后一层每个神经元输出的值的logit z
si
的交叉熵梯度为:当温度因子t的值超出对数值达到预设范围且学生网络最后一层每个神经元输出的值均为零均值,则得到:s324:得到软优化知识蒸馏的总目标函数为:l(s
θ
,x
i
)=αt2l
soft
(s
θ
)+(1-α)l
hard
(s
θ
)其中,α用于权衡t2l
soft
(s
θ
)和l
hard
(s
θ
)两项的比重。9.根据权利要求8所述的一种基于软优化知识蒸馏的带钢表面缺陷识别方法,其特征在于:在所述步骤s33中,具体过程如下:s331:训练步长设置为200个epoch,批处理大小为32,初始学习率为0.0001;s332:采用带有预热型的余弦退火学习率衰减方案对学习率进行更新,直到模型稳定学习后回归起始设定的学习率大小;s333:在训练阶段,每间隔50个训练epoch就减少超参数α的值;s334:训练完毕得到符合识别性能要求的学生模型。

技术总结
本发明公开了一种基于软优化知识蒸馏的带钢表面缺陷识别方法,属于表面缺陷识别技术领域,包括以下步骤:S1:图像样本处理;S2:构建并训练教师网络;S3:软优化知识蒸馏训练;S3:软优化知识蒸馏训练。本发明先训练了一个大规模但识别精度高的大模型(教师模型),再从教师网络中提取出一个子结构(学生网络),最后以软优化知识蒸馏方案对学生网络进行训练,得到了一个高精度的缺陷识别模型,减少了模型高额的存储空间以及计算资源消耗,将缺陷识别模型更稳定、高效的落地在硬件平台上。高效的落地在硬件平台上。高效的落地在硬件平台上。


技术研发人员:王兵 卢琨 潘学娟 汪文艳 吴紫恒 周郁明 马小陆
受保护的技术使用者:安徽工业大学
技术研发日:2023.04.10
技术公布日:2023/7/25
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐