一种基于知识蒸馏的工业缺陷检测模型压缩方法转让专利

申请号 : CN202310412539.7

文献号 : CN116152240B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈宇陈震

申请人 : 厦门微图软件科技有限公司

摘要 :

本发明公开了一种基于知识蒸馏的工业缺陷检测模型压缩方法,该方法包括:构建并训练教师模型;通过知识蒸馏方式将教师模型蒸馏至学生模型,包括:中间网络层特征蒸馏:学生模型采用特征蒸馏方式学习教师模型中间网络层的特征信息,使学生模型在不同深度的中间网络层中反复的去接近教师模型在相应中间网络层的特征信息,然后使用教师模型的软标签训练学生模型网络;softmax层目标蒸馏:学生模型采用软目标和硬目标结合的方式学习教师模型的softmax层特征信息。本发明采用知识蒸馏方式,将提前训练的较复杂、精度较高的工业缺陷检测的模型具备的能力蒸馏到结构简单的轻量级模型上,在保证高精度检出率的前提下,使模型参数简单化,提高检出效率。

权利要求 :

1.一种基于知识蒸馏的工业缺陷检测模型压缩方法,其特征在于包括以下步骤:构建并训练教师模型;

通过知识蒸馏方式将教师模型蒸馏至学生模型,包括:

中间网络层特征蒸馏:学生模型采用特征蒸馏方式学习教师模型中间网络层的特征信息,使学生模型在不同深度的中间网络层中反复的去接近教师模型在相应中间网络层的特征信息,然后使用教师模型的软标签训练学生模型网络;具体包括:选择待蒸馏的中间网络层,在学生模型的中间网络层后面接上卷积层,使其输出特征信息尺寸与教师模型的输出特征信息尺寸保持一致;

根据特征蒸馏方式训练学生模型的中间网络层参数;

使用教师模型中间网络层的软标签来训练学生模型的中间网络层;

softmax层目标蒸馏:学生模型采用软目标和硬目标结合的方式学习教师模型的softmax层特征信息;所述软目标指使用教师模型的softmax层所输出的概率值引导学生模型学习教师模型的知识,所述硬目标指使用教师模型的最后的标签值去引导学生模型学习时教师模型的知识;具体包括:设定教师模型softmax层输出的概率值为初始软标签,教师模型最后得到的标签值为硬标签,基于所述初始软标签根据设定的蒸馏温度T产生变形软标签;

同时使用所述变形软标签和所述硬标签进行学生模型的高温蒸馏;

根据高温蒸馏的反馈结果,动态调节变形软标签和硬标签对整个高温蒸馏过程的贡献程度;

所述基于所述初始软标签根据设定的蒸馏温度T产生的所述变形软标签的softmax函数表示为:在上式中,其中  表示模型的最后输出,表示输入图像属于i类别的可能性, 表示第i个类别经过softmax层之后得出的概率值,T是蒸馏温度;

在所述高温蒸馏过程中,目标函数由蒸馏损失值Lsoft和学生模型损失值Lhard加权得到,该目标函数表示为:α和β分别表示蒸馏损失值Lsoft和学生模型损失值Lhard在目标函数中权重值,其中所述蒸馏损失值Lsoft公式如下所示:在上式中, 是教师模型在温度T下通过softmax层输出在第i类的值, 是学生模型在温度T下通过softmax层输出在第i类的值,其中:在上式中,yi是教师模型softmax层输出,zi是学生模型softmax层输出,N是类别数目;

所述学生模型损失值Lhard公式如下所示:

在上式中,ci是第i类的真实标签值,  , 是T为1 时学生模型通过softmax层输出在第i类的值;

所述根据高温蒸馏的反馈结果,动态调节变形软标签和硬标签对整个蒸馏的贡献程度,具体包括:根据高温蒸馏的反馈结果,动态调节目标函数中α和β权重值以平衡软硬标签对整个高温蒸馏过程的贡献程度;

所述学生模型采用深度可分离卷积DenseNet作为输入层。

