掌桥专利:专业的专利平台
掌桥专利
首页

图像异常检测方法及装置、存储介质、电子设备

文献发布时间:2023-06-19 16:09:34



技术领域

本公开涉及图像处理技术领域,尤其涉及一种图像异常检测方法与图像异常检测装置、计算机可读存储介质及电子设备。

背景技术

随着计算机和移动端智能机的普及,游戏已经成为一种越来越普遍的娱乐形式。随着游戏市场规模的不断扩大,如果提高游戏品质,以及减少游戏中存在的bug(漏洞)是各大游戏厂商日益关注的问题。在游戏测试过程中,大部分的bug都是由视觉感知到的,例如模型缺失、画面花屏、颜色异常以及额外加载等bug。图像显示类bug是直接影响用户体验的关键元素之一,因此在测试过程中受到极大的重视。无论是回归测试,或者是兼容性测试都不可避免。

通常,通过基于机器学习或者是基于深度学习的图像异常检测算法进行检测。但是,现有的图像异常检测算法会由于样本收集耗费大量的人力成本。即使如此,游戏场景下也只能收集到很多正常样本,异常样本过少,因此,会由于样本极度不平衡导致图像异常检测算法的泛化性能不佳。进一步的,游戏场景下的图像异常检测算法对于新游戏难以适用,且无法对小尺寸图像进行异常捕捉,通用性很差,且不具备高召回率。

鉴于此,本领域亟需开发一种新的图像异常检测方法及装置。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开的目的在于提供一种图像异常检测方法、图像异常检测装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的异常检测结果差和通用性差的技术问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本发明实施例的第一个方面,提供一种图像异常检测方法,所述方法包括:

获取正常样本,并提取所述正常样本的图像块特征建立正样本特征库;

获取待测图像的待测特征,并计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离;

对所述特征距离进行异常得分计算得到所述待测图像的异常得分,并根据所述异常得分确定所述待测图像的异常检测结果。

在本发明的一种示例性实施例中,所述提取所述正常样本的图像块特征建立正样本特征库,包括:

利用卷积神经网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库。

在本发明的一种示例性实施例中,所述利用卷积神经网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库,包括:

利用卷积神经网络中的残差网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库。

在本发明的一种示例性实施例中,所述利用卷积神经网络中的残差网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库,包括:

对所述正常样本进行三组卷积运算得到第一特征图,并对所述第一特征图进行多层卷积运算得到第二特征图;

对所述第一特征图和所述第二特征图进行特征通道融合得到图像块特征,并利用所述图像块特征建立正样本特征库。

在本发明的一种示例性实施例中,所述计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用暴力检索算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述利用暴力检索算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用暴力检索算法计算所述待测特征与所述正样本特征库中的图像块特征之间的第一欧式距离作为特征距离。

在本发明的一种示例性实施例中,所述计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述利用乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

对所述正样本特征库中的图像块特征进行切分得到样本子空间,并对所述样本子空间进行编码得到编码标识;

对所述待测特征进行切分得到待测子空间,并计算所述待测子空间与所述样本子空间之间的距离得到距离表;

利用所述编码标识在所述距离表中查询子距离,并对所述子距离进行距离汇总计算得到特征距离。

在本发明的一种示例性实施例中,所述计算所述待测子空间与所述样本子空间之间的距离得到距离表,包括:

计算所述待测子空间与所述样本子空间之间的第二欧式距离,并根据所述第二欧式距离生成距离表。

在本发明的一种示例性实施例中,所述计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用倒排乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述利用倒排乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

对所述正样本特征库中的图像块特征进行聚类得到聚类中心,并根据所述待测特征在所述聚类中心中确定目标聚类中心;

对所述待测特征和所述目标聚类中心进行残差计算得到残差向量,并基于所述残差向量,利用所述乘积量化算法计算所述待测特征和所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述根据所述待测特征在所述聚类中心中确定目标聚类中心,包括:

计算所述待测特征和所述聚类中心之间的第三欧式距离,并对所述第三欧式距离进行比较得到距离比较结果;

根据所述距离比较结果在所述聚类中心中确定目标聚类中心。

在本发明的一种示例性实施例中,所述对所述特征距离进行异常得分计算得到所述待测图像的异常得分,包括:

在所述待测图像的待测特征对应的特征距离中确定初始距离,并在所述初始距离中确定与所述正样本特征库关联的目标距离;

对所述目标距离进行计算得到异常权重,并对所述异常权重和所述初始距离进行异常得分计算得到异常得分。

在本发明的一种示例性实施例中,所述在所述待测图像的待测特征对应的特征距离中确定初始距离,包括:

对所述待测图像的待测特征对应的特征距离进行比较得到特征比较结果;

根据所述特征比较结果在所述待测图像的待测特征对应的特征距离中确定初始距离。

在本发明的一种示例性实施例中,所述在所述初始距离中确定与所述正样本特征库关联的目标距离,包括:

获取与所述初始距离对应的目标数量,并对所述初始距离进行比较得到异常比较结果;

基于所述目标数量,根据所述异常比较结果在所述初始距离中确定与所述正样本特征库关联的目标距离。

在本发明的一种示例性实施例中,所述根据所述异常得分确定所述待测图像的异常检测结果,包括:

获取与所述异常得分对应的异常阈值,并将所述异常得分与所述异常阈值进行比较得到阈值比较结果;

根据所述阈值比较结果确定所述待测图像的异常检测结果。

在本发明的一种示例性实施例中,在所述根据所述异常得分确定所述待测图像的异常检测结果之后,所述方法还包括:

若所述异常检测结果为所述待测图像异常,根据所述异常得分生成所述待测图像的异常得分图;

对所述异常得分图进行归一化处理得到归一化图像,并对所述归一化图像进行灰度化处理得到灰度图;

利用伪彩色函数生成与所述灰度图对应的彩色热力图,并对所述彩色热力图和所述待测图像进行融合处理得到检测结果图像。

在本发明的一种示例性实施例中,所述对所述异常得分图进行归一化处理得到归一化图像,包括:

对所述异常得分图进行图像拉伸处理得到拉伸图像;

对所述拉伸图像进行滤波处理得到滤波图像,并对所述滤波图像进行归一化处理得到归一化图像。

根据本发明实施例的第二个方面,提供一种图像异常检测装置,包括:

特征提取模块,被配置为获取正常样本,并提取所述正常样本的图像块特征建立正样本特征库;

距离计算模块,被配置为获取待测图像的待测特征,并计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离;

异常检测模块,被配置为对所述特征距离进行异常得分计算得到所述待测图像的异常得分,并根据所述异常得分确定所述待测图像的异常检测结果。

根据本发明实施例的第三个方面,提供一种电子设备,包括:处理器和存储器;其中,存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意示例性实施例中的图像异常检测方法。

根据本发明实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意示例性实施例中的图像异常检测方法。

由上述技术方案可知,本公开示例性实施例中的图像异常检测方法、图像异常检测装置、计算机存储介质及电子设备至少具备以下优点和积极效果:

在本公开的示例性实施例提供的方法及装置中,只需获取正常样本,且无需对正常样本进行数据标注,避免了因无法采集到异常样本带来的样本极度不平衡问题,进一步避免了样本采集过程中带来的泛化性能弱的问题,同时提升了不同应用场景下的异常检测方法的通用性,也解决了样本采集和数据标注带来的人力成本过度消耗问题。并且,提取正常样本的图像块特征和待测图像的待测特征进行异常检测,适用于任意尺寸待测图像的异常检测,提升了任意场景下的图像异常检测的准确性,也使得异常检测方式具备高召回率和强适应性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出本公开示例性实施例中一种图像异常检测方法的流程示意图;

图2示意性示出了本公开示例性实施例中一张正常样本的界面示意图;

图3示意性示出了本公开示例性实施例中一张待测图像的界面示意图;

图4示意性示出本公开示例性实施例中利用卷积神经网络提取图像块特征的图像示意图;

