基于高效学生网络的未知类型缺陷检测方法与装置与流程

文档序号:33041734发布日期:2023-01-24 21:40阅读:28来源:国知局
基于高效学生网络的未知类型缺陷检测方法与装置与流程

1.本发明属于计算机视觉技术领域,更具体地,涉及一种基于高效学生网络的未知类型缺陷检测方法与装置。


背景技术:

2.随着我国经济的高速发展和科技水平的提高,异常检测技术在工业质检、视频监控等实际应用领域扮演着越来越重要的角色。如在工业质检领域,异常检测技术不仅可以减少经济损失,更是可以保证用户的使用安全。因为异常检测场景常存在着异常样本匮乏等问题,因此在该领域仅使用正常样本进行训练的无监督异常检测算法为主流方法。
3.在无监督异常检测方法中,包括基于图像相似度的方法和基于特征相似度的方法。基于图像相似度的方法包括基于图像重建的方法和基于图像恢复的方法,基于特征相似度的方法包括深度一类分类方法、基于模板匹配的方法和基于教师-学生网络的方法。教师-学生网络是目前一种效果优异的无监督异常检测算法。但是在实际异常检测任务中,该方法在训练模型时训练样本需超过200张,训练时间大于2小时,难以满足实际模型快速部署到新的应用场景的需求。为了提升模型的学习效率,也有许多模型高效学习的方法,该方法中主要从模型微调、迁移学习和元学习的角度出发考虑设计。但是现有方法大多是针对图像分类等较简单的任务,没有专门为异常检测任务设计。


技术实现要素:

