袁洪强,杜国锋,余泽禹,卫小龙
(1.长江大学石油工程学院,武汉 430100;2.长江大学城市建设学院,荆州 434023;3.长江大学电子信息学院,荆州 434023)
钢材在生产制造过程中不可避免地会产生一些表面缺陷,这些缺陷将会导致钢材的耐蚀性、耐磨性、疲劳强度等显著降低,并影响最终产品的质量。传统的钢材表面质量主要依靠人工检测,主观性强,劳动量大,耗时较多,不利于实时高效检查[1-2]。因此,开发准确高效的钢材表面缺陷全自动识别和检测方案很有必要。目前,基于机器视觉的表面缺陷装备已经在各工业领域广泛替代人工肉眼检测[3]。随着以卷积神经网络为代表的深度学习模型在诸多计算机视觉领域成功应用,不少基于深度学习的缺陷检测方法也得到了中外学者的大量研究,并被广泛应用在钢材表面检测等各种工业场景中。Yi等[4]基于对称环绕显著图和卷积神经网络提出一种端到端的钢带表面缺陷检测方法并利用东北大学发布的钢材表面缺陷数据集(NEU数据集)进行验证,实验结果表明该方法具有较高的缺陷识别精度。Guan等[5]通过使用特征可视化和质量评估的方法提出一种改进的损伤识别模型,与ResNet模型和VGG19模型相比能显著提高钢材表面损伤识别分类的精度。针对训练样本少和数据集不均衡的情况,Wan等[6]基于图像快速处理和迁移学习构建了一种改进的VGG19神经网络模型,大幅度提高了钢材表面缺陷检测的速度和精度。陈建强等[7]采用特征交叉融合的方法对单杆多框检测网络SSD (single shot multibox detector)进行改进,通过增强低层特征图的语义信息实现了热轧钢带表面缺陷的高效识别。杨莉等[8]通过设计调节机制并提出一种多任务结构对R-CNN模型进行改进,提高了网络的召回率和准确率,对钢材表面缺陷尤其是小缺陷有较好的检测性能。常江等[9]引入生成对抗网络扩充数据集并对轻量神经网络MobileNetV3进行改进,解决了训练样本不足的问题并在工业现场实现了带钢表面缺陷的实时分类。
随着神经网络模型的不断发展,为完成更复杂的任务,深度神经网络变得越来越深,计算量也越来越来越大,这些计算密集型和存储密集型的深度神经网络远远超出了移动端设备的承载能力[10]。在实际生产环境下,钢材产量较大且需要尽快检测,这对实时、高效及准确检测钢材表面缺陷提出了较高的要求。如何将神经网络模型部署在有限资源的硬件平台如手机等上面,通过降低内存成本和加速计算来实现工业现场实时准确检测是一个需要解决的问题。基于此,现提出一种可部署于移动端的轻量卷积神经网络模型MobileNetV3_small_tp,该模型是以MobileNetV3模型为基础,结合ResNet50利用知识蒸馏的方法得到的改进模型。经在微调后的NEU带钢表面缺陷数据集中训练和测试后,加载在手机端进行实际工况下钢材表面缺陷识别。该模型表现出良好的移动端适配性和流畅的运行速度,同时能实现准确高效的钢材表面缺陷识别功能。
MobileNet是目前最先进的轻量型目标检测网络之一,一经发布便引起了国内外研究人员的广泛兴趣。经过两个版本的迭代之后,2019年5月谷发布了MobileNet系列的最新版本MobileNetV3[11]。与之前版本相比,MobileNetV3既继承了MobileNetV1的深度可分离卷积结构(depthwise separable convolutions)和MobileNetV2的具有线性瓶颈的逆残差结构(the inverted residual with linear bottleneck),又根据MnasNet[12]引入了基于压缩奖惩结构(squeeze and excitation)的轻量级注意力模型,网络结构和运行效率得到进一步优化。
对一般的神经网络而言,在训练时随着网络的加深会出现梯度爆炸和梯度消失等情况,导致测试数据和训练数据的准确率变低,优化效果变差。为了解决这个问题,He等[13]提出一种基于残差块构建的ResNet模型,通过在网络中增加直连通道,允许原始输入信息直接传到后面的层中,保护信息的完整性。ResNet参数量相对较少,错误率低,训练效果突出。ResNet在PyTorch的官方代码中共有5种不同深度的结构,深度分别为 18、34、50、101、152。
为进一步优化钢材表面缺陷检测模型的结构,提升运行效率和实时检测准确率,现将收敛性更好的ResNet50作为teacher网络,将small版本的MobileNetV3作为student网络在数据集ImageNet[14]上进行训练,通过知识蒸馏[15]的方法对MobileNetV3进行模型改进。通过提高ResNet50模型softmax层的temperature参数获得一个合适的soft target集合,然后对要训练的MobileNetV3模型使用同样的temperature参数值匹配ResNet50模型的soft target集合,作为MobileNetV3模型总目标函数的一部分,以诱导其训练从而实现知识的迁移,其大致过程如图1所示。
经知识蒸馏过程后生成的模型MobileNetV3 _small_tp的部分网络结构如表1所示。
图1 知识蒸馏过程图Fig.1 Diagram of knowledge distillation process
表1 MobileNetV3_small_tp模型部分网络结构Table 1 Part of the network structure of MobileNetV3_small_tp
采用He等[16]制作的带钢表面缺陷数据集NEU作为目标数据集开展实验研究。NEU数据集包含有6种不同类型的缺陷,即轧入氧化皮(Rs)、斑块(Pa)、细纹(Cr)、点蚀(Ps)、夹杂(In)和划痕(Sc),每种缺陷包含300张分辨率为200×200的灰度图片。图2所示即为NEU数据集中所包含的6种典型带钢表面缺陷的部分示例图,每一列表示一种类型的缺陷。
考虑到由于相机性能和现场环境的影响,可能导致获取的钢材表面图片出现亮度变化、对比度变化和角度旋转和翻转,因而在模型训练过程中,采用表2中所示的概率参数随机调整数据集中图片的亮度、对比度、旋转和翻转情况,对NEU数据集进行增强以更好地模拟实际工况下钢材表面缺陷识别和检测。随机调整后的示例图片如图3所示。
图2 NEU数据集中6种表面缺陷示例图Fig.2 Sample images of six types of surface defect in the NEU dataset
表2 NEU数据集图片随机调整参数Table 2 Random adjustment parameters of images in NEU
图3 随机调整后的表面缺陷图片Fig.3 Pictures of surface defects after random adjustment
实验过程中,将NEU数据集中各类型钢材表面缺陷图片划分为训练集、验证集和测试集三部分,具体划分情况如表3所示。
首先,利用NEU中各类型缺陷的训练集中的图片对模型MobileNetV3_small_tp进行训练。训练时将数据集中的图片根据表2中的参数进行随机调整,训练的迭代论数为120轮,学习率为0.01,批大小为32。在每轮的训练过程中均保存模型一轮训练准确率acc1变化情况,并考察模型训练过程中的整体准确率和和损失情况。
表3 NEU数据集划分Table 3 NEU dataset division
其次,利用验证集对MobileNetV3_small_tp模型进行验证,通过验证结果检验MobileNetV3_small_tp模型识别钢材表面缺陷的有效性。
再次,利用测试数据集对MobileNetV3_small_tp模型的表面缺陷识别能力进行测试。
最后,将MobileNetV3_small_tp模型部署到移动端并对实际钢材表面图片进行检测,识别缺陷类型并检验移动端检测的效率和精度。使用的移动端设备为一台搭载安卓系统的手机,其主要配置为:CPU 2.3 GHz(8核),RAM 6 GB,GPU Adreno 512。
在模型训练过程中,先对模型进行测试性训练并记录acc1变化曲线以考察的模型的识别精度变化情况,如图4所示。从图4中可知,在第10轮训练中acc1的值达到最高,并在之后的训练中保持稳定。
图4 测试性训练过程中acc1变化情况Fig.4 acc1 variation during testing model training
图5所示分别为模型实际训练过程中一轮训练准确率acc1、学习率lr及损失loss随训练步长的整体变化情况,从图5中可知,在经过多次迭代后,模型预测排名第一的类别与实际结果相符的准确率acc1达到1且保持稳定。
为系统地研究MobileNetV3_small_tp模型对NEU数据集中6种类型的钢材表面缺陷识别情况,建立识别结果的混淆矩阵,如图6所示。
在该混淆矩阵中,纵坐标表示真实的缺陷类型,横坐标表示模型识别的缺陷类型,所有正确的识别结构都记录在矩阵的对角线单元中。根据表3可知本文提出的模型可行且具有较高的识别精度。
利用MobileNetV3_small_tp模型对测试数据集中的180张图片进行测试,总耗时45.82 s,平均每张图片耗时5.5 ms。据表4、表5中所列模型测试各项整体指标可知,MobileNetV3_small_tp模型在测试中表现良好,具有较高的识别精度和泛化能力。
图5 模型训练过程中特征指数变化曲线Fig.5 Characteristic index variation curve during model training
图6 模型测试结果混淆矩阵Fig.6 The confusion matrix of model testing results
表4 模型测试整体平均指标Table 4 Overall average indicators of model testing
表5 模型测试评估结果Table 5 Evaluation results of model testing
将MobileNetV3_small_tp模型部署到移动端并对实际钢材表面进行检测,部分识别结果如图7所示。
利用移动端检测实际钢材的表面缺陷时每张图片平均耗时24 ms,识别分类的准确率达到100%,显示了MobileNetV3_small_tp模型在移动端良好的适配性和高效性,且能实现对钢材表面缺陷的高精度分类识别。
图7 钢材表面缺陷移动端实际检测结果Fig.7 Actual detection results of steel surface defect via mobile device
为实现基于移动端的钢材表面缺陷快速精准识别,首先结合ResNet50和MobileNetV3的优势,利用知识蒸馏的方法生成了改进的轻量卷积神经网络模型MobileNetV3_small_tp。同时将NEU数据集用作目标数据集对MobileNetV3_small_tp模型进行训练和验证,并在训练过程按照一定概率随机调整NEU数据集中的图片参数,以便更加准确地模拟实际工况下获取的图片。然后将经过训练和验证的模型部署在手机端并对实际钢材表面进行检测。所提出的轻量卷积神经网络模型体积较小,能够部署于移动端流畅运行,且能实现钢材表面缺陷的高效率高精度实时检测,具有广阔的实际应用前景。