CN115690101A - 缺陷检测方法、装置、电子设备、存储介质和程序产品 - Google Patents
缺陷检测方法、装置、电子设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN115690101A CN115690101A CN202211701343.1A CN202211701343A CN115690101A CN 115690101 A CN115690101 A CN 115690101A CN 202211701343 A CN202211701343 A CN 202211701343A CN 115690101 A CN115690101 A CN 115690101A
- Authority
- CN
- China
- Prior art keywords
- image
- image block
- candidate frame
- block
- difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000007547 defect Effects 0.000 title claims abstract description 304
- 238000001514 detection method Methods 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 85
- 238000013528 artificial neural network Methods 0.000 claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000012549 training Methods 0.000 claims description 127
- 238000010801 machine learning Methods 0.000 claims description 92
- 230000000877 morphologic effect Effects 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 11
- 238000002372 labelling Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 description 80
- 230000006740 morphological transformation Effects 0.000 description 71
- 230000007797 corrosion Effects 0.000 description 20
- 238000005260 corrosion Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 20
- 230000003628 erosive effect Effects 0.000 description 20
- 230000010339 dilation Effects 0.000 description 16
- 238000007781 pre-processing Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005530 etching Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 3
- 229910052802 copper Inorganic materials 0.000 description 3
- 239000010949 copper Substances 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000002790 cross-validation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 239000002904 solvent Substances 0.000 description 2
- 241000760358 Enodes Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Image Analysis (AREA)
Abstract
本公开涉及一种图像数据处理技术领域,尤其涉及一种缺陷检测方法、装置、电子设备、存储介质和程序产品。所述方法包括:获取待检测图像以及所述待检测图像对应的模板图像;获得所述待检测图像与所述模板图像的差异图像;根据所述差异图像,确定所述待检测图像中的缺陷的候选框;获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。本公开利用第一神经网络对缺陷的候选框在模板图像上的第一图像块和在差异图像上的第二图像块进行处理,以对候选框进行缺陷检测,能够提高缺陷检测的准确性。
Description
技术领域
本公开涉及图像数据处理技术领域,尤其涉及一种缺陷检测方法、装置、电子设备、存储介质和程序产品。
背景技术
智能化工业质检是计算机视觉及工业质检领域的重要问题。如何提高对产品进行缺陷检测的准确性,是亟待解决的技术问题。
发明内容
本公开提供了一种缺陷检技术方案。
根据本公开的一方面,提供了一种缺陷检方法,包括:
获取待检测图像以及所述待检测图像对应的模板图像;
获得所述待检测图像与所述模板图像的差异图像;
根据所述差异图像,确定所述待检测图像中的缺陷的候选框;
获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。
根据本公开的一方面,提供了一种用于缺陷检测的机器学习模型的训练方法,包括:
获取训练图像以及所述训练图像对应的模板图像;
获得所述训练图像与所述模板图像的差异图像;
根据所述差异图像,确定所述训练图像中的缺陷的候选框;
获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征,并通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果;
根据所述候选框对应的标注信息,以及所述缺陷预测结果,训练所述机器学习模型。
根据本公开的一方面,提供了一种缺陷检测装置,包括:
第一获取模块,用于获取待检测图像以及所述待检测图像对应的模板图像;
第一获得模块,用于获得所述待检测图像与所述模板图像的差异图像;
第一确定模块,用于根据所述差异图像,确定所述待检测图像中的缺陷的候选框;
第二获得模块,用于获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
检测模块,用于通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。
根据本公开的一方面,提供了一种用于缺陷检测的机器学习模型的训练装置,包括:
第二获取模块,用于获取训练图像以及所述训练图像对应的模板图像;
第三获得模块,用于获得所述训练图像与所述模板图像的差异图像;
第二确定模块,用于根据所述差异图像,确定所述训练图像中的缺陷的候选框;
第四获得模块,用于获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
特征提取模块,用于通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征,并通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
预测模块,用于至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果;
训练模块,用于根据所述候选框对应的标注信息,以及所述缺陷预测结果,训练所述机器学习模型。
根据本公开的一方面,提供了一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
在本公开实施例中,通过获取待检测图像以及所述待检测图像对应的模板图像,获得所述待检测图像与所述模板图像的差异图像,根据所述差异图像,确定所述待检测图像中的缺陷的候选框,获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块,并通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果,由此利用第一神经网络对缺陷的候选框在模板图像上的第一图像块和在差异图像上的第二图像块进行处理,以对候选框进行缺陷检测,能够提高缺陷检测的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出本公开实施例提供的缺陷检测方法的流程图。
图2示出本公开实施例提供的用于缺陷检测的机器学习模型的训练方法的流程图。
图3示出本公开实施例提供的用于缺陷检测的机器学习模型的训练方法中的模板图像的示意图。
图4示出本公开实施例提供的用于缺陷检测的机器学习模型的训练方法中的训练图像及其标注数据的示意图。
图5示出本公开实施例提供的缺陷检测装置的框图。
图6示出本公开实施例提供的用于缺陷检测的机器学习模型的训练装置的框图。
图7示出本公开实施例提供的电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本公开实施例提供了一种缺陷检测方法、装置、电子设备、存储介质和程序产品,通过获取待检测图像以及所述待检测图像对应的模板图像,获得所述待检测图像与所述模板图像的差异图像,根据所述差异图像,确定所述待检测图像中的缺陷的候选框,获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块,并通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果,由此利用第一神经网络对缺陷的候选框在模板图像上的第一图像块和在差异图像上的第二图像块进行处理,以对候选框进行缺陷检测,能够提高缺陷检测的准确性。
下面结合附图对本公开实施例提供的缺陷检测方法进行详细的说明。
图1示出本公开实施例提供的缺陷检测方法的流程图。在一种可能的实现方式中,所述缺陷检测方法的执行主体可以是缺陷检测装置,例如,所述缺陷检测方法可以由终端设备或服务器或其它电子设备执行。其中,终端设备可以是用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备或者可穿戴设备等。在一些可能的实现方式中,所述缺陷检测方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图1所示,所述缺陷检测方法包括步骤S11至步骤S15。
在步骤S11中,获取待检测图像以及所述待检测图像对应的模板图像。
在步骤S12中,获得所述待检测图像与所述模板图像的差异图像。
在步骤S13中,根据所述差异图像,确定所述待检测图像中的缺陷的候选框。
在步骤S14中,获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块。
在步骤S15中,通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。
在本公开实施例中,待检测图像可以表示待进行缺陷检测的目标对象对应的图像。例如,可以对待进行缺陷检测的目标对象进行图像采集,得到待检测图像。其中,目标对象可以为待进行缺陷检测的任意对象。
在一种可能的实现方式中,所述待检测图像为印制电路板对应的待检测图像。在该实现方式中,印制电路板可以为硬板PCB(Printed Circuit Board,印制电路板),也可以为FPC(Flexible Printed Circuit,柔性印制电路板)等,在此不做限定。
在该实现方式中,通过获取印制电路板对应的待检测图像以及所述待检测图像对应的模板图像,获得所述待检测图像与所述模板图像的差异图像,根据所述差异图像,确定所述待检测图像中的缺陷的候选框,获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块,并通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果,由此利用第一神经网络对缺陷的候选框在模板图像上的第一图像块和在差异图像上的第二图像块进行处理,以对候选框进行缺陷检测,能够提高对印制电路板进行缺陷检测的准确性。
在本公开实施例中,待检测图像对应的模板图像,可以表示待检测图像对应的无缺陷的图像。通过对待检测图像和模板图像进行比对处理,可以确定待检测图像中的缺陷的候选框。其中,候选框可以表示待检测图像中可能为缺陷的区域。
在本公开实施例中,可以比较待检测图像与模板图像的相同像素位置的像素值,确定待检测图像与模板图像的差异图像。在一个例子中,待检测图像可以采用img_test表示,模板图像可以采用img_temp表示,差异图像可以采用img_diff表示。
在一种可能的实现方式中,所述获得所述待检测图像与所述模板图像的差异图像,包括:对所述待检测图像和所述模板图像分别进行模糊操作,得到所述待检测图像对应的第一模糊图像和所述模板图像对应的第二模糊图像;根据所述第一模糊图像和所述第二模糊图像,确定所述待检测图像与所述模板图像的差异图像。其中,第一模糊图像表示待检测图像对应的模糊图像,第二模糊图像表示模板图像对应的模糊图像。
在一个例子中,可以对待检测图像和模板图像分别进行高斯模糊操作,得到待检测图像对应的第一模糊图像和模板图像对应的第二模糊图像。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。在一个例子中,第一模糊图像可以采用img_test_gaussian表示,第二模糊图像可以采用img_temp_gaussian表示。
在该实现方式中,通过对所述待检测图像和所述模板图像分别进行模糊操作,得到所述待检测图像对应的第一模糊图像和所述模板图像对应的第二模糊图像,并根据所述第一模糊图像和所述第二模糊图像,确定所述待检测图像与所述模板图像的差异图像,由此能够得到更加平滑的差异图像。
作为该实现方式的一个示例,所述根据所述第一模糊图像和所述第二模糊图像,确定所述待检测图像与所述模板图像的差异图像,包括:对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像;根据所述第一二值化图像和所述第二二值化图像,确定所述待检测图像与所述模板图像的差异图像。其中,第一二值化图像表示第一模糊图像对应的二值化图像,第二二值化图像表示第二模糊图像对应的二值化图像。在一个例子中,第一二值化图像可以采用img_test_bina表示,第二二值化图像可以采用img_temp_bina表示。
在该示例中,可以采用OTSU(大津)法等方法,对第一模糊图像和第二模糊图像分别进行二值化操作,得到第一模糊图像对应的第一二值化图像和第二模糊图像对应的第二二值化图像。
在一个例子中,所述根据所述第一二值化图像和所述第二二值化图像,确定所述待检测图像与所述模板图像的差异图像,包括:对于任一像素位置,若所述第一二值化图像与所述第二二值化图像中,所述像素位置的像素值不同,则在所述待检测图像与所述模板图像的差异图像中,所述像素位置的像素值为0;对于任一像素位置,若所述第一二值化图像与所述第二二值化图像中,所述像素位置的像素值相同,则在所述差异图像中,所述像素位置的像素值为255。
例如,对于任一像素位置,若第一二值化图像与第二二值化图像中,所述像素位置的像素值不同(即,一个为0,另一个为255),则在差异图像中,所述像素位置的像素值为0(即黑色);对于任一像素位置,若第一二值化图像与第二二值化图像中,所述像素位置的像素值相同(即,均为0或者均为255),则在差异图像中,所述像素位置的像素值为255(即白色)。
在一个例子中,可以采用以下步骤,得到差异图像img_diff:令img_diff = img_test_bina – img_temp_bina;令img_diff中不为0的像素值变为255;令img_diff中每个像素位置的值变为255减去对应的像素值。
在该示例中,通过对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像,并根据所述第一二值化图像和所述第二二值化图像,确定所述待检测图像与所述模板图像的差异图像,由此能够降低采集待检测图像的环境光的强度对缺陷检测的干扰。
在另一种可能的实现方式中,所述获得所述待检测图像与所述模板图像的差异图像,包括:对所述待检测图像和所述模板图像分别进行二值化操作,得到所述待检测图像对应的第三二值化图像和所述模板图像对应的第四二值化图像;根据所述第三二值化图像和所述第四二值化图像,确定所述待检测图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述根据所述差异图像,确定所述待检测图像中的缺陷的候选框,包括:确定所述差异图像中的轮廓;根据所述轮廓,确定所述待检测图像中的缺陷的候选框。
在该实现方式中,可以采用findContours等轮廓查找方法,对所述差异图像进行轮廓查找,得到所述差异图像中的轮廓。在确定所述差异图像中的轮廓之后,可以根据所述差异图像中的轮廓,确定待检测图像中的缺陷的候选框。
在该实现方式中,通过确定所述差异图像中的轮廓,并根据所述轮廓,确定所述待检测图像中的缺陷的候选框,由此能够通过传统图像处理的方式,准确地确定待检测图像中的缺陷的候选框。
作为该实现方式的一个示例,所述确定所述差异图像中的轮廓,包括:对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像;查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓。其中,去干扰图像可以表示差异图像对应的去除干扰后的图像。
在该示例中,可以差异图像进行膨胀(dilate)操作和/或腐蚀(erode)操作,得到所述差异图像对应的去干扰图像。在一个例子中,可以对差异图像依次进行核尺寸为3×3的膨胀操作、核尺寸为3×3的腐蚀操作、核尺寸为3×3的腐蚀操作、核尺寸为7×3的腐蚀操作、核尺寸为7×3的膨胀操作、核尺寸为3×7的腐蚀操作以及核尺寸为3×7的膨胀操作,得到所述差异图像对应的去干扰图像。
在该示例中,通过对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像,并查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓,由此通过对所述差异图像进行形态学操作,能够去除所述差异图像中的横向和纵向的干扰线,从而能够提高查找到的轮廓的准确性。
作为该实现方式的一个示例,所述根据所述轮廓,确定所述待检测图像中的缺陷的候选框,包括:过滤所述差异图像中满足预设条件的轮廓;根据所述差异图像中剩余的轮廓,确定所述待检测图像中的缺陷的候选框。
在该示例中,若所述差异图像中的任一轮廓满足预设条件,则可以确定所述轮廓属于预设的不属于缺陷的候选框的情况,从而可以过滤所述轮廓。其中,预设条件可以根据经验设置,在此不做限定。
在一个例子中,所述预设条件包括以下至少之一:轮廓包围的区域的面积小于第一预设面积;轮廓包围的区域的面积大于第二预设面积,其中,所述第二预设面积大于所述第一预设面积;轮廓的包围矩形的长宽比小于第一预设阈值;轮廓的包围矩形的长宽比大于第二预设阈值,其中,所述第二预设阈值大于所述第一预设阈值;轮廓的包围矩形内的平均像素值大于预设像素值。
其中,任一轮廓的包围矩形可以为所述轮廓的外接矩形,且所述轮廓的包围矩形的边与预设的坐标轴(例如xy轴)平行。在一些应用场景中,包围矩形也可以称为边界框(bounding box)。例如,轮廓的包围矩形可以采用(x,y,w,h)表示,其中,(x,y)为包围矩形的左上角点的坐标,w为包围矩形的宽,h为包围矩形的高。
例如,第一预设面积AREA_TH_LOW=20,第二预设面积AREA_TH_HIGH=20000。若任一轮廓包围的区域的面积小于20或者大于20000,则可以过滤所述轮廓。
又如,第一预设阈值为0.1,第二预设阈值为10。若任一轮廓的包围矩形的长宽比小于0.1或者大于10,则可以过滤所述轮廓。
又如,预设像素值PIXEL_MEAN_TH=240。若任一轮廓的包围矩形内的平均像素值大于240,则可以过滤所述轮廓。
在一个例子中,所述根据所述差异图像中过滤后剩余的轮廓,确定所述待检测图像中的缺陷的候选框,包括:对于所述差异图像中的任一过滤后剩余的轮廓,将所述轮廓的包围矩形对应的扩大矩形,确定为所述待检测图像中的缺陷的候选框,其中,所述扩大矩形与所述包围矩形的几何中心重合,所述扩大矩形的宽度是所述包围矩形的宽度的第一预设倍数,且所述扩大矩形的高度是所述包围形的高度的第二预设倍数,其中,所述第一预设倍数和所述第二预设倍数均大于1。
其中,第一预设倍数与第二预设倍数可以相同或不同。例如,第一预设倍数和第二预设倍数均为2,轮廓的包围矩形为(x,y,w,h),所述轮廓的包围矩形对应的扩大矩形为(x-w/2, y-h/2, 2×w, 2×h)。
在上述示例中,通过过滤所述差异图像中满足预设条件的轮廓,并根据所述差异图像中过滤后剩余的轮廓,确定所述待检测图像中的缺陷的候选框,由此能够减少差异图像中的异常轮廓对缺陷检测的干扰。
作为该实现方式的另一个示例,可以根据所述差异图像中的轮廓分别确定缺陷的候选框。即,在该示例中,可以不对查找到的轮廓进行过滤处理。
在另一种可能的实现方式中,所述根据所述待检测图像和所述模板图像,确定所述待检测图像中的缺陷的候选框,包括:将所述待检测图像和所述模板图像输入预先训练的第二神经网络,经由所述第二神经网络确定所述待检测图像中的缺陷的候选框。其中,第二神经网络用于基于待检测图像和模板图像确定待检测图像中缺陷的候选框。
在一种可能的实现方式中,可以仅根据所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块,确定所述候选框对应的缺陷检测结果。在一个例子中,第一图像块可以采用temp_img表示,第二图像块可以采用test_img表示。
在另一种可能的实现方式中,可以根据所述候选框在所述模板图像上的第一图像块、所述候选框在所述差异图像上的第二图像块以及所述候选框在所述待检测图像上的第三图像块,确定所述候选框对应的缺陷检测结果。
其中,可以根据候选框在待检测图像上的位置,从模板图像、差异图像和待检测图像中分别确定第一图像块、第二图像块和第三图像块。即,第一图像块可以表示候选框在模板图像上的图像块,第二图像块可以表示候选框在差异图像上的图像块,第三图像块可以表示候选框在待检测图像上的图像块。
在一种可能的实现方式中,所述通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果,包括:通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征;通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果。
在该实现方式中,第一神经网络可以为深度学习模型。例如,第一神经网络可以采用LeNet5、AlexNet等网络结构。第一神经网络可以预先采用MINIST等数据集进行训练。
在一个示例中,可以将第一图像块对应的第一灰度图像块输入预先训练的第一神经网络,通过第一神经网络对第一灰度图像块进行特征提取,得到第一图像块对应的第一深度特征;可以将第二图像块对应的第二灰度图像块输入第一神经网络,通过第一神经网络对第二灰度图像块进行特征提取,得到第二图像块对应的第二深度特征。
例如,可以将第一灰度图像块temp_img_gray进行LeNet5模型的预处理操作,得到第一灰度图像块temp_img_gray对应的第一预处理特征temp_img_pre;可以将第二灰度图像块test_img_gray进行LeNet5模型的预处理操作,得到第二灰度图像块test_img_gray对应的第二预处理特征test_img_pre。可以通过LeNet5模型对第一预处理特征temp_img_pre进行推理,并可以将LeNet5模型的倒数第二层输出的84维的特征向量作为第一深度特征,或者,可以将LeNet5模型的最后一层输出的10维的特征向量作为第一深度特征。可以通过LeNet5模型对第二预处理特征test_img_pre进行推理,并可以将LeNet5模型的倒数第二层输出的84维的特征向量作为第二深度特征,或者,可以将LeNet5模型的最后一层输出的10维的特征向量作为第二深度特征。
在另一个示例中,可以将第一图像块输入预先训练的第一神经网络,通过第一神经网络对第一图像块进行特征提取,得到第一图像块对应的第一深度特征;可以将第二图像块输入第一神经网络,通过第一神经网络对第二图像块进行特征提取,得到第二图像块对应的第二深度特征。
在一个例子中,第一深度特征可以采用v_temp_deep表示,第二深度特征可以采用v_test_deep表示,可以结合深度特征v_deep = [v_test_deep, v_temp_deep],确定候选框对应的缺陷检测结果。
在该实现方式中,通过第一神经网络对第一图像块和第二图像块进行特征提取,得到第一图像块对应的第一深度特征和第二图像块对应的第二深度特征,由此能够有效补充人为先验知识未考虑到的特征,从而能够进一步提高缺陷检测的准确性。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:对所述第一图像块和所述第二图像块分别进行灰度统计,得到所述第一图像块对应的第一灰度统计结果和所述第二图像块对应的第二灰度统计结果;至少根据所述第一深度特征、所述第二深度特征、所述第一灰度统计结果和所述第二灰度统计结果,确定所述候选框对应的缺陷检测结果。
在该实现方式中,可以将第一图像块和第二图像块分别转化为灰度图,得到第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块。在一个例子中,第一灰度图像块可以采用temp_img_gray表示,第二灰度图像块可以采用test_img_gray表示。
在该实现方式中,第一灰度统计结果可以包括第一图像块中部分或所有灰度值的像素数。例如,可以统计第一灰度图像块的灰度直方图,得到第一灰度统计结果。在一个例子中,第一灰度图像块的灰度直方图可以采用temp_hist表示。
第二灰度统计结果可以包括第二图像块中部分或所有灰度值的像素数。例如,可以统计第二灰度图像块的灰度直方图,得到第二灰度统计结果。在一个例子中,第二灰度图像块的灰度直方图可以采用test_hist表示。
在该实现方式中,通过结合第一图像块对应的第一灰度统计结果和第二图像块对应的第二灰度统计结果确定候选框对应的缺陷检测结果,能够提高候选框对应的缺陷检测结果的准确性。
作为该实现方式的一个示例,所述第一灰度统计结果包括:所述第一图像块中灰度值为0的像素数和灰度值为255的像素数;所述第二灰度统计结果包括:所述第二图像块中灰度值为0的像素数和灰度值为255的像素数。
在一个例子中,第一图像块中灰度值为0的像素数可以采用temp_hist[0]表示,第一图像块中灰度值为255的像素数可以采用temp_hist[255]表示,第二图像块中灰度值为0的像素数可以采用test_hist[0]表示,第二图像块中灰度值为255的像素数可以采用test_hist[255]表示。可以结合灰度特征v1 = [temp_hist[0], temp_hist[255], test_hist[0], test_hist[255]],确定候选框对应的缺陷检测结果。
在该示例中,通过结合第一图像块中灰度值为0的像素数和灰度值为255的像素数,以及第二图像块中灰度值为0的像素数和灰度值为255的像素数,确定候选框对应的缺陷检测结果,由此利用了第一图像块和第二图像块中灰度值最显著的像素数辅助进行候选框的缺陷检测,能够提高候选框对应的缺陷检测结果的准确性。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息;至少根据所述第一深度特征、所述第二深度特征、所述第一轮廓信息和所述第二轮廓信息,确定所述候选框对应的缺陷检测结果。
在该实现方式中,第一轮廓信息可以表示第一图像块中的轮廓的信息,第二轮廓信息可以表示第二图像块中的轮廓的信息。
在该实现方式中,可以采用findContours等轮廓查找方法,分别对第一图像块和第二图像块进行轮廓查找,确定第一图像块中的轮廓和第二图像块中的轮廓,从而得到第一图像块对应的第一轮廓信息和第二图像块对应的第二轮廓信息。
在一个例子中,第一轮廓信息可以采用v_c_temp表示,第二轮廓信息可以采用v_c_test表示。可以结合轮廓特征v2 = [v_c_test, v_c_temp],确定候选框对应的缺陷检测结果。
在该实现方式中,通过结合第一图像块对应的第一轮廓信息和第二图像块对应的第二轮廓信息确定候选框对应的缺陷检测结果,由此能够提高候选框对应的缺陷检测结果的准确性。
作为该实现方式的一个示例,所述获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息,包括:根据所述第一图像块对应的第一二值化图像块中的轮廓,确定所述第一图像块对应的第一轮廓信息;根据所述第二图像块对应的第二二值化图像块中的轮廓,确定所述第二图像块对应的第二轮廓信息。
在一个示例中,可以对第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块分别进行模糊操作,得到第一图像块对应的第一模糊图像块和第二图像块对应的第二模糊图像块;可以对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在一个例子中,可以对第一灰度图像块和第二灰度图像块分别进行高斯模糊操作,得到第一模糊图像块和第二模糊图像块。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。
在一个例子中,可以采用OTSU法等方法,对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在一个例子中,可以采用findContours等轮廓查找方法,对第一二值化图像块和第二二值化图像块进行轮廓查找,得到第一二值化图像块中的轮廓和第二二值化图像块中的轮廓。
在一个例子中,第一模糊图像块可以采用temp_img_blur表示,第二模糊图像块可以采用test_img_blur表示,第一二值化图像块可以采用temp_img_bina表示,第二二值化图像块可以采用test_img_bina表示,第一二值化图像块中的轮廓可以采用temp_img_contours表示,第二二值化图像块中的轮廓可以采用test_img_contours表示。
在该示例中,通过根据所述第一图像块对应的第一二值化图像块中的轮廓,确定所述第一图像块对应的第一轮廓信息,并根据所述第二图像块对应的第二二值化图像块中的轮廓,确定所述第二图像块对应的第二轮廓信息,由此能够更准确地进行轮廓查找。
作为该实现方式的一个示例中所述第一轮廓信息包括:所述第一二值化图像块中最大的N个轮廓的几何信息,以及所述第一二值化图像块中的轮廓的数量,其中,N为大于或等于1的整数;所述第二轮廓信息包括:所述第二二值化图像块中最大的N个轮廓的几何信息,以及所述第二二值化图像块中的轮廓的数量。
在该示例中,根据第一二值化图像块中的轮廓围成的区域的面积大小进行排序,可以确定第一二值化图像块中最大的N个轮廓。根据第二二值化图像块中的轮廓围成的区域的面积大小进行排序,可以确定第二二值化图像块中最大的N个轮廓。
例如,N等于2。当然,本领域技术人员可以根据实际应用场景需求灵活设置N的大小,在此不做限定。
例如,第一轮廓信息可以v_c_temp = [temp_count, v_c_temp_v1, v_c_temp_v2],其中,temp_count表示第一二值化图像块中的轮廓的数量,v_c_temp_v1表示第一二值化图像块中最大的轮廓的几何信息,v_c_temp_v2表示第一二值化图像块中第二大的轮廓的几何信息。第二轮廓信息v_c_test = [test_count, v_c_test_v1, v_c_test_v2],其中,test_count表示第二二值化图像块中的轮廓的数量,v_c_test_v1表示第二二值化图像块中最大的轮廓的几何信息,v_c_test_v2表示第二二值化图像块中第二大的轮廓的几何信息。
在该示例中,通过结合第一二值化图像块中最大的N个轮廓的几何信息、第一二值化图像块中的轮廓的数量、第二二值化图像块中最大的N个轮廓的几何信息以及第二二值化图像块中的轮廓的数量,能够针对候选框实现更准确的缺陷检测。
在一个示例中,轮廓的几何信息包括以下至少之一:轮廓的面积、轮廓的包围矩形、轮廓的中心矩、轮廓的几何中心的位置、轮廓的周长、轮廓的非凸性、轮廓的最小外接矩形、轮廓的最小外接圆、轮廓的拟合椭圆、轮廓的拟合矩形。其中,轮廓的拟合椭圆可以表示对轮廓进行椭圆拟合得到的椭圆。轮廓的拟合矩形可以表示对轮廓进行直线拟合得到的矩形。
以第二二值化图像块中面积最大的轮廓为例,该轮廓的面积可以采用test_c_area1表示,该轮廓的包围矩形可以采用 (a1_x, a1_y, a1_w, a1_h)表示,该轮廓的中心矩可以采用M1表示,该轮廓的几何中心的位置可以采用 (c1_x, c1_y)表示,该轮廓的周长可以采用perimeter1表示,该轮廓的非凸性可以采用is_convex1表示,该轮廓的最小外接矩形可以采用(a1_xr, a1_yr, a1_wr, a1_hr)表示,该轮廓的最小外接圆 可以采用(cr1_x, cr1_y, cr1_r)表示,该轮廓的拟合椭圆 (e11,e12,e13,e14,e15),该轮廓的拟合矩形可以采用 (l11,l12,l13,l14)表示。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:获得所述第一图像块的宽度和高度;至少根据所述第一深度特征、所述第二深度特征、所述宽度和所述高度,确定所述候选框对应的缺陷检测结果。
在一个例子中,第一图像块的宽度可以采用wt表示,第一图像块的高度可以采用ht表示,第一图像块的宽高比可以采用wt/ht表示。可以结合第一图像块的尺寸特征v3=[wt,ht,wt/ht],确定候选框对应的缺陷检测结果。
在该实现方式中,通过结合第一图像块的宽度和高度确定候选框对应的缺陷检测结果,由此能够提高候选框对应的缺陷检测结果的准确性。
在另一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:获得所述第二图像块的宽度和高度;至少根据所述第一深度特征、所述第二深度特征、所述宽度和所述高度,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:获得所述第一图像块的梯度信息,以及所述第二图像块的梯度信息;至少根据所述第一深度特征、所述第二深度特征、所述第一图像块的梯度信息和所述第二图像块的梯度信息,确定所述候选框对应的缺陷检测结果。
在一个例子中,第一图像块的梯度信息可以为第一图像块的方向梯度直方图(Histogram of Oriented Gradient,HOG),第二图像块的梯度信息可以为第二图像块的方向梯度直方图,第一图像块的梯度信息可以采用temp_hog_vec表示,第二图像块的梯度信息可以采用test_hog_vec表示。可以结合梯度特征v4 = [temp_hog_vec, test_hog_vec],确定候选框对应的缺陷检测结果。
在该实现方式中,通过结合第一图像块的梯度信息和第二图像块的梯度信息确定候选框对应的缺陷检测结果,由此能够提高候选框对应的缺陷检测结果的准确性。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:获取所述第一图像块在形态学变换前后的差异信息,以及所述第二图像块在形态学变换前后的差异信息;至少根据所述第一深度特征、所述第二深度特征、所述第一图像块在形态学变换前后的差异信息和所述第二图像块在形态学变换前后的差异信息,确定所述候选框对应的缺陷检测结果。
在该实现方式中,通过结合所述第一图像块在形态学变换前后的差异信息和所述第二图像块在形态学变换前后的差异信息对候选框进行缺陷检测,由此能够提高候选框对应的缺陷检测结果的准确性。
作为该实现方式的一个示例,所述获取所述第一图像块在形态学变换前后的差异信息,以及所述第二图像块在形态学变换前后的差异信息,包括:获得所述第一图像块对应的第一二值化图像块,以及所述第二图像块对应的第二二值化图像块;对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块;对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块;确定所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的第一像素数,以及所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的第二像素数;所述至少根据所述第一深度特征、所述第二深度特征、所述第一图像块在形态学变换前后的差异信息和所述第二图像块在形态学变换前后的差异信息,确定所述候选框对应的缺陷检测结果,包括:至少根据所述第一深度特征、所述第二深度特征、所述第一像素数和所述第二像素数,确定所述候选框对应的缺陷检测结果。
其中,第一二值化图像块表示第一图像块对应的二值化图像块,第二二值化图像块表示第二图像块对应的二值化图像块。在一个例子中,第一二值化图像块可以采用temp_img_bina表示,第二二值化图像块可以采用test_img_bina表示。
在该示例中,可以对第一二值化图像块执行膨胀操作和/或腐蚀操作,得到第一二值化图像块对应的第一形态学变换图像块;可以对第二二值化图像块执行膨胀操作和/或腐蚀操作,得到第二二值化图像块对应的第二形态学变换图像块。其中,第一形态学变换图像块可以表示对第一二值化图像块进行形态学变换后得到的图像块,第二形态学变换图像块可以表示对第二二值化图像块进行形态学变换后得到的图像块。
将第一二值化图像块与第一形态学变换图像块逐像素比对,可以确定第一二值化图像块与第一形态学变换图像块之间像素值不同的第一像素数,其中,第一像素数表示第一二值化图像块与第一形态学变换图像块之间像素值不同的像素数。将第二二值化图像块与第二形态学变换图像块逐像素比对,可以确定第二二值化图像块与第二形态学变换图像块之间像素值不同的第二像素数,其中,第二像素数表示第二二值化图像块与第二形态学变换图像块之间像素值不同的像素数。
在该示例中,通过结合第一二值化图像块与第一形态学变换图像块之间像素值不同的第一像素数,以及第二二值化图像块与第二形态学变换图像块之间像素值不同的第二像素数,确定候选框对应的缺陷检测结果,由此能够提高候选框对应的缺陷检测结果的准确性。
在一个示例中,所述获得所述第一图像块对应的第一二值化图像块,以及所述第二图像块对应的第二二值化图像块,包括:对所述第一图像块对应的第一灰度图像块和所述第二图像块对应的第二灰度图像块分别进行模糊操作,得到所述第一图像块对应的第一模糊图像块和所述第二图像块对应的第二模糊图像块;对所述第一模糊图像块和所述第二模糊图像块分别进行二值化操作,得到所述第一图像块对应的第一二值化图像块和所述第二图像块对应的第二二值化图像块。
在该示例中,可以将第一图像块和第二图像块分别转化为灰度图,得到第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块。其中,第一灰度图像块可以表示第一图像块对应的灰度图,第二灰度图像块可以表示第二图像块对应的灰度图。在一个例子中,第一灰度图像块可以采用temp_img_gray表示,第二灰度图像块可以采用test_img_gray表示。
在该示例中,可以对第一灰度图像块和第二灰度图像块分别进行模糊操作,得到第一图像块对应的第一模糊图像块和第二图像块对应的第二模糊图像块。其中,第一模糊图像块可以表示对第一图像块进行模糊操作后得到的图像,第二模糊图像块可以表示对第二图像块进行模糊操作后得到的图像。在一个例子中,第一模糊图像块可以采用temp_img_blur表示,第二模糊图像块可以采用test_img_blur表示。在一个例子中,可以对第一灰度图像块和第二灰度图像块分别进行高斯模糊操作,得到第一模糊图像块和第二模糊图像块。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。
在一个例子中,可以采用OTSU法等方法,对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在该示例中,通过在二值化之前进行模糊处理,能够获得更平滑的处理结果。
在一个示例中,所述对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块,包括:基于至少两种尺寸的核,对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的至少两个第一形态学变换图像块;所述对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块,包括:基于至少两种尺寸的核,对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的至少两个第二形态学变换图像块;所述确定所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的第一像素数,以及所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的第二像素数,包括:对于所述至少两个第一形态学变换图像块,分别确定所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的像素数,得到至少两项第一像素数;对于所述至少两个第二形态学变换图像块,分别确定所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的像素数,得到至少两项第二像素数;所述至少根据所述第一深度特征、所述第二深度特征、所述第一像素数和所述第二像素数,确定所述候选框对应的缺陷检测结果,包括:至少根据所述第一深度特征、所述第二深度特征、所述至少两项第一像素数和所述至少两项第二像素数,确定所述候选框对应的缺陷检测结果。
例如,核的尺寸可以包括3、5、7、9、11等中的至少两种,在此不做限定。在该示例中,基于任一尺寸,可以对第一二值化图像块和第二二值化图像块分别进行膨胀操作和/或腐蚀操作,得到对应的第一形态学变换图像块和第二形态学变换图像块。
在该示例中,通过基于至少两种尺寸的核,对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的至少两个第一形态学变换图像块,基于至少两种尺寸的核,对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的至少两个第二形态学变换图像块,对于所述至少两个第一形态学变换图像块,分别确定所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的像素数,得到至少两项第一像素数,对于所述至少两个第二形态学变换图像块,分别确定所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的像素数,得到至少两项第二像素数,由此确定的形态学差异信息能够更准确地反映候选框中的缺陷特征;通过结合所述至少两项第一像素数和所述至少两项第二像素数,确定所述候选框对应的缺陷检测结果,由此能够针对候选框确定更准确的缺陷检测结果。
作为该实现方式的一个示例,所述第一形态学变换图像块包括第一膨胀图像块和第一腐蚀图像块,所述第二形态学变换图像块包括第二膨胀图像块和第二腐蚀图像块;所述对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块,包括:对所述第一二值化图像块执行膨胀操作,得到所述第一二值化图像块对应的第一膨胀图像块;对所述第一二值化图像块执行腐蚀操作,得到所述第一二值化图像块对应的第一腐蚀图像块;所述对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块,包括:对所述第二二值化图像块执行膨胀操作,得到所述第二二值化图像块对应的第二膨胀图像块;对所述第二二值化图像块执行腐蚀操作,得到所述第二二值化图像块对应的第二腐蚀图像块。
在该示例中,通过对第一二值化图像块和第二二值化图像块分别进行膨胀操作和腐蚀操作,并基于相应的膨胀图像块和腐蚀图像块分别确定差异信息,由此能够进一步提高针对候选框进行缺陷检测的准确性。
在一个示例中,可以设定核尺寸列表kernel_size_list = [3,5,7,9,11]。
可以将核尺寸列表中的每个数值分别作为膨胀操作的核尺寸,得到每个核尺寸下的膨胀差异特征v_ki_d。例如,当核尺寸为3时,记v_ki_d = v_k3_d,当核尺寸为5时,记v_ki_d=v_k5_d,以此类推。可以对第一二值化图像块进行核尺寸为i的膨胀操作,得到第一膨胀图像块;可以对第二二值化图像块进行核尺寸为i的膨胀操作,得到第二膨胀图像块;可以根据第一二值化图像块与第一膨胀图像块之间像素值不同的第一像素数n1,以及第二二值化图像块与第二膨胀图像块之间像素值不同的第二像素数n2,确定膨胀差异特征v_ki_d。例如,若n2等于0,则 v_ki_d = [n1,n2,1];若n2不等于0,则 v_ki_d = [n1,n2,n1/n2]。
可以将核尺寸列表中的每个数值分别作为腐蚀操作的核尺寸,得到每个核尺寸下的腐蚀差异特征v_ki_e。例如,当核尺寸为3时,记v_ki_e = v_k3_e,当核尺寸为5时,记v_ki_e=v_k5_e,以此类推。可以对第一二值化图像块进行核尺寸为i的腐蚀操作,得到第一腐蚀图像块;可以对第二二值化图像块进行核尺寸为i的腐蚀操作,得到第二腐蚀图像块;可以根据第一二值化图像块与第一腐蚀图像块之间像素值不同的第一像素数n1,以及第二二值化图像块与第二腐蚀图像块之间像素值不同的第二像素数n2,确定腐蚀差异特征v_ki_e。例如,若n2等于0,则 v_ki_e = [n1,n2,1];若n2不等于0,则 v_ki_e = [n1,n2,n1/n2]。
在确定出膨胀差异特征v_dilate = [v_k3_d, v_k5_d, v_k7_d, v_k9_d, v_k11_d]和腐蚀差异特征v_ erode = [v_k3_e, v_k5_e, v_k7_e, v_k9_e, v_k11_e]之后,可以结合形态学差异特征v5 = [v_dilate, v_erode],确定候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:获得所述第一图像块对应的第一二值化图像块与所述第二图像块对应的第二二值化图像块的差异图像块;获得所述差异图像块的特征信息;至少根据所述第一深度特征、所述第二深度特征和所述差异图像块的特征信息,确定所述候选框对应的缺陷检测结果。
在一个示例中,可以对第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块分别进行模糊操作,得到第一图像块对应的第一模糊图像块和第二图像块对应的第二模糊图像块;可以对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在一个例子中,可以对第一灰度图像块和第二灰度图像块分别进行高斯模糊操作,得到第一模糊图像块和第二模糊图像块。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。
在一个例子中,第一二值化图像块可以采用temp_img_bina表示,第二二值化图像块可以采用test_img_bina表示,差异图像块可以采用diff_img表示,可以根据diff_img =test_img_bina – temp_img_bina,确定差异图像块。其中,差异图像块还可以称为差异矩阵等,在此不做限定。
在该实现方式中,通过结合第一图像块对应的第一二值化图像块与第二图像块对应的第二二值化图像块的差异图像块的特征信息,对候选框进行缺陷检测,由此能够利用第一二值化图像块与第二二值化图像块之间的差异信息,提高候选框对应的缺陷检测结果的准确性。
作为该实现方式的一个示例,所述差异图像块的特征信息包括:所述差异图像块中像素值不为0的像素数。
在一个例子中,可以令差异图像块中不为0的像素值变为1,再对差异图像块中的像素值进行累加,确定差异图像块中像素值不为的像素数。根据该示例,能够快速有效地确定第一二值化图像块与第二二值化图像块的差异信息。
在一个示例中,所述差异图像块的特征信息包括:所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数。
在该示例中,对于差异图像块中的每一行,可以分别确定像素值不为0的像素数,并且,对于差异图像块中的每一列,可以分别确定像素值不为0的像素数。根据所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数,可以得到差异统计特征v6 = [diff_project_y, diff_project_x],其中,diff_project_y和diff_project_x均为向量,且diff_project_y中的元素数等于差异图像块的行数,diff_project_x中的元素数等于差异图像块的列数。
根据该示例,能够进一步提高对候选框进行缺陷检测的准确性。
在另一个示例中,所述差异图像块中像素值不为0的像素数包括:所述差异图像块的每行像素中像素值不为0的像素数。
在另一个示例中,所述差异图像块中像素值不为0的像素数包括:所述差异图像块的每列像素中像素值不为0的像素数。
在一种可能的实现方式中,候选框对应的缺陷检测结果可以为能够表示候选框的缺陷类型的信息。例如,缺陷类型可以包括开路(Open)、短路(Short)、伪铜(Copper)、缺失孔(Pin-hole)、鼠咬(Mousebite)、杂散(Spur)和非缺陷。当然,缺陷类型的种数可以更多或更少,在此不做限定。通过将缺陷检测问题转换为缺陷分类问题,使得整体逻辑更加简单。
在另一种可能的实现方式中,候选框对应的缺陷检测结果可以为能够表示候选框是否为缺陷的信息。
在一种可能的实现方式中,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:至少将所述第一深度特征和所述第二深度特征输入预先训练的机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷检测结果。在该实现方式中,通过预先训练的机器学习模型基于所述第一深度特征和所述第二深度特征对所述候选框进行缺陷检测,能够提高针对所述候选框进行缺陷检测的准确性和速度。
在一种可能的实现方式中,在所述确定所述候选框对应的缺陷检测结果之后,所述方法还包括:响应于所述缺陷检测结果指示所述候选框属于缺陷,输出所述候选框的缺陷类型和所述候选框的位置信息。
在另一种可能的实现方式中,在所述确定所述候选框对应的缺陷检测结果之后,所述方法还包括:响应于所述缺陷检测结果指示所述候选框属于缺陷,输出所述候选框的位置信息。
下面通过一个具体的应用场景说明本公开实施例提供的缺陷检测方法。在该应用场景中,获取PCB对应的待检测图像以及所述待检测图像对应的模板图像。
在该应用场景中,可以根据待检测图像和模板图像,确定待检测图像中的缺陷的候选框。
可以采用传统图像处理方法,对候选框提取手工特征v_traditional = [v1, v2,v3, v4, v5, v6]。
其中,v1为灰度特征,v1 = [temp_hist[0], temp_hist[255], test_hist[0],test_hist[255]];
v2为轮廓特征,v2 = [v_c_test, v_c_temp];
v3为尺寸特征,v3=[wt,ht,wt/ht];
v4为梯度特征,v4 = [temp_hog_vec, test_hog_vec];
v5为形态学差异特征,v5 = [v_dilate, v_erode];
v6为差异统计特征,v6 = [diff_project_y, diff_project_x]。
可以采用预先训练的第一神经网络,对候选框提取深度特征v_deep = [v_test_deep, v_temp_deep]。
可以将手工特征v_traditional和深度特征v_deep输入预先训练的机器学习模型,得到候选框对应的缺陷检测结果。
图2示出本公开实施例提供的用于缺陷检测的机器学习模型的训练方法的流程图。在一种可能的实现方式中,所述用于缺陷检测的机器学习模型的训练方法的执行主体可以是用于缺陷检测的机器学习模型的训练装置,例如,所述用于缺陷检测的机器学习模型的训练方法可以由终端设备或服务器或其它电子设备执行。其中,终端设备可以是用户设备、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理、手持设备、计算设备、车载设备或者可穿戴设备等。在一些可能的实现方式中,所述用于缺陷检测的机器学习模型的训练方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图2所示,所述缺陷检测方法包括步骤S21至步骤S27。
在步骤S21中,获取训练图像以及所述训练图像对应的模板图像。
在步骤S22中,获得所述训练图像与所述模板图像的差异图像。
在步骤S23中,根据所述差异图像,确定所述训练图像中的缺陷的候选框。
在步骤S24中,获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块。
在步骤S25中,通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征,并通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征。
在步骤S26中,至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在步骤S27中,根据所述候选框对应的标注信息,以及所述缺陷预测结果,训练所述机器学习模型。
在本公开实施例中,可以从deepPCB等数据集中,获取训练图像、训练图像的标注数据和训练图像对应的模板图像。图3示出本公开实施例提供的用于缺陷检测的机器学习模型的训练方法中的模板图像的示意图。图4示出本公开实施例提供的用于缺陷检测的机器学习模型的训练方法中的训练图像及其标注数据的示意图。在图4所示的示例中,训练图像包括多个缺陷框,且多个缺陷框的缺陷类型为开路、短路、伪铜、缺失孔、鼠咬或者杂散。当然,所述机器学习模型可以用于检测更多类型或者更少类型的缺陷,在此不做限定。
在一种可能的实现方式中,可以按照预设比例,将数据集划分为训练集和测试集。例如,预设比例可以为8:2。
作为该实现方式的一个示例,在所述按照预设比例,将数据集划分为训练集和测试集之前,所述方法还包括:随机打乱所述数据集。
在本公开实施例中,训练图像对应的模板图像,可以表示训练图像对应的无缺陷的图像。通过对训练图像和模板图像进行比对处理,可以确定训练图像中的缺陷的候选框。其中,候选框可以表示训练图像中可能为缺陷的区域。
在本公开实施例中,可以比较训练图像与模板图像的相同像素位置的像素值,确定训练图像与模板图像的差异图像。在一个例子中,训练图像可以采用img_test表示,模板图像可以采用img_temp表示,差异图像可以采用img_diff表示。
在一种可能的实现方式中,所述获得所述训练图像与所述模板图像的差异图像,包括:对所述训练图像和所述模板图像分别进行模糊操作,得到所述训练图像对应的第一模糊图像和所述模板图像对应的第二模糊图像;根据所述第一模糊图像和所述第二模糊图像,确定所述训练图像与所述模板图像的差异图像。其中,第一模糊图像表示训练图像对应的模糊图像,第二模糊图像表示模板图像对应的模糊图像。
在一个例子中,可以对训练图像和模板图像分别进行高斯模糊操作,得到训练图像对应的第一模糊图像和模板图像对应的第二模糊图像。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。在一个例子中,第一模糊图像可以采用img_test_gaussian表示,第二模糊图像可以采用img_temp_gaussian表示。
在该实现方式中,通过对所述训练图像和所述模板图像分别进行模糊操作,得到所述训练图像对应的第一模糊图像和所述模板图像对应的第二模糊图像,并根据所述第一模糊图像和所述第二模糊图像,确定所述训练图像与所述模板图像的差异图像,由此能够得到更加平滑的差异图像。
在一个示例中,所述根据所述第一模糊图像和所述第二模糊图像,确定所述训练图像与所述模板图像的差异图像,包括:对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像;根据所述第一二值化图像和所述第二二值化图像,确定所述训练图像与所述模板图像的差异图像。其中,第一二值化图像表示第一模糊图像对应的二值化图像,第二二值化图像表示第二模糊图像对应的二值化图像。在一个例子中,第一二值化图像可以采用img_test_bina表示,第二二值化图像可以采用img_temp_bina表示。
在该示例中,可以采用OTSU(大津)法等方法,对第一模糊图像和第二模糊图像分别进行二值化操作,得到第一模糊图像对应的第一二值化图像和第二模糊图像对应的第二二值化图像。
在一个例子中,所述根据所述第一二值化图像和所述第二二值化图像,确定所述训练图像与所述模板图像的差异图像,包括:对于任一像素位置,若所述第一二值化图像与所述第二二值化图像中,所述像素位置的像素值不同,则在所述训练图像与所述模板图像的差异图像中,所述像素位置的像素值为0;对于任一像素位置,若所述第一二值化图像与所述第二二值化图像中,所述像素位置的像素值相同,则在所述差异图像中,所述像素位置的像素值为255。
例如,对于任一像素位置,若第一二值化图像与第二二值化图像中,所述像素位置的像素值不同(即,一个为0,另一个为255),则在差异图像中,所述像素位置的像素值为0(即黑色);对于任一像素位置,若第一二值化图像与第二二值化图像中,所述像素位置的像素值相同(即,均为0或者均为255),则在差异图像中,所述像素位置的像素值为255(即白色)。
在一个例子中,可以采用以下步骤,得到差异图像img_diff:令img_diff = img_test_bina – img_temp_bina;令img_diff中不为0的像素值变为255;令img_diff中每个像素位置的值变为255减去对应的像素值。
在该示例中,通过对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像,并根据所述第一二值化图像和所述第二二值化图像,确定所述训练图像与所述模板图像的差异图像,由此能够降低采集训练图像的环境光的强度对缺陷检测的干扰。
作为该实现方式的另一个示例,所述获得所述训练图像与所述模板图像的差异图像,包括:对所述训练图像和所述模板图像分别进行二值化操作,得到所述训练图像对应的第一二值化图像和所述模板图像对应的第二二值化图像;根据所述第一二值化图像和所述第二二值化图像,确定所述训练图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述根据所述差异图像,确定所述训练图像中的缺陷的候选框,包括:确定所述差异图像中的轮廓;根据所述轮廓,确定所述训练图像中的缺陷的候选框。
作为该实现方式的一个示例,所述确定所述差异图像中的轮廓,包括:对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像;查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓。
在该示例中,可以差异图像进行膨胀(dilate)操作和/或腐蚀(erode)操作,得到所述差异图像对应的去干扰图像。在一个例子中,可以对差异图像依次进行核尺寸为3×3的膨胀操作、核尺寸为3×3的腐蚀操作、核尺寸为3×3的腐蚀操作、核尺寸为7×3的腐蚀操作、核尺寸为7×3的膨胀操作、核尺寸为3×7的腐蚀操作以及核尺寸为3×7的膨胀操作,得到所述差异图像对应的去干扰图像。
在该示例中,通过对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像,并查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓,由此通过对所述差异图像进行形态学操作,能够去除所述差异图像中的横向和纵向的干扰线,从而能够提高查找到的轮廓的准确性。
作为该实现方式的一个示例,所述根据所述轮廓,确定所述训练图像中的缺陷的候选框,包括:过滤所述差异图像中满足预设条件的轮廓;根据所述差异图像中过滤后剩余的轮廓,确定所述训练图像中的缺陷的候选框。
在该示例中,若所述差异图像中的任一轮廓满足预设条件,则可以确定所述轮廓属于预设的不属于缺陷的候选框的情况,从而可以过滤所述轮廓。其中,预设条件可以根据经验设置,在此不做限定。
在一个例子中,所述预设条件包括以下至少之一:轮廓包围的区域的面积小于第一预设面积;轮廓包围的区域的面积大于第二预设面积,其中,所述第二预设面积大于所述第一预设面积;轮廓的包围矩形的长宽比小于第一预设阈值;轮廓的包围矩形的长宽比大于第二预设阈值,其中,所述第二预设阈值大于所述第一预设阈值;轮廓的包围矩形内的平均像素值大于预设像素值。
其中,任一轮廓的包围矩形可以为所述轮廓的外接矩形,且所述轮廓的包围矩形的边与预设的坐标轴(例如xy轴)平行。在一些应用场景中,包围矩形也可以称为边界框(bounding box)。例如,轮廓的包围矩形可以采用(x,y,w,h)表示,其中,(x,y)为包围矩形的左上角点的坐标,w为包围矩形的宽,h为包围矩形的高。
例如,第一预设面积AREA_TH_LOW=20,第二预设面积AREA_TH_HIGH=20000。若任一轮廓包围的区域的面积小于20或者大于20000,则可以过滤所述轮廓。
又如,第一预设阈值为0.1,第二预设阈值为10。若任一轮廓的包围矩形的长宽比小于0.1或者大于10,则可以过滤所述轮廓。
又如,预设像素值PIXEL_MEAN_TH=240。若任一轮廓的包围矩形内的平均像素值大于240,则可以过滤所述轮廓。
在一个例子中,所述根据所述差异图像中过滤后剩余的轮廓,确定所述训练图像中的缺陷的候选框,包括:对于所述差异图像中的任一过滤后剩余的轮廓,将所述轮廓的包围矩形对应的扩大矩形,确定为所述训练图像中的缺陷的候选框,其中,所述扩大矩形与所述包围矩形的几何中心重合,所述扩大矩形的长度是所述包围矩形的长度的第一预设倍数,且所述扩大矩形的宽度是所述包围形的宽度的第二预设倍数,其中,所述第一预设倍数和所述第二预设倍数均大于1。
其中,第一预设倍数与第二预设倍数可以相同或不同。例如,第一预设倍数和第二预设倍数均为2,轮廓的包围矩形为(x,y,w,h),所述轮廓的包围矩形对应的扩大矩形为(x-w/2, y-h/2, 2×w, 2×h)。
在上述示例中,通过过滤所述差异图像中满足预设条件的轮廓,并根据所述差异图像中过滤后剩余的轮廓,确定所述训练图像中的缺陷的候选框,由此能够减少差异图像中的异常轮廓对缺陷检测的干扰。
作为该实现方式的另一个示例,可以根据所述差异图像中的轮廓分别确定缺陷的候选框。即,在该示例中,可以不对查找到的轮廓进行过滤处理。
在另一种可能的实现方式中,所述根据所述训练图像和所述模板图像,确定所述训练图像中的缺陷的候选框,包括:将所述训练图像和所述模板图像输入预先训练的第二神经网络,经由所述第二神经网络确定所述训练图像中的缺陷的候选框。其中,第二神经网络用于基于训练图像和模板图像确定训练图像中缺陷的候选框。
在一种可能的实现方式中,可以仅根据所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块,确定所述候选框对应的缺陷预测结果。在一个例子中,第一图像块可以采用temp_img表示,第二图像块可以采用test_img表示。
在另一种可能的实现方式中,可以根据所述候选框在所述模板图像上的第一图像块、所述候选框在所述差异图像上的第二图像块以及所述候选框在所述训练图像上的第三图像块,确定所述候选框对应的缺陷预测结果。
其中,可以根据候选框在训练图像上的位置,从模板图像、差异图像和训练图像中分别确定第一图像块、第二图像块和第三图像块。即,第一图像块可以表示候选框在模板图像上的图像块,第二图像块可以表示候选框在差异图像上的图像块,第三图像块可以表示候选框在训练图像上的图像块。
在本公开实施例中,第一神经网络可以为深度学习模型。例如,第一神经网络可以采用LeNet5、AlexNet等网络结构。第一神经网络可以预先采用MINIST等数据集进行训练。
在一个示例中,可以将第一图像块对应的第一灰度图像块输入预先训练的第一神经网络,通过第一神经网络对第一灰度图像块进行特征提取,得到第一图像块对应的第一深度特征;可以将第二图像块对应的第二灰度图像块输入第一神经网络,通过第一神经网络对第二灰度图像块进行特征提取,得到第二图像块对应的第二深度特征。
例如,可以将第一灰度图像块temp_img_gray进行LeNet5模型的预处理操作,得到第一灰度图像块temp_img_gray对应的第一预处理特征temp_img_pre;可以将第二灰度图像块test_img_gray进行LeNet5模型的预处理操作,得到第二灰度图像块test_img_gray对应的第二预处理特征test_img_pre。可以通过LeNet5模型对第一预处理特征temp_img_pre进行推理,并可以将LeNet5模型的倒数第二层输出的84维的特征向量作为第一深度特征,或者,可以将LeNet5模型的最后一层输出的10维的特征向量作为第一深度特征。可以通过LeNet5模型对第二预处理特征test_img_pre进行推理,并可以将LeNet5模型的倒数第二层输出的84维的特征向量作为第二深度特征,或者,可以将LeNet5模型的最后一层输出的10维的特征向量作为第二深度特征。
在另一个示例中,可以将第一图像块输入预先训练的第一神经网络,通过第一神经网络对第一图像块进行特征提取,得到第一图像块对应的第一深度特征;可以将第二图像块输入第一神经网络,通过第一神经网络对第二图像块进行特征提取,得到第二图像块对应的第二深度特征。
在一个例子中,第一深度特征可以采用v_temp_deep表示,第二深度特征可以采用v_test_deep表示,可以结合深度特征v_deep = [v_test_deep, v_temp_deep],确定候选框对应的缺陷预测结果。
在本公开实施例中,通过第一神经网络对第一图像块和第二图像块进行特征提取,得到第一图像块对应的第一深度特征和第二图像块对应的第二深度特征,由此能够有效补充人为先验知识未考虑到的特征,从而能够进一步提高缺陷检测的准确性。
在一种可能的实现方式中,所述至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果,包括:对所述第一图像块和所述第二图像块分别进行灰度统计,得到所述第一图像块对应的第一灰度统计结果和所述第二图像块对应的第二灰度统计结果;根据述第一灰度统计结果和所述第二灰度统计结果,确定所述候选框对应的灰度特征;至少将所述第一深度特征、所述第二深度特征和所述灰度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在该实现方式中,可以将第一图像块和第二图像块分别转化为灰度图,得到第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块。在一个例子中,第一灰度图像块可以采用temp_img_gray表示,第二灰度图像块可以采用test_img_gray表示。
在该实现方式中,第一灰度统计结果可以包括第一图像块中部分或所有灰度值的像素数。例如,可以统计第一灰度图像块的灰度直方图,得到第一灰度统计结果。在一个例子中,第一灰度图像块的灰度直方图可以采用temp_hist表示。
第二灰度统计结果可以包括第二图像块中部分或所有灰度值的像素数。例如,可以统计第二灰度图像块的灰度直方图,得到第二灰度统计结果。在一个例子中,第二灰度图像块的灰度直方图可以采用test_hist表示。
作为该实现方式的一个示例,所述第一灰度统计结果包括:所述第一图像块中灰度值为0的像素数和灰度值为255的像素数;所述第二灰度统计结果包括:所述第二图像块中灰度值为0的像素数和灰度值为255的像素数。
在一个例子中,第一图像块中灰度值为0的像素数可以采用temp_hist[0]表示,第一图像块中灰度值为255的像素数可以采用temp_hist[255]表示,第二图像块中灰度值为0的像素数可以采用test_hist[0]表示,第二图像块中灰度值为255的像素数可以采用test_hist[255]表示。可以结合灰度特征v1 = [temp_hist[0], temp_hist[255], test_hist[0], test_hist[255]],确定候选框对应的缺陷预测结果。
在该示例中,通过结合第一图像块中灰度值为0的像素数和灰度值为255的像素数,以及第二图像块中灰度值为0的像素数和灰度值为255的像素数,确定候选框对应的缺陷预测结果,由此利用了第一图像块和第二图像块中灰度值最显著的像素数辅助进行候选框的缺陷检测,能够提高候选框对应的缺陷预测结果的准确性。
在一种可能的实现方式中,所述至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果,包括:获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息;根据所述第一轮廓信息和所述第二轮廓信息,确定所述候选框对应的轮廓特征;至少将所述第一深度特征、所述第二深度特征和所述轮廓特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在该实现方式中,可以采用findContours等轮廓查找方法,分别对第一图像块和第二图像块进行轮廓查找,得到第一图像块对应的第一轮廓信息和第二图像块对应的第二轮廓信息。
在一个例子中,第一轮廓信息可以采用v_c_temp表示,第二轮廓信息可以采用v_c_test表示。可以结合轮廓特征v2 = [v_c_test, v_c_temp],确定候选框对应的缺陷预测结果。
在该实现方式中,通过结合第一图像块对应的第一轮廓信息和第二图像块对应的第二轮廓信息确定候选框对应的缺陷预测结果,由此能够提高候选框对应的缺陷预测结果的准确性。
作为该实现方式的一个示例,所述获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息,包括:根据所述第一图像块对应的第一二值化图像块中的轮廓,确定所述第一图像块对应的第一轮廓信息;根据所述第二图像块对应的第二二值化图像块中的轮廓,确定所述第二图像块对应的第二轮廓信息。
在一个示例中,可以对第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块分别进行模糊操作,得到第一图像块对应的第一模糊图像块和第二图像块对应的第二模糊图像块;可以对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在一个例子中,可以对第一灰度图像块和第二灰度图像块分别进行高斯模糊操作,得到第一模糊图像块和第二模糊图像块。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。
在一个例子中,可以采用OTSU法等方法,对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在一个例子中,可以采用findContours等轮廓查找方法,对第一二值化图像块和第二二值化图像块进行轮廓查找,得到第一二值化图像块中的轮廓和第二二值化图像块中的轮廓。
在一个例子中,第一模糊图像块可以采用temp_img_blur表示,第二模糊图像块可以采用test_img_blur表示,第一二值化图像块可以采用temp_img_bina表示,第二二值化图像块可以采用test_img_bina表示,第一二值化图像块中的轮廓可以采用temp_img_contours表示,第二二值化图像块中的轮廓可以采用test_img_contours表示。
在该示例中,通过根据所述第一图像块对应的第一二值化图像块中的轮廓,确定所述第一图像块对应的第一轮廓信息,并根据所述第二图像块对应的第二二值化图像块中的轮廓,确定所述第二图像块对应的第二轮廓信息,由此能够更准确地进行轮廓查找。
在一个示例中,所述第一轮廓信息包括:所述第一二值化图像块中最大的N个轮廓的几何信息,以及所述第一二值化图像块中的轮廓的数量,其中,N为大于或等于1的整数;所述第二轮廓信息包括:所述第二二值化图像块中最大的N个轮廓的几何信息,以及所述第二二值化图像块中的轮廓的数量。
在该示例中,根据第一二值化图像块中的轮廓围成的区域的面积大小进行排序,可以确定第一二值化图像块中最大的N个轮廓。根据第二二值化图像块中的轮廓围成的区域的面积大小进行排序,可以确定第二二值化图像块中最大的N个轮廓。
例如,N等于2。当然,本领域技术人员可以根据实际应用场景需求灵活设置N的大小,在此不做限定。
例如,第一轮廓信息可以v_c_temp = [temp_count, v_c_temp_v1, v_c_temp_v2],其中,temp_count表示第一二值化图像块中的轮廓的数量,v_c_temp_v1表示第一二值化图像块中最大的轮廓的几何信息,v_c_temp_v2表示第一二值化图像块中第二大的轮廓的几何信息。第二轮廓信息v_c_test = [test_count, v_c_test_v1, v_c_test_v2],其中,test_count表示第二二值化图像块中的轮廓的数量,v_c_test_v1表示第二二值化图像块中最大的轮廓的几何信息,v_c_test_v2表示第二二值化图像块中第二大的轮廓的几何信息。
在该示例中,通过结合第一二值化图像块中最大的N个轮廓的几何信息、第一二值化图像块中的轮廓的数量、第二二值化图像块中最大的N个轮廓的几何信息以及第二二值化图像块中的轮廓的数量,能够针对候选框实现更准确的缺陷检测。
在一个示例中,轮廓的几何信息包括以下至少之一:轮廓的面积、轮廓的包围矩形、轮廓的中心矩、轮廓的几何中心的位置、轮廓的周长、轮廓的非凸性、轮廓的最小外接矩形、轮廓的最小外接圆、轮廓的拟合椭圆、轮廓的拟合矩形。其中,轮廓的拟合椭圆可以表示对轮廓进行椭圆拟合得到的椭圆。轮廓的拟合矩形可以表示对轮廓进行直线拟合得到的矩形。
以第二二值化图像块中面积最大的轮廓为例,该轮廓的面积可以采用test_c_area1表示,该轮廓的包围矩形可以采用 (a1_x, a1_y, a1_w, a1_h)表示,该轮廓的中心矩可以采用M1表示,该轮廓的几何中心的位置可以采用 (c1_x, c1_y)表示,该轮廓的周长可以采用perimeter1表示,该轮廓的非凸性可以采用is_convex1表示,该轮廓的最小外接矩形可以采用(a1_xr, a1_yr, a1_wr, a1_hr)表示,该轮廓的最小外接圆 可以采用(cr1_x, cr1_y, cr1_r)表示,该轮廓的拟合椭圆 (e11,e12,e13,e14,e15),该轮廓的拟合矩形可以采用 (l11,l12,l13,l14)表示。
在一种可能的实现方式中,所述至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果,包括:获得所述第一图像块的宽度和高度;根据所述宽度和所述高度,确定所述候选框对应的尺寸特征;至少将所述第一深度特征、所述第二深度特征和所述尺寸特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一个例子中,第一图像块的宽度可以采用wt表示,第一图像块的高度可以采用ht表示,第一图像块的宽高比可以采用wt/ht表示。可以结合第一图像块的尺寸特征v3=[wt,ht,wt/ht],确定候选框对应的缺陷预测结果。
在该实现方式中,通过结合第一图像块的宽度和高度确定候选框对应的缺陷预测结果,由此能够提高候选框对应的缺陷预测结果的准确性。
在一种可能的实现方式中,所述至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果,包括:获得所述第一图像块的梯度信息,以及所述第二图像块的梯度信息;根据所述第一图像块的梯度信息和所述第二图像块的梯度信息,确定所述候选框对应的梯度特征;至少将所述第一深度特征、所述第二深度特征和所述梯度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一个例子中,第一图像块的梯度信息可以为第一图像块的方向梯度直方图(Histogram of Oriented Gradient,HOG),第二图像块的梯度信息可以为第二图像块的方向梯度直方图,第一图像块的梯度信息可以采用temp_hog_vec表示,第二图像块的梯度信息可以采用test_hog_vec表示。可以结合梯度特征v4 = [temp_hog_vec, test_hog_vec],确定候选框对应的缺陷预测结果。
在该实现方式中,通过结合第一图像块的梯度信息和第二图像块的梯度信息确定候选框对应的缺陷预测结果,由此能够提高候选框对应的缺陷预测结果的准确性。
在一种可能的实现方式中,所述至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果,包括:获取所述第一图像块在形态学变换前后的差异信息以及所述第二图像块在形态学变换前后的差异信息;根据所述第一图像块在形态学变换前后的差异信息以及所述第二图像块在形态学变换前后的差异信息,确定所述候选框对应的形态学差异特征;至少将所述第一深度特征、所述第二深度特征和所述形态学差异特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。在一个例子中,第一图像块可以采用temp_img表示,第二图像块可以采用test_img表示。
作为该实现方式的一个示例,所述根据所述第一图像块在形态学变换前后的差异信息以及所述第二图像块在形态学变换前后的差异信息,确定所述候选框对应的形态学差异特征,包括:获得所述第一图像块对应的第一二值化图像块,以及所述第二图像块对应的第二二值化图像块;对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块;对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块;根据所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的第一像素数,以及所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的第二像素数,确定所述候选框对应的形态学差异特征。
在一个例子中,第一二值化图像块可以采用temp_img_bina表示,第二二值化图像块可以采用test_img_bina表示。
在该示例中,可以对第一二值化图像块执行膨胀操作和/或腐蚀操作,得到第一二值化图像块对应的第一形态学变换图像块;可以对第二二值化图像块执行膨胀操作和/或腐蚀操作,得到第二二值化图像块对应的第二形态学变换图像块。将第一二值化图像块与第一形态学变换图像块逐像素比对,可以确定第一二值化图像块与第一形态学变换图像块之间像素值不同的第一像素数,其中,第一像素数表示第一二值化图像块与第一形态学变换图像块之间像素值不同的像素数。将第二二值化图像块与第二形态学变换图像块逐像素比对,可以确定第二二值化图像块与第二形态学变换图像块之间像素值不同的第二像素数,其中,第二像素数表示第二二值化图像块与第二形态学变换图像块之间像素值不同的像素数。
在该示例中,通过根据第一二值化图像块与第一形态学变换图像块之间像素值不同的第一像素数,以及第二二值化图像块与第二形态学变换图像块之间像素值不同的第二像素数,确定所述候选框对应的形态学差异特征,由此能够提高候选框对应的缺陷预测结果的准确性。
在一个示例中,所述获得所述第一图像块对应的第一二值化图像块,以及所述第二图像块对应的第二二值化图像块,包括:对所述第一图像块对应的第一灰度图像块和所述第二图像块对应的第二灰度图像块分别进行模糊操作,得到所述第一图像块对应的第一模糊图像块和所述第二图像块对应的第二模糊图像块;对所述第一模糊图像块和所述第二模糊图像块分别进行二值化操作,得到所述第一图像块对应的第一二值化图像块和所述第二图像块对应的第二二值化图像块。
在该示例中,可以将第一图像块和第二图像块分别转化为灰度图,得到第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块。在一个例子中,第一灰度图像块可以采用temp_img_gray表示,第二灰度图像块可以采用test_img_gray表示。
在该示例中,可以对第一灰度图像块和第二灰度图像块分别进行模糊操作,得到第一图像块对应的第一模糊图像块和第二图像块对应的第二模糊图像块。在一个例子中,第一模糊图像块可以采用temp_img_blur表示,第二模糊图像块可以采用test_img_blur表示。在一个例子中,可以对第一灰度图像块和第二灰度图像块分别进行高斯模糊操作,得到第一模糊图像块和第二模糊图像块。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。
在一个例子中,可以采用OTSU法等方法,对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在该示例中,通过在二值化之前进行模糊处理,能够获得更平滑的处理结果。
在一个示例中,所述对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块,包括:基于至少两种尺寸的核,对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的至少两个第一形态学变换图像块;所述对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块,包括:基于至少两种尺寸的核,对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的至少两个第二形态学变换图像块;所述根据所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的第一像素数,以及所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的第二像素数,确定所述候选框对应的形态学差异特征,包括:对于所述至少两个第一形态学变换图像块,分别确定所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的像素数,得到至少两项第一像素数;对于所述至少两个第二形态学变换图像块,分别确定所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的像素数,得到至少两项第二像素数;根据所述至少两项第一像素数和所述至少两项第二像素数,确定所述候选框对应的形态学差异特征。
例如,核的尺寸可以包括3、5、7、9、11等中的至少两种,在此不做限定。在该示例中,基于任一尺寸,可以对第一二值化图像块和第二二值化图像块分别进行膨胀操作和/或腐蚀操作,得到对应的第一形态学变换图像块和第二形态学变换图像块。
根据该示例确定的形态学差异特征能够更准确地反映候选框中的缺陷特征,且根据该示例能够针对候选框确定更准确的缺陷预测结果。
作为该实现方式的一个示例,所述第一形态学变换图像块包括第一膨胀图像块和第一腐蚀图像块,所述第二形态学变换图像块包括第二膨胀图像块和第二腐蚀图像块;所述对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块,包括:对所述第一二值化图像块执行膨胀操作,得到所述第一二值化图像块对应的第一膨胀图像块;对所述第一二值化图像块执行腐蚀操作,得到所述第一二值化图像块对应的第一腐蚀图像块;所述对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块,包括:对所述第二二值化图像块执行膨胀操作,得到所述第二二值化图像块对应的第二膨胀图像块;对所述第二二值化图像块执行腐蚀操作,得到所述第二二值化图像块对应的第二腐蚀图像块。
在该示例中,通过对第一二值化图像块和第二二值化图像块分别进行膨胀操作和腐蚀操作,并基于相应的膨胀图像块和腐蚀图像块分别确定差异信息,由此能够进一步提高针对候选框进行缺陷预测的准确性。
在一个示例中,可以设定核尺寸列表kernel_size_list = [3,5,7,9,11]。
可以将核尺寸列表中的每个数值分别作为膨胀操作的核尺寸,得到每个核尺寸下的膨胀差异特征v_ki_d。例如,当核尺寸为3时,记v_ki_d = v_k3_d,当核尺寸为5时,记v_ki_d=v_k5_d,以此类推。可以对第一二值化图像块进行核尺寸为i的膨胀操作,得到第一膨胀图像块;可以对第二二值化图像块进行核尺寸为i的膨胀操作,得到第二膨胀图像块;可以根据第一二值化图像块与第一膨胀图像块之间像素值不同的第一像素数n1,以及第二二值化图像块与第二膨胀图像块之间像素值不同的第二像素数n2,确定膨胀差异特征v_ki_d。例如,若n2等于0,则 v_ki_d = [n1,n2,1];若n2不等于0,则 v_ki_d = [n1,n2,n1/n2]。
可以将核尺寸列表中的每个数值分别作为腐蚀操作的核尺寸,得到每个核尺寸下的腐蚀差异特征v_ki_e。例如,当核尺寸为3时,记v_ki_e = v_k3_e,当核尺寸为5时,记v_ki_e=v_k5_e,以此类推。可以对第一二值化图像块进行核尺寸为i的腐蚀操作,得到第一腐蚀图像块;可以对第二二值化图像块进行核尺寸为i的腐蚀操作,得到第二腐蚀图像块;可以根据第一二值化图像块与第一腐蚀图像块之间像素值不同的第一像素数n1,以及第二二值化图像块与第二腐蚀图像块之间像素值不同的第二像素数n2,确定腐蚀差异特征v_ki_e。例如,若n2等于0,则 v_ki_e = [n1,n2,1];若n2不等于0,则 v_ki_e = [n1,n2,n1/n2]。
在确定出膨胀差异特征v_dilate = [v_k3_d, v_k5_d, v_k7_d, v_k9_d, v_k11_d]和腐蚀差异特征v_ erode = [v_k3_e, v_k5_e, v_k7_e, v_k9_e, v_k11_e]之后,可以结合形态学差异特征v5 = [v_dilate, v_erode],确定候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果,包括:获得所述第一图像块对应的第一二值化图像块与所述第二图像块对应的第二二值化图像块的差异图像块;根据所述差异图像块,确定所述候选框对应的差异统计特征;至少将所述第一深度特征、所述第二深度特征和所述差异统计特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一个示例中,可以对第一图像块对应的第一灰度图像块和第二图像块对应的第二灰度图像块分别进行模糊操作,得到第一图像块对应的第一模糊图像块和第二图像块对应的第二模糊图像块;可以对第一模糊图像块和第二模糊图像块分别进行二值化操作,得到第一图像块对应的第一二值化图像块和第二图像块对应的第二二值化图像块。
在一个例子中,可以对第一灰度图像块和第二灰度图像块分别进行高斯模糊操作,得到第一模糊图像块和第二模糊图像块。其中,高斯模糊操作的高斯核可以为5×5、3×3或者7×7等等,在此不做限定。
在一个例子中,第一二值化图像块可以采用temp_img_bina表示,第二二值化图像块可以采用test_img_bina表示,差异图像块可以采用diff_img表示,可以根据diff_img =test_img_bina – temp_img_bina,确定差异图像块。其中,差异图像块还可以称为差异矩阵等,在此不做限定。
在该实现方式中,通过结合第一图像块对应的第一二值化图像块与第二图像块对应的第二二值化图像块的差异图像块的特征信息,对候选框进行缺陷检测,由此能够利用第一二值化图像块与第二二值化图像块之间的差异信息,提高候选框对应的缺陷预测结果的准确性。
作为该实现方式的一个示例,所述差异图像块的特征信息包括:所述差异图像块中像素值不为0的像素数。
在一个例子中,可以令差异图像块中不为0的像素值变为1,再对差异图像块中的像素值进行累加,确定差异图像块中像素值不为的像素数。
根据该示例,能够快速有效地确定第一二值化图像块与第二二值化图像块的差异信息。
在一个示例中,所述差异图像块中像素值不为0的像素数包括:所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数。
在该示例中,对于差异图像块中的每一行,可以分别确定像素值不为0的像素数,并且,对于差异图像块中的每一列,可以分别确定像素值不为0的像素数。根据所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数,可以得到差异统计特征v6 = [diff_project_y, diff_project_x],其中,diff_project_y和diff_project_x均为向量,且diff_project_y中的元素数等于差异图像块的行数,diff_project_x中的元素数等于差异图像块的列数。
根据该示例,能够进一步提高对候选框进行缺陷检测的准确性。
在另一个示例中,所述差异图像块中像素值不为0的像素数包括:所述差异图像块的每行像素中像素值不为0的像素数。
在另一个示例中,所述差异图像块中像素值不为0的像素数包括:所述差异图像块的每列像素中像素值不为0的像素数。
在本公开实施例中,可以从所述训练图像的标注数据中,获取所述训练图像的缺陷框。对于所述训练图像的任一候选框,若所述候选框与所述训练图像的各个缺陷框的交集均为空,则可以确定所述候选框对应的标注信息为非缺陷;若所述候选框仅与所述训练图像的一个缺陷框存在交集,则可以将所述缺陷框对应的缺陷类型,确定为所述候选框对应的标注信息;若所述候选框与所述训练图像的至少两个缺陷框存在交集,则可以将所述至少两个缺陷框中与所述候选框的交集最大的缺陷框对应的缺陷类型,确定为所述候选框对应的标注信息。
在一种可能的实现方式中,所述机器学习模型可以为基于集成(ensemble)学习的机器学习模型。例如,所述机器学习模型可以为基于随机森林算法、XGBoost、CatBoost等的机器学习模型,在此不做限定。以随机森林算法为例,可以先采用K折交叉验证(例如5折交叉验证)在训练集(包括候选框对应的特征和候选框对应的标注信息)上进行模型搜索,获得最优的算法参数para_opt,再固定算法参数para_opt,将机器学习模型在整个数据集(包括训练集和测试集)上进行训练。例如,para_opt = {'criterion': 'gini', 'min_samples_leaf': 1, 'min_samples_split': 6, 'n_estimators': 100}。在该实现方式中,通过采用基于集成学习的机器学习模型,由此能够提高缺陷检测的速度。
在另一种可能的实现方式中,所述机器学习模型可以为深度学习模型。
下面通过一个具体的应用场景说明本公开实施例提供的用于缺陷检测的机器学习模型的训练方法。在该应用场景中,获取PCB对应的训练图像以及所述训练图像对应的模板图像。
在该应用场景中,可以根据训练图像和模板图像,确定训练图像中的缺陷的候选框。
可以采用传统图像处理方法,对候选框提取手工特征v_traditional = [v1, v2,v3, v4, v5, v6]。
其中,v1为灰度特征,v1 = [temp_hist[0], temp_hist[255], test_hist[0],test_hist[255]];
v2为轮廓特征,v2 = [v_c_test, v_c_temp];
v3为尺寸特征,v3=[wt,ht,wt/ht];
v4为梯度特征,v4 = [temp_hog_vec, test_hog_vec];
v5为形态学差异特征,v5 = [v_dilate, v_erode];
v6为差异统计特征,v6 = [diff_project_y, diff_project_x]。
可以采用预先训练的第一神经网络,对候选框提取深度特征v_deep = [v_test_deep, v_temp_deep]。
可以将手工特征v_traditional和深度特征v_deep输入机器学习模型,得到候选框对应的缺陷预测结果;可以根据候选框对应的标注信息以及所述缺陷预测结果,训练所述机器学习模型。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了缺陷检测装置、用于缺陷检测的机器学习模型的训练装置、电子设备、计算机可读存储介质、计算机程序产品,上述均可用来实现本公开提供的任一种缺陷检测方法或用于缺陷检测的机器学习模型的训练方法,相应技术方案和技术效果可参见方法部分的相应记载,不再赘述。
图5示出本公开实施例提供的缺陷检测装置的框图。如图5所示,所述缺陷检测装置包括:
第一获取模块51,用于获取待检测图像以及所述待检测图像对应的模板图像;
第一获得模块52,用于获得所述待检测图像与所述模板图像的差异图像;
第一确定模块53,用于根据所述差异图像,确定所述待检测图像中的缺陷的候选框;
第二获得模块54,用于获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
检测模块55,用于通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述检测模块55用于:
通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征;
通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述检测模块55用于:
对所述第一图像块和所述第二图像块分别进行灰度统计,得到所述第一图像块对应的第一灰度统计结果和所述第二图像块对应的第二灰度统计结果;
至少根据所述第一深度特征、所述第二深度特征、所述第一灰度统计结果和所述第二灰度统计结果,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,
所述第一灰度统计结果包括:所述第一图像块中灰度值为0的像素数和灰度值为255的像素数;
所述第二灰度统计结果包括:所述第二图像块中灰度值为0的像素数和灰度值为255的像素数。
在一种可能的实现方式中,所述检测模块55用于:
获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息;
至少根据所述第一深度特征、所述第二深度特征、所述第一轮廓信息和所述第二轮廓信息,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,
所述第一轮廓信息包括:所述第一二值化图像块中最大的N个轮廓的几何信息,以及所述第一二值化图像块中的轮廓的数量,其中,N为大于或等于1的整数;
所述第二轮廓信息包括:所述第二二值化图像块中最大的N个轮廓的几何信息,以及所述第二二值化图像块中的轮廓的数量。
在一种可能的实现方式中,所述检测模块55用于:
获得所述第一图像块的宽度和高度;
至少根据所述第一深度特征、所述第二深度特征、所述宽度和所述高度,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述检测模块55用于:
获得所述第一图像块的梯度信息,以及所述第二图像块的梯度信息;
至少根据所述第一深度特征、所述第二深度特征、所述第一图像块的梯度信息和所述第二图像块的梯度信息,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述检测模块55用于:
获得所述第一图像块对应的第一二值化图像块与所述第二图像块对应的第二二值化图像块的差异图像块;
获得所述差异图像块的特征信息;
至少根据所述第一深度特征、所述第二深度特征和所述差异图像块的特征信息,确定所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述差异图像块中像素值不为0的像素数包括:
所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数。
在一种可能的实现方式中,所述第一获得模块52用于:
对所述待检测图像和所述模板图像分别进行模糊操作,得到所述待检测图像对应的第一模糊图像和所述模板图像对应的第二模糊图像;
根据所述第一模糊图像和所述第二模糊图像,确定所述待检测图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述第一获得模块52用于:
对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像;
根据所述第一二值化图像和所述第二二值化图像,确定所述待检测图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述第一确定模块53用于:
确定所述差异图像中的轮廓;
根据所述轮廓,确定所述待检测图像中的缺陷的候选框。
在一种可能的实现方式中,所述第一确定模块53用于:
对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像;
查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓。
在一种可能的实现方式中,所述第一确定模块53用于:
过滤所述差异图像中满足预设条件的轮廓;
根据所述差异图像中剩余的轮廓,确定所述待检测图像中的缺陷的候选框。
在一种可能的实现方式中,所述检测模块55用于:
至少将所述第一深度特征和所述第二深度特征输入预先训练的机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷检测结果。
在一种可能的实现方式中,所述待检测图像为印制电路板对应的待检测图像。
图6示出本公开实施例提供的用于缺陷检测的机器学习模型的训练装置的框图。如图6所示,所述用于缺陷检测的机器学习模型的训练装置包括:
第二获取模块61,用于获取训练图像以及所述训练图像对应的模板图像;
第三获得模块62,用于获得所述训练图像与所述模板图像的差异图像;
第二确定模块63,用于根据所述差异图像,确定所述训练图像中的缺陷的候选框;
第四获得模块64,用于获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
特征提取模块65,用于通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征,并通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
预测模块66,用于至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果;
训练模块67,用于根据所述候选框对应的标注信息,以及所述缺陷预测结果,训练所述机器学习模型。
在一种可能的实现方式中,所述第三获得模块62用于:对所述训练图像和所述模板图像分别进行模糊操作,得到所述训练图像对应的第一模糊图像和所述模板图像对应的第二模糊图像;根据所述第一模糊图像和所述第二模糊图像,确定所述训练图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述第三获得模块62用于:对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像;根据所述第一二值化图像和所述第二二值化图像,确定所述训练图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述第三获得模块62用于:对于任一像素位置,若所述第一二值化图像与所述第二二值化图像中,所述像素位置的像素值不同,则在所述训练图像与所述模板图像的差异图像中,所述像素位置的像素值为0;对于任一像素位置,若所述第一二值化图像与所述第二二值化图像中,所述像素位置的像素值相同,则在所述差异图像中,所述像素位置的像素值为255。
在一种可能的实现方式中,所述第三获得模块62用于:对所述训练图像和所述模板图像分别进行二值化操作,得到所述训练图像对应的第一二值化图像和所述模板图像对应的第二二值化图像;根据所述第一二值化图像和所述第二二值化图像,确定所述训练图像与所述模板图像的差异图像。
在一种可能的实现方式中,所述第二确定模块63用于:确定所述差异图像中的轮廓;根据所述轮廓,确定所述训练图像中的缺陷的候选框。
在一种可能的实现方式中,所述第二确定模块63用于:对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像;查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓。
在一种可能的实现方式中,所述第二确定模块63用于:过滤所述差异图像中满足预设条件的轮廓;根据所述差异图像中过滤后剩余的轮廓,确定所述训练图像中的缺陷的候选框。
在一种可能的实现方式中,所述预设条件包括以下至少之一:轮廓包围的区域的面积小于第一预设面积;轮廓包围的区域的面积大于第二预设面积,其中,所述第二预设面积大于所述第一预设面积;轮廓的包围矩形的长宽比小于第一预设阈值;轮廓的包围矩形的长宽比大于第二预设阈值,其中,所述第二预设阈值大于所述第一预设阈值;轮廓的包围矩形内的平均像素值大于预设像素值。
在一种可能的实现方式中,所述第二确定模块63用于:对于所述差异图像中的任一过滤后剩余的轮廓,将所述轮廓的包围矩形对应的扩大矩形,确定为所述训练图像中的缺陷的候选框,其中,所述扩大矩形与所述包围矩形的几何中心重合,所述扩大矩形的长度是所述包围矩形的长度的第一预设倍数,且所述扩大矩形的宽度是所述包围形的宽度的第二预设倍数,其中,所述第一预设倍数和所述第二预设倍数均大于1。
在一种可能的实现方式中,所述预测模块66用于:对所述第一图像块和所述第二图像块分别进行灰度统计,得到所述第一图像块对应的第一灰度统计结果和所述第二图像块对应的第二灰度统计结果;根据述第一灰度统计结果和所述第二灰度统计结果,确定所述候选框对应的灰度特征;至少将所述第一深度特征、所述第二深度特征和所述灰度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述第一灰度统计结果包括:所述第一图像块中灰度值为0的像素数和灰度值为255的像素数;所述第二灰度统计结果包括:所述第二图像块中灰度值为0的像素数和灰度值为255的像素数。
在一种可能的实现方式中,所述预测模块66用于:获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息;根据所述第一轮廓信息和所述第二轮廓信息,确定所述候选框对应的轮廓特征;至少将所述第一深度特征、所述第二深度特征和所述轮廓特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述预测模块66用于:根据所述第一图像块对应的第一二值化图像块中的轮廓,确定所述第一图像块对应的第一轮廓信息;根据所述第二图像块对应的第二二值化图像块中的轮廓,确定所述第二图像块对应的第二轮廓信息。
在一种可能的实现方式中,所述第一轮廓信息包括:所述第一二值化图像块中最大的N个轮廓的几何信息,以及所述第一二值化图像块中的轮廓的数量,其中,N为大于或等于1的整数;所述第二轮廓信息包括:所述第二二值化图像块中最大的N个轮廓的几何信息,以及所述第二二值化图像块中的轮廓的数量。
在一种可能的实现方式中,轮廓的几何信息包括以下至少之一:轮廓的面积、轮廓的包围矩形、轮廓的中心矩、轮廓的几何中心的位置、轮廓的周长、轮廓的非凸性、轮廓的最小外接矩形、轮廓的最小外接圆、轮廓的拟合椭圆、轮廓的拟合矩形。其中,轮廓的拟合椭圆可以表示对轮廓进行椭圆拟合得到的椭圆。轮廓的拟合矩形可以表示对轮廓进行直线拟合得到的矩形。
在一种可能的实现方式中,所述预测模块66用于:获得所述第一图像块的宽度和高度;根据所述宽度和所述高度,确定所述候选框对应的尺寸特征;至少将所述第一深度特征、所述第二深度特征和所述尺寸特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述预测模块66用于:获得所述第一图像块的梯度信息,以及所述第二图像块的梯度信息;根据所述第一图像块的梯度信息和所述第二图像块的梯度信息,确定所述候选框对应的梯度特征;至少将所述第一深度特征、所述第二深度特征和所述梯度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述预测模块66用于:获取所述第一图像块在形态学变换前后的差异信息以及所述第二图像块在形态学变换前后的差异信息;根据所述第一图像块在形态学变换前后的差异信息以及所述第二图像块在形态学变换前后的差异信息,确定所述候选框对应的形态学差异特征;至少将所述第一深度特征、所述第二深度特征和所述形态学差异特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述预测模块66用于:获得所述第一图像块对应的第一二值化图像块,以及所述第二图像块对应的第二二值化图像块;对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的第一形态学变换图像块;对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块;根据所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的第一像素数,以及所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的第二像素数,确定所述候选框对应的形态学差异特征。
在一种可能的实现方式中,所述预测模块66用于:对所述第一图像块对应的第一灰度图像块和所述第二图像块对应的第二灰度图像块分别进行模糊操作,得到所述第一图像块对应的第一模糊图像块和所述第二图像块对应的第二模糊图像块;对所述第一模糊图像块和所述第二模糊图像块分别进行二值化操作,得到所述第一图像块对应的第一二值化图像块和所述第二图像块对应的第二二值化图像块。
在一种可能的实现方式中,所述预测模块66用于:基于至少两种尺寸的核,对所述第一二值化图像块执行形态学操作,得到所述第一二值化图像块对应的至少两个第一形态学变换图像块;所述对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的第二形态学变换图像块,包括:基于至少两种尺寸的核,对所述第二二值化图像块执行形态学操作,得到所述第二二值化图像块对应的至少两个第二形态学变换图像块;所述根据所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的第一像素数,以及所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的第二像素数,确定所述候选框对应的形态学差异特征,包括:对于所述至少两个第一形态学变换图像块,分别确定所述第一二值化图像块与所述第一形态学变换图像块之间像素值不同的像素数,得到至少两项第一像素数;对于所述至少两个第二形态学变换图像块,分别确定所述第二二值化图像块与所述第二形态学变换图像块之间像素值不同的像素数,得到至少两项第二像素数;根据所述至少两项第一像素数和所述至少两项第二像素数,确定所述候选框对应的形态学差异特征。
在一种可能的实现方式中,所述预测模块66用于:对所述第一二值化图像块执行膨胀操作,得到所述第一二值化图像块对应的第一膨胀图像块;对所述第一二值化图像块执行腐蚀操作,得到所述第一二值化图像块对应的第一腐蚀图像块;对所述第二二值化图像块执行膨胀操作,得到所述第二二值化图像块对应的第二膨胀图像块;对所述第二二值化图像块执行腐蚀操作,得到所述第二二值化图像块对应的第二腐蚀图像块。
在一种可能的实现方式中,所述预测模块66用于:获得所述第一图像块对应的第一二值化图像块与所述第二图像块对应的第二二值化图像块的差异图像块;根据所述差异图像块,确定所述候选框对应的差异统计特征;至少将所述第一深度特征、所述第二深度特征和所述差异统计特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果。
在一种可能的实现方式中,所述差异图像块的特征信息包括:所述差异图像块中像素值不为0的像素数。
在一种可能的实现方式中,所述差异图像块中像素值不为0的像素数包括:所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现和技术效果可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。其中,所述计算机可读存储介质可以是非易失性计算机可读存储介质,或者可以是易失性计算机可读存储介质。
本公开实施例还提出一种计算机程序,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。
本公开实施例还提供一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图7示出本公开实施例提供的电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图7,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入/输出接口1958(I/O接口)。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(MacOS XTM),多用户多进程的计算机操作系统(UnixTM), 自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
若本公开实施例的技术方案涉及个人信息,应用本公开实施例的技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本公开实施例的技术方案涉及敏感个人信息,应用本公开实施例的技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (23)
1.一种缺陷检测方法,其特征在于,包括:
获取待检测图像以及所述待检测图像对应的模板图像;
获得所述待检测图像与所述模板图像的差异图像;
根据所述差异图像,确定所述待检测图像中的缺陷的候选框;
获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。
2.根据权利要求1所述的方法,其特征在于,所述通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果,包括:
通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征;
通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果。
3.根据权利要求2所述的方法,其特征在于,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:
对所述第一图像块和所述第二图像块分别进行灰度统计,得到所述第一图像块对应的第一灰度统计结果和所述第二图像块对应的第二灰度统计结果;
至少根据所述第一深度特征、所述第二深度特征、所述第一灰度统计结果和所述第二灰度统计结果,确定所述候选框对应的缺陷检测结果。
4.根据权利要求3所述的方法,其特征在于,
所述第一灰度统计结果包括:所述第一图像块中灰度值为0的像素数和灰度值为255的像素数;
所述第二灰度统计结果包括:所述第二图像块中灰度值为0的像素数和灰度值为255的像素数。
5.根据权利要求2所述的方法,其特征在于,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:
获得所述第一图像块对应的第一轮廓信息,以及所述第二图像块对应的第二轮廓信息;
至少根据所述第一深度特征、所述第二深度特征、所述第一轮廓信息和所述第二轮廓信息,确定所述候选框对应的缺陷检测结果。
6.根据权利要求5所述的方法,其特征在于,
所述第一轮廓信息包括:第一二值化图像块中最大的N个轮廓的几何信息,以及所述第一二值化图像块中的轮廓的数量,其中,N为大于或等于1的整数;
所述第二轮廓信息包括:第二二值化图像块中最大的N个轮廓的几何信息,以及所述第二二值化图像块中的轮廓的数量。
7.根据权利要求2所述的方法,其特征在于,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:
获得所述第一图像块的宽度和高度;
至少根据所述第一深度特征、所述第二深度特征、所述宽度和所述高度,确定所述候选框对应的缺陷检测结果。
8.根据权利要求2所述的方法,其特征在于,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:
获得所述第一图像块的梯度信息,以及所述第二图像块的梯度信息;
至少根据所述第一深度特征、所述第二深度特征、所述第一图像块的梯度信息和所述第二图像块的梯度信息,确定所述候选框对应的缺陷检测结果。
9.根据权利要求2所述的方法,其特征在于,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:
获得所述第一图像块对应的第一二值化图像块与所述第二图像块对应的第二二值化图像块的差异图像块;
获得所述差异图像块的特征信息;
至少根据所述第一深度特征、所述第二深度特征和所述差异图像块的特征信息,确定所述候选框对应的缺陷检测结果。
10.根据权利要求9所述的方法,其特征在于,所述差异图像块中像素值不为0的像素数包括:
所述差异图像块的每行像素中像素值不为0的像素数,以及所述差异图像块的每列像素中像素值不为0的像素数。
11.根据权利要求1至10中任意一项所述的方法,其特征在于,所述获得所述待检测图像与所述模板图像的差异图像,包括:
对所述待检测图像和所述模板图像分别进行模糊操作,得到所述待检测图像对应的第一模糊图像和所述模板图像对应的第二模糊图像;
根据所述第一模糊图像和所述第二模糊图像,确定所述待检测图像与所述模板图像的差异图像。
12.根据权利要求11所述的方法,其特征在于,所述根据所述第一模糊图像和所述第二模糊图像,确定所述待检测图像与所述模板图像的差异图像,包括:
对所述第一模糊图像和所述第二模糊图像分别进行二值化操作,得到所述第一模糊图像对应的第一二值化图像和所述第二模糊图像对应的第二二值化图像;
根据所述第一二值化图像和所述第二二值化图像,确定所述待检测图像与所述模板图像的差异图像。
13.根据权利要求1至10中任意一项所述的方法,其特征在于,所述根据所述差异图像,确定所述待检测图像中的缺陷的候选框,包括:
确定所述差异图像中的轮廓;
根据所述轮廓,确定所述待检测图像中的缺陷的候选框。
14.根据权利要求13所述的方法,其特征在于,所述确定所述差异图像中的轮廓,包括:
对所述差异图像进行形态学操作,得到所述差异图像对应的去干扰图像;
查找所述去干扰图像中的轮廓,作为所述差异图像中的轮廓。
15.根据权利要求13所述的方法,其特征在于,所述根据所述轮廓,确定所述待检测图像中的缺陷的候选框,包括:
过滤所述差异图像中满足预设条件的轮廓;
根据所述差异图像中剩余的轮廓,确定所述待检测图像中的缺陷的候选框。
16.根据权利要求2至10中任意一项所述的方法,其特征在于,所述至少根据所述第一深度特征和所述第二深度特征,确定所述候选框对应的缺陷检测结果,包括:
至少将所述第一深度特征和所述第二深度特征输入预先训练的机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷检测结果。
17.根据权利要求1至10中任意一项所述的方法,其特征在于,所述待检测图像为印制电路板对应的待检测图像。
18.一种用于缺陷检测的机器学习模型的训练方法,其特征在于,包括:
获取训练图像以及所述训练图像对应的模板图像;
获得所述训练图像与所述模板图像的差异图像;
根据所述差异图像,确定所述训练图像中的缺陷的候选框;
获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征,并通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果;
根据所述候选框对应的标注信息,以及所述缺陷预测结果,训练所述机器学习模型。
19.一种缺陷检测装置,其特征在于,包括:
第一获取模块,用于获取待检测图像以及所述待检测图像对应的模板图像;
第一获得模块,用于获得所述待检测图像与所述模板图像的差异图像;
第一确定模块,用于根据所述差异图像,确定所述待检测图像中的缺陷的候选框;
第二获得模块,用于获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
检测模块,用于通过预先训练的第一神经网络对所述第一图像块和所述第二图像块进行处理,得到所述候选框对应的缺陷检测结果。
20.一种用于缺陷检测的机器学习模型的训练装置,其特征在于,包括:
第二获取模块,用于获取训练图像以及所述训练图像对应的模板图像;
第三获得模块,用于获得所述训练图像与所述模板图像的差异图像;
第二确定模块,用于根据所述差异图像,确定所述训练图像中的缺陷的候选框;
第四获得模块,用于获得所述候选框在所述模板图像上的第一图像块,以及所述候选框在所述差异图像上的第二图像块;
特征提取模块,用于通过预先训练的第一神经网络对所述第一图像块进行处理,得到所述第一图像块对应的第一深度特征,并通过所述第一神经网络对所述第二图像块进行处理,得到所述第二图像块对应的第二深度特征;
预测模块,用于至少将所述第一深度特征和所述第二深度特征输入机器学习模型,经由所述机器学习模型得到所述候选框对应的缺陷预测结果;
训练模块,用于根据所述候选框对应的标注信息,以及所述缺陷预测结果,训练所述机器学习模型。
21.一种电子设备,其特征在于,包括:
一个或多个处理器;
用于存储可执行指令的存储器;
其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行权利要求1至18中任意一项所述的方法。
22.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至18中任意一项所述的方法。
23.一种计算机程序产品,其特征在于,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行权利要求1至18中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211701343.1A CN115690101A (zh) | 2022-12-29 | 2022-12-29 | 缺陷检测方法、装置、电子设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211701343.1A CN115690101A (zh) | 2022-12-29 | 2022-12-29 | 缺陷检测方法、装置、电子设备、存储介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115690101A true CN115690101A (zh) | 2023-02-03 |
Family
ID=85055952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211701343.1A Pending CN115690101A (zh) | 2022-12-29 | 2022-12-29 | 缺陷检测方法、装置、电子设备、存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115690101A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116468726A (zh) * | 2023-06-13 | 2023-07-21 | 厦门福信光电集成有限公司 | 一种在线异物线路检测方法及系统 |
CN117635590A (zh) * | 2023-12-12 | 2024-03-01 | 深圳市英伟胜科技有限公司 | 一种笔记本电脑外壳的缺陷检测方法、缺陷检测装置和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103439348A (zh) * | 2013-08-16 | 2013-12-11 | 中国科学院半导体研究所 | 基于差影法的遥控器按键缺陷检测方法 |
CN108956616A (zh) * | 2018-05-31 | 2018-12-07 | 南京航空航天大学 | 一种基于图像的工件缺陷检测方法 |
US20200134800A1 (en) * | 2018-10-29 | 2020-04-30 | International Business Machines Corporation | Precision defect detection based on image difference with respect to templates |
CN111986178A (zh) * | 2020-08-21 | 2020-11-24 | 北京百度网讯科技有限公司 | 产品缺陷检测方法、装置、电子设备和存储介质 |
CN112884744A (zh) * | 2021-02-22 | 2021-06-01 | 深圳中科飞测科技股份有限公司 | 检测方法及装置、检测设备和存储介质 |
CN112884743A (zh) * | 2021-02-22 | 2021-06-01 | 深圳中科飞测科技股份有限公司 | 检测方法及装置、检测设备和存储介质 |
CN113240642A (zh) * | 2021-05-13 | 2021-08-10 | 创新奇智(北京)科技有限公司 | 图像缺陷检测方法及装置、电子设备、存储介质 |
CN114862776A (zh) * | 2022-04-22 | 2022-08-05 | 深圳职业技术学院 | 一种产品表面缺陷检测方法、装置、计算机设备及介质 |
CN115239626A (zh) * | 2022-06-21 | 2022-10-25 | 奥蒂玛光学科技(深圳)有限公司 | 缺陷检测方法、光学检测设备、电子设备以及存储介质 |
CN115439395A (zh) * | 2021-06-04 | 2022-12-06 | 武汉Tcl集团工业研究院有限公司 | 显示面板的缺陷检测方法、装置、存储介质及电子设备 |
-
2022
- 2022-12-29 CN CN202211701343.1A patent/CN115690101A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103439348A (zh) * | 2013-08-16 | 2013-12-11 | 中国科学院半导体研究所 | 基于差影法的遥控器按键缺陷检测方法 |
CN108956616A (zh) * | 2018-05-31 | 2018-12-07 | 南京航空航天大学 | 一种基于图像的工件缺陷检测方法 |
US20200134800A1 (en) * | 2018-10-29 | 2020-04-30 | International Business Machines Corporation | Precision defect detection based on image difference with respect to templates |
CN111986178A (zh) * | 2020-08-21 | 2020-11-24 | 北京百度网讯科技有限公司 | 产品缺陷检测方法、装置、电子设备和存储介质 |
CN112884744A (zh) * | 2021-02-22 | 2021-06-01 | 深圳中科飞测科技股份有限公司 | 检测方法及装置、检测设备和存储介质 |
CN112884743A (zh) * | 2021-02-22 | 2021-06-01 | 深圳中科飞测科技股份有限公司 | 检测方法及装置、检测设备和存储介质 |
CN113240642A (zh) * | 2021-05-13 | 2021-08-10 | 创新奇智(北京)科技有限公司 | 图像缺陷检测方法及装置、电子设备、存储介质 |
CN115439395A (zh) * | 2021-06-04 | 2022-12-06 | 武汉Tcl集团工业研究院有限公司 | 显示面板的缺陷检测方法、装置、存储介质及电子设备 |
CN114862776A (zh) * | 2022-04-22 | 2022-08-05 | 深圳职业技术学院 | 一种产品表面缺陷检测方法、装置、计算机设备及介质 |
CN115239626A (zh) * | 2022-06-21 | 2022-10-25 | 奥蒂玛光学科技(深圳)有限公司 | 缺陷检测方法、光学检测设备、电子设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
甘胜丰等: "《机器视觉表面缺陷检测技术及其在钢铁工业中的应用》", 华中科技大学出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116468726A (zh) * | 2023-06-13 | 2023-07-21 | 厦门福信光电集成有限公司 | 一种在线异物线路检测方法及系统 |
CN116468726B (zh) * | 2023-06-13 | 2023-10-03 | 厦门福信光电集成有限公司 | 一种在线异物线路检测方法及系统 |
CN117635590A (zh) * | 2023-12-12 | 2024-03-01 | 深圳市英伟胜科技有限公司 | 一种笔记本电脑外壳的缺陷检测方法、缺陷检测装置和存储介质 |
CN117635590B (zh) * | 2023-12-12 | 2024-09-27 | 深圳市英伟胜科技有限公司 | 一种笔记本电脑外壳的缺陷检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115690102B (zh) | 缺陷检测方法、装置、电子设备、存储介质和程序产品 | |
CN111681273B (zh) | 图像分割方法、装置、电子设备及可读存储介质 | |
US10043090B2 (en) | Information processing device, information processing method, computer-readable recording medium, and inspection system | |
CN115690101A (zh) | 缺陷检测方法、装置、电子设备、存储介质和程序产品 | |
US9600746B2 (en) | Image processing apparatus and image processing method | |
CN110569899A (zh) | 坝面缺陷分类模型训练方法及装置 | |
CN110135514B (zh) | 一种工件分类方法、装置、设备及介质 | |
US11268910B2 (en) | Apparatus for optimizing inspection of exterior of target object and method thereof | |
CN111079638A (zh) | 基于卷积神经网络的目标检测模型训练方法、设备和介质 | |
CN109685065B (zh) | 试卷内容自动分类的版面分析方法、系统 | |
CN112364740B (zh) | 一种基于计算机视觉的无人机房监控方法及系统 | |
CN110706224B (zh) | 基于暗场图像的光学元件弱划痕检测方法、系统和装置 | |
CN108734684B (zh) | 动态照明场景的图像背景减除 | |
CN112906794A (zh) | 一种目标检测方法、装置、存储介质及终端 | |
CN111723634A (zh) | 一种图像检测方法、装置、电子设备及存储介质 | |
CN111210412A (zh) | 一种包装检测方法、装置、电子设备及存储介质 | |
CN115439456A (zh) | 一种病理图像中对象检测识别方法及装置 | |
CN111222355A (zh) | Pcb板上的条码定位方法及系统 | |
CN117314880A (zh) | 图像缺陷检测方法及装置 | |
CN111950644B (zh) | 模型的训练样本选择方法、装置及计算机设备 | |
CN111046878B (zh) | 一种数据处理方法、装置及计算机存储介质和计算机 | |
CN114596242A (zh) | 缺陷检测方法、装置、电子设备及计算机可读存储介质 | |
Ling et al. | TD‐YOLO: A Lightweight Detection Algorithm for Tiny Defects in High‐Resolution PCBs | |
CN114898186B (zh) | 细粒度图像识别模型训练、图像识别方法及装置 | |
CN111709943B (zh) | 一种工件超视野识别方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |