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

基于深度学习的波纹管内壁多类型瑕疵检测方法及系统与流程

2022-03-16 16:08:52 来源:中国专利 TAG:


1.本发明涉及数字图像处理、深度学习和工业瑕疵检测领域,具体涉及一种基于深度学习的波纹管内壁多类型瑕疵检测方法及系统。


背景技术:

2.近年来,随着深度学习技术的蓬勃发展,计算机视觉取得了巨大的突破,越来越多的视觉感知算法被应用于工业界的检查作业中,代替人眼进行工业产品表面瑕疵或瑕疵的检测。现有的基于深度学习的瑕疵检测算法大多是基于目标检测算法和语义分割算法。其中目标检测方法只得到瑕疵的位置和大小,无法感知瑕疵的形状,需要较多的数据监督训练,否则会出现较为严重的漏检情况。而语义分割方法可以得到瑕疵整体的位置和形状信息,但是其逐像素分类的特性且部分瑕疵与背景部分相像这一普遍情况会导致较多误检情况,增加了图像的标注成本。同时不同制造工艺制造出的工业产品,其本身具有的属性各不相同,不可能出现一种泛用的算法处理所有的工业产品瑕疵检测,不同产品需要开发一种对应的瑕疵检测算法。但是由于基于计算机视觉的瑕疵检测可以通过检测自动化或辅助肉眼检测减轻瑕疵检测工作的繁重程度,因此瑕疵检测算法备受工业界青睐。同时,在实际用于工业生产中,很多企业选择采取一种更加保守的方法,使用基于深度学习的视觉检测算法用于第一次检测,进而使用人眼进行复测,在复检的过程中确定这种瑕疵是否为瑕疵、属于哪类瑕疵。这种半自动的方法保证了工业检测之中的可靠性,但是人工检测的结果再经历人工备注才能转化为电子文档进行保存,损失了一定的效率。
3.现存的瑕疵检测方法主要基于目标检测和语义分割两类。其中基于语义分割的算法较多,如bian x提出了一种基于语义分割的瑕疵检测算法,该算法先将图像放缩到各个不同的尺度,再将图像输入到构建对应于不同尺度图像的网络中,将不同尺度图像得到的结果进行融合,再输入到一个新的网络中得到最终的分割结果,这种方法使用了较大的网络结构,计算速度较慢,但是解决了不同尺度的瑕疵检测问题。chen j提出了一种基于目标检测的高铁线路紧固件瑕疵检测算法,该算法结合ssd,yolo等经典目标检测算法构建了一个从粗略到精细的级联检测网络,实现对瑕疵的定位到分类这一过程。qiu l提出了一种将两者结合的金属表面瑕疵检测方法,先通过一次分割算法将瑕疵粗略地分割出来,再对粗略的分割结果进行一次检测,检测得到含有瑕疵可能性较高的区域,得到了比较精准的瑕疵分布位置,再对这些位置实施一次分割算法并进行平滑,得到更加精细的分割结果。但是这些算法并不适用于航天燃料波纹管内壁瑕疵检测。波纹管内壁瑕疵大多是尺度较小的小目标,这种小目标在整张图像中只占有较小的区域,使用语义分割网络难以将其捕捉。又因为小目标检测任务在目标检测中也是属于难度较大、精度较低的一类任务,使用目标检测算法也很难检测到面积很小的波纹管瑕疵。同时由于波纹管内壁波纹起伏,具有大量的阴影面积,像素级的语义分割很容易将阴影部分归为瑕疵,出现误检情况。因此,如何提高波纹管瑕疵检测模型在检测后分类的精度以及复检的精度,成为一个亟待解决的问题。


技术实现要素:

