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

一种基于记忆网络的图像异常检测方法

2022-08-10 22:37:03 来源:中国专利 TAG:


1.本技术属于计算机视觉技术领域,尤其涉及一种基于记忆网络的图像异常检测方法。


背景技术:

2.图像异常检测是计算机视觉领域的一个热门研究方向,其研究目标是在不使用真实异常样本的情况下,利用正常样本去训练一个特定的模型以检测可能出现的各种各样的异常图像。在工业产品缺陷检测,医学图像分析,视频监控安防等领域有较高的研究意义和应用价值。图像异常检测的难度相对而言比较大,主要体现在一下几点:

图像中异常类别的异构性、未知性:异常是不规则的,一类异常可能表现出与另一类异常完全不同的异常特征。例如,在工业产品中,外包装的缺陷的形状,位置等未知。但异常未发生的时候就不知道什么是异常等情况。

类别不均衡,异常样本少:异常通常是罕见的数据实例,而正常实例通常占数据的绝大部分。因此,收集大量标了标签的异常实例是困难的,甚至是不可能的。这导致无法像常规的监督学习一样可以有正负样本用来学习训练模型。
3.由于以上的研究现状致使图像异常检测的目标只能是通过无监督或者半监督学习的方式(少量负样本或者人为制造负样本),检测与正常图像不同的异常图像或者局部异常区域。当前该研究方向已经在众多的研究学者共同努力下已经取得了一些研究进展,根据在模型构建阶段有无神经网络的参与,现有的图像异常检测方法可以分为基于传统方法和基于深度学习的方法两大类别。基于传统方法的异常检测技术大致包含以下几个分支:分别是基于模板匹配、基于统计模型、基于频域分析和基于分类面构建的异常检测模型。而基于深度学习的方法大致有以下几个类别:分别是基于高维特征向量距离度量、基于输入图像重构对比的和结合传统方法的异常检测方法。
4.近年来传统机器学习方法已经在图像异常检测领域有了较多的应用,而随着深度学习技术的发展,结合神经网络来实现图像异常检测已然成为了当下的研究新技术。其中基于对输入神经网络的输入图像重构的异常检测方法越来越成为一个研究的热门。基于输入正常图像重构的方法其核心思想在于对输入的正常图像通过神经网络进行编码,并使用解码器对提取的高维特征进行解码重构,并以重构输入为目标训练神经网络。然后在检测阶段通过对比输入正常图像与重构图像之间的差异来达到异常检测的目的。根据采取的训练模式,常用的基于输入正常图像重构的方法大致包含基于自编码器和基于生成式对抗网络(generative adversarial networks,gan)两种类型。
5.在基于输入正常图像重构的方法中,最为常用的网络结构为自编码器(autoencoder,ae)。仅利用正常样本训练搭建好的自编码器,在测试阶段期待能够对正常图像进行较高质量的重构,而对于测试中存在异常的图像,在图像编码以及后续的解码重构过程中都会与正常图像产生差异,而差异的大小可以作为衡量待测样本异常程度的指标。自编码器的结构一般由一个编码器和一个解码器组成,且两者的网络结构一般是对称的。其中,编码器在网络前向传播过程中一边不断缩小特征图的宽高尺寸一边增加其图像
通道维度,以此来删除冗余的信息。而解码器负责对特征进行解码,得到与输入图像相同大小的图像,通过对比计算输入的正常图像与重构的正常图像之间的差异来训练网络模型。而在此过程中最为常用的损失函数函数就是均方误差(mean square error,mse)。mse用重构前后图像中所有像素点上的像素值之差的平方均值来衡量图像重构的质量。训练结束后,由于瓶颈结构的存在,对于一些异常区域面积较小的样本,自编码器能够在图像编解码的过程中消除异常区域的影响,重构出一张正常图像作为参考,随后可以通过逐像素比较的方式得到异常区域,通过此方式不仅可以实现异常图像的检测还可以图像异常检测区域的定位,即定位到具体的异常的位置区域。
6.但是基于自编码器下图像重构的方法有一个比较明显的不足之处就是不管是训练还是测试阶段其重构出来的图像相对比较模糊,这就会引起网络模型把正常样本也重构为异常图像的可能。除了重构图像质量不高的问题,基于自编码器的方法还存在着无法保证完全消除输入图像中的异常区域的问题。当训练样本比较多样化时,自编码器会体现出强大的学习能力并对潜在的异常样本产生过强的适应能力。