2.如权利要求1所述的一种基于知识蒸馏的工业缺陷检测模型压缩方法,其特征在于:在中间网络层特征蒸馏过程中,通过计算学生模型的中间网络层输出特征信息和教师模型的中间网络层输出特征信息之间的差异损失L使得两者的输出特征信息尺寸保持一致,输出特征信息差异损失L计算公式为:在上式中, 是不同阶段的蒸馏系数,i是学生模型和教师模型在中间网络层中的某一阶段层, 是第i阶段层教师模型的输出特征信息, 是第i阶段层学生模型的输出特征信息。

说明书 :

一种基于知识蒸馏的工业缺陷检测模型压缩方法

技术领域

[0001] 本发明涉及工业制品缺陷检测技术领域,尤其涉及一种基于知识蒸馏的工业缺陷检测模型压缩方法。

背景技术

[0002] 随着深度学习技术不断的发展及硬件计算能力的增强,模型检出能力愈发强大,同时模型网络参数也随之愈发复杂,但在实际运用场景中,往往更注重轻量化,高效性等特点。在工业领域缺陷检测中,运行节拍和内存占用情况往往是一直需要考虑的,于是工业领域的缺陷检测更偏重于不显著降低检测精度的条件下尽可能的缩小模型参数,即需要模型的轻量性和实时性。
[0003] 目前主流的基于深度学习的工业缺陷检测模型,其模型网络一般具有卷积网络层(输入层)、中间网络层和最后输出的softmax层(输出层)。以深度残差网络模型ResNet‑50为例,中间网络层一般包括池化层、多个残差层等,在模型训练过程中,会产生中间层特征信息。
[0004] 该输出层输出值为图像属于各个类别的概率值,softmax层的输出值包含了大量负标签的推理信息,其核心的softmax函数用于多分类过程中,它将多个负标签的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类,softmax函数表示为:
[0005]
[0006] 其中 表示网络最后输出,是输入图像属于i类别的可能性,该值越大可能性越大; 表示第i个类别经过softmax之后的概率值,是输入图像属于i类别的概率;N是类别数。
[0007] 较深较宽的深度学习模型往往需要大量的参数计算,对硬件计算资源具有较高的要求,因此,虽然上述基于深度学习的缺陷检测模型精度较高,但是在实际运用中也备受限制,为解决该类问题,需将分类模型参数由繁杂变为简单轻巧,降低参数量使模型轻量化,适配算力有限的设备。而且,由于工业缺陷检测的运用场景越来越多,所以针对工业缺陷的需求性,有针对性的对其模型进行压缩显得尤其重要。
[0008] 本发明针对现有的工业检测算法参数复杂、计算量大的问题,采用知识蒸馏的方法使模型轻量化,减小该算法模型参数量,使其在不损失检测精度的条件下加快检测速度及减小内存占用。

发明内容

