一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于元学习的气缸套小样本缺陷检测方法

2022-06-25 05:14:35 来源:中国专利 TAG:


1.本发明涉及目标检测领域及图像处理领域,具体涉及一种基于元学习的气缸套小样本缺陷检测方法。


背景技术:

2.随着计算机工艺技术的提升,利用计算机视觉图像处理技术对工件缺陷的企业检测越来越多。深度学习网框架也越来越成熟,并广泛应用到日常生活的个个方面。但是对于小样本问题,深度网络训练结果不是很理想。
3.气缸套是内燃机的重要组成部分,其生产工艺与质量直接影响内燃机的性能。在工业生产过程中,随着温度、杂质以及加工时的应力分布不均,批量生产的气缸套可能出现砂眼、裂纹、磨损等不同缺陷。这些缺陷间接影响了气缸套的使用年限。为了提升生产工艺,近几年基于计算机视觉技术的在线检测应用于工业,但其精度受限于算法的性能与鲁棒性。使用深度学习的检测方式相比于传统检测精度要高很多。为了使用深度学习检测气缸套的各种缺陷,需要收集足够的气缸套缺陷数据,但是,目前工厂的生产设备及环境十分优秀,很少会出现有缺陷的产品,很难收集到大量的气缸套缺陷数据。因此,提高小样本检测方法至关重要。
4.工业表面缺陷是影响产品质量的重要因素之一,缺陷检测指的是通过某种方式将工件的缺陷找到并检测出来。目前对于工件的缺陷检测的方法常见的有:
5.传统检测:对于工业缺陷,常用的检测有人工检测,即用人眼来查看工件是否含有缺陷,这种检测方式比较简单。除了人工目测方法外,还有涡流检测、x射线检测等。涡流检测et(eddy current testing)技术利用电磁感应原理,将正弦交变电流线圈靠近被测管类工件,通过产生的交变磁场在管壁中产生涡流。如果存在缺陷,就会引起电压或电流的变化,从而判断管类工件是否合格。x射线在1895年由伦琴最先发现,x射线是一种波长在0.0001~10nm的电磁波,是电子在原子中不同的能量级跃迁产生,具有波粒二象性。x射线检测rt(radiographic testing)原理是采用一定强度的射线垂直投射待检测物,正常部位和缺陷部位对射线的吸收能力不同,从而判断待检测对象是否合格。
6.机器学习检测:主要通过人工定性设计特征或图像特定区域的统计特征。特征提取方式要人为介入,传统的特征提取方法如sift、surf等。
7.深度学习检测:深度学习检测是以一种全新的思想方式,找到隐藏在事物表象的内在规律。最近,随着计算机设备的不断升级以及人工智能的不断进步,使得深度学习用到了生活的方方面面。在工业缺陷检测上也取得了优异的成绩。深度学习目前被分为一阶段神经网络和二阶段神经网络。对于一阶神经网络,它是直接生成目标框进行目标检测。特点是速度快,但检测的精度不高,常见的算法有yolo系列,ssd等,其中,yolo系列的算法比较其他一阶段算法在精度上较为优秀。对于二阶神经网络,它是先生成候选框,再从这些生成的候选框中选最终的目标框。二阶段网络的特点是精度高,但由于先生成候选框的原因,检测的速度慢,不太适合工业上的应用。常见的有faster rcnn、mask rcnn等。
8.对于人工目测的方法:效率不高,成本大。人为因素占比最大。
9.对于涡流检测的方法:检测效率相对较低,另外,仅依靠涡流检测通常难以区分缺陷的种类、形状以及具体位置,检测结果也易于受到材料本身及其他因素的干扰。因此,涡流检测不能有效排除气缸套表面缺陷,对内燃机而言,存在安全隐患,故不适用于气缸套表面缺陷检测。
10.对于x射线:虽然x射线是目前对管状类缺陷检测的主要方法,适用于所有材料的管类工件,但是x射线检测结果的准确率与缺陷方向有关,x射线对操作人员有一定的辐射伤害,同时要求检测人员具备一定专业知识,检测周期长无法达到实时检测要求。因此,x射线不能适用于气缸套表面缺陷检测。
11.对于机器学习检测,其缺点是对于不同的目标,检测算法需要根据不同先验知识进行设计,导致检测算法不能较好地提取图像的全局语义特征,使得算法的鲁棒性较低,难以完成在复杂任务下的缺陷检测。同时,基于机器学习的缺陷检测对图像要求标准高,所有图像必须为统一的背景,缺陷部位只是正常图像中的异常部位。对于实际气缸套的表面缺陷尺寸不同,采集背景不同,缸套型号不同,因此机器视觉并不适用与气缸套的表面缺陷检测。
12.对于深度学习而言,深度学习比较适合对气缸套表面进行缺陷检测。深度学习的目标检测与传统方式最大的不同是:提取图像特征。传统图像特征提取方法受限于专家经验,相反地,深度学习是利用卷积神经网络进行图像特征的提取,通过不同尺寸窗口的数据和卷积核(滤波矩阵)作内积,对图像特征进行提取。基于深度网络的检测算法,充分地利用这些信息进行目标检测。但是,深度学习的鲁棒性较差,泛化性不好,非常依赖海量数据。只有足够多的数据才能有效提取目标特征信息。若是没有足够了数据量,可能导致深度学习网络训练结果变差,甚至会出现欠拟合的现象,导致模型难以收敛。
13.元学习的出现可以有效解决小样本问题,通过maml方法可以找到泛化能力较强的初始化参数,有利于在数据不足的情况下训练。有鉴于此,本发明提出了将元学习的思想引入到深度学习中。元学习是学会学习的学习,元学习的目的是通过利用已经学习的信息来学习未学习的任务,使得尽快适应新的任务。通常元学习应用于小样本数据集上。对于数据集难以收集的任务,将元学习应用到深度学习中,有效提升了深度学习鲁棒性问题。基于元学习的研究目前分为五种:基于度量学习的方法、基于泛化能力较强的初始化方法、基于优化器、基于额外外部存储、基于数据增强。本专利是基于泛化能力较强的初始化方法的元学习的研究目标。为了可以更好的学习特征信息,同时引入了迁移学习的概念。迁移学习是对源域大数据上进行预训练,构建一个网络模型。然后将浅层参数直接迁移到目标域当中。在对数量较少的目标域上进行网络的微调,最终使得即使是在数据量较少的情况下,模型也能快速收敛。当目标域和源域的任务较相近是,迁移学习的效果越好。


