训练缺陷分级检测模型的方法、装置、设备及存储介质与流程

文档序号:26141561发布日期:2021-08-03 14:26阅读:56来源:国知局
训练缺陷分级检测模型的方法、装置、设备及存储介质与流程

本发明属于工业表面缺陷检测技术领域,尤其涉及一种训练缺陷分级检测模型的方法及装置、缺陷分级检测装置及方法、计算设备及计算机存储介质。



背景技术:

随着神经网络技术的发展和应用,目前工业表面缺陷检测已经开始利用训练的检测模型进行缺陷定位和分类,并取得了很好的效果。然而,对于工业表面缺陷检测而言,人们不仅关注缺陷的类别和位置,还关注缺陷的等级。目前的检测模型不能很好地完成缺陷级别的检测。



技术实现要素:

本发明实施例提供一种训练缺陷分级检测模型的方法及装置、缺陷分级检测方法及装置、计算设备及计算机存储介质,能够获得能够进行缺陷级别检测的模型,且训练过程中无需进行缺陷级别的标注,克服了人工标注工作量大准度低的痛点。

第一方面,本发明实施例提供一种训练缺陷分级检测模型的方法,该方法包括:

获取样本图像,所述样本图像包括缺陷位置和类别的标注信息;

将所述样本图像输入预设的缺陷分级检测模型,所述缺陷分级检测模型包括用于获取缺陷的类别和位置的分类分支网络,用于获取缺陷的级别的分级分支网络,以及用于生成缺陷级别伪标签的聚类分支网络;

利用所述缺陷分级检测模型中的分类分支网络和分级分支网络对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别;

利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值;

根据所述样本图像的缺陷的所述预测类别、预测位置、预测级别以及所述样本图像中缺陷位置和类别的所述标注信息、所述样本图像中缺陷级别的伪标签训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型。

第二方面,本发明实施例提供了一种陷分级检测方法,该方法包括:

获取待进行缺陷检测的目标图像;

利用第一方面的方法训练的目标缺陷分级检测模型对所述目标图像进行缺陷分级检测,得到所述目标图像中缺陷的预测类别、预测位置和预测级别;

根据所述目标图像中缺陷的预测类别和预测位置,以及预测级别确定目标图像的缺陷信息。

第三方面,本发明实施例提供了一种训练缺陷分级检测模型的装置,该装置包括:

样本获取模块,用于获取样本图像,所述样本图像包括缺陷位置和类别的标注信息;

输入模块,用于将所述样本图像输入预设的缺陷分级检测模型,所述缺陷分级检测模型包括用于获取缺陷的类别和位置的分类分支网络,用于获取缺陷的级别的分级分支网络,以及用于生成缺陷级别伪标签的聚类分支网络;

第一预测模块,用于利用所述缺陷分级检测模型中的分类分支网络和分级分支网络对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别;

第二预测模块,用于利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值;

训练模块,用于根据所述样本图像的缺陷的所述预测类别、预测位置、预测级别以及所述样本图像中缺陷位置和类别的所述标注信息、所述样本图像中缺陷级别的伪标签训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型。

第四方面,本发明实施例提供了一种缺陷分级检测装置,该装置包括:

图片获取模块,用于获取待进行缺陷检测的目标图像;

预测模块,用于利用第三方面所述的装置训练的目标缺陷分级检测模型对所述目标图像进行缺陷分级检测,得到所述目标图像中缺陷的预测类别、预测位置和预测级别;

确定模块,用于根据所述目标图像中缺陷的预测类别和预测位置,以及预测级别确定目标图像的缺陷信息。

第五方面,本发明实施例提供了一种计算设备,该设备包括:处理器,以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现第一方面所述训练缺陷分级检测模型的方法,或第二方面所述的检测方法。

第六方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面所述的训练缺陷分级检测模型的方法,或第二方面所述的检测方法。

本发明实施例的训练缺陷分级检测模型的方法及装置、缺陷分级检测模块及装置、计算设备及计算机存储介质,通过在原有可以实现缺陷类别和位置检测模型中增加了缺陷分级检测分支网络,这样对于检测图像,在获得特征图之后,便可以直接利用该特征图预测缺陷的类别、位置和级别,而不需要在预测缺陷的类别和位置之后再进行额外分析来得到缺陷的级别。并且,在训练过程中,通过聚类分支网络来根据特征图和预测的缺陷类别和位置来得到缺陷的热力图,进而得到与缺陷等级相关的特征向量,并采用聚类方法生成缺陷等级标注(伪标签)作为缺陷级别的真值,然后利用缺陷等级的伪标签训练新增加的缺陷分级分支网络,这样便无需在样本图像中标注缺陷的级别,有效克服了人工标注成本高且受主观影响大的缺点,并解决了分级信息来源的问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是目前一种缺陷分级检测方法所使用的检测模型的结构示意图;