[0009] 本发明的目的在于提供一种基于知识蒸馏的工业缺陷检测模型压缩方法,通过采用教师模型‑学生模型的知识蒸馏方式,将提前训练的较复杂、精度较高的工业缺陷检测的模型具备的能力蒸馏到结构简单的轻量级模型上,可在满足所需的高精度检出率的前提下,使模型参数简单化,提高检出效率。
[0010] 为达到上述技术目的,本发明采用以下一种技术方案:
[0011] 一种基于知识蒸馏的工业缺陷检测模型压缩方法,包括以下步骤:
[0012] 构建并训练教师模型;
[0013] 通过知识蒸馏方式将教师模型蒸馏至学生模型,包括:
[0014] 中间网络层特征蒸馏:学生模型采用特征蒸馏方式学习教师模型中间网络层的特征信息,使学生模型在不同深度的中间网络层中反复的去接近教师模型在相应中间网络层的特征信息,然后使用教师模型的软标签训练学生模型网络;
[0015] softmax层目标蒸馏:学生模型采用软目标和硬目标结合的方式学习教师模型的softmax层特征信息;所述软目标指使用教师模型的softmax层所输出的概率值引导学生模型学习教师模型的知识,所述硬目标指使用教师模型的最后的标签值去引导学生模型学习时教师模型的知识。
[0016] 优选的,所述中间网络层特征蒸馏,具体包括:
[0017] 选择待蒸馏的中间网络层,在学生模型的中间网络层后面接上卷积层,使其输出特征信息尺寸与教师模型的输出特征信息尺寸保持一致;
[0018] 根据特征蒸馏方式训练学生模型的中间网络层参数;
[0019] 使用教师模型中间网络层的软标签来训练学生模型的中间网络层。
[0020] 进一步的,在中间网络层特征蒸馏过程中,通过计算学生模型的中间网络层输出特征信息和教师模型的中间网络层输出特征信息之间的差异损失L使得两者的输出特征信息尺寸保持一致,输出特征信息差异损失L计算公式为:
[0021]
[0022] 在上式中, 是不同阶段的蒸馏系数,i是学生模型和教师模型在中间网络层中的某一阶段层, 是第i阶段层教师模型的输出特征信息, 是第i阶段层学生模型的输出特征信息。
[0023] 优选的,所述softmax层目标蒸馏,具体包括:
[0024] 设定教师模型softmax层输出的概率值为初始软标签,教师模型最后得到的标签值为硬标签,基于所述初始软标签根据设定的蒸馏温度T产生变形软标签;
[0025] 同时使用所述变形软标签和所述硬标签进行学生模型的高温蒸馏;
[0026] 根据高温蒸馏的反馈结果,动态调节变形软标签和硬标签对整个高温蒸馏过程的贡献程度。
[0027] 进一步的,所述基于所述初始软标签根据设定的蒸馏温度T产生的所述变形软标签的softmax函数表示为:
[0028]
[0029] 在上式中,其中 表示模型的最后输出,表示输入图像属于i类别的可能性, 表示第i个类别经过softmax层之后得出的概率值,T是蒸馏温度。
[0030] 进一步的,在所述高温蒸馏过程中,目标函数由蒸馏损失值Lsoft和学生模型损失值Lhard加权得到,该目标函数表示为:
[0031]
[0032] α和β分别表示蒸馏损失值Lsof和学生模型损失值Lhard在目标函数中权重值,其中所述蒸馏损失值Lsof公式如下所示:
[0033]
[0034] 在上式中, 是教师模型在温度T下通过softmax层输出在第i类的值, 是学生模型在温度T下通过softmax层输出在第i类的值,其中:
[0035]
[0036] 在上式中,yi是教师模型softmax层输出,zi是学生模型softmax层输出,N是类别数目;
[0037] 所述学生模型损失值Lhard公式如下所示:
[0038]
[0039] 在上式中,ci是第i类的真实标签值, , 是T为1 时学生模型通过softmax层输出在第i类的值。
[0040] 进一步的,所述根据高温蒸馏的反馈结果,动态调节变形软标签和硬标签对整个蒸馏的贡献程度,具体包括:根据高温蒸馏的反馈结果,动态调节目标函数中α和β权重值以平衡软硬标签对整个高温蒸馏过程的贡献程度。
[0041] 进一步的,所述学生模型采用深度可分离卷积DenseNet作为输入层。
[0042] 采用上述方案后,本发明具有以下有益效果:
[0043] 本发明针对复杂的工业缺陷检测模型(教师模型Model),通过特征蒸馏的方式学习教师模型的中间网络层的特征信息,通过目标蒸馏的方式学习教师模型的softmax层特征信息,获得轻量化后教师模型Lightweight Model(学生模型),可保证原始模型在精度基本不损失的前提下,大幅提升模型的运行速率,可满足工业质检计算资源有限条件下对高检出速率的要求。
[0044] 本发明的工业缺陷检测模型压缩方法可应用于顶盖焊接视觉检测系统、自动上下料机(通用)、包Mylar机包MylarCCD检测设备、密封钉焊接视觉检测系统、EPD烧录+点灯检AOI设备、电芯外观检测机、刀片电池六面检测系统、二维条码读取器VCR、折弯机、PSA小料贴附机(单通道)等设备或系统的工业品缺陷检测模块中。

附图说明

[0045] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的变形形式。
[0046] 图1是本发明一种基于知识蒸馏的工业缺陷检测模型压缩方法的步骤流程图;
[0047] 图2是本发明一种基于知识蒸馏的工业缺陷检测模型压缩方法的整体方案设计结构图;
[0048] 图3是特征蒸馏结构原理图;
[0049] 图4是目标蒸馏结构原理图;
[0050] 图5是普通卷积层参数解析图;
[0051] 图6是DenseNet层参数解析图。

具体实施方式

