基于改进YOLOv4的电子元器件表面缺陷检测技术研究

2021-08-06 10:15陈禹铭
沈阳理工大学学报 2021年2期
关键词:头部聚类尺寸

文 峰,陈禹铭

(沈阳理工大学信 息科学与工程学院,沈阳110159)

电子元器件表面的缺陷检测是深度学习应用的一个重要组成部分,其精准度、检测速度与训练速度会直接影响电子元器件产品的最终品质与生产节奏。人工检测的方法早已不能满足电子元器件现代化生产制造的需求。近些年,基于深度学习的缺陷检测已经有了广泛应用,如布匹表面缺陷检测[1]、磁环表面缺陷检测[2]、陶瓷砖表面缺陷检测[3]以及钢轨表面缺陷检测[4]等。因此,可以设计基于深度学习的目标检测方法,实现电子元器件表面的缺陷检测。

目前根据检测思路的不同将基于深度学习的目标检测网络框架分成两大类:

一类是基于候选区域的两阶段深度学习目标检测算法,主要有SPP-Net[5]、R-CNN[6]、Fast-RCNN、Faster-RCNN[7],及以此为基础的优化算法,其共同特点是先找到图片中物体的边界框,再用分类器确定框里的物体类别,并回归精修边界框的位置;

另一类是基于回归方法的端到端单阶段深度学习目标检测算法,主要有YOLO[8-10]、SSD[11]、FPN、RetinaNet[12-13]、RefineDet[14]、CornerNe等,其中YOLO系列算法在检测精度与速度方面表现突出,得到了广泛的应用。

1 YOLOv4目标检测框架

1.1 YOLOv4网络架构

在原有YOLOv3算法基础上,YOLOv4 算法从数据的处理方法、主干网络结构、网络的训练方式、激活函数优化、优化损失函数等方面进行大幅调整,如自对抗训练、DropBlock正则化、SPP(Spatial Pyramid Pooling,空间金字塔池化)等,使得模型在检测速度和精度上取得较大提升。

YOLOv4 网络架构由主干网络(backbone)、颈部网络(neck)、头部网络(head)三部分组成。主干网络的作用是对图像进行特征提取;颈部网络的作用是通过自上而下或自下而上的方式对各层的特征进行融合,如FPN(Feature Pyramid Networks、特征金字塔网络)、PAN(Path Aggregation Network,路径聚合网络)等;头部网络的作用是接收主干网络和颈部网络提取加工后的特征信息,进行分析计算后输出预测的结果。YOLOv4的网络架构如图1所示。

图1 YOLOv4网络架构

1.2 YOLOv4算法原理

YOLOv4算法首先通过主干网络提取输入样本的特征,之后通过颈部网络进行特征融合,最后输入到头部网络中进行检测。YOLOv4头部网络与YOLOv3头部网络相同,均将输入图像划分成(S,S)的网格,S由最终进入头部网络的特征图尺寸决定,如(76,76)尺寸的特征图,S值为76,每个单元格负责检测中心点落在该格子内的目标。为完成总共C个类别目标的检测,YOLOv4头部网络初始设定每个网格预测3个边界框以及边界框的置信度Conf(Object)[15-16],置信度的计算公式为

Conf(Object)=P(Object)×IOU

(1)

式中:P(Object)表示目标落入该候选网格中的概率;IOU(Intersection Over Union)代表真实框与预测框之间的交并比,公式为

(2)

式中:box(Pred)代表预测框;box(Truth)代表真实框;area()代表面积。每个预测框包含五个参数,分别为x、y、w、h、Conf(Object),其中x、y代表预测框中心与真实框中心的x轴偏移量与y轴偏移量;w、h分别代表预测框的宽和高[17]。依据网格的输出结果,单个头部网络最终的输出为S×S×3(5+C)大小的张量。

2 基于改进的YOLOv4目标检测

2.1 头部网络结构分析

