掌桥专利:专业的专利平台
掌桥专利
首页

产品表面缺陷检测方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 19:30:30


产品表面缺陷检测方法、装置、电子设备及存储介质

技术领域

本发明涉及表面缺陷检测技术领域,尤其涉及一种产品表面缺陷检测方法、装置、电子设备及存储介质。

背景技术

表面缺陷检测是机器视觉领域中非常重要的一项研究内容,它是利用机器视觉设备获取产品表面图像,进而判断产品表面图像中是否存在缺陷的技术。在工业生产过程中,由于加工工艺或操作的影响,难免会对产品表面造成损伤,进而对产品的质量、外观产生影响。因此,需要在产品生产过程中对产品表面进行缺陷检测,以确保产品质量,降低成本。然而传统的人工目视检测由于受人的主观因素影响较大,存在漏检、成本高、效率低等问题。因此,产品表面缺陷如何获得高效精准的检测成为亟待解决的技术问题。

当前常见的表面缺陷检测方法主要分为两类:基于机器视觉的表面缺陷检测方法和基于深度学习的表面缺陷检测方法。其中,基于机器视觉的表面缺陷检测方法主要分为两类:传统的图像处理方法和基于人工特征提取的机器学习方法。传统的图像处理方法通过使用局部异常反映出的属性来进行缺陷检测和分割,如边缘检测、模板匹配等算法;基于人工特征提取的机器学习方法则首先以LBP、HOG等方法提取产品表面图像特征,设计描述缺陷信息的特征向量,然后将特征向量输入预训练好的分类器模型中以确定产品表面是否存在缺陷。基于深度学习的缺陷检测方法从思路上也可以分为两类:一类是以Faster R-CNN为代表的两阶段方法,该方法首先使用区域建议网络进行特征提取并生成候选框,然后使用检测网络对候选框进行分类和回归。另一类是以SSD、YOLO为代表的单阶段方法,该方法将检测问题由一个分类问题转换为一个回归问题,仅使用一个卷积神经网络进行特征提取和候选框的分类、回归,是一种端到端的目标检测算法。

然而,对于基于机器视觉的表面缺陷检测方法,无论是传统的图像处理方法还是基于人工特征提取的机器学习方法,通常均仅适用于特定场景,对于环境变化缺乏适应能力,鲁棒性较差。而对于基于深度学习的缺陷检测方法,其中两阶段方法有着较高的检测精度,但是检测速度较慢,难以做到实时检测;而单阶段方法有着较快的检测速度,但是检测精度通常没有两阶段方法高。

发明内容

本发明提供一种产品表面缺陷检测方法、装置、电子设备及存储介质,用以解决现有技术中存在的缺陷,兼顾检测速度以及检测精度。

本发明提供一种产品表面缺陷检测方法,包括:

获取待检测产品的表面图像;

将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;

其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;

所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;

所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

根据本发明提供的一种产品表面缺陷检测方法,所述缺陷检测模型的训练过程中采用的损失函数包括缺陷定位损失函数和缺陷分类损失函数,所述缺陷定位损失函数包括CIoU损失函数,所述缺陷分类损失函数包括交叉熵损失函数。

根据本发明提供的一种产品表面缺陷检测方法,所述头部预测子网络包括第一头部预测子网络、第二头部预测子网络以及第三头部预测子网络;

所述第一头部预测子网络的Convolutional Set模块通过第一个所述空间金字塔池化模块与所述主干特征提取网络连接,所述第一头部预测子网络的拼接层通过第二个所述空间金字塔池化模块与所述第二头部预测子网络的Convolutional Set模块连接,所述第二头部预测子网络的拼接层通过第三个所述空间金字塔池化模块与所述第三头部预测子网络的Convolutional Set模块连接。

根据本发明提供的一种产品表面缺陷检测方法,所述第一头部预测子网络的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第一上采样层;

所述第一头部预测子网络的拼接层用于将所述第一上采样层采样得到的第一特征图与所述主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第一拼接特征图;

