本发明涉及异常检测技术领域,特别涉及一种基于计算机视觉的异常检测方法及装置。
背景技术:
计算机视觉(computervision)是指用摄影机和计算机代替人眼对目标进行识别、跟踪、测量等操作,也可以看作是研究如何使人工系统从图像或多维数据中感知的科学。异常检测(anomalydetection)是指对不符合预期模式或数据集中的其他项目的项目、事件或观测的识别,常用的领域包括数据挖掘和结构缺陷检测等。在工业生产中,一些需要检测的产品具备不同的特征,基于此,可以利用异常检测算法,对其进行基于计算机视觉的异常检测。
然而,现有的异常检测算法研究及应用中,主要是针对安检机之类的语义级别的异常检测,即当图片中出现了语义级别的异常时才能判断,而语义级别是将像素按照图像中表达语义含义的不同进行分组或分割的,比如安检机中检测违禁物品(枪支)时,违禁品异常通常占画面比例较高,且与画面中其他成分(如其他正常箱包)存在语义级的区别。而工业产品中的异常产品与正常产品不存在语义级别的差别,因而应用现有检测方法不能取得较好的效果。
技术实现要素:
鉴于现有技术异常检测算法不能很好应用于工业产品检测的问题,提出了本发明的一种基于计算机视觉的异常检测方法及装置,以便克服上述问题。
为了实现上述目的,本发明采用了如下技术方案:
依据本发明的一个方面,提供了一种基于计算机视觉的异常检测方法,该方法包括:
根据目标图片的不同区域特征,将目标图片划分为至少两个特征区域,利用各个目标图片对应的特征区域分别组成训练集;
选取对抗生成网络gan作为使用的网络模型,分别使用不同特征区域的训练集训练gan网络模型,得到对应不同特征区域的各gan网络模型;
执行异常检测时,对待测目标图片进行同样的特征区域划分,将待测目标图片的不同特征区域分别输入到对应的gan网络模型中,获得生成图片,对生成图片和待测目标图片进行基于像素值的差异检测。
可选地,所述利用各个目标图片对应的特征区域分别组成训练集,包括:
利用状态正常的目标图片的各特征区域分别组成训练集;
所述选取对抗生成网络gan作为使用的网络模型,分别使用不同特征区域的训练集训练gan网络模型,包括:
选取基于wasserstein距离的gan网络wgan作为使用的网络模型,利用训练集训练得到wgan网络模型,该wgan网络模型能够依据输入图片生成具有正常目标特征的图片。
可选地,所述根据目标图片的不同区域特征,将目标图片划分为至少两个特征区域,包括:
根据目标图片内容的多样性,将目标图片划分为低多样性区域和高多样性区域。
可选地,对生成图片和待测目标图片进行基于像素值的差异检测,包括:
对生成图片和待测目标图片对应的低多样性区域进行差异检测,当检测结果为异常时,停止计算,直接判定待测目标异常;
当检测结果为正常时,继续对生成图片和待测目标图片对应的高多样性区域进行差异检测。
可选地,所述对生成图片和待测目标图片进行基于像素值的差异检测,包括:
计算待测目标图片和生成图片低多样性区域的像素值差异,若计算结果不小于第一阈值,则判断待测目标图片低多样性区域异常,并停止计算,若计算结果小于第一阈值,则判断待测目标图片低多样性区域正常;
继续计算待测目标图片和生成图片高多样性区域的像素值差异,若计算结果不小于第二阈值,则判断待测目标图片高多样性区域异常,若计算结果小于第二阈值,则判断待测目标图片正常。
可选地,所述计算待测目标图片和生成图片低多样性区域的像素值差异,包括:计算待测目标图片与生成图片的每个像素值差值的二阶范数平方的平均值,将该平均值作为指示低多样性区域差异的计算结果;
所述计算待测目标图片和生成图片高多样性区域的像素值差异,包括:计算待测目标图片与生成图片的最大像素值差异和像素值累积差异;所述第二阈值为一组值,当所述最大像素值差异和所述像素值累积差异均不小于所述第二阈值中的对应值时,才认为计算结果不小于第二阈值,判断待测目标图片高多样性区域异常,其中,
最大像素值差异指示了单张待测目标图片与对应的生成图片的像素值差异的最大值;
像素值累积差异指示了属于同一待测目标的所有目标图片与对应的生成图片的像素值差异的累积值。
可选地,针对低多样性区域,采用如下第一公式计算每个像素值差值的二阶范数平方的平均值:
针对高多样性区域,采用如下第二公式计算待测目标图片与生成图片的最大像素值差异:
采用如下第三公式计算待测目标图片与生成图片的像素值累积差异:
在第二公式和第三公式中,(i,j)代表高多样性区域每张图片中各像素的坐标,m为高多样性区域总的图片张数。
可选地,所述方法还包括:
将状态正常的目标图片各特征区域训练集分别输入到训练后的gan网络模型,得到生成图片,计算低多样性区域中每个像素值差值的二阶范数平方的平均值,选取计算结果的中位数以上预设位置处的数值作为所述第一阈值;计算高多样性区域的最大像素值差异和像素值累积差异,分别选取计算结果的中位数以上的预设位置处的数值组成所述第二阈值。
可选地,该方法还包括:
在将目标图片输入gan网络模型之前,重置目标图片的分辨率,使目标图片调整至预设像素尺寸的整数倍,并按照预设像素尺寸将目标图片分割成多张图片。
依据本发明的另一个方面,提供了一种基于计算机视觉的异常检测装置,该装置包括:训练集生成模块、训练模块和检测模块;
所述训练集生成模块,用于根据目标图片的不同区域特征,将目标图片划分为至少两个特征区域,利用各个目标图片对应的特征区域分别组成训练集;
所述训练模块,用于选取对抗生成网络gan作为使用的网络模型,分别使用不同特征区域的训练集训练gan网络模型,得到对应不同特征区域的各gan网络模型;
所述检测模块,用于对待测目标图片进行同样的特征区域划分,将待测目标图片的不同特征区域分别输入到对应的gan网络模型中,获得生成图片,对生成图片和待测目标图片进行基于像素值的差异检测。
可选地,所述训练集生成模块,用于根据目标图片内容的多样性,将目标图片划分为低多样性区域和高多样性区域;
所述检测模块,用于对生成图片和待测目标图片对应的低多样性区域进行差异检测,当检测结果为异常时,停止计算,直接判定待测目标异常;当检测结果为正常时,继续对生成图片和待测目标图片对应的高多样性区域进行差异检测。
可选地,所述检测模块,具体用于:计算待测目标图片和生成图片低多样性区域的像素值差异,若计算结果不小于第一阈值,则判断待测目标图片低多样性区域异常,并停止计算,若计算结果小于第一阈值,则判断待测目标图片低多样性区域正常,继续计算待测目标图片和生成图片高多样性区域的像素值差异,若计算结果不小于第二阈值,则判断待测目标图片高多样性区域异常,若计算结果小于第二阈值,则判断待测目标图片正常。
综上所述,本发明的有益效果是:
本申请通过划分目标图片的不同特征区域获得训练集,训练得到对应各特征区域的gan网络模型,借助训练后的gan网络模型,可以输入待测目标图片各特征区域得到生成图片,继而通过对生成图片和待测目标图片进行基于像素值的差异检测,判断待测目标是否正常,由于本申请对目标图片进行了不同特征区域的划分和像素级别的差异检测,因而提高了判断目标正常与否的准确度。
附图说明
图1为本发明一个实施例提供的基于计算机视觉的异常检测方法的流程示意图;
图2为本发明一个实施例提供的wgan网络模型训练流程示意图;
图3为本发明一个实施例提供的网格状目标图片切割示意图;
图4为本发明图3所示切割示意图的中央区域和边缘区域划分示意图;
图5为本发明一个实施例提供的基于中央区域和边缘区域的wgan网络模型检测流程示意图;
图6为本发明一个实施例提供的基于计算机视觉的异常检测方法的异常检测判定流程图;
图7为本发明一个实施例提供的基于计算机视觉的异常检测装置的结构示意图;
图8为本发明另一个实施例提供的基于计算机视觉的异常检测装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本申请的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
本发明的技术构思是:通过划分目标图片的不同特征区域来获得训练集,训练得到对应各特征区域的gan网络模型,借助训练后的gan网络模型,可以输入待测目标图片各特征区域得到生成图片,继而通过对生成图片和待测目标图片进行基于像素值的差异检测,判断待测目标是否正常,由于本申请对目标图片进行了不同特征区域的划分和像素级别的差异检测,因而提高了判断目标正常与否的准确度。
图1为本发明一个实施例提供的基于计算机视觉的异常检测方法的流程示意图。如图1所示,一种基于计算机视觉的异常检测方法,该方法包括:
步骤s110:根据目标图片的不同区域特征,将目标图片划分为至少两个特征区域,利用各个目标图片对应的特征区域分别组成训练集。
由于工业生产中,需要检测的产品不同区域具有不同的特征,基于此,本申请首先将目标图片划分成不同的特征区域,对各特征区域分别处理,根据各特征区别是否正常来综合判断目标产品是否正常。
步骤s120:选取对抗生成网络gan作为使用的网络模型,分别使用不同特征区域的训练集训练gan网络模型,得到对应不同特征区域的各gan网络模型。
基于对抗生成网络gan(generativeadversarialnetwork),包括生成器g和鉴别器d(见图2)。训练完成后的gan网络模块中,生成器g首先根据输入原图(真实图片x)重建获得生成图片(如生成图片g(z)),然后将生成图片送入鉴别器d中进行判断,若原图和重建的生成图片差别很大,则可以判断原图异常,也就是说,通过计算原图和重建的生成图片的差异即可判定目标正常与否。本申请针对目标划分后的两个以上特征区域,分别训练得到对应的gan网络模型,从而可以对待测目标图片的各特征区域分别进行全面的差异检测。
步骤s130:执行异常检测时,对待测目标图片进行同样的特征区域划分,将待测目标图片的不同特征区域分别输入到对应的gan网络模型中,获得生成图片,对生成图片和待测目标图片进行基于像素值的差异检测。
由于本申请对待测目标图片进行了同样的特征区域划分,并且利用训练得到的对应gan网络模型分别对待测目标图片的各特征区域进行像素级别的差异检测,从而可以充分检测待测目标图片各个特征区域是否存在异常,根据各个特征区域正常与否的结果,综合判断待测目标是否正常,因而提高了判断目标正常与否的准确度。
在本申请的一个实施例中,步骤s110中,利用各个目标图片对应的特征区域分别组成训练集,包括:利用状态正常的目标图片的各特征区域分别组成训练集。
步骤s120中,选取对抗生成网络gan作为使用的网络模型,分别使用不同特征区域的训练集训练gan网络模型,包括:选取基于wasserstein距离的gan网络wgan作为使用的网络模型,利用训练集训练得到wgan网络模型,该wgan网络模型能够依据输入图片生成具有正常目标特征的图片。
本实施例中,选择状态正常的目标图片的各特征区域构成训练集,以此训练生成wgan网络模型,由于wgan网络模型没有经过异常图片的训练,因此异常检测时就只能生成具有正常目标特征的生产图片,从而当输入的待测目标图片异常时,生成图片与输入的待测目标原图差别很大,根据对二者基于像素值的差异检测就可以准确判断待测目标异常。
在本申请的一个实施例中,根据目标图片的不同区域特征,将目标图片划分为至少两个特征区域,包括:根据目标图片内容的多样性,将目标图片划分为低多样性区域和高多样性区域。
本实施例中,根据目标图片内容的多样性不同,分别划分目标图片的低多样性区域和高多样性区域,低多样性区域和高多样性区域的数量可以分别为一个或多个。参考图3所示,以网布等网格状产品为例,通常网格中央部分的图案较为均匀一致,而边缘图案则存在变形,因此,本实施例将目标的中央区域划分为低多样性区域,将目标的边缘区域划分为高多样性区域,高多样性区域涵盖的图像信息的复杂度大于低多样性区域涵盖的图像信息的复杂度。参考图4所示,图3分割示意图中最外侧一圈划分为高多样性区域,内部划分为低多样性区域。
继而,如本申请图5所示,本实施例训练得到的wgan网络模型也对应包括中央区域wgan模型和边缘区域wgan模型,在对待测目标图片进行基于计算机视觉的异常检测时,将待测目标图片也进行中央区域和边缘区域的划分,并分别使用对应的wgan模型对待测目标图片的中央区域和边缘区域进行异常检测,其检测结果经过综合处理后,实现对待测目标正常与否的最终判断。
在本申请的一个实施例中,该方法还包括图片预处理,以应对gan模型处理图片的尺寸限制,包括:在将目标图片输入gan网络模型之前,重置目标图片的分辨率,使目标图片调整至预设像素尺寸的整数倍,并按照预设像素尺寸将目标图片分割成多张图片。
gan网络受制于生成空间不能过大,否则会造成网络不稳定,因此生成的图片大小最多稳定在64x64尺寸大小,而实际检测中的图片多数远大于这个数值。因此,本申请在将目标图片输入gan网络模型前,对原图片进行整数化和切割处理,首先将原图的分辨率重置为64的整数倍,然后裁切成数个64x64尺寸的小图(见图3、4所示),经过切割后每张小图足以采用64x64的大小完整显示。当然,这里的64x64尺寸仅是示意性实施例,实际应用中,也可根据需要,选择不同的预设像素尺寸,在此不再赘述。
在本申请的一个实施例中,对生成图片和待测目标图片进行基于像素值的差异检测,包括:
对生成图片和待测目标图片对应的低多样性区域进行差异检测,当检测结果为异常时,停止计算,直接判定待测目标异常;当检测结果为正常时,继续对生成图片和待测目标图片对应的高多样性区域进行差异检测。也就是说,在本实施例中,优先检测待测目标图片的低多样性区域正常与否,在检测确认低多样性区域正常后,才进行高多样性区域的检测。
由于低多样性区域中,目标图片的变化不多,多样性不高,因此即使是极细微的异常也会引起gan模型重构生成图片与输入原图之间的显著差异,因此,因此本实施例首先对低多样性区域进行差异检测,若判断低多样性区域异常,则直接判断待测目标异常,停止计算,若判断低多样性区域正常,再进一步对高多样性区域进行差异检测,这样可以使异常检测过程更加简单和准确。
如图6所示,仍以中央-边缘划分的特征区域为例,本实施例输入待测图到gan网络模型,生成重建图后,首先判定中央区域(低多样性区域)是否正常,若异常则直接判断待测目标异常,停止计算;若判定中央区域正常,再进一步判定边缘区域(高多样性区域)是否正常,若高多样性区域也正常,则可以判定待测目标正常,若高多样性区域异常,则判定待测目标异常。
在本申请的一个实施例中,对生成图片和待测目标图片进行基于像素值的差异检测,包括:
计算待测目标图片和生成图片低多样性区域的像素值差异,若计算结果不小于第一阈值,则判断待测目标图片低多样性区域异常,并停止计算,若计算结果小于第一阈值,则判断待测目标图片低多样性区域正常;继续计算待测目标图片和生成图片高多样性区域的像素值差异,若计算结果不小于第二阈值,则判断待测目标图片高多样性区域异常,若计算结果小于第二阈值,则判断待测目标图片正常。
在优选实施例中,计算待测目标图片和生成图片低多样性区域的像素值差异,包括:计算待测目标图片与生成图片的每个像素值差值的二阶范数平方的平均值,将该平均值作为指示低多样性区域差异的计算结果。
具体地,针对低多样性区域,可以采用如下第一公式计算每个像素值差值的二阶范数平方的平均值:
由于高多样性区域具有更高的多样性,因此生成图片的重构精度不如低多样性区域,对此,本实施例采用另一种评价体系计算高多样性区域的像素值差异。
优选地,计算待测目标图片和生成图片高多样性区域的像素值差异,包括:计算待测目标图片与生成图片的最大像素值差异和像素值累积差异;第二阈值为一组值,当最大像素值差异和像素值累积差异均不小于第二阈值中的对应值时,才认为计算结果不小于第二阈值,判断待测目标图片高多样性区域异常,其中,最大像素值差异指示了单张待测目标图片与对应的生成图片的像素值差异的最大值;像素值累积差异指示了属于同一待测目标的所有目标图片与对应的生成图片的像素值差异的累积值。
具体地,针对高多样性区域,采用如下第二公式计算待测目标图片与生成图片的最大像素值差异:
采用如下第三公式计算待测目标图片与生成图片的像素值累积差异:
在第二公式和第三公式中,(i,j)代表高多样性区域每张图片中各像素的坐标,m为高多样性区域总的图片张数。
综合第二公式和第三公式即可判定高多样性区域是否为异常。其中,lbmax可以体现高多样性区域内,单张图片的像素值最大差异,lbsum可以体现整个高多样性区域的像素值累积差异。由于高多样性区域的生成图片精确程度不如低多样性区域,因此如果仍采用与低多样性区域同一判定方式会造成过多的误判,将正常的图片判为异常。所以,本实施例设计这种双重损失函数叠加的方式,仅有当高多样性区域的像素值累积差异和单张图片的像素值最大差异均达到对应阈值时,才判定待测目标异常,这样可以保证目标图片分割后每张小图的最大异常和连续跨越多张小图的微小异常均能够被识别。对应地,第二阈值为一组值,分别针对lbmax和lbsum设置两个阈值,当lbmax和lbsum全都不小于对应阈值时即判定高多样性区域为异常。
在本申请的一个实施例中,方法还包括利用状态正常的图片训练集确定第一阈值和第二阈值的步骤,包括:
将状态正常的目标图片各特征区域训练集分别输入到训练后的gan网络模型,得到生成图片,计算低多样性区域中每个像素值差值的二阶范数平方的平均值,选取计算结果的中位数以上预设位置处的数值作为第一阈值;计算高多样性区域的最大像素值差异和像素值累积差异,分别选取计算结果的中位数以上的预设位置处的数值组成第二阈值。优选地,在本实施例中,分别选取计算结果的中位数以上的15%或者20%或者25%位置处的数值作为对应阈值。
本申请还公开了一种基于计算机视觉的异常检测装置,如图7所示,该装置包括:训练集生成模块710、训练模块720和检测模块730。
训练集生成模块710,用于根据目标图片的不同区域特征,将目标图片划分为至少两个特征区域,利用各个目标图片对应的特征区域分别组成训练集。
训练模块720,用于选取对抗生成网络gan作为使用的网络模型,分别使用不同特征区域的训练集训练gan网络模型,得到对应不同特征区域的各gan网络模型。
检测模块730,用于对待测目标图片进行同样的特征区域划分,将待测目标图片的不同特征区域分别输入到对应的gan网络模型中,获得生成图片,对生成图片和待测目标图片进行基于像素值的差异检测。
在本申请的一个实施例中,训练集生成模块710,用于根据目标图片内容的多样性,将目标图片划分为低多样性区域和高多样性区域。
检测模块730,用于对生成图片和待测目标图片对应的低多样性区域进行差异检测,当检测结果为异常时,停止计算,直接判定待测目标异常;当检测结果为正常时,继续对生成图片和待测目标图片对应的高多样性区域进行差异检测。
在本申请的一个实施例中,训练集生成模块710,具体用于利用状态正常的目标图片的各特征区域分别组成训练集。
训练模块720,具体用于选取基于wasserstein距离的gan网络wgan作为使用的网络模型,利用训练集训练得到wgan网络模型,该wgan网络模型能够依据输入图片生成具有正常目标特征的图片。
在本申请的一个实施例中,训练集生成模块710,用于根据目标图片内容的多样性,将目标图片划分为低多样性区域和高多样性区域。
在本申请的一个实施例中,训练集生成模块710以及检测模块730,还用于在将目标图片输入gan网络模型之前,重置目标图片的分辨率,使目标图片调整至预设像素尺寸的整数倍,并按照预设像素尺寸将目标图片分割成多张图片。
在本申请的一个实施例中,检测模块730,具体用于:计算待测目标图片和生成图片低多样性区域的像素值差异,若计算结果不小于第一阈值,则判断待测目标图片低多样性区域异常,并停止计算,若计算结果小于第一阈值,则判断待测目标图片低多样性区域正常,继续计算待测目标图片和生成图片高多样性区域的像素值差异,若计算结果不小于第二阈值,则判断待测目标图片高多样性区域异常,若计算结果小于第二阈值,则判断待测目标图片正常。
在本申请的一个实施例中,检测模块730,具体用于:计算待测目标图片与生成图片的每个像素值差值的二阶范数平方的平均值,将该平均值作为指示低多样性区域差异的计算结果。以及,计算待测目标图片与生成图片的最大像素值差异和像素值累积差异;其中,第二阈值为一组值,当最大像素值差异和像素值累积差异均不小于第二阈值中的对应值时,才认为计算结果不小于第二阈值,判断待测目标图片高多样性区域异常,最大像素值差异指示了单张待测目标图片与对应的生成图片的像素值差异的最大值;像素值累积差异指示了属于同一待测目标的所有目标图片与对应的生成图片的像素值差异的累积值。
具体地,针对低多样性区域,检测模块730可以采用如下第一公式计算每个像素值差值的二阶范数平方的平均值:
针对高多样性区域,检测模块730可以采用如下第二公式计算待测目标图片与生成图片的最大像素值差异:
采用如下第三公式计算待测目标图片与生成图片的像素值累积差异:
在第二公式和第三公式中,(i,j)代表高多样性区域每张图片中各像素的坐标,m为高多样性区域总的图片张数。
图8示出了本申请基于计算机视觉的异常检测装置的另一个实施例,如图8所示,该装置包括:训练集生成模块810、训练模块820、检测模块830以及阈值确定模块840。
阈值确定模块840,用于将状态正常的目标图片各特征区域训练集分别输入到训练后的gan网络模型,得到生成图片,计算低多样性区域中每个像素值差值的二阶范数平方的平均值,选取计算结果的中位数以上预设位置处的数值作为第一阈值;计算高多样性区域的最大像素值差异和像素值累积差异,分别选取计算结果的中位数以上的预设位置处的数值组成第二阈值。优选地,在本实施例中,分别选取计算结果的中位数以上的20%位置处的数值作为对应阈值。
本申请基于计算机视觉的异常检测装置的工作原理,与上述基于计算机视觉的异常检测方法对应相同,具体使用的公式以及参数选择,可以参考上述方法实施例的介绍,在此不再赘述。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。