4.针对现有技术的以上缺陷或改进需求,本发明提供了一种基于高效学生网络的未知类型缺陷检测方法。
5.为达到上述目的,按照本发明的一个方面,提供了一种基于高效学生网络的未知类型缺陷检测方法,包括以下步骤:
6.步骤s1,构建教师网络(1),准备一个在imagenet数据集上预训练好的resnet18网络,并将imagenet中图像随机裁剪为为边长为预设值的图像块,将图像块同时输入教师网络(1)和预训练好的resnet18网络,约束教师网络(1)的输出特征和预训练好的resnet18网络的输出特征相同,在后续步骤中教师网络(1)的参数都被固定;
7.步骤s2,在msra10k数据集上利用k-means聚类算法,将该数据集划分为n个粗组,在每个粗组中计算样本到中心特征的结构相似性距离,保留距离中心最近的m个样本,据此构造含有n个类别的数据集(2),所述m和n为预设值;
8.步骤s3,构建预训练网络(3),预训练网络(3)由学生网络(4)、自适应权重模块、特征融合模块和分类模块组成,其中自适应权重模块为学生网络(4)不同层特征提供不同的权重,特征融合模块将学生网络不同层特征与其对应的权重相乘再进行特征融合,然后将融合后的特征输入分类模块中,分类模块输出分类标签;
9.步骤s4,训练预训练网络(3),首先将数据集(2)中每一类数据划分为训练样本(5)和验证样本(6),将训练样本(5)输入到预训练网络(3)中,首先约束学生网络(4)在训练样
本(5)上提取的特征与教师网络(1)提取的特征相同,随后将学生网络(4)的中间层输出特征与最终输出特征分别经过自适应权重模块,并将不同层特征与对应的权重相乘输入特征融合模块,将融合后特征输入分类模块,预测特征的类别,随后,将完成训练后的预训练网络(3)在验证样本(6)上计算损失函数,并回传该损失函数,更新还未输入训练样本(5)进行更新前的预训练网络(3)的参数;
10.步骤s5,在异常检测任务上的训练阶段,准备训练样本(7),将其输入到学生网络(4)中,此时学生网络(4)的初始化参数为完成步骤s4训练后的学生网络(4)的参数,随后约束学生网络(4)在训练样本(7)上提取的特征与教师网络(1)提取的特征相同;
11.步骤s6,测试阶段,将含有异常区域的测试样本(8)同时输入教师网络(1)和学生网络(4)中,通过异常得分函数(9)计算两者提取的特征图在特征空间的距离,得到异常得分图,随后通过设置阈值对异常得分图进行二值化,得到该阶段的输出。
12.本发明的一个实施例中,预训练网络(3)中的学生网络(4)的网络结构为全卷积结构,网络最后一层输出尺寸为h1×
w1×
c1,中间层输出尺寸为h2×
w2×
c1,其中h1、w1、c1、h2、w2、c2为预设值。
13.本发明的一个实施例中,预训练网络(3)的自适应权重模块分别给学生网络(4)的中间层特征和最后一层输出特征一个自适应的权重,具体包括:
14.步骤s3-1,使用3
×
3卷积对学生网络中间层输出特征进行尺寸进行下采样h和w为预设值;
15.步骤s3-2,将步骤3-1得到的特征图经过全局平均池化层、全连接层以及sigmoid操作,得到该特征对应的权重ω0;
16.步骤s3-3,使用3
×
3卷积对学生网络最后一层输出特征进行尺寸进行下采样
17.步骤s3-4,将步骤3-3得到的特征图经过全局平均池化层、全连接层以及sigmoid操作,得到该特征对应的权重ω1。
18.本发明的一个实施例中,预训练网络(3)的特征融合模块用于融合加权后的学生网络(4)的中间层特征和最后一层输出特征,具体包括:
19.步骤s3-5,将学生网络(4)的中间层特征与步骤s3-2中对应的权重ω0相乘;
20.步骤s3-6,将学生网络(4)的最后一层输出特征与步骤s3-4中对应的权重ω0相乘;
21.步骤s3-7,将步骤s3-5和步骤s3-6得到的特征在通道维度上进行堆叠
22.本发明的一个实施例中,预训练网络(3)的分类模块用于将融合后的特征预测为一个类别标签,具体包括:
23.步骤s3-8,将步骤s3-7中的特征输入3个3
×
3的卷积层,将特征进行升维c2为预设值,并使用relu进行激活;
24.步骤s3-9,将步骤s3-8中的特征输入到一个平均池化层、一个全连接层,并使用sigmoid函数激活,得到分类的标签。
25.本发明的一个实施例中,在训练预训练网络(3)时,为了约束学生网络(4)提取的
特征与教师网络(1)提取的特征在样本上保持一致,优化的目标函数(10)为:
[0026][0027]
其中,s
θ
(x)表示训练样本(7)经过学生网络(4)输出的特征图,t
θ
(x)表示训练样本(7)经过教师网络(1)输出的特征图,μ和σ分别表示教师网络特征在整个训练集上得到特征的均值与标准差,diag(σ)-1
表示用σ的值填充的对角矩阵的逆矩阵,表示计算l2距离。
[0028]
本发明的一个实施例中,在预训练网络(3)的训练阶段,使用交叉熵损失(11)为:
[0029][0030]
其中,ce(
·
)表示交叉熵损失,n表示样本类别数,pi表示真值标签,qi表示融合后特征经过分类网络后的预测标签。
[0031]
本发明的一个实施例中,总优化目标函数(12)为目标函数(10)与目标函数(11)的加权和,为:
[0032]
l(s
θ
(x))=loss
st
+λloss
cls
[0033]
其中loss
st
为学生网络的回归损失函数,loss
cls
为对学生网络提取特征进行分类的损失函数,λ为平衡两个损失函数的权重,λ为预设值。
[0034]
本发明的一个实施例中,在预训练网络(3)的训练阶段,数据集(2)被划分为n个类别,每类的图像组分别为每次模型更新任务在图像组中随机选取2k张不同的样本,其中k张作为训练样本(5),另外k张作为验证样本(6),k为预设值,在训练样本(5)上更新模型的参数,并利用参数更新后的模型在训练样本(6)上计算总优化目标函数(12),在预训练网络(3)更新前,首先得到该学生网络更新前的参数,在每次模型更新任务的训练样本(5)上对该网络更新前的参数进行更新,得到n个学生网络模型,得到此时网络经过一组样本更新参数(13)再利用这n个模型分别在对应任务的验证样本(6)上计算总优化目标函数(12),最终通过最小化这n个损失函数的总和来更新一次网络更新前的参数,为更新后的学生网络预训练模型参数(14)。
[0035]
按照本发明的另一方面,还提供了一种基于高效学生网络的未知类型缺陷检测装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成所述的基于高效学生网络的未知类型缺陷检测方法。
[0036]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
[0037]
(1)本发明为了使模型在异常检测任务上训练时能够快速收敛,提出了一种预训练方法,该方法通过让各个类别数据的验证集上平均损失最低的方式进行网络训练,在第三方数据集上对学生网络参数进行更新,得到了一个具有较强泛化能力的学生网络初始化模型。利用本发明得到的初始化模型,在异常检测任务中新类型的数据上进行训练时,仅使用少量样本,即可实现快速收敛,随后完成异常检测任务;
[0038]
(2)本发明在上述训练策略的基础上,在网络中通过多任务学习的思路和注意力机制的思想,加入了自适应权重模块和分类网络辅助学生网络训练,提升了预训练模型在异常检测任务上的效果。
附图说明
[0039]
图1是本发明提供的基于高效学生网络的未知类型缺陷检测方法的预训练整体流程图;
[0040]
图2是本发明提供的基于高效学生网络的未知类型缺陷检测方法的训练及测试过程流程图。
具体实施方式
[0041]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0042]
本发明提供了一种基于高效学生网络的未知类型缺陷检测方法,如图1和图2所示,包括以下步骤:
[0043]
步骤s1,构建教师网络(1),准备一个在imagenet数据集上预训练好的resnet18网络,并将imagenet中图像随机裁剪为为边长为预设值(例如17)的图像块,将图像块同时输入教师网络(1)和预训练好的resnet18网络,约束教师网络(1)的输出特征和预训练好的resnet18网络的输出特征相同。在后续步骤中教师网络(1)的参数都被固定;
[0044]
步骤s2,在msra10k数据集上利用k-means聚类算法,将该数据集划分为n个粗组,在每个粗组中计算样本到中心特征的结构相似性距离,保留距离中心最近的m个样本,据此构造含有n个类别的数据集(2)。
[0045]
步骤s3,构建预训练网络(3)。预训练网络(3)由学生网络(4)、自适应权重模块、特征融合模块和分类模块组成。其中自适应权重模块为学生网络(4)不同层特征提供不同的权重,特征融合模块将学生网络不同层特征与其对应的权重相乘再进行特征融合,然后将融合后的特征输入分类模块中,分类模块输出分类标签。
[0046]
步骤s4,训练预训练网络(3)。首先将数据集(2)中每一类数据划分为训练样本(5)和验证样本(6)。将训练样本(5)输入到预训练网络(3)中,首先约束学生网络(4)在训练样本(5)上提取的特征与教师网络(1)提取的特征相同,随后将学生网络(4)的中间层输出特征与最终输出特征分别经过自适应权重模块,并将不同层特征与对应的权重相乘输入特征融合模块,将融合后特征输入分类模块,预测特征的类别。随后,将完成训练后的预训练网络(3)在验证样本(6)上计算损失函数,并回传该损失函数,更新还未输入训练样本(5)进行更新前的预训练网络(3)的参数。
[0047]
步骤s5,在异常检测任务上的训练阶段,准备训练样本(7),将其输入到学生网络(4)中,此时学生网络(4)的初始化参数为完成步骤s4训练后的学生网络(4)的参数。随后约束学生网络(4)在训练样本(7)上提取的特征与教师网络(1)提取的特征相同。
[0048]
步骤s6,测试阶段。将含有异常区域的测试样本(8)同时输入教师网络(1)和学生网络(4)中。通过异常得分函数(9)计算两者提取的特征图在特征空间的距离,得到异常得分图,随后通过设置阈值对异常得分图进行二值化,得到该阶段的输出。
[0049]
优选地,预训练网络(3)中的学生网络(4)的网络结构为全卷积结构,网络最后一层输出尺寸为h1×
w1×
c1,中间层输出尺寸为h2×
w2×
c1。
[0050]
优选地,预训练网络(3)的自适应权重模块分别给学生网络(4)的中间层特征和最后一层输出特征一个自适应的权重,具体包括:
[0051]
步骤s3-1,使用3
×
3卷积对学生网络中间层输出特征进行尺寸进行下采样h和w为预设值。
[0052]
步骤s3-2,将步骤3-1得到的特征图经过全局平均池化层、全连接层以及sigmoid操作,得到该特征对应的权重ω0。
[0053]
步骤s3-3,使用3
×
3卷积对学生网络最后一层输出特征进行尺寸进行下采样h和w为预设值。
[0054]
步骤s3-4,将步骤3-3得到的特征图经过全局平均池化层、全连接层以及sigmoid操作,得到该特征对应的权重ω1。
[0055]
优选地,预训练网络(3)的特征融合模块用于融合加权后的学生网络(4)的中间层特征和最后一层输出特征,具体包括:
[0056]
步骤s3-5,将学生网络(4)的中间层特征与步骤s3-2中对应的权重ω0相乘。
[0057]
步骤s3-6,将学生网络(4)的最后一层输出特征与步骤s3-4中对应的权重ω0相乘。
[0058]
步骤s3-7,将步骤s3-5和步骤s3-6得到的特征在通道维度上进行堆叠
[0059]
优选地,预训练网络(3)的分类模块用于将融合后的特征预测为一个类别标签,具体包括:
[0060]
步骤s3-8,将步骤s3-7中的特征输入3个3
×
3的卷积层,将特征进行升维c2为预设值,并使用relu进行激活。
[0061]
步骤s3-9,将步骤s3-8中的特征输入到一个平均池化层、一个全连接层,并使用sigmoid函数激活,得到分类的标签。
[0062]
优选地,在训练预训练网络(3)时,为了约束学生网络(4)提取的特征与教师网络(1)提取的特征在样本上保持一致,优化的目标函数(10)为:
[0063][0064]
其中,s
θ
(x)表示训练样本(7)经过学生网络(4)输出的特征图,t
θ
(x)表示训练样本(7)经过教师网络(1)输出的特征图,μ和σ分别表示教师网络特征在整个训练集上得到特征的均值与标准差,diag(σ)-1
表示用σ的值填充的对角矩阵的逆矩阵,表示计算l2距离。
[0065]
优选地,在预训练网络(3)的训练阶段,为了使分类网络输出正确的分类标签,本发明在此使用交叉熵损失(11)为:
[0066][0067]
其中,ce(
·
)表示交叉熵损失,n表示样本类别数,pi表示真值标签,qi表示融合后特征经过分类网络后的预测标签。
[0068]
优选地,此阶段的总优化目标函数(12)为目标函数(10)与目标函数(11)的加权和,为:
[0069]
l(s
θ
(x))=loss
st
+λloss
cls
[0070]
其中loss
st
为学生网络的回归损失函数,loss
cls
为对学生网络提取特征进行分类的损失函数,λ为平衡两个损失函数的权重,为预设值。
[0071]
此阶段利用总优化目标函数(12)对学生网络参数进行更新。
[0072]
优选地,在预训练网络(3)的训练阶段,数据集(2)被划分为n个类别,每类的图像组分别为每次模型更新任务在图像组中随机选取2k张不同的样本,其中k张作为训练样本(5),另外k张作为验证样本(6),在训练样本(5)上更新模型的参数,并利用参数更新后的模型在训练样本(6)上计算总优化目标函数(12)。在预训练网络(3)更新前,首先得到该学生网络更新前的参数。本发明在每次模型更新任务的训练样本(5)上对该网络更新前的参数进行更新,得到n个学生网络模型,得到此时网络经过一组样本更新参数(13)再利用这n个模型分别在对应任务的验证样本(6)上计算总优化目标函数(12),最终通过最小化这n个损失函数的总和来更新一次网络更新前的参数,为更新后的学生网络预训练模型参数(14)。
[0073]
优选地,异常检测任务上的训练阶段,准备训练样本(7),将其输入到学生网络(4)中,此时学生网络(4)的初始化参数为完成步骤s4训练后的学生网络(4)的参数。随后约束学生网络(4)在训练样本(7)上提取的特征与教师网络(1)提取的特征相同,优化的目标函数为目标函数(10)。
[0074]
优选地,在测试阶段,本发明将含有异常区域的测试样本(8)同时输入教师网络(1)和学生网络(4)中。通过异常得分函数(9)计算两者提取的特征图在特征空间的距离。异常得分函数(9)为:
[0075][0076]
其中代表学生网络的特征在(r,c)处表示的特征向量,代表教师网络的特征在(r,c)处表示的特征向量,μ和σ分别表示教师网络特征f
t
在训练集上得到特征的均值与标准差,其中diag(σ)-1
表示用σ的值填充的对角矩阵的逆矩阵。
[0077]
得到异常得分图,随后通过设置阈值对异常得分图进行二值化,得到该阶段的二值分割结果输出。此外,为了得到二值分割结果,还需要对异常得分图设置合适的阈值进行二值化。
[0078]
本发明提出了一种基于高效学生网络的未知类型缺陷检测方法。该方法首先提出了一种预训练方法,该方法通过让各个类别数据的平均损失最低的策略,在第三方数据集上对学生网络参数进行更新,得到了一个具有较强泛化能力的学生网络初始化模型,随后,本发明在上述训练策略的基础上,在网络中通过多任务学习的思路和注意力机制的思想,加入了自适应权重模块和分类网络辅助学生网络训练,提升了预训练模型在异常检测任务上的效果。利用本发明提出的方法得到的初始化模型,在后续异常检测任务中,面对不同新类型的数据进行训练时,仅使用少量样本,即可实现快速收敛,并在测试阶段达到较好的异常检测效果。
[0079]
进一步地,本发明还提供了一种基于高效学生网络的未知类型缺陷检测装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成所述的基于高效学生网络的未知类型缺陷检测方法。
[0080]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1