基于Transformer的缺陷检测方法和电子设备

文档序号:29725329发布日期:2022-04-16 20:14阅读:429来源:国知局
基于Transformer的缺陷检测方法和电子设备
基于transformer的缺陷检测方法和电子设备
技术领域
1.本技术涉及电子信息技术领域,尤其涉及一种基于transformer的缺陷检测方法和电子设备。


背景技术:

2.铁路输电线路设备的缺陷检测,对保障高速铁路运行安全,有着重要的现实意义。对于铁路输电线路设备等工业产品的缺陷检测,包括传统的图像处理方法、基于机器视觉的缺陷检测方法、基于深度学习的缺陷检测方法。
3.传统的图像处理方法对于一些简单特征可以很好地进行处理,但在图片背景较为复杂的情况下,对噪声较为敏感,很难在检测精度和抗噪性能上取得平衡。基于机器视觉的检测方法,其浅层学习网络在训练样本和运算能力有限的情况下无法对一些复杂函数进行很好的表示,尤其是对一些较复杂的缺陷检测问题,缺陷检测效果并不理想,并且网络的泛化能力受到约束。基于深度学习的缺陷检测方法,凭借其出色的特征学习能力,在缺陷检测中发挥着重要作用。例如,fcn(fully convolutional networks)、u-net(convolutional networks for biomedical image segmentation)、segnet(semantic segmentation)、pspnet(pyramid scene parsing network)、deeplab等语义分割网络先后被提出,此类模型自适应和泛化性能强,可以适用于缺陷检测的应用场景中,相比于传统的图像处理方法以及基于机器视觉的缺陷检测方法,在一定程度上提升了分割精度。
4.发明人在研究过程中发现,上下文信息是提升语义分割性能最关键的因素,过多的下采样操作会导致小目标的细节信息被严重损失甚至完全丢失,现有的语义分割网络由于其上下文信息缺失,分割准确率被限制。例如,公告号为cn111488882b的发明中提出了一种基于pspnet的工业零件测量的高精度图像语义分割方法,其采用的模型主要按照以下步骤进行训练:1)构建并训练神经网络模型;2)将图像输入训练好的模型进行在线检测,实现图像的语义分割;其中,神经网络模型采用pspnet作为图像特征提取器,采用几何池化层的池化方法,来替换传统的全局池化;且采用迭代概率图对概率图进行优化。该方案存在以下缺陷:pspnet作为特征提取器,其上下文建模接受域有限,未能够提取样本的全局特征,限制了后续分割准确率,导致后续缺陷检测准确率不高。此外,该方案中的语义分割模型需要大量样本数据才能完成模型的训练,诸如绝缘子的很多设备的样本图像采集较为困难,大量样本数据难以获得,进而难以实现对相应设备的缺陷检测。


技术实现要素:

