缺陷检测方法、设备及计算机可读存储介质转让专利

申请号 : CN202311589487.7

文献号 : CN117314895B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴雨培谢阳

申请人 : 北京阿丘科技有限公司

摘要 :

本发明公开了一种缺陷检测方法、设备及计算机可读存储介质,属于深度学习技术领域。该方法包括:获取待检测的缺陷图和对应的模板图;将所述缺陷图和所述模板图输入训练好的双分支孪生模型,确定所述缺陷图和所述模板图的缺陷特征之间的对比度;若所述对比度属于预设值域,则对所述缺陷图进行增强,并输出增强后的缺陷图。本发明通过双分支孪生模型,旨在实现提升缺陷检测的敏感度。

权利要求 :

1.一种缺陷检测方法,其特征在于,所述缺陷检测方法包括以下步骤:获取待检测的缺陷图和对应的模板图;

将所述缺陷图和所述模板图输入训练好的双分支孪生模型,确定所述缺陷图和所述模板图的缺陷特征之间的对比度,所述对比度表征所述缺陷图的缺陷程度,所述双分支孪生模型中各分支均设置有三层卷积模块,且每层所述卷积模块之间共享一个增强模块,并将所述增强模块的输出作为上采样模块的输入;

若所述对比度属于预设值域,则对所述缺陷图进行增强,并输出增强后的缺陷图;

其中,所述对所述缺陷图进行增强,并输出增强后的缺陷图的步骤包括:通过所述增强模块,确定所述缺陷图和所述模板图之间的差异特征;

对所述差异特征进行全局最大池化操作,得到最大差异特征,并对所述差异特征进行全局平均池化操作,得到平均差异特征;

分别对所述最大差异特征和所述平均差异特征进行卷积操作;

综合卷积后的最大差异特征、平均差异特征和所述差异特征,并乘以各自对应的放大系数,得到综合缺陷图和综合模板图;

对所述综合缺陷图和所述综合模板图进行卷积后,逐像素点进行相乘,输出增强后的缺陷图;

通过所述上采样模块,将所述缺陷图的分辨率调整为目标分辨率;

根据双线性插值方法,在调整后的缺陷图中,确定与目标像素近邻的四个像素的坐标,以及对应的权重;

根据所述坐标和权重,计算所述目标像素的插值坐标;

汇总若干所述目标像素的插值坐标,经卷积操作后,重构得到新的缺陷图;

将所述缺陷图的每个通道的像素值按行连接,得到展平后的特征向量;

根据归一化指数函数,计算所述缺陷图中各像素点的指数值,并汇总得到所有像素点的总指数值;

将所述指数值除以所述总指数值,得到各像素点的概率分布情况;

汇总各所述像素点的概率分布情况,生成缺陷二值图。

2.如权利要求1所述的缺陷检测方法,其特征在于,所述将所述缺陷图和所述模板图输入训练好的双分支孪生模型,确定所述缺陷图和所述模板图的缺陷特征之间的对比度的步骤包括:将所述缺陷图和所述模板图分别输入左右分支的卷积层,经卷积操作,得到对应的缺陷特征图和模板特征图;

将所述缺陷特征图和所述模板特征图分别输入批归一化层,经归一化处理,得到满足标准正态分布的缺陷特征图和模板特征图;

将所述缺陷特征图和所述模板特征图分别输入激活函数层,对每个特征图的每个元素进行非线性变换;

比较所述缺陷特征图和所述模板特征图,并根据比较结果确定缺陷特征的对比度。

3.如权利要求1‑2任一项所述的缺陷检测方法,其特征在于,所述获取待检测的缺陷图和对应的模板图的步骤之前,包括:获取训练模板图和训练缺陷图,并接收所述训练缺陷图对应的标注;

将所述训练缺陷图和所述训练模板图输入构建好的双分支孪生模型,确定所述训练缺陷图和所述训练模板图的缺陷特征之间的对比度;

若所述对比度属于预设值域,则对所述训练缺陷图进行增强,并对增强后的训练缺陷图进行上采样;

根据上采样后的训练缺陷图和所述标注,计算损失函数,并根据所述损失函数对双分支孪生模型进行调整,直至达到最小损失函数。

4.如权利要求3所述的缺陷检测方法,其特征在于,所述获取训练模板图和训练缺陷图的步骤包括:通过光学系统分别对标准产品和训练样品进行采集,得到原始模板图和原始缺陷图;

对所述原始模板图和所述原始缺陷图进行灰度化操作,得到对应的灰度模板图和灰度缺陷图;

在所述灰度模板图中选定一个参考窗口,将所述参考窗口与所述灰度缺陷图中所有候选窗口进行匹配,并根据匹配率最高的候选窗口和所述参考窗口之间的位置关系,对所述原始模板图和所述原始缺陷图进行配准;

将配准后的原始模板图和原始缺陷图按对存储,并按比例挑选出训练模板图和训练缺陷图;

通过几何变换和属性变换,对所述训练缺陷图进行数据增广;

计算所述训练缺陷图和所述训练模块图的均值和标准差,并根据所述均值和所述标准差,得到标准的训练缺陷图和训练模块图。

5.如权利要求4所述的缺陷检测方法,其特征在于,所述根据上采样后的训练缺陷图和所述标注,计算损失函数,并根据所述损失函数对双分支孪生模型进行调整,直至达到最小损失函数的步骤包括:通过归一化指数函数,计算上采样后的缺陷图的置信度;

根据所有所述训练缺陷图的类别分布情况,确定平衡参数,以及根据所述训练缺陷图的难分易分情况,确定调节因子;

根据所述置信度、所述平衡参数和所述调节因子,计算损失函数。