技术实现要素:

14.本发明的目的是针对小样本问题,难以获得足够的数据问题的情况,提出了一种基于元学习的气缸套小样本缺陷标检测方法。
15.本发明采取的技术方案为:一种基于元学习的气缸套小样本缺陷检测方法,将yolov3网络和元学习方法(maml)融合起来,从而进行小样本的气缸套检测,包括以下步骤:
16.步骤一:首先,进行数据收集并进行图像预处理操作;
17.步骤二:其次,选择yolov3算法代替原来的网络,在训练图像测试集的支持集之前,加入迁移学习模块,使得模型更容易识别特征信息,加快模型收敛;
18.步骤三:最后,随机采取n-way k-shot任务分类方法,进行模型的训练和测试,最终实现对小样本的检测。
19.作为优选,所述步骤一的具体包括:
20.数据收集与处理:首先,收集常见的工业表面缺陷数据集,并将气缸套原始图像根据缺陷标定的位置截取局部缺陷图;其次,将常见的工业表面缺陷数据集按照缺陷的不同划分为两个部分,一部分常见的工业表面缺陷数据集作为迁移学习训练的数据,另一部分工业缺陷数据集划分为训练集和测试集。将气缸套原始图像根据缺陷标定的位置截取局部缺陷图划分为气缸套训练集和气缸套测试集。将收集到图像全部做图像预处理操作,对收集到的图像全部缩放到同一大小的尺寸上,进行图像增强操作,图像的随机反转,水平旋转操作。对处理过后的图片进行归一化操作,图像归一化的公式为:
[0021][0022]
其中,x为输入特征信息,u为均值,std为标准差。
[0023]
作为优选,所述步骤二的具体包括:
[0024]
数据划分:在元训练集中,设计对应的支持集和查询集,分别从常见工业表面缺陷的训练集和测试集构建。在元测试集中,支持集和查询集分别从气缸套的训练集和测试集提取。将预处理后的常见的工业表面缺陷数据集随机抽取n个任务作为元训练数据集,依次将任务送到yolov3中进行模型训练并更新参数,最后保存更新过后的参数。在预处理后的气缸套缺陷数据集作为元训练数据集,将数据送到yolov3中,对模型训练并微调参数。
[0025]
模型选择:本专利所用yolov3网络来构建模型,进行基于元学习的检测。yolov3是一阶段网络,具有保持精度的同时,检测的速度快等优点。yolov3的网络由darknet53进行特征图的提取,由fpn(图像金字塔)进行特征融合,最后用3*3和卷积和1*1的卷积进行分类任务和回归任务。由于气缸套缺陷比较小,可以将原来输出的3个预测头层保留1个预测头层。该预测头层是专门对小目标进行检测的。进而减少网络训练时间。
[0026]
迁移学习:一般在训练过程中,训练的参数都是随机初始化的,不可以人为调整,为了获得良好的参数,需要对大量的图片进行训练。而小样本中特征提取的部分参数占了很多,为了弥补由于样本数量少的缺点,在元学习的过程中加入了迁移学习模块。首先将之前划分好的迁移学习训练数据放到yolov3网络进行训练,得到网络训练权重。之后在元学习训练测试集的支持集之前,添加先前训练好的模型权重,进行迁移学习,增强在元学习测试集中支持集中图片特征提取的能力。减少模型迭代次数,加快模型快速收敛。
[0027]
作为优选,所述步骤三的具体包括:
[0028]
元学习:在元训练阶段,一个任务随机采取n-way k-shot任务分类方法,其中,n是随机选择的类别,k是选择的一个类别中对应的图片数量。
[0029]
对于元训练集的支持集,本专利采用5-way 1-shot分类方法将数据放到网络进行训练;
[0030]
对于元训练集的查询集,本专利采用5-way 15-shot的分类方法进行测试。
[0031]
对于元测试集的支持集,本专利采用5-way 1-shot分类方法将数据放到网络进行微调,
[0032]
对于元测试集的查询集,本专利采用5-way 15-shot的分类方法进行气缸套的测试。
[0033]
首先,将元训练数据的支持集输入到yolov3中,通过darknet层提取特征,在通过fpn成进行特征融合,通过预测头层生成预测值,与真实值标签计算损失,得到损失梯度。将查询集通过yolov3网络生成预测值,与真实值标签计算损失,通过sgd梯度下降更新参数。yolov3的损失由三个部分组成,分别是位置损失、置信度损失和类别损失。公式如下:
[0034]
(1)位置损失:
[0035][0036]
其中,s2是最终特征图的生成的网格数,i是第几个网格,b是在一个网格上生成的3个框,j是第几个框,γ
coord
是权重参数,是第i个网格的第j个框对该物体负责,xi是预测的物体中心点的横坐标,是真实的物体中心点的横坐标,yi预测的物体中心点的纵坐标,是真实的物体中心点的纵坐标;wi是预测框的宽度,是真实框的宽度,hi是预测框的高度,是真实框的高度。
[0037]
(2)置信度损失:
[0038][0039]
其中是第i个网格的第j个框对背景负责,ci是预测的置信度,是真实的置信度。
[0040]
(3)类别损失:
[0041][0042]
其中pi(c)表示预测的类别,表示真实的类别。
[0043]
总的损失函数为:
[0044]
l

