基于改进YOLOv5的电子元件表面缺陷检测算法
Surface defect detection algorithm of electronic components based on improved YOLOv5
通讯作者:
收稿日期: 2022-05-30
基金资助: |
|
Received: 2022-05-30
Fund supported: | 浙江省教育厅一般科研项目(专业学位专项)(Y202147956) |
作者简介 About authors
曾耀(1999—),男,硕士生,从事目标检测研究.orcid.org/0000-0003-1417-7723.E-mail:
目标检测模型在电子元件生产环境中的实时检测能力不佳,为此采用GhostNet替换YOLOv5的主干网络. 针对电子元件表面缺陷存在小目标及尺度变化较大的目标的情况,在YOLOv5主干网络中加入坐标注意力机制,在避免大量计算资源消耗的前提下增强感受野,将坐标信息嵌入通道注意力中以提升模型对目标的定位. 使用加权双向特征金字塔网络结构替换YOLOv5特征融合模块中的特征金字塔网络(FPN)结构,提升多尺度加权特征的融合能力. 在自制缺陷电子元件数据集上的实验结果表明,改进的GCB-YOLOv5模型平均精度达到93%,平均检测时间为33.2 ms,相比于原始YOLOv5模型,平均精度提高了15.0%,平均时间提升了7 ms,可以同时满足电子元件表面缺陷检测精度与速度的需求.
关键词:
For the poor real-time detection capability of the current object detection model in the production environment of electronic components, GhostNet was used to replace the backbone network of YOLOv5. And for the existence of small objects and objects with large scale changes on the surface defects of electronic components, a coordinate attention module was added to the YOLOv5 backbone network, which enhanced the sensory field while avoiding the consumption of large computational resources. The coordinate information was embedded into the channel attention to improve the object localization of the model. The feature pyramid networks (FPN) structure in the YOLOv5 feature fusion module was replaced with a weighted bi-directional feature pyramid network structure, to enhance the fusion capability of multi-scale weighted features. Experimental results on the self-made defective electronic component dataset showed that the improved GCB-YOLOv5 model achieved an average accuracy of 93% and an average detection time of 33.2 ms, which improved the average accuracy by 15.0% and the average time by 7 ms compared with the original YOLOv5 model. And the improved model can meet the requirements of both accuracy and speed of electronic component surface defect detection.
Keywords:
本文引用格式
曾耀, 高法钦.
ZENG Yao, GAO Fa-qin.
在工业生产过程中,技术、工作条件的局限极易影响制成品的质量. 在工件的实际生产过程中,人工筛选是工件表面缺陷检测的主要方式,但这种方式存在检测结果不准确以及检测效率偏低的问题[1] . 为了提升工件表面缺陷的检测精度和效率,深度学习方法的研究和应用越来越具有必要性. Ho等[2] 利用传统机器视觉和深度学习的检测技术,开发了硅橡胶垫圈的自动光学检测系统. 该系统通过高动态范围图像捕获和图像生成技术,对缺口和残胶缺陷的预测精度分别达到100%和97%. 李璟钰等[3]提出基于机器视觉的微小缺陷自动检测方法,该方法利用缺陷区域的方差特点提取缺陷大致区域,划分区域进行自适应阈值分割,通过定向阈值搜索快速确定最佳阈值. 实验结果表明,该方法能够有效地检测出细微尺寸缺陷,综合准确率达到95.72%. 戴君洁[4] 研究工业生产中目标物体的缺陷检测方法,选用Canny算法和形态学方法检测划痕、凹凸点,使用闭运算方法过滤不明显的独立点和痕迹,对遗留下来的明显划痕和凹凸点进行连通域区域标记.
上述基于机器视觉进行缺陷检测的方法存在精确度低、检测速度慢的问题,与传统的机器学习相比,深度学习算法可以更好地提取特征,使复杂背景下不同尺度的缺陷特征检测成为可能. 深度学习模型多为以SSD[5] (single shot multibox detector)、YOLO[6] (you only look once)系列网络为代表的一阶段网络,和以R-CNN[7] 、Fast R-CNN[8]、Faster R-CNN[9] 、Mask R-CNN[10] 等网络为代表的二阶段网络. 与二阶段网络相比,一阶段网络具有推理速度快,检测能力强的优势,因此许多学者基于一阶段检测网络的结构和大小进行了研究和改进. 黄海新等[11] 基于YOLOv4网络提高了小物体缺陷检测的各个指标. 刘聪[12] 提出在检测系统中加入计算机显微视觉技术,使用基于CNN的目标检测网络对细微零件的缺陷进行检测. 陈绪浩[13] 提出anchor尺度自调节算法与自关注区域算法,提高了高速连接器表面缺陷检测的精确度,减少了误检. 文献[13]的实验证明,对于0.05~0.50 mm的微小缺陷,优化后的模型检测正确率提高到95%. 代牮等[14] 在YOLOv5基础上添加注意力机制,提高了算法的特征提取能力和检测效率,改进了原YOLOv5目标检测网络的损失函数和预测框的筛选方式,提高了算法对红外弱小目标检测的准确率,且漏警率、虚警率低. 上述方法虽然提高了目标检测的精度,但仍存在着高计算成本导致的检测速度慢的问题.
1. YOLOv5网络
1.1. YOLOv5网络概述
YOLOv5是由Ultralytics公司在2020年发布的单阶段检测网络,不仅具有优秀的检测性能,且模型部署十分灵活. 在YOLOv5的官方代码中,根据网络宽度和深度将检测网络由浅到深分为4个版本,4个模型分别为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x. 由于YOLOv5官方代码一直在更新,本研究使用的版本为YOLOv5-6.1.
1.2. YOLOv5网络结构
YOLOv5网络结构由输入端Input、主干网络Backbone、多尺度特征融合网络Neck、预测分类器Head 4个部分组成,如图1所示. 输入端采用Mosaic数据增强、自适应锚框计算、自适应图片缩放等方法,提升了网络的检测性能. 在5.0版本官方代码中,YOLOv5的主干网络使用了Focus结构,6.0版本为了便于模型部署去除了此结构,因此6.0版本的主干网络主要由CBS (Conv+BatchNorm+SiLU)+C3+SPPF组成. YOLOv5在CSP结构基础上设计了2种CSP结构,CSP1_X结构应用于主干网络,CSP2_X结构将CSP1_X中的Resunit换成2×X个CBS应用于Neck中;多尺度特征融合网络的网络结构沿用PANet[18] 的结构,自顶向下与自底向上的结构不但提取了丰富的语义特征,构造特征金字塔结构,还弥补了经过特征金字塔后丢失的目标信息. 预测分类器由3个Detect检测器组成,使用1×1卷积代替全连接层进行预测,在不同尺度的特征图上进行目标检测,3个尺度上的特征图为80×80×255、40×40×255、20×20×255,即长×宽×通道数,分别对应小、中、大目标,输出的预测结果分别对应目标框坐标、置信度和类别信息.
图 1
2. YOLOv5网络改进
改进YOLOv5s网络,1)在数据增强部分使用YOLOv4[19] 中的Mosaic和Copy-Paste[20] 方法分别对数据集样本进行拼接和小目标的数量增强,使用GhostNet中的GhostBlock替换主干网络中的CSP模块,减少模型的参数量和网络计算量,在主干网络中的SPPF结构前加入坐标注意力模块,增强模型对于小目标的定位能力. 2)使用加权双向特征金字塔网络模块代替多尺度特征融合网络的PANet,进行跨尺度连接和加权特征融合,利用上下文信息提高模型的特征融合能力. 3)用Focal_Loss损失函数代替分类损失中的二元交叉熵损失函数,提升对于难样本的训练效果,用CIoU(complete intersection over union)代替定位损失中的GIoU(generalized intersection over union),使得预测框拥有更好的回归效果.
2.1. 数据增强
Mosaic和Copy-Paste方法在模型的训练阶段加入. Mosaic方法原理:每次读取4张图片,进行翻转、缩放操作,将4张图片拼接在1张图像中. 如图2所示. Mosaic方法不仅丰富了检测的背景,在批量归一化时还可以单次计算4张图片的数据.
图 2
图 2 自制数据集使用Mosaic进行数据增强的结果
Fig.2 Results of data augmentation using Mosaic for self-made dataset
Copy-Paste是简单、有效的数据增强方法,其主要思想是先随机选择2幅训练图像进行随机的尺度抖动、缩放、水平翻转等操作,再随机选择某幅图像中的目标子集粘贴在另一幅图像中的随机位置,结果如图3所示. 该方法有效地增加了小目标的数量,改善了样本均衡性,同时能将小目标粘贴到一些不包含小目标的样本上,让小目标得到更加充分的训练.
图 3
图 3 自制数据集使用Copy-Paste进行数据增强的结果
Fig.3 Results of data augmentation using Copy-Paste for self-made dataset
2.2. 主干网络改进
2.2.1. GhostNet
流水线上每天会产出数以万计的电子元件,这要求模型在检测缺陷时具有实时性,YOLOv5中的卷积操作会带来大量的计算,导致检测速度下降. 为了使模型轻量化,本研究采用来自华为诺亚方舟实验室的GhostNet替换YOLOv5中的主干网络模块,以提升模型的检测速度. 在深度学习网络模型中,特征图的学习对于模型精度的提升至关重要. 特征图由一层层的卷积操作得到,虽然特征图中存在大量占用计算资源的冗余信息,但这些信息有助于模型全面地理解和学习输入的数据,因此GhostNet的作者在设计轻量化模型时选择用更低的计算成本来获取冗余的特征图,而不是将它们直接去除.
如图4所示,与传统卷积方式相比,Ghost模块先采用传统的卷积操作得到一部分Channel数较少的特征图,再使用低计算成本的线性变换(cheap operation)得到更多的特征图,最终将不同的特征图Concat组合成新的输出,且输出的Output大小和传统卷积的Output大小一致. 图中,恒等变换指向的部分称为内在特征图;
图 4
Ghost模块减少计算量的原理:设输入特征图的尺寸大小为
在cheap operation变换中,
式中:
其中
图 5
图 6
2.2.2. 坐标注意力机制
本研究使用的元件表面缺陷大多数为细微的压印和尺度变化较大的划伤,其中压印的大小平均为30 px×30 px,输入图像的分辨率为2 592 px×1 944 px,以COCO数据集作为标准定义的绝对尺度(目标像素小于32 px×32 px)和相对尺度(目标宽高不超过输入图像宽高的0.1)都属于小目标,随着网络不断深入的卷积操作,小目标的特征信息极易被淹没,因此本研究引入坐标注意力机制,使得模型对小目标及尺度变化大的目标具有更好的特征提取效果. CA的提出是为了解决注意力机制使用全局池化时造成位置信息丢失的问题,主要分为2个步骤:1)坐标信息嵌入,2)坐标注意力生成. 具体如图7所示.
图 7
1) 坐标信息嵌入. 使用大小为
式中:
式中:
式中:
2) 坐标注意力生成. 将得到的2个嵌入特定方向信息的特征图分别编码为2个注意力图,注意力图分别保存输入特征图沿着水平、垂直2个方向的长程依赖,将2个注意力图分别与输入特征图相乘,增强特征图的表达能力. 坐标注意力生成的具体操作如下. 级联2个特征图,使用共享的1×1卷积
式中:
式中:
综上,坐标注意力模块在避免大量计算成本的前提下,将小目标的位置信息很好地嵌入通道注意力,增强了小目标的表示. 经多次实验,本研究将CA加入YOLOv5的Backbone中SPPF模块前一层,提升了模型对小目标的检测能力.
2.3. 特征融合模块改进
图 8
在对不同的特征层进行融合时,不同分辨率的特征输入具有不同的贡献,因此给每个输入使用加权的策略,让网络学习每个输入的重要性. 加权融合使用快速归一化融合方法:
该方法基于softmax对无界的标量权重进行归一化处理.
式中:
电子元件缺陷数据集中含有不易检测的小目标以及尺度变化大的目标,因此在YOLOv5中加入BiFPN模块,可以增强模型的多尺度特征融合能力,提高检测性能.
2.4. 损失函数改进
YOLOv5的损失函数L由分类损失函数(classification loss)Lcls、定位损失函数(localization loss)Lbox和置信度损失(confidence loss)Lobj加权组成,可以通过调整每个损失函数的权值来决定:
式中:a、b、c均为损失函数的权值. YOLOv5将GIoU作为定位损失函数,计算式为
式中:交并比函数LoU的作用是计算2个边界框交集和并集之比,在目标检测中用于表示预测框与真值框之间的重叠程度;
式中:
分类损失函数使用交叉熵损失函数(binary crossentropy loss),其本质是对数损失函数:
式中:
式中:
3. 实验结果
3.1. 数据集采集
在图像样本中,每个电子元件的表面可能存在0~2种缺陷(划伤缺陷样本、压印缺陷样本),若无缺陷即为正常样本. 划伤缺陷的特征为细长状,压印缺陷为微小圆点状。划伤缺陷的尺度变化较大,压印缺陷属于小目标.
电子元件表面图像的采集点为模拟的流水线上,采用海康威视公司制造的MV-CE050-31GM型号工业相机拍摄距离0.2 m的电子元件,总共采集原始数据1 236张,图像以.bmp格式保存,分辨率为2 592 px×1 944 px. 如图9所示为裁剪过的部分数据集示例图,包含2种主要缺陷种类,其中划伤样本为600幅,每幅图像包含1~3个划伤缺陷;压印样本为400幅,每幅图像包含 1~2个压印缺陷;正常样本为236幅,每幅图像均无缺陷.
图 9
图 9 自制电子元件表面缺陷数据集展示
Fig.9 Self-made electronic components surface defects dataset display
3.2. 数据集预处理
数据标注使用标注工具labelImg,图像标注使用Pascal voc标注格式,生成.xml 类型的标注文件. 人工采集的数据集数量过少会导致神经网络过拟合,影响模型的性能,因此本研究使用翻转、缩放、平移、旋转、增加噪声等方法按照0~1的概率随机组合,对电子元件样本进行数据增强,并对每幅图像对应的标注文件进行同步变换,扩增数据集图像至6 180幅,按照7∶2∶1 的比例将数据集随机化分为训练集(4 326幅)、测试集(1 236幅)、验证集(618幅).
3.3. 实验环境
YOLOv5模型训练实验环境配置如表1所示.
表 1 YOLOv5模型训练实验环境配置表
Tab.1
配置对象 | 配置内容 |
操作系统 | Windows 10 |
处理器 | NVIDIA GeForce GTX 1050 |
开发环境 | PyCharm |
深度学习框架 | Pytorch 1.7.1 |
CUDA | Cuda 10.1 |
CUDNN | Cudnn 7.6.5 |
采样相机 | 海康工业相机MV-CE050-31GM |
3.4. 评价指标
采用4种评价指标,分别为精确率P、召回率R、平均精度均值mAP、帧率RF评估模型的检测性能. 样本的检测情况主要有以下4种情况:将正样本预测为正TP、将负样本预测为负TN、将负样本预测为正FP、将正样本预测为负FN.
精确率是指被正确预测的正样本占所有预测为正样本的比率:
召回率是指被正确预测的正样本占所有真实为正样本的比率:
仅用精确率或召回率衡量模型的性能都过于片面,因此使用P-R曲线下的面积作为衡量尺度。平均精确度(average precision,AP)是以精确率为纵坐标、召回率为横轴坐标的二维曲线下的面积. 平均精度均值是对各个类别的平均精确度取均值,计算式为
式中:N为类别数. 帧率是指画面每秒传输帧数,在目标检测领域指的是模型每秒推理的图像数目,即检测的速度.
3.5. 实验分析与对比
3.5.1. 对比实验
改进的GCB-YOLOv5模型训练的超参数设置:一次训练所选取的样本数(batchsize)设为8,输入图像的尺寸大小为640 px×640 px,采用随机梯度下降(SGD)函数优化参数,初始学习率(learning rate)设为0.01,动量因子(momentum)设为0.937,权重衰减系数(weight_decay)设为0.0005,共训练300个迭代轮次.
为了说明对比模型 (baseline)的选取以及展现改进模型的优势,在YOLOv5的4个版本(s、m、l、x)、YOLOv5s-Mobilenet-small、YOLOv5s-Shufflenet以及GCB-YOLOv5等检测模型的超参数完全一致的情况下进行实验对比. 在电子元件表面缺陷数据集的测试集上,以mAP@0.5、RF、参数量Np、浮点运算量(giga floating-point operations,GFLOPs)、权重大小等作为评价指标对模型进行评价,实验结果如表2所示. 由表可得,YOLOv5的4个版本的模型在测试集上的mAP@0.5指标随着网络结构的加深和加宽得到逐步提升,但是RF下降较为严重. 为了满足检测的实时性要求,选取YOLOv5s作为基准模型,进行改进和对比;其余改进模型的mAP@0.5与未改进的YOLOv5s相比都有一定程度提升,其中GCB-YOLOv5提升了15.0%,RF=30 帧/s,略低于YOLOv5s-Mobilenet-small和YOLOv5s-Shufflenet. 本研究在实际生产中使用的工业相机最大帧率为24 帧/s,模型处理的帧率大于相机采集的帧率,可以认为满足实时性能要求,因此GCB-YOLOv5在综合性能上有更好的表现.
表 2 不同算法在自制数据集上的缺陷检测实验对比结果
Tab.2
模型 | 权重大小/106 | Np /106 | GFLOPs | mAP@0.5 | RF/(帧·s−1) |
YOLOv5s | 13.70 | 7.02 | 15.9 | 0.809 | 25 |
YOLOv5m | 68.90 | 34.00 | 50.0 | 0.824 | 14 |
YOLOv5l | 147.00 | 73.20 | 111.4 | 0.833 | 9 |
YOLOv5x | 269.00 | 134.20 | 209.8 | 0.846 | 5 |
YOLOv5s-Mobilenet-small | 7.17 | 3.25 | 6.0 | 0.857 | 32 |
YOLOv5s-Shufflenet | 1.97 | 3.79 | 7.9 | 0.887 | 34 |
GCB-YOLOv5 | 11.60 | 5.90 | 14.0 | 0.930 | 30 |
如图10所示为YOLOv5s和GCB-YOLOv5在自制电子元件表面缺陷数据集上的缺陷的检测结果对比. 可以看出,未改进YOLOv5s检测结果存在小目标漏检、误检、置信度低以及不能完全框出目标等情况,在GCB-YOLOv5的检测结果中,这些情况均得到不同程度的改善.
图 10
图 10 2种模型在自制电子元件表面缺陷数据集上的缺陷检测结果对比
Fig.10 Comparison of defect detection results on self-made electronic component surface defect datasets with two models
3.5.2. 东北大学热轧带钢表面缺陷数据集实验
为了验证GCB-YOLOv5在不同数据集上的改进效果,使用未改进的YOLOv5s和GCB-YOLOv5在东北大学热轧带钢表面缺陷数据集(NEU surface defect database)上进行对比实验. 此数据集中包含夹杂、划痕(scratches)、轧入氧化皮(rolled in scale)、裂纹、麻点和斑块等缺陷. 其中轧入氧化皮与自制电子元件表面缺陷数据集中的压印类似,属于小目标;划痕与自制数据集中的划痕类似,属于尺度变化较大目标. 使用麻点和划痕2个类别的mAP@0.5进行对比,实验结果如表3所示. 相较于未改进的YOLOv5s,GCB-YOLOv5在该数据集上的轧入氧化皮类别检测精度提升了19.7%,划痕类别检测精度提升了9.9%.
表 3 2种模型在东北大学热轧带钢表面缺陷数据集上的对比实验结果
Tab.3
模型 | mAP@0.5 | |
轧入氧化皮 | 划痕 | |
YOLOv5s | 0.608 | 0.842 |
GCB-YOLOv5 | 0.728 | 0.925 |
如图11所示为东北大学热轧带钢表面缺陷数据集的缺陷检测结果对比. 可以看出,GCB-YOLOv5相较于YOLOv5s解决了漏检的问题. 因此可以验证,改进的GCB-YOLOv5在不同的数据集上对缺陷目标的检测有一定的性能提升.
图 11
图 11 2种模型在东北大学热轧带钢表面缺陷数据集上的缺陷检测结果对比
Fig.11 Comparison of surface defect detection results on NEU surface defect database with two models
3.5.3. 消融实验
为了验证GhostNet、坐标注意力模块以及加权双向多尺度特征设计的有效性,设置消融实验,结果如表4所示. 表中,模型一为替换了GhostNet模块的YOLOv5s模型,模型二为加入坐标注意力模块的YOLOv5s模型,模型三为加入BiFPN结构的YOLOv5s模型,“√”表示加入相应模块,“×”表示未加入相应模块.
表 4 YOLOv5s加入不同模块的消融实验结果
Tab.4
模型 | Ghostnet替换主干 | 加入注意力模块 | 修改特征金字塔 | mAP@0.5 | mAP@0.5 | RF/(帧·s−1) | |
划伤类 | 压印类 | ||||||
YOLOv5s | × | × | × | 0.809 | 0.766 | 0.852 | 25 |
模型一 | √ | × | × | 0.823 | 0.771 | 0.875 | 37 |
模型二 | × | √ | × | 0.890 | 0.853 | 0.927 | 24 |
模型三 | × | × | √ | 0.854 | 0.804 | 0.894 | 21 |
GCB-YOLOv5 | √ | √ | √ | 0.930 | 0.887 | 0.972 | 30 |
实验基于YOLOv5s模型分别加入GhostNet、CA、BiFPN模块进行实验. 未改进的YOLOv5s模型在电子元件表面数据集上的mAP@0.5=0.809,模型一、二和三的mAP@0.5相较于YOLOv5s分别提升了1.7%、10.0%和5.6%. 具体来看,相较于YOLOv5s,模型一的帧率每秒多了12帧,模型二对压印类(即小目标类别)在检测精度上提升了8.8%,模型三对划伤类(即尺度变化较大类)在检测精度上提升了5.0%. 实验结果说明,各个部分的改进都提升了模型的性能,验证了本研究改进算法的有效性.
4. 结 论
(1)基于GCB-YOLOv5的缺陷检测算法提升了模型对不同尺度特征的提取,提高了对尺度变化较大目标的检测率,加强了小目标位置信息的表达. 与流行的目标检测算法以及对比实验中的算法相比,本研究所提算法具有更好的检测精确率以及检测速度.
(2)消融实验表明,各个部分的改进在自制数据集上都能够提升检测精确率,验证了改进的有效性.
(3)自制数据集采集自模拟生产流水线环境,可以很好地应用在实际生产中,对电子元件生产线上的缺陷检测具有较强的实用性和经济效益.
(4)电子元件种类众多,缺陷类型也各有异同,仅使用自制的数据集训练得到的模型的泛化性能不高,后续工作将会使用迁移学习在其他缺陷数据集中进行训练,提升模型的鲁棒性.
参考文献
基于机器视觉的金属零件表面缺陷检测系统
[J].DOI:10.3969/j.issn.1672-6413.2018.04.088 [本文引用: 1]
Metal component surface defect detection system based on machine vision
[J].DOI:10.3969/j.issn.1672-6413.2018.04.088 [本文引用: 1]
Machine vision and deep learning based rubber gasket defect detection
[J].DOI:10.46604/aiti.2020.4278 [本文引用: 1]
基于机器视觉的导光板表面微小缺陷检测
[J].
Detection of small defects on the surface of light guide plates
[J].
Faster R-CNN: towards real-time object detection with region proposal networks
[J].DOI:10.1109/TPAMI.2016.2577031 [本文引用: 1]
基于改进YOLOv5的复杂背景红外弱小目标检测算法
[J].
Improved YOLOv5-based infrared dim-small target detection under complex background
[J].
/
〈 |
|
〉 |