原YOLOv4模型有3个头部分支进行目标分类与回归定位,每个头部分支对应3个尺寸的先验框。为了适应多尺度检测,较小尺寸的头部分支对应较大尺寸的先验框;反之,较大尺寸的头部分支对应较小尺寸的先验框。因此,在实际应用中可对实际数据集进行缺陷尺寸分析,通过去掉不必要的头部分支来简化模型并保障检测精度。

2.2 先验框尺寸优化

目标检测算法中先验框机制的引入摒弃了以往的多尺度滑动窗口遍历环节,提升了目标检测的速度和精度[18]。YOLOv4算法的损失由坐标损失、IOU损失和分类损失三部分构成,使用更符合目标尺寸的先验框可以减少IOU损失,从而降低算法整体的损失值,加快模型的收敛,提升模型的检测效果。

由于数据集的不同,COCO数据集聚类得到的先验框尺寸并不适合实际应用。需使用聚类分析方法对实际应用数据集的标注框进行分析,获取与数据集中目标尺寸及比例相匹配的先验框尺寸。聚类算法一般使用欧氏距离作为样本点到聚类中心的距离,但使用欧式距离衡量标签相似性会导致大尺寸标签产生较大的误差,严重影响聚类的结果,故本文采用聚类中心与标签的交并比IOU作为聚类的相似度参数。聚类距离计算公式为

d=1-IOU

(3)

聚类的数量代表了不同尺寸先验框的数量,先验框的数量能够确定头部网络的分支数量,通过选择适当的聚类数量,可对头部分支进行裁剪。此外,根据聚类中心的尺寸调整头部网络中先验框的尺寸,能够提升模型的收敛速度与检测效果。

2.3 YOLOv4网络结构的调整

YOLOv4复杂的网络架构能够对大部分数据集都有较高的检测精度,但复杂的网络架构也会带来计算量的增加。网络架构的调整主要是在满足精度要求的基础上,最大化地削减网络的计算量,提升检测速度与训练速度。因此,考虑训练速度、检测速度与检测精度三者的均衡,本文设计三种逐步简化的网络模型,分别为模型Ⅰ、模型Ⅱ、模型Ⅲ。对于YOLOv4网络模型的调整主要有以下几个方面。

(1)头部网络调整

YOLOv4 模型的原有三个分支,分别用来识别图像中进入网络后的大中小三个尺寸的目标。通过对元器件缺陷目标尺寸进行聚类分析可知,保留针对大目标的头部检测分支不能提升精度,可将其去除,保留对中等目标和小目标检测效果较好的两个分支来实现头部网络的裁剪。

(2)颈部网络调整

对颈部网络中特征融合方式进行调整,由于目标尺寸主要为小目标,将大尺寸特征图下采样后与中等尺寸特征图进行融合提升的检测效果有限,故去除颈部网络中用于特征融合的PAN结构,可进一步减少网络的计算量,提升网络模型的训练速度与检测速度。

(3)主干网络裁剪

主干网络的深度直接影响特征提取速度与网络的整体速度。尽管深层的模型非线性表达能力更好,但同时也带来计算量的增加。若检测目标特征明显、背景简单,可通过适当减少主干网络残差结构的数量,降低网络模型的复杂度。

模型Ⅰ在原网络结构基础上去除针对大目标的头部检测分支,结构如图2所示。模型Ⅱ在模型Ⅰ的基础上去除颈部网络中用于特征融合的PAN结构与SPP结构,同时调整主干网络中残差结构的数量,结构如图3所示。模型Ⅲ在模型Ⅱ的基础上进一步降低网络的深度,去掉输出尺寸为(19,19)的残差结构,同时对颈部网络进行相应调整,去除(19,19)尺寸的特征图上采样后与(38,38)尺寸特征图进行融合的FPN结构,其结构如图4所示。

图2 模型Ⅰ架构图

图3 模型Ⅱ架构图

3 实验与分析

3.1 数据集

本文训练和测试的数据集来源于某厂拍摄的电子元器件图像。其中测试集图片数量为500,训练集数量为3000。数据集中缺陷类别共为4类,分别为A类(边缘缺失)、B类(内角破损)、C类(多余焊锡)、D类(内部弧形区域破损),各类别之间特征明显。

图4 模型Ⅲ架构图

