一种基于正例训练的表面缺陷检测方法与流程

文档序号:16214056发布日期:2018-12-08 08:07阅读:1600来源:国知局
一种基于正例训练的表面缺陷检测方法与流程

本发明属于机器视觉技术领域,涉及产品表面缺陷检测,为一种基于正例训练的表面缺陷检测方法。

背景技术

在工业生产中,缺陷检测是一个非常重要的部分,它对最终产品的质量和产品在市场上的声誉有着重要的影响。在传统工业生产中,缺陷检测常常使用人眼来完成,这会造成如下的弊端:主观影响大,且人眼在大量重复的工作中会很容易出现漏检、错检的情况,而且人力资源成本是昂贵的。因此机器视觉代替人眼缺陷检测既可以降低成本又可以提高精度。

机器视觉算法在实际工业缺陷检测环境中会遇到许多问题和挑战,传统的机器视觉算法在缺陷检测中的应用常是基于特征提取配合模式识别的。然而传统的图像特征提取算子得到的特征常常是低阶的,在遇到光照变化、扭曲、遮挡、形变等情况时,特征算法通常无法有效提取目标的特征。深度学习在图像特征的提取上取得了非常好的成果,其中的代表就是卷积神经网络。卷积神经网络在各种有监督的问题上,如分类、目标定位、语义分割等,都取得了最高的精度。

现有使用深度学习技术进行表面缺陷检测的文献中,有使用深度卷积神经网络完成了钢轨表面的缺陷检测,它将正常钢轨图片和有缺陷钢轨图片分为6类,1类正确图片和5类缺陷图片,然后使用深度卷积神经网络dcnn进行分类来实现缺陷的检测;有结合区域筛选和卷积神经网络,对得到的区域进行检测和识别,完成胶囊表面缺陷的检测;有使用两个全卷积网络fcn语义分割网络进行缺陷检测,一个网络进行粗定位,一个网络进行细定位,画出缺陷的轮廓。

以上有监督的深度学习缺陷检测方法在实际的工业检测应用中会存在两个问题:

1、训练样本中缺陷样本不足

在实际问题中,训练样本里的缺陷种类总是偏少的,这导致了两方面的问题。一方面是训练过程中正负样本的数量极度不平衡;另一方面是实际使用时总会出现训练集中没有的缺陷形态。在实际缺陷形态无法预测的场景中,有监督的检测方法常常不能达到需要的精度。

2、标注信息昂贵

由于实际的缺陷检测应用通常有多种形态的缺陷,且不同现场的光照条件、客户需求都不一样。这就需要针对特定的需求人工标注大量的训练样本,这是需要消耗大量人力资源的。

针对以上监督学习算法在实际应用中存在的问题,本发明提出了一种基于正样本训练的缺陷检测方式。训练过程中只需提供足够的正样本,无需提供缺陷样本,且无需人工标注,就可以达到对缺陷检测的效果。



技术实现要素:

本发明要解决的问题是:表面缺陷检测在实际的生存过程中,会遇到生产环境变化复杂、有监督的深度学习方法所需的大量缺陷样本和人工标注都不易获取的问题。

本发明的技术方案为:一种基于正例训练的表面缺陷检测方法,包括以下步骤:

1)图像重建:

1a)在正例图片中加入随机的人造缺陷和噪声;

1b)设置自编码器将带人造缺陷和噪声的图片编码重构得到重建图片,计算重建图片和正例图片两者之间的l1距离,将最小化所述l1距离作为l1loss,即优化目标;

1c)设置生成对抗网络gan,将自编码器作为gan的生成器,对重建图片进行ganloss约束,约束目标为使重建图片的效果和真实图片尽可能相近;

1d)将l1loss和ganloss叠加作为优化目标,对自编码器进行训练,在训练阶段调整自编码器的参数,使自编码器输出的重建图片在满足l1loss的同时满足ganloss;

2)进行缺陷检测:

2a)在测试阶段,将待检测图像经过训练好的自编码器,得到其对应的重建图片;

3b)对步骤2a)所得重建图片和待检测图像同时计算lbp特征,得到两张特征图,计算两张特征图对应位置的差值;

3c)将差值图二值化即可得到缺陷分割图。

进一步的,步骤1a)中,生成随机形状、位置、大小、灰度值、数量的缺陷块加到图片中去,同时使用随机旋转、随机缩放和随机高斯噪声等数据增强手段,如下所示

x=c(x)(1)

其中x表示正例图片,c表示缺陷生成器和数据增强部分,x表示添加了人造缺陷的正例图片。

进一步的,步骤1b)中,定义l1距离作为重构误差,即l1loss为:

其中g表示自编码器,x表示正例图片,g(x)表示重建图片,pdata(x)是x所满足的概率分布,指正例图片应满足的分布,自编码器将带缺陷的样本重建为对应的无缺陷的样本,最小化重构误差作为优化自编码器的优化目标。