[0052] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053] 本发明实施例提供了一种基于知识蒸馏的工业缺陷检测模型压缩方法,该方法基于的知识蒸馏是一种模型压缩方法,通过参数裁剪、精度转换、神经网络结构搜索这些模型压缩方法会破坏原模型的结构,也就是会损坏原模型从数据中学习到的知识,而知识蒸馏通过蒸馏的手段保护原模型中学习到的知识,然后将这些知识迁移到压缩模型中,使压缩模型虽然相比原模型体积要小的多,但是也可以学习到相同的知识。在知识蒸馏中称要进行压缩的模型为教师神经网络(Teacher Model)或以下所述的“教师模型”,压缩之后的模型为学生神经网络(Student Model)或以下所述的“学生模型”。
[0054] 如图1‑2所示,上述的基于标准化流模型的工业缺陷检测算法,具体包括以下两个阶段:
[0055] S1、原始模型训练阶段,构建并利用数据集训练教师模型;
[0056] S2、知识蒸馏阶段,通过知识蒸馏方式将教师模型蒸馏至学生模型,该阶段具体包括:
[0057] S21、中间网络层特征蒸馏:学生模型采用特征蒸馏方式学习教师模型中间网络层的特征信息,使学生模型在不同深度的中间网络层中反复的去接近教师模型在相应中间网络层的特征信息,然后使用教师模型的软标签训练学生模型网络,所述软标签为教师模型的softmax层所输出的概率值;学生模型不但拟合教师模型的软标签soft‑target,而且还拟合中间网络层中几个隐藏层的输出(教师模型抽取的特征信息)。参见图3所示,中间网络层特征蒸馏过程具体包括:
[0058] S211、选择待蒸馏的中间网络层,由于教师模型与学生模型的中间网络层输出特征值尺寸可以有所差异,需要在学生模型的中间网络层后面接上卷积层,使其输出特征信息尺寸与教师模型的输出特征信息尺寸保持一致;具体是通过计算学生模型的中间网络层输出特征信息和教师模型的中间网络层输出特征信息之间的差异损失L使得两者的输出特征信息尺寸保持一致,输出特征信息差异损失L计算公式为:
[0059]
[0060] 在上式中, 是不同阶段的蒸馏系数,i是学生模型和教师模型在中间网络层中的某一阶段层, 是第i阶段层教师模型的输出特征信息, 是第i阶段层学生模型的输出特征信息。
[0061] S212、根据特征蒸馏方式训练学生模型的中间网络层参数,学生模型学习到了教师模型的输出特征信息;
[0062] S213、使用教师模型中间网络层的软标签来训练学生模型的中间网络层。
[0063] S22、softmax层目标蒸馏:学生模型采用软目标和硬目标结合的方式学习教师模型的softmax层特征信息;在分类模型中,模型网络的最后输出通常是softmax层,该层输出值为各个类别的概率值,当使用教师模型的softmax层输出的概率值去引导学生模型学习时,该方式称为软目标;当使用教师模型最后得到的标签值去引导学生模型学习时,此方式称为硬目标。网络模型最后的softmax层的输出值包含了大量负标签的推理信息,这些信息有利于模型更充分更全面的提取图像的特征信息,而硬目标更利于对当前样本的特征信息学习,因此本实施例发挥两种方式的优点因材施教的引导学生模型。参见图4所示,所述softmax层目标蒸馏具体包括:
[0064] S221、设定教师模型softmax层输出的概率值为初始软标签(soft‑target),教师模型最后得到的标签值为硬标签(Hard‑target),基于所述初始软标签根据设定的蒸馏温度T产生变形软标签;所述变形软标签的softmax函数表示为:
[0065]
[0066] 在上式中,其中 表示模型的最后输出,表示输入图像属于i类别的可能性,该值越大可能性越大, 表示第i个类别经过softmax层之后得出的概率值,T是蒸馏温度,当T=1时,该公式是初始软标签的softmax函数公式,T越高,函数输出概率越趋于平滑,其分布熵越大,负标签的特征信息被相应放大,模型学习更侧重于负标签;
[0067] S222、同时使用所述变形软标签和所述硬标签进行学生模型的高温蒸馏;在所述高温蒸馏过程中,目标函数由蒸馏损失值Lsof(t distill loss)和学生模型损失值Lhard(student loss)加权得到,该目标函数表示为:
[0068]
[0069] α和β分别表示蒸馏损失值Lsoft和学生模型损失值Lhard在目标函数中权重值,其中所述蒸馏损失值Lsoft公式如下所示:
[0070]
[0071] 在上式中, 是教师模型在温度T下通过softmax层输出在第i类的值, 是学生模型在温度T下通过softmax层输出在第i类的值,其中具体公式如下所示:
[0072]
[0073] 在上式中,yi是教师模型softmax层输出,zi是学生模型softmax层输出,N是类别数目;
[0074] 所述学生模型损失值Lhard公式如下所示:
[0075]
[0076] 在上式中,ci是第i类的真实标签值, ,正标签时ci为1,负标签时ci为0,是T为1 时学生模型通过softmax层输出在第i类的值。
[0077] S223、根据高温蒸馏的反馈结果,动态调节变形软标签和硬标签对整个高温蒸馏过程的贡献程度,具体是:根据高温蒸馏的反馈结果,动态调节目标函数中α和β权重值以平衡软硬标签对整个高温蒸馏过程的贡献程度,学生模型在蒸馏温度T为1情况下的softmax层输出和真实标签的交叉熵损失函数cross entropy是学生模型损失值Lhard,引入Lhard可以理解为使用真实标签值有效修正学生模型的学习效果,以防止偶尔被教师模型错误带偏。经实验表明,当Lhard权重较小时,能产生更好的效果,并且Lsoft的贡献程度为Lhard的 ,因此若需要保持两种损失的贡献程度一致,需在Lsoft的权重上乘 T2 系数。
[0078] 本实施例优选的,所述学生模型采用深度可分离卷积DenseNet作为输入层,本发明的学习模型采用深度可分离卷积DenseNet替代教师模型中普通卷积层,在相同输入输出情况下,深度可分离卷积DenseNet(以下简称“DenseNet层”)的参数量和计算量更小,且DenseNet层是单通道形式,对图像数据的各通道进行卷积操作,导致通过DenseNet层后得到的特征信息通道数和输入通道数保持一致。
[0079] 在图5所示普通卷积层中,卷积层是n个卷积核大小为k×k×m的卷积,该卷积参数量为:k×k×m×n,通过该卷积后得到w×h×n的特征图,即该卷积的计算量为:k×k×m×n×w×h。DenseNet层由深度卷积层和逐点卷积层组成,如图6所示,其中深度卷积的卷积核大小为k×k×m;逐点卷积是n个卷积核为1×1×m的卷积,所以其参数量为:k×k×m + m×n,通过DenseNet层后生成w×h×n的特征图,即 DenseNet层的计算量为:k×k×m×w×h + m×n×w×h。
[0080] 通过计算普通卷积层和DenseNet层的参数量和计算量可知,DenseNet层参数量和计算量均是普通卷积层的1 / n + 1 / K2,所以使用DenseNet层替代普通卷积层可使模型具备更轻量化结构。
[0081] 以下为本实施例基于知识蒸馏的工业缺陷检测模型压缩方法的应用实例:
[0082] 本发明将知识蒸馏运用于工业上激光焊接后缺陷检测模型的压缩,测试图片为1000张焊接后缺陷样本图片,将图片随机划分为 10 组,每组 100 张,分别输入模型进行测试,取所有组别的结果求取平均值,测试结果如下表1所示:
[0083] 表1:测试结果对比
[0084]
[0085] 可以看出,本发明提出的基于知识蒸馏的工业缺陷检测模型压缩方法可保证原始模型在精度基本不损失的前提下,大幅提升模型的运行速率,可满足工业质检计算资源有限条件下对高检出速率的要求。
[0086] 如上所述的基于知识蒸馏的工业缺陷检测模型压缩方法可以应用于各类工业品缺陷检测,例如电子产品、机械设备、精密仪器及其零配件等工业品的缺陷检测,具有可应用于顶盖焊接视觉检测系统、自动上下料机(通用)、包Mylar机包MylarCCD检测设备、密封钉焊接视觉检测系统、EPD烧录+点灯检AOI设备、电芯外观检测机、刀片电池六面检测系统、二维条码读取器VCR、折弯机、PSA小料贴附机(单通道)等设备或系统的工业品缺陷检测模块。
[0087] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一可选实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0088] 以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。