所述第二头部预测子网络的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第二上采样层;

所述第二头部预测子网络的拼接层用于将所述第二上采样层采样得到的第二特征图与所述主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第二拼接特征图;

所述第一上采样层的采样率小于所述第二上采样层的采样率,所述第一头部预测子网络、所述第二头部预测子网络以及所述第三头部预测子网络预测的缺陷的尺寸依次减小。

根据本发明提供的一种产品表面缺陷检测方法,所述主干特征提取网络基于将Darknet-53网络的平均池化层以及全连接层去除后的结构构建。

本发明还提供一种产品表面缺陷检测装置,包括:

图像获取模块,用于获取待检测产品的表面图像;

缺陷检测模块,用于将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;

其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;

所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;

所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

根据本发明提供的一种产品表面缺陷检测装置,所述缺陷检测模型的训练过程中采用的损失函数包括缺陷定位损失和缺陷分类损失,所述缺陷定位损失包括CIoU损失函数,所述缺陷分类损失包括交叉熵损失函数。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的产品表面缺陷检测方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的产品表面缺陷检测方法。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述的产品表面缺陷检测方法。

本发明提供的产品表面缺陷检测方法、装置、电子设备及存储介质,首先获取待检测产品的表面图像;然后将表面图像输入至缺陷检测模型,得到缺陷检测模型输出的检测结果。采用的缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,主干特征提取网络以及多个头部预测子网络顺次连接,且在主干特征提取网络与头部预测子网络之间,以及相邻两个头部预测子网络之间均连接有空间金字塔池化模块,该方法可以适用于各中常见,对环境变化具有较强的适应能力,鲁棒性较强。而且,该方法为单阶段检测,检测速度快,检测效率高。由于空间金字塔池化模块存在于各头部预测子网络的前端,不仅可以实现更加有效的特征融合,提升缺陷检测模型对微小缺陷检测的性能,提高检测精度,还可以避免将空间金字塔池化模块插在各头部预测子网络中对特征的提取过程以及缺陷的检测过程产生影响。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的产品表面缺陷检测方法的流程示意图;

图2是本发明提供的产品表面缺陷检测方法采用的缺陷检测模型中SPP模块的结构示意图;

图3是本发明提供的产品表面缺陷检测方法采用的缺陷检测模型中Convolutional Set模块的结构示意图;

图4是本发明提供的产品表面缺陷检测方法采用的缺陷检测模型中Convolutional结构的示意图;

图5是本发明提供的产品表面缺陷检测方法采用的缺陷检测模型中Darknet-53网络的结构示意图;

图6是本发明提供的产品表面缺陷检测方法采用的缺陷检测模型中Darknet-53网络中的堆叠残差结构的示意图;

图7是本发明提供的产品表面缺陷检测方法采用的缺陷检测模型的结构示意图;

图8是本发明提供的产品表面缺陷检测装置的结构示意图;

图9是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于现有技术中存在的各种表面缺陷检测方法,均存在各自的缺陷,例如传统的图像处理方法以及基于人工特征提取的机器学习方法,通常均仅适用于特定场景,对于环境变化缺乏适应能力,鲁棒性较差。而基于深度学习的两阶段缺陷检测方法,检测速度较慢,难以做到实时检测;而基于深度学习的单阶段缺陷检测方法检测精度较低。为此,本发明实施例中提供了一种产品表面缺陷检测方法。

图1为本发明实施例中提供的一种产品表面缺陷检测方法的流程示意图,如图1所示,该方法包括:

S1,获取待检测产品的表面图像;

S2,将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;

其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;

所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;

所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

具体地,本发明实施例中提供的产品表面缺陷检测方法,其执行主体为产品表面缺陷检测装置,该装置可以配置于计算机内,该计算机可以为本地计算机或云计算机,本地计算机可以是电脑、平板等,此处不作具体限定。

