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

基于多任务学习的缺陷检测方法与流程

2022-02-20 19:53:47 来源:中国专利 TAG:


1.本发明属于图像处理技术领域,是属于工业视觉领域可以更精确的检测和定位产品缺陷的一种基于多任务学习的缺陷检测方法。本发明可用于自动化工业场景中的产品缺陷检测,提取输入图像的特征并修复其中有缺陷的像素,最终通过修复图和输入图的对比实现对缺陷分割和定位的功能。


背景技术:

2.缺陷检测方法目前存在三种方法。第一种训练cnn网络对输入图像或者输入图像的像素块进行二分类达到检测缺陷的效果。第二种使用基于目标检测的方法对输入图像中的缺陷进行定位达到检测缺陷的效果。第三种使用基于语义分割的方法将输入图中的缺陷像素分割出来达到缺陷检测的目的。神经网络拥有多层网络结构,能够提取出数据的高阶特征,因此常用于图像视频处理任务中。多任务学习可以通过对多个不同但相关的任务共享同一个特征提取器,使得多个任务同时优化,从而促进每个任务的学习。基于多任务学习的缺陷检测方法主要思想为:利用神经网络对输入图像进行初步的图像特征提取,随后主任务网络使用提取到的高阶特征将输入图像中的缺陷修复并重构出一张修复后的图片,辅助任务使用同样的高阶特征利用语义分割的方法生成一个缺陷分割结果图,随后将两个任务的结果融合得到最终的检测结果。
3.t.wang,y.chen和m.qiao在其发表的论文“a fast and robust convolutional neural networkbased defect detection model in product quality control”(int jadv manuftechnol 94,2018:3465-3471)中提出了一种基于cnn网络的缺陷检测方法。该方法将输入图像分块后输入到卷积神经网络中,训练一个二类分类器,用于判别输入像素块是否含有缺陷。该方法的不足是:对缺陷的定位精度受限于像素块的大小,无法灵活精确定位缺陷。
4.j.li,z.su,j.gengy,yin等人在其发表的论文“real-time detection ofsteel strip surface defect based on improvedyolo detection network”(in:ifag-papersonline,vol 51,no 21,2018:76-81)中提出一种基于目标检测方法yolo的缺陷检测方法。该方法继承了目标检测方法yolo整体的框架,并做除了一些改进在缺陷检测任务中也取得了不错的效果。该方法的缺点有:对然可以提供比cnn更精确的定位结果,但是但是精度仅局限于定位框,无法针对缺陷做出像素级的定位结果。
5.x.tao,d.zhang,w.ma等人在其发表的论文“automatic metallic surface defect detection and recognition with convolutional neural networks”(appl.sci,vol 8,2018:1575)提出一种基于语义分割的缺陷检测方法。使用卷积编码器搭建的分割网络对输入图片中的缺陷进行分割。该方法解决了上前面两种方法所面临的问题可以得到精确的像素级分割和定位结果。但是仍存在一些问题:该方法需要大量精确标注的缺陷训练样本,而在实际生产中缺陷样本极其稀少,而且标注成本巨大,训练数据难以获得。


技术实现要素:

6.针对现有技术中存在的缺陷,本发明的目的在于提供一种基于多任务学习的缺陷检测方法,来解决现有技术需要大量精确标注的缺陷训练样本,而在实际生产中缺陷样本极其稀少,而且标注成本巨大,训练数据难以获得的问题。
7.为了达到上述目的,本发明所采用的具体技术方案如下:
8.一种基于多任务学习的缺陷检测方法,具体包括以下步骤:
9.(1)将设定数量的缺陷图像数据和正常图像数据按照设定比例组成训练集和测试集;
10.(2)若处于训练阶段,则利用融合方法对数据集进行扩增,即将训练集和测试集中的缺陷数据叠加到正常数据中,构造出扩增缺陷图像;否则直接执行下一步;
11.(3)利用自编码器提取训练集中每个图像的特征向量;
12.(4)搭建解码器作为修复器,将步骤(3)中的特征向量输入修复器,对特征向量进行重构,获得无缺陷的修复图像,在训练阶段计算修复图像和原始图像的损失来约束模型进行学习,在测试阶段计算修复图像与原图像的残差图;
13.(5)搭建解码器作为分割器,将步骤(3)中的特征向量按照顺序拼接为一张特征图,将特征图输入分割器,得到二值分割图,获取图像的粗略分割结果;在训练阶段,计算二值分割图与训练标签的交叉熵损失来约束模型进行学习;
14.(6)搭建供修复器和分割器共享的编码器,构建多任务学习框架,使得修复器和分割器同时训练和互相学习,在预测阶段,融合修复器和分割器的输出结果以获取检测结果。
15.优选的,步骤(2)若处于训练阶段,则利用融合方法对数据集进行扩增,具体指的是:
16.若处于训练阶段,则利用泊松融合方法对数据集进行扩增。
17.优选的,步骤(3)具体包括以下步骤:
18.(3a)搭建设定层数的神经网络,设置并训练每层参数;
19.(3b)将训练集中的图像分块输入训练后的神经网络,获得设定数量的特征向量。
20.优选的,步骤(4)具体包括以下步骤:
21.(4a)搭建设定层数的神经网络,并与自编码器对应层数添加短接线,设置并训练每层参数;
22.(4b)将特征向量输入神经网络,重构获得无缺陷的修复图像,若为训练阶段,则执行步骤(4c),若为预测阶段,执行步骤(4d);
23.(4c)计算修复图像和原始图像的损失来约束模型进行学习,损失函数为
[0024][0025]
其中,lr表示一个批次的损失,xi表示修复图片的第i个像素块的像素矩阵,x
i*
表示原始正常图片的第i个像素块的像素矩阵,n表示一个训练批次中的像素块数量;
[0026]
将重构的无缺陷像素块按裁切的顺序拼接,获得完整的修复图片;
[0027]
(4d)计算修复图像与原图像的差值,并通过一个阈值来决策一个像素是否为缺陷像素,最终获得残差图。
[0028]
优选的,步骤(5)具体包括以下步骤:
[0029]
(5a)搭建设定层的神经网络,设置并训练每层参数;
[0030]
(5b)将步骤(3)中的特征向量按照顺序拼接为一张特征图;
[0031]
(5c)将特征图输入训练后的神经网络,得到二值分割图,获取图像的粗略分割结果;若为训练阶段,执行步骤(5d);
[0032]
(5d)计算二值分割图与训练标签的交叉熵损失来约束模型进行学习,损失函数为
[0033][0034]
其中,w和h分别表示为二值分割图的宽和高,k表示类别数(背景和缺陷),wk表示第k类的权重系数用于平衡类别不均衡,y
ij
表示第(i,j)像素所属类别的标签,当y
ij
=k时,1(y
ij
==k)取1,否则取0,pk(m
ij
)表示第(i,j)像素属于第k类的概率。
[0035]
优选的,步骤(5c)中重构得到二值分割图过程中的重构损失函数如下:
[0036][0037]
其中,xi'为未叠加缺陷的训练图像,x
i*
'为经过叠加缺陷再修复之后获取的图像。
[0038]
优选的,步骤(6)具体包括以下步骤:
[0039]
(6a)构建供修复器和分割器共享的编码器,并对修复器和分割器进行同时训练;
[0040]
(6b)构建全局损失函数来训练整个模型,全局损失函数为
[0041][0042]
其中,λ用于平衡两个相关任务的差异度;通过将不同任务损失函数加权的方式,在不同任务中达到平衡,提高收敛效率;
[0043]
(6c)在预测阶段,融合修复器和分割器的输出结果以获取检测结果。
[0044]
优选的,步骤(6)中融合修复器和分割器的输出结果以获取检测结果具体指的是
[0045]
融合修复器和分割器的输出结果,使用分割图来滤除残差图中的噪声以获得更加精确的检测结果。
[0046]
优选的,步骤(6)中融合修复器和分割器的输出结果指的是
[0047]
对残差图二值化,将修复器获取的二值分割图和分割器获取的二值分割图进行融合。
[0048]
优选的,步骤(6)中构建多任务学习架构,设计的两个相关任务分别为修复缺陷与缺陷定位。
[0049]
本发明的有益效果在于:
[0050]
第一,由于在训练数据集生成时,采用融合算法生成有缺陷的样本,以此来解决训练样本缺少的问题;此外本方法中只需要粗略标注的样本,而不是语义分割方法中需要的精确的标注样本,这大大降低了获取训练数据的成本和难度。技术做了这些变化,本发明的效果仍然可以和精确标注样本训练的语义分割方法竞争。
[0051]
第二,使用两个相关的任务同时训练,主任务用于缺陷的修复任务,辅助任务用于生成缺陷的大致分割结果,通过将辅助任务的结果和主任务结果融合,来消除主任务结果中的噪声,从而达到降噪的目的,同时使得本发明对缺陷分割定位的结果更加精确。
附图说明
[0052]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053]
图1是本发明一种基于多任务学习的缺陷检测方法的流程图。
具体实施方式
[0054]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的其他实施例,都属于本发明保护的范围。
[0055]
实现本发明目的的思路是,通过共享同一个特征提取器,使得缺陷修复器和缺陷分割器的学习可以相互促进,从而达到提升检测效果的目的。
[0056]
如图1所示,本发明提出了一种基于多任务学习的缺陷检测方法,具体包括以下步骤:
[0057]
(1)生成训练集和测试集:
[0058]
将设定数量的缺陷图像数据和正常图像数据按照设定比例组成训练集和测试集;具体的,可从每个数据集包含缺陷数据150个及正常数据1000个,共有6个数据集,随机选择100个缺陷数据和500个正常数据组成训练集,剩下50个缺陷数据和500个正常数据组成测试集;
[0059]
(2)利用泊松融合方法对数据集进行扩增:
[0060]
若处于训练阶段,则利用融合方法对数据集进行扩增,即将训练集和测试集中的缺陷数据叠加到正常数据中,构造出扩增缺陷图像;否则直接执行下一步;
[0061]
具体的,可利用泊松融合方法将缺陷数据中的缺陷像素叠加到正常数据中,从而构造出缺陷数据用于神经网络的训练;
[0062]
(3)利用自编码器提取每个纹理图像的特征:
[0063]
利用自编码器提取训练集中每个图像的特征向量;
[0064]
步骤(3)具体包括以下步骤:
[0065]
(3a)搭建设定层数的神经网络,设置并训练每层参数;
[0066]
例如,搭建一个十一层的神经网络:其结构依次为:第一空漏洞卷积层—》第二卷积层—》第一池化层—》第三漏洞卷积层—》第四卷积层—》第二池化层—》第五漏洞卷积层—》第六卷积层—》第三池化层—》第七漏洞卷积层—》第八卷积层—》第四池化层—》第九漏洞卷积层—》第十卷积层—》第十一卷积层。
[0067]
其每层参数设置如下:将第一第二卷积层的卷积核大小设置为3
×
3,个数设置为
64,将第三第四卷积层的卷积核大小设置为3
×
3,个数设置为128,将第五第六卷积层的卷积核大小设置为3
×
3,个数设置为256,将第七第八卷积层的卷积核大小设置为3
×
3,个数设置为512,第九第十卷积层的卷积核大小设置为3
×
3,个数设置为1024,将第十一卷积层的卷积核设置为4
×
4,个数为256;每个池化层均采用最大池化方式,每个池化层的卷积池化核大小均设置的为2
×
2,步长均设置为2。
[0068]
(3b)将训练集中的图像分块输入训练后的神经网络,获得设定数量的特征向量。
[0069]
将训练集中的图片分块输入到神经网络,对于每张图片可获得256个特征向量。
[0070]
(4)利用解码器(记为修复器)修复缺陷图片中的缺陷像素:
[0071]
搭建解码器作为修复器,将步骤(3)中的特征向量输入修复器,对特征向量进行重构,获得无缺陷的修复图像,在训练阶段计算修复图像和原始图像的损失来约束模型进行学习,在测试阶段计算修复图像与原图像的残差图;
[0072]
步骤(4)具体包括以下步骤:
[0073]
(4a)搭建设定层数的神经网络,并与自编码器对应层数添加短接线,设置并训练每层参数;
[0074]
搭建一个十二层网络,其结构依次为:第一逆卷积层—》第二卷积层—》第三卷积层—》第一上采样层—》第四卷积层—》第五卷积层—》第二上采样层—》第六卷积层—》第七卷积层—》第三上采样层—》第八卷积层—》第九卷积层—》第四上采样层—》第十卷积层—》第十一卷积层—》第十二卷积层。
[0075]
每层参数设置如下:将第一逆卷积层的卷积核大小设置为4
×
4,个数设置为1024,将第二第三卷积层的卷积核大小设置为3
×
3,个数设置为512,将第四第五卷积层的卷积核大小设置为3
×
3,个数设置为256,将第六第七卷积层的卷积核大小设置为3
×
3,个数设置为128,第八第九卷积层的卷积核大小设置为3
×
3,个数设置为64,将第十第十一卷积层的卷积核设置为3
×
3,个数为64,第十二卷积层的卷积核设置为1
×
1,个数为1;每个上采样层的卷积采样倍率大小均设置为2
×
2。
[0076]
(4b)将特征向量输入神经网络,重构获得无缺陷的修复图像,若为训练阶段,则执行步骤(4c),若为预测阶段,执行步骤(4d);
[0077]
经过修复器网络之后,会得到256个经过修复的像素块,按照顺序将它们拼接起来,就可以得到一张经过修复的图像。
[0078]
(4c)计算修复图像和原始图像的损失来约束模型进行学习,损失函数为
[0079][0080]
其中,lr表示一个批次的损失,xi表示修复图片的第i个像素块的像素矩阵,x
i*
表示原始正常图片的第i个像素块的像素矩阵,n表示一个训练批次中的像素块数量;
[0081]
将重构的无缺陷像素块按裁切的顺序拼接,获得完整的修复图片;
[0082]
(4d)计算修复图像与原图像的差值,并通过一个阈值r来决策一个像素是否为缺陷像素,最终获得残差图。
[0083]
(5)利用解码器(记为分割器)获取缺陷图像的粗略分割结果:
[0084]
搭建解码器作为分割器,将步骤(3)中的特征向量按照顺序拼接为一张特征图,将
特征图输入分割器,得到二值分割图,获取图像的粗略分割结果;在训练阶段,计算二值分割图与训练标签的交叉熵损失来约束模型进行学习;
[0085]
步骤(5)具体包括以下步骤:
[0086]
(5a)搭建设定层的神经网络,设置并训练每层参数;
[0087]
搭建一个十三层的神经网络,其结构依次为:第一卷积层—》第二卷积层—》第一上采样层—》第三卷积层—》第四卷积层—》第二上采样层—》第五卷积层—》第六卷积层—》第三上采样层—》第七卷积层—》第八卷积层—》第四上采样层—》第九卷积层—》第十卷积层—》第五上采样层—》第十一卷积层—》第十二卷积层—》第十三卷积层。
[0088]
每层参数设置如下:将第一第二卷积层的卷积核大小设置为3
×
3,个数设置为1024,将第三第四卷积层的卷积核大小设置为3
×
3,个数设置为512,将第五第六卷积层的卷积核大小设置为3
×
3,个数设置为256,将第七第八卷积层的卷积核大小设置为3
×
3,个数设置为128,第九第十卷积层的卷积核大小设置为3
×
3,个数设置为64,将第十一第十二卷积层的卷积核设置为3
×
3,个数为64,第十三卷积层的卷积核设置为1
×
1,个数为2;每个上采样层的卷积采样倍率大小均设置为2
×
2。
[0089]
(5b)将步骤(3)中的特征向量按照顺序拼接为一张特征图;
[0090]
(5c)将特征图输入训练后的神经网络,得到二值分割图,获取图像的粗略分割结果;该分割图将输入图中的缺陷的大致位置标注出来。若为训练阶段,执行步骤(5d);
[0091]
步骤(5c)中重构得到二值分割图过程中的重构损失函数如下:
[0092][0093]
其中,xi'为未叠加缺陷的训练图像,x
i*
'为经过叠加缺陷再修复之后获取的图像。
[0094]
(5d)计算二值分割图与训练标签的交叉熵损失来约束模型进行学习,损失函数为
[0095][0096]
其中,w和h分别表示为二值分割图的宽和高,k表示类别数(背景和缺陷),wk表示第k类的权重系数用于平衡类别不均衡,y
ij
表示第(i,j)像素所属类别的标签,当y
ij
=k时,1(y
ij
==k)取1,否则取0,pk(m
ij
)表示第(i,j)像素属于第k类的概率。
[0097]
(6)搭建供修复器和分割器共享的编码器,构建多任务学习框架,使得修复器和分割器同时训练和互相学习,在预测阶段,融合修复器和分割器的输出结果以获取检测结果。
[0098]
步骤(6)具体包括以下步骤:
[0099]
(6a)构建供修复器和分割器共享的编码器,并对修复器和分割器进行同时训练;
[0100]
(6b)构建全局损失函数来训练整个模型,全局损失函数为
[0101][0102]
其中,λ用于平衡两个相关任务的差异度;通过将不同任务损失函数加权的方式,在不同任务中达到平衡,提高收敛效率;
[0103]
(6c)在预测阶段,融合修复器和分割器的输出结果以获取检测结果。
[0104]
优选的,步骤(6)中融合修复器和分割器的输出结果以获取检测结果具体指的是
[0105]
融合修复器和分割器的输出结果,使用分割图来滤除残差图中的噪声以获得更加精确的检测结果。
[0106]
优选的,步骤(6)中融合修复器和分割器的输出结果指的是
[0107]
对残差图二值化,将修复器获取的二值分割图和分割器获取的二值分割图进行融合。
[0108]
优选的,步骤(6)中构建多任务学习架构,设计的两个相关任务分别为修复缺陷与缺陷定位。
[0109]
本发明的效果可通过以下仿真进一步说明。
[0110]
1.仿真条件:
[0111]
本发明的仿真实验的硬件平台为:nvidiartx 3090gpu。
[0112]
本发明的仿真实验的软件平台为:ubuntu20.04操作系统和pytorch1.8.0。
[0113]
2.仿真内容及仿真结果分析:
[0114]
本发明仿真实验中生成训练集和测试集时使用了dgam纹理缺陷数据集,该数据集由10个子数据集组成,每个子数据集都有一种不同的纹理,其中前六个子数据集有500正常75缺陷的训练集和500正常75缺陷测试集,后四个子数据集有1000正常150缺陷的训练集和1000正常150缺陷测试集。
[0115]
本发明仿真实验是采用本发明和三个现有技术(全卷积语义分割网络fcn检测方法、基于u-net的堆叠卷积自编码器casae检测方法、基于分割的深度学习检测方法sndn)分别在只使用若标签的情况下,对选中的六个子测试数据集进行检测,并对比。
[0116]
在仿真实验中,采用的三个现有技术是指:
[0117]
全卷积语义分割网络fcn检测方法是指,j.long等人在“fully convolutional networks for semantic segmentation.in:proc.ieee conf.comput.vis.pattern recognit.,pp.3431-3440,2015”中提出的全卷积语义分割方法,简称全卷积语义分割网络fcn检测方法。
[0118]
基于u-net的堆叠卷积自编码器casae检测方法是指,j.chen等人在“automatic defect detection of fasteners on the catenary support device using deep convolutional neural networks,ieee trans.instrumentation andmeasurement,pp.257-269,2018”中提出的堆叠自编码器检测方法,简称基于u-net的堆叠卷积自编码器casae检测方法。
[0119]
基于分割的深度学习检测方法sndn是指,d.tabernik等人在“segmentation based deep learning approach for surface defect detection,j intell.manuf.,pp.759-776,2020”中提出的基于分割的方法,简称基于分割的深度学习检测方法sndn。
[0120]
为了对本发明仿真的结果的效果进行评估,仿真结果评估标准为:mean-iou,该指标最大为1,数值越大则效果越好,表1如下所示。
[0121]
表1仿真实验中本发明和各现有技术准确率对比表
[0122]
表1是采用现有技术基于mean-iou评估标准方法得到的仿真结果,全卷积语义分割网络fcn检测方法(fcn)、基于u-net的堆叠卷积自编码器casae检测方法(casae)、基于分割的深度学习检测方法(sndn)对比实验后,计算检测准确率对比表。
[0123]
从表1中可以看出本发明方法的mean-iou指标在六个子数据集中最高可以达到74.62%,最低为55.40%,均高于3种现有技术方法,证明本方法可以更准确的对纹理表面缺陷更准确的检测。
[0124]
本发明还可以用于解决工业自动化生产线中的自动质量检测问题。
[0125]
以上述依据本发明的理想实施例为启示,通过上述的说明内容,本领域技术人员完全可以在不偏离本发明技术思想的范围内,进行多样的变更以及修改。本发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求书范围来确定其技术性范围。
再多了解一些

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

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

相关文献