6.一种缺陷检测设备,其特征在于,所述缺陷检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缺陷检测程序,所述缺陷检测程序配置为实现如权利要求1至5中任一项所述的缺陷检测方法的步骤。

7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有缺陷检测程序,所述缺陷检测程序被处理器执行时实现如权利要求1至5任一项所述的缺陷检测方法的步骤。

说明书 :

缺陷检测方法、设备及计算机可读存储介质

技术领域

[0001] 本发明涉及深度学习技术领域,尤其涉及缺陷检测方法、设备及计算机可读存储介质。

背景技术

[0002] 工业产品的生产制造常伴随着各种缺陷的产生,如污染、异物、刮伤、氧化和孔洞等,上述缺陷可能会对产品的性能和寿命产生一定影响,故需要定期对产品进行缺陷检测。
[0003] 在相关技术中,通常采用深度学习的方法进行缺陷检测,具体过程为,选择适合的单分支普通分割模型,然后使用训练集对选择的模型进行训练,在训练过程中,根据损失函数来调整模型的权重和参数,使其能够准确地检测出产品缺陷,最终输出训练好的模型。
[0004] 然而,在实际的缺陷检测过程中,经常会出现超低对比度的缺陷,针对此类微小缺陷,单分支普通分割模型局限于自身的简单结构,无法充分捕捉,即对缺陷的敏感度不够。
[0005] 上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

[0006] 本发明的主要目的在于提供一种缺陷检测方法、设备及计算机可读存储介质,旨在解决缺陷检测的敏感度不够的技术问题。
[0007] 为实现上述目的,本发明提供一种缺陷检测方法,所述缺陷检测方法包括以下步骤:
[0008] 获取待检测的缺陷图和对应的模板图;
[0009] 将所述缺陷图和所述模板图输入训练好的双分支孪生模型,确定所述缺陷图和所述模板图的缺陷特征之间的对比度;
[0010] 若所述对比度属于预设值域,则对所述缺陷图进行增强,并输出增强后的缺陷图。
[0011] 可选地,所述将所述缺陷图和所述模板图输入训练好的双分支孪生模型,确定所述缺陷图和所述模板图的缺陷特征之间的对比度的步骤包括:
[0012] 将所述缺陷图和所述模板图分别输入左右分支的卷积层,经卷积操作,得到对应的缺陷特征图和模板特征图;
[0013] 将所述缺陷特征图和所述模板特征图分别输入批归一化层,经归一化处理,得到满足标准正态分布的缺陷特征图和模板特征图;
[0014] 将所述缺陷特征图和所述模板特征图分别输入激活函数层,对每个特征图的每个元素进行非线性变换;
[0015] 比较所述缺陷特征图和所述模板特征图,并根据比较结果确定缺陷特征的对比度。
[0016] 可选地,所述对所述缺陷图进行增强,并输出增强后的缺陷图的步骤包括:
[0017] 确定所述缺陷图和所述模板图之间的差异特征;
[0018] 对所述差异特征进行全局最大池化操作,得到最大差异特征,并对所述差异特征进行全局平均池化操作,得到平均差异特征;
[0019] 分别对所述最大差异特征和所述平均差异特征进行卷积操作;
[0020] 综合卷积后的最大差异特征、平均差异特征和所述差异特征,并乘以各自对应的放大系数,得到综合缺陷图和综合模板图;
[0021] 对所述综合缺陷图和所述综合模板图进行卷积后,逐像素点进行相乘,输出增强后的缺陷图。
[0022] 可选地,所述对所述缺陷图进行增强,并输出增强后的缺陷图的步骤之后,包括:
[0023] 将所述缺陷图的分辨率调整为目标分辨率;
[0024] 根据双线性插值方法,在调整后的缺陷图中,确定与目标像素近邻的四个像素的坐标,以及对应的权重;
[0025] 根据所述坐标和权重,计算所述目标像素的插值坐标;
[0026] 汇总若干所述目标像素的插值坐标,经卷积操作后,重构得到新的缺陷图。
[0027] 可选地,所述对所述缺陷图进行增强,并输出增强后的缺陷图的步骤之后,包括:
[0028] 计算所述缺陷图中各像素点的指数值,并汇总得到所有像素点的总指数值;
[0029] 将所述指数值除以所述总指数值,得到各像素点的概率分布情况;
[0030] 汇总各所述像素点的概率分布情况,生成缺陷二值图。
[0031] 可选地,所述获取待检测的缺陷图和对应的模板图的步骤之前,包括:
[0032] 获取训练模板图和训练缺陷图,并接收所述训练缺陷图对应的标注;
[0033] 将所述训练缺陷图和所述训练模板图输入构建好的双分支孪生模型,确定所述训练缺陷图和所述训练模板图的缺陷特征之间的对比度;
[0034] 若所述对比度属于预设值域,则对所述训练缺陷图进行增强,并对增强后的训练缺陷图进行上采样;
[0035] 根据上采样后的训练缺陷图和所述标注,计算损失函数,并根据所述损失函数对双分支孪生模型进行调整,直至达到最小损失函数。
[0036] 可选地,所述获取训练模板图和训练缺陷图的步骤包括:
[0037] 通过光学系统分别对标准产品和训练样品进行采集,得到原始模板图和原始缺陷图;
[0038] 对所述原始模板图和所述原始缺陷图进行灰度化操作,得到对应的灰度模板图和灰度缺陷图;
[0039] 在所述灰度模板图中选定一个参考窗口,将所述参考窗口与所述灰度缺陷图中所有候选窗口进行匹配,并根据匹配率最高的候选窗口和所述参考窗口之间的位置关系,对所述原始模板图和所述原始缺陷图进行配准;
[0040] 将配准后的原始模板图和原始缺陷图按对存储,并按比例挑选出训练模板图和训练缺陷图;
[0041] 通过几何变换和属性变换,对所述训练缺陷图进行数据增广;
[0042] 计算所述训练缺陷图和所述训练模块图的均值和标准差,并根据所述均值和所述标准差,得到标准的训练缺陷图和训练模块图。
[0043] 可选地,所述根据上采样后的训练缺陷图和所述标注,计算损失函数,并根据所述损失函数对双分支孪生模型进行调整,直至达到最小损失函数的步骤包括:
[0044] 通过归一化指数函数,计算上采样后的缺陷图的置信度;
[0045] 根据所有所述训练缺陷图的类别分布情况,确定平衡参数,以及根据所述训练缺陷图的难分易分情况,确定调节因子;
[0046] 根据所述置信度、所述平衡参数和所述调节因子,计算损失函数。
[0047] 此外,为实现上述目的,本发明还提供一种缺陷检测设备,所述缺陷检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缺陷检测程序,所述缺陷检测程序配置为实现所述的缺陷检测方法的步骤。
[0048] 此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有缺陷检测程序,所述缺陷检测程序被处理器执行时实现所述的缺陷检测方法的步骤。
[0049] 在本发明提供的一个技术方案中,采用训练好的双分支孪生模型,分别提取出缺陷图和模板图的缺陷特征,然后根据两组缺陷特征的对比度,筛选出存在超低对比度缺陷的缺陷图,并对其进行增强处理。双分支孪生模型通过同时学习两个分支,每个分支分别处理不同图像的特征信息,这样可以更好地捕捉图像中的细节和上下文信息,提高特征的丰富性和表达能力,以更好地区分图像中的缺陷区域并提取相应的特征,进而提高超低对比度缺陷的检测准确率。在此基础上,通过图像增强处理,使得超低对比度缺陷在缺陷图中更加明显和突出,以便更容易被人眼或计算机视觉算法检测到,有助于后续的缺陷原因分析。

