缺陷分类识别方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种缺陷分类识别方法、装置、计算机设备和存储介质。
背景技术
目前,针对材料的表面缺陷的检测,主要依靠人工检测,通过工人对加工好的产品进行现场观察,并对缺陷进行评价来确定产品是否合格。由于检测人员的主观标准很难达成统一,使得检测的实时性和准确性难以满足需求。随着工业生产的速度越来越快,用于检测的人工投入成本越来越大,实时性受到严重影响,误检率也相应增大。为了解决上述技术问题技术人员研发了相应的自动化检测方法与装置,主要是采用图像检测方法,例如采用典型的纹理特征如Gabor小波纹理、灰度共生矩阵纹理、Hu矩特征等。由于材料表面缺陷形式多种多样,尺度和对比度差异较大,现有的检测方法难以满足工业生产的高效、精确的需求。
发明内容
为了解决上述技术问题,本申请提供了一种缺陷分类识别方法、装置、计算机设备和存储介质。
一种缺陷分类识别方法,包括:
获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像;
将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型;
通过已训练的深度卷积网络模型提取各个子图像的图像特征;
将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果;
根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
一种缺陷分类识别装置,包括:
数据获取模块,用于获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像;
数据输入模块,用于将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型;
特征提取模块,用于通过已训练的深度卷积网络模型提取各个子图像的图像特征;
分类识别模块,用于将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像;
将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型;
通过已训练的深度卷积网络模型提取各个子图像的图像特征;
将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果;
根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像;
将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型;
通过已训练的深度卷积网络模型提取各个子图像的图像特征;
将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果;
根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
上述缺陷分类识别、装置、计算机设备和存储介质,所述方法通过获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像,将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型,通过已训练的深度卷积网络模型提取各个子图像的图像特征,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。通过对图像进行分割,将分割后的图像通过已训练的深度卷积网络模型快速、准确的提取图像的特征,分类识别模型对提取的特征进行分类识别得到对应的分类识别结果,提高了识别速度和识别准确率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中缺陷分类识别方法的应用场景图;
图2为一个实施例中缺陷分类识别方法的流程示意图;
图3为另一个实施例中缺陷分类识别方法的流程示意图;
图4为一个实施例中训练图像组的示意图;
图5为一个实施例中模型更新步骤的流程示意图;
图6为一个实施例中损失值计算步骤的流程示意图;
图7为一个实施例中分类识别步骤的流程示意图;
图8为一个实施例中缺陷分类识别装置的结构框图;
图9为另一个实施例中缺陷分类识别装置的结构框图;
图10为一个实施例中模型更新模块的内部结构框图;
图11为一个实施例中损失值计算单元的内部结构框图;
图12为一个实施例中分类识别模块的内部结构框图;
图13为一个实施例中计算设备的内部结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中缺陷分类识别方法的应用环境图。参照图1,该缺陷分类识别方法应用于缺陷分类识别系统。该缺陷分类识别系统包括终端110和服务器120。终端110或服务器120通过获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像,将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型,通过已训练的深度卷积网络模型提取各个子图像的图像特征,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种缺陷分类识别方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该缺陷分类识别方法具体包括如下步骤:
步骤S201,获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像。
具体地,原始图像是指通过拍摄设备对生产的原材料、半成品和成品等进行拍摄得到的图像,其中原材料包括钢材和塑料等。预设滑动窗口是指预先自定义的用于对图像进行分割的窗口,滑动步长是指预先自定义的每次预设滑动窗口滑动的距离。终端或服务器获取拍摄设备拍摄得到的包含材料表面的图像,按照预设滑动窗口和滑动步长将图像进行分割,得到多个分割后的子图像。
在一个实施例中,在按照预设滑动窗口和滑动步长将原始图像分割成多个子图像之前,还包括:对原始图像进行预处理,其中预处理包括但不限于图像去燥、空间变换、校正等。
步骤S202,将各个子图像输入已训练的缺陷识别模型中。
步骤S203,通过已训练的深度卷积网络模型提取各个子图像的图像特征。
步骤S204,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果。
具体地,已训练的缺陷识别模型是指通过大量的携带图像标签的图像进行训练得到的,其中携带标签的图像包括缺陷图像、无缺陷图像和构建图像,构建图像是指对缺陷图像进行填充得到的图像。已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型。已训练的深度卷积网络模型是用于对输入的子图像进行特征提取的网络模型,已训练的深度卷积网络模型包含多个卷积层,各个卷积层用于对于输入的图像进行特征提取。各个卷积层是用于对输入对应的卷积层的图像通过卷积核进行卷积运算,得到对应的卷积特征图。分类识别模型是用于对子图像的对应的图像特征进行分类识别的网络模型。将已训练的深度卷积网络模型输出的各个子图像的图像特征输入分类识别模型中,通过分类识别模型中的分类识别算法计算各个图像特征的分类识别结果。其中分类识别结果包括无缺陷和有缺陷两个大类。有缺陷还可以包括缺陷等级和缺陷类型等。采用已训练的深度卷积网络模型能够快速、准确的提取图像的特征。
步骤S205,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
具体地,在确定各个子图像的分类识别结果后,统计各个子图像的分类识别结果,根据统计结果确定原始图像的缺陷类型。其中缺陷类型可以自定义,如可以将缺陷类型分为无缺陷、轻微缺陷、中度缺陷或重度缺陷等。
在一个实施例中,统计原图像的各个子图像的缺陷类型,根据各个子图像中包含缺陷的子图像的数量对应的缺陷等级,将原图像划分为无缺陷、轻微缺陷、中度缺陷或重度缺陷等。如将一副图像划分成多个个子图像,无缺陷可以是指全部的子图像的分类识别结果为无缺陷,或者只有极少的子图像的缺陷识别结果为轻微缺陷,轻微缺陷是预设数量之间的子图像的分类识别结果为轻微缺陷,中度缺陷是指超过一定数量的子图的分类识别结果为中度缺陷,重度缺陷是指包含缺陷的子图像的数量较多,或者是子图像的分类识别结果中包含的重度缺陷的数量大于预设图像数量等。
上述缺陷分类识别方法,获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像,将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型,通过已训练的深度卷积网络模型提取各个子图像的图像特征,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。将原始图像分割成多个字图像,采用已训练的深度卷积网络模型对各个子图像进行特征提取,能够快速且准确的提取图像的特征,将提取的特征输入分类识别模型,得到各个子图像的分类识别结果,通过子图像的分类识别结果确定原图像的分类识别结果,对各个子图像进行分类识别能够对图像进行更全面和更准确的分析,从而提高对原图的分类识别的准确率。
在一个实施例中,如图3所示,生成已训练的缺陷识别模型训练的步骤,包括:
步骤S301,获取包含多个训练图像组的训练图像集合和各个训练图像的标签。
在本具体实施例中,训练图像组包括缺陷图像、对应的无缺陷图像和对应的构造图像,构造图像为根据缺陷图像的缺陷区域进行填充得到的。
具体地,训练图像组包括缺陷图像、无缺陷图像和构造图像,其中同一个训练图像组中的缺陷图像、无缺陷图像和构造图像为同一图像区域在不同状态时的图像。标签是用于描述图像的缺陷类型的标签,标签可以包括无缺陷图像、轻微缺陷图像、中度缺陷图像和重度缺陷图像、构造图像等几个类别。缺陷图像就是指图像中的材料或器件存在划痕、涂漆不均匀等缺陷的图像,无缺陷图像是指不存在缺陷的图像,构造图像是通过对缺陷图像中的缺陷区域进行填充得到的。如图4所示,标号001的图像为无缺陷图像,标号为002的图像为缺陷图像,标号为003图像为构造陷图像。训练图像集合包含多个选了图像组。
步骤S302,构造缺陷识别模型。
步骤S303,将各个训练图像组的各个训练图像和对应的标签输入缺陷识别模型中的深度卷积网络模型,通过深度卷积网络模型对各个训练图像进行特征提取,得到对应的训练特征图组。
步骤S304,将训练特征图组输入缺陷识别模型中的分类识别模型中,得到各个训练特征图组的分类识别结果。
步骤S305,根据训练特征图组、对应的分类识别结果、和对应的标签更新缺陷识别模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
具体地,缺陷识别模型包含深度卷积网络模型和分类识别模型。将各个训练图像组的各个训练图像和对应的标签输入深度卷积网络模型中,通过深度卷积网络模型对各个训练图像进行卷积运算,得到各个训练图像组的对应的训练特征图组。将各个训练特征图组中的各个训练特征图输入分类识别模型,得到各个训练图像对应的分类识别结果。通过训练图组对应的训练特征图组、分类识别结果和标签确定缺陷识别模型是否收敛,若不收敛,更新缺陷识别模型的模型参数,直到缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。其中收敛条件可以自定义,如将训练特征图组各个训练特征图之间的距离满足预设距离和分类识别正确率满足预设识别率中的其中至少一个条件作为收敛条件。其中分类识别准确率是根据各个训练图像携带的标签和通过缺陷识别模型的分类识别结果进行匹配后,通过统计匹配成功训练图像的数量,根据统计数量计算得到分类识别准确率。
在一个实施例中,如图5所示,步骤S305,包括:
步骤S3051,获取缺陷识别模型中的深度卷积网络模型的损失函数。
步骤S3052,将各个训练图像组中的各个训练图像的训练特征图按照对应的标签带入损失函数,得到对应的损失值。
步骤S3053,根据各个训练图像组中各个图像对应的分类识别结果和标签确定缺陷识别模型中的分类识别模型的识别准确率。
步骤S3054,根据识别准确率和损失值调整缺陷识别模型中的深度卷积网络模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
具体地,损失函数是用于衡量缺陷识别模型中的深度卷积网络模型的模型收敛的函数。其中损失函数包括缺陷图像、无缺陷图像和构造图像对应的训练特征图三个变量,将各个训练图像组对应的训练特征图按照训练特征图对应的标签带入损失函数中,得到各个训练图像组的损失值,对各个训练图像组的损失值进行加权求和得到缺陷识别模型中的深度卷积网络模型对应的损失值。对比训练图像集合中的各个训练图像组的各个训练图像的分类识别结果与各个训练图像的标签,当标签与分类识别结果匹配时,表示正确识别,统计正确识别的训练图像的数目,得到对应的识别准确率。根据识别准确率和缺陷识别模型中的深度卷积网络模型对应的损失值确定缺陷识别模型的收敛状态,当识别准确率满足预设识别准确率,且缺陷识别模型中的深度卷积网络模型对应的损失值满足预设损失值时,表示缺陷识别模型的收敛,得到已训练的缺陷识别模型。
在一个实施例中,如图6所示,步骤S3052,包括:
步骤S3052a,计算各个缺陷图像的训练特征图与对应的构造图像的训练特征图的第一距离。
步骤S3052b,计算各个构造图像训练特征图与对应的各个无缺陷图像的训练特征图的第二距离。
步骤S3052c,各个训练图像组对应的第一距离和第二距离加权求和,得到损失值。
具体地,获取训练图像组中标签为缺陷图像的训练特征图、构造图像的训练特征图和无缺陷图像的训练特征图,计算缺陷图像的训练特征图与对应的构造图像的训练特征图的距离,作为第一距离,计算无缺陷图像的训练特征图与对应的构造图像的训练特征图的距离,作为第二距离。对各个训练图像组对应的第一距离和第二距离加权求和,得到损失值。其中第一距离和第二距离的加权系数和,各个训练图像组的加权系数均可以自定义。
在一个具体的实施例中,矩阵之间的距离可以采用矩阵2范数进行计算,具体计算公式如式1所示:
其中,loss为损失函数,w1和w2为加权系数,代表无缺陷图像,代表缺陷图像,代表构造图像,代表无缺陷图像的训练特征图,代表缺陷图像的训练特征图,代表构造图像的训练特征图。i=0,1,2...,N,N代表训练图像组的数量。将构造的损失函数作为衡量缺陷识别模型的深度卷积网络模型的收敛条件,而损失函数包含了训练图像组的三种类型的图像特征图,使得模型将主要训练集中到缺陷区域,提高特征提取的准确性,从而提高模型的识别率。
在一个实施例中,如图7所示,步骤S204,包括:
步骤S2041,计算各个子图像的图像特征在K邻域中各个特征向量之间的相似度。
步骤S2042,当相似度满足预设相似度时,表示K邻域中不同的特征向量对应的缺陷类别相同。
步骤S2043,统计K邻域中存在的缺陷类别和对应的数量,将数量最多的缺陷类别作为子图像的分类识别结果。
具体地,计算原图像分割后的各个子图的图像特征在K邻域中各个特征向量之间的相似度,其中相邻的相似度可以根据特征向量之间的欧式距离和余弦夹角等确定。预设相似度是预先自定义的临界值,当两个特征向量的之前的相似度大于或等于预设相似度时,表示两个特征向量相似,定义两个相似的特征向量对应的缺陷类别相同,统计在K邻域中存在的缺陷类别和各个缺陷类型的数量。将统计后属于同一个缺陷类别的特征向量的数目最多的缺陷类别作为子图像的分类识别结果。如某个子图像中属于无缺陷的特征向量的数量最多,则该子图像的分类识别结果为无缺陷图像。
在一个具体的实施例中,上述缺陷分类识别方法,包括:
构造训练图像集合X,训练图像集合包含多个训练图像组,每个训练图像组包含一个缺陷图像、无缺陷图像、构造图像,其中缺陷图像用表示,无缺陷图像用表示,构造图像用表示。构造图像是通过对缺陷图像的缺陷区域进行填充得到的。将同一个训练图像组的三张图像和同时输入到缺陷识别模型中的深度卷积网络模型中,通过深度卷积网络模型对和进行特征提取,分别得到和对应的特征图,对特征图和进行归一化操作,将归一化后的和带入式(1)的损失函数loss,得到缺陷识别模型的损失值,根据损失值调整深度卷积网络模型的参数,直到损失值满足预设阈值时,停止更新缺陷识别模型中的深度卷积网络模型的参数,得到已训练的缺陷识别模型。在本实施例中w1=0.3,w2=0.7。
设原图像的尺寸为2048*2048,滑动窗口的尺寸为512*512,滑动步长为256个像素,按照滑动窗口和滑动步长将原图像分割成多个尺寸为512*512的子图像,将子图像依次输入已训练的缺陷识别模型中,通过已训练的缺陷识别模型中的已训练的深度卷积网络模型进行特征提取,得到对应的特征图,将各个子图像对应的特征图输入已训练的缺陷识别模型的分类识别模型中,通过分类识别模型对特征图进行分类识别,得到各个子图像的分类识别结果。其中分类识别模型中采用KNN方法,比较K邻域中特征向量间的欧式距离,判断是否为同一缺陷类别,例如,当特征距离小于d的时候认为是同一缺陷类别,特征距离大于d的时候认为是不同缺陷类别。统计K邻域中出现频次最高的缺陷类别即为该子图像对应的最终缺陷类别。在一个实施例中K=3。通过深度卷积网络模型和机器学习模型KNN结合,充分挖掘缺陷识别模型中缺陷图像的特征表达能力和可分类性,在训练时采用对图像组的方式进行训练,模型能够更好的注意到缺陷区域,从而提高缺陷识别精度。
图2、3、5-7为一个实施例中缺陷分类识别方法的流程示意图。应该理解的是,虽然图2、3、5-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、5-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种缺陷分类识别装置200,包括:
数据获取模块201,用于获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像。
数据输入模块202,用于将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型。
特征提取模块203,用于通过已训练的深度卷积网络模型提取各个子图像的图像特征。
分类识别模块204,用于将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
在一个实施例中,如图9所示,上述缺陷分类识别装置还包括:
训练数据获取模块301,用于获取包含多个训练图像组的训练图像集合和各个训练图像的标签,训练图像组包括缺陷图像、对应的无缺陷图像和对应的构造图像,构造图像为根据缺陷图像的缺陷区域进行填充得到的。
模型构造模块302,用于构造缺陷识别模型。
训练特征提取模块303,用于将各个训练图像组的各个训练图像和对应的标签输入缺陷识别模型中的深度卷积网络模型,通过深度卷积网络模型对各个训练图像进行特征提取,得到对应的训练特征图组。
训练图像分类识别模块304,用于将训练特征图组输入缺陷识别模型中的分类识别模型中,得到各个训练特征图组的分类识别结果。
模型更新模块305,用于根据训练特征图组、对应的分类识别结果、和对应的标签更新缺陷识别模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
在一个实施例中,如图10所示,模型更新模块305包括:
损失函数获取单元3051,用于获取缺陷识别模型中的深度卷积网络模型的损失函数。
损失值计算单元3052,用于将各个训练图像组中的各个训练图像的训练特征图按照对应的标签带入损失函数,得到对应的损失值。
准确率计算单元3053,用于根据各个训练图像组中各个图像对应的分类识别结果和标签确定缺陷识别模型中的分类识别模型的识别准确率。
模型确定单元3054,用于根据识别准确率和损失值调整缺陷识别模型中的深度卷积网络模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
在一个实施例中,如图11所示,损失值计算单元3052包括:
距离计算子单元30521,用于计算各个缺陷图像的训练特征图与对应的构造图像的训练特征图的第一距离,计算各个构造图像训练特征图与对应的各个无缺陷图像的训练特征图的第二距离。
损失值计算子单元30522,用于各个训练图像组对应的第一距离和第二距离加权求和,得到损失值。
在一个实施例中,如图12所示,分类识别模块204包括:
相似度计算单元2041,用于计算各个子图像的图像特征在K邻域中各个特征向量之间的相似度。
类别判断单元2042,用于当相似度满足预设相似度时,表示K邻域中不同的特征向量对应的缺陷类别相同。
分类识别单元2043,类别统计K邻域中存在的缺陷类别和对应的数量,将数量最多的缺陷类别作为所述子图像的分类识别结果。
图13示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图13所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现缺陷分类识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行缺陷分类识别方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的缺陷分类识别系统可以实现为一种计算机程序的形式,计算机程序可在如图13所示的计算机设备上运行。计算机设备的存储器中可存储组成该缺陷分类识别系统的各个程序模块,比如,图8所示的数据获取模块201、数据输入模块202、特征提取模块203和分类识别模块204。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的缺陷分类识别方法中的步骤。
例如,图13所示的计算机设备可以通过如图8所示的缺陷分类识别系统中的数据获取模块201,用于获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像。计算机设备可通过数据输入模块202执行将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型。计算机设备可通过特征提取模块203执行通过已训练的深度卷积网络模型提取各个子图像的图像特征。计算机设备可通过分类识别模块204执行将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像,将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型,通过已训练的深度卷积网络模型提取各个子图像的图像特征,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取包含多个训练图像组的训练图像集合和各个训练图像的标签,训练图像组包括缺陷图像、对应的无缺陷图像和对应的构造图像,构造图像为根据缺陷图像的缺陷区域进行填充得到的,构造缺陷识别模型,将各个训练图像组的各个训练图像和对应的标签输入缺陷识别模型中的深度卷积网络模型,通过深度卷积网络模型对各个训练图像进行特征提取,得到对应的训练特征图组,将训练特征图组输入缺陷识别模型中的分类识别模型中,得到各个训练特征图组的分类识别结果,根据训练特征图组、对应的分类识别结果、和对应的标签更新缺陷识别模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
在一个实施例中,根据训练特征图组、对应的分类识别结果、和对应的标签更新缺陷识别模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型,包括:获取缺陷识别模型中的深度卷积网络模型的损失函数,将各个训练图像组中的各个训练图像的训练特征图按照对应的标签带入损失函数,得到对应的损失值,根据各个训练图像组中各个图像对应的分类识别结果和标签确定缺陷识别模型中的分类识别模型的识别准确率,根据识别准确率和损失值调整缺陷识别模型中的深度卷积网络模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
在一个实施例中,将各个训练图像组中的各个训练图像的训练特征图按照对应的标签带入损失函数,得到对应的损失值,包括:计算各个缺陷图像的训练特征图与对应的构造图像的训练特征图的第一距离,计算各个构造图像训练特征图与对应的各个无缺陷图像的训练特征图的第二距离,各个训练图像组对应的第一距离和第二距离加权求和,得到损失值。
在一个实施例中,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,包括:计算各个子图像的图像特征在K邻域中各个特征向量之间的相似度,当相似度满足预设相似度时,表示K邻域中不同的特征向量对应的缺陷类别相同,统计K邻域中存在的缺陷类别和对应的数量,将数量最多的缺陷类别作为子图像的分类识别结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取原始图像,按照预设滑动窗口和滑动步长将原始图像分割成多个子图像,将各个子图像输入已训练的缺陷识别模型中,已训练的缺陷识别模型包含已训练的深度卷积网络模型和分类识别模型,通过已训练的深度卷积网络模型提取各个子图像的图像特征,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,根据各个子图像的缺陷的分类识别结果确定原始图像的缺陷类型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取包含多个训练图像组的训练图像集合和各个训练图像的标签,训练图像组包括缺陷图像、对应的无缺陷图像和对应的构造图像,构造图像为根据缺陷图像的缺陷区域进行填充得到的,构造缺陷识别模型,将各个训练图像组的各个训练图像和对应的标签输入缺陷识别模型中的深度卷积网络模型,通过深度卷积网络模型对各个训练图像进行特征提取,得到对应的训练特征图组,将训练特征图组输入缺陷识别模型中的分类识别模型中,得到各个训练特征图组的分类识别结果,根据训练特征图组、对应的分类识别结果、和对应的标签更新缺陷识别模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
在一个实施例中,根据训练特征图组、对应的分类识别结果、和对应的标签更新缺陷识别模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型,包括:获取缺陷识别模型中的深度卷积网络模型的损失函数,将各个训练图像组中的各个训练图像的训练特征图按照对应的标签带入损失函数,得到对应的损失值,根据各个训练图像组中各个图像对应的分类识别结果和标签确定缺陷识别模型中的分类识别模型的识别准确率,根据识别准确率和损失值调整缺陷识别模型中的深度卷积网络模型的参数,直至缺陷识别模型满足收敛条件,得到已训练的缺陷识别模型。
在一个实施例中,将各个训练图像组中的各个训练图像的训练特征图按照对应的标签带入损失函数,得到对应的损失值,包括:计算各个缺陷图像的训练特征图与对应的构造图像的训练特征图的第一距离,计算各个构造图像训练特征图与对应的各个无缺陷图像的训练特征图的第二距离,各个训练图像组对应的第一距离和第二距离加权求和,得到损失值。
在一个实施例中,将各个子图像的图像特征输入分类识别模型,得到各个子图像的缺陷的分类识别结果,包括:计算各个子图像的图像特征在K邻域中各个特征向量之间的相似度,当相似度满足预设相似度时,表示K邻域中不同的特征向量对应的缺陷类别相同,统计K邻域中存在的缺陷类别和对应的数量,将数量最多的缺陷类别作为子图像的分类识别结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。