浙江大学学报(工学版), 2023, 57(3): 455-465 doi: 10.3785/j.issn.1008-973X.2023.03.003

计算机与控制工程

基于改进YOLOv5的电子元件表面缺陷检测算法

曾耀,, 高法钦,

浙江理工大学 信息科学与工程学院,浙江 杭州 310018

Surface defect detection algorithm of electronic components based on improved YOLOv5

ZENG Yao,, GAO Fa-qin,

School of Information Science and Engineering, Zhejiang Sci-Tech University, Hangzhou 310018, China

通讯作者: 高法钦,男,副教授,博士. orcid.org/0000-0001-5714-5735. E-mail: gfqzjlg@126.com

收稿日期: 2022-05-30  

基金资助: 浙江省教育厅一般科研项目(专业学位专项)(Y202147956)

Received: 2022-05-30  

Fund supported: 浙江省教育厅一般科研项目(专业学位专项)(Y202147956)

作者简介 About authors

曾耀(1999—),男,硕士生,从事目标检测研究.orcid.org/0000-0003-1417-7723.E-mail:yaozeng2019@163.com , E-mail:yaozeng2019@163.com

摘要

目标检测模型在电子元件生产环境中的实时检测能力不佳,为此采用GhostNet替换YOLOv5的主干网络. 针对电子元件表面缺陷存在小目标及尺度变化较大的目标的情况,在YOLOv5主干网络中加入坐标注意力机制,在避免大量计算资源消耗的前提下增强感受野,将坐标信息嵌入通道注意力中以提升模型对目标的定位. 使用加权双向特征金字塔网络结构替换YOLOv5特征融合模块中的特征金字塔网络(FPN)结构,提升多尺度加权特征的融合能力. 在自制缺陷电子元件数据集上的实验结果表明,改进的GCB-YOLOv5模型平均精度达到93%,平均检测时间为33.2 ms,相比于原始YOLOv5模型,平均精度提高了15.0%,平均时间提升了7 ms,可以同时满足电子元件表面缺陷检测精度与速度的需求.

关键词: 目标检测网络 ; 深度学习 ; 电子元件表面缺陷 ; YOLOv5 ; 注意力机制

Abstract

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: object detection network ; deep learning ; surface defect of electronic component ; YOLOv5 ; attention module

