缺陷检测方法和装置转让专利

申请号 : CN202110441107.X

文献号 : CN113160176B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张文超张一凡冯扬扬刘杰

申请人 : 歌尔股份有限公司

摘要 :

本申请公开了缺陷检测方法和装置。其中方法包括:获取目标的待检测图像;利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图;分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。有益效果在于,支持任意形状的缺陷部分图像识别,泛用性强;缺陷检测既考虑了目标的整体性,又重点关注到了局部,提升了缺陷检测准确率,而且流程简单,尤其适用于生产线上的产品缺陷检测。

权利要求 :

1.一种缺陷检测方法,包括:

获取目标的待检测图像;

利用训练好的图像分割网络从所述待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;

根据所述目标整体图像和所述缺陷部分图像确定第一子图,以及根据所述缺陷部分图像确定第二子图,其中,所述根据所述目标整体图像和所述缺陷部分图像确定第一子图包括:从所述目标整体图像中选择位置与所述缺陷部分图像匹配,但尺寸小于所述缺陷部分图像的区域,作为与所述缺陷部分图像对应的区域,将所述目标整体图像中,与所述缺陷部分图像对应的区域填充为指定颜色,得到所述第一子图;

所述根据所述缺陷部分图像确定第二子图包括:从所述待检测图像中提取位置与所述缺陷部分图像匹配,但尺寸大于所述缺陷部分图像的区域,得到所述第二子图;

分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定所述目标存在缺陷。

2.如权利要求1所述的方法,其特征在于,所述图像分割网络是通过如下方式训练得到的:确定第一形状,根据第一形状生成训练样本图像的标注信息;

生成训练样本图像的掩模图像,根据训练样本图像及其掩模图像对Unet网络进行训练,得到所述图像分割网络。

3.如权利要求1所述的方法,其特征在于,所述方法还包括:若识别出的目标整体图像和/或缺陷部分图像的形状与第二形状不匹配,则对识别出的目标整体图像和/或缺陷部分图像依据相应的最小外接第二形状进行修正。

4.如权利要求1所述的方法,其特征在于,所述方法还包括:在检测到缺陷的情况下,确定所述缺陷在相应子图中的子图像素坐标;

根据所述目标整体图像和/或所述缺陷部分图像在所述待检测图像中的位置,对所述缺陷的子图像素坐标进行坐标变换,得到所述缺陷在所述待检测图像中的原图像素坐标,从而能够根据所述缺陷在所述待检测图像中的原图像素坐标,确定所述缺陷在目标中的位置。

5.如权利要求1所述的方法,其特征在于,所述方法还包括:在从所述第一子图和所述第二子图中均检测出缺陷的情况下,确定各缺陷在相应子图中的检测框;

若两个缺陷的检测框的交并比大于预设阈值,则对该两个缺陷的检测框进行合并,得到合并后的检测框,并在所述待检测图像中示出合并后的检测框以表征缺陷在目标中的位置。

6.如权利要求5所述的方法,其特征在于,所述对该两个缺陷的检测框进行合并,得到合并后的检测框包括:将该两个缺陷的检测框的最小外接第三形状作为合并后的检测框。

7.一种缺陷检测装置,包括:

获取单元,用于获取目标的待检测图像;

区域识别单元,用于利用训练好的图像分割网络从所述待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;

子图生成单元,用于根据所述目标整体图像和所述缺陷部分图像确定第一子图,以及根据所述缺陷部分图像确定第二子图,其中,所述根据所述目标整体图像和所述缺陷部分图像确定第一子图包括:从所述目标整体图像中选择位置与所述缺陷部分图像匹配,但尺寸小于所述缺陷部分图像的区域,作为与所述缺陷部分图像对应的区域,将所述目标整体图像中,与所述缺陷部分图像对应的区域填充为指定颜色,得到所述第一子图;