图5示意性示出了本公开示例性实施例中利用残差网络提取图像块特征的方法的流程示意图;

图6示意性示出本公开示例性实施例中残差网络的网络结构示意图;

图7示意性示出本公开示例性实施例中正样本特征库中的图像块特征的界面示意图;

图8示意性示出本公开示例性实施例中提取到的待测图像的待测特征的界面示意图;

图9示意性示出本公开示例性实施例中利用暴力检索算法计算特征距离的方法的结构示意图;

图10示意性示出本公开示例性实施例中利用乘积量化算法计算特征距离的方法的流程示意图;

图11示意性示出本公开示例性实施例中利用倒排乘积量化算法计算特征距离的方法的流程示意图;

图12示意性示出本公开示例性实施例中确定目标聚类中心的方法的流程示意图;

图13示意性示出本公开示例性实施例中计算异常得分的方法的流程示意图;

图14示意性示出本公开示例性实施例中确定初始距离的方法的流程示意图;

图15示意性示出本公开示例性实施例中确定目标距离的方法的流程示意图;

图16示意性示出本公开示例性实施例中确定异常检测结果的方法的流程示意图;

图17示意性示出本公开示例性实施例中生成检测结果图像的方法的流程示意图;

图18示意性示出本公开示例性实施例中异常得分图的界面示意图;

图19示意性示出本公开示例性实施例中对异常得分图进行归一化处理的方法的流程示意图;

图20示意性示出本公开示例性实施例中应用场景下图像异常检测方法的流程示意图;

图21示意性示出本公开示例性实施例中利用乘积量化算法计算特征距离的方法的界面示意图;

图22示意性示出本公开示例性实施例中应用场景下利用倒排乘积量化算法计算特征距离的方法的界面示意图;

图23示意性示出本公开示例性实施例中应用场景下第一个检测结果图像的示意图;

图24示意性示出本公开示例性实施例中应用场景下第二个检测结果图像的示意图;

图25示意性示出本公开示例性实施例中应用场景下第三个检测结果图像的示意图;

图26示意性示出本公开示例性实施例中应用场景下第四个检测结果图像的示意图;

图27示意性示出本公开示例性实施例中应用场景下第五个检测结果图像的示意图;

图28示意性示出本公开示例性实施例中应用场景下第六个检测结果图像的示意图;

图29示意性示出本公开示例性实施例中应用场景下第七个检测结果图像的示意图;

图30示意性示出本公开示例性实施例中应用场景下第八个检测结果图像的示意图;

图31示意性示出本公开示例性实施例中应用场景下第九个检测结果图像的示意图;

图32示意性示出本公开示例性实施例中应用场景下第十个检测结果图像的示意图;

图33示意性示出本公开示例性实施例中一种图像异常检测装置的结构示意图;

图34示意性示出本公开示例性实施例中一种用于实现图像异常检测方法的电子设备;

图35示意性示出本公开示例性实施例中一种用于实现图像异常检测方法的计算机可读存储介质。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。

随着计算机和移动端智能机的普及,游戏已经成为一种越来越普遍的娱乐形式。随着游戏市场规模的不断扩大,如果提高游戏品质,以及减少游戏中存在的bug是各大游戏厂商日益关注的问题。在游戏测试过程中,大部分的bug都是由视觉感知到的,例如模型缺失、画面花屏、颜色异常以及额外加载等bug。图像显示类bug是直接影响用户体验的关键元素之一,因此在测试过程中受到极大的重视。无论是回归测试,或者是兼容性测试都不可避免。

现有的图像异常检测算法一般分为两种,第一种是基于机器学习的方法,第二种是基于深度学习的方法。

基于机器学习的方法一般将图像异常检测任务视为分类任务的一种,采用支持向量机(Support Vector Machines,SVM)等分类算法,构建划分正常图像样本以及异常图像样本的超平面,获得理想的图像异常检测效果。

基于深度学习的图像异常检测方法则有多种任务形态,可以图像异常检测问题视为深度学习领域中常见的图像分类问题、图像分割问题或者目标检测问题。通过收集大量正常样本以及异常样本的数据,对图像数据进行二分类的样本标记,或者对于图像异常区域进行像素级图像分割标记以及目标检测标记,采用深度学习网络对特定任务进行训练,达到对图像异常检测的目的。

除此之外,也可以结合深度学习中的自编码器模型,将正常图像作为网络训练样本,通过图像重构误差的大小,判断图像异常与否,达到图像异常检测的目的。

现有的图像异常检测方法大多基于有训练、有监督的传统机器学习或者深度学习方法,在游戏场景下应用会存在多种问题。

有训练的图像异常检测方法需要大量有标记的数据样本对模型或者网络进行训练,图像样本的收集以及标签标注需要大量人力。

游戏场景下的图像异常检测问题是一个极度的样本不平衡问题,即正常样本极多,而异常样本极少。有训练、有监督的图像异常检测方法对于极度样本不平衡问题的训练难以有很好的泛化性能。

游戏场景丰富多彩,每一款游戏都有不同的美术风格,无法收集到所有游戏场景的图像异常检测样本。基于已有游戏数据训练出来的模型,对于新游戏的泛化能力较差,难以适用,需要基于新游戏重新标注数据,并调整模型,不具备通用性。

游戏场景下的图像异常bug或大或小,基于图像整体特征进行图像异常的判断,对于大型图像bug或许适用,但是,对于较小的图像异常难以捕捉,不具备较高召回率。

大多传统机器学习以及深度学习方法将图像异常检测问题视为图像二分类问题,这样的图像分类结果不具备较强的可解释性。人工对检测结果进行核验时,无法定位到图像异常的位置,无法理解模型判断的原因,对于人工核验图像显示bug的工作帮助较小。

针对相关技术中存在的问题,本公开提出了一种图像异常检测方法。图1示出了图像异常检测方法的流程图,如图1所示,图像异常检测方法至少包括以下步骤:

步骤S110.获取正常样本,并提取正常样本的图像块特征建立正样本特征库。

步骤S120.获取待测图像的待测特征,并计算待测特征与正样本特征库中的图像块特征之间的特征距离。

步骤S130.对特征距离进行异常得分计算得到待测图像的异常得分,并根据异常得分确定待测图像的异常检测结果。

在本公开的示例性实施例中,只需获取正常样本,且无需对正常样本进行数据标注,避免了因无法采集到异常样本带来的样本极度不平衡问题,进一步避免了样本采集过程中带来的泛化性能弱的问题,同时提升了不同应用场景下的异常检测方法的通用性,也解决了样本采集和数据标注带来的人力成本过度消耗问题。并且,提取正常样本的图像块特征和待测图像的待测特征进行异常检测,适用于任意尺寸待测图像的异常检测,提升了任意场景下的图像异常检测的准确性,也使得异常检测方式具备高召回率和强适应性。

下面对图像异常检测方法的各个步骤进行详细说明。

在步骤S110中,获取正常样本,并提取正常样本的图像块特征建立正样本特征库。

在本公开的示例性实施例中,图像异常显示bug是指与正常预期不同的表现。人工判断图像异常显示bug的前提是获知正常图像的状态,再与待测图像进行比对,以发现是否存在异常和异常产生的位置。

借鉴人工鉴定图像异常显示bug的思路,可以收集多张正常样本图像(先验视频段)作为正常样本。

图2示出了一张正常样本的界面示意图,如图2所示,该正常样本能够展示正常图像的状态,作为对待测图像是否异常的检测基准。

进而,图3示出了一张待测图像的界面示意图,如图3所示,获取待测图像(待测视频段),并将该待测图像与正常样本进行比对,以比较是否存在异常以及异常出现的位置。

由于图像异常显示bug的大小不确定,bug可能是大型的区别,例如背景变化;也可能是较小的区别,例如模型影子缺失等,因此,不可以采用图像全局特征比对的方式检测是否存在bug。亦即,由于正样本库和待测图像无法做到像素级别对齐,因此可以利用深度学习网络提取图像块特征进行比对,以判断每一块图像是否存在异常。