4.为了解决上述技术问题,本发明提供一种基于深度学习的波纹管内壁多类型瑕疵检测方法及系统。
5.本发明技术解决方案为:一种基于深度学习的波纹管内壁多类型瑕疵检测方法,包括:
6.步骤s1:将波纹管内壁图像按照高与宽分割成n*n个检测块,输入基于分块分类的波纹管内壁瑕疵检测网络,采用n*n的瑕疵类型掩模图转化为二值图对其进行训练,输出n*n个瑕疵概率的初始检测结果;
7.步骤s2:设置全局阈值和局部阈值,根据所述全局阈值对所述检测块的初始检测结果进行判断:并根据该判断结果决定是否使用所述局部阈值进行进一步的判断,结合所述全局阈值和所述局部阈值的判断结果,判定所述检测块是否有瑕疵并对其进行标注;
8.步骤s3:根据bilinear cnn主干网络和resnet18,构建瑕疵分类网络,将标注好的检测块输入所述瑕疵分类检测网络进行分类与复检,输出瑕疵分类结果以及复检有无瑕疵。
9.本发明与现有技术相比,具有以下优点:
10.本发明公开了一种基于深度学习的波纹管内壁多类型瑕疵检测方法,用于强化航空燃料波纹管内壁瑕疵检测,利用二阈值的后处理方法,对瑕疵检测结果进行复检,降低了检测网络的漏检率,同时本发明构建的瑕疵分类网络在波纹管内壁缺陷检测场景下具有较强特征提取能力和较快的推理速度,可以满足工业界所需要的实时检测功能。
附图说明
11.图1为本发明实施例中一种基于深度学习的波纹管内壁多类型瑕疵检测方法的流程图;
12.图2为本发明实施例中基于分块分类的波纹管内壁瑕疵检测网络训练所使用的标签示意图;
13.图3为本发明实施例中一种基于深度学习的波纹管内壁多类型瑕疵检测系统的结构框图。
具体实施方式
14.本发明提供了一种基于深度学习的波纹管内壁多类型瑕疵检测方法,利用二阈值的后处理方法,对瑕疵检测结果进行复检,降低了检测网络的漏检率,同时本发明构建的瑕疵分类网络在波纹管内壁缺陷检测场景下具有较强特征提取能力和较快的推理速度,可以满足工业界所需要的实时检测功能。
15.为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
16.实施例一
17.如图1所示,本发明实施例提供的一种基于深度学习的波纹管内壁多类型瑕疵检测方法,包括下述步骤:
18.步骤s1:将波纹管内壁图像按照高与宽分割成n*n个检测块,输入基于分块分类的
波纹管内壁瑕疵检测网络,采用n*n的瑕疵类型掩模图转化为二值图对其进行训练,输出n*n个瑕疵概率的初始检测结果;
19.步骤s2:设置全局阈值和局部阈值,根据全局阈值对检测块的初始检测结果进行判断:并根据该判断结果决定是否使用局部阈值进行进一步的判断,结合全局阈值和局部阈值的判断结果,判定检测块是否有瑕疵并对其进行标注;
20.步骤s3:根据bilinear cnn主干网络和resnet18,构建瑕疵分类网络,将标注好的检测块输入瑕疵分类检测网络进行分类与复检,输出瑕疵分类结果以及复检有无瑕疵。
21.传统的瑕疵检测采用像素级的多值图像分割,但是本发明实施例考虑到波纹管瑕疵的形状与大小变化丰富、参差不齐并且有些絮状物以及无法与背景分离的瑕疵无法进行标注,因此将原有的像素级分类转化为粒度较粗的块级分类。本发明实施例中设计的分块分类的波纹管内壁瑕疵检测网络使用不同于传统语义分割、目标检测的标签监督训练,而是使用一种n*n的二值图监督训练。
22.在一个实施例中,上述步骤s1:将波纹管内壁图像按照高与宽分割成n*n个检测块,输入基于分块分类的波纹管内壁瑕疵检测网络,采用n*n的瑕疵类型掩模图转化为二值图对其进行训练,输出n*n个瑕疵概率的初始检测结果,具体包括:
23.在波纹管内壁瑕疵检测中,由于大多数瑕疵很小,必须使用较大尺寸的图像进行推理。因此,需要先将波纹管内壁图像尺寸缩放到752*576,然后将图像归一化到零均值方差为1,然后对其进行分割成n*n个检测块,输入基于分块分类的波纹管内壁瑕疵检测网络进行前向传播推理;基于分块分类的波纹管内壁瑕疵检测网络包括:主干网络、自适应平均池化层、多头注意力模块以及分类网络;
24.主干网络采用vgg16网络的全卷积层,包含13个卷积层,每个卷积层后跟随一个批标准化层和激活层。主干网络可以充分提取输入图像中的特征信息,以得到特征图,同时保证了较快的推理速度;
25.自适应平均池化层将主干网络输出的特征图进行缩放,得到小规模且大小固定的特征图;
26.多头注意力模块对主干网络输出的特征图进行学习得到多维权重后,与特征图进行点乘,提高了模型对于不同形状瑕疵和频繁出现瑕疵位置处的感受能力,以及在不同维度上的局部信息提取能力;
27.分类网络用于输出n*n个瑕疵概率的初始检测结果。
28.基于分块分类的波纹管内壁瑕疵检测网络训练所使用的标签如图2所示,从左到右依次为原图、16*16标注、8*8标注、4*4标注,其中白色部分为含有瑕疵的部分,黑色部分为不含瑕疵的背景部分。通过使用分块分类的思想,本发明实施例将原有的目标检测问题转化为了一类块级语义分割问题,同时提高了网络的检测精度。但是,这种将图像分为各个小块的方法,将会导致图像中的各个小块相互独立,某个缺陷可能被小块的边界分割导致出现在两个相邻的小块中。本发明实施例采用了下述二阈值方法,以降低分块效应导致漏检的情况。
29.在一个实施例中,上述步骤s2:设置全局阈值和局部阈值,根据全局阈值对检测块的初始检测结果进行判断:并根据该判断结果决定是否使用局部阈值进行进一步的判断,结合全局阈值和局部阈值的判断结果,判定检测块是否有瑕疵并对其进行标注,具体包括:
30.使用全局阈值对检测块的初始检测结果进行判断:如果初始检测结果大于全局阈值,证明该检测块有瑕疵;如果初始检测结果小于全局阈值,则对该检测块的四个相邻检测块利用局部阈值进行判断:当四个相邻检测块中出现大于全局阈值的情况,则认为该检测块无瑕疵,不进行标注,当四个相邻检测块中存在大于局部阈值而小于全局阈值的情况,则认为该检测块有瑕疵,对其进行标注,其中,0表示该检测块中不含瑕疵,1表示该检测块中含有瑕疵。
31.举例来说,设置全局阈值和局部阈值分别为0.5和0.2,如果检测块的初始检测结果为0.7,大于全局阈值,则证明该检测块包含瑕疵,将其标注为1。如果检测块的初始检测结果为0.4,小于全局阈值,为了避免漏检,则需要对该检测块的相邻检测块进行进一步检测,如果其相邻4个检测块中某个检测块的初始检测结果为0.8,则认为改检测块不含瑕疵,将其标注为0,如果其相邻4个检测块中某个检测块的初始检测结果为0.3,则说明该检测块含有瑕疵,将其标注为1。
32.在一个实施例中,上述步骤s3:根据bilinear cnn主干网络和resnet18,构建瑕疵分类网络,将标注好的检测块输入瑕疵分类检测网络进行分类与复检,输出瑕疵分类结果以及复检有无瑕疵,具体包括:
33.瑕疵分类检测网络包括两个分支:第一分支用于提取图像的位置特征,第二分支用于提取图像的类别特征,两个分支的输出维度均为32,将二者输出进行外积相乘后,经过一个1024*512的卷积层,输出最终的瑕疵分类结果;同时,构建focal loss损失函数监督训练,focal loss的计算方式如下所示:
[0034][0035]
其中,y为样本真实类别,y