所述根据所述缺陷部分图像确定第二子图包括:从所述待检测图像中提取位置与所述缺陷部分图像匹配,但尺寸大于所述缺陷部分图像的区域,得到所述第二子图;

缺陷检测单元,用于分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定所述目标存在缺陷。

说明书 :

缺陷检测方法和装置

技术领域

[0001] 本申请涉及计算机视觉技术领域,尤其涉及缺陷检测方法和装置。

背景技术

[0002] 在传统的精密制造行业,生产的产品缺陷一般通过人工来进行分类检测。近几年,传统制造逐渐向智能制造转变。基于深度学习的目标检测由于具有检测成本低、检测结果稳定、人工需求少、易于维护等优点,逐渐在产品缺陷检测场景中得到利用,成为传统制造向自动化转变的重要一环。
[0003] 在缺陷检测的过程中,产品的部分区域对性能和效率的影响较大,因此该区域对缺陷的容忍度较低,需要对该部分区域重点检测。一些特殊情况下,甚至要求重点区域的漏检率为零,而现有技术中还存在技术空白。

发明内容

[0004] 本申请实施例提供了缺陷检测方法和装置,以提高缺陷检测准确率,尤其是一些重点区域的缺陷检测准确率。
[0005] 本申请实施例采用下述技术方案:
[0006] 第一方面,本申请实施例提供一种缺陷检测方法,包括:获取目标的待检测图像;利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图;分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。
[0007] 在一些实施例中,缺陷检测方法中,图像分割网络是通过如下方式训练得到的:确定第一形状,根据第一形状生成训练样本图像的标注信息;生成训练样本图像的掩模图像,根据训练样本图像及其掩模图像对Unet网络进行训练,得到图像分割网络。
[0008] 在一些实施例中,缺陷检测方法中,根据目标整体图像和缺陷部分图像确定第一子图包括:将目标整体图像中,与缺陷部分图像对应的区域填充为指定颜色,得到第一子图。
[0009] 在一些实施例中,缺陷检测方法中,将目标整体图像中,与缺陷部分图像对应的区域填充为指定颜色包括:从目标整体图像中选择位置与缺陷部分图像匹配,但尺寸小于缺陷部分图像的区域,作为与缺陷部分图像对应的区域。
[0010] 在一些实施例中,缺陷检测方法中,根据缺陷部分图像确定第二子图包括:从待检测图像中提取位置与缺陷部分图像匹配,但尺寸大于缺陷部分图像的区域,得到第二子图。
[0011] 在一些实施例中,缺陷检测方法还包括:若识别出的目标整体图像和/或缺陷部分图像的形状与第二形状不匹配,则对识别出的目标整体图像和/或缺陷部分图像依据相应的最小外接第二形状进行修正。
[0012] 在一些实施例中,缺陷检测方法还包括:在检测到缺陷的情况下,确定缺陷在相应子图中的子图像素坐标;根据目标整体图像和/或缺陷部分图像在待检测图像中的位置,对缺陷的子图像素坐标进行坐标变换,得到缺陷在待检测图像中的原图像素坐标,从而能够根据缺陷在待检测图像中的原图像素坐标,确定缺陷在目标中的位置。
[0013] 在一些实施例中,缺陷检测方法还包括:在从第一子图和第二子图中均检测出缺陷的情况下,确定各缺陷在相应子图中的检测框;若两个缺陷的检测框的交并比大于预设阈值,则对该两个缺陷的检测框进行合并,得到合并后的检测框,并在待检测图像中示出合并后的检测框以表征缺陷在目标中的位置。
[0014] 在一些实施例中,缺陷检测方法中,对该两个缺陷的检测框进行合并,得到合并后的检测框包括:将该两个缺陷的检测框的最小外接第三形状作为合并后的检测框。
[0015] 第二方面,本申请实施例还提供一种缺陷检测装置,用于实现如上任一的缺陷检测方法。
[0016] 在一些实施例中,缺陷检测装置包括:获取单元,用于获取目标的待检测图像;区域识别单元,用于利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;子图生成单元,用于根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图;缺陷检测单元,用于分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。
[0017] 在一些实施例中,缺陷检测装置还包括:训练单元,用于确定第一形状,根据第一形状生成训练样本图像的标注信息;生成训练样本图像的掩模图像,根据训练样本图像及其掩模图像对Unet网络进行训练,得到图像分割网络。
[0018] 在一些实施例中,缺陷检测装置中,子图生成单元,用于将目标整体图像中,与缺陷部分图像对应的区域填充为指定颜色,得到第一子图。
[0019] 在一些实施例中,缺陷检测装置中,子图生成单元,用于从目标整体图像中选择位置与缺陷部分图像匹配,但尺寸小于缺陷部分图像的区域,作为与缺陷部分图像对应的区域。
[0020] 在一些实施例中,缺陷检测装置中,子图生成单元,用于从待检测图像中提取位置与缺陷部分图像匹配,但尺寸大于缺陷部分图像的区域,得到第二子图。
[0021] 在一些实施例中,缺陷检测装置中,区域识别单元,还用于若识别出的目标整体图像和/或缺陷部分图像的形状与第二形状不匹配,则对识别出的目标整体图像和/或缺陷部分图像依据相应的最小外接第二形状进行修正。
[0022] 在一些实施例中,缺陷检测装置中,缺陷检测单元,还用于在检测到缺陷的情况下,确定缺陷在相应子图中的子图像素坐标;根据目标整体图像和/或缺陷部分图像在待检测图像中的位置,对缺陷的子图像素坐标进行坐标变换,得到缺陷在待检测图像中的原图像素坐标,从而能够根据缺陷在待检测图像中的原图像素坐标,确定缺陷在目标中的位置。
[0023] 在一些实施例中,缺陷检测装置中,缺陷检测单元,还用于在从第一子图和第二子图中均检测出缺陷的情况下,确定各缺陷在相应子图中的检测框;若两个缺陷的检测框的交并比大于预设阈值,则对该两个缺陷的检测框进行合并,得到合并后的检测框,并在待检测图像中示出合并后的检测框以表征缺陷在目标中的位置。
[0024] 在一些实施例中,缺陷检测装置中,缺陷检测单元,还用于将该两个缺陷的检测框的最小外接第三形状作为合并后的检测框。
[0025] 第三方面,本申请实施例还提供一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行如上任一的缺陷检测方法。
[0026] 第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行如上任一的缺陷检测方法。
[0027] 本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:利用训练好的图像分割网络,通过一次识别,即可从待检测图像中识别得到与目标对应的目标整体图像和呈第一形状的缺陷部分图像,第一形状可以为游泳圈形、圆形、椭圆形等任意形状,根据实际需求设置即可,泛用性强;然后通过生成两个子图,分别对子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷,这样既考虑了目标的整体性,又重点关注到了局部,提升了缺陷检测准确率,而且流程简单,尤其适用于生产线上的产品缺陷检测。