技术实现要素:

7.本技术的目的是提供一种基于记忆网络的图像异常检测方法,用以接解决现有技术方案重构图像质量不高及无法保证完全消除输入图像中的异常区域的问题。
8.为了实现上述目的,本技术技术方案如下:
9.一种基于记忆网络的图像异常检测方法,包括:
10.构建图像异常检测网络模型,所述图像异常检测网络模型包括第一编码器、记忆网络和至少两个解码器,所述第一编码器采用神经网络vgg-16;
11.采用正常图像训练数据集训练所构建的图像异常检测网络模型,将训练样本输入到第一编码器中提取高维特征,在记忆网络中查询出与所述高维特征匹配的映射特征,然后将所述映射特征分别输入到解码器中重构图像,取与原训练样本协方差值最小的重构图像作为输出的重构图像,计算联合损失更新图像异常检测网络模型的参数,完成训练;
12.通过知识蒸馏提取基于第一编码器的轻量化第二编码器,将第一编码器后四个卷积块中的最大池化层作为知识蒸馏层传递给所述第二编码器,以所述第二编码器替换图像异常检测网络模型中的第一编码器,生成最终的图像异常检测网络模型;
13.将待检测图像输入到最终的图像异常检测网络模型,输出重构图像,计算输入待检测图像与重构图像的异常检测得分,判断输入的待检测图像是否异常。
14.进一步的,所述第二编码器在神经网络vgg-16基础上,将最后三个卷积块的最后一层卷积去掉,同时舍弃vgg-16最后的全连接层,并且将第一编码器vgg-16最后四个卷积块的最大池化层作为知识蒸馏层传递给所述第二编码器最后四个卷积块。
15.进一步的,所述在记忆网络中查询出与所述高维特征匹配的映射特征,包括:
16.将第一编码器提取的高维特征作为记忆网络的查询特征向量项集,将高维特征中每一个特征向量项作为查询特征向量项;
17.计算每个查询特征向量项与记忆网络中存储的所有原型特征向量项之间的匹配概率,然后计算原型特征向量项与其对应的匹配概率的加权平均值,作为查询得到的特征向量项,将所有查询得到的特征向量项组合为与输入高维特征匹配的映射特征。
18.进一步的,所述计算每个查询特征向量项与记忆网络中存储的所有原型特征向量项之间的匹配概率,计算公式如下:
[0019][0020]
其中,w
t,m
为计算得到的匹配概率,exp为以自然常数e为底的指数函数,pm表示原型特征向量项,q
t
表示查询特征向量项,m表示记忆网络中存储的原型特征向量项数量。
[0021]
进一步的,所述基于记忆网络的图像异常检测方法,还包括:
[0022]
将第一编码器提取的高维特征作为记忆网络的查询特征向量项集,将高维特征中每一个特征向量项作为查询特征向量项;
[0023]
计算记忆网络中存储的每个原型特征向量项与所有查询特征向量项之间的匹配概率v
t,m

[0024][0025]
其中,pm表示原型特征向量项,q
t
表示查询特征向量项,q为查询特征向量项的数量;
[0026]
将匹配概率v
t,m
进行标准化得到v

