APP下载

基于YOLOv5的工具表面缺陷检测系统

2023-10-30焦俊祥金若男李慧姝

现代计算机 2023年16期
关键词:精度表面目标

焦俊祥,金若男,李慧姝,方 武

(苏州经贸职业技术学院信息技术学院,苏州 215009)

0 引言

目前,已有学者开展了工具表面缺陷检测的相关研究,研究中针对不同的应用场景使用了不同的技术,例如:磁粉探伤、渗透探伤、涡流检测、超声波检测和基于深度学习算法的机器视觉等技术。近年来,随着深度学习各种算法的发展,很多新的目标检测模型被提出,其中一些模型由于独特的设计和出色的性能被广泛应用在各个领域,例如Faster R-CNN 算法、R-FCN 算法和SSD 算法等,但这些算法的性能提升主要依赖于大型数据集和前期样本标注,对于工具表面的缺陷识别不太友好。本文使用的是基于深度学习的机器视觉方法,该方法在工业应用中包括三个主要环节:数据标注、模型训练与模型推断,使用的算法为YOLOv5网络算法,YOLOv5单阶段目标检测算法,该算法的优势主要有两点:①在输入端完成了数据增强,因此对训练数据集的要求不会太过苛刻;②该算法模型在硬件上部署方便,对于表面缺陷检测有较强的适应性与实用性。通过使用公开的数据集NEU-DET 数据集与YOLOv5 训练出来的模型,可以准确识别表面的各种缺陷,如划痕、凹坑等,如图1所示,该实验结果充分证明了基于深度学习的缺陷检测方法在工业中的可行性。

图1 使用NEU-DET数据集和YOLOv5网络算法对工具表面缺陷进行识别

1 研究进展

目前,国内针对不同场景下的表面缺陷检测的方法有许多种,例如:王攀峰等[1]提出的Q355B钢板截面磁粉探伤;王赫等[2]通过荧光渗透探伤测量裂纹长度;周庆祥等[3]使用以常规涡流检测为基础的多通道涡流检测技术,该技术凭借检测灵敏度高、检测范围大等优势广泛应用于金属构件的检测;孙贺斌等[4]通过超声波检测结合铝合金焊缝声学特征验证了超声波检测技术在铝合金焊缝缺陷方面的实用价值;崔国宁等[5]通过卷积神经网络使用机器视觉技术实现了对输油管道缺陷尺寸的智能识别;路生亮等[6]通过改进 Faster R-CNN 算法,解决了对热轧钢板表面小目标识别精度差的问题,使其检测速度与识别精度有了很好的提升;耿朝晖等[7]改进Faster R-CNN 算法,提高了PCB板缺陷检测的效率,在增强后的数据集上面取得了96.65% 的 mAP 值;楚雅璐等[8]改进 SSD 算法,解决了因形变引起的服装图像识别准确率低的问题,与原SSD 模型相比其平均预测精度mAP值提升可达3.63%;杨耀[9]认为可以采用机器视觉技术来完成裂纹磁痕判别,通过改进Mobile Net V3 模型实现对裂纹磁痕的识别,查全率96.5%,查准率91.7%,平均单图识别速度1.7 s;易文渊[10]使用一种改进的Canny 边缘检测算法来提取缺陷图像,并设计了一种基于UNET 和ResNet 的二阶段深度学习网络算法来检测轴承部件外壁缺陷;葛钊明等[11]改进YOLOv5 的特征检测算法,引入卷积注意力模块并改进了损失函数,在检测速度不变的情况下,改进后的模型在测试集上的mAP 提高了1.2%,召回率提高1.5%;李衍照等[12]提出一种Mosaic+Mixup的数据集增强方法,引入轻量型的GhostNet 网络代替YOLOv5主干网络中CSP1模块中的残差模块,改进的YOLOv5的平均精度均值(mAP)达到96.88%,单张图片检测时间不超过50 毫秒。高慧芳等[13]提出一种基于DCGAN 与YOLOv5s的缺陷识别方法,设计了深度卷积生成对抗网络(DCGAN)扩充缺陷数据集,并优化了YOLOv5s 网络的C3 模块,优化后YOLOv5s 算法的mAP 值、精确率、召回率分别提高到85.4%、85.2%、83%。