为样本预测类别;γ为参数,令γ》0可减少易分类样本的损失,使其更关注于困难和错分的样本。
[0036]
本发明实施例使用细粒度分类网络bilinear cnn主干网络结合resnet18,设计出一个规模较小的瑕疵分类网络。在该网络中有两个分支,类似于人类视觉处理中用于物体识别的腹侧流(ventral stream)和用于定位的背侧流(dorsal stream),分别提取图像的位置特征和类别特征。在两个分支输出后,会在通道维度进行一次外积相乘,两个分支输出的特征图终得每一个通道维度相当于网络对于某一类特征提取状况,将两个分支的信息两两进行组合,这样可以更加全面的得到图像位置信息和类别信息之间的关系,从而进行更为准确的分类。但是这种做法将会导致之后的数据量爆炸,如果两个分支输出的特征图通道维度均为512,那么最终外积之后得到的结果将会有262144维度,如果该特征图直接送入多重感知机部分,将会重塑为262144*w*h规模的向量,这将会导致网络出现巨量参数,降低网络整体的运算速度。由于工业检测部分对于实时性具有一个较为严格的要求,这么直接使用明显是不妥当的。而如果在512通道下使用数据降维方法,将会损失一部分通道携带的信息,这部分信息有可能会导致模型的分类精度下降。同时,输出512通道维度将会给网络带来大量的参数,降低了推理速度,再进行数据降维时也需要损耗一定时间,不满足实时性要求。因此,本发明实施例将两个分支输出的规模进行调整,每一个分支只输出32维度,在进行外积相乘后会得到1024维度,再经过一个1024*512的卷积层,将大大减少推理时间,以
此达到实时性要求。
[0037]
使用瑕疵分类检测可以使得分类效果更好,但是由于瑕疵数据集中不同类别的样本数量不均衡,因此本发明构建focal loss监督训练降低该情况带来的影响。
[0038]
本发明公开了一种基于深度学习的波纹管内壁多类型瑕疵检测方法,用于强化航空燃料波纹管内壁瑕疵检测,利用二阈值的后处理方法,对瑕疵检测结果进行复检,降低了检测网络的漏检率,同时本发明构建的瑕疵分类网络在波纹管内壁缺陷检测场景下具有较强特征提取能力和较快的推理速度,可以满足工业界所需要的实时检测功能。
[0039]
实施例二
[0040]
如图3所示,本发明实施例提供了一种基于深度学习的波纹管内壁多类型瑕疵检测系统,包括下述模块:
[0041]
初始检测分类模块41,用于将波纹管内壁图像按照高与宽分割成n*n个检测块,输入基于分块分类的波纹管内壁瑕疵检测网络,采用n*n的瑕疵类型掩模图转化为二值图对其进行训练,输出n*n个瑕疵概率的初始检测结果;
[0042]
二阈值复检模块42,用于设置全局阈值和局部阈值,根据所述全局阈值对所述检测块的初始检测结果进行判断:并根据该判断结果决定是否使用所述局部阈值进行进一步的判断,结合所述全局阈值和所述局部阈值的判断结果,判定所述检测块是否有瑕疵并对其进行标注;
[0043]
瑕疵分类模块43,用于根据bilinear cnn主干网络和resnet18,构建瑕疵分类网络,将标注好的检测块输入所述瑕疵分类检测网络进行分类与复检,输出瑕疵分类结果以及复检有无瑕疵。
[0044]
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
再多了解一些

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

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

相关文献