首先执行步骤S1,获取待检测产品的表面图像;待检测产品可以包括印刷电路板(Printed Circuit Board,PCB)、窑炉、长竹条、钢球、新能源动力电池安全防爆阀、汽车轮毂等各领域需要对其表面进行缺陷检测的产品。表面图像可以通过摄像头拍摄得到,该摄像头的拍摄角度可以根据实际情况进行调整,此处不作具体限定。该表面图像可以是彩色图像,也可以是灰度图像。

该摄像头可以与产品表面缺陷检测装置连接,以将其拍摄得到的表面图像发送至产品表面缺陷检测装置。进而,产品表面缺陷检测装置可以接收该表面图像。

然后执行步骤S2,将表面图像输入至缺陷检测模型,得到缺陷检测模型输出的检测结果。该检测结果包括表面图像中是否存在缺陷以及在存在缺陷时的缺陷位置和缺陷类别。缺陷位置可以通过边界框示出,缺陷类别可以通过类别标识示出。

该缺陷检测模型可以是神经网络模型,该缺陷检测模型可以包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,头部预测子网络与空间金字塔池化模块一一对应,即个数相同,例如均为3个或其他个数。

主干特征提取网络(backbone)以及多个头部预测子网络顺次连接,且主干特征提取网络与头部预测子网络之间,以及相邻两个头部预测子网络之间均连接有空间金字塔池化(Spatial Pyramid Pooling,SPP)模块。即每个头部预测子网络的前端均通过一个SPP模块与前端网络连接。

SPP模块的结构如图2所示,SPP模块包括拼接层以及4个并行的最大池化(Maxpool)层,池化核大小分别为1×1、5×5、9×9和13×13。SPP模块的输入经各最大池化层的最大池化操作后得到的深层特征图的高、宽以及深度均相同,最后经拼接(Concatenate)层将各深层特征图在通道维度进行拼接,进而实现特征融合,并将拼接得到的深层特征图作为SPP模块的输出。SPP模块能够提取具有不同感受野的多尺度深层特征,并通过深层特征图的拼接来实现特征融合。

主干特征提取网络用于提取表面图像的图像特征,主干特征提取网络后端连接的SPP模块则用于将图像特征作为输入,输出深层特征图。多个头部预测子网络用于基于前端连接的SPP模块得到的深层特征图,提取表面图像不同尺度的预测特征图。此后,每个头部预测子网络根据各自得到的预测特征图,对表面图像中对应尺寸的缺陷进行检测。

大尺度的预测特征图具有较高的分辨率,可以用于检测小尺寸的缺陷,相反地,小尺度的预测特征图具有较低的分辨率,可以用于检测大尺寸的缺陷,中尺度的预测特征图具有较低的分辨率,可以用于检测中等尺寸的缺陷。

该缺陷检测模型可以基于携带缺陷标签的表面图像样本对初始模型进行训练得到。在缺陷检测模型的训练过程中,可以先将表面图像样本输入至初始模型,得到由初始模型输出的检测结果,然后通过缺陷标签以及检测结果计算损失函数,当损失函数收敛时即得到训练好的缺陷检测模型。

此处,缺陷标签可以包括缺陷位置标签以及缺陷类别标签,缺陷位置标签即通过边界框进行表征,缺陷类别标签可以通过类别标识进行表征。因此,检测结果可以包括缺陷位置检测结果以及缺陷类别检测结果,进而损失函数可以包括缺陷定位损失函数和缺陷分类损失函数。本发明实施例中对缺陷定位损失函数和缺陷分类损失函数的选取不作具体限定。

本发明实施例中提供的产品表面缺陷检测方法,首先获取待检测产品的表面图像;然后将表面图像输入至缺陷检测模型,得到缺陷检测模型输出的检测结果。采用的缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,主干特征提取网络以及多个头部预测子网络顺次连接,且在主干特征提取网络与头部预测子网络之间,以及相邻两个头部预测子网络之间均连接有空间金字塔池化模块,该方法可以适用于各中常见,对环境变化具有较强的适应能力,鲁棒性较强。而且,该方法为单阶段检测,检测速度快,检测效率高。由于空间金字塔池化模块存在于各头部预测子网络的前端,不仅可以实现更加有效的特征融合,提升缺陷检测模型对微小缺陷检测的性能,提高检测精度,还可以避免将空间金字塔池化模块插在各头部预测子网络中对特征的提取过程以及缺陷的检测过程产生影响。

