APP下载

基于DenseNet的带钢表面缺陷智能识别系统研究

2021-05-17郝用兴庞永辉

河南科技 2021年3期
关键词:迁移学习图像识别

郝用兴 庞永辉

摘 要:本文对带钢表面斑块、裂纹、夹杂等6种缺陷进行研究,利用DenseNet深度学习网络和PyQt5设计一种缺陷智能识别系统,可以实现带钢表面缺陷准确高效的识别。该识别系统在以Tensorflow为后端的Keras平台上搭建,采用迁移学习的方法对带钢表面的6种缺陷进行识别,训练过程中冻结基础模型DenseNet的顶层部分,利用数据扩充、添加BN层防止过拟合。最终模型在训练集上的正确率为99.33%,在测试集上每一类缺陷的正确率均超过97%,其间绘制出混淆矩阵。最后,搭建缺陷识别系统的GUI界面,实现带钢表面缺陷识别的可视化功能,提高用户体验。

关键词:缺陷检测;图像识别;迁移学习;DenseNet;GUI;PyQt5

中图分类号:TTH164;TP29文献标识码:A 文章编号:1003-5168(2021)03-0011-04

Research on Intelligent Recognition System of Strip Steel Surface

Defects Based on DenseNet

HAO Yongxing PANG Yonghui

(School of Mechanical Engineering, North China University of Water Resources and Electric Power,Zhengzhou Henan 450045)

Abstract: In this paper, six kinds of defects such as patches, cracks, and inclusions on the surface of strip steel were studied, and an intelligent defect recognition system was designed by using DenseNet deep learning network and PyQt5, which could realize accurate and efficient identification of surface defects of strip steel. The recognition system was built on the Keras platform with Tensorflow as the backend, which used the transfer learning method to identify the six defects on the surface of the strip, froze the top part of the basic model DenseNet during the training process, used data to expand and added a BN layer to prevent overfitting. The final model had a correct rate of 99.33% on the training set, and the correct rate of each type of defect on the test set exceeded 97%, during which a confusion matrix was drawn. Finally, the GUI interface of the defect recognition system was built to realize the visual function of surface defect recognition of strip steel and improve the user experience.

Keywords: defect detection;image identification;transfer learning;DenseNet;GUI;PyQt5

随着“中国制造2025”的提出,制造与检测的智能化成为加工制造业发展的必然趋势。为了满足日益增长的生产力需求,设计一种智能化的缺陷识别系统已迫在眉睫。深度学习作为人工智能的一種工具,其强大的数据表征能力令其发展迅速,它可以通过训练复杂的模型,学习数据的内在规律特性,应用范围广,准确度高。将深度学习应用于工业领域是当今时代的一大热潮,其具有强大的学习能力,可以通过训练自动提取图像特征,适用于不同的目标,泛化性强[1-2]。

鉴于深度学习的优势,本次研究利用DenseNet模型,以带钢表面缺陷为研究对象,利用迁移学习的方法搭建模型,实现带钢表面6种缺陷的识别。同时,利用PyQt5搭建GUI界面,实现调参及测试的可视化。

1 DenseNet模型简介

深度卷积神经网络在图像识别任务中取得了优异的成绩,一般由卷积层、池化层和全连接层组成[3]。本次研究以DenseNet网络为基础,实现带钢表面缺陷的识别。

DenseNet是一种具有密集连接的卷积神经网络,由一系列的Dense Block和Transition Layer堆叠而成。一个Dense Block中有若干层结构,每一层都由三个连续的操作组成,即BN(Batch Normalization)、ReLU、卷积。任意两层之间都有直接的连接,即网络每一层的输入都是前面所有层输出的通道合并的并集,而该层所学习的特征图直接传给其后面所有层作为输入[4]。

这种形式最大限度地完成了信息传递,实现了特征复用,有效地缓解了梯度消失的问题。与传统的网络相比,特征复用使DenseNet无须重新学习冗余的特征图,有利于模型的训练。但是,每一层都存在通道合并操作,使得输出时通道数很大,而Transition Layer结构利用池化操作将通道数降低至指定标准,减少了参数数量,在一定程度上缓解了过拟合问题。本研究选用DenseNet-201作为基础模型。

2 缺陷识别模型的迁移学习

迁移学习是把已训练好的模型参数迁移到新的模型以帮助其训练,可有效降低训练成本。缺陷识别模型的迁移学习主要包括以下几个步骤:数据集的准备、模型设计以及模型训练[5]。具体流程如图1所示。