图2是目前另一种缺陷分级检测方法所使用的检测模型的结构示意图;

图3是本发明实施例提供的一种训练缺陷分级检测模型的方法的流程示意图;

图4是本发明实施例提供的预设的缺陷分级检测模型的结构示意图;

图5是图4所示缺陷分级检测模型的一个示例结构图;

图6是本发明实施例提供的聚类分支网络的结构示意图;

图7是本发明实施例提供的生成缺陷级别的伪标签的方法的流程示意图;

图8是本发明实施例提供的缺陷分级检测方法的流程示意图;

图9是本发明实施例提供的训练缺陷分级检测模型的装置的结构示意图;

图10是本发明实施例提供的缺陷分级检测装置的结构示意图;

图11是本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本发明,而不是限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关术语的说明:

fasterr-cnn

一种常见的两阶(two-stage)目标检测模型。它是r-cnn(regioncnn,区域卷积神经网络)家族第三代模型,将目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)统一到一个深度网络框架之内。模型可分为4个主要部分:backbone(cnn骨干网络,如vgg、resnet、densenet等,用于提取特征图(featuremaps))、rpn(regionproposalnetworks区域建议网络,用于生成区域建议(regionproposals,也成为候选框)、roipooling(感兴趣区域池化,用于综合特征图和区域建议网络提取proposalfeaturemaps)和分类(classification,模型的头部head,计算建议的类别,精修位置)。

cnn(convolutionalneuralnetworks,卷积神经网络)

一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。它一方面通过感受野和权值共享减少了神经网络需要训练的参数的个数,另一方面逐层卷积得到图像的不同层级特征的映射。每个卷积层的输出称为特征图(featuremaps),一般更深的卷积层包含了更丰富的空间和语义信息。

类激活映射(classactivationmapping,cam)

一种网络可解释问题相关的技术,由它生成的热力图(heatmap)很好地可视化模型分类决策的依据。通常的cam利用最后一个卷积层输出的特征图,经过gap(globalaveragepooling,全局平均池化)接带softmax的全连接层,训练特征图与类别的权重;将特征图加权求和生成热力图,需要可视化时再上采样并叠加到原图。后来出现的grad-cam(gradient-weightedclassactivationmapping,梯度加权类激活映射)用梯度的全局平均来计算权重,省去训练过程;并且对加权和执行relu操作解决反卷积和导向反向传播类别不敏感的问题。

为了更好地理解本发明,下面先结合图1和图2对目前的缺陷分级检测方法进行描述。

图1是目前一种缺陷分级检测方法所使用的检测模型的结构示意图。

如图1所示,缺陷检测模型包括特征提取网络10、区域建议网络11、感兴趣区域池化网络12、分类网络13和定位网络14,该缺陷检测模型可以实现缺陷的定位和分类。当完成定位和分类之后,将推理后的结果输入其他分类器20判别缺陷等级,简单的用分类的置信度(confidence)阈值化判别,复杂一些的可能会溯及缺陷所在建议框(或候选框)的特征图,甚至映射回原图,使用cv的方法加以识别。

在图1所示的缺陷分级检测方法中,缺陷检测模型不承担缺陷的分级任务,最多提供缺陷的分类置信度、特征图和原图,由模型外部的其他分类器判别缺陷的等级。这种方案主要存在两个问题:

一、单纯用分类置信度来分级不可靠,可能出现置信度很高,但等级并不高,容易过检,有的缺陷置信度不高,特征却很明显,容易漏检。

二、用传统的特征工程做分类器,首先是设计负担大;其次特征的选择依赖于初始样本的数据分布,方案适配性差;有时需要的特征在神经网络的特征图里有,还存在重复提取特征的问题。此外,这样进行的推理后识别自然需要付出更多的运行时间。

图2是目前另一种缺陷分级检测方法所使用的检测模型的结构示意图

如图2所示,缺陷检测模型头部增加分级网络15,使用人工的标注来训练(在训练过程中增加缺陷等级的标注,即标注包含缺陷的位置、类别和等级三个描述信息),训练模型让其学习分级的能力,在推理时直接得到缺陷的分级结果。这种方案示例存在的问题主要是需要人工标注等级信息。现有的目标检测标注数据通常只标位置和类别,没有附加等级信息。首先,人工比较容易区分不同类别缺陷的特征差异,而再从同一缺陷特征里,分清其等级的差异比较困难,主观因素引入的误差更大,影响不可忽略;其次,更多的标注意味着需要付出更多的人力和时间成本,即使在已有标注上追加新标注,花费的成本可能跟整个重新标注差不了多少。

综上可知,目前对于工业图像的缺陷检测而言,多类别缺陷检测主要面临问题如下:

一、目前多类别缺陷检测,使用人工标注缺陷的位置和类别的训练集,训练出的模型可以进行缺陷的定位和分类,但无法给出缺陷分级。分级是工业活动关心的,一种方案是用缺陷分类的置信度(confidence)是否满足阈值来确定是否是严重缺陷,但是这并不可靠。另一种方案是用推理后数据通过特征工程实现分级,但是耗时且适应性差。

二、缺陷的标注非常耗费人力和时间,而且存在主观因素。只标注位置和类别的常规情况尚存在不可忽略的主观因素,追加标注缺陷的等级时,人工需要识别同一种缺陷的等级特征,比区分不同缺陷的类别特征更难把握。

三、工业上常有一些量化指标来指导缺陷分级,比如前景背景灰度级差异阈值,在非实例分割的目标检测里,很难得到相对准确的前景区域,难以利用这些量化指标。

为了至少部分解决上述技术问题,本发明实施例提供了一种训练缺陷分级检测模型的方法及装置、缺陷分级检测及装置、计算设备及计算机存储介质,其通过增加聚类分支网络来根据特征图和预测的缺陷类别和位置来得到缺陷的热力图,进而得到与缺陷等级相关的特征向量,并采用聚类方法生成缺陷等级标注(伪标签)作为缺陷级别的真值,然后利用缺陷等级的伪标签训练新增加的缺陷分级分支网络,这样便无需在样本图像中标注缺陷的级别。

下面首先对本发明实施例所提供的训练缺陷分级检测模型的方法进行介绍。

图3示出了本发明一个实施例提供的训练缺陷分级检测模型的方法的流程示意图。

本发明实施例提供一种训练缺陷分级检测模型的方法100,所述缺陷分级检测模型用于从工业缺陷识别图像中检测缺陷的类型、位置和级别,如图3所示,该方法100可以包括以下步骤:

s101,获取样本图像,所述样本图像包括缺陷位置和类别的标注信息。

样本图像可以通过人工标注缺陷位置和类别,在训练中作为缺陷位置和类别的真值使用。

s102,将所述样本图像输入预设的缺陷分级检测模型,所述预设的缺陷分级检测模型包括用于获取缺陷的类别和位置的分类分支网络,用于获取缺陷的级别的分级分支网络,以及用于生成缺陷级别伪标签的聚类分支网络。

当在s101中获取样本图像后,则将样本图像输入至预设的缺陷分级检测模型。在本发明实施例中,所述缺陷分级检测模型包括用于获取缺陷的类别和位置的分类分支网络,用于获取缺陷的级别的分级分支网络,以及用于生成缺陷级别伪标签的聚类分支网络。所述预设的缺陷分级检测模型的结构参考图4和图5所示,将在后文进一步描述。

s103,利用所述缺陷分级检测模型中的分类分支网络和分级分支网络对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别。

当在s102中将样本图像输入预设的缺陷分级检测模型之后,则利用所述缺陷分级检测模型中的分类分支网络和分级分支网络对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别。

s104,利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值。

当在s102中将样本图像输入预设的缺陷分级检测模型之后,则利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值。

应当理解,步骤s103和s104可以同步进行,也可以先后进行,在此不限定先执行s103后执行s104。

s105,根据所述样本图像的缺陷的所述预测类别、预测位置、预测级别以及所述样本图像中缺陷位置和类别的所述标注信息、所述样本图像中缺陷级别的伪标签训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型。

当获得缺陷的预测类别、预测位置、预测级别以及缺陷级别的伪标签之后,则根据缺陷的预测类别、预测位置、预测级别以及缺陷级别的伪标签、缺陷类别和位置的标注信息训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型。

根据本发明实施例的训练缺陷分级检测模型的方法,在原有可以实现缺陷类别和位置检测模型中增加了缺陷分级检测分支网络和聚类分支网络,在训练过程中,通过聚类分支网络来根据特征图和预测的缺陷类别和位置来得到缺陷的热力图,进而得到与缺陷等级相关的特征向量,并采用聚类方法生成缺陷等级标注(伪标签)作为缺陷级别的真值,然后利用缺陷等级的伪标签训练新增加的缺陷分级分支网络,这样便无需在样本图像中标注缺陷的级别,有效克服了人工标注成本高且受主观影响大的缺点,并解决了分级信息来源的问题。

下面对方法100的详细过程进行描述。

在s101中,获取样本图像,所述样本图像包括缺陷位置和类别的标注信息。

样本图像可以通过对各种有缺陷的工业品进行采集来得到,并在得到样本图像之后,通过人工标注或机器标注的方式对样本图像中缺陷的位置和类别进行标注,使得样本图像可以包括缺陷位置和类别的标注信息。这样,在训练过程中,就可以与模型预测的缺陷的类别和位置进行比对,从而调整模型参数,以获得目标缺陷检测模型。

应当注意,在本发明实施例中,仅需在样本图像中标注缺陷位置和类别的信息,而无需标注缺陷等级/级别的信息,这将比较人工标注缺陷等级费事费力,且准确度难以保证的问题。至于为何无需标注缺陷等级/级别的信息,将在后文中描述。

在s102中,将所述样本图像输入预设的缺陷分级检测模型,所述预设的缺陷分级检测模型包括用于获取缺陷的类别和位置的分类分支网络,用于获取缺陷的级别的分级分支网络,以及用于生成缺陷级别伪标签的聚类分支网络。

在本发明实施例中,预设的缺陷检测模型可以预测缺陷的类别和位置,还可以预测缺陷的级别,并且生成缺陷级别的伪标签。预设的缺陷分级检测模型可以采用各种合适的网络结构,在本发明实施例中,在图4和图5给出一个示例性结构图,以帮助理解本发明。

图4是本发明实施例提供的预设的缺陷分级检测模型的结构示意图。

如图4所示,本发明实施例提供的预设的缺陷分级检测模型200包括分类分支网络110、聚类分支网络120和分级分支网络130。分类分支网络110用于获取缺陷的类别和位置的分类分支网络。聚类分支网络120用于生成缺陷级别伪标签。分级分支网络130用于获取缺陷的级别。分类分支网络110可以采用各种可以进行目标定位和分类的检测网络。作为一个示例,分类分支网络110包括faster-rcnn网络。聚类分支网络120可以采用各种合适结构的特征聚类发生器,在后文会描述本发明实施例提供一个示例特征聚类发生器,以解释本发明的原理。

图5是图4所示缺陷分级检测模型的一个示例结构图。

如图5所示,本发明实施例提供的预设的缺陷分级检测模型200包括特征提取网络10、分类分支网络110、聚类分支网络120和分级分支网络130。分类分支网络110包括区域建议网络11、感兴趣区域池化网络12、分类网络13和定位网络14。特征提取网络10用于提取图像的特征图,区域建议网络用于根据特征图得到建议的候选框。感兴趣区域池化网络12用于根据特征和候选框得到建议的特征图。分类网络13用于根据建议的特征图得到缺陷的预测类别(或得到缺陷属于各种类别的分数)。定位网络14用于根据特征图得到缺陷的预测位置。分级分支网络130用于根据建议的特征图得到缺陷的预测级别。聚类分支网络120用于根据特征图和缺陷的预测类别和预测位置来得到缺陷的分级特征集,进而得到缺陷级别的伪标签。

图5所示预设的缺陷分级检测模型200可以视为在faster-rcnn网络中增加聚类分支网络和分级分支网络得到。当然,本发明实施例的预设的缺陷分级检测模型200也可以在其它目标定位和分类模型的基础上增加聚类分支网络和分级分支网络得到。

在s103中,利用所述缺陷分级检测模型中的分类分支网络和分级分支网络对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别。

示例性地,在本发明实施例中,利用所述缺陷分级检测模型对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别值,包括下述步骤:

首先,获取所述样本图像的特征图,例如通过特征提取网络10提取样本图像的特征图。

接着,利用所述分类分支网络对所述特征图进行处理,得到所述样本图像中的缺陷的所述预测类别和所述预测位置。分类分支网络的示例结构可以参考图5所示。

接着,利用所述分级分支网络对所述特征图进行处理,得到所述样本图像中的缺陷级别的所述预测值。

应当理解,获取缺陷的预测位置和预测类别的步骤,与获得缺陷的预测级别的步骤可以同时进行,也可以先后进行。

在s104中,利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值。

在本发明实施例中,由于利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值,因此通过伪标签便可以知道缺陷的级别,这样在训练过程中便可以根据缺陷的预测级别和伪标签对网络进行调整,来最终得到目标缺陷检测网络。并且由于使用伪标签作为所述样本图像中缺陷级别的真值,因此便无需再样本图像中标注缺陷级别的信息,这样减少了样本图像标注的工作量,并且避免了人工标注缺陷级别费时费力,且受主观影响较大准确度较低的问题,解决了缺陷分级检测模型训练中缺陷分级信息来源的问题。

下面结合图6和图7对聚类分支网络的结构以及聚类分支网络获得伪标签的过程进行描述。

图6是本发明实施例提供的聚类分支网络的结构示意图。

如图6所示,聚类分支网络120包括类激活映射子网络121、特征提取子网络122、特征集子网络123和聚类子网络124。类激活映射子网络121用于采用类激活映射(例如cam或grad-cam)生成缺陷的热力图。特征提取子网络122用于从热力图中提取分级特征向量。特征集子网络123用于根据缺陷类别对得到分级特征向量进行归类,把同一种缺陷的分级特征向量分在一组中得到每种缺陷的分级特征集。聚类子网络124用于对每种缺陷的分级特征集进行聚类,然后为聚类得到的每个分级特征向量分组打上缺陷级别的伪标签,来表示缺陷的等级。

图7是本发明实施例提供的生成缺陷级别的伪标签的方法200的流程示意图。

如图7所示,在本发明实施例中,生成缺陷级别的伪标签的方法200,包括步骤:

s201,利用所述类激活映射子网络,根据所述特征图和所述样本图像中缺陷的所述预测类别和预测位置得到每类缺陷的热力图。

在本发明实施例中,类激活映射子网络采用grad-cam算法,其热力图计算方法为:

第k个特征图对于类别c的权重为可以通过以下公式计算:

其中,z为特征图的像素个数,yc是对应类别c的分数(是输入softmax层之前的值),表示第k个特征图中(i,j)位置处的像素值。

求得类别c对所有特征图的权重后,求其加权和就可以得到热力图:

s202,利用所述特征提取子网络,根据所述热力图得到每类缺陷的缺陷分级特征向量。

由于直接基于热力图做聚类的结果不可预知,可能就是反映了原置信度的分布。因此需要强化缺陷分级特征,用特征提取子网络提取特征向量。

在本发明实施例中,可以根据业务场景不同,采用不同的强化方法来提取缺陷的分级特征向量。示例性地,例如产品缺陷:

i)严重与否与前景区域的面积相关,则在提取分级特征向量时对热力图进行阈值分割(比如用大津法ostu),统计前景的面积大小;

