黄如兵,赵涟漪
(1.安徽职业技术学院信息工程学院 安徽 合肥 230011;2.安徽水利水电职业技术学院机械工程学院 安徽 合肥 231603)
钢材在生产与运输过程中,由于生产工艺、生产环境、运输条件等影响,容易出现划痕、斑块、点蚀表面和内含物等缺陷。这些缺陷严重影响了钢材品质和使用安全,因此,对钢材缺陷进行智能检测、识别、筛选将有助于进一步提高钢材产品质量[1]。钢材缺陷目标检测技术的发展,分别经历了人工识别检测、光电技术检测、人工智能机器视觉检测3个主要发展阶段[2-4]。目前,随着人工智能技术的发展,国内外大力推进智能制造产业发展,人工智能技术的应用越来越广泛,采用机器视觉检测实现钢材缺陷的精准定位和识别的检测技术已逐渐成熟。
伴随着卷积神经网络的应用与发展,基于卷积神经网络特征提取方法的目标检测主要分为两种类别,第一类是以区域卷积神经网络Faster R-CNN系列为代表的二阶段目标检测器,即先选择候选区域再进行识别;第二类是以YOLO系列网络模型为代表的基于回归的单阶段目标检测器,即同时识别和定位[5-7]。本文基于卷积神经网络的YOLOv4模型算法能够有效实现钢材缺陷的检测和定位。钢材缺陷检测系统由电机控制模块、工业相机、工控机服务器、网络通信搭建而成,使用工业相机采集缺陷图像数据构建数据集,基于YOLOv4完成图像预处理、图像标注、网络模型训练及模型应用分析。
钢材缺陷检测系统的硬件结构主要包括工控机服务器、电动控制模块、工业相机和网络通信模块。电动控制模块传送钢材至检测系统工业相机视野,工业相机和电动控制模块相互协作,能完成钢材图像的实时采集与在线检测,检测系统硬件结构如图1所示。根据钢材产品的特点及图像采集要求,使用工业相机需搭载LED光源,图像数据通过工业相机专用数据线实时采集并传输至工控机服务器进行运算处理。
图1 检测系统硬件结构
钢材表面缺陷按缺陷类别进行分类,按照划痕、斑块、点蚀表面、内含物等4种缺陷情况分为4类,按照分类制作标注标签:划痕(Sc)、斑块(Pa)、点蚀表面(PS)、内含物(In)。使用工业相机对缺陷钢材的缺陷部位采集照片,结合NEU-CLS数据集,构建钢材缺陷图像数据集。综合考虑生产环境光线变化等因素,分别在早、中、晚等时间段,使用检测系统工业相机对缺陷钢材表面缺陷位置进行图像采集,采集和收集得到缺陷图片1104张,筛选掉镜头遮挡、曝光严重、过暗、反光情况、无相关目标等情况图片,最后保留1000张用于制作数据集。打乱数据集顺序,选择800张作为训练集,剩下200张为验证集。
基于YOLOv4深度学习模型需要提供大量的缺陷标注数据,才能防止因训练集样本过少,避免模型过拟合,充足的数据能有效提高模型的泛化能力和鲁棒性。在图片数据预处理中,使用了图像翻转变换、噪声扰动、图片缩放、图像亮度调整、随机擦除以及Mosaic数据增强函数进行数据扩展,将原采集的图像数据扩充至3倍,训练集数据达到2400张。训练集数据的增强,能丰富检测目标的形态,有效避免模型训练过拟合。通过编程实现图像的批处理,将训练集图像尺寸统一改为416*416分辨率大小,再使用LableImg标注工具[8],在每张图片上按照斑块(Pa)、点蚀表面(PS)、内含物(In)、划痕(Sc)分类标签进行标注,将图像标签信息、坐标信息保存到XML文件中。
YOLO卷积神经网络模型是单阶段目标检测器,将任务划归为单步实现的定位与分类的回归问题。YOLOv4网络模型引用了YOLOv2、YOLOv3中的各种优化策略,在主干网络、网络正则化、特征集成、激活函数、数据增强、模型感受野、损失函数等方面都有着不同程度的优化,YOLOv4网络模型如图2所示。
图2 YOLOv4网络模型结构
YOLOv4网络模型的主干网络是CSPDarkNet53,是在Darknet53主干网络的基础上,引用CSPNet网络结构所构成的Backbone结构。CSPDarknet53包含DarkNet卷积块、激活函数Mish、5个CSP大残差模块,其中DarkNet是一款轻量级深度学习框架,由C语言和CUDA编写的开源框架,执行效率高。为了提高YOLOv4检测的准确度和泛化性,主干中运用了平滑的激活函数Mish函数,激活函数Mish的表达式见表达式(1),mish激活函数没有边界,在每一点连续平滑且非单调性,梯度下降计算效果更好。CSP(Cross Stage Partial)能有效提升CNN学习能力,每个CSP模块都包含3×3的卷积核。输入图像大小为416×416,经过5次下采样,416× 416的输入尺寸每经过一个Resblock_body的CSP残差块,尺寸就递减一倍,直至13×13,通道数增至1024。
f(x)=xtanh(ln(1+ex))
(1)
经过主干网络的特征提取可得到13×13尺寸的特征图,经过3×3的卷积核后进入SPP最大池化层,经堆叠和卷积后,将结果13×13卷积结果及52×52,26×26特征图输入PANet。CSPDarkNet53的13、26、52尺寸输出经过空间金字塔池化得到特征层,通过卷积、上采样、特征融合堆叠,向高尺寸特征递进,再通过卷积、下采样、特征融合堆叠,向低尺寸特征递进,得到不同尺度下的特征信息。最后再通过YOLO Head(13、26、52共3种尺寸)整合通道,计算损失,根据先验框3个特征层进行预测,再由非极大值抑制方法进行处理,对先验框调整得到最终的预测框。
YOLOv4在YOLOv3损失函数基础上使用CIoU(Complete Intersection over Union)损失替代MSE (Mean Square Error)损失作为回归框预测损失。相较于传统目标检测中使用的MSE损失,CIoU解决了预测框与实际框的位置关系,避免了损失函数的发散问题。YOLOv4的损失函数LOSS由位置损失LCIoU、置信度损失LCon、分类损失Lcls构成,见表达式(2),损失函数计算表达式见式(2)至(7)。
LOSS=LCIoU+LConf+Lcls
(2)
(3)
(4)
(5)
(6)
(7)
工作站服务器采用TensorFlow 2.1.0深度学习框架,Keras深度学习框架,CPU为 Intel i7-4790,显卡为 NVIDIA RTX2080Ti 11 G,内存8 G,CUDA版本10.2,CUDNN版本7.6.5,OpenCV 4.3,Python3.7.8。实验数据集包含2400张图像,每类缺陷各600张,随机选取80%的缺陷图像训练,20%缺陷图像验证。输入经图像变换后的416×416尺寸图片,使用labelImg软件对训练集图像数据进行人工标注,标注后生成对应的xml格式文件,如图3所示。xml格式文件包含了目标在原图中的坐标及位置信息,xml格式的标注文件不能被YOLO模型直接使用,需要编写代码实现xml格式到txt格式文件转换,代码如图4所示,将图3中的坐标及位置信息转换成YOLOv4所需要的格式,数据包括:标注类别、中心点X坐标、中心点Y坐标、标注框宽比例、标注框高比例等信息,通过代码可实现数据的批量转换处理。实验过程中要检查图片、标注信息是否正确。
图3 labelImg标注的xml文件格式
构建基于YOLOv4的网络模型,设置参收,即可启动训练。实验中训练批次大小设置为16,权重衰减率设为0.0005,训练轮数设为100次,学习率设为0.001,使用随机梯度下降算法优化。评估模型重要指标是损失值,使用可视化工具绘制训练过程的损失值变化曲线如图5。图中,current avg loss为损失值,一般越小模型效果越好,iteration为训练次数,系统每隔1000次自动保存一次weight后缀的权重文件。approx time left为预计训练时间,一般趋于稳定或在某个数值上下波动时,表示模型训练已经趋于稳定,再增加时间训练意义不大。由图5可知,损失值在0 ~4000次迭代时波动和振荡幅度较大,曲线呈明显下降趋势。4000 ~ 50000次迭代区间,由曲线可见其损失值下降较为缓慢,模型训练趋于稳定。50000次迭代之后,模型损失值稳定在0.1附近小幅波动,迭代54000次时停止训练,其损失值为0.1045。
图4 xml格式到yolo格式转换代码
图5 模型训练损失函数变化曲线
将模型集成于检测系统,电动控制模块将缺陷钢材或缺陷钢材图片传送置于工业相机下实现在线检测,计算平均识别正确率来衡量模型性能,TP表示正确分类的正例,FP表示原本负例错分正例,FN原本正例错分负例,由公示(8)和(9)可计算得到精确率P和召回率R。
(8)
(9)
表1 钢材缺陷图像测试结果
模型训练结束后,利用迭代54000次导出的模型权重文件导入检测系统,进行钢材缺陷目标检测验证,将缺陷钢材及缺陷钢材图片置于工业相机下实现在线检测,结果如表1所示,平均每张图像检测耗时0.0358 s,检测的速率达到23.8 fps,能够适用于企业生产环境下的实时检测。Y0L0v4算法对于缺陷斑块patches(Pa)识别率为96% 、点蚀表面pitted_surface(PS)识别率为95.7% 、内含物inclusion(In)识别率为93.8% 、划痕scratches(Sc)识别率为97.9% ,对内含物斑块patches(Pa)、划痕scratches(Sc)均得到较高的正确识别率,对4种缺陷目标的检测准确率都比较高、识别定位效果良好,具有高可靠性。针对部分图片识别、定位不精准的原因,与训练集标注精确度有一定关系,检测环境光线以及缺陷本身是否明显都有一定关系。
为准确评估YOLOv4检测算法的性能,另外选用了YOLOv3、Faster R-CNN、SSD模型检测,3种经典目标检测算法的平均正确识别率分别为:YOLOv3平均正确识别率81.25%,Faster R-CNN平均正确识别率90.13%, SSD平均正确识别率70.57%,横向对比几种算法可见,基于YOLOv4卷积神经网络的钢材缺陷检测识别平均识别正确率95.8%具有较为明显的优势,基于YOLOv4网络模型的钢材缺陷检测识别效果如图6所示。
图6 基于YOLOv4网络模型的钢材缺陷检测识别
本文设计了基于 YOLOv4卷积神经网络的钢材缺陷检测系统,根据钢材产品中易出现的斑块、点蚀、内含物和划痕等缺陷特征情况,选用工业相机、工控机服务器、电动控制模块等构成检测系统硬件结构, 采用 YOLOv4卷积神经网络模型实现了钢材缺陷的识别、定位。相比较于其他几个算法模型,YOLOv4 检测算法达到了 95.8%的检测准确度和23.8 帧/s的检测速度,具有较明显优势。实验表明基于 YOLOv4 算法对缺陷的识别精度高,定位准确,可达到实时在线检测的目标要求。目前对钢材缺陷数据局限在斑块、点蚀表面、内含物、划痕等4类缺陷,在以后研究中将通过实时采集、收集等方式扩充钢材缺陷数据集,进一步优化网络模型,实现对更多缺陷的精确检测和缺陷定位,促进钢材缺陷检测向智能化方向发展。