[0045] 附图仅用于示例性说明,不能理解为对本专利的限制;
[0046] 为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0047] 对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0048] 下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0049] 实施例1
[0050] 本实施例公开了一种基于神经网络架构搜索的表面缺陷分类方法,如图1,包括以下步骤:
[0051] S1:构建堆叠候选cell的网络架构NAS‑SDC,所述网络架构NAS‑SDC基于神经网络架构搜索构建;
[0052] S2:通过NEU‑CLS缺陷数据集搜索cell,利用搜索到的最佳cell构建缺陷分类CNN;
[0053] S3:利用S2得到的缺陷分类CNN对表面缺陷进行分类。
[0054] 所述网络架构NAS‑SDC‑A如图6,包括N个Normal cell相邻,共堆叠4组,其中,前3组Normal cell后均添加一个Maxpooling cell,所述Maxpooling cell将其两个输入进行Add操作,然后进行2×2的最大池化操作后输出,最后采用全局平均池化GAP+全连接层FC+Sofxmax的结构作为分类层。
[0055] 所述网络架构NAS‑SDC‑B如图7,包括N个Normal cell相邻,共堆叠4组,其中,前2组Normal cell后均添加一个Maxpooling cell,所述Maxpooling cell将其两个输入进行Add操作,然后进行2×2的最大池化操作后输出,在第3组Normal cell后则添加了一个Normal cell+Maxpooling cell+Normal cell组合,最后采用全局平均池化GAP+全连接层FC+Sofxmax的结构作为分类层。
[0056] 所述网络架构NAS‑SDC在第一组Normal cell前设置一个3×3的卷积层,所述卷积层的核心数为60,所述卷积层用于提取输入图像特征。
[0057] 步骤S2中NEU‑CLS缺陷数据集包括六种缺陷,分别为rolled‑in scale、patches、crazing、pitted surface、inclusion和scratches,每种缺陷类型有300张灰度图像,图像分辨率为64×64。
[0058] 步骤S2中将NEU‑CLS缺陷数据集根据6:1:3的比例1分为训练集、验证集和测试集。
[0059] 步骤S2中搜索cell,利用搜索到的最佳cell构建缺陷分类CNN,如图2,具体包括以下步骤:
[0060] S2.1:利用NASNet进行搜索cell;
[0061] S2.2:对NASNet搜索空间进行精简;
[0062] S2.3:通过控制器网络进行搜索,通过采样操作构建候选cell;
[0063] S2.4:堆叠候选cell并产生网络,利用验证集对验证网络是否收敛,若是,则所述候选cell为最佳cell,进入步骤S2.5,若不收敛,则进行梯度下降更新,返回步骤S2.3;
[0064] S2.5:堆叠最佳cell并利用测试集进行测试。
[0065] NASNet同时搜索两种cell结构(Normal cell和Reduction cell),搜索空间仍然较大,且搜索空间中没有用到的操作数量较多,最后搜索到的模型参数量也较大。针对NASNet中的cell结构存在冗余和候选操作较多的问题,从优化cell结构和精简候选操作两方面做出了改进本实施例与NAS方法的流程基本相同,通过基于LSTM的控制器网络采样不同的候选操作,构建cell,所不同的是,提出了一种基于Maxpooling cell的精简搜索空间的方法,并使用强化学习的搜索策略搜索高性能的cell,进一步,使用被搜到的cell堆叠成最终的缺陷分类CNN,命名为NAS‑SDC;
[0066] 步骤S2.2中对NASNet搜索空间进行精简包括优化cell结构,具体为:
[0067] cell结构优化方面,在NASNet的搜索空间中的Normal cell和Reduction cell均通过搜索B个blocks生成。这两种cell生成方式基本相同,唯一不同的是Normal cell中所有应用于cell输入的第1步操作的stride为1,而Reduction cell的则为2,以便减少特征映射的尺寸。图3显示了候选cell的例子,该cell包含2个blocks,H[i]和H[i‑1]为两个输入,H[i+1]为输出,i为层序号。该cell第1步操作共4个(标记为1‑4)。如果第1步操作的stride=1,则是Normal cell;如果第1步操作的stride=2,则为NASNet的Reduction cell。
[0068] 考虑到如果同时搜索Normal cell和Reduction cell,不仅会增大搜索空间,还会引入这两种cell的大量参数。针对该问题,构建一个固定的无参数的Maxpooling cell,如图4,将所述Maxpooling cell与Normal cell组合来实现减小特征映射尺寸的功能,只需要搜索一种Normal cell,既能减少搜索空间的大小,又能缩减网络模型的参数量,所述Maxpooling cell将两个输入H[i]和H[i‑1]进行Add操作,然后进行2×2的最大池化操作,由于Maxpooling cell结构是固定的,因此不需要再搜索cell内部的操作,并且不产生额外的参数。
[0069] 无论是Normal cell还是Maxpooling cell,都只能接收特征通道数和尺寸相同的H[i]和H[i‑1]。因此,当输入H[i]和H[i‑1]的特征通道数和尺寸不相同时,进行尺度规划化操作,所述尺度规划化操作通过1个Relu激活层、一个kernek数量为K的1×1卷积层和1个Batch Normalization层组成,如图5,所述尺度规划化操作具体为:
[0070] 当输入H[i]和H[i‑1]的尺寸不同时,需要对H[i‑1]进行尺度规范化,设置其尺度规划化操作中的1×1卷积层的步长为2;
[0071] 当输入H[i]和H[i‑1]的尺寸相同但特征通道数不同时,对H[i]和H[i‑1]中特征通道数较大的进行尺度规范化操作,设置其尺度规范化操作中1×1卷积层的步长为1,K设为H[i]和H[i‑1]特征通道数的最小值。
[0072] 步骤S2.2中对NASNet搜索空间进行精简包括精简候选操作,具体为:
[0073] 注意到NASNet的搜索空间中的操作数量高达13个,而搜到的最佳cell中并没有使用到那么多的操作。考虑到传统卷积的参数量较大,而空洞卷积会使远距离卷积得到的信息之间没有相关性,且大尺寸卷积核的池化层会导致信息损失严重而少见使用等,将NASNet的搜索空间中的操作数量由13个精简到6个,包括:Identity操作,代码为0;3×3dw conv操作,代码为1;5×5dw conv操作,代码为2;7×7dw conv操作,代码为3;3×3max pooling操作,代码为4;3×3average pooling操作,代码为5;另外,为了在一个cell内增大感受野的大小,我们在搜索过程中采用了堆叠m个相同dw conv的策略。
[0074] 采用类似NASNet的搜索策略。首先采用基于RNN的控制器根据一定的概率采样cell编码,该编码对应于候选cell的Block操作序列;根据编码生成的候选cell并产生网络,在验证集上验证,控制器根据其验证精度,基于Adam优化器和policy gradient策略调整对于候选操作的采样概率,继续下一轮采样直到找到令人满意的网络
[0075] 在具体实施过程中,基于Tensorflow训练控制器网络与子网络,实验环境为Windows 10、CPU Intel Core i5、DDR4 16GB、NVIDIA GPU 1070Ti。我们通过NEU‑CLS缺陷数据集搜索cell时,使用的图像分辨率为64×64,epoches=300,batch_size=8,B=3,初始化时Normal cell的特征映射个数F=20。搜索验证网络时,使用Momentum最小化交叉熵损失。
[0076] 首先使用NEU‑CLS数据集来搜索最佳cell。NEU‑CLS包括the hot‑rolled steel strip的6种典型缺陷,分别为rolled‑in scale(RS),patches(Pa),crazing(Cr),pitted surface(PS),inclusion(In)and scratches(Sc),每个缺陷类型有300张灰度图像。实验中,根据6:1:3的比例分成训练集,验证集和测试集。
[0077] 设计了两种堆叠候选cell的网络架构,并称它们为NAS‑SDC‑A和NAS‑SDC‑B,如图6和图7。NAS‑SDC‑A是N个Normal cell相邻(这里N=2),共堆叠4组。前3组Normal cell后均添加一个Maxpooling cell。NAS‑SDC‑B共堆叠3组Normal cell,前2组Normal cell后均添加一个Maxpooling cell,在第3组Normal cell后则添加了一个Normal cell+Maxpooling cell+Normal cell组合,即该组的Normal cell实际数量为N+2。NAS‑SDC‑A和NAS‑SDC‑B中的第1个3×3的卷积层是固定结构,其核心数为60,用来提取特征。在网络的最后均采用全局平均池化(Global average pooling,GAP)+全连接层(Full connection,FC)+Sofxmax的结构作为分类层。
[0078] 基于这两种网络架构,利用所提出的NAS‑SDC方法进行最佳cell搜索,搜索过程中构建验证网络的参数N=2。NAS‑SDC‑A和NAS‑SDC‑B找到的最佳cell如图8和图9所示。
[0079] 基于搜索到的最佳cell构建缺陷分类CNN。搜索过程中的堆叠参数N=2,这里我们尝试增大N的值,以分析最佳cell的堆叠深度对于检测性能的影响,并与ENAS进行了对比。
[0080] 图10和图11显示的是堆叠不同深度的NAS‑SDC‑A和B与ENAS的检测精度和对应的参数量对比图。对于NAS‑SDC来说,N=2时,其cell堆叠深度为11层。我们继续对比了NAS‑SDC‑A和B在N=3、N=4的情况(分别对应NAS‑SDC‑A的堆叠深度为15、19,分别对应NAS‑SDC‑B的堆叠深度为14、17)。ENAS也分别设置N=3,4,5三种情况(分别对应层数为12,15,18),初始特征映射通道数F=20。从图10可知,3种网络在不同的堆叠深度时,检测精度均有一定的变化。NAS‑SDC‑B表现最稳定,在3种不同堆叠深度的检测精度均为99.6%左右。而NAS‑SDC‑A和ENAS随着堆叠深度的增加,其检测精度先有一定程度上升,后快速下降到99.3%左右。总体来看,NAS‑SDC‑B在3种堆叠深度下检测精度最高。
[0081] 图11展示了3种堆叠深度下的对比方法的网络参数量。3种网络随着堆叠深度的增加,其参数量均呈上升趋势。NAS‑SDC‑B的参数量上升趋势最为平缓,且在3种堆叠深度下都是最小的。NAS‑SDC‑A与ENAS的参数量相当,但NAS‑SDC‑A上升得更快。综合以上分析,NAS‑SDC‑B在N=2时参数量最小(约0.35M),检测精度第2(99.67%),NAS‑SDC‑A在N=3时检测精度最高(99.83%),参数量约为1.3M。
[0082] 相同或相似的标号对应相同或相似的部件;
[0083] 附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
[0084] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。