附图说明

[0028] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0029] 图1示出了根据本申请一个实施例的缺陷检测方法的流程示意图;
[0030] 图2示出了产品的待检测图像的示意图;
[0031] 图3示出了Unet网络的结构示意图;
[0032] 图4示出了根据图2得到的第一子图;
[0033] 图5示出了根据图2得到的第二子图;
[0034] 图6示出了坐标变换的原理示意图;
[0035] 图7示出了将两个检测框合并得到一个检测框的示意图;
[0036] 图8示出了根据本申请一个实施例的缺陷检测装置的结构示意图;
[0037] 图9为本申请实施例中一种电子设备的结构示意图。

具体实施方式

[0038] 本申请的技术构思在于,将缺陷检测的对象分为两部分,不仅对目标整体进行缺陷检测,还要对局部区域进行缺陷检测。这种方式的难点在于,不同产品关注的局部区域可能不同。本申请的实施例中,利用训练好的图像分割网络,实现了按局部区域的形状来进行分割识别,支持任意形状的局部区域分割。
[0039] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0040] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0041] 图1示出了根据本申请一个实施例的缺陷检测方法的流程示意图,如图1所示,缺陷检测方法包括:
[0042] 步骤S110,获取目标的待检测图像。这里的目标可以是任意存在缺陷检测需求的对象,例如芯片、壳体等各类生产线上可产出的产品。
[0043] 步骤S120,利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像。
[0044] 目标的待检测图像可以通过对目标进行拍摄得到,而拍摄时几乎无法实现仅拍摄到目标而不拍摄到目标的背景,而背景可能影响到缺陷检测,因此本申请的实施例需要识别出与目标对应的目标整体图像,以便后续进行整体性的缺陷检测。
[0045] 进一步地,本申请的实施例在一次图像分割时,不仅能够识别出目标整体图像,还能够识别出呈第一形状的缺陷部分图像,这里的缺陷部分图像并不是指该图像就必然对应一处缺陷,而是指该图像对应于目标中需要重点检测的区域。
[0046] 步骤S130,根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图。
[0047] 由于缺陷部分图像确定的第二子图需要进行独立的缺陷检测,如果能在目标整体图像中去掉对相同内容的检测,可以提高检测的效率。因此第一子图可以根据目标整体图像和缺陷部分图像确定,例如利用缺陷部分图像挖空目标整体图像的相应位置。在一些实施例中可以直接将缺陷部分图像作为第二子图,在另一些实施例中可以对缺陷部分图像做一些尺寸变换等处理后再作为第二子图。
[0048] 步骤S140,分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。这里的缺陷检测方式可以选择任一种现有技术,如YOLO‑v4目标检测网络来实现,对步骤S140所采用的具体的缺陷检测方式不做限制。
[0049] 可见,图1所示的方法,利用训练好的图像分割网络,通过一次识别,即可从待检测图像中识别得到与目标对应的目标整体图像和呈第一形状的缺陷部分图像,第一形状可以为游泳圈形、圆形、椭圆形等任意形状,根据实际需求设置即可,泛用性强;然后通过生成两个子图,分别对子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷,这样既考虑了目标的整体性,又重点关注到了局部,提升了缺陷检测准确率,而且流程简单,尤其适用于生产线上的产品缺陷检测。
[0050] 在一些实施例中,缺陷检测方法中,图像分割网络是通过如下方式训练得到的:确定第一形状,根据第一形状生成训练样本图像的标注信息;生成训练样本图像的掩模图像,根据训练样本图像及其掩模图像对Unet网络进行训练,得到图像分割网络。
[0051] 本申请实施例利用图像分割方式提取目标整体图像(例如产品大小)和缺陷部分图像(例如产品中待重点检测的区域),选用了Unet网络作为训练对象。
[0052] Unet网络是一种主要应用于医学领域的计算机视觉网络,本申请实施例使用该网络的原因在于,其网络结构较浅,能够使用只有少量训练样本的训练集进行训练,适于缺陷样本图像较少的场景;另外,在一些使用Unet进行医学分析的方案中,与产品缺陷检测有着共通之处,都可以通过对病灶(缺陷)大小等几何特征进行分析来进行诊断(检测)。
[0053] 经实验,在几十张图的小训练集上,可以较快速地完成图像缺陷区域的拟合与图像提取任务,只要训练集中缺陷类型全面,则可以借助较少的图片实现快速较准确的重点区域的缺陷检测。
[0054] 图2示出了产品的待检测图像的示意图。图2中,最大的矩形区域200为可作为训练样本图像的待检测图像,缺了一角的矩形区域210为待检测图像中示出的产品(目标整体图像),黑色圆点220为示出的一处缺陷,深灰色菱形环230为示出的需重点检测的区域(第二子图),菱形环内部和外部的浅灰色区域240为产品中其他需检测的区域。
[0055] 在图2示出的例子中,第一形状为菱形环状。
[0056] 在确定了第一形状后,可以对训练样本图像进行标注,例如,可以包括如下操作:
[0057] 使用标注工具labelme将产品和需重点检测的区域标注出来,生成json(JavaScript Object Notation,JS对象简谱)标注文件。在进行标注时,可用多边形尽量细致的描绘出需重点检测的区域,描绘出的区域的形状与第一形状匹配。
[0058] 如果需重点检测的区域边缘为直线,则能更方便的用多边形围出;如果边缘存在或全部是曲线,则用尽可能细致的多边形描绘出待检测区域。
[0059] 每形成一个闭环,可以对闭环逐步命名为“01”、“02”……以此类推,方便根据标注文件名称提取由不同闭环围成的闭环区域(需重点检测的区域)。如对于图2,可将210的轮廓标注为“01”,将220的轮廓标注为“02”,将230的外轮廓标注为“03”,将230的内轮廓标注为“04”,则根据标注信息“03”和“04”可以确定需重点检测的区域,也就是对应缺陷部分图像,为后面的缺陷部分图像识别提供标注信息。
[0060] 然后,可以根据json标注文件生成与训练样本图像一样大小的mask(掩码)图。在一些实施例中,mask图中,产品背景区域,以及需重点检测区域的灰度值为1,其它位置的灰度值为0。每一张训练样本图像都对应一张该图像的mask图。
[0061] 图3示出了根据本申请一个实施例的Unet网络的结构示意图,由图3可以看出,Unet网络的特点是网络呈对称的U形,这也是“Unet”得名的原因。
[0062] Unet网络的前半部分通过3×3的卷积核对图像(训练阶段为训练样本图像,使用时为待检测图像)进行特征提取,前两个卷积核的个数为64,以后每增加两次卷积操作,卷积核的个数都会变为原来的2倍,每两个卷积核会配合一个2×2的最大池化操作,每经过一次最大池化,特征图的长度和宽度均会减半;后半部分卷积核的个数从1024开始下降,每经过一次卷积操作,卷积核的个数就下降一半,配合上采样,每经过一次上采样,特征图的长度和宽度都会增加一倍。并且在后半部分增加了一种新的拼接(copy and crop)的特征融合方式,将上半段采集的特征图裁剪到与右侧特征图一样大小然后进行通道级拼接,即拼接得到的特征图的大小,长宽是右侧特征图的大小,通道数是两个待拼接的特征图的通道数之和。
[0063] 需要说明的是,在其他实施例中可以根据实际需求对卷积核的大小、个数等进行适当调整。
[0064] 根据训练样本图像生成的mask图可作为样本真实值,训练目标是使得Unet网络可以预测得到与之足够近似的mask图。
[0065] 那么可以将训练样本图像输入到Unet网络中,得到Unet网络输出的mask图作为样本预测值,然后根据样本真实值和样本预测值计算训练损失值,根据训练损失值进行Unet网络的优化,直至满足训练停止条件。
[0066] 在一些实施例中,可以将样本真实值和样本预测值代入Dice‑coefficient(Dice系数)损失函数计算训练损失值。
[0067] 在这些实施例中,使用Dice‑coefficient损失函数,而非原始Unet的损失函数来计算训练损失值。原因在于,相比原始Unet的损失函数,Dice‑coefficient损失函数Dice‑coefficient对于类别不均衡问题效果更优,并且能较快的度量出生成的mask图与原始mask图之间的相似度。计算Dice‑coefficient损失函数的损失值Dice的公式为:其中X为样本真实值的数学表示,Y为样本预测值的数学表示。
[0068] 在一些实施例中,缺陷检测方法中,根据目标整体图像和缺陷部分图像确定第一子图包括:将目标整体图像中,与缺陷部分图像对应的区域填充为指定颜色,得到第一子图。
[0069] 前面的实施例中提到,可以利用缺陷部分图像对目标整体图像进行裁剪(如挖空)。发明人发现,在一些实施例中,如果将与缺陷部分图像对应的区域填充为其他颜色,可以进一步提升第一子图的缺陷检测准确率和mAP(mean Average Precision,平均精度均值)。填充的指定颜色可以是能够与目标整体图像中其他区域(如图2中的240)能够鲜明区分开的颜色,而且优选为单一颜色。
[0070] 在一些实施例中,缺陷检测方法中设置第二形状对提取到的目标整体图像和/或缺陷部分图像进一步修正,包括:若识别出的目标整体图像和/或缺陷部分图像的形状与第二形状不匹配,则对识别出的目标整体图像和/或缺陷部分图像依据相应的最小外接第二形状进行修正。
[0071] 例如,以第二形状为矩形为例,根据图2得到的目标整体图像是缺了一角的矩形,缺陷部分图像是菱形圈,均不是矩形,此时可以对目标整体图像和缺陷部分图像进行修正,得到各自的最小外接矩形作为第一子图和第二子图。例如,图4示出了根据图2得到的第一子图的示意图,图5示出了根据图2得到的第二子图的示意图。
[0072] 在一些实施例中,缺陷检测方法中,将目标整体图像中,与缺陷部分图像对应的区域填充为指定颜色包括:从目标整体图像中选择位置与缺陷部分图像匹配,但尺寸小于缺陷部分图像的区域,作为与缺陷部分图像对应的区域。例如,可以基于腐蚀处理的mask图,得到与缺陷部分图像对应的区域。
[0073] 在一些实施例中,缺陷检测方法中,根据缺陷部分图像确定第二子图包括:从待检测图像中提取位置与缺陷部分图像匹配,但尺寸大于缺陷部分图像的区域,得到第二子图。例如,可以基于膨胀处理的mask图,得到第二子图。
[0074] 需要说明的是,由于尺寸进行了扩大/缩小,因此,上述两个实施例中,位置的匹配必然不是完全匹配,而是近似匹配,例如中心点位置相同,由于外沿的尺寸扩大,得到大了一圈的第二子图。
[0075] 可以看出,通过上述方式,第一子图和第二子图在拼接时,会有重叠区域(例如为十几像素大小),这样的好处在于,如果缺陷检测需求不仅在于检测出目标是否存在缺陷,而进一步在于判断缺陷的位置时,可以更利于检测出的缺陷的合并。从产品的角度来讲,交界处的缺陷可以通过任一个子图被检出,换句话说,交界处的缺陷即使在一个子图中被漏检,从整体上仍能够保证检测准确率。
[0076] 在一些实施例中,缺陷检测方法还包括:在检测到缺陷的情况下,确定缺陷在相应子图中的子图像素坐标;根据目标整体图像和/或缺陷部分图像在待检测图像中的位置,对缺陷的子图像素坐标进行坐标变换,得到缺陷在待检测图像中的原图像素坐标,从而能够根据缺陷在待检测图像中的原图像素坐标,确定缺陷在目标中的位置。
[0077] 例如,以待检测图像中左上角为原点,向右为x轴的正向,向下为y轴的正向建立原图像素坐标系,以子图中左上角为原点,向右为x轴的正向,向下为y轴的正向建立子图像素坐标系,则可以记录子图裁剪时左上角的原图像素坐标(x0,y0),以及裁剪的子图的宽w0与高h0;当缺陷以检测框的形式示出时,若缺陷检测框的左上角的子图像素坐标为:(x1,y1),检测框宽为w1、高为h1,则缺陷检测框映射到待检测图像上的原图像素坐标为:(x0+x1,y0+y1),缺陷检测框的宽与高不变,在待检测图像上的宽高依旧为w1、h1。计算原理的示意图可以参照图6。
[0078] 在一些实施例中,缺陷检测方法还包括:在从第一子图和第二子图中均检测出缺陷的情况下,确定各缺陷在相应子图中的检测框;若两个缺陷的检测框的交并比大于预设阈值,则对该两个缺陷的检测框进行合并,得到合并后的检测框,并在待检测图像中示出合并后的检测框以表征缺陷在目标中的位置。
[0079] 在一些实施例中,因为两个子图分别经过了尺寸扩大和缩小,二者一般会有十几像素的重叠区域,因此理想情况下,跨过重叠区域的缺陷会在两个子图中均检测到,如果某个跨重叠区域的缺陷在两张子图上均检测到,则他们合并到待检测图像上会有检测框的重叠。
[0080] 如前所述,即使跨过重叠区域的缺陷仅在一个子图中被检测到,通过前述实施例的坐标变换,缺陷检测框仍然能够还原至待检测图像中进行定位,本实施例主要针对的是同一缺陷在两个子图中均检测到的情况。
[0081] 为了将检测框尽量缩小,可以设置一个阈值,比如0.5,将合并到待检测图像上之后、来自两个子图的检测框中IOU(交并比)大于0.5的检测框进行合并,形成一个检测框,从而减少检测框的数量并方便对缺陷进行更精确的定位。
[0082] 在一些实施例中,缺陷检测方法中,对该两个缺陷的检测框进行合并,得到合并后的检测框包括:将该两个缺陷的检测框的最小外接第三形状作为合并后的检测框。第三形状可以优选为矩形,当然也可以为其他符合实际需求的形状。例如,图7示出了将两个检测框合并得到一个检测框的示意图,其中两个有交叠部分的检测框是待合并的检测框,最外侧的外接矩形(为使得检测框的示意更加清楚,图7中的外接矩形的轮廓线距离两个待合并的检测框的轮廓线有一点距离,实际操作中直接求两个待合并检测框的外接矩形即可)是合并后的检测框。
[0083] 本申请实施例还提供一种缺陷检测装置,用于实现如上任一的缺陷检测方法。
[0084] 具体地,图8示出了根据本申请一个实施例的缺陷检测装置的结构示意图。如图8所示,缺陷检测装置800包括:
[0085] 获取单元810,用于获取目标的待检测图像。这里的目标可以是任意存在缺陷检测需求的对象,例如芯片、壳体等各类生产线上可产出的产品。
[0086] 区域识别单元820,用于利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像。
[0087] 目标的待检测图像可以通过对目标进行拍摄得到,而拍摄时几乎无法实现仅拍摄到目标而不拍摄到目标的背景,而背景可能影响到缺陷检测,因此本申请的实施例需要识别出与目标对应的目标整体图像,以便后续进行整体性的缺陷检测。
[0088] 进一步地,本申请的实施例在一次图像分割时,不仅能够识别出目标整体图像,还能够识别出呈第一形状的缺陷部分图像,这里的缺陷部分图像并不是指该图像就必然对应一处缺陷,而是指该图像对应于目标中需要重点检测的区域。
[0089] 子图生成单元830,用于根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图。
[0090] 由于缺陷部分图像确定的第二子图需要进行独立的缺陷检测,如果能在目标整体图像中去掉对相同内容的检测,可以提高检测的效率。因此第一子图可以根据目标整体图像和缺陷部分图像确定,例如利用缺陷部分图像挖空目标整体图像的相应位置。在一些实施例中可以直接将缺陷部分图像作为第二子图,在另一些实施例中可以对缺陷部分图像做一些尺寸变换等处理后再作为第二子图。
[0091] 缺陷检测单元840,用于分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。
[0092] 可见,图8所示的装置,利用训练好的图像分割网络,通过一次识别,即可从待检测图像中识别得到与目标对应的目标整体图像和呈第一形状的缺陷部分图像,第一形状可以为游泳圈形、圆形、椭圆形等任意形状,根据实际需求设置即可,泛用性强;然后通过生成两个子图,分别对子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷,这样既考虑了目标的整体性,又重点关注到了局部,提升了缺陷检测准确率,而且流程简单,尤其适用于生产线上的产品缺陷检测。
[0093] 在一些实施例中,缺陷检测装置还包括:训练单元,用于确定第一形状,根据第一形状生成训练样本图像的标注信息;生成训练样本图像的掩模图像,根据训练样本图像及其掩模图像对Unet网络进行训练,得到图像分割网络。
[0094] 在一些实施例中,缺陷检测装置中,子图生成单元830,用于将目标整体图像中,与缺陷部分图像对应的区域填充为指定颜色,得到第一子图。
[0095] 在一些实施例中,缺陷检测装置中,子图生成单元830,用于从目标整体图像中选择位置与缺陷部分图像匹配,但尺寸小于缺陷部分图像的区域,作为与缺陷部分图像对应的区域。
[0096] 在一些实施例中,缺陷检测装置中,子图生成单元830,用于从待检测图像中提取位置与缺陷部分图像匹配,但尺寸大于缺陷部分图像的区域,得到第二子图。
[0097] 在一些实施例中,缺陷检测装置中,区域识别单元820,还用于若识别出的目标整体图像和/或缺陷部分图像的形状与第二形状不匹配,则对识别出的目标整体图像和/或缺陷部分图像依据相应的最小外接第二形状进行修正。
[0098] 在一些实施例中,缺陷检测装置中,缺陷检测单元840,还用于在检测到缺陷的情况下,确定缺陷在相应子图中的子图像素坐标;根据目标整体图像和/或缺陷部分图像在待检测图像中的位置,对缺陷的子图像素坐标进行坐标变换,得到缺陷在待检测图像中的原图像素坐标,从而能够根据缺陷在待检测图像中的原图像素坐标,确定缺陷在目标中的位置。
[0099] 在一些实施例中,缺陷检测装置中,缺陷检测单元840,还用于在从第一子图和第二子图中均检测出缺陷的情况下,确定各缺陷在相应子图中的检测框;若两个缺陷的检测框的交并比大于预设阈值,则对该两个缺陷的检测框进行合并,得到合并后的检测框,并在待检测图像中示出合并后的检测框以表征缺陷在目标中的位置。
[0100] 在一些实施例中,缺陷检测装置中,缺陷检测单元840,还用于将该两个缺陷的检测框的最小外接第三形状作为合并后的检测框。
[0101] 能够理解,上述缺陷检测装置,能够实现前述实施例中提供的缺陷检测方法的各个步骤,关于缺陷检测方法的相关阐释均适用于缺陷检测装置,此处不再赘述。
[0102] 图9是本申请的一个实施例电子设备的结构示意图。请参考图9,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random‑Access Memory,RAM),也可能还包括非易失性存储器(non‑volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0103] 处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0104] 存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0105] 处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成缺陷检测装置。图9中缺陷检测装置的示意不代表对具体数量的限制。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0106] 获取目标的待检测图像;利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图;分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。
[0107] 上述如本申请图1所示实施例揭示的缺陷检测装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0108] 该电子设备还可执行图1中缺陷检测装置执行的方法,并实现缺陷检测装置在图8所示实施例的功能,本申请实施例在此不再赘述。
[0109] 本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中缺陷检测装置执行的方法,并具体用于执行:
[0110] 获取目标的待检测图像;利用训练好的图像分割网络从待检测图像中识别出与目标对应的目标整体图像,以及识别出呈第一形状的缺陷部分图像;根据目标整体图像和缺陷部分图像确定第一子图,以及根据缺陷部分图像确定第二子图;分别对第一子图和第二子图进行缺陷检测,若至少一个子图能够检测出缺陷,则确定目标存在缺陷。
[0111] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0112] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0113] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0114] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0115] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0116] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0117] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0118] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0119] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0120] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。