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

一种基于可微分神经架构搜索的表面缺陷检测方法

文献发布时间:2024-04-18 19:58:26


一种基于可微分神经架构搜索的表面缺陷检测方法

技术领域

本发明涉及机器视觉中表面缺陷检测领域,并特别涉及一种基于可微分神经架构搜索的表面缺陷检测方法。

背景技术

表面缺陷检测是机器视觉领域中非常重要的一项研究内容,它是利用机器视觉设备获取图像来判断采集图像中是否存在缺陷从而代替人工肉眼检测的技术。近年来,随着以卷积神经网络为代表的深度学习模型在诸多计算机视觉领域成功应用,许多基于深度学习的缺陷检测方法也广泛应用于各种工业场景中。因此,基于深度学习的表面缺陷检测方法有着非常广阔的市场应用前景,并已经成为机器视觉领域的研究热点。

神经网络架构搜索是深度学习的一个分支,用于降低人工设计网络架构的试错成本,自动化地搜索性能更优的网络架构,搜索空间、搜索策略﹑性能评估策略是神经网络架构搜索技术最重要的三个方向,其中,搜索空间定义了网络架构的基本单元或者操作方式,而搜索策略则定义了从搜索空间中搜索一个完整的子架构的具体实现方法,最后评价策略负责对搜索到的子架构的最终表现进行打分,并将得分结果返回给搜索策略,指导其进行下一步的搜索过程。神经网络架构搜索技术具有十分广阔的应用价值与研究意义,近年来得到了研究人员的广泛关注,并取得了一定的研究进展。

围绕着如何提高搜索效率和如何找到更好的结构,神经网络架构搜索可划分为强化学习类、进化算法类和可微分类三种方法。由于需要对每种结构进行重训练,前两类方法要求极其巨大的搜索资源,因此当下主流的搜索算法是可微分类算法。可微分方法需要用权重共享机制对搜索空间的所有结构进行集成,然后基于梯度优化权重和结构参数,最后通过结构参数选择结构。

基于梯度优化是近几年来用于解决NAS问题的主流方法,其原理旨在通过把一个离散的搜索目标空间变成一个连续的搜索目标空间,使得目标函数可微,这样就可以通过梯度优化来对网络进行搜索训练。Google的学者提出了DARTS方法,首次将梯度优化算法用于解决NAS问题,通过基于cell的搜索空间,搜索可重复的block中的cell,然后自由的迭代形成完整的网络结构。

在目前基于深度学习的表面缺陷检测领域中,网络结构设计成为了关键问题,面对不同的缺陷检测场景,需要不同的网络结构,这些网络结构都是人工设计的,从模型包含多少层到每一层的详细结构都是一个漫长设计和调参的过程。这种网络很难说是最优的,只能说这些手工设计的网络在当前缺陷检测数据集上大致满足需求。类似于传统手工设计的缺陷检测特征,相比于卷积神经网络自身学到的特征,其缺陷分类效果逊色很多。同时,表面缺陷检测中关于小样本的难题也依赖合理的网络结构设计,通过设计合理的网络结构可以在很大程度上减少样本的需求。

发明内容

本发明的目的在于克服现有技术的不足,提供一种基于可微分神经网络结构搜索的表面缺陷检测方法,使用可微分神经网络结构搜索技术完成了表面缺陷检测中关键模型的搜索,解决了训练样本短缺的问题,并且有着更强的特征学习能力,可以更好的适用于不同的缺陷检测场景。

本发明的目的是通过以下技术方案来实现的:

一种基于神经网络结构搜索技术的表面缺陷检测方法,包括以下步骤:

步骤一:通过集合若干个神经网络架构基础组件得到搜索空间,将该搜索空间中所有神经网络架构基础组件通过权重共享生成超网络。

步骤二:构建表面缺陷数据集,使用缺陷数据集对步骤一中的超网络进行训练,采取梯度下降的方法,联合优化架构参数和网络内部权重从超网络中生成最优的子网络架构cell。

步骤三:将步骤二中搜索出来的最优子网络架构cell堆叠成网络,使用缺陷数据集对其进行训练和评估测试。如果模型的性能不如预期,则需要对搜索空间和搜索算法进行调整,并再次进行搜索。最后,使用该模型完成具体场景的表面缺陷检测任务。

具体的,所述步骤一具体包括以下子步骤:

步骤11:待搜索的神经网络架构基础组件包括神经网络节点间的拓扑结构和神经网络节点之间的操作集合。

步骤12:将搜索空间中所有神经网络架构基础组件通过权值共享生成超网络:在传统的方法中,为了在候选操作集

具体的,所述步骤11包括以下步骤:

步骤111:神经网络节点间的拓扑结构:最终的网络结构由搜索出的两类不同的cell(Normal cell和Reduction cell)按照一定的顺序堆叠而成。每个cell都是包含了7个节点的有向无环图,每个节点表示卷积网络中的特征图x

x

七个节点中有两个输入节点(来自之前的cell的输出),一个输出节点,和四个中间节点,输出节点由四个中间节点进行通道连接而成,如附图(3)所示。

步骤112:神经网络节点间的操作指在神经网络中连接不同层之间的计算操作,其目的是将输入数据从一个层传递到下一个层,进而完成对输入数据的特征提取和预测任务。常见的神经网络操作包括卷积、池化、全连接、激活函数等。

具体的,所述步骤12包括以下步骤:

步骤121:具体地,实际上在搜索过程中,候选操作集的每个操作都会处理每个节点的特征图。之后,再对所有操作得到的结果加权求和,即

其中

步骤122:为了保证所有节点的输出大致稳定,对每两个节点之间的架构参数(即操作的权重)进行Softmax操作,即

由此可见,如果每个操作的权重确定,那么最终的网络架构也随之确定(选择最大权重的操作),因此可以称α为网络结构本身。

具体的,所述步骤二具体包括以下子步骤:

步骤21:构建表面缺陷数据集。

步骤22:使用缺陷数据集对超网络进行训练,与基于强化学习方法的激励函数,或者基于演化算法的种群适应度一样,基于可微分搜索空间使用梯度下降方法的优化目标也是在验证集上的损失函数。我们令在表面缺陷数据集上的训练损失和验证损失分别为

步骤23:每次判断架构好坏之前,首先要在训练集上收敛,即

具体的,所述步骤21包括以下步骤:

步骤211:确定缺陷类型:首先需要明确需要构建的表面缺陷数据集中包含哪些缺陷类型,例如裂纹、气泡、划痕、凹陷等。

步骤212:收集样本图像:采集多个包含缺陷的表面图像,可以使用相机、显微镜等设备进行拍摄,以确保图像清晰且包含足够的缺陷。

步骤213:标注缺陷:使用标注工具,将每个图像中的缺陷进行标注,可以使用边界框、多边形等方式进行标注。

步骤214:分割缺陷:对于一些需要进行像素级别分析的应用,例如缺陷面积、缺陷周长等,需要对图像进行分割,将缺陷区域分离出来。

步骤215:数据清洗:对于标注不准确或者图像质量不好的样本,需要进行筛选或者重新标注,以确保数据集的质量。

步骤216:数据增强:使用数据增强技术,例如旋转、翻转、缩放等,可以生成更多的样本,以增加数据集的多样性和数量。

步骤217:划分数据集:将数据集划分为训练集、验证集和测试集,以便对模型进行训练、验证和测试。

具体的,所述步骤三包括以下子步骤:

步骤31:将步骤二中搜索出的cell结构堆叠成网络。

步骤32:模型评估:使用验证集和测试集对堆叠好的网络模型进行评估。评估指标可以是准确率、召回率、精确率等。如果模型的性能不如预期,则需要对搜索空间和搜索算法进行调整,并再次进行搜索。

步骤33:优化和迭代:根据模型的评估结果对搜索空间进行调整,并再次进行cell结构的搜索。这个过程可能需要多次迭代,直到获得最佳的模型性能为止。在搜索过程中,我们可以尝试不同的搜索算法、超参数组合和搜索策略,以获得最佳的cell结构,以此堆叠成最优的网络模型。

具体的,所述步骤32包括以下步骤:

步骤321:将训练集划分为训练集和验证集,划分比例为70%的训练集和30%的验证集。

步骤322:在训练集上训练堆叠好的模型,并使用验证集对模型进行验证。在验证集上计算模型的损失函数和指标,例如准确率、召回率等。

步骤323:根据模型在验证集上的表现,对搜索空间和搜索算法进行调整。例如,可以增加搜索空间的大小、修改搜索算法的超参数等。

步骤324:使用测试集对最终的模型进行评估。测试集是独立于训练集和验证集的数据集。在测试集上计算模型的性能指标,例如准确率、召回率等,以评估模型在实际情况下的性能。