在上述实施例的基础上,本发明实施例中提供的产品表面缺陷检测方法,所述缺陷检测模型的训练过程中采用的损失函数包括缺陷定位损失函数和缺陷分类损失函数,所述缺陷定位损失函数包括CIoU损失函数,所述缺陷分类损失函数包括交叉熵损失函数。

具体地,本发明实施例中,在缺陷检测模型的训练过程中采用的缺陷定位损失函数包括CIoU损失函数,采用的缺陷分类损失函数包括交叉熵损失函数。除此之外,缺陷定位损失函数还可以采用误差平方和损失(即L

误差平方和损失函数L

其中,pos表示有缺陷的表面图像样本集合,N

L

IoU是比较两个任意形状之间相似性的最常用度量。IoU将被比较目标的形状属性(例如,两个边界框的宽度、高度和位置)编码为区域属性,然后计算集中于其面积(或体积)的归一化度量。这使得边界框尺度的变化对IoU不会产生影响。由于这一优良属性使得IoU广泛的成为各种视觉检测任务的评价指标。

对于给定的预测边界框A和地面真值边界框B,预测边界框A和地面真值边界框B之间的交并比(IoU)可以表示为:

则IoU损失函数L

L

与L

对于IoU损失函数,当两个边界框不相交时,即A∩B=0,根据定义IoU=0,IoU损失函数则不能衡量两个边界框之间的距离。为此,需要对IoU进行扩展,得到广义交并比(Generalized Intersection over Union,GIoU)。对于给定预测边界框A和地面真值边界框B,首先计算包围A与B的最小矩形框C。然后再计算C中不包含A与B的面积,并将其比上C的面积。这表明更加关注于A与B之间的空面积。最后通过从IoU值中减去该比值得到GIoU。GIoU的计算公式可以表示为:

则GIoU损失函数L

当两个边界框不相交时,此时

通过添加惩罚项,GIoU损失函数可以很好的解决边界框非重叠的情况。但是当预测边界框与地面真值边界框具有特殊长宽比时,GIoU损失函数可能存在较大的误差。这是因为GIoU损失函数中的惩罚项用于最小化C-(A∪B),但C-(A∪B)的面积通常很小或为0(即当两个边界框具有包含关系时),此时GIoU损失函数将会退化成为IoU损失函数。此外,GIoU损失函数的边界框回归倾向于通过增加预测边界框的大小以与地面真值边界框重叠,这将会导致GIoU损失函数的收敛速度非常的慢。

此处,则可以借助于完全交并比(Complete IoU,CIoU)损失函数解决GIoU损失函数带来的问题。CIoU损失函数L可以表示为:

L=S(B,B

其中,S、D、V分别表示重叠面积、中心点距离和长宽比。

S=1-IoU

与IoU类似,期望为D和V对回归尺度保持不变。特别地,采用归一化中心点距离D来衡量预测边界框B与地面真值边界框B

其中,p=[x,y]

长宽比V的一致性实现为:

其中,

最后,CIoU损失函数L

由此可知,S、D和V对回归尺度保持不变,并被归一化为[0,1]之间。这里,只引入一个权衡参数α,定义为:

CIoU损失函数继承了IoU损失函数和GIoU损失函数的一些属性,如:1)CIoU损失函数对于回归问题仍然具有尺度不变性;2)类似于GIoU损失函数,CIoU损失函数可以在与地面真值边界框不重叠时为预测边界框提供移动方向。

此外,CIoU损失函数对比IoU损失函数和GIoU损失函数有两个优点,即:1)CIoU损失函数可以快速最小化预测边界框与地面真值边界框之间的距离,因此收敛速度比GIoU损失函数快得多;2)对于预测边界框与地面真值边界框存在包含关系或具有特殊长宽比的情况,CIoU损失函数可使回归非常快,而GIoU损失函数几乎已经退化为IoU损失函数。