ii)如果与前景的集中程度相关,则在提取分级特征向量时计算前景二值图的填充度;

iii)如果缺陷严重度与特征区域是否均匀相关,则在提取分级特征向量时统计前景区的匀度;

iv)如果与前景背景的对比度差异相关,则在提取分级特征向量时计算它们的对比度contrast;

v)如果与缺陷核心区域的强度相关,则在提取分级特征向量时统计高亮区域的占比。

示例性地,在本发明实施例中,利用所述特征提取子网络,根据所述热力图得到每类缺陷的缺陷分级特征向量,包括:

获取所述热力图的热力图前景面积大小、热力图前景二值图的填充度、热力图前景区的均匀度、热力图前景与背景的对比度、热力图高亮区域的占比中的至少一种信息。提取到的信息一起组成分级特征向量v=(v1,v2,...,vm)。应当理解,特征向量不限于示例中的特征,还可以包括其他特征。

s203,利用所述特征集子网络,按照缺陷的所述预测将缺陷分级特征向量存入对应类别缺陷的分级特征集中。

需要说明的是,在特征集里,特征与特征之间的尺度是不同的,需要做归一化消除尺度差异。此外,每个特征对缺陷等级的贡献不同,可以用权重向量加权组合,其中加权系数为负表示该特征与等级负相关,最终得到的特征向量为

