首页 / 工业图像异常检测方法、系统、计算机设备和存储介质

工业图像异常检测方法、系统、计算机设备和存储介质实质审查 发明

技术领域

[0001] 本发明涉及工业图像检测领域,具体而言,涉及一种工业图像异常检测方法。

相关背景技术

[0002] 工业产品生产周期长,工艺复杂,在生产过程中往往会产生很多缺陷,以面板厂为例,面板生产过程包括数十道核心工艺步骤,生产过程中产生缺陷后需要及时发现并将问题产品送去维修,否则会造成最终成品的质量不合格。
[0003] 传统的缺陷检测是采用AOI设备对生产过程中的产品进行拍照,将图片传到计算机终端,由人工肉眼对图片进行观察以发现是否存在缺陷。这种方式一方面耗费大量人力成本,另一方面人工一天可能观看上万张图片,由于疲劳问题导致检测质量低,容易出现漏检。近年来,基于深度学习的目标检测算法开始应用到工业缺陷检测中,但是这类算法属于监督学习算法,必须针对具体缺陷收集到足够的训练样本对模型进行训练,最终模型才能对缺陷进行有效检出。而如果一种缺陷无法事先收集到足够训练样本,则模型仍然会产生漏检。

具体实施方式

[0034] 为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
[0035] 同样应当理解的是,为了简化本发明揭示的表述,从而帮助对至少一个发明实施例的理解,前文对本发明实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本发明对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0036] 实施例1
[0037] 本实施例提供一种工业图像异常检测方法,包括步骤:
[0038] S1.将多分类预训练模型的卷积层做为特征提取器,从包含无缺陷图片的训练集中提取若干第一二维特征矩阵,从检测图片提取第二二维特征矩阵;
[0039] 将若干所述第一二维特征矩阵拼接得到所述训练集的二维矩阵特征池,具体的:以torchvision的多分类预训练模型resnet50作为特征提取器,将其卷积层做为特征提取器,提取检测图片上的特征信息。对训练集的一张无缺陷图片,可提取m×n的二维特征矩阵f,其中m为图片提取的一维特征向量数量,即每一行代表图中一个像素位置提取的特征,n为每个特征向量的长度,即卷积层的通道数。如果训练集有q张无缺陷图片,则训练集可提取q个m×n的特征矩阵,将这些特征矩阵拼接得到训练集的二维矩阵特征池F:
[0040]
[0041] S2.计算所述第一二维特征矩阵和第二维特征矩阵中特征向量的相似度,得到距离矩阵,具体的:对于检测图片,同样使用上述特征提取器提取尺寸为m×n的特征矩阵f’,然后对f’中每一个特征向量分别与训练集特征池F中的所有特征向量计算向量间相似度,相似度度量计算采用欧氏距离,最后得到一个距离矩阵D,其尺寸为m×(q×m),其中m为待检测图片的特征向量数量,q×m为训练集特征池中的特征向量数量:
[0042]
[0043] S3.对所述特征向量选取距离最近的topK个距离分量并进行融合,得到检测图片的所述特征向量的异常得分,若干所述异常得分构成得分矩阵:对所述距离矩阵,每行代表检测图片的一个特征向量和训练集所有特征向量之间的相似度距离,距离越大代表相似度越低,说明检测图片出现了训练集中不存在的特征,代表图片中存在异常。为了异常得分计算更加稳健,对每个特征向量选取距离最近的topK个距离分量,对这topK个距离分量进行融合得到检测图片每个特征向量最终的异常得分s。其中s*为检测图片特征向量与训练集特征池中距离最小的特征向量的距离,最终的异常得分s使用距离最近的topK个特征向量距离对s*的权重进行调整后得到:
[0044]
[0045] 经过上述得分计算,检测图片每个特征向量得到一个异常得分,一张检测图片得到一个长度为m的得分向量,将其reshape为二维矩阵结构,则可得到一个 的得分矩阵S如下:
[0046]
[0047] S4.对所述得分矩阵进行尺度缩放使其尺寸和检测图片的尺寸相同,对所述得分矩阵设定阈值T以判定此检测图片是否存在异常:对上述得分矩阵S,由于其尺寸比原始图片更小,我们希望在原图尺寸上直观地将异常位置表现出来,因此对得分矩阵进行尺度缩放,采用的方法是在矩阵元素之间进行双线性插值将矩阵放大到原图的尺寸。双线性插值算法如图1所示,在每四个相邻得分位置之间进行插值得到一个新的得分,先在Q11和Q21之间用线性插值得到R1,并在Q12和Q22之间用线性插值得到R2,然后再在R1和R2之间通过线性插值得到最终的生成得分P。
[0048] 经过插值缩放后一张图片的检测得分矩阵将和图片尺寸一致,将存在缺陷的图片得分矩阵按异常得分大小绘制热力图如图3所示,图2是缺陷图片的原本状态。
[0049] 在检测阶段,对上述异常得分矩阵设定阈值T,任意一个特征位置的得分超过T,则表示此位置出现了训练集正常样本不具有的特征,则判定此图片存在异常。
[0050] 提出的这整套异常检测方法无需提供缺陷样本,只需要提取无缺陷样本的特征,即可有效检出图片缺陷,其次也有效降低了人工成本和模型漏检风险,特别对于缺陷无法事先收集到足够训练样本的情况,该方法能够有效规避其会产生的漏检。
[0051] 还公开了一种工业图像异常检测系统,包括:
[0052] 矩阵提取模块,用于将多分类预训练模型的卷积层做为特征提取器,从包含无缺陷图片的训练集中提取若干第一二维特征矩阵,从检测图片提取第二二维特征矩阵;
[0053] 拼接模块,用于将若干所述第一二维特征矩阵拼接得到所述训练集的二维矩阵特征池;
[0054] 相似度处理模块,用于计算所述第一二维特征矩阵和第二二维特征矩阵中特征向量的相似度,得到距离矩阵;
[0055] 融合模块,用于对所述特征向量选取距离最近的topK个距离分量并进行融合,得到检测图片的所述特征向量的异常得分,若干所述异常得分构成得分矩阵;
[0056] 缩放判定模块,用于对所述得分矩阵进行尺度缩放使其尺寸和检测图片的尺寸相同,对所述得分矩阵设定阈值T以判定此检测图片是否存在异常。
[0057] 以上所描述的系统仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,作为分离部件说明的模块可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,即各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0058] 其具体实现的效果,如上述工业图像异常检测方法的效果,这里不再赘述。
[0059] 实施例2
[0060] 本发明提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序:所述处理器执行所述计算机程序时实现所述一种工业图像异常检测方法。
[0061] 其具体实现的效果,如上述工业图像异常检测方法的效果,这里不再赘述。
[0062] 实施例3
[0063] 本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述一种工业图像异常检测方法,其具体实现的效果,如上述工业图像异常检测方法的效果,这里不再赘述。
[0064] 其中,所述处理器可以是中央处理器(CPU,CentralProcessingUnit),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor)、专用集成电路(Application SpecificIntegratedCircuit)、现成可编程门阵列(Fieldprogrammablegatearray)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0065] 所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中印制电路板缺陷检测装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0066] 工业图像异常检测系统如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序可存储于一计算机可读存介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码、对象代码形式、可执行文件或某些中间形式等。所述计算机可读取介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存储器、点载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
[0067] 本发明已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0068] 同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0069] 此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
[0070] 计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。

当前第1页 第1页 第2页 第3页