本发明实施例中,由于缺陷检测模型的训练过程中采用的缺陷定位损失函数包括CIoU损失函数,不仅可以提升表面缺陷的定位精度,还加快了模型的收敛速度。

在上述实施例的基础上,本发明实施例中提供的产品表面缺陷检测方法,所述头部预测子网络包括第一头部预测子网络、第二头部预测子网络以及第三头部预测子网络;

所述第一头部预测子网络的Convolutional Set模块通过第一个所述空间金字塔池化模块与所述主干特征提取网络连接,所述第一头部预测子网络的拼接层通过第二个所述空间金字塔池化模块与所述第二头部预测子网络的Convolutional Set模块连接,所述第二头部预测子网络的拼接层通过第三个所述空间金字塔池化模块与所述第三头部预测子网络的Convolutional Set模块连接。

具体地,该缺陷检测模型包括主干特征提取网络、第一头部预测子网络、第二头部预测子网络以及第三头部预测子网络,除与主干特征提取网络距离最远的头部预测子网络之外的每个头部预测子网络均包含有Convolutional Set模块以及拼接(Concatenate)层,与主干特征提取网络距离最远的头部预测子网络不包含有拼接层。由于头部预测子网络包括三个,则SPP模块也包括三个。

Convolutional Set模块的结构如图3所示,包括顺次连接的5个Convolutional结构,各Convolutional结构的尺寸分别为1×1、3×3、1×1、3×3以及1×1。

Convolutional结构如图4所示,包括顺次连接的卷积层(Conv Layer)、批量正则化层(BN Layer)以及非线性层(Leaky ReLU Layer)。

第一头部预测子网络的Convolutional Set模块通过第一个空间金字塔池化模块与主干特征提取网络连接,第一头部预测子网络的拼接层通过第二个空间金字塔池化模块与第二头部预测子网络的Convolutional Set模块连接,第二头部预测子网络的拼接层通过第三个空间金字塔池化模块与第三头部预测子网络的Convolutional Set模块连接。

本发明实施例中,各头部预测子网络以及各空间金字塔池化模块均相对独立,即只具有连接关系,而不具有包含关系,可以避免将空间金字塔池化模块插在各头部预测子网络中对特征的提取过程以及缺陷的检测过程产生影响。

在上述实施例的基础上,本发明实施例中提供的产品表面缺陷检测方法,所述主干特征提取网络基于将Darknet-53网络的平均池化层以及全连接层去除后的结构构建。

具体地,主干特征提取网络可以通过将Darknet-53网络的平均池化层以及全连接层去除后的结构构建,即可以将Darknet-53网络的平均池化层以及全连接层去除后的结构作为主干特征提取网络。

Darknet-53网络的网络结构如图5所示,包括53个卷积层,并取消了最大池化层,代之以3*3步距为2的卷积层。卷积层对比最大池化层的优势在于其没有信息丢失,这提高了特征提取的能力。

Darknet-53网络中的堆叠残差(Residual)结构如图6所示,其主分支上由相连的1*1和3*3的Convolutional结构组成,并通过一个捷径分支(即shortcut连接)将输入与主分支上的输出相加。

将Darknet-53网络的平均池化(Avgpool)层以及全连接(Connected、Softmax)层去除后,即可作为主干特征提取网络。

本发明实施例中,采用去除Darknet-53网络的平均池化层以及全连接层去除之后的结构作为主干特征提取网络,可以提升图像特征的质量,进而可以提高缺陷检测的准确性。

在上述实施例的基础上,本发明实施例中提供的产品表面缺陷检测方法,所述第一头部预测子网络的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第一上采样层;

所述第一头部预测子网络的拼接层用于将所述第一上采样层采样得到的第一特征图与所述主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第一拼接特征图;

所述第二头部预测子网络的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第二上采样层;

所述第二头部预测子网络的拼接层用于将所述第二上采样层采样得到的第二特征图与所述主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第二拼接特征图;