2.1 数据集的准备

试验采用的数据来自某大学带钢表面缺陷数据库,该数据库收集了6种典型的热轧带钢表面缺陷,即轧入鳞片(RS)、斑块(Pa)、裂纹(Cr)、凹坑表面(PS)、夹杂(In)和划痕(Sc)。数据库包括1 800张灰度图像,涵盖了6种典型表面缺陷的300个样本。

数据集的质量直接决定模型性能的好坏,所以要对数据进行预处理。首先,按照4∶1的比例把数据集分为训练集和测试集,得到1 440张图片组成的训练集;然后,对训练集的数据进行扩增,以满足深度学习对数据量的需求;最后,综合采取多种措施,如对原始图像数据进行水平翻转和垂直翻转、改变对比度等,达到数据扩充的目的,最终得到10 080张训练集图片,其中每个类别有1 680张图片,保证了数据的均衡。

2.2 模型设计

Keras的应用模块提供了带有预训练权值的深度学习模型。这些模型在ImageNet数据集上进行预训练得到的权重可以用来进行预测、特征提取和微调。人们可以调用应用模块下载训练好的DenseNet-201作为基础模型,接着对模型的分类器和结构细节进行设计。缺陷识别模型的结构如表1所示。首先创建一个输入层,将图片resize(调整尺寸)至224×224的大小,然后将其输入带有预训练权值的DenseNet-201模型中。为了使模型更好地符合当前的识别任务要求,对DenseNet-201的输出做全局平均池化操作后,连接一个1 024个神经元的全连接层。为了缓解过拟合情况,在全连接层后增加一个BN层,最后连接用于分类处理的Softmax函数。

BN层又被称为批量标准化层,它的作用是将模型上一层的输出数据处理为均值等于0、方差等于1的数据分布,再送入下一层进行处理。为了弥补标准化对数据表达特征能力的影响,本研究引入了可学习的参数[γ]、[β],相关计算公式为:

[yk=γkxk+βk]                               (1)

式中,[xk]为第[k]层所有神经元的输出数据归一化处理之后的结果,作为BN层的输入;[yk]为BN层的输出结果,将参与后续神经网络的计算。

参数[xk]的计算公式为:

[xk=xk-ExkVarxk]                              (2)

式中,[xk]为第[k]层神经元的输出数据;[Exk]、[Varxk]分别为输出数据的均值和方差。

對于第[k]层来说,每一个神经元对应一对参数[γ]、[β]。让标准化后的数据恢复模型学习到的特征分布,同时缓解模型的过拟合现象。

Softmax函数是多分类问题中最后一步的输出处理,为归一化指数函数。将每一个输出结果映射为0到1的概率,进行分类,同时又保证所有输出信号的和为1。

2.3 模型训练

带钢缺陷识别模型的搭建、训练以及测试均是在以Tensorflow为后端的Keras平台上进行的。硬件环境为Inter(R)Xeon(R)Silver4116CPU@2.10GHz,本研究利用Anaconda在Windows10 64位系统下配置Python3.6的虚拟环境。

在迁移学习中,为了让模型更加符合带钢表面缺陷的图像数据,通常在预训练模型的基础上进行微调。深度学习网络中的前几层得到的特征是比较基础的边缘、角点特征,适用于全部任务;而网络层数越高的层和数据库全局信息联系越紧密。本试验中,预训练模型DenseNet-201共有706层,冻结顶层的606层卷积层,训练剩下的卷积层和全连接层,整个模型一共有20 299 334个参数,冻结了14 742 912个参数,可训练的参数量为5 556 422。

值得说明的是顶层被冻结的606层中包含的BN层。BN层使得深度神经网络训练过程中每一层网络输入都保持相同的分布,减少了过拟合并具有轻微的正则化效果。在迁移训练中,layer.trainable参数可以控制卷积层的参数是否可变,但BN层的参数是由K.learning_phase的值控制的。在默认的情况下,BN层在迁移学习中的设置为预测模式,导致BN层中的均值[Exk]和方差[Varxk]不会更新。因此,在用训练好的模型测试时,BN层使用的均值和方差仍是预训练时使用的数据集的值,而不是来自带钢表面缺陷的数据集,导致模型在测试数据集上的准确率会大大降低。所以,含有BN层模型的迁移学习在冻结模型权重时将BN层设定为训练模式,可以提高模型的准确率。