具体的,可以先提取正常样本的图像块特征,以建立正样本特征库。

在可选的实施例中,利用卷积神经网络提取正常样本的图像块特征,以利用图像块特征建立正样本特征库。

其中,卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算,且具有深度结构的前馈神经网络,是深度学习的代表算法之一。

卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络”。

卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程要求。

图4示出了利用卷积神经网络提取图像块特征的图像示意图,如图4所示,利用卷积神经网络提取正常样本的图像块(patch)特征时,正常样本经过卷积神经网络进行下采样得到形状为(H,W,C)的图像块特征的特征图。亦即,将正常样本的原始图像分为H×W个块,每一个块的特征维度为C。

至此,每一块特征对应正常样本的原始图像的对应位置的特征。例如,右侧(H,W,C)图像中的特征①、特征②、特征③和特征④分别对应正常样本的原始图像中的区域①、区域②、区域③和区域④。

在将采集到的正常样本的图像块特征全部提取完毕之后,可以利用所有提取到的图像块特征生成对应的正样本特征库。

进一步的,还可以采用卷积神经网络中的残差网络提取正常样本的图像块特征。

在可选的实施例中,利用卷积神经网络中的残差网络提取正常样本的图像块特征,以利用图像块特征建立正样本特征库。

Resnet是残差网络(Residual Network)的缩写,该系列网络广泛用于目标分类等领域以及作为计算机视觉任务主干经典神经网络的一部分,典型的网络有resnet50,resnet101等。Resnet网络的证明网络能够向更深(包含更多隐藏层)的方向发展。

残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。残差网络内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。

在可选的实施例中,图5示出了利用残差网络提取图像块特征的方法的流程示意图,如图5所示,该方法至少包括以下步骤:在步骤S510中,对正常样本进行三组卷积运算得到第一特征图,并对第一特征图进行多层卷积运算得到第二特征图。

图6示出了残差网络的网络结构示意图,如图6所示,残差网络可以包括ResNet-18、ResNet-34、ResNet-50、ResNet-101和ResNet-152等结构。

在图6的最左侧可以发现所有结构的残差网络都分成5部分,分别是conv1、conv2_x、conv3_x、conv4_x和conv5_x。

其中,对于ResNet-101一列而言,输入图像经过尺寸为(7,7,64)的卷积层,然后经过3+4+23+3=33个building block,每个building block有3层,所以有33x 3=99层,最后有个全连接层用于分类,所以有1+99+1=101层,因此是101层网络的残差网络。

其中,101层网络仅仅指卷积或者全连接层,而激活层或者Pooling(池化)层并没有计算在内。

举例而言,当利用卷积神经网络中的残差网络提取正常样本的图像块特征时,可以利用ResNet-50作为图像深度特征的提取网络实现。

首先,利用ResNet-50的conv1、conv2_x、conv3_x对正常样本进行三组卷积运算得到8倍下采样的第一特征图。

然后,可以利用ResNet-50的conv4_x对第一特征图进行多层卷积运算得到16倍下采样的第二特征图。

在步骤S520中,对第一特征图和第二特征图进行特征通道融合得到图像块特征,并利用图像块特征建立正样本特征库。

在计算得到第一特征图和第二特征图之后,可以将8倍下采样的第一特征图和16倍下采样的第二特征图进行特征通道融合,亦即对8倍下采样的第一特征图和16倍下采样的第二特征图进行纵向拼接处理得到8倍下采样的512+1024=1536通道数的特征图,以作为图像块特征。

值得说明的是,当第二特征图与第一特征图的长和宽尺寸相同时,才可以进行纵向拼接处理。

举例而言,当输入图像的长为224、宽为224、通道数为3时,经过ResNet得到的第一特征图长为28、宽为28、通道数为512,得到的第二特征图长为14、宽为14、通道数为1024。此时,第一特征图与第二特征图是无法进行纵向拼接处理的。

那么,可以利用最近邻插值法将第二特征图的长和宽放大两倍,以得到与第一特征图尺寸相同的特征图。进而,将放大后的第二特征图和第一特征图进行纵向拼接处理得到图像特征。

因此,每个正常样本的图像块特征都可以得到对应的1536维的图像块特征,以通过所有1536维的图像块特征生成正样本特征库。

图7示出了正样本特征库中的图像块特征的界面示意图,如图7所示,将搜集到的用于比对的所有正常样本经过ResNet-50的深度网络提取patch特征,可以建立对应的正样本特征库。

在本示例性实施例中,通过残差网络提取正常样本的图像块特征,并根据图像块特征建立正样本特征库,为待测图像的异常检测提供了先验样本和数据支持。

在步骤S120中,获取待测图像的待测特征,并计算待测特征与正样本特征库中的图像块特征之间的特征距离。

在本公开的示例性实施例中,获取到待测图像之后,可以按照图4或者图5所示的方式提取对应的待测特征。

图8示出了提取到的待测图像的待测特征的界面示意图,如图8所示,利用图4所示的卷积神经网络或者图5所示的残差网络的方式都可以提取到待测图像的待测特征。

在获取到待测特征之后,可以计算待测特征与正样本特征库中的图像块特征之间的特征距离。

在可选的实施例中,利用暴力检索算法计算待测特征与正样本特征库中的图像块特征之间的特征距离。

暴力算法也叫蛮力算法,之所以称为暴力,是因为该算法是枚举当前所有出现的情况,从而得到需要的情况。

图9示出了利用暴力检索算法计算特征距离的方法的结构示意图,如图9所示,当通过n张正常样本建立正样本特征库时,每一张正常样本的图像都可以分为a个patch,每一个patch由一个特征向量表示,亦即图像块特征。并且,该特征向量有b个维。因此,n张正常样本可以提取出n×a个b维图像块特征建立正样本特征库。

在查询阶段,每张待测图像经过同样的深度神经网络提取待测特征,同样分为a个patch,每一个patch由b维特征向量表示。

进而,计算待测图像到的每一个待测特征与正样本数据库中所有图像块特征之间的距离。

在可选的实施例中,利用暴力检索算法计算待测特征与正样本特征库中的图像块特征之间的第一欧式距离作为特征距离。

在计算待测图像的单个patch特征与正样本特征库中的单个图像块特征之间的距离时可以采用欧式距离。

在n维空间内的欧式距离的计算公式如公式(1)所示:

因此,采用公式(1)计算出待测图像的单个patch特征与正样本特征库中的单个图像块特征之间的第一欧式距离,以作为特征距离。

在图像检索中,暴力检索算法的方式是在全空间进行搜索。为了加快查找的速度,几乎所有的ANN(Approximate Nearest Neighbor,近似最近邻)方法都是通过对全空间分割,将全空间分割成很多小的子空间。在搜索的时候,通过某种方式快速锁定在某一(几)子空间,然后再该对应子空间里做遍历。

因此,正是因为缩减了遍历的空间范围大小,从而使得ANN能够处理大规模数据的索引。

举例而言,可以采用ANN中的乘积量化算法(Product Quantization,PQ)实现。

在可选的实施例中,利用乘积量化算法计算待测特征与正样本特征库中的图像块特征之间的特征距离。

乘积量化的核心思想是分段(划分子空间)和聚类,或者说具体应用到ANN近似最近邻搜索上,K均值聚类算法(k-means clustering algorithm)是PQ乘积量化子空间数目为1的特例。

在可选的实施例中,图10示出了利用乘积量化算法计算特征距离的方法的流程示意图,如图10所示,该方法至少包括以下步骤:在步骤S1010中,对正样本特征库中的图像块特征进行切分得到样本子空间,并对样本子空间进行编码得到编码标识。

在训练阶段,针对N个图像块特征,假设样本维度是128维,可以将其切分成4个样本子空间,每个样本子空间的维度为32维。