附图说明

[0050] 图1为本发明缺陷检测方法第一实施例的流程示意图;
[0051] 图2为本发明缺陷检测方法第一实施例中的缺陷图;
[0052] 图3为本发明缺陷检测方法第一实施例中的模板图;
[0053] 图4为本发明缺陷检测方法第一实施例中步骤S12的细化流程示意图;
[0054] 图5为本发明缺陷检测方法第一实施例中的模型结构;
[0055] 图6为本发明缺陷检测方法第一实施例中的卷积模块;
[0056] 图7为本发明缺陷检测方法第一实施例中步骤S13的细化流程示意图;
[0057] 图8为本发明缺陷检测方法第一实施例中的增强模块;
[0058] 图9为本发明缺陷检测方法第一实施例中的模板图通道特征;
[0059] 图10为本发明缺陷检测方法第一实施例中的缺陷图通道特征;
[0060] 图11为本发明缺陷检测方法第一实施例中的差异特征图;
[0061] 图12为本发明缺陷检测方法第一实施例中输出的缺陷图;
[0062] 图13为本发明缺陷检测方法第二实施例的流程示意图;
[0063] 图14为本发明缺陷检测方法第二实施例中的模型结构;
[0064] 图15为本发明缺陷检测方法第二实施例中的上采样模块;
[0065] 图16为本发明缺陷检测方法第二实施例中的双线性差值示例图;
[0066] 图17为本发明缺陷检测方法第二实施例中上采样前的图像;
[0067] 图18为本发明缺陷检测方法第二实施例中上采样后的图像;
[0068] 图19为本发明缺陷检测方法第三实施例的流程示意图;
[0069] 图20为本发明缺陷检测方法第三实施例中背景预测结果和缺陷预测结果;
[0070] 图21为本发明缺陷检测方法第四实施例的流程示意图;
[0071] 图22为本发明缺陷检测方法第四实施例中的整体流程示意图
[0072] 图23为本发明缺陷检测方法第四实施例中的标注示意图;
[0073] 图24为本发明缺陷检测方法第四实施例中步骤S41的细化流程示意图;
[0074] 图25为本发明缺陷检测方法第四实施例中的光学系统;
[0075] 图26为本发明缺陷检测方法第四实施例中的模型结构;
[0076] 图27为本发明缺陷检测方法第四实施例中步骤S44的细化流程示意图;
[0077] 图28为本发明实施例方案涉及的硬件运行环境的缺陷检测设备的结构示意图。
[0078] 本发明目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。

具体实施方式