t,m
,标准化公式如下:
[0027][0028]
最后通过如下公式更新原型特征向量项:
[0029]
pm=f(pm ∑
t∈qv′
t,mqt
);
[0030]
其中f()是l2函数。
[0031]
进一步的,所述计算输入待检测图像与重构图像的异常检测得分,包括:
[0032]
计算待检测图像经过第二编码器后的每一个查询特征向量项与记忆网络中最佳匹配特征向量项之间的l2距离:
[0033][0034]
其中,q表示查询特征向量项的数量,q
t
表示查询特征向量项,ps表示记忆网络中最佳匹配原型特征向量项;
[0035]
计算待检测图像与重建图像的峰值信噪比:
[0036][0037]
其中,n为待检测图像中的像素数,x表示待检测图像,表示重构图像,表示求最佳重构图像;
[0038]
对l2距离和峰值信噪比进行归一化处理,然后计算两者的加权和,作为异常检测得分。
[0039]
进一步的,所述基于记忆网络的图像异常检测方法,还包括:
[0040]
计算输入图像x和输出图像之间的加权重建误差作为常规分数ε
t
,计算公式如下:
[0041][0042]
其中,w
t
(.)为权重函数,计算公式如下:
[0043][0044]
当分数ε
t
高于一个阈值γ时,将x视为异常图像,从而不使用它来更新记忆网络中原型特征向量项,否则使用它来更新记忆网络中原型特征向量项。
[0045]
进一步的,所述计算两者的加权和,作为异常检测得分,计算公式如下:
[0046][0047]
其中,g(.)为归一化操作,λ为权重系数,s
t
表示计算得到的异常检测得分。
[0048]
本技术提出的一种基于记忆网络的图像异常检测方法,在基于记忆网络的基础上,使用多解码器提高正常图像的重构质量,继而可以在检测异常样本的时候,异常样本也会按照正常样本来重构,继而突出异常图像的检测精度。借助知识蒸馏,将教师网络对正常样本的高度敏感特性,提炼给学生网络,使得学生网络在测试的时候依据保持对正常图像的敏感,但是遇到异常图像的时候,可以使得提取得到的特征与正常图像的特征相比有明显差异,从而得到的特征查询特征向量项多是异常特征。通过引入知识蒸馏轻量化特征提取网络模型改进编码器提高对异常图像的编码敏感程度和引入多解码器提高正常样本重构质量,实现一个有效的图像异常检测的方法。
附图说明
[0049]
图1为本技术基于记忆网络的图像异常检测方法流程图;
[0050]
图2为本技术实施例图像异常检测网络模型结构示意图;
[0051]
图3为本技术实施例编码器知识蒸馏示意图。
具体实施方式
[0052]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0053]
在一个实施例中,如图1所示,提出了一种基于记忆网络的图像异常检测方法,包括:
[0054]
步骤s1、构建图像异常检测网络模型,所述图像异常检测网络模型包括第一编码器、记忆网络和至少解码器,所述第一编码器采用vgg-16。
[0055]
本实施例中图像异常检测网络模型如图2所示,包括第一编码器(encoder)、记忆网络(memory module)和至少两个结构相同的解码器(decoder)。考虑到计算性能的开销,解码器优选的设置为三个。
[0056]
在一个具体的实施例中,第一编码器采用vgg-16,vgg-16为机器学习库pytorch中常用的一个神经网络,其往往自带了经过预训练的网络参数。本实施例各个解码器的网络可以同样采用vgg-16结构。
[0057]
步骤s2、采用正常图像训练数据集训练所构建的图像异常检测网络模型,将训练样本输入到第一编码器中提取高维特征,在记忆网络中查询出与所述高维特征匹配的映射
特征,然后将所述映射特征分别输入到解码器中重构图像,取与原训练样本协方差值最小的重构图像作为输出的重构图像,计算联合损失更新图像异常检测网络模型的参数,完成训练。
[0058]
本实施例采用的训练数据集以ucsd的ped2数据集为例子,ucsd的ped2数据集包含16个训练数据图像集和12个测试图像集,其中包括12个不规则事件,包括骑自行车和驾驶车辆。首先是对数据的预处理,将图像的尺寸调整为256
×
256
×
3,其中三个数值依次为图像的宽、图像的高和图像的通道数。以4个图像为一个批次作为编码器的输入,进行训练。
[0059]
在训练过程中,训练样本图像经过第一编码器以提取高维特征,特征的尺寸为14
×
14
×
512,作为记忆网络的查询特征向量项集,包括14
×
14个特征向量项。对于其中的任意一个特征向量项q
t
(t∈q,本实施例为14
×
14),在记忆网络中查询最相近的原型特征向量项。记忆网络保存正常数据所对应的特征向量项作为原型特征向量项,即如果输入的是正常数据,记忆网络会保存其对应的特征向量项,作为原型特征向量项,以备进行查询。
[0060]
记忆网络查询到最相近的原型特征向量项后,输出经查询得到的最相近的原型特征向量项。高维特征具有的14
×
14个特征向量项都经过查询后,将记忆网络输出的所有原型特征向量项组合为与输入高维特征匹配的映射特征,所述映射特征与高维特征尺寸相同。
[0061]
将得到的映射特征分别输入到各个解码器进行解码重构图像,再将得到的多个重构图像分别与原输入图像比较,取与原训练样本协方差值最小的重构图像作为输出的重构图像。在一个批次后,计算联合损失更新图像异常检测网络模型的参数,逐个批次的进行训练,直到网络收敛,完成训练。
[0062]
需要指出的是,在记忆网络中查询出与所述高维特征匹配的映射特征,可以直接将第一编码器提取的高维特征作为记忆网络的查询特征向量项集,即将高维特征中每一个特征向量项作为查询特征向量项,在记忆网络中查询最相近的原型特征向量项,然后记忆网络查询到最相近的原型特征向量项后,输出经查询得到的最相近的原型特征向量项,将记忆网络输出的所有原型特征向量项组合为与输入高维特征匹配的映射特征。
[0063]
在一个具体的实施例中,本技术在记忆网络中查询出与所述高维特征匹配的映射特征,包括:
[0064]
将第一编码器提取的高维特征作为记忆网络的查询特征向量项集,将高维特征中每一个特征向量项作为查询特征向量项;
[0065]
计算每个查询特征向量项与记忆网络中存储的所有原型特征向量项之间的匹配概率,然后计算原型特征向量项与其对应的匹配概率的加权平均值,作为查询得到的特征向量项,将所有查询得到的特征向量项组合为与输入高维特征匹配的映射特征。
[0066]
例如,记忆网络存储了m个1
×1×
512个原型特征向量项,记录了各种正常数据的最典型特征,本技术用pm∈m(m=1,

,m)表示记忆网络存储的一个原型特征向量项。
[0067]
本实施例首先计算每个查询特征向量项q
t
和原型特征向量项pm之间的匹配概率w
t,m
,计算公式如下:
[0068][0069]
其中,exp为以自然常数e为底的指数函数。
[0070]
对于每一个查询特征向量项q
t
,通过计算原型特征向量项pm与匹配概率w
t,m
的加权平均值,可得查询得到的特征向量项q
t