3.2 K-means++聚类分析

对数据集进行聚类分析,能够对模型的裁剪与先验框尺寸的设置提供可靠的依据,本实验采用K-means++算法对数据集进行聚类分析。

使用K-means++算法进行聚类后得到平均IOU(目标标注框与其所在簇的簇心的平均交并比)与聚类中心k的关系如图5所示。

图5 平均IOU与聚类中心k的关系曲线

由图5可见,随着k的逐渐增大,平均IOU也逐渐增大,但曲线斜率逐渐减小,k大于6时,平均IOU基本不变,故本实验选择聚类中心个数为k=6,在此基础上得到大小分别为(1,16)、(16,6)、(13,12)、(30,17)、(58,12)、(59,33)的先验框,并依据尺寸大小分配给目标检测模型中两个不同的头部。

3.3 样本增强

工业生产中由人工提取的训练样本数量有限,严重影响模型的实际检测效果。为提高模型的泛化能力,提升模型的检测效果,使用样本增强方法对训练样本进行数据扩增。

本文除使用调整对比度、曝光度、加噪声干扰等数据增强方式外,根据所使用数据集的特点设计一种样本增强方式来扩充训练数据集,其过程如下。

(1)将样本标记后产生的掩码图以二值图像的形式读取,然后将样本原图与二值图像形式的掩码图的像素值相加,得到背景为黑色的缺陷图,如图6所示。

图6 生成缺陷图

(2)对缺陷图进行物理变换,改变缺陷的物理形态(多次调整缺陷的缩放倍数与角度,使用邻近插值或双线性插值等方法彻底改变缺陷物理形态,形成新的缺陷)。

(3)先将缺陷图由彩色图转换为灰度图,而后设置阈值将图像进行二值化,使图像变为黑白两色的形式,制成缺陷图的蒙版;与蒙版中黑色区域重叠的像素将被删除,与蒙版中白色区域重叠的像素将被保留,蒙版中黑色像素值是0,白色像素值是255;剔除掉背景图(不含缺陷的正常样本)中的缺陷所在区域和缺陷上的空白区域,形成新的无缺陷背景图;最后把新的缺陷补到背景图中合成一个新的样本。样本生成过程示例如图7所示。

3.4 评价指标

在目标检测领域,为准确评估模型检测效果,需要计算被检目标的精准度(precision)、召回率(recall)及均衡平均数(f1-score)。

precision度量模型预测的准确率,其含义是模型预测出来的正样本中实际正样本数量,其计算式为

(4)

式中:TP是实际为正样本且被模型判定为正样本的数量;FP是实际为负样本但被模型判定为正样本的数量。

recall度量找到所有正样本的能力,其计算式为

(5)

式中FN是实际为正样本但被模型判定为负样本的数量。

平均精准度指标(Average Precision,AP)综合了精准率和召回率的结果,用于评估模型在单个检测类别上的表现。mAP(mean Average Precision)为各类别AP的平均值。

f1-score是precision和recall的调和平均值,其作用是对precision和recall进行整体评价,其计算式为

(6)

totalBFLOPS描述网络进行卷积运算时的计算量,通过统计多次卷积的计算量总和得到,表示模型的复杂度。

3.5 实验设置

本实验使用计算机 CPU 为 i7-8750H,内存为16GB,GPU 为 NVIDIA GeForce GTX2080Ti,在Ubuntu操作系统下对原始 YOLOv4 网络和本文调整的 YOLOv4 网络分别进行训练。学习率设置为0.001,batch size为64,衰减系数设置为0.0005,迭代10000次。选择steps模式更新学习率,在训练迭代次数达到8000和9000 次时,将学习率分别降低至初始学习率的10%和1%。实验中测试集数量为500。A、B、C各组实验中训练集数量分别为500、1000、3000,数据增强后的训练集数量分别为1000、3000、9000。

3.6 实验结果与分析