所述第一上采样层的采样率小于所述第二上采样层的采样率,所述第一头部预测子网络、所述第二头部预测子网络以及所述第三头部预测子网络预测的缺陷的尺寸依次减小。

具体地,如图7所示,第一头部预测子网络32的Convolutional Set模块通过第一个SPP模块35与主干特征提取网络31连接,第一头部预测子网络32的拼接层通过第二个SPP模块36与第二头部预测子网络33的Convolutional Set模块连接,第二头部预测子网络33的拼接层通过第三个SPP模块37与第三头部预测子网络34的Convolutional Set模块连接。

第一头部预测子网络32的Convolutional Set模块与拼接(Concatenate)层之间顺次连接有Convolutional结构和第一上采样(Up Sampling)层。

第一头部预测子网络32的拼接层用于将第一上采样层采样得到的第一特征图与主干特征提取网络31中对应大小的特征图在深度方向上进行拼接,得到第一拼接特征图。

第二头部预测子网络33的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第二上采样(Up Sampling)层;

第二头部预测子网络33的拼接层用于将第二上采样层采样得到的第二特征图与主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第二拼接特征图。

第一上采样层的采样率小于第二上采样层的采样率,第一头部预测子网络32、第二头部预测子网络33以及第三头部预测子网络34的预测结果分别为Predict one、Predicttwo以及Predict three,其中的缺陷的尺寸依次减小。

由图7可知,本发明实施例中采用的缺陷检测模型去除3个SPP之后的结构为YOLOv3网络的模型结构,因此该缺陷检测模型可以命名为YOLOv3-3SPP模型,该模型可以实现更加有效的特征融合,提升微小缺陷检测的性能。

YOLOv3-3SPP模型可以实现在3个不同尺度的预测特征层上进行边界框的预测,在每个预测特征层上使用K均值聚类生成3个不同尺度的先验边界框。因此,在每个预测特征层上有N×N×[3×(4+1+C)]个预测参数,其中N为预测特征层的尺寸,C为预测的类别数。

YOLOv3-3SPP模型也是一种特征金字塔结构。通过采用横向连接将主干特征提取网络自下向上的与各头部预测子网络自上向下的相连接,实现了将低分辨率、强语义特征与高分辨率、弱语义特征相结合的架构。其实现的特征金字塔,在每一个网络级别上都具有丰富的语义特征,并且可以从单个输入图像尺度快速构建。

经过一个SPP模块之后,再通过一个Convolutional set模块形成两个分支。其中一个分支连接一个3*3的Convolutional结构得到第一个预测特征图,最后我们使用一个卷积核大小为1*1的预测器在得到的预测特征图上进行预测,得到Predict one;另一个分支通过一个1*1的卷积层进行降维后连接第一上采样层,该层会将输入的特征映射的宽和高扩大为原来的两倍,之后通过一个捷径分支将上采样后的特征图与主干特征提取网络中对应大小的特征图在深度方向上进行拼接后再输入Convolutional set模块。重复该过程,将得到三个不同尺度的预测特征图,会在分辨率较低的预测特征图上预测尺寸较大的目标,在分辨率中等的特征图上预测尺寸中等的目标,在分辨率较高的预测特征图上预测小目标。

综上所述,本发明实施例中提供的产品表面缺陷检测方法中采用的缺陷检测模型,针对传统YOLOv3网络对微小缺陷检测精度不足的问题,通过在YOLOv3网络的每一个预测特征层前添加一个SPP模块,实现了更加有效的特征融合,提升了微小缺陷检测的精度;针对传统YOLOv3网络对缺陷的定位精度不足的问题,采用CIoU损失函数作为缺陷定位损失函数,以替代原始YOLOv3网络中采用的误差平方和定位损失函数。由于CIoU损失函数充分考虑到了边界框回归中的几何因素,使其不仅解决了微小缺陷定位精度不足的问题,而且加快了模型收敛速度。