进一步的,步骤1c)中,将自编码器作为gan的生成器,对重建图片通过gan的判别器进行判别,ganloss的目标函数为:

其中g即自编码器,d表示gan中的判别器,x表示正例图片,g(x)表示重建图片,pdata(x)是x所满足的概率分布,指正例图片应满足的分布,在训练的过程中,判别器尽可能区分真或假的图片,自编码器尽可能生成可以通过判别器的图片,生成图片的质量在自编码器和判别器的不断博弈中提升。

步骤1d)中,l1loss和ganloss结合方法为:

其中λ是平衡ganloss和重构误差的参数。

步骤2b)中,待检测图像z和修复图y经过lbp算法处理得到特征图z+和y+后,对于z+的每个像素点,在y+对应位置的邻域搜索与该特征值最接近的值作为匹配点,将像素点与匹配点做差取绝对值,得到的值越小,表示该点是缺陷的可能性越低,步骤2c)中,对差值图使用固定阈值二值化,即可得到缺陷分割图。

采用本发明方法,与现有技术相比,具有如下显著效果:

(1)本发明基于深度卷积神经网络,在有充足的正例训练样本的情况下,可以适应实际生产环境中光照变化、背景复杂、随机噪声、工件形状位置配准不好等情况,这里充足的正例训练样本指希望在测试阶段被判为正例的特征和情况在训练集中都存在,例如所述的光照变化、背景复杂、随机噪声、位置不准等情况下的正例图片,当训练集中全部包括这里情况的正例图片,由于深度卷积神经网络的参数足够多、容量足够大,自编码器都可以对应重建图片,而上述情况下的正例样本易于获得,因此相对于传统的机器视觉算法可非常好地抵抗环境变化带来的干扰,有更强的鲁棒性,也易于实现。

(2)本发明在训练过程中只依赖正样本量足够充足,而不对训练的负样本有要求。因为缺陷样本常常数量比较少且形态各异,而正样本量大且形态具有比较好的一致性,因此实际生产环境中建立充足的正样本图集是相对容易的,本发明有利于实际应用。

(3)本发明无需人工标注,所需的人力成本较低。实际生产环境中,缺陷有多种形态,且不同现场的光照条件、客户需求都不一样,现有的有监督的缺陷检测算法需要消耗大量的人力资源的。本发明通过自动生成足够的随机缺陷,训练自动修复的自编码器来和原图比对进行缺陷检测,大大降低了人力成本。

附图说明

图1是本发明的一种基于正例训练的缺陷检测方法的示意图,包括训练阶段和测试阶段,在训练阶段训练好自编码器的参数,使其可以实现缺陷图片的重建;在测试阶段进行重建和缺陷检测。

图2是本发明在训练阶段给正例图片加入的人造缺陷示意图,可以看到人造缺陷的大小、形状、灰度值、位置都是随机的。

图3是本发明测试阶段得到重建图后lbp比对示意图,z是原图,y是z的重建修复图,它们经过lbp算法处理得到特征图分别是z+、y+,z+和y+比对后得到最终的缺陷分割图s。

图4是本发明测试阶段实际缺陷示意图,可以看到其形态上和训练时加入的人造缺陷还有比较大的区别,最终的实验效果说明本方法可以不依赖训练阶段人造缺陷必须和实际缺陷相似这一条件。

图5是本发明在测试阶段的重建、缺陷检测示意图,和在缺陷样本不充足的情况下深度学习语义分割效果的对比。其中:(a)列为带缺陷的原图,(b)列为本发明得到的重建图,(c)列为本发明得到的缺陷分割图,(d)列为有监督模型在缺陷样本不足的情况下得到的分割图,(e)列为实际缺陷标注。

具体实施方式

本发明提出了一种基于正例训练的表面缺陷检测方法,在有足够的正样本时可以足够鲁棒不易受到环境变化的干扰,同时基于正例训练不依赖大量负例样本和人工标注,适合在真实的应用场景中使用,可以较好地检测出表面缺陷。

为进一步了解本发明的内容,下面结合附图和实施例对本发明作详细描述。

实施例1

为了解决传统视觉算法鲁棒性不好、监督学习算法的缺陷样本不易获取且人力成本消耗大,本发明提出了一种基于正例训练的表面缺陷检测方法,其主要步骤参见图1,图中g为自编码器,en和de是指自编码器的编码和重构,d为生成对抗网络gan的判别器,具体实施详见下文描述:

图像重建:

1)在正例图片中加入随机的人造缺陷和噪声,不需要知道真实缺陷的具体形态,本发明设置自编码器只需要将原图修复为最接近的想正例样本即可。所以在训练时人造足够随机的缺陷贴到正例样本上,网络就可以学习到修复图的信息。通过编写程序算法生成随机形状、位置、大小、灰度值、数量的缺陷,在实际的训练中,将生成的随机形状、位置、大小、灰度值、数量的缺陷块加到图片中去,同时使用随机旋转、随机缩放、随机高斯噪声等数据增强手段,如下所示:

x=c(x)(1)

其中x表示原图(正样本),c表示自动缺陷生成器和数据增强部分,x表示添加了人造缺陷的正样本。

图2即是加入了人造缺陷后的样本示例。

2)使用自编码器将带人造噪声的图片编码并重构,使重构后的图片和没有噪声的原图尽可能相等,计算两者之间的l1距离,最小化这个l1距离作为优化目标,即l1loss。带缺陷的样本经过自编码器后应当尽可能和原始正例样本相等,定义基于l1loss的重构误差:

其中g表示自编码器,它的作用是将带缺陷的样本重建为对应的无缺陷的样本,最小化重构误差该重构误差作为优化自编码器的优化目标。pdata(x)是x所满足的概率分布,指正例图片应满足的分布。

3)在最小化l1距离的优化中,由于l1距离不可能优化到0,会生成模糊、细节不清晰的图像,设置生成对抗网络gan,将自编码器作为gan的生成器,对重建图片进行ganloss约束,约束目标为使重建图片的效果和真实图片尽可能相近,即在满足一个尽可能小的l1距离的前提下,尽可能抵抗这种模糊、细节不清晰的效果。

配合gan,对重建图片进行约束,使重建图片的效果和真实图片尽可能相近,如果使用单纯的重构误差作为目标函数,会使得到的图片边缘模糊且损失细节。引入判别器,加入ganloss,可以很好地改善图片模糊的问题,提升图像的逼真程度。ganloss的目标函数定位为:

其中g即自编码器,d表示gan模型中的判别器。在训练的过程中,判别器尽可能区分真或假的图片,自编码器尽可能生成可以欺骗判别器的图片,生成图片的质量会在自编码器和判别器的不断博弈中提升。

4)l1loss和ganloss相加作为优化目标,在训练阶段调整自编码器的参数,使得自编码器的作用即将带缺陷的图片重建为对应的无缺陷图片,l1loss和ganloss相结合总的优化目标是寻找自编码器网络g的参数,使其满足:

其中λ是平衡ganloss和重构误差的参数,由实验确定。

本发明中,ganloss的引入虽然一定程度上会和自编码器的重构误差产生竞争,但其可以提升图片的生成质量和对重要细节信息的描述。

进行缺陷检测:

1)在测试阶段,将待检测图像经过训练好的自编码,得到其对应的重建好的修复图像;

2)对上面步骤所得图像和原图同时计算lbp特征,得到两张特征图,计算特征图对应位置的差值。由于修复图在灰度值和细节信息上会有一定误差,所以不能直接将两幅图差分来得到缺陷,不然不能区分细小缺陷和重构误差,本发明使用了lbp算法进行特征提取,再在每个像素点周围搜索最匹配的像素点。lbp算法是一种描述像素点与周围像素点之间的灰度关系的局部特征的非参数算法,它表示了该像素比周围的像素明或暗。为了得到一个像素点的特征,比较邻域每个像素灰度值和它的亮暗程度,更亮置1,更暗0,将比特流排列好即得到了lbp特征,某个灰度值为k的邻域点在比特流中的值按以下公式定义:

k0表示中心点的灰度值。lbp算法得到的特征具有光照不变性,且适用于给稠密的点做特征。

3)正常区域对应位置的特征差值比较小,缺陷区域对应位置的特征差值比较大,因此将差值图二值化即可得到缺陷分割图。图3是原图、修复图经特征比对得到缺陷分割图的示意图,原图z和修复图y经过lbp算法处理得到特征图z+,y+后,对于z+的每个像素点,在y+对应位置的邻域搜索与该特征值最接近的值,作为匹配点,做差取绝对值,得到的值越小,表示该点是缺陷的可能性越低。

对特征的差值图使用固定阈值二值化,即可得到缺陷分割图。

图4、图5为本发明实施效果图。图4来自”automatedfabricdefectdetection—areview☆[j].”(imageandvisioncomputing,volume29,issue7,june2011,pages442-458)提供的织物图像数据集,可以看到其形态上和训练时加入的人造缺陷还有比较大的区别,最终的实验效果说明本方法可以不依赖训练阶段人造缺陷必须和实际缺陷相似。测试时使用的环境是:cpu:xeon(r)e5620@2.40ghz*16,gpu:gtx1080,使用75张无缺陷图片训练,可对30张带缺陷图片实现100%的检测,平均每张图片检测耗时22ms。

图5是本发明和有监督的语义分割方法(fcn)在织物缺陷图片上进行缺陷检测的对比效果图,其分别是a、带缺陷的原图;b、本发明得到的重建图;c、本发明得到的缺陷分割图;d、有监督模型在缺陷样本不足的情况下得到的分割图;e、实际缺陷标注。实验表明,当带标注的缺陷样例不充足时,本发明可以取得比有监督的语义分割模型更高的精度。

以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1