步骤325:如果模型的性能不佳,可以根据测试集的结果,再次对搜索空间和搜索算法进行调整,并再次进行搜索。这个过程需要多次迭代,直到获得最佳的模型性能为止。

本发明的有益效果:

提出一种基于可微分神经网络结构搜索的表面缺陷检测方法,使用可微分搜索技术完成了表面缺陷检测中关键模型设计的任务,从而解决了表面缺陷检测领域中训练样本短缺的关键问题,并同时拥更强的特征学习能力,可以更好的适用于不同的缺陷检测场景。

附图说明

图1是本发明实施例的一种神经网络架构搜索方法的算法图;

图2是本发明实施例的一种节点间的拓扑结构图;

图3是本发明实施例的一种将cell堆叠成网络的示意图;

图4是本发明的整体框架示意图。

具体实施方法

为了对本发明的技术特征、目的和有益效果有更加清楚的理解,现对本发明的技术方案精选以下详细说明。显然,所描述的实施案例是本发明一部分实施例,而不是全部实施例,不能理解为对本发明可实施范围的限定。基于本发明的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的其他所有实施例,都属于本发明的保护范围。

实施例一:

本实施例中,如图1所示,一种基于基于可微分神经架构搜索的表面缺陷检测方法,包括以下步骤:

步骤一:通过集合多个待搜索的神经网络架构基础组件得到搜索空间,将该搜索空间中所有神经网络架构基础组件通过权重共享生成超网络。

步骤二:构建表面缺陷数据集,使用缺陷数据集对步骤一中的超网络进行训练,采取梯度下降的方法,联合优化架构参数和网络内部权重从超网络中生成最优的子网络架构。

步骤三:将步骤二中搜索出来的最优子网络架构cell堆叠成网络,使用缺陷数据集对其进行训练和评估测试。如果模型的性能不如预期,则需要对搜索空间和搜索算法进行调整,并再次进行搜索。最后,使用该模型完成具体场景的表面缺陷检测任务。

具体的,所述步骤一具体包括以下子步骤:

步骤11:待搜索的神经网络架构基础组件包括神经网络节点间的拓扑结构和神经网络节点之间的操作集合。

步骤12:将搜索空间中所有神经网络架构基础组件通过权值共享生成超网络:在传统的方法中,为了在候选操作集

具体的,所述步骤11包括以下步骤:

步骤111:神经网络节点间的拓扑结构:最终的网络结构由搜索出的两类不同的cell(Normal cell和Reduction cell)按照一定的顺序堆叠而成。每个cell都是包含了7个节点的有向无环图,每个节点表示卷积网络中的特征图x

x

七个节点中有两个输入节点(来自之前的cell的输出),一个输出节点,和四个中间节点,输出节点由四个中间节点进行通道连接而成,如附图(3)所示。

步骤112:神经网络节点间的操作指在神经网络中连接不同层之间的计算操作,其目的是将输入数据从一个层传递到下一个层,进而完成对输入数据的特征提取和预测任务。常见的神经网络操作包括卷积、池化、全连接、激活函数等,在本实施例中,神经网络节点间的操作集合为:

1)None,节点间没有连接;

2)Identity,跳跃连接;

从3)Max_pool_3×3,3×3最大池化;

4)Avg_pool_3×3,3×3平均池化;

5)Sep_conv_3×3,3×3深度可分离卷积;

6)Dil_conv_3×3,3×3空洞卷积;

7)Sep_conv_5×5,5×5深度分离卷积;

8)Dil_conv_5×5,5×5空洞卷积。

具体的,所述步骤12包括以下步骤:

步骤121:具体地,实际上在搜索过程中,候选操作集的每个操作都会处理每个节点的特征图。之后,再对所有操作得到的结果加权求和,即

其中

步骤122:为了保证所有节点的输出大致稳定,对每两个节点之间的架构参数(即操作的权重)进行Softmax操作,即

由此可见,如果每个操作的权重确定,那么最终的网络架构也随之确定(选择最大权重的操作),因此可以称α为网络结构本身。

具体的,所述步骤二具体包括以下子步骤:

步骤21:构建表面缺陷数据集。

步骤22:使用缺陷数据集对超网络进行训练,与基于强化学习方法的激励函数,或者基于演化算法的种群适应度一样,基于可微分搜索空间使用梯度下降方法的优化目标也是在验证集上的损失函数。我们令在表面缺陷数据集上的训练损失和验证损失分别为