5.本技术提供一种基于transformer的缺陷检测方法和电子设备,用以解决特征提取阶段上下文信息丢失导致的缺陷检测准确度不高,和/或,需要大量样本图像数据才能完成缺陷检测的问题。
6.第一方面,本技术技术方案提供了一种方法,方法应用于预先训练的检测模型;检测模型包括分割网络和分类网络,分割网络包括编码器和解码器,其中,编码器基于
transformer实现,解码器基于卷积神经网络实现;方法包括:基于待检测的查询图像和查询图像对应的支持图像及第一分割图像,确定输入序列;将输入序列输入到分割网络的编码器,通过分割网络利用支持图像及第一分割图像,指导查询图像的分割,输出查询图像对应的第一特征图和第二分割图像;其中,编码器包括多头注意力机制,用于捕获查询图像的全局上下文信息;将第一特征图和第二分割图像输入到分类网络,通过分类网络输出查询图像对应的缺陷分类结果;缺陷分类结果至少用于表征查询图像中的目标设备表面是否带有缺陷。
7.在一个实施例中,编码器包括多个编码层,每个编码层包括交叉对齐模块和自对齐模块;自对齐模块,包括多头注意力机制、多层感知机和至少一个归一化层,用于通过聚合上下文信息来对查询图像对应的第一像素特征进行编码;交叉对齐模块,包括循环一致注意力机制、多层感知机和至少一个归一化层,用于将支持图像对应的第二像素特征聚合为查询图像对应的第一像素特征。
8.在一个实施例中,通过循环一致注意力机制,根据查询图像中各个像素点分别对应的第一像素特征,与支持图像中的各个像素点分别对应的第二像素特征之间的对应关系,判别查询图像的像素点与支持图像的像素点之间是否具备循环一致性;滤掉支持图像中与查询图像不具备循环一致性的像素点对应的第二像素特征。
9.在一个实施例中,滤掉支持图像中与查询图像不具备循环一致性的像素点对应的第二像素特征,包括:在将支持图像对应的第二像素特征聚合为查询图像中的目标像素点对应的第一像素特征的过程中,增加偏置项,以使目标像素点对支持图像中不具备循环一致性的像素点的关注权重趋于0。
10.在一个实施例中,确定输入序列,包括:确定查询图像对应的第一query序列、第一key序列和第一value序列;确定支持图像对应的第二query序列、第二key序列,以及,第一分割图像对应的特征序列;将输入序列输入到分割网络的编码器,包括:将查询图像对应的第一query序列、第一key序列和第一value序列输入自对齐模块中的多头注意力机制;将自对齐模块的输出作为第二value序列;将第二query序列、第二key序列、第二value序列以及特征序列,输入交叉对齐模块中的循环一致注意力机制。
11.在一个实施例中,将输入序列输入到分割网络的编码器之后,方法还包括:将编码器输出的序列输入至解码器,通过解码器执行上采样以输出查询图像对应的第一特征图和第二分割图像;其中,解码器包括至少一个卷积层和至少一个采样层;其中,卷积层用于对编码器输出的序列执行卷积运算,采样层用于对编码器输出的序列执行上采样处理。
12.在一个实施例中,卷积运算的卷积核大小为1*1;上采样处理的倍率为2倍。
13.在一个实施例中,分类网络基于卷积神经网络实现;分类网络包括第一池化层、第一卷积层、第二卷积层、第一最大池化层、第一平均池化层、第二最大池化层和第二平均池化层、全连接层;通过分类网络输出查询图像对应的缺陷检测结果,包括:通过第一池化层,对将第二分割图像执行池化操作,得到第二特征图;通过第一卷积层,对第二特征图执行卷积运算,得到第三特征图;将第二特征图与第三特征图进行跳跃连接,获得第一残差块;通过第二卷积层,对第三特征图执行卷积运算,得到第四特征图;将第三特征图与第四特征图进行跳跃连接,获得第二残差块;通过第二最大池化层和第二平均池化层,对第二残差块执行空间金字塔池化操作,得到第一特征;通过第一最大池化层和第一平均池化层,对第一特
征图和第二分割图像,执行空间金字塔池化操作,得到第二特征;对第一特征和第二特征执行聚合操作,再经过全连接层和激活函数,得到查询图像对应的缺陷分类结果。
14.在一个实施例中,第一卷积层和/或第二卷积层之后,还设置有bn层和relu层,用于加速网络收敛。
15.第二方面,本技术实施例还提供一种电子设备,该电子设备包括:一个或多个处理器;存储器;至少一个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如上述第一方面中任一项所述的方法。
16.本技术实施例提供的基于transformer的缺陷检测方法和电子设备,通过检测模型对包含待检测的目标设备的图像进行数据处理,进而输出分类结果,分类结果表示是否带有缺陷或者缺陷类型。检测模型中的编码器是在transformer的编码器架构基础上进行了改进,一方面,通过编码器中的多头注意力机制,捕获查询图像的全局上下文信息,避免上下文信息缺失,提高缺陷检测的准确度;另一方面,通过分割网络利用所述支持图像及其分割图像(即第一分割图像),指导查询图像的分割,可以解决样本图像数量不足的问题,无需采集大量样本图像,进而可以在小样本数据集的情况下,实现对绝缘子等工业产品表面缺陷的有效检测。
附图说明
17.图1是本技术实施例提供的transformer的缺陷检测方法的网络架构示意图;图2是本技术实施例提供的transformer的缺陷检测方法的流程示意图;图3是本技术实施例提供的transformer的缺陷检测方法中从数据集获取到模型测试的主体流程示意图;图4是本技术实施例提供的transformer的缺陷检测方法中数据集划分的示意图;图5是本技术实施例中编码器的结构示意图;图6是本技术实施例中循环一致注意力机制的结构示意图;图7是本技术实施例中解码器的结构示意图;图8是本技术实施例中分类网络的结构示意图;图9是本技术实施例提供的网络架构的整体结构示意图。
具体实施方式
18.下面将结合附图,对本技术中的技术方案进行详细描述。
19.本技术实施例提供的基于transformer的缺陷检测方法和电子设备,可以用于各种工业产品表面缺陷检测,例如用于检测绝缘子等电气设备、铁路输电线路设备等产品的缺陷检测。
20.基于深度学习的缺陷检测方案中,一方面,上下文信息是提升语义分割性能最关键的因素,过多的下采样操作会使得小目标的细节信息丢失。在采用fcn、u-net、pspnet等语义分割网络进行缺陷检测的相关技术中,有的方案对于上下文建模接受域有限,在特征提取阶段未能提取到样本图像的全局信息,导致上下文信息缺失,上下文建模困难,限制了语义分割准确率。
21.另一方面,已有的一些语义分割网络,需要采集大量样本数据,少量的样本数据不足以完成语义分割网络的训练。而在现实工业领域中,很多工业产品的样本图像的获取存在一定的难度,难以获得像pascal voc、coco(common objects in context)这样的大量样本数据集。例如,绝缘子作为安装在不同电位的导体或导体与接地构件之间的能够耐受电压和机械应力作用的器件,受其使用环境、安装位置以及拍摄角度限制等因素的影响,获取其大量样本图像是难以实现的。并且,对采集到的图像进行图像分割标注也需要耗费大量的人力、物力和财力。因而,基于已有的一些语义分割网络架构实施的缺陷检测方案,还存在以下问题:由于采集的样本图像的缺陷类别和数量有限,构建的少量绝缘子等产品的图像数据集不足以完成一些语义分割网络的训练。
22.因此,如何更有效的捕获全局的上下文信息以提升分割准确率,以及如何利用少量工业产品的样本图像完成准确的图像分割,以实现更为准确的产品缺陷检测,在保障高速铁路运行安全等诸多方面都至关重要。
23.本技术提出了一种基于transformer的缺陷检测方法,能够解决上述问题。本技术在特征提取阶段,引入了transformer,从序列到序列的角度提出了图像语义分割解决方案,该方案依旧使用基于编码器-解码器的网络框架,在编码器-解码器的语义分割框架中,编码器用于压缩原始输入图像的空间分辨率并逐步地提取更加高级的抽象语义特征,解码器则用于将编码器所提取到的高级特征上采样到原始输入分辨率以进行像素级的预测。与基于卷积的分割方法(例如自全卷积神经网络fcn)相比,本技术中transformer的引入,能够保持输入和输出的空间分辨率不变,同时还能够有效的捕获全局的上下文信息,促使分割准确率得到进一步的提升。
24.此外,本技术提出的基于transformer的缺陷检测方法,采用小样本图像数据集即可完成网络模型的训练,无需采集大量的样本图像,解决了小样本数据集不足以完成语义分割网络训练进而无法实现缺陷检测的问题。
25.本技术实施例提出的基于transformer的缺陷检测方法,可以基于本技术提出的一种新的神经网络架构(以下或称为检测模型)实施。参阅图1所示,该神经网络架构包括分割网络和分类网络。分割网络包括编码器和解码器,用于特征提取。分类网络用于根据提取的特征进行分类,获得缺陷检测结果。其中,编码器基于transformer实现,解码器基于卷积神经网络实现,分类网络基于卷积神经网络实现。
26.编码器包括多头注意力机制(multi-head-attention),用于捕获查询图像的全局上下文信息。具体地,编码器中可以设置相应的单元或算法模块(module)以完成多头注意力机制的相关运算。
27.示例性地,本技术提出的网络架构中的编码器,可以是在transformer的传统编码器的基础上进行改进而获得,后续将会对编码器的结构层次进行具体阐述。解码器采用了基于卷积神经网络的网络结构,可以理解为在传统的卷积神经网络的基础上进行了改进。
28.具体地,参阅图2所示,本技术实施例提供的基于transformer的缺陷检测方法,可以包括如下流程:201,基于待检测的查询图像和查询图像对应的支持图像及第一分割图像,确定输入序列。
29.transformer的输入和输出均为序列,因而,在本技术实施例中,作为一种可实施
方式,将图像进行序列化处理,将预输入检测模型的图像,转换为一维的序列数据,定义为输入序列。输入序列可以理解为向量,示例性地,输入序列包含图像中的各个像素点分别对应的序列,一个像素点对应的序列可以理解为一个嵌入向量。
30.202,将输入序列输入到分割网络的编码器,通过分割网络利用支持图像及第一分割图像,指导查询图像的分割,输出查询图像对应的第一特征图和第二分割图像。
31.利用支持图像及第一分割图像,指导查询图像的分割,也就是在对查询图像进行分割处理的过程中,将支持图像及其对应的分割图像的图像特征作为参考特征,参与查询图像的特征聚合,起到通过支持图像及其分割图像的图像特征,指导查询图像分割的目的,这种机制可以降低对训练样本数量的要求。
32.其中,支持图像,即样本图像。第一分割图像,即对支持图像对应的分割图像。查询图像,即待检测图像。
33.203,将第一特征图和第二分割图像输入到分类网络,通过分类网络输出查询图像对应的缺陷分类结果。
34.缺陷分类结果可以是表示图像中的产品是否带有缺陷的二分类结果,也可以是更多缺陷类别的分类结果。根据缺陷分类结果,至少可以得知查询图像中的目标设备表面是否带有缺陷。目标设备可以是待检测的任意一种工业产品。本技术实施例中,或以绝缘子作为目标设备进行示例性说明。
35.在一个实施例中,上述步骤201-203可以理解为在检测模型训练完成后,采用训练好的检测模型对待测图像(即查询图像)进行检测的过程。在步骤201之前,还需要执行数据集获取、模型构建、模型训练等流程,下面以绝缘子为例,从获取数据集开始,阐述从准备数据集到完成检测的整个流程。
36.参阅图3所示,在一个实施例中,在步骤201之前,还可以包括如下步骤:301,数据集获取。
37.采集具有不同类型缺陷的绝缘子图像和正常绝缘子图像,并对采集的绝缘子图像进行图像分割、缺陷分类和缺陷图像分割标注的预处理。
38.正常绝缘子图像,即不带有缺陷的绝缘子的图像。是否带有缺陷可以依据产品质检规则进行区分。
39.302,数据集划分。
40.构建小样本下的绝缘子缺陷图像数据集,其包括训练集和测试集,训练集和测试集中均包含样本图像及其对应的分割图像。样本图像对应的分割图像,可以是对样本图像进行分割处理后,经过人工审核分割结果准确的分割图像。样本图像对应的分割图像可以理解为样本图像对应的分割结果样本。
41.303,构建检测模型。
42.构建基于transformer的小样本缺陷检测模型。该检测模型是一个两阶段网络,包括分割网络以及分类网络。示例性地,检测模型的网络架构可以参阅图9所示。
43.304,训练检测模型。
44.构建检测模型后,使用绝缘子图像训练集对检测模型进行训练,每一次训练任务从训练集中获取支持图像和查询图像来模拟测试时的样本图像和测试图像,在训练时,首先将将支持图像及其分割图像和查询图像同时输入到分割网络中,利用支持图像及其分割
图像指导查询图像的分割过程。示例性地,分割网络输出的特征图的格式可以是掩膜图像,将得到的分割掩膜输入至分类网络中进行分类,直至训练完成。
45.其中,分割掩膜即为分割图像的掩膜(mask)。
46.305,对训练好的检测模型进行测试。
47.将测试集中的支持图像和查询图像输入到已收敛的分割网络中,通过样本图像及其分割图像指导查询图像的分割图像的生成,得到的查询图像的分割掩膜输入至训练好的分类网络中确定查询图像的缺陷类型及位置。测试合格的检测模型即可用于产品缺陷检测。由于训练、测试和检测的主要流程一般是一致的,因而,步骤201-203既可以是训练阶段的步骤,也可以是测试阶段或者检测阶段的步骤,或者,可以理解为,步骤201-203可以是包含在步骤304或步骤305中的具体操作步骤。
48.为进一步理解本技术实施例提出的基于transformer的缺陷检测方法,下面对检测模型展开说明。
49.在一个实施例中,编码器包括多个编码层,每个编码层包括交叉对齐模块和自对齐模块。
50.自对齐模块,包括多头注意力机制、多层感知机和至少一个归一化层。自对齐模块,用于通过聚合上下文信息来对所述查询图像对应的第一像素特征进行编码。其中,多层感知机,也可以称为多层感知器(mlp,multilayer perceptron)。
51.传统的transformer模型中,encoder(编码器)包含2层,分别是self-attention(sa)层和feed forward neural network(ffn)层,sa层的作用是在对输出序列中的每个对象编码的时候,让编码信息中包含序列中的其他对象的信息,即保存了当前对象与其余对象之间的关系,在本技术实施例的应用场景中,对象可以指图像中的像素。ffn层即前向网络,用于对sa层的输出进行近一步的特征提取。在本技术实施例提出的自对齐模块中,采用多头注意力机制替换sa层,采用多层感知机作为ffn层。
52.交叉对齐模块,包括循环一致注意力机制、多层感知机和至少一个归一化层。交叉对齐模块,用于将支持图像对应的第二像素特征聚合为查询图像对应的第一像素特征。
53.自对齐模块的输入序列包括查询图像对应的query序列、key序列和value序列,自对齐模块的输出序列会作为交叉对齐模块的输入,具体作为交叉对齐模块的value序列输入,交叉对齐模块的输入包括支持图像对应的query序列、key序列和自对齐模块输出的序列(value序列),以及该支持图像对应的分割图像的特征序列。
54.为防止混淆和描述清楚,将查询图像对应的输入序列分别定义为第一query序列、第一key序列和第一value序列,支持图像的输入序列分别定义为第二query序列、第二key序列和第二value序列。其中第二value序列即自对齐模块的输出序列。
55.具体地,将查询图像对应的第一query序列、第一key序列和第一value序列输入自对齐模块中的多头注意力机制,将第二query序列、第二key序列、第二value序列以及分割图像对应的特征序列,输入交叉对齐模块中的循环一致注意力机制。
56.本技术实施例中,基于自对齐模块和交叉对齐模块的编码器架构设计,能够利用支持图像及其分割图像(即第一分割图像),指导查询图像的分割,降低对大量样本图像的依赖程度。
57.发明人在研究过程中进一步发现,在利用支持图像及其分割图像指导查询图像的
分割过程中,支持图像中可能包含无关查询图像分割的特征,这些无关信息聚合到查询图像的分割特征中,导致查询图像分割不准确。例如一种由特征提取模块和特征增强模块构成编码器的方案就存在此类问题。即,已有的相关技术中,还存在如下缺陷需要被克服:利用支持图像及其分割图像指导查询图像的分割过程中,支持图像中包含无关的信息聚合到查询图像的分割特征中,导致查询图像分割的不准确。
58.本技术实施例在该种自对齐模块和交叉对齐模块的编码器架构中,进一步设置了循环一致注意力机制,循环一致注意力机制可以滤掉与查询图像可能无关的支持特征,并鼓励查询特征关注支持图像中信息量最大的像素。其中支持特征即支持图像中的像素特征,查询特征即查询图像中的像素特征。像素特征即一个像素点或一组像素点对应的特征向量(也可以称为嵌入向量)。
59.在本技术实施例提出的检测模型中,解码器包括至少一个卷积层和至少一个采样层。其中,卷积层用于对编码器输出的序列执行卷积运算,采样层用于对编码器输出的序列执行上采样处理。
60.在将输入序列输入到分割网络的编码器之后,将编码器输出的序列输入至解码器,通过解码器执行上采样以及卷积等操作,以输出查询图像对应的第一特征图和第二分割图像,第一特征图以及第二分割图像即为对查询图像进行特征提取的提取结果。
61.其中,为防止混淆,将支持图像对应的分割图像定义为第一分割图像,将查询图像对应的分割图像定义为第二分割图像。
62.在一个实施例中,卷积层执行的卷积运算的卷积核大小为1*1,上采样处理的倍率为2倍。
63.示例性地,分类网络可以包括第一池化层、第一卷积层、第二卷积层、第一最大池化层、第一平均池化层、第二最大池化层和第二平均池化层、全连接层。
64.通过分类网络输出查询图像对应的缺陷检测结果的具体过程可以是:通过第一池化层,对将第二分割图像执行池化操作,得到第二特征图,通过第一卷积层,对第二特征图执行卷积运算,得到第三特征图;将第二特征图与第三特征图进行跳跃连接,获得第一残差块;通过第二卷积层,对第三特征图执行卷积运算,得到第四特征图;第三特征图与第四特征图进行跳跃连接,获得第二残差块。
65.然后,通过第二最大池化层和第二平均池化层,对第二残差块执行空间金字塔池化操作,得到第一特征;通过第一最大池化层和第一平均池化层,对第一特征图和第二分割图像,执行空间金字塔池化操作,得到第二特征;对第一特征和第二特征执行聚合操作,再经过全连接层和激活函数,得到查询图像对应的缺陷分类结果。
66.可选的,在第一卷积层和/或第二卷积层之后,还设置有bn(batchnormalization,批量归一化)层和relu(linear rectification function,线性整流函数)层,用于加速网络收敛。
67.下面列举一个具体的实施例。该实施例分别从数据获取、数据集划分、缺陷检测网络构建、图像缺陷检测四个方面进行详细说明。
68.一、数据获取采集具有不同类型缺陷的绝缘子图像及正常绝缘子图像,由于采集的绝缘子图像是在真实环境条件下采集的,受各种客观环境的影响,需要对采集的绝缘子图像进行图像
调整、裁剪图像、数据增强、缺陷分类和以及图像分割标注的预处理。
69.(1)图像调整:输电线路上采集的绝缘子图像一般质量不是很高,若直接进行训练会降低缺陷检测模型的准确率。因此需要对绝缘子图像进行一定的处理。适当调整图像本身的亮度、对比度、锐度,使绝缘子与背景对比度提高。
70.(2)裁剪图像:在拍摄过程中,为了保证视野,可能不仅将绝缘子拍摄进去且还包含其他输电线设备,绝缘子只占所拍摄图像的小部分。如果直接使用这些图像进行训练会使网络学到很多无关的特征。因此需要将拍摄图像中的绝缘子通过裁剪的方式提取出来。
71.(3)数据增强:由于获得的绝缘子图像有限,因此采用数据增强技术来获取更多数据。通过对采集得到的图像进行随机上下平移、左右平移,随机角度晃动、旋转,随机亮度变化,加入随机分布的噪声等方法,生成一批与原图类似,但是画面表现差异巨大的缺陷图片,扩大缺陷样本的数量。
72.(4)图像分类:在该实施例中,将绝缘子图像分为正常、裂缝、污秽、缺失等多个类别,以便于后续的分割标注。在其他实施例中,图像分类可以至少包括两个类别:正常和缺陷;或者,分为其他三种以上的缺陷类别,例如还可以分为正常、裂缝、缺口3个类别等等。
73.(5)图像分割标注:根据图像的缺陷类别,将绝缘子缺陷图像的每个类别进行标注,不同的缺陷类别与背景用不同的颜色区分开来,以此凸显缺陷的类别、大小、位置等基本信息。
74.二、数据集划分构建绝缘子图像数据集是完成绝缘子缺陷检测方法训练的基础,数据集中包含了缺陷图像和正常绝缘子图像以及其标注好的分割图像。为了更好的训练和验证模型的检测效果,构建的绝缘子图像数据集分为训练集和测试集。示例性地,小样本数据集的一种划分方式参阅图4所示。
75.训练集是对构建小样本绝缘子缺陷检测模型进行训练,使模型能够适应绝缘子缺陷的应用场景;测试集是对已训练模型性能的测试,测试集包含了经过图像预处理,但未对网络进行训练的绝缘子图像。测试集中的各种类型样本的数量较少,每种样本的数量只有训练集中的1/5。
76.小样本数据集训练与大型数据集训练不一样。对于小样本而言,每一个训练任务,采用训练集进行训练。训练集包括支持集和查询集,支持集和查询集可以按照如下方式获得:训练集中抽取d个类别,每个类别抽取k个样本作为这次训练任务的支持集(support set),当k=1时,为1-shot,当k>1时,为k-shot,k-shot表示小样本数据集中的k个样本,d个类别中的其他k个样本则作为此次训练任务的查询集 (query set) 。支持集中的样本图像定义为支持图像,查询集中的样本图像定义为查询图像。支持集中的支持图像和查询集中的查询图像是成对输入至检测模型中进行训练的。支持集中包括支持图像及其分割图像(第一分割图像),查询集中包括查询图像及其分割图像(第二分割图像)。测试集的图像也如训练集一样进行划分。i表示绝缘子图像(支持图像或者查询图像),m代表了绝缘子图像经过标注而获得的分割图像
(支持图像对应的第一分割图像或者查询图像对应的第二分割图像)。
77.三、检测模型构建构建基于transformer的小样本缺陷检测模型,该检测模型由一个两阶段网络构成,其中包括分割网络和分类网络。
78.分割网络是基于transformer,分类网络是基于卷积神经网络。分割网络采用编码器-解码器架构,但与现有技术中的编码器-解码器架构不同,本技术实施例中的编码器采用transformer,解码器基于卷积神经网络。
79.其中,编码器分为两个部分,一个是交叉对齐模块,一个是自对齐模块。自对齐模块通过聚合其相关上下文信息来对查询图像特征进行编码,而交叉对齐模块通过将支持图像的像素特征聚合为查询图像的像素特征,为查询图像提供了足够丰富的逐像素支持信息以进行像素级的分割预测。
80.解码器利用不同编码层的输出的特征通过上采样得到最终的预测。分类网络通过分割网络中解码器部分得到的特征采用跳跃连接以及空间金字塔池化,输出分类结果,即缺陷的分类。
81.示例性地,在一个实施例中,本技术实施例提出的基于transformer的小样本缺陷检测方法的整体架构中,编码器的架构参阅图5所示。
82.在该实施例中,分割网络的编码器,由24个编码层组成,每一层中包含了交叉对齐模块和自对齐模块。交叉对齐模块包含一个循环一致注意力机制、两个归一化层、一个多层感知机。自对齐模块包含一个多头注意力机制、两个归一化层、一个多层感知机。
83.在一个实施例中,交叉对齐模块以及自对齐模块的层次结构如图5所示,交叉对齐模块包括一个循环一致注意力机制,在循环一致注意力机制之后依次设置归一化层、多层感知机、归一化层。自对齐模块包括一个多头注意力机制,多头注意力机制之后依次设置归一化层、多层感知机、归一化层。
84.需要说明的是,在一个实施例中,分割网络的编码器,由24个编码层组成,每一层中包含了交叉对齐模块和自对齐模块,各个编码层输出的序列依次从底层向上层传递,最后一层(即第24层)的编码层的交叉对齐模块的输出即为编码器的输出。
85.查询图像xq、支持图像xs和支持图像对应的分割图像ms,通过图像序列化得到一维序列(),作为transformer的输入,输入到编码器中,把图像中每个像素点的特征看作是一个token。,其中r表示实数集,hq表示查询图像的高度,wq表示查询图像的宽度,c表示通道数;,其中hs表示支持图像的高度,ws表示支持图像的宽度,c表示通道数。中,z表示一维序列,hw表示一维序列的长度,即高度h与宽度w的乘积,c表示通道数。
86.示例性地,在一个实施例中,transformer的输入可以是一个1d(一维)序列,因此,需要图像序列化将输入图像转换为一维序列z。图像序列化即将输入图像展平为一维序列z()。例如,图像大小为128(h)
×
128(w)
×
3(r,g,b三个通道),序列化后得到长度为49152的1d向量。
87.具体地,查询图像xq经过图像序列化处理后得到序列(),输入至自对齐模块,通过聚合其相关上下文信息来对查询图像特征进行编码,得到查询图像的编码。其中,为便于描述,分别定义为第一query序列、第一key序列和第一value序列。
88.支持图像xs经过图像序列化处理后得到序列(),和自对齐模块输出的查询图像编码后的序列()输入至交叉对齐模块,具体是输入至循环一致注意力机制,并且分割图像xm经过图像序列化处理后的序列一起输入至循环一致注意力机制,通过交叉对齐模块将支持图像的像素特征聚合为查询图像的像素特征。为描述清楚,分别定义为第二query序列、第二key序列,定义为第二value序列。
89.多头注意力机制是由多个自注意力构成,即多头注意力机制包括多个独立的attention计算。其中,自注意力的计算公式如下:
ꢀꢀꢀꢀꢀꢀ
(1)其中表示注意力分数,分别表示transformer模型中的q向量,k向量和v向量,q即query,可以理解为查询;k即key,可以理解为键值,v即value,可以理解为值项。
90.,中上角标q表示为查询图像,z表示查询图像或支持图像或者分割图像经过一维序列化处理后得到的一维输入序列,分别表示q向量对应的一维输入序列、k向量对应的一维输入序列和v向量对应的一维输入序列。q向量基于wq和获得,k向量基于wk和获得,v向量基于wv和获得。分别表示q权重矩阵、k权重矩阵和v权重矩阵,该3个矩阵中的元素均为可学习的参数,模型的训练即为不断修改参数,以使模型收敛。
91.d是查询图像序列的维数,可以理解为一个token的维度,或者说可以理解为在特征提取阶段,一个像素点的嵌入向量的维度。
92.除以目的在于缩小点积范围,确保softmax的梯度稳定性。softmax为归一化处理函数。
93.多头注意力将m个自注意力连接在一起,将输入的维度d分m组,多头注意力如下:
ꢀꢀꢀ
(2)其中表示多头注意力分数,,
表示来自于的第i组,表示第i组的自注意力分数函数式;表示第i组的自注意力分数。
94.前述内容中有所提及,在小样本缺陷检测中,支持图像及其分割图像指导查询图像的分割,由于支持图像中包含无关查询图像分割的特征,这些无关信息会聚合到查询图像的分割特征中,导致查询图像分割的不准确。针对这个问题,本技术提出循环一致注意力机制。采用循环一致注意力机制可以有效滤掉支持图像中无关的支持特征,并鼓励查询特征关注支持图像中信息量最大的像素,促使对查询图像的分割。
95.具体地,循环一致注意力机制,用于根据查询图像中各个像素点分别对应的查询特征(第一像素特征),与支持图像中的各个像素点分别对应的支持特征(第二像素特征)之间的对应关系,判别查询图像的像素点与支持图像的像素点之间是否具备循环一致性;然后,将支持图像中与查询图像不具备循环一致性的像素点对应的像素特征过滤掉。
96.通过循环一致注意力机制,可以滤掉与查询图像可能无关的支持特征(即支持图像中的像素特征,也可以称为支持token),并鼓励查询特征(即查询图像中的像素特征,也可以称为查询token)关注支持图像中信息量最大的像素。
97.循环一致注意力机制的结构如图6所示,其主要通过度量查询特征与支持特征的一致性,对支持图像中有害信息分配趋于0的权重。有害信息指与查询图像不具备一致性的无关信息。
98.具体地,在一个实施例中,可以采用亲和图来度量所有查询tokens和支持tokens之间的对应关系。图6中所示的图a即为亲和图。其计算公式如下:
ꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中a表示亲和值,亲和值即查询token和支持token之间的对应关系的量化值,用于表示相应的两个像素点之间的关联度,,是支持图像的序列,分别表示q权重矩阵、k权重矩阵,是可学习的参数。d是支持图像的序列的维数(一个token的维数)。一般而言,查询图像和支持图像的序列维数应保持一致。
99.对于在支持图像中位于第j个像素位置的单个token,j∈{0,1,

,h
sws
},其在查询图像中对应的各个像素特征中的最相似点由下式可得
ꢀꢀꢀꢀꢀꢀ
(4)其中argmax表示argmax函数,是使得取得最大值所对应的变量点(即像素点)或变量点的集合,表示查询图像中第i个像素点与支持图像中第j个像素点之间的亲和值。此处argmax函数的作用在于根据亲和值建立两个像素点之间的映射,即亲和值取最大值的两个像素点之间建立了映射关系。作为一种可实施方式,图6中由亲和图a分别指向第个像素点和第个像素点的映射动作,可以采用argmax函数实现。∈
{0,1,

,hqw
q }表示展平后查询特征的索引,可以理解为查询图像中第个像素点。由于查询掩码不可访问,token的标签未知,所以以类似的方式将其映射回支持特征,以找到其在支持序列中最相似的特征点:
ꢀꢀꢀꢀꢀꢀꢀ
(5)此处表示查询图像中第个像素点,token表示查询图像中第个像素点对应的token。表示支持图像中第个像素点。前面已经提到过,token表示一个像素点的特征,该特征可以用向量的方式表达,因而token也可以理解为一个像素点对应的嵌入式向量。此处的标签,用于表示指该token属于分割结果中的哪一类,分割结果的类别可以包括前景图像和背景图像,例如高铁绝缘子的支持图像中,各个像素点的标签表示该像素点是绝缘子图像还是背景。由于查询图像没有分割图,所以查询图像中各个像素点的标签是未知的。
100.需要说明的是,分割网络中的标签与分类网络中的标签所表示的含义是不同的,分割网络中的标签用于表示分割结果的类别,例如表示前景图像(例如绝缘子)还是背景图像。分类网络中的标签用于表示缺陷类别,例如最简单的两种缺陷类别即没有缺陷和带有缺陷,具体还可以划分为其他多种缺陷类别,例如合格(即不带有缺陷)、裂缝、污秽、缺失等类别。
101.查询掩码即查询图像的掩膜图像中各个像素点的值。
102.给定支持图像的掩膜图像,如果,则认为支持图像中的第j个像素点的token与查询图像中的点的token之间建立了循环一致性。为支持序列中的所有token都构建循环一致性关系,利用循环一致性的一种可能方法是最大化匹配点之间的相似性。其中,ms表示支持图像的掩膜图像,也就是支持图像的分割图像,因而,分割图像也用符号ms表示。表示支持图像的掩膜图像中第j个像素点的值,表示支持图像的掩膜图像中第个像素点的值。hs表示掩膜图像的高度,ws表示掩膜图像的宽度,h
sws
表示掩膜图像的大小,表示由大小为h
sws
的掩膜图像构成的实数集。
103.首先,通过遍历所有支持token,并且设置一个额外的偏置,b通过如下公式获得:
ꢀꢀꢀꢀꢀꢀꢀ
(6)对于在查询图像中位于第i个像素点(即目标像素点)位置的查询token,可以通过如下公式聚合支持特征:

(7)其中,b分别由(3)、(6)式计算得到,表示第i个像素点位置的查询token。以这种方式,对于循环不一致的支持特征的关注权重趋向于零,这意味着将不考虑支持图像中不相关的信息。式(7)中softmax函数的作用可以理解为进行归一化处理,即图6中的归一化处理可以通过softmax函数实现。b=的情况下,经过softmax函数处理后的权重趋近于0。趋近于0可以理解为该数值与0之间的差值小于预定值,该预定值可以是0.1,或0.01,0.001等。
104.分割网络解码器结构如图7所示,解码器采用渐进式上采样策略,编码器输出的序列进行reshape操作得到特征图d1,然后经过卷积核大小为1*1的卷积操作和2倍上采样操作,得到特征图d2,同理,特征图d2经过1*1的卷积操作和2倍的上采样操作之后,得到特征图d3(即第一特征图)以及查询图像的分割图mq(第二分割图像)。reshape操作用于调整矩阵的维度和形状,此处用于调整编码输出的序列的维度和形状。
105.需要说明的是,上述卷积核大小以及上采样的倍率仅为示例,采用上述参数进行卷积操作和上采样操作获得的图像分割结果更为准确。在其他实施例中,也可以采用其他卷积操作和上采样操作,不限制于该实施例给出的上述参数。
106.参阅图8所示,分类网络将分割网络中解码器部分得到的特征图d3和查询图像的分割图mq作为输入,更容易地学习全局信息,通过第一池化层执行池化操作得到第二特征图c1,然后c1经过1个3*3的第一卷积层得到第三特征图,第一卷积层的卷积核大小为3*3,特征图c1和经过第一卷积层后的第三特征图通过跳跃连接得到残差块c2。残差块c2经过第二卷积层的卷积操作后得到的第四特征图与c2通过跳跃连接得到残差块c3。
107.两个残差块(c2,c3)(即第一残差块和第二残差块)对经过池化之后的特征图进行学习,每个卷积层后面都接着bn和非线性relu层用于加速网络收敛。
108.最后,分别对学习到的特征图和分割网络输出的结果进行空间金字塔池化操作(最大池化和平均池化),并将其一起聚合起来,再经过全连接层和sigmoid激活函数得到分类网络的输出,即缺陷的分类。
109.具体地,空间金字塔池化操作可以包括:通过第二最大池化层和第二平均池化层,对第二残差块执行空间金字塔池化操作,得到第一特征。然后,通过第一最大池化层和第一平均池化层,对第一特征图和第二分割图像,执行空间金字塔池化操作,得到第二特征。
110.接下来,对第一特征和第二特征执行聚合操作,再经过全连接层和激活函数,得到查询图像对应的缺陷分类结果。聚合操作,即采用卷积神经网络中的聚合函数aggregator执行相应的特征聚合函数运算。在其他实施例中,也可以采用其他特征聚合函数实现聚合操作。例如,采用max pooling aggregator等聚合方式进行聚合操作。
111.激活函数可以是sigmoid函数,也可以是softmax函数。一般而言,输出的分类结果为二分类的情况下,也就是缺陷类别仅分为带有缺陷和不带有缺陷两个类别的情况下,使用sigmoid函数。缺陷类别包括3种以上则使用softmax函数。
112.完整的检测模型的网络架构参阅图9所示。本技术实施例提供的检测模型可以在小样本数据集的情况下,对绝缘子等工业设备的图像进行缺陷检测,识别该图像中的绝缘子等设备是否带有缺陷,或者,还可以检测出具体的缺陷类型,例如是否有裂缝,是否有缺口等。
113.需要说明的是,为保证视图清晰,图9以及其他附图中的解码器以及分类网络未示出全部的网络层,例如第一卷积层、第二卷积层以及第一池化层、第一最大池化层等未在附图中示出,本领域技术人员能够根据上述说明明确各个层的分布。
114.四、模型训练训练过程中,使用绝缘子图像训练集对缺陷检测方法进行训练,训练集每一次训练任务从训练集中获取支持图像和查询图像来模拟测试时的样本图像和测试图像,在训练时,首先将支持图像及其分割图像和查询图像同时输入到分割网络中,利用支持图像及其分割图像指导查询图像的分割过程,将得到的分割掩膜输入至分类网络中进行分类,直至训练完成。
115.五、图像缺陷检测测试集中的支持图像和查询图像输入到已训练好的分割网络中,通过支持图像及其分割图像指导查询图像的分割图像的生成。分类网络通过分割网络中解码器部分得到的特征采用跳跃连接以及空间金字塔池化,输出分类结果。
116.将分类结果与预先标注的分类结果进行比较,进而获得模型是否通过测试的结果。通过测试,该训练好的模型即可用于缺陷检测。
117.综上,现有的语义分割网络在特征提取阶段未能提取到样本图像的全局信息,导致上下文建模困难,限制了语义分割准确率。针对这个问题,本技术提出的小样本缺陷检测模型的分割网络编码器采用transformer架构,从序列到序列的角度提出了图像语义分割解决方案。与基于卷积的分割方法相比,transformer能够保持输入和输出的空间分辨率不变,同时还能够有效的捕获全局的上下文信息,促使分割准确率得到进一步的提升。
118.此外,由支持图像及其分割图像指导查询图像的分割过程中,支持图像中包含无关查询图像分割的特征,这些无关信息会聚合到查询图像的分割特征中,导致查询图像分割的不准确。为了消除支持图像中无关特征的影响,采用循环一致注意力机制可以有效滤掉支持图像中无关的支持特征,并鼓励查询特征关注支持图像中信息量最大的像素,促使对查询图像的分割。
119.本技术实施例还提供一种电子设备,该电子设备包括:一个或多个处理器;存储器;至少一个应用程序;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行本技术实施例提供的基于transformer的缺陷检测方法。
120.本技术实施例还提供一种存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行本技术实施例提供的基于transformer的缺陷检测方法。
121.本技术实施例还提供一种芯片系统,包括:通信接口,用于输入和/或输出数据;处理器,用于执行计算机可执行程序,使得安装有所述芯片系统的设备执行本技术实施例提供的基于transformer的缺陷检测方法。
122.应理解,在本技术的各实施例中,“第一”、“第二”等仅是为指代不同的对象,并不表示对指代的对象有其它限定。
123.应理解,本技术实施例中的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
124.因此,在本技术的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
125.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a, b, c, a-b, a-c, b-c,或a-b-c,其中a, b, c可以是单个,也可以是多个。
126.本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
127.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
128.在本技术所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
129.以上所述,仅为本技术的具体实施方式,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1