本文设计3组共18个实验,分别验证训练集样本数量、网络输入尺寸、模型深度等对网络整体检测效果的影响,实验结果如表1、表2、表3所示,其中模型名称“YOLOv4-416o”代表网络输入尺寸为(416,416)且不使用数据增强的YOLOv4网络;模型名称“YOLOv4-416”代表网络输入尺寸为(416,416)的YOLOv4网络;模型名称“YOLOv4-608”代表网络输入尺寸为(608,608)的YOLOv4网络;模型名称“模型Ⅰ”、“模型Ⅱ”、“模型Ⅲ”代表网络输入尺寸为(608,608)的改进YOLOv4网络。

表1 A组实验结果统计表

表2 B组实验结果统计表

表3 C组实验结果统计表

对比A、B、C三组实验中的YOLOv4-416o可知,随着训练集数量不断增多,mAP逐步提升,证实相同实验条件下训练样本数量越多,检测效果越好。

对比各组实验中YOLOv4-416o与YOLOv4-416的结果可见,采用样本增强方法后,mAP有一定的提升,说明样本增强方法能够提高训练的模型对缺陷形态的适应性,进而提升模型对未知缺陷的检测精度。

对比各组实验中YOLOv4-416与YOLOv4-608的结果发现,采用相同的数据集进行训练时,将网络的输入尺寸调整到(608,608)时,mAP与recall都有一定的提升,但totalBFLOPS也上涨67.694;可见提高网络的输入尺寸对网络检测性能有一定的改善,原因是网络输入尺寸的提高影响网络最后输出的特征图的尺寸,如416×416的训练网络,输出的最大特征图尺寸是52×52,而608×608的训练网络,输出的最大特征图尺寸是76×76;在目标检测过程中由于小目标本身含有的像素点较少,在卷积过程中容易造成信息的丢失,而尺寸比较大的特征图相对于小尺寸特征图能够更好地保留小目标的特征信息,故虽然尺寸的增加会带来计算量的增加,但特征图尺寸越大对小目标的检测效果越好。

对比各组实验中的YOLOv4-608、模型Ⅰ、模型Ⅱ、模型Ⅲ的结果发现,随着模型的简化,计算量大幅降低,而mAP仅有少量的损失;针对中小尺寸的目标检测可以通过裁剪头部分支达到简化模型的目的,当检测目标具有特征明显、背景简单的特点时,并不需要十分复杂的网络结构就能达到良好的检测效果;recall与f1-score并没有显著的变化,说明本文提出的模型调整方法对电子元器件表面缺陷具有较好的检测效果。检测实例效果如图8所示。

图8 各类缺陷检测图

实验过程中,在保证每个模型训练时batch size为64且迭代次数为10000的情况下,统计每个模型训练所消耗的平均时间,结果如表4所示。

表4 模型训练时间统计表

由表4可见,模型Ⅱ与模型Ⅲ相比于其他模型训练所消耗的平均时间节省60%以上,极大缩减模型训练所需要的时间成本。

4 结论

根据电子元器件数据集,提出基于改进YOLOv4的目标检测网络模型。根据实验数据集的聚类分析结果,将原YOLOv4算法中3个头部分支裁剪为2个,缩减了网络的模型参数;通过裁剪主干网络中的残差结构,降低了网络的深度,提升了网络模型训练速度和检测速度;通过提高网络模型训练与检测时的网络输入尺寸提升了网络模型对小目标的检测能力;通过设计样本增强方法提升了模型的泛化能力,进而提升了模型的实际检测效果。

实验结果表明,使用本文提出的基于改进YOLOv4的电子元器件表面缺陷检测方法,能够满足工业生产中对模型检测精度、模型训练速度和模型检测速度的需求。

猜你喜欢
头部聚类尺寸
一种傅里叶域海量数据高速谱聚类方法
基于知识图谱的k-modes文本聚类研究
CIIE Shows Positive Energy of Chinese Economy
自动驾驶走向L4 企业头部效应显现
一种改进K-means聚类的近邻传播最大最小距离算法
火箭的头部为什么是圆钝形?
更换一只更大尺寸的低音炮和再买一只相同尺寸的低音炮 哪种方法比较合适?
基于模糊聚类和支持向量回归的成绩预测
佳石选赏
佳石选赏