2 YOLOv5

2.1 数据集

YOLOv5的数据集包含有六种典型工具的表面缺陷,如图2 所示,即轧制氧化皮(RS)、斑块(Pa)、开裂(Cr)、点蚀表面(PS)、内含物(In)和划痕(Sc)。该数据库包括1800 个灰度图像:六种不同类型的典型工具表面缺陷,每一类缺陷包含300个样本。对于缺陷检测任务,数据集包含了注释,指示每个图像中缺陷的类别和位置。如图3所示,对于每个缺陷,黄色框是指示其位置的边框,绿色标签是类别分数。

图2 数据集中的六种典型工具表面缺陷

图3 数据集对六种典型缺陷的标注

2.2 YYOOLLOOvv5单阶段目标检测算法

现阶段目标识别的主流算法有:R-CNN、YOLO、SDD 等,其中YOLO 算法主要应用于快速目标检测,如自动驾驶、无人车等这类需要快速对所获得的图像和视频进行识别并且反馈,以供控制系统做出迅速响应的场景。YOLO采用一步到位的方式,即输入整个图片,直接输出为目标识别的区域和目标类型。为了降低训练好的预测模型在硬件上的部署难度,并且考虑实际应用中环境因素的多样性,这里采用了YOLOv5 算法,使用的预训练模型为由YOLOv5官方提供的 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,这四种网络结构在COCO数据集下的性能各有优劣:YOLOv5s 网络最小,速度最快,AP 精度也最低。另外三种网络算法比YOLOv5s网络结构复杂,AP 精度提升,但计算速度也越来越慢,如图4所示。

图4 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5m预训练模型在COCO数据集的性能表现

YOLOv5的网络结构主要分为四个部分:输入端、Backbone(主干网络)、Neck 网络和Prediction(输出端)。

(1)YOLOv5 在输入端进行了Mosaic 数据增强、自适应锚框计算、自适应图片缩放。

(2)YOLOv5 在 Backbone 里面有两个结构,分别为Focus 结构与CSP 结构,其中Focus 里最重要的是切片操作,而CSP 结构相较于YOLOv4版本主要是设计了两种CSP 结构,以YOLOv5s网络为例,CSP1_X 结构应用于Backbone 主干网络,另一种CSP2_X结构则应用于Neck中。

(3)YOLOv5 在 Neck 里采用了 FPN+PAN 结构,相较于YOLOv4 的Neck 中采用的都是普通的卷积操作,YOLOv5 的Neck 结构中采用借鉴CSPNet设计的CSP2_X结构,加强网络特征融合的能力。

(4)YOLOv5 在Prediction(输出端)进行的操作有:Bounding box 损失函数、nms 非极大值抑制。其中,nms 非极大值抑制是在原有的CIOU_Loss 基础上添加了DIOU_nms,主要作用是对一定区域内多个被重叠遮挡的目标进行检测,CIOU_Loss 作为目标Bounding box 损失函数,计算过程如式(1)、式(2)所示:

2.3 建立数据集并使用YYOOLLOOvv5进行模型训练

数据标准标注软件使用labelimg库对图片中的目标位置进行人工标注,可以得到一个包含有图片的标签、标注框的中心坐标、标注框的相对宽与高信息的标签文件:“.txt”(如图5 所示)。将原始图片数据和人工标注的标签共同作为原始数据集,包含训练集、验证集和测试集。通过官网下载预训练模型YOLOv5s.pt 对本地数据集进行训练,训练中通过更改Weights、cfg、data、epochs、batch-size 等一系列变量针对不同训练集和验证集中的目标类别数目、识别目标名称进行训练,最终得到两个模型文件:best.pt与last.pt,获得了模型文件的可视化数据:识别目标的类别和数目、模型的深度、模型的宽度、anchors、Backbone、head。

