基于自组织映射网络的无监督工业异常检测与定位方法

未命名 07-23 阅读:85 评论:0


1.本发明属于机器学习领域,具体涉及基于自组织映射网络的无监督工业异常检测与定位方法。


背景技术:

2.异常检测是指检测不符合预期模式或正常分布的样本。它在工业生产的质量控制中起着重要作用,但在实际生产环境中很难以有监督的方式进行异常检测。一方面,有缺陷的样本比正常样本少得多;另一方面,某些类别的图像缺陷是无法获取的,即无法保证测试时的缺陷类型在训练阶段都遇到了。因此,异常检测模型通常以单类学习的形式进行,即该模型在训练期间只能访问正常样本而不能访问缺陷样本,并且可以在推理期间识别异常样本。
3.近年来,基于特征嵌入相似性的方法在工业异常检测场景中获得了巨大的成功,这类方法需要使用深度神经网络来提取图片有意义的信息,生成特征嵌入。对于异常检测任务来说,该方法会将整张图片描述为特征向量;对于异常定位任务来说,该方法往往将整张图片看作多个小图片块,然后将每个小图片块描述为特征向量。在这种情况下,异常检测往往通过比较测试图像的特征向量与对应正常图片的参考向量之间的距离实现。其中参考向量可以是由所有正常嵌入向量构成也可以是通过某些措施从中选择部分具有代表性的向量构成。前一种措施效果很好但是因为需要保存所有正常嵌入向量,所以需要巨大的存储空间并且由于保存的信息过多,在测试时所需的时间也较多,因此该方法在工业部署上有很大的局限性。后一种措施虽然大大减少了参考向量的规模,但是一方面选择具有代表性向量的方法复杂度太高所以只能采用无法保证参考向量质量的贪心策略,另一方面在这个挑选的过程中也会丢失很多信息。此外由于深度网络浅层的特征图更加关注细节信息而深层的特征图更加关注上下文信息,这两者恰好都对异常检测问题很重要,所以这类方法通常会综合使用多个层的特征图,以提高检测的精度。但是这些方法对多级特征的使用方式过于简陋,仅仅将深层的特征图上采样到和浅层相同尺寸,然后将多个特征图按照通道方向拼接起来。这会导致不同层的特征图相互干扰。尤其是深层的特征图本身维度就很高,经过上采样后还会出现很多相同的数值,这会对浅层特征的差异性产生严重负面影响。
4.自组织映射网络som是一种经典的无监督学习方法,由kohonen提出。som的主要目的是在低维空间(通常是二维空间)中使用有限数量的神经元来表示输入数据项的分布,并在此过程中保留拓扑结构。它包含组织在二维网格中的m*n个神经元节点,其中ci表示神经元i的权重向量。在训练时,训练集中的所有数据都被输入到som中,并通过竞争找到最佳匹配单元,然后需要更新权重矩阵。为了使som保持拓扑空间中输入向量的邻域关系,不仅要更新最佳匹配单元的权重,还要更新了其邻居节点的权重。当模型收敛时,每个输入向量都被分配给一个神经元节点,并且具有拓扑保持的特性,即相似的向量在网格上靠得更近。这种邻域学习的特性也使其极其适合处理图片块类型的数据。
5.在工业异常检测场景中存在两个问题,一是各种算法为了综合考虑不同语义级别
的信息将不同层的特征图组合起来,但是操作过于简陋以至于忽略了不同层级信息间存在的相互干扰;二是为了提高测试阶段的效率,试图减少参考向量的规模,但是却难以做到在减少参考向量规模的同时尽可能多地保留信息。


技术实现要素:

6.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供基于自组织映射网络的无监督工业异常检测与定位方法。
7.本发明将每个图像视为多个图片块并采用在imagenet数据集上预训练的wide-resnet50x2模型作为特征提取器。特征提取时,选择模型前三个layer提取的特征图作为图片的特征向量,并将每个layer的特征图视为独立视图,以减少相互干扰。此外为了减少测试时参考向量的规模,使用自组织映射网络来组织图片块特征嵌入,因为som是一种简单有效的在线学习方法,其邻域学习机制可以利用图片块的位置信息,所以很适合处理图片块。当som训练完成后,每个训练图片块都有一个对应的神经元节点,如此用有限数量的神经元节点保存了大量训练图片块的特征向量,从而极大地降低了算法的代价。最后通过计算投影到som中每个节点的所有图片块特征向量的均值和方差来对图片块的分布进行建模,从而更好地保存了训练图片块中包含的信息。所提出的方法已在mvtec ad的15个数据集上进行验证,在无监督异常检测和定位任务中取得了最先进的性能。
8.本发明具体实施过程如下:
9.(1)将训练图片划分为图片块,并利用预训练模型作为特征提取器进行特征提取,将模型前三层提取到的特征图视为不同视图。如此对于训练图片x,其每个位置的图片块与三个特征向量相关联,其中i,j表示在图片中的位置,t表示该向量所属视图;
10.(2)使用三个自组织映射网络分别处理三个视图的特征向量,将所有训练图片的特征向量都投影到节点上,并计算每个节点上所有特征向量的均值μ和方差σ,构建正常图片块对应的分布;
11.(3)对于训练图片中每个图片块对应的三个特征向量,在相应的som中寻找对应的获胜神经元节点并计算马氏距离,最后综合不同视图的马氏距离获得最终的异常分数;
12.(4)利用得到的异常分数设置异常分数阈值θ;
13.(5)将测试对象x分块并提取每个小块在不同视图上的特征向量,计算每个小块在不同视图上的马氏距离并获得相应的异常分数,并将其与异常分数阈值相比较,若小于阈值,被视为正常,否则被视为异常。
14.有益效果:本发明通过将模型不同层提取的特征图看做不同视图并分别处理,减少了视图间的相互干扰;通过将提取到的图片块特征向量投影到自组织映射网络上,大大缩减了特征向量的规模,降低算法成本;通过将图片分块处理的操作使得算法能高效的进行图片对齐,即相似的图片块都投影到相同的神经元上,这使得计算出来的分布更加准确。以上三种措施均实现了性能的提高。
附图说明
15.下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
16.图1是基于自组织映射网络的工业异常检测与定位算法流程图。
17.图2是基于自组织映射网络的工业异常检测与定位算法具体训练过程示意图。
18.图3是部分异常检测与定位结果示意图。
具体实施方式
19.本具体实施方式中实验数据均来自真实工业生产场景中获得的mvtec ad数据集,其中有五个纹理类数据集,包括地毯(carpet),网格(grid),皮革(leather),瓷砖(tile)以及木材(wood);还有十个物体类数据集,包括瓶子(bottle),缆线(cable),胶囊(capsule),榛子(hazelnut),金属螺母(metal_nut),药片(pill),钉子(screw),牙刷(toothbrush),晶体管(transistor)以及拉链(zipper)。
20.图1展示了本发明提到的基于自组织映射网络的工业异常检测与定位算法流程图,具体包括如下步骤:
21.步骤1:图片分块并进行特征提取得到多个视图的特征向量
22.由于图像中的异常区域往往以小区域的形式出现,所以将图片分为小块处理能够使得提取到的特征更加具有代表性。此外将图片分为小块的操作也十分适用于异常定位任务,因为只要区别出每个小块是否存在异常,便可以自然获得异常定位的结果。最后图像分块操作还具有使图片对齐的效果,即图像中相似的区域都会投影到相同节点上使得计算出的异常分数更加合理。综上所述,首先需要将图片看作由多个图片块组成。
23.深度模型在经过训练后可以拥有极其强大的特征提取能力,并且训练数据量越大,类别越多模型提取到的特征就越具有代表性,鲁棒性也越强。在工业异常检测场景中,目标数据往往都是同类的,相似度极高,故很难训练出高性能的模型作为特征提取器。而imagenet数据集数据量大且类别繁多差异大,用该数据集训练出来的模型已在多个场景中验证了自己的有效性。故采用在imagenet数据集上预训练的wide-resnet50x2模型作为特征提取器进行特征提取。
24.具体操作如图2所示,其中input是训练图片样例,resnet框表示残差网络模型,其中layer1,layer2,layer3以及layer4是残差网络模型主要的四个网络层,feature map是特征图。
25.选择resnet模型前三层提取到的特征图作为原始图像在不同视图下的特征向量。由于随着网络加深,特征图的尺寸会变小,故通过上采样措施将深层特征图放大到与浅层特征图一致。上述过程用形式化语言表述为,对于数据集x中的图像x∈x,将其视为w
×
h块图像片,则对于每个位置i所在的图片块xi对应的特征向量为f
it
,其中t∈[1,3],i∈[1,w
×
h]。
[0026]
步骤2:用三个som分别处理不同视图的数据,进而构建图片块对应的分布
[0027]
使用三个自组织映射网络来分别处理不同视图的特征嵌入,以视图1为例,som1的训练过程包括初始化,随机采样,确定获胜神经元以及参数更新四个步骤。首先som1的网格大小设置的与图片块数量一致,即长为w,宽为h。权值向量通过计算每个位置上对应的所有图片块特征向量的均值进行初始化。然后每次随机从特征集中选择一个特征向量f1。接着根据下方公式确定获胜神经元,
[0028][0029]
其中,i为神经元的下标,为下标是i的神经元的权值向量。
[0030]
最后根据下方公式更新获胜神经元及其邻域内神经元的权值向量,
[0031][0032]
其中α(n)是第n次更新时的学习率,h
j,i(f)
(n)是获胜神经元i(f)的邻域函数。
[0033]
som训练完成后,每个神经元节点有相应的权重向量,此时希望som网络能够尽可能的刻画出正常特征向量的分布。本发明采用的方法是计算每个投影到每个节点的所有数据的均值和方差,如此一来每个节点对应的所有特征向量就可以通过一个多元高斯分布进行刻画,从而实现用som网络构建正常图片块对应的分布。方差计算公式如下,
[0034][0035]
其中ni是投影到节点i的输入向量的数量,f
ij
表示节点i的第j个输入向量。正则化项∈i使协方差矩阵σi满秩且可逆。
[0036]
步骤3:计算图片块的异常分数
[0037]
此时可以获得三个经过训练的自组织映射网络som,记为som1、som2、som3。对于第i个图片块xi,有三个对应的特征向量f
it
,t∈[1,3]。则对于图片块xi的特征嵌入f
it
,需要在som
t
中找到对应的k个最近节点,并计算特征嵌入与这些节点的马氏距离,最后选择最小的距离作为图片块在这个视图上的最终马氏距离分数,公式如下:
[0038][0039]
其中,f
it
表示i位置图片块t视图对应的特征向量,和分别表示t视图som获胜神经元节点对应分布的均值和协方差矩阵。
[0040]
在计算出三个视图对应的马氏距离图后,图片块xi的异常分数mi由三个视图的马氏距离之和给出:
[0041][0042]
最后,使用双线性插值方法将异常分数图放大到与原始图像相同的大小,从而获得每个像素的异常分数,实现异常定位。而若是图片中存在异常像素则被视为异常图片,实现异常检测。值得一提的是,最终的得分可以通过对三个视图得分进行加权计算获得。通过调整不同场景下不同视图下分数的权重可以获得更好的结果,但实验中权重均设置为1。
[0043]
步骤4:设置异常分数阈值
[0044]
根据某种策略设置异常分数阈值θ,例如引入正常样本拒绝比r来调节异常分数阈值。将训练样本的异常分数由小到大排序得到ur,然后选择ur中第num
×
r+1个元素作为异常分数阈值θ。
[0045]
步骤5:测试阶段
[0046]
将测试对象x分块并提取每个小块在不同视图上的特征向量,计算每个小块在不同视图上的马氏距离并获得相应的异常分数si,最后使用双线性插值方法将异常分数图放
大到与原始图像相同的大小,得到每个像素位置x
pixel
的异常分数s
pixel
,并将其与异常分数阈值相比较,每个像素x
pixel
的判别函数为:
[0047][0048]
如此一来就能获得每个像素位置的是否为异常的情况,若存在异常像素,则该样本为异常样本且异常像素所在区域实现了异常定位;若不存在异常像素,则该样本为正常样本。
[0049]
为了验证本发明的有效性,结合本发明的实施方案进行实验分析。主要与两类最常用的方法进行比较,一类是基于重建思想的方法,包括ae+ssim以及vae两种方法,另一类是基于特征嵌入相似性的方法,包括2020年的spade,2021年的padim以及2022年的patchcore三种方法。
[0050]
为了与上述几种基于特征相似性的方法更公平地进行比较,本实施例时数据的预处理工作均与它们保持一致。首先所有方法使用的特征提取器均为在imagenet数据集上预训练的wide-resnet50x2模型。然后所有的图像大小都先调整为256
×
256像素再中心裁剪为224
×
224像素。最后在使用双线性差值法获得图像像素级异常分数图后,均采用参数σ=4的高斯滤波器使结果变得平滑。最终本发明方法与几种对比方法的实验结果如表1所示,本发明方法部分检测结果可视化情况如图3所示。
[0051]
表1是在mvtec ad数据集上本发明方法与其他几种现有最先进的工业异常检测与定位方法的比较结果。结果表示为元组(图像级auroc%,像素级auroc%)
[0052]
表1
[0053][0054]
通过对比实验的精度结果可知,本发明提出方法能有效处理工业场景下的异常检测与定位问题。
[0055]
具体实现中,本技术提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的基于自组织映射网络的无监督工业异常检测与定位方法的发明内容以及各实施例
中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0056]
本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机。muu或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0057]
本发明提供了基于自组织映射网络的无监督工业异常检测与定位方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