,计算公式如下:
[0071][0072]
在得到查询得到的特征向量项q
t

∈r
14
×
14
×
512
后,将他们汇总得到与与输入高维特征匹配的映射特征,再由解码器进行解码重构。
[0073]
本实施例使用所有的特征项而不是最接近的特征项,可以让本技术的网络模型理解不同的正常数据的特征分布,并考虑到整体的正常特征。也就是说,本技术使用记忆网络中原型特征向量项pm的组合来表示查询特征向量项q
t
。本实施例将读取操作应用于每一个查询特征向量项,得到一个转换后的特征映射项q
t

∈r
14
×
14
×
512
,将他们汇总再由解码器进行解码重构。这使得解码器能够利用记忆网络中的保存的正常样本的最典型特征项重构输入帧,从而使得重构的图像更加倾向于正常图像,减轻了解码器重构异常图像的能力。
[0074]
在一个具体的实施例中,记忆网络中需要存储正常数据所对应的特征向量项作为原型特征向量项,本实施例提供了一种记忆网络中原型特征向量项的更新方法,包括:
[0075]
将第一编码器提取的高维特征作为记忆网络的查询特征向量项集,将高维特征中每一个特征向量项作为查询特征向量项;
[0076]
计算记忆网络中存储的每个原型特征向量项与所有查询特征向量项之间的匹配概率v
t,m

[0077][0078]
其中,pm表示原型特征向量项,q
t
表示查询特征向量项,q为查询特征向量项的数量;
[0079]
将匹配概率v
t,m
进行标准化得到v