PDF (1697KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

曾耀, 高法钦. 基于改进YOLOv5的电子元件表面缺陷检测算法. 浙江大学学报(工学版)[J], 2023, 57(3): 455-465 doi:10.3785/j.issn.1008-973X.2023.03.003

ZENG Yao, GAO Fa-qin. Surface defect detection algorithm of electronic components based on improved YOLOv5. Journal of Zhejiang University(Engineering Science)[J], 2023, 57(3): 455-465 doi:10.3785/j.issn.1008-973X.2023.03.003

在工业生产过程中,技术、工作条件的局限极易影响制成品的质量. 在工件的实际生产过程中,人工筛选是工件表面缺陷检测的主要方式,但这种方式存在检测结果不准确以及检测效率偏低的问题[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目标检测网络的损失函数和预测框的筛选方式,提高了算法对红外弱小目标检测的准确率,且漏警率、虚警率低. 上述方法虽然提高了目标检测的精度,但仍存在着高计算成本导致的检测速度慢的问题.

本研究在YOLOv5检测网络结构的基础上进行改进,在不显著增加计算资源的基础上,引入坐标注意力模块(coordinate attention,CA)[15],使用加权双向特征金字塔(bi-directional feature pyramid,BiFPN[16] )网络结构提升网络的多尺度特征融合能力,将主干网络替换为GhostNet[17] 模块.

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

图 1   YOLOv5-6.0的网络结构

Fig.1   Network structure of YOLOv5-6.0


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大小一致. 图中,恒等变换指向的部分称为内在特征图; $ {\phi _1} $$ {\phi _2} $,···, $ {\phi _k} $为诸如3×3或者5×5的卷积;输入特征图经过线性运算后生成的部分称为Ghost特征图.

图 4

图 4   传统卷积与Ghost模块卷积

Fig.4   Traditional convolution and Ghost module convolution


Ghost模块减少计算量的原理:设输入特征图的尺寸大小为 $ H{{ \times }}W{{ \times }}C $,输出特征图的尺寸大小为 $ {H'}{{ \times }}{W'}{{ \times }}N $,卷积核大小为 $ k{{ \times }}k $,其中H、W、C分别为输入特征图的高、宽、通道数,H、W、N分别为输出特征图高、宽和通道数,k为卷积核大小的边长. 用浮点操作(floating point operations,FLOPs)衡量模型的复杂度,对于传统的卷积操作,

$ {O_{{\text{f1}}}} = N \times {H'} \times {W'} \times C \times k \times k . $

在cheap operation变换中,

$ \begin{split} {O_{{\text{f2}}}} =& \frac{N}{S} \times {H'} \times {W'} \times C \times k \times k+ \\ & (s - 1) \times {H'} \times {W'} \times \frac{N}{S} \times d \times d . \\ \end{split} $

式中: $ s $为生成的Ghost 特征图个数, ${N}/{S} $为特征图的通道数, $ d \times d $为cheap operation变换时的内核尺寸大小. Ghost模块的压缩比率为

$ r = \frac{{{O_{{\text{f1}}}}}}{{{O_{{\text{f2}}}}}} \approx \frac{{s{{ \times }}C}}{{s+C - 1}} \approx s . $

其中 $ d \times d $$ k \times k $大小相似, $ s $远小于 $ C $.

图5所示,利用Ghost模块设计出的Ghost 瓶颈层,具有步长为1和步长为2的2种结构. 对于步长1的情况,与残差模块类似,第1条边路通过2个Ghost模块,第1个模块用来指定输入与输出通道的比例以及增加通道数,第2个模块减少特征维度,用于与快捷连接路径相匹配;第2条边路直接连接到输出,与第1条边路进行Add操作. 对步长为2的情况,快捷连接路径使用下采样层,并在2个Ghost模块中间插入步长为2的深度可分离卷积. 2种结构的相同点是在第2个Ghost模块之后不使用ReLU,而其他层都使用BN和ReLU. YOLOv5模型中主干网络的CSP_1用GhostNet替换后的结构如图6所示.

图 5

图 5   Ghost瓶颈层的2种结构

Fig.5   Two structures of Ghost bottleneck layer


图 6

图 6   改进CSP_1的结构

Fig.6   Structure of improved CSP_1


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

图 7   坐标注意力模块

Fig.7   Coordinate attention module


1) 坐标信息嵌入. 使用大小为 $ (H,1) $$ (1,W) $的池化核,分别在水平方向和垂直方向进行一维的特征编码. 将输入特征转化为2个方向感知特征图,有效地将空间坐标信息整合到生成的注意图中. 这2个方向上的操作由全局池化公式分解而来:

$ {Z_{{C}}} = \frac{1}{{H \times W}}\sum\nolimits_{{{i = 1}}}^{{H}} {\sum\nolimits_{{{j = 1}}}^{{W}} {{x_{{C}}}(i,j)} } . $

式中: $ {Z}_{C} $为第C个通道的输出; ${x}_{C}(i,j)$为输入,即对全局的输入进行池化. 将高度为 $ h $的第 $ C $通道的输出转化为

$ Z_{{C}}^{{h}}(h) = \frac{1}{W}\sum\nolimits_{{\text{0}} \leqslant {{i < W}}} {{x_{{C}}}} (h,i) . $

式中: $ {Z}_{C}^{h}\left(h\right) $为高度为 $ h $的第 $ C $通道的输出; $ {x}_{C}(h,i) $为输入,即对高度为 $ h $的输入进行平均池化. 宽度为 $ w $的第 $ C $通道的输出转化为

$ Z_{{C}}^{{w}}(w) = \frac{1}{H}\sum\nolimits_{{\text{0}} \leqslant {{j < H}}} {{x_{{C}}}} (j,w) . $

式中: $ {Z}_{C}^{w}\left(w\right) $为宽度为 $ w $的第C通道的输出, ${x}_{C}(j,w)$为输入. 即对宽度为 $ w $的输入进行平均池化. 通过上述操作得到的方向感知特征图使得注意力模块,不仅保存了沿着一个方向的长期依赖关系,还能够捕捉到沿着另一个方向的准确方位信息. 因此,模型可以更加精确地定位到元件表面的小目标缺陷.

2) 坐标注意力生成. 将得到的2个嵌入特定方向信息的特征图分别编码为2个注意力图,注意力图分别保存输入特征图沿着水平、垂直2个方向的长程依赖,将2个注意力图分别与输入特征图相乘,增强特征图的表达能力. 坐标注意力生成的具体操作如下. 级联2个特征图,使用共享的1×1卷积 ${{\boldsymbol{F}}_1}$进行变换:

$ {\boldsymbol{f}} = {{\delta}} ({{\boldsymbol{F}}_{\text{1}}}([{{\boldsymbol{z}}^{{{{h}}}}},{{\boldsymbol{z}}^{{{{w}}}}}])) . $

式中: $[{{\boldsymbol{z}}^h},{{\boldsymbol{z}}^w}]$为沿空间维度的Concat操作, $ \delta $为非 ${\bf{R}}^{C(H+W) /r}$线性激活函数. 生成的 ${\boldsymbol{f}} \in {\bf{R}}^{C(H+W) /r}$是一对空间信息在水平方向和竖直方向的中间特征图,其中 $ r $为下采样比例,用来控制模块的大小. 沿着空间维度将 $ f $切分为2个单独的张量 ${{\boldsymbol{f}}^{{{{h}}}}} \in {{\bf{R}}^{C \times H/ r}}$${{\boldsymbol{f}}^{{{{w}}}}} \in {{\bf{R}}^{C \times W /r}}$,再利用2个1×1卷积 ${{\boldsymbol{F}}_h}$${{\boldsymbol{F}}_w}$,将特征图 ${{\boldsymbol{f}}^{{h}}}$${{\boldsymbol{f}}^{{w}}}$变换到和输入同样的通道数,得到

$ {{\boldsymbol{g}}^{{h}}} = {{\sigma}} ({{\boldsymbol{F}}_{{h}}}({{\boldsymbol{f}}^{{h}}})) , $

$ {{\boldsymbol{g}}^{{w}}} = {{\sigma}} ({{\boldsymbol{F}}_{{w}}}({{\boldsymbol{f}}^{{w}}})) . $

式中: $ \sigma $为sigmoid激活函数. 对输出 ${{\boldsymbol{g}}^h}$${{\boldsymbol{g}}^w}$进行扩展,分别作为注意力权重,得到Coordinate Attention Block的输出,表示为

$ {{\boldsymbol{y}}_{{C}}}({{i}},{{j}}) = {{{x}}_{{C}}}({{i}},{{j}}) \times {\boldsymbol{g}}_{{C}}^{{h}}({{i}}) \times {\boldsymbol{g}}_{{C}}^{{w}}({{j}}) . $

综上,坐标注意力模块在避免大量计算成本的前提下,将小目标的位置信息很好地嵌入通道注意力,增强了小目标的表示. 经多次实验,本研究将CA加入YOLOv5的Backbone中SPPF模块前一层,提升了模型对小目标的检测能力.

2.3. 特征融合模块改进

小目标检测一直是难点. 原因是随着卷积的深入,大物体的特征容易被保留,小目标的特征由于像素点过少常常被忽略. Lin等[21] 提出FPN结构,FPN的特点是可以利用经过自顶向下结构处理后的上下文信息. 对于小目标而言,FPN增加了特征映射的分辨率,即在更大的特征图上进行卷积操作,以获得更多关于小目标的有用信息. 由于FPN结构会被单向信息流限制,Liu等[18] 提出PANet结构,即在FPN基础上增加1条自底向上的路径,该结构证明了双向融合的有效性.

图8所示为包括FPN[21] 、PANet和BiFPN等结构的特征金字塔结构,YOLOv5中Neck部分使用的是PANet结构. 本研究使用BiFPN结构来代替PANet结构. BiFPN在PANet结构基础上进行加权双向跨尺度连接,将PANet中对特征融合贡献度较小的节点删除以简化网络结构,即那些只有1条输入边的节点,同时对于原始输入节点和输出节点处于同一水平的,增加1条额外的边,以较小的成本为代价融合更多的特征. 为了实现更优的特征融合,BiFPN将每条双向路径视为一个特征网络层,并多次重复同一层.

图 8

图 8   3种特征金字塔结构的对比

Fig.8   Comparison of three feature pyramid structures


在对不同的特征层进行融合时,不同分辨率的特征输入具有不同的贡献,因此给每个输入使用加权的策略,让网络学习每个输入的重要性. 加权融合使用快速归一化融合方法:

$ O = \sum\nolimits_{_{{i}}} {\frac{{{w_{{i}}}}}{{\varepsilon +\displaystyle\sum\nolimits_{{j}} {{w_{{j}}}} }}} {l_{{j}}} . $

该方法基于softmax对无界的标量权重进行归一化处理. ${w_{{i}}}$为可学习的权重,通过在每个权重后面添加1个ReLU激活函数来确保 ${w_{{i}}}$>0,避免指数计算以提升运算速度; ${l_{{j}}}$为输入的特征, $ \varepsilon $为避免数值不稳定的常数,通常 $ \varepsilon $=0.000 1. 以节点P6为例,定义:

$ P_{\text{6}}^{{\text{td}}} = {\text{Conv}}\left(\frac{{{w_1} \times P_{\text{6}}^{{\text{in}}}+{w_{\text{2}}} \times {\text{Resize}}(P_{\text{7}}^{{\text{in}}})}}{{{w_{\text{1}}}+{w_{\text{2}}}+\varepsilon }}\right) . $

式中: $ P_{\text{6}}^{{\text{td}}} $为自顶向下路径上第6级的中间特征,将 $ P_{\text{6}}^{{\text{in}}} $和经过下采样的 $ P_{\text{7}}^{{\text{in}}} $2个输入带入式(11),得到公式(12). 同理, $ P_{\text{6}}^{{\text{out}}} $为自底向上路径上第6级的输出特征,将 $ P_{\text{6}}^{{\text{in}}} $$ P_{\text{6}}^{{\text{td}}} $以及经过上采样的 $ P_5^{{\text{in}}} $带入式(11), 得到