=l
reg
l

l
cls
[0045]
其次,通过查询集和支持集对模型进行内外2次优化。内部参数更新的公式如下:
[0046][0047]
其中θ是模型初始化参数,是第i个任务在第n-1步梯度更新后模型的参数,取
值范围在(0,m]之间;α为元学习率,为θ关于损失的梯度,l为损失函数,ti为随机采样的任务;为第i个任务在第n-1步梯度更新后模型的预测值,da为支持集的标签信息。基于上述更新过的参数模型,利用任务的查询集实现模型外部优化。公式为下:
[0048][0049]
其中β为元学习率,db为查询集的标签。利用sgd(梯度反向传播算法),对yolov3网络参数进行迭代更新。
[0050]
最后,在元学习的训练阶段,通过任务训练网络更新模型参数。在元学习的测试阶段,训练支持集中,直接将之前训练好的预训练模型迁移过来,在数量少的支持集上(目标域)进行微调,加快训练时间和精度。最后在元学习测试集的查询集中,先对数据进行归一化处理,通过已经训练好的网络模型,对气缸套进行测试。上述更新的θ相比与随机初始化的θ,面对未知的气缸套数据集,可以更快的是的模型进行训练,加快收敛,有利于小样本数据集的检测。最终实现小样本的检测。
[0051]
有益效果:本发明使用yolov3作为框架的元学习模型,以及将迁移学习和元学习结合的检测方法,提高了小样本检测的可行性,减少了训练样本的数量和迭代的次数,加快了训练时间。在训练数据量难以获取的情况下,与现有的目标检测方法相比,本发明的目标检测方法可以有效解决小样本问题,且具有一定的通用性。
附图说明
[0052]
图1为本发明检测方法的流程图;
[0053]
图2为本发明迁移学习和元学习训练图;
[0054]
图3为本发明yolov3网络简图。
[0055]
具体实施方法
[0056]
下面结合附图和具体实施方式对本发明做进一步的说明。
[0057]
本发明所用技术是将yolov3网络和元学习方法(maml)融合起来,从而进行小样本的气缸套检测。首先进行数据收集并进行图像预处理操作,其次选择yolov3算法作为骨架网络,在训练图像测试集的支持集之前,加入迁移学习模块,使得元测试集中的支持集有较强的特征提取能力,让模型更容易识别特征信息,加快模型收敛。面对未知的气缸套数据集,模型基于元测试集的支持集进行微调,利用查询集进行小样本的检测。在训练和测试中,随机采取n-way k-shot任务分类方法对模型进行训练和测试,最终实现对小样本的检测。
[0058]
如图1-3所示,本发明具体过程包括如下步骤:
[0059]
步骤1:收集实验数据集
[0060]
制作voc格式数据集,利用labelimg工具,对气缸套数据集中图片数据进行标注,产生xml文件。收集包括标注信息的常见工件表面缺陷数据图。将常见的工业表面缺陷数据集按照缺陷的不同划分为两个部分,一部分常见的工业表面缺陷数据集作为迁移学习训练的数据,另一部分工业缺陷数据集划分为训练集和测试集。将气缸套原始图像根据缺陷标定的位置截取局部缺陷图划分为气缸套训练集和气缸套测试集。将收集到图像全部做图像预处理操作,对收集到的图像全部缩放到同一大小的尺寸上,进行图像增强操作,图像的随
机反转,水平旋转操作。对处理过后的图片进行归一化操作。
[0061]
步骤2:数据划分
[0062]
在元训练集中有对应的支持集和查询集,它们分别从常见工业表面缺陷的训练集和测试集提取。元测试集中支持集和查询集分别从气缸套的训练集和测试集提取。将预处理后的常见的工业表面缺陷数据集随机抽取n个任务作为元训练数据集,依次将任务送到yolov3中进行模型训练并更新参数,最后保存更新过后的参数。在预处理后的气缸套缺陷数据集作为元训练数据集,将数据送到yolov3中,对模型训练并微调参数。
[0063]
步骤3:模型选择
[0064]
本专利所用yolov3网络来构建模型,进行基于元学习的检测。yolov3是一阶段网络,具有保持精度的同时,检测的速度快等优点。yolov3的网络由darknet53进行特征图的提取,由fpn(图像金字塔)进行特征融合,最后用3*3和卷积和1*1的卷积进行分类任务和回归任务。由于气缸套缺陷比较小,可以将原来输出的3个预测头网络保留1个预测头网络(该预测头网络是专门对小目标进行检测的)。进而减少网络训练时间。
[0065]
步骤4:迁移学习
[0066]
一般在训练过程中,训练的参数都是随机初始化的,不可以人为调整,为了获得良好的参数,需要对大量的图片进行训练。而小样本中特征提取的部分参数占了很多,为了弥补由于样本数量少的缺点,在元学习的过程中加入了迁移学习模块。首先将之前划分好的迁移学习训练数据放到yolov3网络进行训练,得到网络训练权重。之后在元学习训练测试集的支持集之前,添加先前训练好的模型权重,进行迁移学习,增强在元学习测试集中支持集中图片特征提取的能力。减少模型迭代次数,加快模型快速收敛。
[0067]
步骤5:元学习
[0068]
在元训练阶段,一个任务(task)中随机采取n-way k-shot任务分类方法,n是随机选择的类别,k是选择的一个类别中对应的图片数量。对于元训练集的支持集本专利采用5-way 1-shot分类方法将数据放到网络进行训练,对于元训练集的查询集采用5-way 15-shot的分类方法进行测试。对于元测试集的支持集采用5-way 1-shot分类方法将数据放到网络进行微调,对于元测试集的查询集采用5-way 15-shot的分类方法进行气缸套的测试。首先将元训练数据的支持集送到yolov3中,通过darknet层提取特征,在通过fpn成进行特征融合,通过预测头层生成预测值,与真实值标签计算损失,得到损失梯度。将查询集通过yolov3网络生成预测值,与真实值标签计算损失,通过sgd梯度下降更新参数。
[0069]
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献