模型训练过程中,较大的学习率可以加快训练速度,但会使模型找不到最优解。因此,设置初始的学习率为0.001,当检测到测试集的准确率在3个训练周期内不增加时,学习率会下降至原来的一半。正则化系数设置为0.000 1,Batch Size设置为16,将所有数据训练一次时,要训练630次,训练周期数为60,一共迭代37 800次。同时,为了防止因过度训练导致过拟合,如果检测到准确率在5个周期内没有提升,就可以提前结束训练过程。设置好训练参数,就可以训练模型。

模型训练过程中,从训练集中随机抽取10%的数据作为验证集。验证集和训练集的损失值和准确率是判定模型性能的重要指标,损失值是模型预测值与真实值的差距,准确率为训练过程中每次迭代后测试的结果。训练过程中,训练集上的损失值与准确率的变化情况如图2所示,从图中可以看到,第20个周期时准确率已经达到99%左右,第21个周期时训练停止。

模型在训练集上的损失值为0.134 4,准确率为99.33%。

2.4 模型评估

混淆矩阵是一种在深度学习中常用的辅助工具,有助于人们直观地了解分类模型在每一类样本里面的表现,常作为模型评估的一部分。

在识别任务中,查准率([Precision])、召回率([Recall])以及F1-Score指标是评估模型性能常用的指标。查准率是在模型预测为正的所有样本中模型预测对的比重。召回率是在真实值是正的所有样本中模型预测对的比重。而F1-Score指标则综合了查准率与召回率的产出的结果。F1-Score的取值范围为0~1,1代表模型的输出最好,0代表模型的输出结果最差,其计算公式为:

[F1-Score=2×Precision×RecallPrecision+Recall]               (3)

在多分类的混淆矩阵中,查准率为主对角线上的值除以该值所在列的和;召回率等于主对角线上的值除以该值所在行的和。人们可以从混淆矩阵的结果直观地获得各个参数的值,并根据数据制作统计表。混淆矩阵数值如表2所示。

从表2可以看出,评估模型使用的数据集包括56个Cr样本、68个In样本、68个Pa样本、77个PS样本、89个RS样本以及90个Sc样本,从模型对每一类缺陷的F1-Score值来看,多个指标都在0.98上下浮动。

3 缺陷识别模型的GUI实现

本文用PyQt5设计缺陷识别模型的用户交互界面,实现测试过程调参和图片的可视化。设计的缺陷识别系统包括两个界面,即登录界面和测试界面。登录界面是展示给用户的第一界面,主要功能是测试界面的入口。测试界面可以利用训练好的模型进行图像识别,明确图片属于哪一类缺陷。测试界面中设置了两种测试方式,即单张检测和多张检测。测试界面的设计效果如图3所示。

4 结语

本文基于深度学习理论,利用DenseNet模型和迁移学习方法搭建带钢表面缺陷识别系统。为防止过拟合,其间对数据进行扩充处理,设置学习率变化,并在预训练权重的基础上添加BN层和Softmax层。试验证明,模型训练集达到99.33%的识别正确率。DenseNet深度学习模型对带钢表面6种缺陷的识别准确率均超过97%,结果表面该方法在工业方面有很高的应用价值。本文设计了基于PyQt5的GUI界面,界面简洁易懂,操作方便,可以更好地满足用户需求。

参考文献:

[1]陈文辉,蔡妹姝,严松,等.基于深度卷积神经网络与迁移学习的鱼类分类识别[J].福建师大福清分校学报,2019(5):30-38.

[2]王占云,闫志华.一种基于深度学习的产品分类统计方法的研究[J].机械设计与制造,2020(3):163-166.

[3]林志玮,丁启禄,黄嘉航,等.基于DenseNet的无人机光学图像树种分类研究[J].遥感技术与应用,2019(4):704-711.

[4]高建瓴,王竣生,王许.基于DenseNet的图像识别方法研究[J].贵州大学学报(自然科学版),2019(6):58-62.

[5]廉小親,成开元,安飒,等.基于深度学习和迁移学习的水果图像分类[J].测控技术,2019(6):15-18.

猜你喜欢

迁移学习图像识别
基于计算机视觉的图像识别技术研究
人工智能背景下图像识别技术浅析
基于字典学习的正则化鲁棒稀疏表示肿瘤细胞图像识别
奇异值分解与移移学习在电机故障诊断中的应用
图像识别交互系统
一种基于迁移极速学习机的人体行为识别模型
大数据环境下基于迁移学习的人体检测性能提升方法