技术特征:
1.基于自组织映射网络的无监督工业异常检测与定位方法,其特征在于,包括以下步骤:步骤1,将训练图片划分为n*n个图片块,n∈[2,size],其中size是训练图片的像素级尺寸,并进行特征提取,每个图片块得到三个视图的特征向量;步骤2,使用三个自组织映射网络som分别处理三个视图的特征向量,将所有训练图片块的特征向量都投影到节点上,并计算每个节点上所有特征向量的均值μ和方差σ,构建正常图片块对应的分布;步骤3,计算图片块的异常分数;步骤4,设置异常分数阈值θ;步骤5,对工业异常进行检测和定位。2.根据权利要求1所述的方法,其特征在于,步骤1包括:获取真实工业生产场景中的mvtec ad数据集,mvtec ad数据集包括纹理类数据集和物体类数据集,将纹理类数据集和物体类数据集中的图片作为训练图片,将训练图片划分为n*n个图片块,采用在imagenet数据集上预训练的wide-resnet50x2模型作为特征提取器,进行特征提取,将模型前三层提取到的特征图视为不同视图,并将提取到的特征图尺寸上采样到与图片块数量一致,使得每个图片块都有对应的特征向量。3.根据权利要求2所述的方法,其特征在于,步骤1中,对于训练图片x,其每个位置的图片块与三个特征向量相关联,其中i,j∈[1,n],t∈[1,3],表示第t个视图下在图片中横坐标i、纵坐标j位置处的特征向量。4.根据权利要求3所述的方法,其特征在于,步骤2包括:步骤2-1,采用三个自组织映射网络分别处理三个视图的图片块特征向量,将步骤1获得的图片块特征向量作为训练集,每次从训练集中抽取一个特征向量f
t
,然后确定获胜神经元,公式如下:其中,i
t
为神经元的下标,f
t
为输入的特征向量,为第i个神经元的权值向量;然后更新神经元及其邻域内神经元的权值向量,公式如下:其中是第n+1次更新时第j个神经元的权值向量,α(n)是第n次更新时的学习率,h
j,i(f)
(n)是获胜神经元i(f)的邻域函数,f
t
(n)是第n次更新时输入的特征向量;步骤2-2,重复步骤2-1直至三个自组织映射网络的权值向量不再变化,训练完成,获得三个训练完成的自组织映射网络som,分别记为som1、som2、som3;步骤2-3,计算每个投影到每个节点的所有数据的均值和方差,实现用自组织映射网络som构建正常图片块对应的分布,方差计算公式如下:其中n
i
是投影到节点i的输入向量的数量,c
i
表示第i个神经元的权值向量,f
ij
表示神经
元i的第j个输入向量;正则化项∈i使协方差矩阵σ
i
满秩且可逆。5.根据权利要求4所述的方法,其特征在于,步骤3中,对于第loc个图片块x
i
,loc∈[1,n*n],有三个对应的特征向量则对于图片块x
i
的特征嵌入需要在som
t
中找到对应的k个最近节点,并分别计算特征嵌入与对应的k个最近节点的马氏距离,最后选择最小的距离作为图片块在当前视图上的最终马氏距离分数,公式如下:其中表示第loc个图片块t视图对应的马氏距离,f
it
表示第loc个图片块t视图对应的特征向量,和分别表示t视图自组织映射网络som获胜神经元节点对应分布的均值和协方差矩阵。6.根据权利要求5所述的方法,其特征在于,步骤3中,在计算出三个视图对应的马氏距离图后,图片块x
i
的异常分数m
i
由三个视图的马氏距离之和给出:7.根据权利要求6所述的方法,其特征在于,步骤4中,将图片块的异常分数由小到大排序得到序列u
r
,然后选择序列u
r
中第num
×
r+1个元素作为异常分数阈值θ,其中num是所有特征向量的总数量,r是一个0到1之间的小数。8.根据权利要求7所述的方法,其特征在于,步骤5中,将测试图像x分块并提取每个小块在不同视图上的特征向量,计算每个小块在不同视图上的马氏距离并获得相应的异常分数s
i
,最后使用双线性插值方法将异常分数图放大到与测试图像x相同的大小,得到每个像素位置x
pixel
的异常分数s
pixel
,并将其与异常分数阈值相比较。9.根据权利要求8所述的方法,其特征在于,步骤5中,每个像素x
pixel
的判别函数f(s
pixel
)为:10.一种存储介质,其特征在于,存储有计算机程序或指令,当所述计算机程序或指令被运行时,实现如权利要求1至9中任一项所述的方法。

技术总结
本发明提供了基于自组织映射网络的无监督工业异常检测与定位方法,将特征提取时不同层的特征视为不同视图以减少不同语义级别信息间的相互干扰,并将每个图像视为多个图片块,用自组织映射网络来学习这些图片块的分布信息,进而通过分布信息给出每个图片块的异常分数,最后设置确定异常的阈值,从而实现异常检测。检测。检测。


技术研发人员:陈松灿 刘达
受保护的技术使用者:南京航空航天大学
技术研发日:2023.02.10
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