图5 对目标缺陷在labelimg库中使用的人工标注方式示意图

3 模型性能评估

首先计算了训练后模型的混淆矩阵,如图6所示,这个矩阵可以方便地看出机器是否将两个不同的类混淆了(比如说把一个类错当成了另一个)。

图6 模型的混淆矩阵

进一步地,对训练后的模型预测单一类的准确率P_curve 进行了计算,如图7(a)所示。当confidence 越大的时候,类别检测越准确。对召回率(查全率)和置信度之间的关系R_curve 进行了计算,结果显示置信度越小时,类别检测得越全面,如图7(c)所示。还计算了训练后模型的均值平均精度PR_curve,结果显示精度越高,召回率越低,如图7(b)所示。所以只有曲线尽可能的地接近(1,1)点,才可以在准确率很高的前提下,尽可能检测到全部的类别。本文还计算了模型的F1_curve,F1-score 是分类问题的一个衡量指标。F1-Score 的值从0 到1,1 是最好,0是最差。模型评估结果如图7(d)所示。

图7 模型的P曲线、R曲线、PR曲线和F1分数曲线

接着分析了模型的数据指标,如图8 所示,其中,train/box_loss:预测框与真实框的损失函数,值越小预测框的准确率越高;train/obj_loss:目标检测损失,值越小目标检测越准;train/cls_loss:分类损失均值,值越小分类越准;metrics/precision:精度(找对的正类/所有找到的正类);metrics/recall:召回率,本应该被找对的正类;val/box_loss:验证集边缘损失;val/obj_loss:验证集目标检测损失均值;val/cls_loss:验证集分类损失均值;metrics/mAP@0.5:0.95(mAP@[0.5:0.95])表示在不同 IoU 阈值(从 0.5 到0.95,步长 0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均 mAP;metrics/mAP@0.5:表示阈值大于0.5 的平均mAP,该指标为PR 曲线的面积,代表模型的平均准确率,mAP越高越好。

图8 模型的性能指标

在训练时设置的batch-size=4,即每4张图片拼成一张照片送进YOLOv5中训练。这里的图片一共12 张,如图9 所示。使用训练好的模型进行了测试,如图10所示,val_batchX_labels为验证集第x轮的实际标签,即:由人工标注过的图片信息。val_batchX_pred 为模型对val 验证集第x轮里的图片类别的标签的预测。

图9 模型训练

图10 模型测试

4 模型在硬件下的使用

选用的硬件平台是jetson nano 4 GB 版本,首先在jetson 官网下载它的操作系统并将其写入SD 卡中,插入jetson,启动开机。配置环境方面,需要更新CMake、PyTorch库、torchvision库以及一些YOLOv5运行时的依赖库,再将训练好的YOLOv5模型加载过来,进入detect.py文件修改parse_opt 函数的weights 与source,分别为生成的模型文件的路径与推理方式,在YOLOv5里面通过了三种模型的推理方式,分别为图片(default=文件路径)、视频(default=文件路径)、摄像头(default=0)。然后运行detect.py就可以在jetson 平台上使用模型了。这里选择的是摄像头识别的方式,分别对两种操作工作进行缺陷检测,结果显示均能识别出表面缺陷种类:scratches(划痕),如图11所示。

图11 模型对两种不同工具进行缺陷检测结果

5 结语

相较于其他的工具表面缺陷检测技术,本文提出了一种基于YOLOv5的工具表面缺陷检测算法。实验证明,通过YOLOv5的深度学习算法对数据集进行训练得出的预测模型,搭载在硬件上可用于操作工具的表面缺陷检测。

猜你喜欢

精度表面目标
太阳表面平静吗
基于DSPIC33F微处理器的采集精度的提高
GPS/GLONASS/BDS组合PPP精度分析
3.《黑洞表面》(英/美)等
改进的Goldschmidt双精度浮点除法器
神回复
巧用磨耗提高机械加工精度
铝合金表面氧化问答
新目标七年级(下)Unit 3练习(一)
新目标七年级(下)Unit 4练习(一)