栗 琳 王 仲 吴秀丽
(①北京科技大学机械工程学院,北京 100083;②天津大学精密测试技术及仪器国家重点实验室,天津 300072)
钢球作为轴承的重要组成部分,其表面质量直接影响轴承的精度、性能和使用寿命[1]。微型钢球通常指直径在3 mm 以下的钢球,其在精密机械和自动化设备中有着较高的需求。由于生产和使用等原因,钢球表面的凹坑、锈蚀、磨损和孔伤等缺陷,会导致机械性能的劣化,甚至产生机器故障[2],故在出厂前要对其表面质量进行逐一检测。工业现场最常用的检测方法是人工检测,但其效率低下且准确率无法保证。随着钢球生产大批量化,传统人工检测方法难以为继[3]。此外,由于金属球产生镜像影响识别,微型滚动体的全覆盖展开也给系统结构设计增加难度。研究微型钢球表面缺陷的快速识别方法具有至关重要的实际意义。
许多学者采用无损检测方法,如涡流[4]、超声波[5]、声发射[6]和传统的机器视觉[7]。超声波探伤和涡流检测的方法检测速度慢、识别微小缺陷能力差;声发射法易受环境和接收传感器的位置影响,而且自动化检测不易实现;传统基于视觉的缺陷检测方法检测精度高、成本低,但它通常包含特征提取与分类器模型两部分,需要针对不同缺陷类型人工提取特征,对缺陷变化的适应能力差,难以应对实际生产环境[8]。
随着卷积神经网络(CNN)在目标检测领域的快速发展,基于深度学习的缺陷检测方法相比传统机器视觉具有更高效的图像特征提取能力,许多学者将该技术应用到各种工业场景中[9]。Yi L 等[10]采用CNN 对缺陷进行分类,分类准确率为99.05%。Ashour M W 等[11]将离散剪切变换(DST)和灰度共生矩阵(GLCM)相结合,并采用支持向量机分类器(SVM)区分6 种带钢表面缺陷。文献[12]提出基于CNN 的Ds-DenseNet 网络模型,用于带钢表面陷检测的深度神经网络模型算法。但这些算法实际受到一定的限制,例如为了追求更高的准确度,卷积网络算法的结构不断加深导致计算量增大和数据处理时间增长。如何改进高效的参数优化模型的同时,提高缺陷识别算法的实时性是需要进一步研究的问题。
在此背景下,本文利用学习迁移技术,提出了一种基于改进的AlexNet 和SVM 的卷积神经网络的微型钢球表面缺陷快速识别方法,并做了检测和分类系统的开发工作。目的是在高识别准确率的同时,尽可能地减少计算量,简化网络结构,使其能部署在计算设备中,应用于工业现场。
在AlexNet 网络结构基础上,本文提出AlexNet-SVM 模型,设计过程分为两个阶段。首先,在AlexNet 网络结构的基础上,删减卷积层,并保留FC7 提取的特征,以精简网络结构。将特征数量从51 529 个(初始特征)减少到4 096 个有效特征,减小模型算法整体的耗时和复杂性。其次,将特征放入SVM 模型分类器中,代替Softmax 分类器,以防止过拟合,提高模型泛化能力。
AlexNet 模型是由Alex Krizhevsky 设计的CNN模型[13],由于其网络相对简单高效,它也成为深度学习中的经典网络模型。该结构如图1 所示,共有8 层网络,包括 5 个卷积层、3 个最大池化层和3个完全连接层。该网络为每帧生成4 096 个二维特征向量,其中包含输出层之前隐藏层的激活。最后一个完全连接的层连接到1 000 个类,剩下的网络被视为特征提取器。AlexNet 模型输入图像经过预处理后尺寸为227×227×3,在卷积层1 中采用11×11 的filter。模型特点:①采用激活ReLU 函数,解决网络较深时梯度弥散问题,使用LRN 对局部的特征进行归一化;②使用Overlapping Max Pooling,避免平均池化时模糊化效果;③全连接层中使用Dropout 以避免过拟合。
图1 AlexNet 模型
SVM 是一种常用的机器学习算法,用于目标分类和识别。它通过在特征空间中找到一个超平面,将不同类别的样本分开,并且使离超平面最近的样本点到超平面的距离最大化[14-15]。钢球表面缺陷识别是非线性识别任务的一个典型例子。SVM 最大分割超平面的求解问题可以表示为以下约束优化问题,使用拉格朗日方法求解。
设K(xi,yi)为核函数,C为惩罚参数,为了满足核空间的分类要求,选择高斯径向基函数作为核函数。它可以表示为
式中:xi和xj为训练样本的特征向量;σ为控制高斯分布宽度的参数。优化问题的目标是找到权重向量w和截距b的最优集合,该集合能最大化分类边界和支持向量的间距,并最小化错分误差。
为了得到更精确的SVM 模型参数,在传统的网格搜索方法中,网格被均匀地划分,导致了较大的计算负载。本文设计5 重交叉验证的网格搜索算法对SVM 参数模型进行优化,算法原理为:首先执行具有大步长、宽范围的粗搜索,在最佳范围内,细化较小步长进行精细搜索,以确定惩罚系数和核参数的最佳参数范围。该算法步骤如图2 所示,首先,得到缺陷图像的特征,确定最优聚类数K,使用K-CV 算法和改进的网格搜索方法找到SVM 参数的最优解,并训练SVM 模。其次,对测试集进行预测,将来自模型的预测标签与预测数据的实际标签进行比较,以获得预测钢球缺陷的准确性。
图2 结合AlexNet 模型的网格搜索算法SVM 参数寻优
本文利用迁移学习技术,改进了卷积神经网络AlexNet 模型架构,同时使用SVM 分类器代替AlexNet 模型中的Softmax 分类器,提出AlexNet-SVM 模型,改进后的网络结构如图3 所示。该模型基于特征提取和分类两个阶段。
图3 提出的AlexNet-SVM 模型
(1)特征提取阶段:采用迁移学习技术,改进AlexNet 模型以识别微型钢球表面缺陷的新图像。具体改进的网络结构为:根据钢球缺陷检测的应用场景,删除5 个卷积层的后面3 个卷积层,通过保留模型的所有层直到全连接 FC7,获取FC7 层上的特征,通过实验可以得到该全连接层中能够获得代表所有图像的低级别的特征,其特征数量估计为4 096 个。另外,如果去掉所有的全连接层,网络的识别准确率会降低,因此,相比传统的模型,裁剪了AlexNet 网络中的FC8 层,并且不再通过其Softmax分类器,防止过拟合情况的发生。整体的特征数量从51 529 个(初始特征)减少到4 096 个。
(2)分类阶段:从FC7 全连接层获取的图像特征(4 096 个特征)输入到SVM 分类器模型中(包含6 个类别),以执行分类过程。
由于研究对象为直径小于3 mm 的微型钢球,本文自行制作实验数据集。钢球作为滚动体,不仅镜面反射会倒映周围物体的像,而且要检测整个球面的缺陷。本文设计了漫反射穹顶光源来减小镜像影响,同时采用两个CCD 相机分别安装在斜45°方向、钢球通过一维列滚动装置进行全表面展开的方法采集缺陷图像。实验装置如图4 所示,采集型号440c1205039-1.4、直径为1.5 mm 的微型钢球缺陷数据集来训练和测试分类模型。钢球分选装置结构原理如图5 所示,振动盘作为微型钢球的上料装置,钢球在V 形导轨上滚动并被CCD 采集,每粒钢球由两个相机采集的结果共同确认,并根据系统判别结果,分别由左右气嘴执行分选。对比传统机器视觉以两个物料盘相互搓动钢球滚动以实现全展开的装置[16-17],该检测系统采用一维球列向下滚动代替了复杂的二维展开的机械结构,检测速度从2 粒/s提升到4 粒/s。每粒钢球在视场内采集5 次,10 幅图像通过处理综合检测其结果,达到了100%全覆盖展开,检测可靠度大幅度提升。
图4 微型钢球表面缺陷采集与分选实验装置
图5 钢球分选装置结构原理图
该数据集包含5 类不同类型的表面缺陷以及合格球,缺陷种类包括开裂、凹坑、锈蚀、磨损和孔伤。共包括1 780 张图像,其中训练集和数据集样本各占50%,图6 显示了五类缺陷图像,其中,钢球图像中心的黑色圆形是反射的镜头图像。
图6 微型钢球表面缺陷图像数据集样本
实验的深度神经网络搭建在Tensorflow 深度学习框架上,运用Python 语言编程实现,CPU 为Intel Core i7,内存大小为32 GB,GPU 为NVIDIA GeForce GTX 1080Ti,操作系统为Windows 10。
将数据集应用于经典AlexNet 模型,与本文提出模型对比。将Softmax 分类器改为6,其余8 层网络结构不变,得到分类结果见表1。该模型能够正确对857 个图像进行分类,错误对23 张图像分类。将5 个孔伤、3 个凹坑、2 个磨损错误的分类为开裂,6 个锈蚀错误的认为是磨损,3 个开裂错误的分为凹坑,该模型实现了97.3%的准确率,开裂与其他几个类别显然没有区别开,没有达到理想分类目标。在经典AlexNet 网络模型应用中,对全连接层分别实验了其对分类精度的影响,以试图找出最佳的特征提取的全连接层。FC6 层的分类精度为99.10%,FC7 层的分类准确率为99.50%,而FC8 层的分类正确率为98.90%。因此,从AlexNet模型中提取特征的最佳层是FC7 层。此外,该层的选择将特征数量从51 529 个(初始特征)减少到4 096 个有效特征,减小模型算法整体的耗时和复杂性。
表1 经典AlexNet 模型的混淆矩阵
采用提出的AlexNet-SVM 网络模型对采集的样本进行训练和测试。图7 阐述了第一层卷积权重,展示了经过模型第一层卷积后的特征图像。第一层能够提供基本图像特征,包括边缘、斑点以及颜色信息。直接从第二层可以提取更为合适的图像特征。因此,本文提出模型中特征提取阶段的卷积层数为2。一共对900 张图像数据进行训练,880 张数据用于测试。
图7 第一层卷积权重
采用K-CV 算法和改进的网格搜索方法来确定最优SVM 参数。实验可得最优K=5,图8 使用大步长的粗略搜索获得的等高线图,其中x轴和y轴分别表示参数c和g以2 为底的对数值。轮廓线表示获得的缺陷识别精度。图9 是相应3D 视图,其中c和g都设置为[2-20,220],步长为0.9。最佳惩罚系数c为10.556 1,核函数参数g为0.870 55,最佳CV 精度为91.916%。在粗略选择的基础上,进一步精细参数搜索。从图10 中可以看出,c和g的范围缩小到[2-5,25],步长为0.2。图11 所示为三维视图,最优惩罚系数c为5.656 9,核函数参数g为1.414 2,最佳CV 精度为98.833%。
图8 大步长参数选择
图9 大步长3D 网格搜索精度
图10 小步长参数选择
图11 小步长3D 网格搜索精度
本文提出的AlexNet-SVM 网络模型结果的混淆矩阵见表2,采用混淆矩阵来评估分类器的性能。每一列代表当前类,每一行代表预测类。本文计算了准确度、精确度、召回率和F1 分数4 个指标。准确度表示分类器正确识别的比率,精确度表示分类器对每组已分类的正确案例进行分类的成功率,召回率表示分类器未将错误案例分类到已分类类别的另一类别(或组)的成功率。F1 分数代表准确度和召回率的和谐平均值。精确度越高,误检率越低,召回率越高,漏检率越低,所有指标计算如下:
表2 本文AlexNet-SVM 模型实验混淆矩阵
其中:TP、TN分别表示正样本预测为正样本的数量、负样本预测为负样本的数量;FP、FN分别表示正样本预测为负样本的数量、负样本预测为正样本的数量。
本文提出的AlexNet-SVM 模型性能评估对比结果见表3。由表3 可得,对比经典AlexNet 模型各类缺陷分类精度,该模型精度指标在98.86%~100%。对比改进前开裂与其他种类缺陷区分度差,即93.01%的分类精度,本文模型开裂的识别精度有显著提升,达到了99.43%。磨损的识别精度由93.41%提升至98.86%,识别率得到明显改善。在钢球缺陷检测中,召回率是非常重要的衡量指标,因为它强调不遗漏任何有缺陷的钢球,宁可错判,但不能放过缺陷球,也是企业检测钢球的出厂准则。因此,较高的召回值表明该系统更善于捕捉真实缺陷,降低了遗漏任何缺陷钢球的可能性。测试样本的召回率范围在98.86%~100%,对比改进前模型均得到提升。F1 分数范围在0.988 6~1,反映了该模型的有效性。因此,由实验分析可得该分类器的性能非常好。每种类型缺陷的识别率都显著提高,证明了本文方法的有效性和可行性。
表3 提出AlexNet-SVM 模型性能对比
在相同预处理后的钢球数据集和相同配置条件下,对文献[12-13]等多个模型进行对比实验见表4。该表记录了5 个网络的特征提取模型、分类器、分类准确率和单幅图像的平均时间。实验结果表明,本文提出的网络单次推理时间为7.8 ms,综合平均准确率和运算时间两个指标,更优于其他经典卷积神经网络。对比经典AlexNet 算法,SVM 代替FC的分类具有更好的泛化能力,同时精简网络结构,能够得到更优化的模型,准确度和运算速度都有很大改善,证明了所提出方法的优越性。
表4 网络模型对比
针对现有微型钢球表面缺陷检测问题,本文提出一种基于改进的AlexNet-SVM 卷积神经网络模型的快速识别方法。在AlexNet 网络结构的基础上,优化网络结构,删减后三个卷积层,从FC7 连接层中提取最重要的图像缺陷特征,并采用SVM 分类器代替Softmax,减少网络过拟合,提高模型泛化能力。在SVM 模型参数确定中采用了基于K-CV的改进的网络搜索算法,以寻求最佳参数。实验结果表明,对比文献采用的网络模型,本文提出的分类方法平均准确率为99.43%,精简网络结构后,模型的测试时间可达17.2 ms,综合性能更优于对比网络,能够满足钢球缺陷分类在工业现场部署的需求。由于缺陷样本量小,未来会考虑增加样本预扩充,研究更适合小样本钢球缺陷的无监督或半监督的模型算法。