步骤23:每次判断架构好坏之前,首先要在训练集上收敛,即

具体的,所述步骤21包括以下步骤:

步骤211:确定缺陷类型:首先需要明确需要构建的表面缺陷数据集中包含哪些缺陷类型,例如裂纹、气泡、划痕、凹陷等。

步骤212:收集样本图像:采集多个包含缺陷的表面图像,可以使用相机、显微镜等设备进行拍摄,以确保图像清晰且包含足够的缺陷。

步骤213:标注缺陷:使用标注工具,将每个图像中的缺陷进行标注,可以使用边界框、多边形等方式进行标注。

步骤214:分割缺陷:对于一些需要进行像素级别分析的应用,例如缺陷面积、缺陷周长等,需要对图像进行分割,将缺陷区域分离出来。

步骤215:数据清洗:对于标注不准确或者图像质量不好的样本,需要进行筛选或者重新标注,以确保数据集的质量。

步骤216:数据增强:使用数据增强技术,例如旋转、翻转、缩放等,可以生成更多的样本,以增加数据集的多样性和数量。

步骤217:划分数据集:将数据集划分为训练集、验证集和测试集,以便对模型进行训练、验证和测试。

具体的,所述步骤三包括以下子步骤:

步骤31:将步骤二中搜索出的cell结构堆叠成网络。

步骤32:模型评估:使用验证集和测试集对堆叠好的网络模型进行评估。评估指标可以是准确率、召回率、精确率等。如果模型的性能不如预期,则需要对搜索空间和搜索算法进行调整,并再次进行搜索。

步骤33:优化和迭代:根据模型的评估结果对搜索空间进行调整,并再次进行cell结构的搜索。这个过程可能需要多次迭代,直到获得最佳的模型性能为止。在搜索过程中,我们可以尝试不同的搜索算法、超参数组合和搜索策略,以获得最佳的cell结构,以此堆叠成最优的网络模型。

具体的,在本实施例中,步骤31的具体实施为:如图3所示在深度上叠加两种不同数量的cell,将第k个cell的输入设置为第h-1和第k-2个cell的输出,为了减少整个网络的大小,将网络的第1/3和2/3的位置设置为reduction cell,其余位置是含有N个normalcell的block,网络搜索阶段,N=2,此时网络由8个cell构成,在网络评估阶段,N=6,此时网络由20个cell构成,而在搜索阶段使用较少cell的原因是在这个阶段只需要找出相对表现较好的网络,使用较少的cell可以大幅度提高搜索速度。

具体的,所述步骤32包括以下步骤:

步骤321:将训练集划分为训练集和验证集,划分比例为70%的训练集和30%的验证集。

步骤322:在训练集上训练堆叠好的模型,并使用验证集对模型进行验证。在验证集上计算模型的损失函数和指标,例如准确率、召回率等。

步骤323:根据模型在验证集上的表现,对搜索空间和搜索算法进行调整。例如,可以增加搜索空间的大小、修改搜索算法的超参数等。

步骤324:使用测试集对最终的模型进行评估。测试集是独立于训练集和验证集的数据集。在测试集上计算模型的性能指标,例如准确率、召回率等,以评估模型在实际情况下的性能。

步骤325:如果模型的性能不佳,可以根据测试集的结果,再次对搜索空间和搜索算法进行调整,并再次进行搜索。这个过程需要多次迭代,直到获得最佳的模型性能为止。

本实施例通过集合若干个神经网络架构基础组件得到搜索空间,将该搜索空间中所有神经网络架构基础组件通过权重共享生成超网络,之后构建表面缺陷数据集,并采取梯度下降的方法,联合优化架构参数和网络内部权重从超网络中搜索出最优的子网络架构cell,将最优子网络架构cell堆叠成网络,使用缺陷数据集对其进行训练和评估测试,得到最优模型完成具体场景的表面缺陷检测任务;本发明使用可微分搜索技术完成了表面缺陷检测中关键模型设计的任务,从而解决了表面缺陷检测领域中训练样本短缺的关键问题,并同时拥更强的特征学习能力,可以更好的适用于不同的缺陷检测场景。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。

相关技术
  • 一种基于可微分神经网络架构搜索的缺陷检测方法及系统
  • 一种基于神经网络架构搜索的偏微分方程数值求解方法
技术分类

06120116494594