[0079] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0080] 缺陷检测是生产制造的关键环节,而超低对比度缺陷是缺陷检测的难点。目前,常见检测手段如人工检测、传统视觉方法和深度学习方法等。
[0081] 人工检测存在如下缺点:
[0082] (1)准确率低,某些缺陷会让人产生视觉疲劳,导致很多误判;
[0083] (2)效率低,容易受到外界干扰,检测效率难以得到保证;
[0084] (3)成本高,招工难;
[0085] (4)不同人对缺陷的判断不同,难以形成可量化的质量标准;
[0086] (5)检测过程容易掺入新杂质,产生新缺陷。
[0087] 传统视觉方法存在如下缺点:
[0088] (1)受环境、光照、生产工艺和噪声等多重因素影响,检测系统信噪比低,对于微弱信号,如超低对比度缺陷,难以检出或不能与噪声有效区分;
[0089] (2)图像预处理步骤繁多且具有强烈的针对性,鲁棒性差;
[0090] (3)算法计算量大,效率较低;
[0091] (4)无法精确地检测缺陷的大小和形状。
[0092] 区别于上述两种方法,深度学习方法能自动提取图像特征,摆脱对人类经验的依赖,基于卷积神经网络的单分支普通分割模型是缺陷分割主流。
[0093] 单分支普通分割模型的优点如下:
[0094] (1)可以对缺陷和背景做像素级分类,精确地检测缺陷的大小和形状;
[0095] (2)产品外观发生改变也能准确检出缺陷,鲁棒性强。
[0096] 单分支普通分割模型的缺点如下:
[0097] (1)对于微弱信号,如超低对比度缺陷,难以检出或不能与噪声有效区分,即敏感度不够;
[0098] (2)模型大,参数多,缺陷分割的效率较低。
[0099] 为解决上述问题,本发明采用双分支孪生模型,通过比对,学习缺陷图和模板图之间的差异,并对其中的超低对比度缺陷进行放大,进而提升敏感度,同时由于训练好的双分支孪生模型是经过压缩存储的,故可以提升缺陷检测的效率。
[0100] 为了更好的理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
[0101] 本发明实施例提供了一种缺陷检测方法,参照图1,图1为本发明一种缺陷检测方法第一实施例的流程示意图。
[0102] 本实施例中,所述缺陷检测方法包括:
[0103] 步骤S11:获取待检测的缺陷图和对应的模板图;
[0104] 可以理解的是,缺陷图是指可能存在缺陷或瑕疵的产品图像,具体缺陷类型包括但不限于污染、异物、刮伤、氧化、孔洞等,具体参照图2;模板图是指不存在任何缺陷或瑕疵的标准产品图像,用于与其他图像进行比较和匹配,具体参照图3。
[0105] 可选地,工业生产通常是按照固定的模板批量生产,故模板图可以一次性获取,而缺陷图则需要实时获取。
[0106] 另外,为保证双分支孪生模型的输入参数的质量,可以对缺陷图和模板图进行预处理,包括但不限于图像配准、数据特征标准化等。
[0107] 步骤S12:将所述缺陷图和所述模板图输入训练好的双分支孪生模型,确定所述缺陷图和所述模板图的缺陷特征之间的对比度;
[0108] 可以理解的是,双分支孪生模型是一种深度学习模型架构,用于比较两个输入之间的相似性或差异性,其通常由两个相同的分支组成,这两个分支共享相同的权重和参数。
[0109] 可选地,将缺陷图和模板图分别输入模型中的左右两个分支,经每个分支中最大池化模块和/或卷积模块的堆叠处理,具体结构可根据图像的尺寸、复杂度等因素设置,输出对应的缺陷特征表示,这些特征表示可以是网络中间层的输出,也可以是全局池化层的输出。此处的缺陷特征,可以简单理解为,缺陷图中“刮伤”区域的特征,以及模板图中“未刮伤”区域的特征。
[0110] 在此基础上,将缺陷图的缺陷特征与模板图的缺陷特征表示输入到相似度计算模块中,使用适当的距离度量方法,如欧氏距离、余弦相似度等,计算两组缺陷特征之间的对比度,用于表征缺陷图的缺陷程度。
[0111] 可选地,参见图4,步骤S12包括:
[0112] 步骤S121:将所述缺陷图和所述模板图分别输入左右分支的卷积层,经卷积操作,得到对应的缺陷特征图和模板特征图;
[0113] 在本方案中,如图5所示的结构,卷积模块通过卷积操作对输入数据进行滤波,从而捕捉输入数据的局部和全局特征。在双分支孪生模型中,设置多个卷积模块的主要目的是逐渐提取更高级别的特征,并增加模型的表达能力。
[0114] 参照图6,每个卷积模块的具体结构,其中,首先为输入,限定为6通道数据,包括模板图和缺陷图;卷积层,卷积核为 ,步长为1即stride=1,另外,填充为0;批归一化层,即Batch norm,它可以加速模型收敛,提高模型的泛化能力;激活函数层,即Relu,它可以增强网络的非线性分割能力;最后为output。
[0115] 需要注意的是,卷积模块1‑1和卷积模块1‑2共享权重参数,输出通道数为32;卷积模块2‑1和卷积模块2‑2共享权重,输出通道数为64;卷积模块3‑1和卷积模块3‑2共享权重,输出通道数为128。
[0116] 可选地,使用双分支孪生模型中的卷积模块对缺陷图和模板图进行下采样,下文以一个分支为例,进行解释说明:
[0117] 将缺陷图输入左分支的卷积层后,使用3x3的卷积核,设置步幅为1,重复滑动窗口操作和移动步幅操作,直到卷积核在缺陷图上滑动完毕,最终得到的输出数据就是缺陷特征图,同理,可以得到模板特征图。
[0118] 步骤S122:将所述缺陷特征图和所述模板特征图分别输入批归一化层,经归一化处理,得到满足标准正态分布的缺陷特征图和模板特征图;
[0119] 可以理解的是,将卷积得到的缺陷特征图输入批归一化层,批归一化层通过对每个小批量数据进行归一化,使得网络中的每一层的输入具有相似的分布,从而加速网络的训练和提高模型的性能。
[0120] 可选地,在批归一化层中,将缺陷特征图划分为多个小批量数据,然后计算小批量数据的均值和方差,并将其拉回到均值为0方差为1的标准正态分布,计算公式为:
[0121]
[0122] 其中, 为批归一化层的输入, 和 为学习参数,E[x]是均值,Var(x)是方差,是一个很小的常数,用于避免除以零的情况。
[0123] 基于上述公式,可以使得缺陷特征图和模板特征图的均值为0,方差为1,满足标准正态分布,从而加速网络的训练和提高模型的性能。
[0124] 步骤S123:将所述缺陷特征图和所述模板特征图分别输入激活函数层,对每个特征图的每个元素进行非线性变换;
[0125] 可以理解的是,激活函数是对输入数据进行逐元素的非线性变换,将线性变换后的结果映射到非线性空间中,以增加网络的表达能力。
[0126] 可选地,将满足标准正态分布的缺陷特征图和模板特征图输入激活函数层,通过其中的激活函数,如Sigmoid函数、ReLu函数、Tanh函数等,对每个特征图的每个元素进行非线性变换。
[0127] 示例性地,采用ReLu函数进行处理,具体公式为, ,其中, 为输入, 为输出。ReLU函数在输入大于0时返回输入值本身,而在输入小于等于0时返回0,ReLU函数具有简单的计算和导数计算,且能够有效地解决梯度消失问题。
[0128] 步骤S124:比较所述缺陷特征图和所述模板特征图,并根据比较结果确定缺陷特征的对比度。
[0129] 可选地,确定对比度,具体方式同步骤S12部分所述,如欧氏距离、余弦相似度等,在此不作赘述。
[0130] 需要注意的是,还可以比较两张图片中不同颜色的分布情况、整体图片的亮度,如产品和背景的色差程度,具体可以通过计算颜色直方图或使用颜色特征提取算法来量化比较。然后根据比较结果,为上述双分支孪生模型赋予权重, 如在模型输出的对比度的基础上,乘以权重值,得到更为综合性更强的对比度。通过设置权重值,可以降低对于干扰或误判的敏感度,提高检测的鲁棒性和稳定性。
[0131] 需要注意的是,一个产品由多个零件组成,且每个零件对于整个产品的重要程度不同,具体可以划分为关键零件、重要零件和一般零件。因此,可以根据报价、作用、寿命等因素,为各零件设置对应的权重,便于后续得到针对性更强的对比度,避免不重要零件造成的资源浪费,进一步提升检测速率。
[0132] 步骤S13:若所述对比度属于预设值域,则对所述缺陷图进行增强,并输出增强后的缺陷图。
[0133] 可以理解的是,受工厂设备、环境因素等影响,每批次生产出来的产品不尽相同,所采集到的图像的缺陷程度也就不同,其中最难检测的当属超低对比度缺陷。超低对比度缺陷,是指图像中的对比度过低,导致图像中的细节难以分辨,这种缺陷使得图像看起来灰暗、模糊,缺乏明确的轮廓和细节,针对该类缺陷,需要采取一些图像增强方法来进行修复,以便后续分析缺陷出现的原因,如光线条件不佳、摄影设备设置不当、图像传输或处理中的信号损失等。
[0134] 可选地,为准确识别出超低对比度缺陷,技术人员会预先设置一值域,如果缺陷特征的对比度属于预设值域范围内,说明缺陷图中的缺陷属于超低对比度缺陷。示例性地,在灰度值方面预设阈值,如将灰度值值域设置为10‑20,当灰度对比度属于10‑20时,判定当前缺陷图中存在超低对比度缺陷;当灰度对比度属于0‑10,考虑背景、光线等因素影响,判定当前缺陷图中不存在缺陷;当灰度对比度属于20‑255,表明当前缺陷图中存在明显缺陷。
[0135] 可选地,对存在超低对比度缺陷的缺陷图进行图像增强,具体可以采用直方图均衡化、对比度拉伸、高斯滤波等方式,本实施例不作具体限定。
[0136] 可选地,参照图7,步骤S13包括:
[0137] 步骤S131:确定所述缺陷图和所述模板图之间的差异特征;
[0138] 在本方案中,如图5所示的结构,通过增强模块对图像进行增强处理。具体参照图8,为每个增强模块的具体结构,其中,首先为输入,具体为共享权重的一组卷积模块的输出。
[0139] 可选地,进行元素相减操作,即Eltwise sum操作,是指将从模板图和缺陷图提取的特征进行逐元素的差异计算,用于比对出差异特征。具体来说,给定模板图特征A和缺陷图特征B,Eltwise sum操作将它们的对应元素相减,得到输出C,其中Ci= Ai‑ Bi,i表示元素的索引。如图9为模板图通道特征,图10为缺陷图通道特征,图11为差异特征图。
[0140] 步骤S132:对所述差异特征进行全局最大池化操作,得到最大差异特征,并对所述差异特征进行全局平均池化操作,得到平均差异特征;
[0141] 可选地,全局最大池化层,即Global max pool,具体步骤为,定义池化窗口的大小和步幅后,在差异特征图上滑动池化窗口,每次选取窗口内的最大值作为池化后的输出,重复滑动和最大值选择,直到覆盖整个特征图,得到最大差异特征。
[0142] 可选地,全局平均池化层,即Global ave pool,具体步骤为,定义池化窗口的大小和步幅后,在差异特征图上滑动池化窗口,每次计算窗口内的平均值作为池化后的输出。重复滑动和最大值选择,直到覆盖整个特征图,得到平均差异特征。
[0143] 本方案同时使用最大池化和平均池化,可以融合最大池化和平均池化的优点,提取出差异特征图中的重要特征和整体特征,进而得到更全面的特征表示。
[0144] 步骤S133:分别对所述最大差异特征和所述平均差异特征进行卷积操作;
[0145] 可以理解的是,输入卷积层进行卷积操作,其卷积核为 ,stride=1表示步长为1。
[0146] 可选地,对最大差异特征和平均差异特征分别进行两次卷积操作,卷积的具体过程同上文所述,此处不再赘述。
[0147] 需要注意的是,先前的池化操作会丢失部分信息,因此,设置卷积操作,重新引入一些丢失的信息,并且进一步提取更加具体和细节的特征。而且,卷积操作还可以进一步减小特征图的尺寸,有助于减少参数数量和计算量,同时保持特征的表达能力。
[0148] 步骤S134:综合卷积后的最大差异特征、平均差异特征和所述差异特征,并乘以各自对应的放大系数,得到综合缺陷图和综合模板图;
[0149] 步骤S135:对所述综合缺陷图和所述综合模板图进行卷积后,逐像素点进行相乘,输出增强后的缺陷图。
[0150] 可选地,输入线性组合层,即axpy,在该层中,综合卷积后的最大差异特征、平均差异特征,以及先前在Eltwise sum层中提取出来的差异特征,然后按照计算公式 ,其中, 代表不同特征图的放大系数,X代表不同特征图,来进行线性组合,得到相应的增强表示,包括综合缺陷图和综合模板图。
[0151] 进一步地,对综合缺陷图和综合模板图进行卷积,然后逐像素点相乘,进一步放大差异,得到最终的缺陷图,如图12所示。
[0152] 需要注意的是,针对某类产品,可能出现的缺陷有很多种类,具体取决于产品的性质和特点。如铁在接触空气中会发生氧化反应,形成铁锈,而不锈钢中含有铬等元素,形成一层致密的氧化铬膜,可以有效防止进一步氧化,因此,铁质产品容易出现氧化,而不锈钢产品几乎不会出现氧化。
[0153] 基于上述原理,收集与产品缺陷相关的数据,包括产品的特征、制造过程中的参数、历史缺陷数据等,这些数据可以来自于产品的测试记录、用户反馈、生产过程中的监测数据等,然后根据上述数据,整理各类产品可能存在的缺陷类型。在对当前产品进行图像采集和缺陷检测之后,分析检测出来的缺陷类型是否在可能出现的范围内,以此实现对检测结果的验证。
[0154] 在本实施例提供的一个技术方案中,采用训练好的双分支孪生模型,分别提取出缺陷图和模板图的缺陷特征,然后根据两组缺陷特征的对比度,筛选出存在超低对比度缺陷的缺陷图,并对其进行增强处理。双分支孪生模型通过同时学习两个分支,每个分支分别处理不同图像的特征信息,这样可以更好地捕捉图像中的细节和上下文信息,提高特征的丰富性和表达能力,以更好地区分图像中的缺陷区域并提取相应的特征,进而提高超低对比度缺陷的检测准确率。在此基础上,通过图像增强处理,使得超低对比度缺陷在缺陷图中更加明显和突出,以便更容易被人眼或计算机视觉算法检测到,有助于后续的缺陷原因分析。
[0155] 进一步的,参照图13,提出本发明缺陷检测方法的第二实施例。基于上述图1所示的实施例,所述对所述缺陷图进行增强,并输出增强后的缺陷图的步骤之后,包括:
[0156] S21:将所述缺陷图的分辨率调整为目标分辨率;
[0157] S22:根据双线性插值方法,在调整后的缺陷图中,确定与目标像素近邻的四个像素的坐标,以及对应的权重;
[0158] S23:根据所述坐标和权重,计算所述目标像素的插值坐标;
[0159] S24:汇总若干所述目标像素的插值坐标,经卷积操作后,重构得到新的缺陷图。
[0160] 可以理解的是,如图14所示的结构,在图5所示的结构上新增上采样模块,融合增强模块提取浅层特征信息,实现对缺陷更准确的分割,恢复图像的分辨率和细节,提高图像的质量和可视化效果,以满足特定任务的需求。具体参照图15,为每个上采样模块的具体结构,其中,首先为输入;然后为差值层,即Bilinear Interpolation,用于对图像进行上采样操作;接着为卷积层,其 ,步长为1即stride=1;最后为输出。
[0161] 可选地,参照原缺陷图的尺寸或用户需求,确实目标分辨率,然后使用图像处理库或软件,将增强后的缺陷图的尺寸调整为目标分辨率的大小,确保图像在上采样后保持原始的长宽比,避免图像变形或失真。
[0162] 进一步地,本方案采用Bilinear Interpolation,即双线性差值方法,原理为,对于每个目标像素,通过对原始图像中的四个最近像素进行加权平均来计算插值结果。
[0163] 基于上述原理,如图16所示,在分辨率调整完成的缺陷图中,对于每个目标像素P,确定其近邻的四个像素的坐标,分别为Q11(x1,y1)、Q12(x1,y2)、Q21(x2,y1)、Q22(x2,y2)。
[0164] 进一步地,在x方向进行线性插值得到R1和R2,再在y方向上做线性插值得到求得P点,公式如下。
[0165] x方向求R1,R2:
[0166]
[0167] 其中,f(Q11)为Q11的权重,其他以此类推,第一个公式最终得到R1的差值坐标,第一个公式最终得到R2的差值坐标。
[0168] y方向求P:
[0169] 至此,最终得到的f(P)即为目标像素的插值坐标。
[0170] 更进一步地,汇总所有目标像素的插值坐标,经卷积操作后,重新构建出高分辨率的图像,得到新的缺陷图。如图17和图18所示,前者为上采样前的图像,后者为上采样后的图像。
[0171] 在本实施例提供的一个技术方案中,先对缺陷图的分辨率进行调整,然后双线性插值方法,确定各个目标像素的插值坐标,最后汇总所有目标像素的插值坐标,重构得到新的缺陷图。通过双线性插值方法进行上采样,使得上采样后的缺陷图具有平滑且连续的特性,相比于其他上采样方法,如最近邻插值,双线性插值能够更好地保留图像的细节和边缘信息,提高图像的质量和可视化效果。
[0172] 进一步的,参照图19,提出本发明缺陷检测方法的第三实施例。基于上述图1所示的实施例,所述对所述缺陷图进行增强,并输出增强后的缺陷图的步骤之后,包括:
[0173] 步骤S31:计算所述缺陷图中各像素点的指数值,并汇总得到所有像素点的总指数值;
[0174] 步骤S32:将所述指数值除以所述总指数值,得到各像素点的概率分布情况;
[0175] 步骤S33:汇总各所述像素点的概率分布情况,生成缺陷二值图。
[0176] 参见图14中的softmax模块,其作用为,将上采样后的图像转化为对应类别的概率分布。
[0177] 可选地,将缺陷图展平为一个向量,作为softmax函数的输入,其中,可以通过将缺陷图的每个通道的像素值按行连接起来,以实现展平。然后,对展平后的特征向量应用softmax函数,对于每个类别,计算其得分,即特征向量中对应类别的像素点的值。
[0178] 进一步地,对得分向量应用softmax函数,将得分转化为概率分布,具体步骤如下。
[0179] 首先,通过应用指数函数,对每个得分进行指数化,计算每个像素点的指数值,并汇总得到所有像素点的总指数值;
[0180] 然后,将指数值除以总指数值,便可得到各像素点的概率分布情况,具体公式如下:
[0181] 其中,α[l]表示第l个像素点的概率,满足0≤pi≤1,ez[l]为单个像素点的指数值,n是指总共有n个像素点。
[0182] 需要注意的是,不同的概率,表示该像素点属于对应类别的可能性大小,概率越大,属于该分类的可能性越大,概率的总和为1。
[0183] 更进一步地,采用阈值化方法,即根据设定的阈值来将概率转化为二值,进而生成缺陷二值图,如图20所示,分别为背景预测结果和缺陷预测结果。
[0184] 在本实施例提供的一个技术方案中,通过softmax函数,将上采样后的图像转化为对应类别的概率分布,进而生成对应的二值图,以便将背景和缺陷区分开来,实现更准确地定位和识别。
[0185] 进一步的,参照图21,提出本发明缺陷检测方法的第四实施例。基于上述图1所示的实施例,所述获取待检测的缺陷图和对应的模板图的步骤之前,包括:
[0186] 步骤S41:获取训练模板图和训练缺陷图,并接收所述训练缺陷图对应的标注;
[0187] 可以理解的是,在使用双分支孪生模型进行缺陷检测之前,需要对其进行训练,使得模型能够更好地拟合训练数据,提高模型的性能和泛化能力。
[0188] 参见图22,介绍了整体流程图,其中,模型训练阶段包括,数据采集、训练预处理、模型训练、模型压缩和模型存储;模型推理阶段包括,推理前处理、模型推理、推理后处理和结果存储。其中,模型压缩是为了加速模型预测缺陷的效率,本发明在模型训练结束后对部分模型参数进行合并,如将卷积层和Batch norm层参数合并;模型存储时将模型参数转换成二进制文件输出并存储;推理后处理是指根据具体的需求,对输出缺陷做进一步处理,如根据缺陷面积、长宽等进行筛选或对缺陷做膨胀、腐蚀处理等;结果存储是指将输出的结果保存为二进制文件存储进计算机。
[0189] 可选地,获取训练模板图和训练缺陷图,然后向用户发送训练缺陷图,用户会使用多边形标注缺陷图中的缺陷并反馈,相应地,处理器会接收到用户反馈的标注,如图23所示。
[0190] 可选地,参见图24,步骤S41包括:
[0191] 步骤S411:通过光学系统分别对标准产品和训练样品进行采集,得到原始模板图和原始缺陷图;
[0192] 光学系统是数据采集不可或缺的部分,用于采集适于处理的图片信息,如果没有适合的光学系统采集适于处理的图片,则难以有效地完成缺陷分割。本方案中的光学系统如图25所示,通过光源、相机、图像采集卡和工业计算机等,实现对标准产品和训练样品的采集,得到原始模板图和原始缺陷图。
[0193] 步骤S412:对所述原始模板图和所述原始缺陷图进行灰度化操作,得到对应的灰度模板图和灰度缺陷图;
[0194] 步骤S413:在所述灰度模板图中选定一个参考窗口,将所述参考窗口与所述灰度缺陷图中所有候选窗口进行匹配,并根据匹配率最高的候选窗口和所述参考窗口之间的位置关系,对所述原始模板图和所述原始缺陷图进行配准;
[0195] 步骤S414:将配准后的原始模板图和原始缺陷图按对存储,并按比例挑选出训练模板图和训练缺陷图;
[0196] 可以理解的是,受光线、背景等因素的影响,光学系统采集到的图像可能存在质量问题,为保证训练过程及结果的准确性,需要对采集到的图像进行预处理。
[0197] 可选地,为了降低原始模板图和原始缺陷图对位不齐对提取特征差异信息的影响,需要对模板图和缺陷图做配准,具体通过基于灰度的匹配算法实现,具体过程如下:
[0198] 首先,对原始模板图和原始缺陷图进行灰度化操作,将彩色图像转换成灰度图像,得到对应的灰度模板图和灰度缺陷图。
[0199] 其次,在灰度模板图中选定一个参考窗口,可以是一个固定大小的矩形窗口,也可以是任意形状的窗口。以此为模板,与灰度缺陷图中所有候选窗口进行匹配,匹配的方式可以是计算两个窗口的像素灰度值之间的差异常用的方法包括平方差、绝对差、相关度等。根据所有的匹配结果,从中筛选出匹配率最高的候选窗口,根据该候选窗口和参照窗口的位置关系,对原始模板图和原始缺陷图进行粗配准。
[0200] 再次,将配准后的模板图和缺陷图按对存储,按比例挑选出训练模板图和训练缺陷图,组成训练集。
[0201] 步骤S415:通过几何变换和属性变换,对所述训练缺陷图进行数据增广;
[0202] 步骤S416:计算所述训练缺陷图和所述训练模块图的均值和标准差,并根据所述均值和所述标准差,得到标准的训练缺陷图和训练模块图。
[0203] 可以理解的是,工业场景下,采集数据成本较高,有用的数据常常不足,因此做数据增广。
[0204] 可选地,通过平移、旋转、水平翻转、垂直翻转等几何变换,以及调整图像颜色、对比度、亮度、模糊图像等属性变换,实现训练缺陷图的数据增广。
[0205] 进一步地,为了更好地进行比较和分析,需要将不同特征的数据进行转换,使其具有相同的尺度和分布。本方案采用Z‑score数据特征标准化,具体过程为,对于训练缺陷图和训练模块图中的每个特征,计算其均值和标准差,然后对每个数据点进行如下转换:(x ‑ mean) / std,其中x是原始数据,mean是均值,std是标准差。这样处理后,数据的均值为0,标准差为1,汇总得到标准的训练缺陷图和训练模块图。
[0206] 步骤S42:将所述训练缺陷图和所述训练模板图输入构建好的双分支孪生模型,确定所述训练缺陷图和所述训练模板图的缺陷特征之间的对比度;
[0207] 步骤S43:若所述对比度属于预设值域,则对所述训练缺陷图进行增强,并对增强后的训练缺陷图进行上采样;
[0208] 步骤S44:根据上采样后的训练缺陷图和所述标注,计算损失函数,并根据所述损失函数对双分支孪生模型进行调整,直至达到最小损失函数。
[0209] 可选地,将训练缺陷图和训练模板图输入构建好的双分支孪生模型,确定训练缺陷图和训练模板图的缺陷特征之间的对比度,具体过程同第一实施例,在此不再赘述。
[0210] 进一步地,若对比度属于预设值域,则对训练缺陷图进行增强,并对增强后的训练缺陷图进行上采样,具体过程同第一实施例和第二实施例,在此不再赘述。
[0211] 更进一步地,如图26所示的结构,在图14所示的结构上新增优化器,用于对双分支孪生模型进行调整。根据上采样后的训练缺陷图和标注,计算损失函数,并根据损失函数对双分支孪生模型进行调整,直至达到最小损失函数。本方案采用三个优化器,对超低对比度分割网络逐层优化,提升模型的学习效果。
[0212] 可选地,参照图27,步骤S44包括:
[0213] 步骤S441:通过归一化指数函数,计算上采样后的缺陷图的置信度;
[0214] 步骤S442:根据所有所述训练缺陷图的类别分布情况,确定平衡参数,以及根据所述训练缺陷图的难分易分情况,确定调节因子;
[0215] 步骤S443:根据所述置信度、所述平衡参数和所述调节因子,计算损失函数。
[0216] 可以理解的是,在进行模型训练过程中,易分样本一般多于难分样本,易分样本的损失之和相对于整体损失来说占比很高,这样将导致模型训练过程中该背景下的损失函数反向传播时对参数的更新并不会改善模型的预测能力,模型对难分样本的预测能力依旧很差。
[0217] 针对上述问题,本方案采用Focal Loss对模型进行优化,具体步骤如下:
[0218] 首先,通过模型进行前向传播,计算上采样后的缺陷图的置信度,可以是通过归一化指数函数,即softmax函数计算得到的,或者是通过其他方法得到的。
[0219] 其次,一方面,根据所有训练缺陷图的类别分布情况,如类别频率、类别难度等,确定各训练缺陷图的平衡参数,使得少数类别的样本权重较大,多数类别的样本权重较小;另一方面,根据训练缺陷图的难分易分情况,确定调节因子γ,用于调节难易样本的权重,一般取γ≥1,对易分样本的损失进行一个幂函数的降低, 这项可以使模型更加关注于难分样本。
[0220] 再次,将置信度、平衡参数和调节因子输入以下公式,计算损失函数FL(pt):
[0221]
[0222] 其中,αt为平衡参数,pt为置信度,γ为调节因子。
[0223] 在本实施例提供的一个技术方案中,记载了双分支孪生模型的训练过程,在增强、上采样等步骤的基础上,采用优化器对模型的参数进行优化调整,使得模型逐渐学习到更好的表示和预测能力,从而提高模型的准确性和精度。
[0224] 参照图28,图28为本发明实施例方案涉及的硬件运行环境的缺陷检测设备结构示意图。
[0225] 如图28所示,该缺陷检测设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless‑FIdelity,WI‑FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non‑Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0226] 本领域技术人员可以理解,图28中示出的结构并不构成对缺陷检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0227] 如图28所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及缺陷检测程序。
[0228] 在图28所示的缺陷检测设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明缺陷检测设备中的处理器1001、存储器1005可以设置在缺陷检测设备中,所述缺陷检测设备通过处理器1001调用存储器1005中存储的缺陷检测程序,并执行本发明实施例提供的缺陷检测方法。
[0229] 本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现上述缺陷检测方法任一实施例中的步骤。
[0230] 由于计算机可读存储介质部分的实施例与方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,在此暂不赘述。
[0231] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还 包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、 方法、物品或者系统中还存在另外的相同要素。
[0232] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0233] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术作出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0234] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。