$ P_{\text{6}}^{{\text{out}}} = {\text{Conv}}\left(\frac{{w_1^' \times P_{\text{6}}^{{\text{in}}}+w_2^' \times P_{\text{6}}^{{\text{td}}}+w_{\text{3}}^{\text{'}} \times {\text{Resize}}(P_{\text{5}}^{{\text{in}}})}}{{w_1^'+w_2^'+w_3^'+\varepsilon }}\right) . $

电子元件缺陷数据集中含有不易检测的小目标以及尺度变化大的目标,因此在YOLOv5中加入BiFPN模块,可以增强模型的多尺度特征融合能力,提高检测性能.

2.4. 损失函数改进

YOLOv5的损失函数L由分类损失函数(classification loss)Lcls、定位损失函数(localization loss)Lbox和置信度损失(confidence loss)Lobj加权组成,可以通过调整每个损失函数的权值来决定:

$ L = aL{_{{\text{box}}}}+bL{_{{\text{obj}}}}+cL{_{{\text{cls}}}} . $

式中:a、b、c均为损失函数的权值. YOLOv5将GIoU作为定位损失函数,计算式为

$ {L_{{\text{GIoU}}}} = 1 - {\rm{IoU}}+\frac{{{S^{\text{U}}} - U}}{{{S^{\text{U}}}}} . $

式中:交并比函数LoU的作用是计算2个边界框交集和并集之比,在目标检测中用于表示预测框与真值框之间的重叠程度; $ {S^{\rm{U}}} $为同时包含预测框和真实框的最小矩形框, $ U $为预测框和真实框的并集. GIoU解决了当预测框和真实框没有重叠部分,IoU = 0导致梯度也一直为0而无法进行更新的问题. 本研究使用CIoU作为目标框定位损失函数,CIoU在GIoU的基础上考虑预测框与真实框之间的重叠程度、中心距离以及宽高比等因素:

$ {L_{{\text{CIoU}}}} = 1 - {\rm{IoU}}+\frac{{{\rho ^{\text{2}}}}}{{{c^{\text{2}}}}}+\alpha v , $

$ v = \frac{4}{{{{\text{π}}^2}}}{\left({\text{arctan}}\frac{{{w_{\text{g}}}}}{{{h_{\text{g}}}}} - {\text{arctan}}\frac{{{w_{\text{ρ }}}}}{{{h_{\text{ρ }}}}}\right)^2} ,$

$ \alpha = \frac{v}{{1 - {\rm{IoU}}+v}} . $

式中: $ \rho $为2个框中心点的位置距离, $ c $$ {S^{\text{U}}} $矩形框的对角线距离, $ v $为2个框的宽高比相似度, $ \alpha $$ v $的影响因子. CIoU使得损失函数在优化过程中,若2个框的重叠区域较小,则IoU的值与重叠面积较大时相较,受宽高比 $ v $的影响较小,此时更注重优化2个框的间距;反之,则注重于优化2个框之间的宽高比.

分类损失函数使用交叉熵损失函数(binary crossentropy loss),其本质是对数损失函数:

$ {L_{{{{\rm{BCE}}}}}} = - \sum\nolimits_{{{i = 1}}}^{{N}} {p({x_{{i}}}){{{\rm{ln}}}}\;(q({x_{{i}}}))} . $

式中: $ p\left({x}_{i}\right) $为真实概率分布, $ q\left({x}_{i}\right) $为预测概率分布. 交叉熵损失函数用于计算预测分类与真实分类之间的差异,其值越小,预测分类越准确. 由于交叉熵损失函数不能解决正负样本失调和区分难易样本的训练问题,本研究使用Focal_Loss函数来代替交叉熵损失函数:

$ {L_{{\text{Focal}}}} = - {\alpha _{\text{t}}}{(1 - {p_{\text{t}}})^{{\gamma }}}{\rm{ln}}\;({p_{\text{t}}}) . $

式中: $ \alpha_{\rm{t}} $$\gamma$为调节因子。其中 $\gamma $作用是降低易分样本的损失贡献 . 当 $ {p_{\rm{t}}} $值较大时,说明该样本易于区分,此时的调节因子较小,可以减少对易分样本的训练. $ \alpha_{\rm{t}} $用于调节正负样本损失之间的比例. 经过多次实验,当取 $\gamma$=1.5、 $ \alpha_{\rm{t}} $=0.5时,对于难例样本的训练效果较取其他数值时好.

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  Configuration of YOLOv5 model training experimental environment

配置对象 配置内容
操作系统 Windows 10
处理器 NVIDIA GeForce GTX 1050
开发环境 PyCharm
深度学习框架 Pytorch 1.7.1
CUDA Cuda 10.1
CUDNN Cudnn 7.6.5
采样相机 海康工业相机MV-CE050-31GM

新窗口打开| 下载CSV


3.4. 评价指标

采用4种评价指标,分别为精确率P、召回率R、平均精度均值mAP、帧率RF评估模型的检测性能. 样本的检测情况主要有以下4种情况:将正样本预测为正TP、将负样本预测为负TN、将负样本预测为正FP、将正样本预测为负FN.

精确率是指被正确预测的正样本占所有预测为正样本的比率:

$ P = \frac{{{\rm{TP}}}}{{{\rm{TP+FP}}}} . $

召回率是指被正确预测的正样本占所有真实为正样本的比率:

$ R = \frac{{{\rm{TP}}}}{{{\rm{TP+FN}}}} . $

仅用精确率或召回率衡量模型的性能都过于片面,因此使用P-R曲线下的面积作为衡量尺度。平均精确度(average precision,AP)是以精确率为纵坐标、召回率为横轴坐标的二维曲线下的面积. 平均精度均值是对各个类别的平均精确度取均值,计算式为

$ {\rm{mAP }}= \frac{{\displaystyle\sum {{\rm{AP}}} }}{N} . $

式中: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  Experimental comparison results of different algorithms for detection on self-made dataset

模型 权重大小/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

新窗口打开| 下载CSV


图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  Comparative experimental results on NEU surface defect database with two models

模型 mAP@0.5
轧入氧化皮 划痕
YOLOv5s 0.608 0.842
GCB-YOLOv5 0.728 0.925

新窗口打开| 下载CSV


图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  Result of ablation experiment with YOLOv5s adding different modules

模型 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

新窗口打开| 下载CSV


实验基于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]. 机械工程与自动化, 2018, (4): 210- 211+214

DOI:10.3969/j.issn.1672-6413.2018.04.088      [本文引用: 1]

WANG Yu, WU Zhi-heng, DENG Zhi-wen, et al

Metal component surface defect detection system based on machine vision

[J]. Mechanical Engineering and Automation, 2018, (4): 210- 211+214

DOI:10.3969/j.issn.1672-6413.2018.04.088      [本文引用: 1]

HO C C, SU E, LI P, et al

Machine vision and deep learning based rubber gasket defect detection

[J]. Advances in Technology Innovation, 2020, 5 (2): 76- 83

DOI:10.46604/aiti.2020.4278      [本文引用: 1]

李璟钰, 肖俊良, 付晗, 等

基于机器视觉的导光板表面微小缺陷检测

[J]. 信息系统工程, 2021, (2): 65- 69

[本文引用: 1]

LI Jing-yu, XIAO Jun-liang, FU Han, et al

Detection of small defects on the surface of light guide plates

[J]. China CIO News, 2021, (2): 65- 69

[本文引用: 1]

戴君洁. 基于机器视觉的目标识别和表面缺陷检测研究[D]. 大理: 大理大学, 2021.

[本文引用: 1]

DAI Jun-jie. Research on object recognition and surface defect detection based on machine vision [D]. Dali: Dali University, 2021.

[本文引用: 1]

LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector [EB/OL]. [2022-04-07]. https://arxiv.org/pdf/1512.02325.pdf.

[本文引用: 1]

REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 779-788.

[本文引用: 1]

GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 580-587.

[本文引用: 1]

GIRSHICK R. Fast R-CNN [C]// 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015: 1440-1448.

[本文引用: 1]

REN S Q, HE K M, GIRSHICK R, et al

Faster R-CNN: towards real-time object detection with region proposal networks

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39 (6): 1137- 1149

DOI:10.1109/TPAMI.2016.2577031      [本文引用: 1]

HE K M, GKIOXARI G, DOLLÁR P, et al. Mask R-CNN [C]// 2017 IEEE International Conference on Computer Vision. Venice: IEEE, 2017: 2980−2988.

[本文引用: 1]

黄海新, 金鑫. 基于YOLOv4的小目标缺陷检测[J]. 电子世界, 2021(5): 146-147.

[本文引用: 1]

HUANG Hai-xin, JIN Xin. Detection of small object defect based on YOLOv4 [J]. Electronics World, 2021(5): 146-147.

[本文引用: 1]

刘聪. 基于卷积神经网络的微小零件表面缺陷检测技术研究[D]. 哈尔滨: 哈尔滨理工大学, 2019.

[本文引用: 1]

LIU Cong. Research on surface defects detection of micro parts based on convolution neural network [D]. Harbin: Harbin University of Science and Technology, 2019.

[本文引用: 1]

陈绪浩. 基于深度学习的高速连接器高精度表面缺陷检测算法研究[D]. 成都: 电子科技大学, 2021.

[本文引用: 2]

CHEN Xu-hao. Research on high precision surface defect detection algorithm of high speed connector based on deep learning [D]. Chengdu: University of Electronic Science and Technology of China, 2021.

[本文引用: 2]

代牮, 赵旭, 李连鹏, 等

基于改进YOLOv5的复杂背景红外弱小目标检测算法

[J]. 红外技术, 2022, 44 (5): 504- 512

[本文引用: 1]

DAI Jian, ZHAO Xu, LI Lian-peng, et al

Improved YOLOv5-based infrared dim-small target detection under complex background

[J]. Infrared Technology, 2022, 44 (5): 504- 512

[本文引用: 1]

HOU Q, ZHOU D, FENG J. Coordinate attention for efficient mobile network design [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021: 13708-13717.

[本文引用: 1]

TAN M, PANG R, LE Q V. EfficientDet: scalable and efficient object detection [EB/OL]. [2022-04-07]. https://arxiv.org/pdf/1911.09070.pdf.

[本文引用: 1]

HAN K, WANG Y, TIAN Q, et al. GhostNet: more features from cheap operations [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 1577-1586.

[本文引用: 1]

LIU S, QI L, QIN H, et al. Path aggregation network for instance segmentation [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Lake City: IEEE, 2018: 8759-8768.

[本文引用: 2]

BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection [EB/OL]. [2022-04-07]. https://arxiv.org/pdf/2004.10934.pdf.

[本文引用: 1]

GHIASI G, CUI Y, SRINIVAS A, et al. Simple copy-paste is a strong data augmentation method for instance segmentation [EB/OL]. [2022-04-07]. https://arxiv.org/pdf/2012.07177.pdf.

[本文引用: 1]

LIN T Y, DOLLÁR P, GIRSHICK R, et al. Feature pyramid net-works for object detection [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 2117-2125.

[本文引用: 2]

/