在本发明实施例中,加权系数可以根据经验进行预设。

还需要说明的是,在本发明实施例中,可以设定特征集的最大特征数量,如果特征集中的分级特征向量达到最大数量,则自动抛弃最开始加入的分级特征向量。

s204,利用所述聚类子网络,对各类别缺陷的分级特征集进行聚类,得到各类别缺陷的缺陷级别的所述伪标签,所述伪标签用于表示缺陷的级别。

示例性地,在本发明实施例中,利用所述聚类子网络对各类别缺陷的分级特征集进行聚类,得到各类别缺陷的缺陷级别的所述伪标签,所述伪标签用于表示缺陷的级别,包括下述步骤:

首先,利用聚类子网络用于对各类别缺陷的分级特征集进行聚类,得到与缺陷等级数对应的分级特征向量组和所述分级特征向量组的特征大小。

示例性地,例如对于某个类别的缺陷,其等级分为2,因此在对分级特征集进行聚类时,便可以将分级特征集聚类为两个分级特征向量组,每组分级特征向量组中的特征向量大小相近。并以每组分级特征向量组的平均值向量来表示分级特征向量组的特征大小。

应当理解,缺陷等级数可以通过预设确定。例如对于某种类别的缺陷,通常划分为两个级别,因此我们可以预设该类别缺陷的等级数为2,这样在利用聚类子网络用于对该类别缺陷的分级特征集进行聚类时,便可以将缺陷的分级特征集通过聚类方法分为2组分级特征向量组。