对于每一个样本子空间,采用K-means对其进行聚类,例如聚成25类,这样每个样本子空间都可以得到一个码本。这样,图像块特征中的每个子段都可以用子空间的聚类中心来近似,对应的编码标识即为类中心的ID(Identity,标识)。

通过这样一种编码方式,图像块特征仅适用很短的一个编码标识得以表示,从而达到量化的目的。

对于待编码的图像块特征,可以进行相同的切分,然后在各个子空间中逐一寻找距离他们最近的类中心,然后用类中心的ID进行表示,即可完成所有图像块特征的编码。

在步骤S1020中,对待测特征进行切分得到待测子空间,并计算待测子空间与样本子空间之间的距离得到距离表。

在查询结果,PQ同样在计算查询样本与dataset(数据集)中各个样本的距离,只不过这种距离的计算转化为间接近似的方法而获得。PQ乘积量化方法在计算距离的时候,有两种距离计算方式,一种是对称距离,另外一种是非对称距离。非对称距离的损失小(也就是更接近真实距离),实际中也经常采用这种距离计算方式。

具体的,在待测特征来到时,按训练样本生成码本的过程,将待测特征分成相同的子段,亦即待测子空间。在每个待测子空间中,计算子段到该样本子空间中所有聚类中心的距离,可以得到4*256个距离,亦即距离表。

值得说明的是,距离表中的距离的计算也可以是通过计算欧式距离得到的。

在可选的实施例中,计算待测子空间与样本子空间之间的第二欧式距离,并根据第二欧式距离生成距离表。

待测子空间与样本子空间之间的第二欧式距离的计算也可以通过公式(1)得到,以此得到包含4*256个距离的距离表。

在步骤S1030中,利用编码标识在距离表中查询子距离,并对子距离进行距离汇总计算得到特征距离。

在计算正样本特征库中某个图像块特征距离待测特征之间的距离时,可以分别到距离表中取各个子段对应的距离即可。

举例而言,编码为(124,56,132,222)这个图像特征到待测特征之间的距离时,可以分别到距离表中取各个子段对应的距离即可。例如,编码为124这个子段,在第1个算出来的256个距离里面把编号为124的那个距离取出来即可。将所有子段对应的距离取出来之后,将这些子段的距离进行求和相加即可得到该图像块特征到待测特征之间的非对称距离,亦即特征距离。

在本示例性实施例中,利用乘积量化算法计算待测特征与正样本特征库中的图像块特征之间的特征距离,加快了图像检索速度,减少了存储空间,是一种实用性极强的图像检索方式。

在图10中可以清楚看出PQ算法加快索引的原理,亦即将全样本的距离计算,转化为到子空间类中心的距离计算。

原本暴力检索算法的方式计算距离的次数随样本数目N成线性增长,但是经过PQ编码后,对于耗时的距离计算,只要计算4*256次,几乎可以忽略此时间的消耗。

另外,对图像块特征进行编码后,可以用一个相对比较短的编码来表示样本,自然对于内存的消耗要大大小于暴力检索算法的方式。

在可选的实施例中,利用倒排乘积量化算法计算待测特征与正样本特征库中的图像块特征之间的特征距离。

倒排乘积量化算法(Inverted file system with product quantization,IVFPQ)是PQ乘积量化的更进一步加速版。

倒排乘积量化算法加速的本质逃不开在最前面强调的是加速原理,亦即暴力检索算法的搜索方式是在全空间进行搜索,为了加快查找的速度,几乎所有的ANN方法都是通过对全空间分割,将其分割成很多小的子空间,在搜索的时候,通过某种方式,快速锁定在某一(几)子空间,然后在该(几个)子空间里做遍历。

PQ乘积量化计算距离的时候,距离虽然已经预先算好了,但是对于每个样本到查询样本的距离,还是得挨个去求和相加计算距离。

但是,实际上,感兴趣的是跟查询样本相近的样本(可称为感兴趣区域)。也就是说挨个相加其实做了很多的无用功,如果能够通过某种手段快速将全局遍历锁定为感兴趣区域,则可以舍去不必要的全局计算以及排序。

倒排乘积量化的“倒排”正是这样一种思想的体现。在具体实施手段上,采用的是通过聚类的方式实现感兴趣区域的快速定位,在倒排PQ乘积量化中,聚类可以说应用得淋漓尽致。

在可选的实施例中,图11示出了利用倒排乘积量化算法计算特征距离的方法的流程示意图,如图11所示,该方法至少包括以下步骤:在步骤S1110中,对正样本特征库中的图像块特征进行聚类得到聚类中心,并根据待测特征在聚类中心中确定目标聚类中心。

倒排乘积量化算法相当于在PQ算法之前增加了一个粗量化过程。

具体的,对N个正样本特征库中的图像块特征采用K-means进行聚类,这里距离的数目一般设置的不应过大,例如1024。这样可以以较快的速度完成聚类过程。

在通过聚类得到聚类中心之后,针对每个待测特征x

在可选的实施例中,图12示出了确定目标聚类中心的方法的流程示意图,如图12所示,该方法至少包括以下步骤:在步骤S1210中,计算待测特征和聚类中心之间的第三欧式距离,并对第三欧式距离进行比较得到距离比较结果。

通过公式(1)可以计算出待测特征与每个聚类中心之间的第三欧式距离。

进一步的,将多个第三欧式距离进行比较,以得到对应的距离比较结果。

在步骤S1220中,根据距离比较结果在聚类中心中确定目标聚类中心。

在得到距离比较结果之后,可以根据距离比较结果在第三欧式距离中选择最小的一个,并将该最小的第三欧式距离对应的聚类中心确定为目标聚类中心。

在本示例性实施例中,通过对第三欧式距离的比较能够确定目标聚类中心,是倒排乘积量化的重要步骤,为后续的特征距离计算提供了支持。

在步骤S1120中,对待测特征和目标聚类中心进行残差计算得到残差向量,并基于残差向量,利用乘积量化算法计算待测特征和正样本特征库中的图像块特征之间的特征距离。

在确定目标聚类中心之后,可以将待测特征x

进而,按照图10所示的乘积量化算法利用残差向量构建正样本特征库查询结构,以计算待测特征和正样本特征库中的图像块特征之间的特征距离即可,在此不再赘述。

在本示例性实施例中,通过倒排乘积量化算法计算待测特征与正样本特征库中的图像块特征之间的特征距离,丰富了特征距离的计算方式,进一步加快了图像检索的速度。

在步骤S130中,对特征距离进行异常得分计算得到待测图像的异常得分,并根据异常得分确定待测图像的异常检测结果。

在本公开的示例性实施例中,通过暴力检索算法、乘积量化算法或倒排乘积量化算法计算出待测特征与正样本特征库中的图像块特征之间的特征距离之后,能够对该特征距离进行异常得分计算得到待测图像的异常得分。

在可选的实施例中,图13示出了计算异常得分的方法的流程示意图,如图13所示,该方法至少包括以下步骤:在步骤S1310中,在待测图像的待测特征对应的特征距离中确定初始距离,并在初始距离中确定与正样本特征库关联的目标距离。

在可选的实施例中,图14示出了确定初始距离的方法的流程示意图,如图14所示,该方法至少包括以下步骤:在步骤S1410中,对待测图像的待测特征对应的特征距离进行比较得到特征比较结果。

由于一张待测图像可以提取到a个patch,亦即a个待测特征,因此对应有a个特征距离。

将a个特征距离进行比较能够得到待测图像的待测特征对应的特征比较结果。

在步骤S1420中,根据特征比较结果在待测图像的待测特征对应的特征距离中确定初始距离。

在得到特征比较结果之后,可以根据特征比较结果在a个特征距离中选择最近的一个作为初始距离。

在本示例性实施例中,在待测图像的待测特征对应的特征距离中确定初始距离,以选择与正样本特征库中图像块特征最为相似的特征向量,从图像相似程度方面保证异常得分的准确性。