t,m
,标准化公式如下:
[0080][0081]
最后通过如下公式更新原型特征向量项:
[0082]
pm=f(pm ∑
t∈qv′
t,mqt
);
[0083]
其中f()是l2函数。
[0084]
本实施例对于每一个原型特征向量项,计算其与所有查询特征向量项之间的匹配概率,选择用所有的查询特征向量项去更新最接近的一个原型特征向量项。本技术通过使用查询特征向量项的加权平均值,而不是将它们汇总求和,可以更多地将注意力集中于原型特征向量项附近的查询特征向量项。
[0085]
本实施例联合损失包括重建损失l
rec
、特征紧凑性损失l
compact
和特征分离损失l
separateness
,同时加入权重系数λc和λs来平衡后两个损失函数的比重,计算公式如下:
[0086]
total
loss
=l
rec
λcl
compact
λsl
separateness
[0087]
图像重构损失计算公式如下:
[0088][0089]
[0090]
其中x1,x2,x3分别为三个解码器的输出,x为原输入图像。
[0091]
特征紧凑性(压缩)的损失计算公式如下:
[0092][0093]
其中s是查询q
t
对应的原型特征向量项中最匹配项的索引编号,计算公式为:
[0094][0095]
即ps表示记忆网络中最佳匹配原型特征向量项,也即匹配概率最大的原型特征向量项。
[0096]
特征分离损失函,类似的查询应该分配给相同的项,以减少项的数量和内存大小。使用特征压缩损失训练模型只会使所有内存特征项都很相似,因此所有查询特征项都被紧密地映射到嵌入空间中,从而失去了记录不同正常模式的能力。然而内存中的特征项之间应该足够远,以考虑正常数据的各种特征样式。为了防止在获得紧凑的特征表示时出现这个问题,设计一个特征分离损失,并使用α因子来调整特征分离损失函数,计算公式如下:
[0097][0098]
其中n为查询特征项q
t
的第二近索引号,计算公式如下:
[0099][0100]
步骤s3、通过知识蒸馏提取基于第一编码器的轻量化第二编码器,将第一编码器后四个卷积块中的最大池化层作为知识蒸馏层传递给所述第二编码器,以所述第二编码器替换图像异常检测网络模型中的第一编码器,生成最终的图像异常检测网络模型。
[0101]
本实施例对于训练好的第一编码器,通过知识蒸馏提取基于第一编码器的轻量化第二编码器。
[0102]
具体的,如图2所示,第一编码器为vgg-16(图2上),第二编码器是(图2下)在pytorch中提供的预训练的vgg-16基础上,将最后三个卷积块(conv2-conv4)的最后一层卷积去掉(由原来三个卷积层变为两个卷积层),同时舍弃vgg-16最后的全连接层,将14
×
14
×
512作为最后的网络输出。并且第一编码器vgg-16最后四个卷积块(conv1-conv4)的最大池化层作为知识蒸馏层传递给所述第二编码器最后四个卷积块。
[0103]
最终的图像异常检测网络模型中保留了训练好的图像异常检测网络模型中的记忆网络和解码器,每个解码器的网络结构层与训练时的编码器一致,这里不再赘述。
[0104]
步骤s4、将待检测图像输入到最终的图像异常检测网络模型,输出重构图像,计算输入待检测图像与重构图像的异常检测得分,判断输入的待检测图像是否异常。
[0105]
采用最终的图像异常检测网络模型来对输入的待检测图像进行检测,计算输入待检测图像与重构图像的异常检测得分,判断输入的待检测图像是否异常。
[0106]
其中,可以直接以输入待检测图像与重构图像的峰值信噪比psnr(peak signal to noise ratio)作为异常检测得分,当待检测图像为异常时,得到一个较低的psnr值,反之为正常的图像。
[0107]
在一个具体的实施例中,计算输入待检测图像与重构图像的异常检测得分,包括:
[0108]
计算待检测图像经过第二编码器后的每一个查询特征向量项与记忆网络中最佳匹配特征向量项之间的l2距离:
[0109][0110]
其中,q表示查询特征向量项的数量,q
t
表示查询特征向量项,ps表示记忆网络中最佳匹配特征向量项;
[0111]
计算待检测图像与重建图像的峰值信噪比:
[0112][0113]
其中,n为待检测图像中的像素数,x表示待检测图像,表示重构图像,表示求最佳重构图像;
[0114]
对l2距离和峰值信噪比进行归一化处理,然后计算两者的加权和,作为异常检测得分。
[0115]
具体的,异常检测得分s
t
计算公式如下:
[0116][0117]
g(.)为归一化操作,λ为权重系数,具体归一化公式为如下:
[0118][0119]
在计算得到异常检测得分后,与设定的阈值进行比较,将异常检测得分大于设定阈值的待检测图像判定为异常图像,否则判定为正常图像。
[0120]
需要指出的是,在训练好网络模型后,对网络模型进行测试或采用网络模型对待检测图像进行检测时,输入的有可能是正常图像或异常图像,为了扩充记忆网络中存储的原型特征向量项,还可以将正常图像所对应的特征向量项存储在记忆网络中,作为原型特征向量项。
[0121]
为此,本技术还包括:
[0122]
计算输入图像x和输出图像之间的加权重建误差作为常规分数ε
t
,计算公式如下:
[0123][0124]
其中,w(.)为权重函数,计算公式如下:
[0125][0126]
当分数ε
t
高于一个阈值γ时,将x视为异常图像,从而不使用它来更新记忆网络中原型特征向量项,否则使用它来更新记忆网络中原型特征向量项。关于如何更新记忆网络中原型特征向量项,在前面步骤中已经进行过阐述,这里不再赘述。
[0127]
本技术提出的异常检测方法,提高了基于解码器重构图像过程中正常图像的重构质量,继而可以提高异常检测的精度。
[0128]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献