然后,根据预设的伪标签以及每个分级特征向量组的特征大小为每个分级特征向量组标识所述伪标签,以得到各类别缺陷的缺陷级别的所述伪标签。

在本发明实施中,预设的伪标签用于表示缺陷的等级。当得到分级特征向量组之后,可以根据每个分级特征向量组的特征大小为每个分级特征向量组标识所述伪标签,以得到各类别缺陷的缺陷级别的所述伪标签。

示例性地,例如缺陷包括两个等级,我们可以预设伪标签为0和1,其中1表示严重,0表示不严重。(当然也可以0表示严重,1表示不严重)。然后,由于分级特征向量已按加权处理,聚类的两个分级特征向量组里,特征的值大的表示严重程度更高,因此统计两个聚类的平均值向量x1和x0,检查x1和x0对应特征的大小关系,有更多大特征的就是严重缺陷,然后为该组分级特征向量组打上伪标签1。

示例性地,在本发明实施例中,对利用聚类子网络用于对各类别缺陷的分级特征集进行聚类可以采用kmean算法或其他聚类算法。

作为一个示例,在本发明实施例中采用kmeans算法,其原理是是按照样本之间的距离大小,将样本集划分为k个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。流程如下:

假设输入样本集d={x1,x2,...xm},聚类的簇树为k,最大迭代次数n,输出是簇划分c={c1,c2,...ck},