在确定初始距离之后,可以进一步根据该初始距离确定目标距离。

在可选的实施例中,图15示出了确定目标距离的方法的流程示意图,如图15所示,该方法至少包括以下步骤:在步骤S1510中,获取与初始距离对应的目标数量,并对初始距离进行比较得到异常比较结果。

该目标数量可以是要确定的与正样本特征库关联的目标向量的个数,可以用K进行表示。并且,K的具体数值可以根据实际情况和实际需求确定。

由于每一个patch由b维特征向量表示,因此每个初始距离由多个特征向量构成。

将初始距离中的多个特征向量进行比较,可以得到对应的异常比较结果。

在步骤S1520中,基于目标数量,根据异常比较结果在初始距离中确定与正样本特征库关联的目标距离。

在获取到异常比较结果之后,可以在初始距离中选择与目标数量相同的K个最小的特征距离作为目标距离。

这K个最小的特征距离为与正样本特征库最为异常的距离值。

在本示例性实施例中,在初始距离中确定与正样本特征库最为区别的目标距离,为利用目标距离计算异常得分提供了数据支持,从最为相似的图像块中寻找最为异常部分计算异常得分,进一步保证了异常得分计算的准确性。

在步骤S1320中,对目标距离进行计算得到异常权重,并对异常权重和初始距离进行异常得分计算得到异常得分。

在确定K个目标距离之后,可以按照公式(2)计算得到异常权重:

其中,x

在计算出异常权重之后,可以利用公式(3)计算得到异常得分:

sco*e=w×min(x

其中,min(x

在本示例性实施例中,通过异常权重和初始距离能够计算得到待测图像的异常得分,计算方式简单准确,并且能够计算出待测图像中图像最相似且距离最异常的得分,是最能代表待测图像异常图像的异常得分,保证了异常检测结果的准确性。

在计算出异常得分之后,能够根据异常得分确定待测图像的异常检测结果。

在可选的实施例中,图16示出了确定异常检测结果的方法的流程示意图,如图16所示,该方法至少包括以下步骤:在步骤S1610中,获取与异常得分对应的异常阈值,并将异常得分与异常阈值进行比较得到阈值比较结果。

一般的,异常阈值可以设置为5或者10,也可以根据实际情况或实际需求设置其他数值,本示例性实施例对此不做特殊限定。

进一步的,将异常得分和异常阈值进行比较得到阈值比较结果。

在步骤S1620中,根据阈值比较结果确定待测图像的异常检测结果。

当阈值比较结果为异常得分大于异常阈值时,该待测图像的异常检测结果为待测图像异常;当阈值比较结果为异常得分小于或等于异常阈值时,该待测图像的异常检测结果为待测图像正常。

在本示例性实施例中,通过设置异常阈值与异常得分的比较过程能够确定待测图像的异常检测结果,确定方式简单准确,泛化能力强,对人工核验待测图像提供了支持。

在确定待测图像的异常检测结果之后,还可以根据该异常检测结果生成可视化的检测结果图像。

在可选的实施例中,图17示出了生成检测结果图像的方法的流程示意图,如图17所示,该方法至少包括以下步骤:在步骤S1710中,若异常检测结果为待测图像异常,根据异常得分生成待测图像的异常得分图。

当异常检测结果为待测图像异常时,可以利用每一个patch与正样本特征库的最近距离代表该块patch的异常程度得到异常得分图。

图18示出了异常得分图的界面示意图,如图18所示,每张待测图像的异常程度的得分由所有patch中最异常的一个决定,作为筛选该待测图像是否存在图像异常显示bug的指标。

在步骤S1720中,对异常得分图进行归一化处理得到归一化图像,并对归一化图像进行灰度化处理得到灰度图。

在可选的实施例中,图19示出了对异常得分图进行归一化处理的方法的流程示意图,如图19所示,该方法至少包括以下步骤:在步骤S1910中,对异常得分图进行图像拉伸处理得到拉伸图像。

由于异常得分图和待测图像八倍下采样尺寸下的图像,因此可以对该异常得分图进行图像拉伸处理得到与原来的待测图像尺寸一样的拉伸图像。

具体的,可以利用双线性插值的方式进行图像拉伸处理。

其中,在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。

在步骤S1920中,对拉伸图像进行滤波处理得到滤波图像,并对滤波图像进行归一化处理得到归一化图像。

在得到拉伸图像之后,可以对拉伸图像进行滤波处理得到滤波图像。

具体的,可以利用高斯滤波的方式进行滤波处理。

其中,高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。

通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。

高斯滤波的具体操作是用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

在得到滤波图像之后,可以对滤波图像进行归一化处理。

具体的,可以利用公式(4)进行归一化处理:

在对滤波图像进行归一化处理之后,可以得到所有数值范围在0~1之间的归一化图像。

在本示例性实施例中,通过对异常得分图进行图像拉伸处理、滤波处理和归一化处理之后可以得到归一化图像,不仅使得相邻元素间的数值更加平滑,并且统一了所有数值的范围。

在得到归一化图像之后,可以将归一化图像的所有数值乘以255,并进行取整得到灰度图。

该灰度图的所有数值范围为0~255之间的整数,并且,灰度图的图像通道数为1。

在步骤S1730中,利用伪彩色函数生成与灰度图对应的彩色热力图,并对彩色热力图和待测图像进行融合处理得到检测结果图像。

在得到灰度图之后,可以利用OpenCV中的伪彩色函数(applycolor map)生成对应的彩色热力图。

OpenCV的定义12种colormap(色度图),可以应用于灰度图像,使用函数applycolormap产生伪彩色图像。

具体的,可以利用cv2.applyColorMap(gray_image,cv2.COLORMAP_JET)将灰度图映射为彩色热力图。

进一步的,将彩色热力图和待测图像进行融合处理,亦即数值相加,即可生成待测图像的可视化的检测结果图像。

在本示例性实施例中,当待测图像异常时生成对应的检测结果图像,标注待测图像的异常位置,使得待测图像的异常检测结果可视化,为人工核验图像提供了帮助。

下面结合一应用场景对本公开实施例中的图像异常检测方法做出详细说明。

图20示出了应用场景下图像异常检测方法的流程示意图,如图20所示,在步骤S2010中,正样本图像深度patch特征提取。

图像异常显示bug是指与正常预期不同的表现。人工判断图像异常显示bug的前提是获知正常图像的状态,再与待测图像进行比对,以发现是否存在异常和异常产生的位置。

借鉴人工鉴定图像异常显示bug的思路,可以收集多张正常样本图像作为正常样本。

获取待测图像,并将该待测图像与正常样本进行比对,以比较是否存在异常以及异常出现的位置。

由于图像异常显示bug的大小不确定,bug可能是大型的区别,例如背景变化;也可能是较小的区别,例如模型影子缺失等,因此,不可以采用图像全局特征比对的方式检测是否存在bug。亦即,由于正样本库和待测图像无法做到像素级别对齐,因此可以利用深度学习网络提取图像块特征进行比对,以判断每一块图像是否存在异常。

具体的,可以先提取正常样本的图像块特征,以建立正样本特征库。

利用卷积神经网络提取正常样本的图像块特征,以利用图像块特征建立正样本特征库。

利用卷积神经网络提取正常样本的图像块(patch)特征时,正常样本经过卷积神经网络进行下采样得到形状为(H,W,C)的图像块特征的特征图。亦即,将正常样本的原始图像分为H×W个块,每一个块的特征维度为C。

至此,每一块特征对应正常样本的原始图像的对应位置的特征。例如,右侧(H,W,C)图像中的特征①、特征②、特征③和特征④分别对应正常样本的原始图像中的区域①、区域②、区域③和区域④。

在将采集到的正常样本的图像块特征全部提取完毕之后,可以利用所有提取到的图像块特征生成对应的正样本特征库。

进一步的,还可以采用卷积神经网络中的残差网络提取正常样本的图像块特征,以利用图像块特征建立正样本特征库。

具体的,对正常样本进行三组卷积运算得到第一特征图,并对第一特征图进行多层卷积运算得到第二特征图。

举例而言,当利用卷积神经网络中的残差网络提取正常样本的图像块特征时,可以利用ResNet-50作为图像深度特征的提取网络实现。

首先,利用ResNet-50的conv1、conv2_x、conv3_x对正常样本进行三组卷积运算得到8倍下采样的第一特征图。

然后,可以利用ResNet-50的conv4_x对第一特征图进行多层卷积运算得到16倍下采样的第二特征图。对第一特征图和第二特征图进行特征通道融合得到图像块特征,并利用图像块特征建立正样本特征库。

在计算得到第一特征图和第二特征图之后,可以将8倍下采样的第一特征图和16倍下采样的第二特征图进行特征通道融合,亦即对8倍下采样的第一特征图和16倍下采样的第二特征图进行纵向拼接处理得到8倍下采样的512+1024=1536通道数的特征图,以作为图像块特征。

值得说明的是,当第二特征图与第一特征图的长和宽尺寸相同时,才可以进行纵向拼接处理。

举例而言,当输入图像的长为224、宽为224、通道数为3时,经过ResNet得到的第一特征图长为28、宽为28、通道数为512,并得到的第二特征图长为14、宽为14、通道数为1024。此时,第一特征图与第二特征图是无法进行纵向拼接处理的。

那么,可以利用最近邻插值法将第二特征图的长和宽放大两倍,以得到与第一特征图尺寸相同的特征图。进而,将放大后的第二特征图和第一特征图进行纵向拼接处理得到图像特征。

在步骤S2020中,待测图像深度patch特征提取。

获取到待测图像之后,可以按照卷积神经网络或者残差网络的方式提取对应的待测特征。

在步骤S2030中,正样本图像深度patch特征索引结构建立。

在获取到待测特征之后,可以计算待测特征与正样本特征库中的图像块特征之间的特征距离。

利用暴力检索算法计算待测特征与正样本特征库中的图像块特征之间的特征距离。

当通过n张正常样本建立正样本特征库时,每一张正常样本的图像都可以分为a个patch,每一个patch由一个特征向量表示,亦即图像块特征。并且,该特征向量有b个维。因此,n张正常样本可以提取出n×a个b维图像块特征建立正样本特征库。

在查询阶段,每张待测图像经过同样的深度神经网络提取待测特征,同样分为a个patch,每一个patch由b维特征向量表示。

进而,计算待测图像到的每一个待测特征与正样本数据库中所有图像块特征之间的距离。

利用暴力检索算法计算待测特征与正样本特征库中的图像块特征之间的第一欧式距离作为特征距离。

在计算待测图像的单个patch特征与正样本特征库中的单个图像块特征之间的距离时可以采用欧式距离。

在n维空间内的欧式距离的计算公式如公式(1)所示。

在步骤S2040中,待测图像patch与正样本库特征计算距离。

在图像检索中,暴力检索算法的方式是在全空间进行搜索。为了加快查找的速度,几乎所有的ANN(Approximate Nearest Neighbor,近似最近邻)方法都是通过对全空间分割,将全空间分割成很多小的子空间。在搜索的时候,通过某种方式快速锁定在某一(几)子空间,然后再该对应子空间里做遍历。

因此,正是因为缩减了遍历的空间范围大小,从而使得ANN能够处理大规模数据的索引。

举例而言,可以采用ANN中的乘积量化算法实现。

利用乘积量化算法计算待测特征与正样本特征库中的图像块特征之间的特征距离。

乘积量化的核心思想是分段(划分子空间)和聚类,或者说具体应用到ANN近似最近邻搜索上,K-Means是PQ乘积量化子空间数目为1的特例。

图21示出了利用乘积量化算法计算特征距离的方法的界面示意图,如图21所示,在训练阶段,针对N个训练样本,切分成多个维度子空间,每一个子空间中中对子向量进行聚类,这样,每一个子空间都能得到一个以聚类中心为基础的码本。

这样训练样本的每个子段都可以用子空间的聚类中心来近似,对应的编码标识即为类中心的ID。

因此,整体训练样本可仅用较短的编码形式表示,达到量化的目的。

在查询阶段,PQ算法将计算查询样本与各个训练样本的距离转化为间接近似的方法而获得。

将查询向量分成若干子段,然后在每个子空间中,计算子段到该子空间中所有聚类中心的距离得到距离矩阵。在计算查询向量到某个训练样本的距离时,分别在距离表中取各个子段对应的距离即可。将这些距离进行求和相加,即可得到该样本到查询样本间的特征距离。

倒排乘积量化算法是PQ乘积量化的更进一步加速版。

倒排乘积量化算法加速的本质逃不开在最前面强调的是加速原理,亦即暴力检索算法的搜索方式是在全空间进行搜索,为了加快查找的速度,几乎所有的ANN方法都是通过对全空间分割,将其分割成很多小的子空间,在搜索的时候,通过某种方式,快速锁定在某一(几)子空间,然后在该(几个)子空间里做遍历。

PQ乘积量化计算距离的时候,距离虽然已经预先算好了,但是对于每个样本到查询样本的距离,还是得挨个去求和相加计算距离。

但是,实际上,感兴趣的是跟查询样本相近的样本(可称为感兴趣区域)。也就是说挨个相加其实做了很多的无用功,如果能够通过某种手段快速将全局遍历锁定为感兴趣区域,则可以舍去不必要的全局计算以及排序。

倒排乘积量化的“倒排”正是这样一种思想的体现。在具体实施手段上,采用的是通过聚类的方式实现感兴趣区域的快速定位,在倒排PQ乘积量化中,聚类可以说应用得淋漓尽致。

图22示出了应用场景下利用倒排乘积量化算法计算特征距离的方法的界面示意图,如图22所示,对正样本特征库中的图像块特征进行聚类得到聚类中心,并根据待测特征在聚类中心中确定目标聚类中心。

倒排乘积量化算法相当于在PQ算法之前增加了一个粗量化过程。

具体的,对N个正样本特征库中的图像块特征采用K-means进行聚类,这里距离的数目一般设置的不应过大,例如1024。这样可以以较快的速度完成聚类过程。

在通过聚类得到聚类中心之后,针对每个待测特征x

计算待测特征和聚类中心之间的第三欧式距离,并对第三欧式距离进行比较得到距离比较结果。

通过公式(1)可以计算出待测特征与每个聚类中心之间的第三欧式距离。

进一步的,将多个第三欧式距离进行比较,以得到对应的距离比较结果。

根据距离比较结果在聚类中心中确定目标聚类中心。

在得到距离比较结果之后,可以根据距离比较结果在第三欧式距离中选择最小的一个,并将该最小的第三欧式距离对应的聚类中心确定为目标聚类中心。

在确定目标聚类中心之后,可以将待测特征x

进而,按照乘积量化算法利用残差向量构建正样本特征库查询结构,以计算待测特征和正样本特征库中的图像块特征之间的特征距离即可,在此不再赘述。

表1列出了IVFPQ的图像检索方式和暴力检索算法的比较结果:

表1

其中,IVFPQ的建库过程是指IVFPQ的训练过程。

在实验中发现,基于IVFPQ的图像检索方式相比暴力检索算法而言,以一定的查询召回率作为代价,大大减少存储空间,同时明显提高查询速度。

因此,基于IVFPQ的图像检索方式更加适用于“一次建库,多次查询”的应用场景。

在步骤S2050中,待测图像计算图像异常得分。

通过暴力检索算法、乘积量化算法或倒排乘积量化算法计算出待测特征与正样本特征库中的图像块特征之间的特征距离之后,能够对该特征距离进行异常得分计算得到待测图像的异常得分。

在待测图像的待测特征对应的特征距离中确定初始距离,并在初始距离中确定与正样本特征库关联的目标距离。

对待测图像的待测特征对应的特征距离进行比较得到特征比较结果。

由于一张待测图像可以提取到a个patch,亦即a个待测特征,因此对应有a个特征距离。

将a个特征距离进行比较能够得到待测图像的待测特征对应的特征比较结果。

根据特征比较结果在待测图像的待测特征对应的特征距离中确定初始距离。

在得到特征比较结果之后,可以根据特征比较结果在a个特征距离中选择最近的一个作为初始距离。

在确定初始距离之后,可以进一步根据该初始距离确定目标距离。

获取与初始距离对应的目标数量,并对初始距离进行比较得到异常比较结果。

该目标数量可以是要确定的与正样本特征库关联的目标向量的个数,可以用K进行表示。并且,K的具体数值可以根据实际情况和实际需求确定。

由于每一个patch由b维特征向量表示,因此每个初始距离由多个特征向量构成。

将初始距离中的多个特征向量进行比较,可以得到对应的异常比较结果。

基于目标数量,根据异常比较结果在初始距离中确定与正样本特征库关联的目标距离。

在获取到异常比较结果之后,可以在初始距离中选择与目标数量相同的K个最小的特征距离作为目标距离。

这K个最小的特征距离为与正样本特征库最为异常的距离值。

对目标距离进行计算得到异常权重,并对异常权重和初始距离进行异常得分计算得到异常得分。

在确定K个目标距离之后,可以按照公式(2)计算得到异常权重。

在计算出异常权重之后,可以利用公式(3)计算得到异常得分。

在步骤S2060中,待测图像异常bug热力图结果生成。

在计算出异常得分之后,能够根据异常得分确定待测图像的异常检测结果。

获取与异常得分对应的异常阈值,并将异常得分与异常阈值进行比较得到阈值比较结果。

一般的,异常阈值可以设置为5或者10,也可以根据实际情况或实际需求设置其他数值,本示例性实施例对此不做特殊限定。

进一步的,将异常得分和异常阈值进行比较得到阈值比较结果。

根据阈值比较结果确定待测图像的异常检测结果。

当阈值比较结果为异常得分大于异常阈值时,该待测图像的异常检测结果为待测图像异常;当阈值比较结果为异常得分小于或等于异常阈值时,该待测图像的异常检测结果为待测图像正常。

当异常检测结果为待测图像异常时,可以利用每一个patch与正样本特征库的最近距离代表该块patch的异常程度得到异常得分图。

每张待测图像的异常程度的得分由所有patch中最异常的一个决定,作为筛选该待测图像是否存在图像异常显示bug的指标。

由于异常得分图和待测图像八倍下采样尺寸下的图像,因此可以对该异常得分图进行图像拉伸处理得到与原来的待测图像尺寸一样的拉伸图像。

具体的,可以利用双线性插值的方式进行图像拉伸处理。

在得到拉伸图像之后,可以对拉伸图像进行滤波处理得到滤波图像。

具体的,可以利用高斯滤波的方式进行滤波处理。

在得到滤波图像之后,可以对滤波图像进行归一化处理。

具体的,可以利用公式(4)进行归一化处理。

在对滤波图像进行归一化处理之后,可以得到所有数值范围在0~1之间的归一化图像。

在得到归一化图像之后,可以将归一化图像的所有数值乘以255,并进行取整得到灰度图。

该灰度图的所有数值范围为0~255之间的整数,并且,灰度图的图像通道数为1。

在得到灰度图之后,可以利用OpenCV中的伪彩色函数(applycolor map)生成对应的彩色热力图。

具体的,可以利用cv2.applyColorMap(gray_image,cv2.COLORMAP_JET)将灰度图映射为彩色热力图。

进一步的,将彩色热力图和待测图像进行融合处理,亦即数值相加,即可生成待测图像的可视化的检测结果图像。

将该图像异常检测方法应用在真实游戏场景下搜集到的待测图像中进行试验,包含部分存在图像显示异常bug的图像,可以生成的标注异常的检测结果图像。

图23示出了应用场景下第一个检测结果图像的示意图,如图23所示,该待测图像的异常产生位置为偏右位置的上部和下部。并且,经过人工核验可以确定异常产生原因为多出了一条龙及其影子。

图24示出了应用场景下第二个检测结果图像的示意图,如图24所示,该待测图像的异常产生位置为偏右下部。并且,经过人工核验可以确定异常产生原因为多出了方块。

图25示出了应用场景下第三个检测结果图像的示意图,如图25所示,该待测图像的异常产生位置为左下位置和底部。并且,经过人工核验可以确定异常产生原因为多出了大象和汽车。

图26示出了应用场景下第四个检测结果图像的示意图,如图26所示,该待测图像的异常产生位置为偏右位置的上部。并且,经过人工核验可以确定异常产生原因为右侧编辑器界面异常。

图27示出了应用场景下第五个检测结果图像的示意图,如图27所示,该待测图像的异常产生位置为中间偏上位置。并且,经过人工核验可以确定异常产生原因为背景界面颜色异常。

图28示出了应用场景下第六个检测结果图像的示意图,如图28所示,该待测图像的异常产生位置为偏右上位置。并且,经过人工核验可以确定异常产生原因为建筑元素缺失。

图29示出了应用场景下第七个检测结果图像的示意图,如图29所示,该待测图像的异常产生位置为左中部位置。并且,经过人工核验可以确定异常产生原因为多出了一个元素。

图30示出了应用场景下第八个检测结果图像的示意图,如图30所示,该待测图像的异常产生位置为靠中下位置。并且,经过人工核验可以确定异常产生原因为底部颜色异常。

图31示出了应用场景下第九个检测结果图像的示意图,如图31所示,该待测图像的异常产生位置为偏右下位置。并且,经过人工核验可以确定异常产生原因为飞龙影子消失。

图32示出了应用场景下第十个检测结果图像的示意图,如图32所示,该待测图像的异常产生位置为偏右下和右上位置。并且,经过人工核验可以确定异常产生原因为人物姿态异常。

基于此,图像异常检测方法可以收集多张正常样本图像,采用深度网络,例如ResNet50,提取正常样本图像n倍下采样深度特征,特征维度为(h,w,c),在特征图的h*w平面上的c维特征为原始图像上n*n大小区域的深度特征,每张图像有h*w个c维特征,将所有图像的所有特征收集并建立正样本库,用于判断待测图像异常与否。

取一张待测样本图像,采用相同的深度网络提取待测样本图像n倍下采样深度特征,特征维度亦为(h,w,c),在特征图的h*w平面上的c维特征为原始图像上n*n大小区域的深度特征,每张图像有h*w个c维特征。

对待测图像上每一个n*n区域的c维特征,在建立的正样本库中找到k个最近邻并得到k个最近距离,每一个特征在正样本库中查找到的最近距离代表对应区域的异常程度,距离越近则异常程度越小,距离约远则代表异常程度越大,依据每一区域特征与正样本库的距离大小构建整张图像的异常热力图。

取与正样本距离最大的一个c维特征所代表的区域的异常程度代表整张图像的异常程度,依据该区域特征与正样本库k个最近邻的距离计算图像异常得分。

当图像异常分值超过一定设定阈值,则认为该图像存在异常;如低于设定阈值,则认为图像无异常。每一张图像的异常程度由图像中最异常(与正样本距离最大)的区域决定,由此适应不同大小规模的图像异常。

为加快图像异常检测的速度,需加快图像中每一个区域的特征在正样本库中的查询速度,故采用图像检索中的近似最近邻查找之矢量量化方法中的倒排乘积量化方法构建正样本图像深度patch特征库,在查询精度损失较小的前提下,显著加速待测样本patch特征查询的速度,以此加快图像异常检测判断的速度。

在本公开的示例性实施例中的图像异常检测方法,只需获取正常样本,且无需对正常样本进行数据标注,避免了因无法采集到异常样本带来的极度样本不平衡问题,进一步避免了样本采集过程中带来的泛化性能弱的问题,同时提升了不同应用场景下的异常检测方法的通用性,也解决了样本采集和数据标注带来的人力成本过度消耗问题。并且,提取正常样本的图像块特征和待测图像的待测特征进行异常检测,适用于任意尺寸待测图像的异常检测,提升了任意场景下的图像异常检测的准确性,也使得异常检测方式具备高召回率和强适应性。

除此之外,图像异常检测方法可以用于检测游戏场景下的图像异常显示bug,快速、高效、准确的判断游戏场景待测图像是否存在图像异常显示bug以及图像中何处存在异常显示bug,辅助测试人员快速审核图像中的异常显示bug。

通过本图像异常检测方法还可以得到每一张图像的异常程度热力图,以此辅助测试人员快速定位到图像中的异常位置,大大提高图像审核以及异常bug定位的速度,提高测试人员的工作效率,减少大量的时间和人力成本。

更进一步的,由于视频的最基本组成单元即为一帧帧图像,图像异常检测方法可以方便的从图像维度拓展到视频维度。该图像异常检测方法可以快速、准确的定位到待测视频中的异常位置,省去了测试人员审核大量完整视频的时间,辅助测试人员聚焦待测视频中的部分位置,提高视频审核效率,减少大量的时间和人力成本,避免了倍速审核视频可能产生的图像显示异常bug遗漏,且可以发现人眼难以发现的较小图像异常显示bug。

此外,在本公开的示例性实施例中,还提供一种图像异常检测装置。图33示出了图像异常检测装置的结构示意图,如图33所示,图像异常检测装置3300可以包括:特征提取模块3310、距离计算模块3320和异常检测模块3330。其中:

特征提取模块3310,被配置为获取正常样本,并提取所述正常样本的图像块特征建立正样本特征库;

距离计算模块3320,被配置为获取待测图像的待测特征,并计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离;

异常检测模块3330,被配置为对所述特征距离进行异常得分计算得到所述待测图像的异常得分,并根据所述异常得分确定所述待测图像的异常检测结果。

在本发明的一种示例性实施例中,所述提取所述正常样本的图像块特征建立正样本特征库,包括:

利用卷积神经网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库。

在本发明的一种示例性实施例中,所述利用卷积神经网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库,包括:

利用卷积神经网络中的残差网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库。

在本发明的一种示例性实施例中,所述利用卷积神经网络中的残差网络提取所述正常样本的图像块特征,以利用所述图像块特征建立正样本特征库,包括:

对所述正常样本进行三组卷积运算得到第一特征图,并对所述第一特征图进行多层卷积运算得到第二特征图;

对所述第一特征图和所述第二特征图进行特征通道融合得到图像块特征,并利用所述图像块特征建立正样本特征库。

在本发明的一种示例性实施例中,所述计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用暴力检索算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述利用暴力检索算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用暴力检索算法计算所述待测特征与所述正样本特征库中的图像块特征之间的第一欧式距离作为特征距离。

在本发明的一种示例性实施例中,所述计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述利用乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

对所述正样本特征库中的图像块特征进行切分得到样本子空间,并对所述样本子空间进行编码得到编码标识;

对所述待测特征进行切分得到待测子空间,并计算所述待测子空间与所述样本子空间之间的距离得到距离表;

利用所述编码标识在所述距离表中查询子距离,并对所述子距离进行距离汇总计算得到特征距离。

在本发明的一种示例性实施例中,所述计算所述待测子空间与所述样本子空间之间的距离得到距离表,包括:

计算所述待测子空间与所述样本子空间之间的第二欧式距离,并根据所述第二欧式距离生成距离表。

在本发明的一种示例性实施例中,所述计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

利用倒排乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述利用倒排乘积量化算法计算所述待测特征与所述正样本特征库中的图像块特征之间的特征距离,包括:

对所述正样本特征库中的图像块特征进行聚类得到聚类中心,并根据所述待测特征在所述聚类中心中确定目标聚类中心;

对所述待测特征和所述目标聚类中心进行残差计算得到残差向量,并基于所述残差向量,利用所述乘积量化算法计算所述待测特征和所述正样本特征库中的图像块特征之间的特征距离。

在本发明的一种示例性实施例中,所述根据所述待测特征在所述聚类中心中确定目标聚类中心,包括:

计算所述待测特征和所述聚类中心之间的第三欧式距离,并对所述第三欧式距离进行比较得到距离比较结果;

根据所述距离比较结果在所述聚类中心中确定目标聚类中心。

在本发明的一种示例性实施例中,所述对所述特征距离进行异常得分计算得到所述待测图像的异常得分,包括:

在所述待测图像的待测特征对应的特征距离中确定初始距离,并在所述初始距离中确定与所述正样本特征库关联的目标距离;

对所述目标距离进行计算得到异常权重,并对所述异常权重和所述初始距离进行异常得分计算得到异常得分。

在本发明的一种示例性实施例中,所述在所述待测图像的待测特征对应的特征距离中确定初始距离,包括:

对所述待测图像的待测特征对应的特征距离进行比较得到特征比较结果;

根据所述特征比较结果在所述待测图像的待测特征对应的特征距离中确定初始距离。

在本发明的一种示例性实施例中,所述在所述初始距离中确定与所述正样本特征库关联的目标距离,包括:

获取与所述初始距离对应的目标数量,并对所述初始距离进行比较得到异常比较结果;

基于所述目标数量,根据所述异常比较结果在所述初始距离中确定与所述正样本特征库关联的目标距离。

在本发明的一种示例性实施例中,所述根据所述异常得分确定所述待测图像的异常检测结果,包括:

获取与所述异常得分对应的异常阈值,并将所述异常得分与所述异常阈值进行比较得到阈值比较结果;

根据所述阈值比较结果确定所述待测图像的异常检测结果。

在本发明的一种示例性实施例中,在所述根据所述异常得分确定所述待测图像的异常检测结果之后,所述方法还包括:

若所述异常检测结果为所述待测图像异常,根据所述异常得分生成所述待测图像的异常得分图;

对所述异常得分图进行归一化处理得到归一化图像,并对所述归一化图像进行灰度化处理得到灰度图;

利用伪彩色函数生成与所述灰度图对应的彩色热力图,并对所述彩色热力图和所述待测图像进行融合处理得到检测结果图像。

在本发明的一种示例性实施例中,所述对所述异常得分图进行归一化处理得到归一化图像,包括:

对所述异常得分图进行图像拉伸处理得到拉伸图像;

对所述拉伸图像进行滤波处理得到滤波图像,并对所述滤波图像进行归一化处理得到归一化图像。

上述图像异常检测装置3300的具体细节已经在对应的图像异常检测方法中进行了详细的描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了图像异常检测装置3300的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。

下面参照图34来描述根据本发明的这种实施例的电子设备3400。图34显示的电子设备3400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图34所示,电子设备3400以通用计算设备的形式表现。电子设备3400的组件可以包括但不限于:上述至少一个处理单元3410、上述至少一个存储单元3420、连接不同系统组件(包括存储单元3420和处理单元3410)的总线3430、显示单元3440。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元3410执行,使得所述处理单元3410执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。

存储单元3420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)3421和/或高速缓存存储单元3422,还可以进一步包括只读存储单元(ROM)3423。

存储单元3420还可以包括具有一组(至少一个)程序模块3425的程序/实用工具3424,这样的程序模块3425包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线3430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备3400也可以与一个或多个外部设备3600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备3400交互的设备通信,和/或与使得该电子设备3400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口3450进行。并且,电子设备3400还可以通过网络适配器3460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器3460通过总线3430与电子设备3400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备3400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。

参考图35所示,描述了根据本发明的实施例的用于实现上述方法的程序产品3500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

相关技术
  • 图像异常检测方法、装置、电子设备及存储介质
  • 图像异常检测方法及装置、存储介质、电子设备
技术分类

06120114720242