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

使用多个机器学习程序检测图像中的异常的方法和系统与流程

2023-03-28 22:06:45 来源:中国专利 TAG:


1.本发明总体上涉及机器视觉系统,并且更具体地涉及对由成像传感器观察到的场景中的异常的检测。


背景技术:

2.图像数据中的异常的检测和定位在许多机器视觉应用中是重要的任务。常用方法是使用机器学习,通过用人监督在图像上训练机器学习来创建称为模型的预测程序,该预测程序以图像中的异常的标签或注释的形式提供。然而,异常图像在模型创建期间通常不可用,并且难以确定在实践中可能发生的所有可能类型的异常。因此,期望不需要在训练图像中注释或呈现异常的异常检测方法。例如,在制造行业中,光学检查任务经常缺乏可以用于训练异常检测模型的缺陷样本的详尽集合。这是由于现代制造机器的低错误率以及在生产过程中可能出现的缺陷的高多样性。本文描述了用于检测图像中的异常的方法。所述方法不需要在用于模型创建的训练图像中注释或呈现异常。
3.用于检测图像中的异常的方法的场景是多样的并且已经引入许多方法来解决该问题。埃雷特(ehret)等人(ehret,t.等人,图像异常:检测方法的综述和合成(a review and synthesis of detection methods)。数学成像与视觉杂志(journal of mathematical imaging and vision),2019年第61卷,第5期,第710

743页)给出了现有工作的全面综述。许多方法由于神经网络的学习描述图像中的复杂模式的辨别性表示(称为特征)的能力而使用神经网络。以下段落描述了基于神经网络的许多方法落入的类别。
4.基于自动编码器的方法试图通过低维度瓶颈来重构输入图像。其示例是venkataramanan等人(venkataramanan,s.等人,图像中的注意力引导异常定位(attention guided anomaly localization in images)。在:计算机视觉

eccv 2020,斯普林格国际出版社,卡姆,2020年,第485

503页)和刘等人(liu,w.等,走向视觉解释变化的自动编码器(towards visually explaining variational autoencoders)。在:ieee/cvf计算机视觉与模式识别(cvpr)会议论文集,2020年,第8642-8651页)提出的方法。基于自动编码器的方法通常依赖于以下假设:异常图像的重构不如无异常图像的重构准确。对于要搜索异常的新图像,因此可以通过将所述输入图像与其重构进行比较来导出异常图。不幸的是,自动编码器往往产生模糊和不准确的重构。伯格曼等人(bergmann,p等人,通过对自动编码器应用结构相似度来改进无监督的缺陷分割(improving unsupervised defect segmentation by applying structural similarity to autoencoders)。在:第十四届计算机视觉、成像与计算机图形理论与应用国际联合会议,第5卷:visapp,scitepress,set
ú
bal,2019年,第372-380页)观察到,这导致误肯定的增加,即,由于重构误差而获得高异常分数的无异常像素。自动编码器还可以学习简单地复制输入数据的部分,这将允许它们重构异常区域以及无异常区域。如果异常像素由于准确的重构而获得低异常分数,则这导致误否定的增加。为了阻止这种行为,帕克等人(park,h.等人,学习用于异常检测的存储器引导的正态性(learning memory-guided normality for anomaly detection)。在:计算机视觉与模式
识别(cvpr)会议论文集,2020年,第14372-14381页)介绍了mnad方法,该方法使用具有集成存储器模块的自动编码器。其在训练期间选择许多潜在特征,所述潜在特征需要在推理期间被重新用于重构。虽然这有帮助,但是它们的方法仍然遭受模糊重构。
5.类似于自动编码器,基于生成对抗网络(gan)的方法尝试通过找到合适的潜在表示作为用于生成器网络的输入来重构图像。苏黎世等人(schlegl,t.等人,f-anogan:用生成的对抗网络快速无监督的异常检测(fast unsupervised anomaly detection with generative adversarial networks)。在:医学图像分析(medical image analysis),第54卷,2019年,第30-44页)提出了f-anogan,针对该f-anogan,编码器网络被训练为输出最佳地重构训练数据的潜在向量。输入图像与重构的每像素位置比较产生异常图。gulrajani等人(gulrajani,i.等人,沃瑟斯坦(wasserstein)gan的改进训练(improved training of wasserstein gans)。在:神经信息处理系统研究进展(advances in neural information processing systems),第30卷,柯伦联合有限公司,2017年中)观察到基于gan的方法难以在高分辨率图像上进行训练。所以,f-anogan以64x64像素的分辨率处理图像,这导致非常粗糙的异常图。
6.若干现有的现有技术异常检测方法对从预训练网络提取的块特征(patch feature)的分布进行建模。其示例是由伯格曼等人(bergmann,p等人,不知情学生:用判别潜伏嵌入学生-教师异常检测(uninformed students:student-teacher anomaly detection with discriminative latent embeddings)。在:ieee/cvf计算机视觉与模式识别(cvpr)会议论文集,2020年,第4183-4192页),布利纳等人(burlina,p.等人,沃利现在在哪儿?用于新检测的深刻生成和辨别嵌入(where’s wally now?deep generative and discriminative embeddings for novelty detection)。在:ieee/cvf计算机视觉与模式识别(cvpr)会议论文集,2019年,第11507-11516页)以及科恩和hoshen(cohen,n和hoshen,y,具有深金字塔对应关系的子图像异常检测(sub-image anomaly detection with deep pyramid correspondences).arxiv预打印arxiv:2005.02357v1,2020年)提出的方法。
7.布利纳等人(burlina,p等人,沃利现在在哪儿?用于新检测的深刻生成和辨别嵌入(where’s wally now?deep generative and discriminative embeddings for novelty detection)。在:ieee/cvf计算机视觉与模式识别(cvpr)会议论文集,2019年,第11507-11516页)观察到,利用预训练网络的特征的方法往往优于从头开始训练的基于自动编码器或gan的方法。它们通过对从预训练网络的空间分辨激活层获得的块特征的分布建模来实现这一点。
8.科恩和hoshen(cohen,n和hoshen,y,具有深金字塔对应关系的子图像异常检测(sub-image anomaly detection with deep pyramid correspondences).arxiv预打印arxiv:2005.02357v1,2020年)针对从无异常训练数据中提取的特征图中的每个行-列坐标拟合单独的k-nn分类器。这使得算法在计算上昂贵,这禁止其在许多实际应用中被采用。
9.伯格曼等人(bergmann,p等人,不知情学生:用判别潜伏嵌入学生-教师异常检测(uninformed students:student-teacher anomaly detection with discriminative latent embeddings)。在:ieee/cvf计算机视觉与模式识别(cvpr)会议论文集,2020年,第4183-4192页)提出学生-教师方法,其中,学生网络的系综在无异常数据上匹配预训练教师网络的块描述符。通过在学生预测中增加的回归误差和增加的预测方差来检测异常。所使
用的网络表现出有限的感受野,这阻止该方法检测落在最大感受野范围之外的不一致性。然而,许多类型的异常只能通过分析整个图像而不是其小块来检测。
10.出于前述原因,需要一种可有效地检测图像中的异常而不受有限感受野或模糊重构限制的方法。


技术实现要素:

11.在权利要求书中详细说明了本发明。
12.本发明提供一种用于检测图像数据中的异常的方法。在典型的应用中,使用例如彩色或灰度相机来获取图像,并且图像例如示出其上应该检测到异常的对象或纹理。然后,使用所提出的方法确定所述图像中异常的存在。例如,使用由所提出的方法产生的异常的检测和可选的定位来检测对象表面上的误差或者决定制造产品的质量。
13.所提出的方法与先前方法相比具有若干优点:因为其学习可能描述整个输入图像的表示,所以异常的检测不受感受野限制。另外,在优选实施例中,通过比较输入图像中的区域的重构特征,而不是所述输入图像中的重构像素,在可学习特征空间中检测异常。这避免了误肯定,即,由于不准确的重构而将无异常的像素识别为异常的。
14.该方法包括两个阶段。在训练阶段,用户需要提供至少一个训练图像。对于每个训练图像,获得目标表示。所述目标表示可以源自不同源。例如,它可以包括从应用于相应训练图像的预训练神经网络提取的特征图。如果没有目标表示可用于训练图像,则训练图像本身被用作目标表示。使用训练图像及其目标表示,在训练阶段中训练三个机器学习程序。训练编码器程序和解码器程序以预测每个训练图像的目标表示。所述编码器程序学习输出维度低于相应训练图像的中间训练表示。所述解码器程序使用所述中间训练表示作为其输入然后被训练以预测所述相应的目标表示。被训练的第三机器学习程序是回归程序。所述回归程序还接收相应的训练图像作为其输入并且被训练成预测所述解码器程序的输出。
15.在搜索阶段,用户提供至少一个搜索图像。在每个搜索图像中,该方法搜索异常。为此,该方法仅需要所述搜索图像本身。在搜索阶段中,不需要目标表示。所述搜索图像作为计算中间搜索表示的所述编码器程序的输入而给出。对于所述中间搜索表示,应用所述解码器程序以计算各个搜索图像的搜索解码输出。使用所述各个搜索图像作为输入,所述回归程序输出搜索回归输出。最后,通过比较所述搜索解码输出与所述搜索回归输出来计算异常分数。根据所述异常分数的数量和布置,该方法可以使得能够在所述搜索图像中定位异常。例如,所述搜索解码输出与所述搜索回归输出的逐元素比较可以产生空间分辨的异常图。例如,可以通过计算所述搜索解码输出的平均值与所述搜索回归输出的平均值之间的差,随后对所述差进行阈值化以确定异常检测的二进制结果来执行无定位的检测。
16.在搜索阶段中,回归程序的使用具有两个优点:首先,其消除了对目标表示的需要,因为通过将所述解码器程序的输出与所述回归程序的输出而不是与目标表示进行比较来检测异常。在搜索阶段中,所述编码器程序、所述解码器程序和所述回归程序仅对搜索图像进行操作。其次,使用所述回归程序避免了由所述解码器程序的不准确预测引起的误肯定。例如,当所述目标表示由所述训练图像本身构成或由来自预训练神经网络的特征组成时,所述解码器程序难以通过由所述较低维度中间表示给出的瓶颈来准确地重构所述目标表示。所述回归程序可以通过学习以输出类似不准确的特征图来补偿这一点,例如如果所
述解码器程序计算模糊重构,那么还通过产生模糊重构。这弥补了自动编码器的关键缺点,该自动编码器遭受由比较不准确的重构与输入图像所引起的误肯定。
17.本公开涉及一种用于使用至少一个机器学习程序来检测数字图像中的异常的计算机实现的方法,包括以下步骤:(a)获取一个或更多个训练图像;(b)通过执行至少一次训练迭代来在所述训练图像上训练所述方法,每次训练迭代包括以下步骤:(b1)从所述训练图像中选择一个或更多个图像;(b2)计算每个选择的训练图像的多个性能分数,包括以下步骤:(b21)获得所述选择的训练图像的目标表示;(b22)指示编码器程序,以通过将所述编码器程序应用于所述选择的训练图像来计算比所述选择的训练图像低维度的中间训练表示;(b23)指示解码器程序,以通过将所述解码器程序应用于所述中间训练表示来计算比所述中间训练表示高维度的训练解码输出;(b24)基于所述训练解码输出和所述选择的训练图像的所述目标表示来计算一个或更多个解码性能分数;(b25)指示回归程序,以通过将所述回归程序应用于所述选择的训练图像来计算训练回归输出;(b26)基于所述选择的训练图像的所述训练回归输出和所述训练解码输出来计算一个或更多个回归性能分数;(b3)调整所述机器学习程序的参数以提高所述选择的训练图像的所述性能分数;(c)获取一个或更多个搜索图像;(d)检测所述搜索图像中的异常,对于每个搜索图像包括以下步骤:(d1)指示所述编码器程序,以通过将所述编码器程序应用于所述搜索图像来计算比所述搜索图像低维度的中间搜索表示;(d2)指示所述解码器程序,以通过将所述解码器程序应用于所述中间搜索表示来计算比所述中间搜索表示高维度的搜索解码输出;(d3)指示所述回归程序,以通过将所述回归程序应用于所述搜索图像来计算搜索回归输出;(d4)对所述搜索图像的所述搜索回归输出和所述搜索解码输出应用搜索相似度度量以计算一个或更多个搜索相似度值;(d5)基于所述搜索相似度值计算所述搜索图像的一个或更多个异常分数。
18.各种实施例可以优选地实现以下特征:
19.根据优选实施例,将在步骤(d5)中计算的所述异常分数与由至少一个第二异常检测程序计算的一个或更多个第二异常分数组合,并且基于在步骤(d5)中计算的所述异常分数的值中的一些或全部和所述第二异常分数的值中的一些或全部来确定异常的存在。
20.根据优选实施例,由第一异常检测程序单独地计算或与由至少一个第二异常检测程序计算的一个或更多个第二异常分数组合的所述计算的异常分数中的一些或全部被空间地布置,从而形成用于所述搜索图像中的一些或全部的一个或更多个异常图。
21.根据优选实施例,所述异常图中的一些或全部与由至少一个第二异常检测程序计算的一个或更多个异常图组合,所述方法包括以下步骤:(e1)在步骤(d5)中获得一个或更多个异常图作为第一异常图;(e2)通过将至少一个第二异常检测程序应用于所述搜索图像来计算一个或更多个第二异常图;(e3)将一个或更多个变换应用于所述第一异常图和第二异常图;(e4)对所述第一和第二经变换的异常图中的一些或全部进行求和以形成至少一个求和的异常图,其中所述求和的异常图中的至少一个异常分数是来自所述第一和第二经变换的异常图的异常分数的和。
22.根据优选实施例,对于至少一个训练图像,当将神经网络应用于所述训练图像时,所述目标表示包括所述神经网络的输出值中的一些或全部。
23.根据优选实施例,对于至少一个训练图像,所述目标表示包括所述训练图像的值中的一些或全部。
24.根据优选实施例,对于至少一个训练图像,所述目标表示包括一个或更多个注释值。
25.根据优选实施例,所述编码器程序、解码器程序和回归程序中的至少一个是卷积神经网络。
26.根据优选实施例,对于至少一个训练图像,所述解码性能分数中的至少一个的所述计算包括所述目标表示与所述训练解码输出的值中的一些或全部的逐元素比较。
27.根据优选实施例,对于至少一个训练图像,所述回归性能分数中的至少一个的计算包括所述训练回归输出与所述训练解码输出的值中的一些或全部的逐元素比较。
28.根据优选实施例,对于至少一个训练图像,所述解码性能分数中的一个是所述获得的目标表示与所述训练解码输出的值中的一些或全部之间的欧几里得距离的平方。
29.根据优选实施例,对于至少一个训练图像,所述回归性能分数中的一个是所述训练回归输出与所述训练解码输出的值中的一些或全部之间的欧几里得距离的平方。
30.根据优选实施例,对于至少一个搜索图像,所述搜索相似度度量计算所述搜索回归输出与所述搜索解码输出的值中的一些或全部之间的一个或更多个每像素位置欧几里得距离的平方。
31.根据优选实施例,在所述回归程序的所述第一参数调整之前,在一个或更多个训练图像上训练所述编码器程序和所述解码器程序中的一个或两个。
32.根据优选实施例,使用至少一个增强方法增强所述训练图像中的至少一个,并且将所述编码器程序和所述解码器程序中的至少一个应用于所述增强的训练图像中的至少一个。
33.本公开还涉及一种系统,其包括处理器,其中所述处理器被配置为执行根据上述实施例中的任一个的用于检测数字图像中的异常的计算机实现的方法。
34.本公开的各种示例性实施例旨在提供通过参考以下描述并结合附图而变得显而易见的特征。根据各个实施例,本文公开了示例性系统、方法和设备。然而,应当理解的是,这些实施例是通过示例而非限制的方式呈现的,并且对于阅读本公开的本领域普通技术人员将显而易见的是,可以对所公开的实施例进行各种修改,同时保持在本公开的范围内。
35.因此,本公开不限于本文中描述和示出的示例性实施例和应用。此外,本文公开的方法中的步骤的特定顺序和/或层次仅仅是示例性的方法。基于设计偏好,所公开的方法或过程的步骤的特定顺序或层次可以重新布置,同时保持在本公开的范围内。由此,所属领域的技术人员将理解,本文中所揭示的方法和技术以示例次序呈现不同步骤或动作,且本公开不限于所呈现的特定次序或层次,除非另外明确地陈述。
36.在下文中,将描述本公开的示例性实施例。应注意,除非另有说明或显而易见,否则在一些其他实施例中也可以发现所描述的实施例中的任一个的某些方面。然而,为了增加可理解性,仅当首先提及时详细描述每个方面,并且将省略相同方面的任何重复描述。
附图说明
37.通过以下结合附图的详细描述,将更充分地理解本发明,其中:
38.图1是根据本公开的实施例的示例异常检测过程的流程图;
39.图2是根据本公开的实施例的用于执行一个训练迭代的示例过程的流程图;
40.图3是根据本公开的实施例的用于计算给定的选择的训练图像的性能分数的示例过程的流程图;
41.图4是根据本公开的实施例的用于计算给定搜索图像的一个或更多个异常分数的示例搜索迭代过程的流程图;以及
42.图5示出了根据本公开的实施例的特征图的示例性集合。
43.在每个流程图中,不具有圆角的矩形(例如,图1中的101)表示过程的步骤。不具有圆角并具有虚线边框的矩形(例如,图2中的202)表示过程的可选步骤。可跳过可选步骤。具有圆角的矩形(例如,图3中的301)表示过程的所述步骤的输入和输出。
44.箭头表示步骤之间的转换。如果在没有圆角的矩形的底部(例如,在图1中的200的底部)开始多个箭头,那么执行各个转换中的一个。
45.具有标签“开始(start)”的圆表示过程的入口点。具有标签“结束(end)”的圆表示过程的终点。具有标签“全部(all)”的圆表示仅在由进入的箭头表示的所有进入的转换在相应过程开始后已经执行至少一次之后才到达的状态。一旦达到所述状态,执行由出向箭头表示的所有出向转换。所述出向转换以及每个出向转换之后的一系列步骤可以在一个或更多个计算机上顺序地(即,一个路径接另一个路径)或同时地执行。
46.具有以“开始循环重复(start loop repetition)”开始的标签的框表示程序循环的开始。所述环以具有以“完成循环重复(finish loop repetition)”开始的标签的框结束。所述两个框之间的步骤顺序构成所述循环的一个重复。所述两个框的标签描述重复次数。图2包含程序循环,其中步骤202和300构成对每个选择的训练图像执行的重复。在过程的转换流程中已经到达程序循环的开始框之后,可以开始所述重复。在所有所述重复已经完成之后,在过程的转换流程中到达程序循环的结束框。所述重复可以在一个或更多个计算机上顺序地(即,一个路径接另一个路径)或同时地执行。
具体实施方式
47.表示和定义
48.所有以下数据都应该以电子形式、优选数字的形式获得。所描述的方法和算法被视为电子形式并且被实现为在一个或更多个位置中的一个或更多个计算机上的计算机程序。
49.在本文中,值表示单个标量数字。
50.在本文中,图像通道是包含一个或更多个值的二维网格。在所述二维网格中,所述值布置在一行或更多行和一列或更多列中。所述两个维度中的第一个是所述网格的高度,即行数。所述两个维度中的第二个是所述网格的宽度,即列数。所述二维网格中的每个单元最多包含一个值。像素位置是指所述二维网格中的行列坐标。一个图像包括一个或更多个图像通道。将图像的图像通道的所述二维网格的值称为所述图像的值。在优选实施例中,图像的所有图像通道具有相同的宽度和相同的高度。在替代实施例中,图像的至少两个图像通道在其宽度或其高度或两者方面不同。如果图像的所有图像通道具有相同的宽度和相同的高度,则所述宽度和所述高度分别称为图像的宽度和高度。如果图像的所有图像通道具有相同的宽度和相同的高度,则所述图像的每个图像通道具有相同的像素位置集合,称为所述图像的像素位置。在优选实施例中,所有图像具有相同的高度、相同的宽度以及相同数
量的通道,例如在rgb图像的情况下具有三个通道或者在灰度图像的情况下具有一个通道。在替代实施例中,至少两个图像在以下三个属性中的至少一个方面不同:它们的宽度、它们的高度和它们的通道数量。在优选实施例中,所述二维网格的每个单元完全包含一个值。在一个替代实施例中,至少一个图像具有至少一个通道,其中至少一个单元不包含值。为了简洁和可理解,图像还指2d像素网格以外的成像数据结构,例如3d体素网格或3d点云。
51.在本文中,异常是指图像中的一个或更多个值与其预期范围的偏差。异常检测是指决定图像是否包含异常的任务。异常分数是表示在图像中或在图像的值的子集中存在异常的值。图像异常分数是表示在图像中存在异常的异常分数。区域异常分数是表示在图像的区域中存在异常的异常分数。搜索图像是要被搜索异常的图像。在优选实施例中,执行异常检测的计算机程序针对每个给定搜索图像的每个像素位置输出一个区域异常分数。在替代实施例中,所述计算机程序针对至少一个像素位置和至少一个搜索图像输出零个或更多个区域异常分数。在替代实施例中,所述计算机程序针对至少一个搜索图像输出一个或更多个区域异常分数,每个区域异常分数对应于给定搜索图像中的一个或更多个位置。在替代实施例中,所述计算机程序针对至少一个搜索图像输出一个或更多个图像异常分数和零个或更多个区域异常分数。在替代实施例中,所述计算机程序输出以下三种类型的异常分数中的至少一个:给定搜索图像的图像异常分数、给定搜索图像中的每个像素位置的区域异常分数、以及对应于给定搜索图像中的一个或更多个位置的区域异常分数。此外,可以返回所述三种类型的异常分数中每一种的多于一个的异常分数,而不偏离本发明的精神。
52.在本文中,异常图是包含异常分数的多维网格。在优选实施例中,所述多维网格是其中异常分数被布置在一行或更多行和一列或更多列中的二维网格。在替代实施例中,所述多维网格包含布置在三个或更多个维度中的异常分数。在优选实施例中,执行异常检测的计算机程序以一个或更多个异常图的形式生成所有区域异常分数。在替代实施例中,所述计算机程序生成表示在图像的区域中存在异常但不作为异常图的一部分的一些区域异常分数。在替代实施例中,所述计算机程序不产生异常图,且仅输出一或多个图像异常分数。在优选实施例中,异常图的每个网格位置包含一个异常分数。在替代实施例中,异常图的一个或更多个网格位置不包含异常分数。
53.在本文中,机器学习程序表示处理一个或更多个输入值以根据一组参数的值生成一个或更多个输出值的计算机程序。所述输入值被称为所述机器学习程序的输入。所述输出值被称为所述机器学习程序的输出。所述参数集包括被称为所述机器学习程序的参数的一个或更多个值。机器学习程序可以用于执行一个或更多个任务。可以组合使用多个机器学习程序来执行一个或更多个任务。所提出的方法组合多个机器学习程序以执行异常检测。可以用一个或更多个性能度量来度量一个或更多个机器学习程序对一个或更多个任务的性能。性能度量是计算机程序,其处理一个或更多个值(在本文中被称为性能输入值)以计算一个或更多个值(在本文中被称为性能分数)。所述性能输入值包括所述输入值、输出值以及相应的机器学习程序的参数的联合的全部或子集。例如,所述性能输入值可以由相应的机器学习程序中的一些或全部的所有输出值、参数中的一些参数和无输入值组成。所述性能输入值还可包括附加值,例如所述输入值的期望输出值。米切尔(mitchell,t.m,机器学习(machine learning),麦格劳希尔(mcgraw-hill)计算机科学系列,mcgraw-hill:纽约,1997年,第1章)和古德费洛等人(goodfellow,i等人,深度学习(deep learning)。麻省
理工学院出版社,2016年,第5章)提供了伴随有任务和性能度量的示例的机器学习的综合定义。
54.向一个或更多个给定值应用机器学习程序是指当使用所述给定值中的一些或全部作为所述机器学习程序的所述输入值时,计算所述机器学习程序的所述输出值。因此,当将机器学习程序应用于图像时,所述图像包含的值的全部或子集被用作所述机器学习程序的输入值。
55.机器学习程序的所述输出的维度是所述输出中的输出值的数量。机器学习程序的所述输入的维度是所述输入中的输入值的数量。图像的维度是所述图像组成的值的数量。值的集合的维度是所述集合组成的值的数量。
56.在本文中,逐元素比较表示两个值集合的比较,其中所述集合中的每一个集合包含相同数量的值,并且所述两个集合中的第一集合的每个值与所述两个集合中的第二集合的值中的一个比较。
57.在本文中,第一值集合的逐元素仿射变换是指由单个缩放值和单个移位值来参数化的所述集合的所述值的变换。逐元素仿射变换的结果是具有与所述第一集合相同的维度、结构和顺序的第二值集合。将所述第一集合的每个值变换成所述第二集合的恰好一个值。所述第一集合的所述值的所述变换包括:将所述值与所述缩放值相乘,接着将所述移位值与所述相乘的结果相加。
58.在本文中,神经网络表示机器学习程序,该机器学习程序在给定一个或更多个输入值的情况下通过被称为神经元的单元的概念有向图来计算一个或更多个输出值。取决于所述概念图的结构,神经网络可在不将每个神经元实现为图形数据结构中的单独节点的情况下计算所述输出值。在下文中,将说明神经网络的概念定义。随后,将给出不要求将每个神经元实现为图形数据结构中的个体节点的常见实现形式的示例。
59.在概念上,所述神经元通过有向边连接到其他神经元和所述输入值。每个神经元计算单个值,称为所述神经元的输出。有向边(在下文中,简称为“边”)将值从其源传输至其目的地。所述源是神经元的输入值或所述输出。目的地总是神经元。每个神经元具有至少一个传入边。神经元的所述传入边的所述源由零个或更多个输入值和零个或更多个其他神经元组成。神经元的所述传入边的值被称为所述神经元的传入值。根据所述神经元的传入值和所述神经元的参数集的值来计算所述神经元的输出。例如,如果神经元的所述输出是其传入值之和,则所述神经元的所述参数集可以是空集。作为另一示例,如果神经元的所述输出是第一参数值与所述神经元的传入值之和,则所述神经元的所述参数集包括所述第一参数值。作为另一示例,如果神经元的所述输出是其传入值的加权和,其中每个传入值在所述求和之前乘以权重值,则所述神经元的所述参数集包括所述权重值。作为另一示例,如果具有一个传入值的神经元的所述输出是被应用于所述传入值的非线性函数,则所述神经元的所述参数集包括所述非线性函数的参数。神经元可以具有偏置值,该偏置值表示添加到所述神经元的输出的值。在这种情况下,所述偏置值是所述神经元的参数之一。神经网络的所有神经元的参数被称为所述神经网络的参数。神经网络的输出值由所述神经网络中的一个或更多个神经元的输出组成。神经网络的输出值可以是同一神经网络中的另一神经元的传入值之一。神经网络的输出值的集合被称为神经网络的输出。将神经网络应用至一个或更多个给定值是指在使用所述给定值作为所述神经网络的输入值时计算所述神经网络的输
出值。因此,当将神经网络应用于图像时,所述图像包含的值的全部或子集被用作所述神经网络的输入值。米切尔(mitchell,t.m,机器学习(machine learning),麦格劳希尔(mcgraw-hill)计算机科学系列,mcgraw-hill:纽约,1997年,第4章)提供了神经网络的详细解释。
60.在一些神经网络中,所述概念图的所述结构允许计算一些或全部神经元的输出,而无需将所述神经元中的每个神经元实现为图形数据结构中的单独节点。例如,如果多个神经元具有相同的传入值,并且所述神经元中的每个神经元的输出是相应神经元的传入值的加权和,则可以在单个矩阵向量乘法中计算所述神经元的输出。在所述矩阵向量乘法中,向量包含所述传入值,并且矩阵包含用于神经元和传入值的每个组合的一个权重值。所述矩阵向量乘法的结果包含所述神经元的每一个的输出。在另一示例中,如果多个神经元具有两个传入值,并且所述神经元中的每个神经元的输出是相应神经元的所述两个传入值之和,则可以在单个向量-向量加法中计算所述神经元的输出。在所述向量-向量加法中,第一向量包含所述神经元中的每一个的所述两个传入值中的第一个,而第二向量包含所述神经元中的每一个的所述两个传入值中的第二个。
61.存在不同类型的神经网络,例如卷积神经网络、回归神经网络和递归神经网络。所述类型的神经网络通常基于由相应的神经网络执行的操作来表征,诸如在卷积神经网络的情况下的卷积。所述类型的神经网络通常可以组合在神经网络中,例如在卷积递归神经网络中。古德费洛等人(goodfellow,i等人,深度学习(deep learning)。麻省理工学院出版社,2016年,第9章和第10章)提供了流行类型的神经网络的详细解释,例如卷积神经网络和递归神经网络。
62.在本文件中,相似度度量是计算第一值集合和第二值集合之间的相似或不相似的计算机程序。通过相似度度量计算的结果由被称为相似度值的一个或更多个值组成。对于一些相似度度量,增加的相似度值表示增加的相似度。对于其他相似度度量,增加的相似度值表示减少的相似度,例如,在两个值之间的绝对距离就是这种情况。
63.在本文中,编码器程序是机器学习程序,其输出具有比所述编码器程序的输入更低的维度,并且其输出是对被称为解码器程序的另一机器学习程序的输入的一部分。编码器程序的输出被称为中间表示。解码器程序是机器学习程序,其输入是编码器程序的中间表示,并且其输出具有比所述中间表示更高的维度。
64.在本文中,训练机器学习程序是指调整所述机器学习程序的所述参数中的一些或全部以提高由一个或更多个性能度量计算的所述性能分数的过程。所述训练包括一个或更多个训练迭代200。在本文中,训练数据集表示用于所述训练的一个或更多个图像(称为训练图像)的集合。在每个训练迭代200中,选择一个或更多个训练图像。在每次训练迭代200中,将正被训练的所述机器学习程序应用于所述选择的训练图像中的每个或应用于由编码器程序在所述选择的训练图像上计算的所述中间表示。对于每个所选择的训练图像,所述性能分数由所述性能度量基于在所述应用到所述选择的训练图像期间被训练的所述机器学习程序的所述输入值、输出值和参数来计算。如果所述性能分数的所述计算需要额外的性能输入值,则需要为所述选择的训练图像指定这些额外的性能输入值。例如,如果第一机器学习程序的任务是预测第二机器学习程序的输出,则在所述第一机器学习程序的训练期间,所述第二机器学习程序的所述输出可以被包括在所述性能输入值中。在每次训练迭代
200中,对正被训练的所述机器学习程序的所述参数进行调整,以便提高针对所述选择的训练图像所计算的所述性能分数。所述参数中的一些参数可以从所述调整中排除。例如,在神经网络的训练期间,经常将基于单个传入值计算非线性函数的神经元的参数从调整中排除。
65.在本文件中,预训练是指在其中使用所述机器学习程序的后续训练之前训练所述机器学习程序。训练数据集和所使用的性能度量可以在所述预训练和所述后续训练之间是相同或不同的。此外,在所述后续训练中不需要训练被预训练的机器学习程序。例如,在所述后续训练中,机器学习程序可被训练成预测预训练神经网络的输出,而在所述后续训练中不调整所述预训练神经网络。
66.在本文中,目标表示是在用于所选择的训练图像的解码器程序的训练期间,所述解码器程序的期望输出值的集合。例如,如果所述期望输出值仅对应于所述解码器程序的输出的子集,则目标表示的维度不需要等于所述解码器程序的输出的维度。
67.在本文件中,回归程序是机器学习程序,其在所述回归程序的训练期间的期望输出值由解码器程序的某些或全部输出值给出。因此,训练回归程序以预测解码器程序的某些或全部输出值。如果回归程序和相应的解码器程序被联合训练,则所述解码器程序的参数可以被调整以便促进所述回归程序的任务,即,提高用于训练所述回归程序的性能分数。
68.在本文中,增强指的是应用于训练图像或搜索图像的变换或一系列变换。图像的增强包括顺序应用一个或更多个变换,称为增强方法。一些增强方法例如通过计算多个训练图像的逐元素平均来联合地增强多个图像。
69.在本文中,特征图是包含描述图像的特征的值的二维网格。在所述二维网格中,所述值布置在一行或更多行和一列或更多列中。所述两个维度中的第一个是所述网格的高度,即行数。所述两个维度中的第二个是所述网格的宽度,即列的数量。特征图的集合包含一个或更多个特征图。
70.图5示出了特征图500的示例性集合。所述示例性集合包含五个特征图,其中每个特征图501包含八行和十列。第一特征图501的二维网格由虚线表示。它由80个单元502组成,每个单元包含一个值。图5中所示的特征图的集合是示例性的。在除图5中所示的那些特征图之外的其他特征图中,行数、列数和每单元的值数可以变化。例如,在稀疏特征图中,一个或更多个单元不包含值。在图5中所示的特征图的示例性集合中,每个特征图具有相同的大小,即,相同数量的行和列。在特征图的另一集合中,一个或更多个特征图可具有与同一特征图的集合中的另一特征图不同的大小。另外,特征图的数目可改变。
71.训练阶段
72.该方法包括两个阶段:训练阶段和搜索阶段。在该方法的训练阶段中,对编码器程序、解码器程序和回归程序进行训练。在搜索阶段中,所述程序用于通过执行一个或更多个搜索迭代来检测一个或更多个搜索图像中的异常。
73.图1是示例异常检测过程100的流程图。在以下部分中说明异常检测过程100的步骤。
74.在本文件中,方法的程序是指所述三个程序,即,所述编码器程序、所述解码器程序和所述回归程序。在优选的实施例中,方法的程序是卷积神经网络。在可替代实施例中,方法的程序中的至少一个是不包括卷积运算的神经网络。在可替代的实施例中,方法的程
序中的至少一个是除了神经网络之外的机器学习程序,例如,k最近邻程序、支持向量机或决策树。此外,在不偏离本发明的精神的情况下,方法的程序中的一些或全部可以是机器学习程序的集合。
75.参数初始化101
76.该部分描述了参数初始化步骤101。在图1中描述的异常检测过程100中,所述参数初始化步骤101被称为步骤101。在第一次训练迭代200之前,所述编码器程序、解码器程序和回归程序的参数被设置为初始值。
77.在优选实施例中,所述初始值是根据由相应的机器学习程序所使用的机器学习方法的规范来设置的。例如,在神经网络中,神经元的偏置值通常最初被设置为零。作为另一示例,在神经网络中,其输出计算包括加权和的神经元所使用的权重值通常由伪随机数生成器程序根据特定概率分布(例如,正态分布)的规范来初始化。在可替代的实施例中,通过预训练一个或更多个机器学习程序来获得所述初始值的一些或全部。例如,所述编码器程序的参数可以用被训练为对来自单独的训练数据集的图像进行分类的机器学习程序的参数中的一些或全部来初始化。
78.训练图像获取102
79.本部分描述训练图像获取步骤102。在图1中描绘的异常检测过程100中,所述训练图像获取步骤被称为步骤102。在第一次训练迭代200之前,获取一个或更多个训练图像。
80.在优选实施例中,在第一次训练迭代之前获取所有训练图像。在替代实施例中,在训练迭代期间或之后,新的训练图像被获取并添加到所有训练图像的集合中。
81.在优选实施例中,所有训练图像是2d灰度或2d彩色图像。在替代实施例中,所述训练图像中的一些或全部包括例如从高光谱成像传感器或深度相机获得的其他传感器数据。在替代实施例中,所述训练图像中的一些或全部是3d图像,例如3d点云或3d体素网格。
82.在优选实施例中,所有训练图像具有相同的宽度、高度和图像通道数量。在替代实施例中,所述训练图像中的一些或全部在宽度、高度或图像通道数量上不同。
83.训练迭代200
84.以下部分描述用于执行训练迭代200的过程。在图1中描述的异常检测过程100中,训练迭代被称为步骤200。在已经初始化所述参数(步骤101)并且已经获取一个或更多个训练图像(步骤102)之后,第一次训练迭代200开始。每次训练迭代200之后是另一次训练迭代200、搜索迭代400或者一个或更多个额外训练图像102的获取。
85.图2是用于执行一次训练迭代200的示例过程的流程图。在每次训练迭代200的第一步骤中,从所述训练图像中选择一个或更多个图像。在图2中描述的训练迭代过程200中,训练图像的所述选择被称为步骤201。在以下部分中解释所述训练迭代过程200的后续步骤202、300和203。
86.训练图像增强202
87.该部分描述训练图像增强步骤202。在图2中描绘的训练迭代过程200中,所述训练图像增强步骤被称为步骤202。在步骤201中选择的所述训练图像中的每一个可以可选地在被用于训练迭代过程200的后续步骤之前被增强。
88.在优选实施例中,使用由用户指定的一种或更多种增强方法来增强每个所选择的训练图像。在优选实施例中,用于所述增强方法的选择是相应训练图像的随机旋转、随机水
平和垂直翻转以及随机颜色变化。在优选实施例中,所述增强方法的参数由用户指定,例如所述随机化旋转的概率和程度。在替代实施例中,所述增强方法包括其他或额外的变换,例如,对相应训练图像的随机调整大小或裁剪。在替代实施例中,所述增强方法中的至少一种增强方法的使用、参数或这两者不是由用户指定的,而是例如基于相应的训练图像的特性自动确定的。增强方法的所述自动确定可以例如包括对所述训练图像测试水平对称性并且相应地将随机水平翻转应用于每个训练图像。在替代实施例中,所述增强方法中的至少一者例如通过计算多个训练图像的逐元素平均来联合地增强多个训练图像。在替代实施例中,所述增强方法中的至少一种不是一个或更多个训练图像的随机变换,而是固定变换。
89.在优选实施例中,如果指定多个增强方法,则将多个增强方法应用于训练图像。在替代实施例中,如果指定多个增强方法,则每个训练图像仅应用一个增强方法或不应用增强方法。
90.在优选实施例中,在一次训练迭代中,使用多个增强方法将所述选择的训练图像中的每一个增强一次。因此,如果选择所述训练图像多次,则可以在多次训练迭代的过程中多次增强训练图像。在替代实施例中,对于已经在先前训练迭代中选择的至少一个选择的训练图像,重新使用来自所述先前训练迭代的增强图像。在替代实施例中,所述选择的训练图像中的至少一个没有被增强或在一次训练迭代中被多次增强。
91.在优选实施例中,每个选择的训练图像在被用于训练迭代过程200的后续步骤之前由其相应的增强图像替换。在替代实施例中,至少一个选择的训练图像被保持在选择的训练图像的集合中,并且所述集合利用所述训练图像的增强来扩展。
92.在优选实施例中,训练图像增强步骤202仅在训练迭代200期间对所选择的训练图像执行。在替代实施例中,训练图像增强步骤202仅在训练迭代200之前在步骤102中获取的一些或所有训练图像上执行或另外执行。在替代实施例中,在异常检测过程100的过程中不执行训练图像增强步骤202。
93.性能分数计算300
94.以下部分描述在训练迭代200中用于计算性能分数300的过程。在图2中描述的训练迭代过程200中,性能分数的计算被称为步骤300。在已经选择(步骤201)和可选地增强(步骤202)一个或更多个训练图像之后,针对每个选择的训练图像计算一个或更多个性能分数。针对可能增强的选择的训练图像的性能分数300的所述计算仅需要所述选择的训练图像本身并且不依赖于其他选择的训练图像。因此,性能分数300的所述计算可以与增强202或另一个所选择的训练图像的性能分数计算300同时执行。
95.图3是用于计算给定的选择的训练图像的性能分数的示例过程的流程图。在图3所示的性能分数计算过程300中,所述选择的训练图像由301表示。在以下部分中解释所述性能分数计算过程300的步骤302、304、306、308、310和312。
96.获得目标表示302
97.该部分描述了对于给定的选定训练图像301获得目标表示的步骤,该目标表示在形式上由y
target
表示。在图3中描绘的性能分数计算过程300中,获得目标表示被称为步骤302,并且所获得的目标表示由303表示。
98.在优选实施例中,当将在图像分类数据集上预训练的预训练卷积神经网络应用于所述选择的训练图像时,所述目标表示包括所述预训练神经网络的输出值中的一些或全
部。在替代实施例中,所述预训练神经网络是针对除了分类之外的任务在图像数据集上预训练的,例如语义分段或对象检测。在替代实施例中,所述预训练神经网络是在包括除图像之外的数据的数据集上预训练的。在替代实施例中,所述预训练神经网络不是卷积神经网络。在替代实施例中,所述目标表示包括尚未被训练的神经网络的输出值中的一些或全部。在替代实施例中,所述目标表示包括不是神经网络的机器学习程序(例如,支持向量机或决策树)的输出值中的一些或全部。在替代实施例中,所述目标表示包括所述训练图像的值中的一些或全部。
99.在替代实施例中,所述目标表示包括例如从所述训练图像的人类注释中获得的注释值。
100.在优选实施例中,所述目标表示在空间上布置在特征图的集合中,并且所述特征图中的每一者具有与所述训练图像相同的宽度和高度。在替代实施例中,所述特征图中的至少一个的宽度和高度中的至少一个不同于所述训练图像的相应宽度和高度。在替代实施例中,所述目标表示的值中的一些或全部在空间上被布置在具有多于两个维度的一个或更多个多维网格中,例如三维体素网格而不是特征图。在替代实施例中,所述目标表示的值中的一些或全部在空间上被布置在不是网格的数据结构(例如,3d点云)中。在替代实施例中,所述目标表示包括与所述训练图像中的位置不具有空间对应关系的一个或更多个值。
101.在优选实施例中,在异常检测过程的过程中获得的每个目标表示具有相同数量的特征图。所述目标表示中的特征图的所述数量在形式上由c
target
表示。在替代实施例中,至少一个目标表示具有与另一个目标表示不同数量的特征图。
102.应用编码器程序304
103.该部分描述了将所述编码器程序304应用于所述选择的训练图像301以计算中间表示(称为中间训练表示305)的步骤。在图3中描述的性能分数计算过程300中,应用所述编码器程序被称为步骤304,并且所述中间训练表示由305表示。形式上,所述编码器程序(由e表示)应用于训练图像x
train
可以写为m
train
=e(x
train
),其中m
train
是所述中间训练表示。
104.在优选实施例中,在异常检测过程的过程中计算的所有中间训练表示具有相同的维度。在替代性实施例中,所述中间训练表示的维度中的一些或全部维度不同。
105.应用解码器程序306
106.该部分描述了将所述解码器程序306应用于所述中间训练表示305以计算训练解码输出307的步骤。在图3中描述的性能分数计算过程300中,应用所述解码器程序被称为步骤306,并且所述训练解码输出由307表示。形式上,所述解码器程序306(由d表示)应用到所述中间训练表示m
train
可以被写为y
dec
=d(m
train
),其中y
dec
是所述训练解码输出307。
107.在优选实施例中,所述训练解码输出在空间上被布置在特征图的集合中,并且所述特征图中的每一者具有与所述训练图像相同的宽度和高度。在替代实施例中,所述特征图中的至少一个的宽度和高度中的至少一个不同于所述训练图像的相应宽度和高度。在替代实施例中,所述训练解码输出的值中的一些或全部在空间上被布置在具有多于两个维度的一个或更多个多维网格中,例如三维体素网格而不是特征图。在替代实施例中,所述训练解码输出的值中的一些或全部在空间上被布置在不是网格的数据结构(例如,3d点云)中。在替代实施例中,所述训练解码输出包括与所述训练图像中的位置没有空间对应关系的一个或更多个值。
108.在优选实施例中,在异常检测过程的过程中计算的每个训练解码输出具有相同数量的特征图。所述训练解码输出中的特征图的所述数量在形式上由c
dec
表示。在替代实施例中,至少一个训练解码输出具有与另一训练解码输出不同数目的特征图。
109.解码性能度量308
110.本部分描述使用被称为解码性能度量308的性能度量将所述获得的目标表示303与所述训练解码输出307进行比较的步骤。由所述解码性能度量计算的性能分数被称为解码性能分数309。在图3中描述的性能分数计算过程300中,所述解码性能度量计算称为步骤308,并且所述解码性能分数由309表示。所述解码性能度量308的性能输入值包括所述训练解码输出值307中的一些或全部和所述获得的目标表示值303中的一些或全部。
111.在优选实施例中,所述解码性能度量计算单个解码性能分数。在替代实施例中,所述解码性能度量计算多个解码性能分数。
112.在优选实施例中,c
dec
大于c
target
,并且仅所述训练解码输出的第一c
target
特征图与所述获得的目标表示的所有c
target
特征图一起用作用于计算所述解码性能分数的性能输入值。在替代实施例中,c
dec
小于、等于或大于c
target
,并且,为了计算所述解码性能分数,使用所述训练解码输出的所述c
dec
特征图中的一些或全部和所述获得的目标表示的所述c
target
特征图中的一些或全部。在替代实施例中,所述解码性能度量的所述性能输入值包括在y
target
和y
dec
中的至少一个中的在空间上未布置在特征图中的值。
113.在优选实施例中,所述解码性能分数是所述训练解码输出的所述相应特征图与所述获得的目标表示之间的欧几里得距离的平方。在优选实施例中,所述欧几里得距离的平方是通过以下方式计算的:针对所述训练图像中的每个像素位置和所述获得的目标表示中的每个特征图,计算在所述特征图中的所述像素位置处的所述训练解码输出的值与在所述特征图中的所述像素位置处的所述获得的目标表示的值之间的差,使所有所述计算的差平方并且将所有所述计算的平方求和。所述解码性能分数的所述计算(在形式上由p
dec
表示),作为所述训练解码输出y
dec
的所述各个特征图与所述获得的目标表示y
target
之间的所述欧几里得距离的平方,可以在形式上写为
[0114][0115]
其中,c表示特征图的索引,“pos”表示所述相应训练图像x
train
中的像素位置的集合,并且和分别表示特征图中在像素位置p处具有索引c的y
dec
和y
target
的值。在替代实施例中,所述解码性能分数的计算包括所述获得的目标表示与所述训练解码输出的值的一些或全部进行逐元素比较,具体地,所述逐元素比较包括根据所述计算方法计算所述欧几里得距离的平方。因此,当所述解码性能分数是所述训练解码输出的所述相应特征图与所述获得的目标表示之间的所述欧几里得距离的平方时,所述解码性能分数的计算包括所述获得的目标表示与所述训练解码输出的值中的一些或全部的所述逐元素比较。在又一替代实施例中,所述解码性能分数的计算包括所述训练解码输出与除了所述欧几里得距离的平方之外的所述获得的目标表示的逐元素比较。在替代实施例中,所述解码性能分数的计算包括将一个或更多个相似度度量应用于所述训练解码输出的一些值或全部值以及
所述获得的目标表示的一些值或全部值。在替代实施例中,所述解码性能分数的计算包括对所述训练解码输出和所述获得的目标表示中的至少一者的后处理,例如将两者缩放至相同的高度和宽度以用于逐元素比较。此外,在不背离本发明的精神的情况下,所述解码性能度量的所述性能输入值可以包括除了所述训练解码输出和所述获得的目标表示之外的值。
[0116]
应用回归程序310
[0117]
该部分描述了将所述回归程序310应用于所述选择的训练图像301以计算训练回归输出311的步骤。在图3所示的性能分数计算过程300中,应用所述回归程序被称为步骤310并且所述训练回归输出由311表示。形式上,将由r表示的所述回归程序310应用于所述训练图像x
train
可以写为y
reg
=r(x
train
),其中y
reg
是所述训练回归输出311。
[0118]
在优选实施例中,所述训练回归输出在空间上被布置在特征图的集合中,并且所述特征图中的每一者具有与所述训练图像相同的宽度和高度。在替代实施例中,所述训练回归输出的值的一些或全部在空间上被布置在具有多于两个维度的一个或更多个多维网格中,例如三维体素网格而不是特征图。在替代实施例中,所述训练回归输出的值的一些或全部在空间上被布置在不是网格的数据结构(例如,3d点云)中。在替代实施例中,所述训练回归输出包括与所述训练图像中的位置没有空间对应关系的一个或更多个值。
[0119]
在优选实施例中,在异常检测过程的过程中计算的每个训练回归输出具有相同数量的特征图。所述训练回归输出中的特征图的所述数量在形式上由c
reg
表示。在替代实施例中,至少一个训练回归输出具有与另一个训练回归输出不同数量的特征图。
[0120]
回归性能度量312
[0121]
本部分描述了使用被称为回归性能度量312的性能度量将所述训练回归输出311与所述训练解码输出307进行比较的步骤。由所述回归性能度量计算的性能分数被称为回归性能分数313。在图3所示的性能分数计算过程300中,所述回归性能度量计算被称为步骤312,并且所述回归性能分数由313表示。所述回归性能度量312的性能输入值包括所述训练解码输出值307中的一些或全部和所述训练回归输出值311中的一些或全部。
[0122]
在优选实施例中,所述回归性能度量计算单个回归性能分数。在替代实施例中,所述回归性能度量计算多个回归性能分数。
[0123]
在优选实施例中,c
dec
是c
target
和c
reg
之和,并且仅所述训练解码输出的最后c
reg
特征图与所述训练回归输出的所有c
reg
特征图一起用作用于计算所述回归性能分数的性能输入值。在替代实施例中,c
dec
小于、等于或大于c
target
和c
reg
之和,并且,为了计算所述回归性能分数,使用所述训练解码输出的所述c
dec
特征图中的一些或全部和所述训练回归输出的所述c
reg
特征图中的一些或全部。在替代实施例中,所述回归性能度量的所述性能输入值包括y
reg
和y
dec
中的至少一个中的在空间上未布置在特征图中的值。
[0124]
在优选实施例中,所述回归性能分数是所述训练解码输出的所述相应特征图与所述训练回归输出之间的欧几里得距离的平方。在优选实施例中,通过针对所述训练图像中的各像素位置和所述训练回归输出中的各特征图,计算在所述特征图中的所述像素位置处的所述训练回归输出的值与在所述特征图中的所述像素位置处的所述训练解码输出的值之间的差,使所有所述计算出的差平方并将所有所述计算出的平方相加,来计算所述欧几里得距离的平方。所述回归性能分数(在形式上由p
reg
表示)的所述计算,作为所述训练回归输出y
reg
与所述训练解码输出y
dec
的所述相应特征图之间的所述欧几里得距离的平方,可以
在形式上写为
[0125][0126]
其中,c表示特征图的索引,“pos”表示所述相应训练图像x
train
中的像素位置的集合,表示该特征图中在像素位置p处具有索引c的y
reg
的值,并且表示该特征图中在像素位置p处其索引是c
target
与c之和的y
dec
的值。在替代实施例中,所述回归性能分数的计算包括所述训练回归输出与所述训练解码输出的值的一些或全部的逐元素比较,具体地,所述逐元素比较包括根据所述计算方法计算所述欧几里得距离的平方。结果,当所述回归性能分数是所述训练解码输出的所述相应特征图和所述训练回归输出之间的所述欧几里得距离的平方时,所述回归性能分数的计算包括所述训练回归输出和所述训练解码输出的值中的一些或全部的所述逐元素比较。在替代实施例中,所述回归性能分数的计算包括所述训练解码输出和所述训练回归输出的除了所述欧几里得距离的平方之外的逐元素比较。在替代实施例中,所述回归性能分数的计算包括将一个或更多个相似度度量应用于所述训练解码输出的一些或全部值以及所述训练回归输出的一些或全部值。在替代实施例中,所述回归性能分数的计算包括对所述训练解码输出和所述训练回归输出中的至少一者的后处理,例如将两者缩放至相同的高度和宽度以用于逐元素比较。此外,在不背离本发明的精神的情况下,所述回归性能度量的所述性能输入值可以包括除所述训练解码输出和所述训练回归输出之外的值。
[0127]
在已经使用解码性能度量308来计算解码性能分数309并且已经使用回归性能度量312来计算回归性能分数313之后,性能分数计算过程300结束。由所述性能分数计算过程300计算的性能分数由所述解码性能分数309和所述回归性能分数313组成。
[0128]
参数调整203
[0129]
本部分描述参数调整步骤203。在图2中描述的训练迭代过程200中,所述参数调整步骤称为步骤203。在参数调整步骤203中,调整所述编码器程序、所述解码器程序和所述回归程序的所述参数中的一些或全部以提高针对所述选择的训练图像301计算的所述性能分数309和313中的一些或全部。
[0130]
在优选实施例中,调整所述参数以最小化为在所述训练迭代中选择的所述训练图像计算的所述解码性能分数和所述回归性能分数的加权和。在优选实施例中,所述加权和是所述解码性能分数和所述回归性能分数的平均值。在替代实施例中,计算所述加权和包括将所述性能分数中的每个性能分数与相应的权重值(例如,由用户指定的权重值)相乘。在替代实施例中,调整所述参数以最小化阈值化性能分数的加权和,其中性能分数的权重取决于一个或更多个阈值,例如由用户指定的阈值。此外,在不背离本发明的精神的情况下,可以调整所述参数以使所述解码性能分数和所述回归性能分数的一般非线性函数最小化或最大化。
[0131]
在优选实施例中,使用一个或更多个基于梯度的优化方法(例如随机梯度下降)来调整所述参数。在替代实施例中,所述参数中的一些或全部是使用一种或更多种非基于梯度的优化方法(例如进化优化算法)来调整的。另外,在不脱离本发明的精神的情况下,所述参数中的一些或全部可以通过其他优化算法迭代地调整或非迭代地计算。
[0132]
在优选实施例中,使用反向传播算法来计算所述基于梯度的优化方法所需的一阶导数以及(如果适用的话)高阶导数,例如,如lecun等人(lecun,y.a.等人,高效backprop(efficient backprop),在:神经网络:行业技巧:第二版(neural networks:tricks of the trade:second edition),斯普林格,柏林,海德堡,2012年,第9

48页)所描述的。在替代实施例中,所述导数中的一些或全部是通过数值微分、符号微分或自动微分来计算或近似的。另外,在不背离本发明的精神的情况下,所述导数中的一些或全部可以通过其他微分算法来计算。
[0133]
在已经在参数调整步骤203中调整所述参数中的一些或全部之后,训练迭代过程200结束。每次训练迭代200之后是另一次训练迭代200、搜索迭代400或者一个或更多个额外训练图像102的获取。
[0134]
搜索阶段
[0135]
在该方法的搜索阶段中,已经在训练阶段中训练的所述编码器程序、所述解码器程序和所述回归程序用于通过执行一个或更多个搜索迭代400来搜索一个或更多个搜索图像401中的异常。在图1中描述的异常检测过程100中,搜索迭代被称为步骤400。图4是用于计算给定搜索图像401的一个或更多个异常分数的示例搜索迭代过程400的流程图。多个搜索迭代过程400可以由位于一个或更多个位置中的一个或更多个计算机的系统同时执行以搜索一个或更多个搜索图像中的异常。搜索迭代过程400的步骤在以下部分中解释。
[0136]
在优选实施例中,在最后的训练迭代之后执行第一次搜索迭代。在替代实施例中,在搜索迭代之后或期间执行至少一次训练迭代200。
[0137]
在优选实施例中,所有搜索图像是2d灰度或2d彩色图像。在替代实施例中,所述搜索图像中的一些或全部包括例如从高光谱成像传感器或深度相机获得的其他传感器数据。在替代实施例中,所述搜索图像中的一些或全部是3d图像,例如3d点云或3d体素网格。
[0138]
搜索图像增强
[0139]
在搜索迭代400的开始,可以可选地增强搜索图像。在优选实施例中,没有搜索图像被增强。在替代实施例中,至少一个搜索图像用在所述训练阶段中使用的所述增强方法中的至少一种来增强。在替代实施例中,至少一个搜索图像用未在所述训练阶段中使用的至少一个额外增强方法来增强。在替代实施例中,至少一个搜索图像被多次增强,每次使用不同的增强方法、不同的增强参数或这两者,从而产生每个搜索图像多个增强的搜索图像,例如以便跨所述增强的搜索图像对针对每个增强的搜索图像计算的异常分数求平均值。在替代实施例中,例如通过计算多个搜索图像的逐元素平均来联合地增强多个搜索图像。
[0140]
应用编码器程序304
[0141]
该部分描述了将所述编码器程序304应用于所述给定搜索图像401以计算中间表示(称为中间搜索表示402)的步骤。在图4所示的搜索迭代过程400中,应用所述编码器程序被称为步骤304,因为使用与性能分数计算300的步骤304中相同的编码器程序。在图4所示的搜索迭代过程400中,针对所述给定搜索图像401计算的所述中间搜索表示由402表示。形式上,将所述编码器程序304e应用于搜索图像x
search
可写为m
search
=e(x
search
),其中,m
search
是所述中间搜索表示402。
[0142]
在优选实施例中,所述中间搜索表示具有与每个所述中间训练表示相同的维度。在替代实施例中,至少一个中间搜索表示的维度不同于另一中间搜索表示或中间训练表示
的维度。
[0143]
应用解码器程序305
[0144]
该部分描述了将所述解码器程序305应用于所述中间搜索表示402以计算搜索解码输出403的步骤。在图4所示的搜索迭代过程400中,应用所述解码器程序被称为步骤306,因为使用与性能分数计算300的步骤306中相同的解码器程序。在图4所示的搜索迭代过程400中,针对所述给定搜索图像401计算的所述搜索解码输出由403表示。形式上,所述解码器程序d应用于所述中间搜索表示m
search
可以写为z
dec
=d(m
search
),其中,z
dec
是所述搜索解码输出。
[0145]
在优选实施例中,所述搜索解码输出在空间上被布置在特征图的集合中,其中特征图的数量c
dec
与每个所述训练解码输出相同,并且所述特征图中的每个特征图具有与所述搜索图像相同的宽度和高度。在替代实施例中,所述特征地图中的至少一者的宽度和高度中的至少一者不同于所述搜索图像的相应宽度和高度。在替代实施例中,所述搜索解码输出的特征图的数量不同于c
dec
。在替代实施例中,所述搜索解码输出的值中的一些或全部在空间上被布置在具有多于两个维度的一个或更多个多维网格中,例如三维体素网格而不是特征图。在替代实施例中,所述搜索解码输出的值的一些或全部在空间上被布置在不是网格的数据结构(例如,3d点云)中。在替代实施例中,所述搜索解码输出包括与所述搜索图像中的位置没有空间对应关系的一个或更多个值。
[0146]
应用回归程序310
[0147]
该部分描述了将所述回归程序310应用于所述给定搜索图像401以计算搜索回归输出404的步骤。在图4所示的搜索迭代过程400中,应用所述回归程序被称为步骤310,因为使用与性能分数计算300的步骤310相同的回归程序。在图4所示的搜索迭代过程400中,针对所述给定搜索图像401计算的所述搜索回归输出由404表示。形式上,所述回归程序310r对所述搜索图像x
search
的应用可以写为z
reg
=r(x
search
),其中,z
reg
是所述搜索回归输出404。
[0148]
在优选实施例中,所述搜索回归输出在空间上被布置在特征图的集合中,特征图的数量c
reg
与每个所述训练回归输出相同,并且每个所述特征图具有与所述搜索图像相同的宽度和高度。在替代实施例中,所述特征图中的至少一者的宽度和高度中的至少一者不同于所述搜索图像的相应宽度和高度。在替代实施例中,所述搜索回归输出的特征图的数量不同于c
reg
。在替代实施例中,所述搜索回归输出的值的一些或全部在空间上被布置在具有多于两个维度的一个或更多个多维网格中,例如三维体素网格而不是特征图。在替代实施例中,所述搜索回归输出的值的一些或全部在空间上被布置在不是网格的数据结构(例如,3d点云)中。在替代实施例中,所述搜索回归输出包括与所述搜索图像中的位置没有空间对应关系的一个或更多个值。
[0149]
搜索相似度度量405
[0150]
本节描述了使用称为搜索相似度度量405的相似度度量将所述搜索回归输出404与所述搜索解码输出403进行比较的步骤。由所述搜索相似度度量计算的相似度值被称为搜索相似度值406。在图4所示的搜索迭代过程400中,所述搜索相似度度量计算被称为步骤405,并且所述搜索相似度值由406表示。所述搜索回归输出404被用作所述搜索相似度度量405的值的第一集合。所述搜索解码输出403被用作所述搜索相似度度量405的值的所述第二集合。在优选实施例中,所述搜索相似度度量为所述搜索图像中的每个像素位置计算一
个搜索相似度值。在替代实施例中,由所述搜索相似度度量计算的一个或更多个搜索相似度值对应于所述搜索图像中的一个或更多个像素位置。在替代实施例中,所述搜索相似度度量计算一个或更多个搜索相似度值而没有与所述搜索图像中的位置的空间对应关系。在替代实施例中,所述搜索相似度度量计算单个搜索相似度值,对应于整个搜索图像或所述搜索图像的子集。
[0151]
在优选的实施例中,仅将所述搜索解码输出的最后c
reg
个特征图与所述搜索回归输出的所有c
reg
个特征图一起用于计算所述搜索相似度值。在替代实施例中,所述搜索解码输出的所述特征图中的一些或全部以及所述搜索回归输出的所述特征图中的一些或全部被用于计算所述搜索相似度值。在替代实施例中,在z
reg
和z
dec
中的至少一个中未在空间上布置在特征图中的一个或更多个值用于计算所述搜索相似度值。
[0152]
在优选实施例中,所述搜索相似度度量计算所述搜索回归输出与所述搜索解码输出的所述相应特征图之间的每像素位置的欧几里得距离的平方。作为在p处的所述搜索回归输出z
reg
与在p处的所述搜索解码输出z
dec
的所述相应特征图之间的所述欧几里得距离的平方,在所述相应搜索图像x
search
中的每个像素位置p处的所述搜索相似度值(形式上表示为s
p
)的所述计算可以形式上写为
[0153][0154]
其中c表示特征图的索引,表示特征图中在像素位置p处具有索引c的z
reg
的值,并且表示特征图中在像素位置p处其索引是c
target
和c之和的z
dec
的值。在替代实施例中,所述搜索相似度值的计算包括所述搜索回归输出与所述搜索解码输出的值中的一些或全部的逐元素比较,具体地,所述逐元素比较包括根据所述计算方法计算所述每像素位置的欧几里得距离的平方。结果,当所述搜索相似度值是所述搜索解码输出的相应特征图和所述搜索回归输出之间的所述每像素位置欧几里得距离的平方时,所述搜索相似度值的计算包括所述搜索回归输出和所述搜索解码输出的值的一些或全部的所述逐元素比较。在又一替代实施例中,所述搜索相似度值的计算包括:对于所述搜索图像中的每个像素位置,所述搜索解码输出和所述搜索回归输出的除所述欧几里得距离的平方之外的逐元素比较。在替代实施例中,计算所述搜索相似度值包括将一个或更多个相似度度量应用于所述搜索解码输出的一些或全部值以及所述搜索回归输出的一些或全部值。在替代实施例中,所述搜索相似度值的计算包括对所述搜索解码输出和所述搜索回归输出中的至少一者进行后处理,例如将两者缩放至相同的高度和宽度以用于逐元素比较。
[0155]
计算异常分数408
[0156]
该部分描述了基于所述搜索相似度值406来计算所述搜索图像401的一个或更多个异常分数408的步骤。在图4所示的搜索迭代过程400中,所述异常分数计算被称为步骤407,并且所述计算的异常分数由408表示。
[0157]
在优选实施例中,针对所述搜索图像中的每个像素位置计算一个区域异常分数,其中所有区域异常分数形成具有与所述搜索图像相同的高度和宽度的一个异常图。在替代实施例中,对于至少一个搜索图像,如上所述,计算零个或更多个图像异常分数和零个或更
多个区域异常分数。
[0158]
在优选实施例中,基于由所述搜索相似度度量对于所述搜索图像中的相应像素位置计算的相应搜索相似度值来计算每个区域异常分数。在优选实施例中,所述区域异常分数的所述计算包括针对所述搜索图像计算的所述搜索相似度值的逐元素仿射变换。在所述逐元素仿射变换中,缩放值和移位值被设置为归一化所述区域异常分数以遵循标准正态分布的值。在优选实施例中,在所述搜索相似度值的所述逐元素仿射变换之后,每个区域异常分数然后在由相应像素位置处的所述经变换的搜索相似度值给出。在替代实施例中,所述缩放值和移位值被设置为归一化所述区域异常分数中的一些或全部以遵循除标准正态分布之外的概率分布的值。在替代实施例中,所述区域异常分数中的一些或全部由在相应像素位置处的所述搜索相似度值给出,而所述搜索相似度值不通过逐元素仿射变换来变换。在替代实施例中,在通过非线性函数变换所述搜索相似度值之后,由相应像素位置处的经变换的搜索相似度值来给出所述区域异常分数中的一些或全部。在替代实施例中,通过组合多个搜索相似度值来计算一个或更多个区域异常分数。在替代实施例中,一个或更多个区域异常分数对应于所述搜索图像中的多个像素位置。另外,在不背离本发明的精神的情况下,所述区域异常分数的一些或全部可以基于所述搜索相似度值中的一些或全部通过线性或非线性函数来计算。
[0159]
在步骤407中计算了异常分数408之后,搜索迭代过程400结束。在图1中描绘的异常检测过程100中,每次搜索迭代200之后是另一搜索迭代400、训练迭代200、一个或更多个额外训练图像102的获取或所述异常检测过程100的结束。
[0160]
组合异常检测程序
[0161]
所述异常分数408可与通过另外将至少一个异常检测程序(称为第二异常检测程序)应用于所述搜索图像401计算的一个或更多个其他异常分数(称为第二异常分数)组合。例如,所述第二异常检测程序可以是由伯格曼等人(bergmann,p等人,不知情学生:用判别潜伏嵌入学生-教师异常检测(uninformed students:student-teacher anomaly detection with discriminative latent embeddings)。在:ieee/cvf计算机视觉与模式识别(cvpr)会议论文集,2020年,第4183-4192页)提出的所述学生-教师方法。在优选实施例中,所述异常分数408不与其他异常分数组合。在替代实施例中,所述异常分数408包括在空间上布置、形成一个或更多个异常图(称为第一异常图)的区域异常分数,且所述第一异常图与由至少一个第二异常检测程序计算的一个或更多个第二异常图组合。在第一和第二异常图的所述组合中,在第一和第二异常图的所述组合之前,所述第一和第二异常图通过一个或更多个变换(例如,逐元素仿射变换)来变换。所述变换可以包括恒等函数,该恒等函数不修改其应用的异常图。然后通过对所述第一和第二经变换的异常图中的一些或全部进行求和以形成至少一个求和的异常图来执行第一和第二异常图的所述组合,其中所述求和的异常图中的至少一个异常分数是来自所述第一和第二经变换的异常图的异常分数的和。在替代实施例中,所述异常分数408与由一个或更多个第二异常检测程序计算的一个或更多个第二异常分数组合,并且异常的存在基于所述异常分数408的值中的一些或全部和所述第二异常分数的值中的一些或全部来确定。
[0162]
所提出的方法引入多个发明以扩展异常检测中的现有技术。与利用从预训练网络提取的特征的许多成功的异常检测方法(诸如所述学生-教师方法)相比,所提出的方法利
用预训练网络而不受感受野的大小的限制。此外,在所述搜索阶段期间不需要所述预训练网络。在搜索阶段,仅需要编码器、解码器和回归程序。这是优于像所述学生-教师方法的方法的关键优点,后者要求对每个搜索图像应用预训练网络。为了实现强大的异常检测,预训练网络经常需要表达并且因此计算昂贵。另一方面,编码器、解码器和回归程序可被设计成适合相应应用的要求。
[0163]
将搜索图像作为整体进行分析的异常检测方法有很多,并且不受感受野的限制,即非局部方法,例如所述基于自动编码器的mnad方法或所述f-anogan方法。然而,这些方法经常胜过基于预训练网络的上述方法。所提出的方法抵消了当前非局部方法的多个主要缺点。一个创新方面是所述回归网络避免由所述解码器网络的不准确预测引起的误肯定。例如,当所述目标表示由所述搜索图像本身构成或者由来自预训练网络的特征构成时,所述解码器网络难以通过由所述较低维中间表示给出的瓶颈来精确地重构所述目标表示。所述回归网络可通过学习输出类似不准确的特征图来补偿这一点,例如如果所述解码器网络计算模糊重构,那么还可以通过产生模糊重构。这弥补了自动编码器的关键缺点,该自动编码器遭受由比较不准确的重构与输入图像所引起的误肯定。另一创新方面是通过较低维中间表示来重构输入图像以匹配目标表示,所述目标表示不一定必须是输入图像本身。所述目标表示可以是描述性注释,或优选地是预训练网络的输出。因此,可以通过比较输入图像中的区域而不是仅像素的重构特征来在表达、学习的特征空间中检测异常。
[0164]
本发明可以使用的示例性异常检测任务是检测螺钉中的缺陷。在所述任务中,每个搜索图像可以示出一个螺钉,并且所述缺陷可以包括划痕、凹陷和不规则的螺钉长度。例如,螺钉可能需要为至少4.9cm长且至多5.1cm长。类似所述学生-教师方法的基于块的方法可以成功地检测划痕和凹陷。然而,它们可能无法检测不限于异常检测方法的感受野的缺陷。例如,通过在1cm宽和1cm高的块上操作学生-教师方法,6cm长的螺钉可能不被认为是异常的。这是因为每个块在单独检查时可能不显示异常模式。本发明可以成功地检测所有所述缺陷,因为它不受感受野的限制。不受感受野限制的其他异常检测方法(诸如自动编码器或基于gan的方法)可成功地检测不规则的螺杆长度,但是由于不准确的重构而可能错误地将无异常的图像识别为异常的。例如,自动编码器可能不能准确地重构螺钉的螺纹且因此错误地检测到异常。本发明通过使用回归网络避免了这个问题。
[0165]
本发明可以使用的另一个示例性异常检测任务是检测水瓶中的缺陷。在所述任务中,每个搜索图像可以示出一个玻璃瓶,并且所述缺陷可以包括瓶内部的污染物和不规则的填充水平。例如,可能需要瓶子含有990ml与1010ml之间的水。可能的异常检测方法可以是获得无缺陷和异常训练图像。然后,人工注释器可以基于以下类别标记每个训练图像:“污染物”、“不规则填充水平”和“无缺陷”。然而,可能存在许多不同的可能的污染物,使得难以预先确定所有可能的污染物类型以及难以获得每个污染物类型的训练图像。在搜索阶段期间,该方法因此可能无法检测到未被包括在所获得的训练图像中的污染物的类型。本发明可以成功地检测所有所述缺陷,因为它不要求在训练图像中注释或呈现异常。根据所述方法的感受野的大小,基于块的方法(如所述学生-教师方法)可能无法检测到不规则的填充水平。自动编码器和基于gan的方法可能无法精确地重构无缺陷瓶子的玻璃中的折射模式,导致误肯定预测。本发明可以成功地检测所有所述缺陷,因为它不受感受野限制并且通过使用回归网络避免误肯定预测。
[0166]
虽然已经在附图和前面的描述中详细地图示和描述了本发明,但是这样的图示和描述将被认为是说明性的或示例性的而不是限制性的。应当理解,在所附权利要求的范围内,本领域普通技术人员可以进行改变和修改。特别地,本发明覆盖了具有来自上面和下面描述的不同实施例的特征的任何组合的进一步实施例。
[0167]
此外,在权利要求中,词语“包括”不排除其他元件或步骤,并且不定冠词“一个(a)”或“一种(an)”不排除多个。单个单元可以实现权利要求中记载的几个特征的功能。与属性或值相关的术语“基本上”、“约”、“近似”等还具体地分别精确地限定该属性或精确地限定该值。权利要求中的任何参考符号不应被解释为限制范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献