i)从数据集d中随机选择k个样本作为初始的k个质心向量:{μ1,μ2,...,μk}

ii)对于n=1,2,...,n

1),将簇划分c初始化为

2),对于i=1,2,...,m,计算样本xi和各个质心向量μj(j=1,2,...k)的距离:将xi标记最小的为dij所对应的类别λi。此时更新

3),对于j=1,2,...,k,对cj中所有的样本点重新计算新的质心

4),如果所有的k个质心向量都没有发生变化,则转到步骤iii)。

iii)输出簇划分c={c1,c2,...ck}。

进一步地,在本发明实施例中,在分级特征向量集中积累一定数量的分级特征向量之后才开始进行聚类操作。即先执行一定次数的s201-s203后,再执行s204。

进一步地,由于聚类分析比较耗时,每加入一个缺陷就进行一次速度会非常慢也没必要,为了提高训练效率,可以每个mini-batch的缺陷全部入队以后,才做一次聚类,再采用最近邻法,计算缺陷所属等级。因此,在本发明实施例中,可以将所述样本图像划分为多个样本图像组,每个所述样本图像组包括多个所述样本图像,且在利用所述聚类子网络,对各类别缺陷的分级特征集进行聚类之前,利用所述类激活映射子网络、特征提取子网络、特征集子网络获取每个所述样本图像组的缺陷的全部分级特征集。

在s105中,根据所述样本图像的缺陷的所述预测类别、预测位置、预测级别以及所述样本图像中缺陷位置和类别的所述标注信息、所述样本图像中缺陷级别的伪标签训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型。

示例地,在本发明实施例中,预设的缺陷分级检测模型的损失函数由分类分支网络的损失函数和分级分支网络的损失函数两部分构成。因此,根据所述样本图像的缺陷的所述预测类别、预测位置、预测级别以及所述样本图像中缺陷位置和类别的所述标注信息、所述样本图像中缺陷级别的伪标签训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型,包括下述步骤:

根据所述样本图像的缺陷的所述预测类别、预测位置以及所述样本图像中缺陷位置和类别的所述标注信息确定所述分类分支网络的损失函数值;

根据所述样本图像的缺陷所述预测级别和所述伪标签确定所述分级分支网络的损失函数值;

根据所述分类分支网络的损失函数值调整所述分类分支网络的参数;

根据所述分级分支网络的损失函数值调整所述分级分支网络的参数。

进一步地,在本发明实施例中,所述预设的缺陷分级检测模型的损失函数根据所述分类分支网络的损失函数及第一权重,以及所述分级分支网络的损失函数和第二权重确定,第一权重为分类分支网络的损失函数的权重,第二权重为分级分支网络的损失函数的权重,第一权重和第二权重的和为1。因此在s105中,通过调节第一权重和第二权重可以交替训练所述分类分支网络和所述分级分支网络。并且,由于需要积累分级特征向量集,因此先训练所述分类分支网络,再训练所述分级分支网络。

作为一个示例,交替训练过程可以为:调节所述分级分支网络的损失函数的所述第二权重为0;利用所述样本图像对所述分类分支网络进行训练;调节所述分级分支网络的损失函数的所述第二权重为1;利用所述样本图像对所述分级分支网络进行训练。

作为一个示例,本发明的缺陷分级检测模型的交替训练过程可以分为m1n1m2n2依此类推的过程,其中m1、m2等为分类分支网络的训练过程,n1、n2等为分级分支网络的训练过程。并且,由于两方面的原因(一是聚类gen子网络需要积累特征集,二是开始阶段缺陷的定位和分类不太准确),因此在训练时采用冷启动的方案,m1的阶段较长,从而给原网络更多地训练提升,同时提升特征集的数量和质量。

在本发明一些实施例中,为了避免分级分支网络和分类分支网络的参数更新的相互干扰,在对所述分类分支网络进行训练时仅更新所述分类分支网络的参数,在对所述分级分支网络进行训练时仅更新所述分级分支网络的参数。即,在交替训练时,分级分支网络和分类分支网络的参数更新不同时进行。

应当理解的是,在交替训练过程中,在所述利用所述样本图像对所述分类分支网络进行训练时,利用所述聚类分支网络根据所述样本图像的特征图以及所述样本图像中缺陷的所述预测类别和预测位置得到每类缺陷的热力图,以及每类缺陷的缺陷分级特征集。

进一步地,在本发明一些实施例中,在交替训练之后,还可以利用所述样本图像对所述缺陷分级检测模型进行训练,且在训练过程中对所述分类分支网络和所述分级分支网络进行协同训练。

图8是本发明实施例提供的缺陷分级检测方法的流程示意图。

如图8所示,本发明实施例提供的缺陷分级检测方法400,包括:

s301,获取待进行缺陷检测的目标图像。

示例性地,目标图像可以通过诸如相机的图像采集装置获取。

s302,利用根据本发明实施例训练缺陷分级检测模型的方法训练的目标缺陷分级检测模型对所述目标图像进行缺陷分级检测,得到所述目标图像中缺陷的预测类别、预测位置和预测级别。

利用根据本发明实施例训练缺陷分级检测模型的方法训练的目标缺陷分级检测模型的结构可以参考图2所示模型,其头部包括分类网络、定位网络和分级网络,当获得目标图像的特征图后,可以根据特征图通过分类网络、定位网络和分级网络来分别得到所述目标图像中缺陷的预测类别、预测位置和预测级别。

s303,根据所述目标图像中缺陷的预测类别和预测位置,以及预测级别确定目标图像的缺陷信息。

当在s302获得所述目标图像中缺陷的预测类别、预测位置和预测级别,则根据这些信息确定目标图像的缺陷信息,即缺陷包括哪几类缺陷,分别在什么位置以及分别属于什么级别的缺陷。

根据本发明实施例的缺陷分级检测方法,由于采用本发明实施例的训练缺陷分级检测模型的方法训练的缺陷分级检测模型,其增加了用于缺陷分级的头部,目标图像提取特征图后可以直接用来预测缺陷的等级,而不需要推理后再做额外的分析。

图9是本发明实施例提供的练缺陷分级检测模型的装置的结构示意图。

如图9所示,发明实施例提供的练缺陷分级检测模型的装置,包括样本获取模块210、输入模块220、第一预测模块230、第二预测模块240和训练模块250。

样本获取模块210用于获取样本图像,所述样本图像包括缺陷位置和类别的标注信息。样本获取模块210用于执行图3所示的训练缺陷分级检测模型的方法的中s101。