如图8所示,在上述实施例的基础上,本发明实施例中提供了一种产品表面缺陷检测装置,包括:

图像获取模块81,用于获取待检测产品的表面图像;

缺陷检测模块82,用于将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;

其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;

所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;

所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

在上述实施例的基础上,本发明实施例中提供了一种产品表面缺陷检测装置,所述缺陷检测模型的训练过程中采用的损失函数包括缺陷定位损失函数和缺陷分类损失函数,所述缺陷定位损失函数包括CIoU损失函数,所述缺陷分类损失函数包括交叉熵损失函数。

在上述实施例的基础上,本发明实施例中提供了一种产品表面缺陷检测装置,所述头部预测子网络包括第一头部预测子网络、第二头部预测子网络以及第三头部预测子网络;

所述第一头部预测子网络的Convolutional Set模块通过第一个所述空间金字塔池化模块与所述主干特征提取网络连接,所述第一头部预测子网络的拼接层通过第二个所述空间金字塔池化模块与所述第二头部预测子网络的Convolutional Set模块连接,所述第二头部预测子网络的拼接层通过第三个所述空间金字塔池化模块与所述第三头部预测子网络的Convolutional Set模块连接。

在上述实施例的基础上,本发明实施例中提供了一种产品表面缺陷检测装置,所述第一头部预测子网络的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第一上采样层;

所述第一头部预测子网络的拼接层用于将所述第一上采样层采样得到的第一特征图与所述主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第一拼接特征图;

所述第二头部预测子网络的Convolutional Set模块与拼接层之间顺次连接有Convolutional结构和第二上采样层;

所述第二头部预测子网络的拼接层用于将所述第二上采样层采样得到的第二特征图与所述主干特征提取网络中对应大小的特征图在深度方向上进行拼接,得到第二拼接特征图;

所述第一上采样层的采样率小于所述第二上采样层的采样率,所述第一头部预测子网络、所述第二头部预测子网络以及所述第三头部预测子网络预测的缺陷的尺寸依次减小。

在上述实施例的基础上,本发明实施例中提供了一种产品表面缺陷检测装置,所述主干特征提取网络基于将Darknet-53网络的平均池化层以及全连接层去除后的结构构建。

具体地,本发明实施例中提供的产品表面缺陷检测装置中各模块的作用与上述方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。

图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(Processor)910、通信接口(Communications Interface)920、存储器(Memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行上述各实施例中提供的产品表面缺陷检测方法,该方法包括:获取待检测产品的表面图像;将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例中提供的产品表面缺陷检测方法,该方法包括:获取待检测产品的表面图像;将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例中提供的产品表面缺陷检测方法,该方法包括:获取待检测产品的表面图像;将所述表面图像输入至缺陷检测模型,得到所述缺陷检测模型输出的检测结果;其中,所述缺陷检测模型包括主干特征提取网络、多个头部预测子网络以及多个空间金字塔池化模块,所述头部预测子网络与所述空间金字塔池化模块一一对应,所述主干特征提取网络以及多个所述头部预测子网络顺次连接,且所述主干特征提取网络与所述头部预测子网络之间,以及相邻两个所述头部预测子网络之间均连接有所述空间金字塔池化模块;所述主干特征提取网络用于提取所述表面图像的图像特征;多个所述头部预测子网络用于基于前端连接的所述空间金字塔池化模块得到的深层特征图,提取所述表面图像不同尺度的预测特征图,并基于所述预测特征图,对所述表面图像中不同尺寸的缺陷进行检测;所述缺陷检测模型基于携带缺陷标签的表面图像样本训练得到。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 目标检测方法和装置、电子设备、存储介质、程序产品
  • 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
  • 保险产品的测试方法及装置、存储介质及电子设备
  • 图像处理方法和装置、电子设备、存储介质、程序产品
  • 图像处理方法和装置、电子设备、存储介质、程序产品
  • 一种产品表面缺陷检测方法、电子设备及可读存储介质
  • 一种产品表面缺陷检测与分类方法、装置及存储介质
技术分类

06120115933899