金闳奇,陈新度 ,2,吴 磊,2
1.广东工业大学 机电工程学院,广州 510006
2.广东工业大学 广东省计算机集成制造重点实验室,广州 510006
表面缺陷检测一直以来都是工业制造中的重要环节,传统的检测方法往往需要大量的人力[1]。而随着机器视觉技术的不断发展,大量的研究表明机器视觉自动检测技术能在一定程度上取代人工,从而降低企业的生产成本,提高生产效率[2-5]。
最近几年有越来越多的学者提出基于卷积网络的缺陷检测方法,Ren 等人[6]提出基于卷积网络的缺陷自动检测框架。后续的缺陷检测研究开始朝着卷积网络层数越来越深的方向发展[7-10]。而随着网络深度的增加,模型的检测效果并没有变得更好,反而会出现退化现象。这其中有学者分析认为是更深的网络会伴随梯度的消失从而导致网络无法正常收敛[11]。也有研究者参考集成学习[12]、数据增强[13]、批归一化[14]、自适应加权池化[15]等方法提出了改进的卷积网络模型,已经在一定程度上缓解了这个问题,但依然不足以满足要求。受到残差和恒等映射思想的启发,He等人[16]提出了残差网络ResNet,通过将有参卷积层用来学习输入和输出之间的残差,实验证明残差网络能够在深度增加的情况下维持稳定的准确率增长,有效地避免了随着卷积网络中层数增加,模型准确度不升反降的问题。刘鑫童等人[17]将中值滤波和残差网络相结合,通过实验验证了使用跨层连接和残差学习能有效降低网络训练难度,提高检测准确率。关日钊等人[18]通过对残差网络中的特征提取网络进行混合尺度感受野融合处理,弥补了原网络对微小裂痕敏感度不高的缺点。
缺陷检测是一类极其复杂的模式识别问题,传统的基于单个分类器的方法往往难以获得较好的检测效果,而现如今大量的理论和实验已经证明多个分类器的集成往往能比单个分类器获得更好的准确率。潘兵等人[19]将级联方法和卷积网络相结合,提出了双网络级联卷积神经网络的设计,其实验表明级联的方法能使卷积网络提取出更具辨识性的特征。李亚可等人[20]提出了级联的卷积网络,一定程度上解决了单一网络去提取特征引起的算法泛化能力变弱的问题。
本文在ResNet的基础上提出级联残差网络MTResNet,采用B个残差网络的级联(Multiple)来代替最优残差网络的求解,即 MTResNet 将B个 ResNet 的 SoftMax 输出加权叠加在一起,然后作为最终分类结果输出,详细的结构定义在2.4 节给出。对于每个残差网络ResNet,其核心ResBlock结构设计如图1所示,ResNet各层级参数配置如表1 所示。本文实验中对比的传统CNN 方法的网络模型为表1中不包含ResBlock的ResNet。ResBlock的输入输出的尺寸和维度都是一致的,因此网络模型去掉ResBlock不会影响网络的前后层连接关系。
本文提出的级联残差网络同其他基于深度学习的目标检测方法都会遇到小样本问题。小样本问题就是说在实际的工业生产中,缺陷样本的类别多但是数量少,且同类缺陷差异较大,这就会造成直接应用深度学习方法进行缺陷分类的准确率低且训练损失函数不容易收敛。小样本问题意味着深度学习方法需要的底层数据实际上应该很多。
表1 ResNet各层级参数
朱玉莲[21]使用半随机子空间的LDA 方法验证了随机子空间方法配合其他方法能够在一定程度上解决小样本问题。Klare等人[22]使用原型随机子空间表明了随机子空间方法能够提高样本的特征表示。张永祥等人[23]采用协方差驱动的随机子空间方法用于解决模态识别问题,且从原理上证明了随机子空间方法的有效性。
本文引入RSM方法,将输入图像分为N个不相互重叠的子图像,并构建出B个随机子空间。每一个子空间都包含α⋅N个子图像,0 ≤α≤1 。用一个随机索引向量kb∈Zα⋅N生成随机子空间b(b=1,2,…,B),kb中的每一个元素都不重复,且元素值在1和N之间。图2展示了在原图像上生成的3个随机子空间。
图2 原图和随机子空间的3个实例
原图像I依据随机索引向量kb索引得到的α⋅N个子图像,最后拼接生成随机子空间f(I,kb),如公式(1)所示:
假设训练样本集的某个类别下有M∈Rm×n个样本。在随机子空间方法中,每个子图像的大小为d1×d2,将样本数量由M扩展为M×B,样本的维度由m×n变小为d1×d2×α⋅N,样本维数小于原空间而训练样本数增加。
缺陷图像会被三个不同的图像滤波器过滤,分别为MLBP[24-25]、DoG[26]、Gauss[27]。这些滤波器旨在帮助补偿同类图像之间的强度变化(例如不均匀的光照变化)和纹理变化,每个图像滤波器的效果示例如图3所示。这两个方面对于随机子空间(RSM)框架特别重要,对于残差神经网络的训练过程需要大量的样本,同时希望训练的样本在同类之间的差异尽可能小,不同类别的差异尽可能大,因此在样本上执行三个不同的图像滤波器能有效避免小样本事件的发生,同时增加图像的特征表现能力。
图3 三个滤波器效果
基于RSM的级联残差网络模型就是在每个随机子空间上构建一个残差网络分类器,最后采用级联的方式将各ResNet的结果进行融合以获得最后的决策。整个模型的构建如图4所示。
本文设计的RSM-MTResNet 模型对缺陷数据集进行实验验证,主要流程如下:
(1)利用图像滤波器(MLBP、DoG、Gauss)对原始缺陷数据集进行滤波增强。
(2)将图像增强后的数据集作为RSM-MTResNet的训练输入。
(3)RSM方法随机生成B个随机子空间,并初始化MTResNet。
(4)MTResNet 将训练好的B个高阶特征融合在一起后通过Softmax分类器检测分类。
本文采用了一个公共的缺陷数据集,NEU 表面缺陷数据集[28]。该数据集包含了热轧带钢表面缺陷的六种类型,包括裂纹(Cr)、夹杂物(In)、斑块(Pa)、点蚀表面(PS)、铁皮压入(RS)和划痕(Sc)。每一类缺陷有300个样本,缺陷图像的例子如图5所示。
图5 NEU表面缺陷图像示例
在缺陷检测结果中,可将缺陷测试样本集根据其真实类别与预测类别的组合划分为真阳性(true positive)、假阳性(false positive)、真阴性(true negative)、假阴性(false negative)四种情形,令TP、FP、TN、FN分别表示其对应的样本数。
本文采用分类准确率(Accuracy)、查准率(Precision)、查全率(Recall)和F1 值作为实验评价标准。分类准确率的计算公式为:
查准率和查全率越高,越能体现缺陷类别检测准确的数量越多,模型对于缺陷特征的提取和筛选能力越强。查准率和查全率计算公式为:
图4 RSM-MTResNet模型结构
查准率和查全率对于模型的评价都非常重要,而F1值定义为查准率和查全率的调和平均:
本文构建的RSM-MTResNet 模型训练方法采用的是有监督训练方式,数据集总共1 800张缺陷图片,将其随机打乱后,按照1∶2∶3 的比例分为训练集、测试集和验证集。训练集一共300 张图片,每个类别50 张,属于小样本训练。
RSM-MTResNet 方法中滤波器参数、RSM 参数和网络各层级参数设置如下:
(1)对于滤波器参数的设置,本文引入了三种滤波器,分别为MLBP、DoG 和Gauss 滤波器。其中,MLBP滤波器采用8个采样点,3×3邻域;DoG滤波器设置标准差为 1 和 2,15×15 邻域;Gauss 滤波器采用标准差为 2,3×3邻域。
(2)对于RSM方法,设置N为16,即将输入图像分为16个不相互重叠的子图像。设置B=30,即构建出30个随机子空间。随机索引向量kb∈Zα⋅N,其中0 ≤α≤1。
(3)对于网络各层级参数设置,学习速率(learning rate)为0.002,学习策略(learning policy)为step,小批量训练大小(batch size)为32,最大迭代次数为1 000。
如图6 给出的是RSM-MTResNet 方法在验证集上的分类准确率曲线和损失曲线。从图6可以看出,随着迭代次数的增加,模型的分类准确率不断上升,损失值不断下降,模型达到很好的收敛效果,并且在迭代次数400次达到99.8%左右,之后有微小的上下浮动,但不影响整体的收敛趋势。
图6 分类准确率曲线和损失曲线
为了验证本文方法所提出的RSM-MTResNet,本文通过在测试集上进行实验,对比传统CNN方法,同时也验证本文引入的级联(MT)方法、随机子空间(RSM)方法以及多图像滤波(Filters)方法对于分类准确率的提升效果。
从表2中可以看出与传统的CNN方法相比,当基础网络结构变为ResNet后,准确率由83.01%提高到92.48%,提高了9.47个百分点;在ResNet的基础上引入的MT方法、RSM方法以及Fileters 方法分别将分类准确率提升了1.5、2.5、1.18个百分点;最终,RSM-MTResNet的分类准确率为97.66%,比传统CNN方法的准确率高了14.65个百分点,这表明本文方法增强了网络的特征提取能力和识别能力。
表2 对比CNN分类准确率
实验使用混淆矩阵表示模型在测试集上的预测分类结果和实际分类情况,并且计算每个类别的查准率(Precision)和查全率(Recall)。表3为通过传统CNN方法得出的混淆矩阵,表4 为通过本文提出的RSMMTResNet 方法得出的混淆矩阵。对比表3 和表4 可以发现,CNN方法在个别类别上表现效果很差,比如夹杂物(In)类别上的查准率为60.6%,查全率为74.1%,而RSM-MTResNet 方法在夹杂物(In)类别上的查准率为92.9%,查全率为97.2%,相比CNN方法提高了32.3个百分点和23.1个百分点。
表3 CNN混淆矩阵
表4 RSM-MTResNet混淆矩阵
表5 为 CNN 方法和 RSM-MTResNet 方法对于每个类别的F1 值,因为F1 值为查准率和查全率的调和平均值,所以能反映出模型总体水平。从表5 中可以看出,RSM-MTResNet 方法对每个缺陷类别的F1 值均有提高,提高的范围在9.5~28.4个百分点之间。
表5 F1值对比结果 %
综上所述,可以看出RSM-MTResNet方法不论是在整体的分类准确率上还是在单个类别的查准率和查全率上均优于CNN 方法,尤其提高了较难识别的夹杂物(In)的分类准确率。
针对缺陷数据集中的小样本问题,本文提出了一种结合随机子空间(RSM)和级联残差网络(MTResNet)的缺陷检测方法。方法中采用单个样本分解出多个随机子空间,然后将其输入至MTResNet 模型进行训练,并融合了多个分类器的分类结果,理论上RSM 增加了单样本的数量,而MTResNet 提升了网络的特征提取能力。从实验可以看出,相对于现有的CNN方法,本文提出的RSM-MTResNet是更鲁棒、更有效的。但是本文方法所引入的RSM 方法是基于子空间方法的,所以出现如何选取合适的子块大小的问题,有可能通过聚类或者优化搜索等方法在一定程度上克服这个问题。