输入模块220用于将所述样本图像输入预设的缺陷分级检测模型,所述缺陷分级检测模型包括用于获取缺陷的类别和位置的分类分支网络,用于获取缺陷的级别的分级分支网络,以及用于生成缺陷级别伪标签的聚类分支网络。输入模块220用于执行图3所示的训练缺陷分级检测模型的方法的中s102。

第一预测模块230用于利用所述缺陷分级检测模型中的分类分支网络和分级分支网络对所述样本图像进行缺陷分级检测,得到所述样本图像中缺陷的预测类别、预测位置和预测级别。第一预测模块230用于执行图3所示的训练缺陷分级检测模型的方法的中s103。

第二预测模块240用于利用所述缺陷分级检测模型中的聚类分支网络对所述样本图像进行处理得到所述样本图像中缺陷级别的伪标签,并将所述为标签作为所述样本图像中缺陷级别的真值。第二预测模块240用于执行图3所示的训练缺陷分级检测模型的方法的中s104,以及图7所示的生成缺陷级别的伪标签的方法中的s201至s204。

训练模块250用于根据所述样本图像的缺陷的所述预测类别、预测位置、预测级别以及所述样本图像中缺陷位置和类别的所述标注信息、所述样本图像中缺陷级别的伪标签训练所述预设的缺陷分级检测模型,得到目标缺陷分级检测模型。训练模块250用于执行图3所示的训练缺陷分级检测模型的方法的中s105。

进一步地,在本发明实施例中训练模块250还包括权重调节器,用于调节预设的缺陷检测模型中的分类分支网络和分级分支网络的损失函数的权重,从而交替训练分类分支网络和分级分支网络。通过权重调节器可以自动协调原预测网络(分离分支网络)与新分支(分级分支网络)的损失权重进行协同训练,不需要预先训练缺陷定位和分类网络。

图9所示装置中500的各个模块/单元具有实现图3中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。

图10是本发明实施例提供的缺陷分级检测装置的结构示意图。

如图10所示,本发明实施例提供的缺陷分级检测装置600包括图片获取模块310、预测模块320和确定模块330。

图片获取模块310用于获取待进行缺陷检测的目标图像。图片获取模块310用于执行图8所示的缺陷分级检测方法中的s301。

预测模块320用于本发明实施例所述训练缺陷分级检测模型的装置训练的目标缺陷分级检测模型对所述目标图像进行缺陷分级检测,得到所述目标图像中缺陷的预测类别、预测位置和预测级别。预测模块3200用于执行图8所示的缺陷分级检测方法中的s302。

确定模块330用于根据所述目标图像中缺陷的预测类别和预测位置,以及预测级别确定目标图像的缺陷信息。确定模块330用于执行图8所示的缺陷分级检测方法中的s303。

图10示装置中600的各个模块/单元具有实现图7中各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。

图11示出了本发明实施例提供的计算设备700的硬件结构示意图。

计算设备700可以包括处理器701以及存储有计算机程序指令的存储器702。

具体地,上述处理器701可以包括中央处理器(centralprocessingunit,cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器702可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器702可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在一个实例中,存储器702可以包括可移除或不可移除(或固定)的介质,或者存储器302是非易失性固态存储器。存储器702可在综合网关容灾设备的内部或外部。

在一个实例中,存储器702可以是只读存储器(readonlymemory,rom)。在一个实例中,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

存储器702可以包括只读存储器(rom),随机存取存储器(ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。

处理器701通过读取并执行存储器702中存储的计算机程序指令,以实现图3所示实施例中的方法/步骤s101至ss105,并达到图3、图7和图8所示实例执行其方法/步骤达到的相应技术效果,为简洁描述在此不再赘述。

在一个示例中,计算设备700还可包括通信接口703和总线710。其中,如图11所示,处理器701、存储器702、通信接口703通过总线710连接并完成相互间的通信。

通信接口703,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线710包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(acceleratedgraphicsport,agp)或其他图形总线、增强工业标准架构(extendedindustrystandardarchitecture,eisa)总线、前端总线(frontsidebus,fsb)、超传输(hypertransport,ht)互连、工业标准架构(industrystandardarchitecture,isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线710可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

另外,结合上述实施例中的训练缺陷分级检测模型的方法和缺陷检测方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种训练缺陷分级检测模型的方法或缺陷检测方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(applicationspecificintegratedcircuit,asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(radiofrequency,rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

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