CN116258707A - 一种基于改进的YOLOv5算法的PCB表面缺陷检测方法 - Google Patents
一种基于改进的YOLOv5算法的PCB表面缺陷检测方法 Download PDFInfo
- Publication number
- CN116258707A CN116258707A CN202310258991.2A CN202310258991A CN116258707A CN 116258707 A CN116258707 A CN 116258707A CN 202310258991 A CN202310258991 A CN 202310258991A CN 116258707 A CN116258707 A CN 116258707A
- Authority
- CN
- China
- Prior art keywords
- pcb
- module
- frame
- surface defect
- prediction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
- G06V10/763—Non-hierarchical techniques, e.g. based on statistics of modelling distributions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30141—Printed circuit board [PCB]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及PCB表面缺陷检测技术领域,具体涉及一种基于改进的YOLOv5算法的PCB表面缺陷检测方法,本方法包括:获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集;构建改进型YOLOv5网络架构,并得到改进的YOLOv5算法模型;用PCB表面缺陷样本数据集对改进的YOLOv5算法模型进行训练,得到训练好的改进的YOLOv5算法模型,即PCB表面缺陷检测模型;将待检测的PCB图像经图像预处理后输入PCB表面缺陷检测模型,输出该PCB图像中的缺陷位置及其对应的缺陷类别。本基于改进的YOLOv5算法的PCB表面缺陷检测方法可以提升对于PCB表面的小尺寸缺陷和器件密集分布处的缺陷的检测性能。
Description
技术领域
本发明涉及PCB表面缺陷检测技术领域,具体涉及一种基于改进的YOLOv5算法的PCB表面缺陷检测方法。
背景技术
随着制造业尤其是智能制造技术的蓬勃发展,电子信息产业作为我国重点发展的支柱产业,迎来更广阔的发展前景。印刷电路板(Printed circuit board,PCB)是电子学的关键概念之一,它已经有100多年的历史。电路板的主要优点是可以减少布线和装配误差,提高自动化水平。随着半导体设计和制造技术的不断发展,印刷电路板向超薄、高密度、多层、高性能方向发展。PCB也被广泛应用于日常生活中的手机、电脑、汽车等电子产品,以及卫星、雷达等领域。目前,中国的PCB产业正处在向高端产品制造升级的过程中,伴随着我国PCB企业生产规模的不断提升,以及技术水平、工艺水平的逐步提高,目前部分国内本土企业已具备了批量生产高端多层板的能力。未来,随着5G技术、新能源汽车的发展以及国产品牌崛起,预计我国印刷电路板行业前景一片光明。
早期,PCB缺陷检测是人工进行的。操作人员使用放大镜或校准过的显微镜来判断PCB是否合格。这种方法的缺点是成本高、缺陷发现不连续、数据收集困难。随着PCB板产量的不断增加,这种方法已经不再经济实用。
近年来,人们对检测PCB缺陷进行了大量研究。随着机器视觉技术的发展,自动化视觉PCB缺陷检测(Auto Optical Inspection,AOI)逐渐被业界所接受并得到广泛应用。研究人员开发了一种自动光学检测技术来测试和检查PCB是否存在诸如表面、尺寸缺陷或组件放置缺陷等。随着PCB越来越复杂,人工检查缺陷变得越来越困难,一段时间以来,AOI在验证装配后的印刷电路板质量方面发挥着重要作用,显著影响生产线的生产质量和效率。另一方面,随着深度学习的发展,许多研究人员将深度学习技术引入到缺陷检测相关应用中,以期更准确地检测PCB缺陷,从而提高生产率。
由于PCB表面的缺陷形状不规则,位置随意,大小不一。此外,通常也存在大量尺寸规模较小的目标,在这种情况下,如果直接应用已有方法进行PCB缺陷检测往往并不能得到令人满意的结果。
发明内容
本发明针对PCB缺陷检测任务中效率与性能的平衡问题,提出了一种改进的YOLOv5算法的PCB表面缺陷检测方法。
为了解决上述技术问题,本发明提供了一种基于改进的YOLOv5算法的PCB表面缺陷检测方法,包括:
步骤1、获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集;
步骤2、构建改进型YOLOv5网络架构,并得到改进的YOLOv5算法模型;
步骤3、用PCB表面缺陷样本数据集对改进的YOLOv5算法模型进行训练,得到训练好的改进的YOLOv5算法模型,即PCB表面缺陷检测模型;
步骤4、将待检测的PCB图像经图像预处理后输入PCB表面缺陷检测模型,输出该PCB图像中的缺陷位置及其对应的缺陷类别。
进一步的,所述步骤1中获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集,包括:利用标注软件对采集的PCB图像中表面缺陷的类型及其位置采用目标GT框进行手动标注制作标签,并将PCB图像及其标签共同构建包含表面缺陷的PCB图像数据集;采用图像数据增强方法和图像裁剪对PCB图像数据集中的图像进行图像预处理,以形成图片尺寸为640×640的PCB表面缺陷样本数据集;其中所述表面缺陷的类型包括缺失孔、鼠标咬伤、开路、短路、杂散和伪铜;所述图像数据增强方法包括:增强HSV、随机仿射、马赛克、图像尺度和其他变换;以及所述PCB表面缺陷样本数据集包括训练集、验证集和测试集。
进一步的,所述步骤2中的改进型YOLOv5网络架构包括特征提取骨干网络Backbone模块、特征融合颈部网络Neck模块和分类与定位预测头部网络Head模块;所述特征提取骨干网络Backbone模块适于输出三个不同尺度的特征图,其包括CBS模块、C3-ECA模块和SPPF模块;其中所述C3-ECA模块是在添加shortcut分支的C3模块的输出端串联一个ECA注意力模块构成,用于提取不同尺寸的特征图;所述CBS模块由卷积层、批归一化层和SiLu激活层串联构成;所述SPPF模块用于快速融合多尺度的特征。
进一步的,所述步骤3中用PCB表面缺陷样本数据集对改进的YOLOv5算法进行训练的过程,包括:
步骤30、将PCB表面缺陷样本数据集中至少60%的样本划分为训练集,剩余的样本分别划分为验证集和测试集;
步骤31、初始化改进的YOLOv5算法模型的网络权重、学习率、批处理大小、迭代次数;
步骤32、根据k-means++聚类算法,确定适用于PCB表面缺陷检测的初始锚框;
步骤33、将训练集中样本输入改进的YOLOv5算法模型中进行预训练,并基于步骤32中的初始锚框输出训练集中样本的预测框;
步骤34、采用Focal-EIOU损失函数,计算预测框与目标GT框之间的损失值,并将损失值反向传播优化更新改进的YOLOv5算法的网络权重;
步骤35、重复步骤33和步骤34,直至训练集中的样本用尽,得到预训练完成的改进的YOLOv5算法模型;
步骤36、将验证集中样本输入预训练完成的改进的YOLOv5算法模型中进行验证,并基于步骤32中的初始锚框输出验证集中样本的预测框;
步骤37、根据预测框和目标GT框,计算验证集中样本的表面缺陷类别的精确度值AP,并计算所有精确度值AP的平均精确度值mAP;
步骤38、重复步骤35至步骤37,直至多次获得的平均精确度值mAP等于或者趋近于一个固定值,得到训练完成的改进的YOLOv5算法模型;
步骤39、利用测试集对训练完成的改进的YOLOv5算法模型进行测试,评估该模型的性能。
进一步的,所述步骤33和步骤36中基于初始锚框输出预测框的方法包括:
所述分类与定位预测头部网络Head模块接收特征融合颈部网络Neck模块输出的大小为20×20的融合特征、大小为40×40的融合特征、大小为80×80的融合特征,并在融合特征图上应用初始锚框输出若干预测框,将其与目标GT框进行比对生成带有类概率、对象置信度得分和预测框的最终输出向量,采用非极大值抑制NMS操作对多个预测框进行筛选确定最终的PCB表面缺陷的预测框并输出。
进一步的,所述步骤32中根据k-means++聚类算法,确定适用于PCB表面缺陷检测的初始锚框,包括:
步骤321、从PCB表面缺陷样本数据集X中随机选择一个数据点作为聚类中心;
步骤322、计算PCB表面缺陷样本数据集X中每个数据点与先前选择的最近的聚类中心之间的欧式距离D(x),并计算各数据点被选为下一个聚类中心的概率P(x),用轮盘法选出下一个聚类中心;其中
所述各数据点被选为下一个聚类中心的概率表示为:
步骤323、重复步骤322,直到找到k个聚类中心;
步骤324、计算PCB表面缺陷样本数据集X中的每个数据点与k个聚类中心之间的距离,并将该数据点分配给距离最近的聚类中心所对应的簇中;
步骤325、将每个簇的聚类中心更新为该簇所有数据点的平均值;
步骤326、反复迭代步骤324和步骤325,直到每个簇的聚类中心不再发生变化,即得到用于PCB表面缺陷检测的初始锚框。
进一步的,所述步骤34中的Focal-EIOU损失函数,表示为:
LFocal-EIOU=IOUγLEIOU;
其中,IOU为预测框和目标GT框的交并比;
γ为控制异常值抑制程度的参数;
LEIOU为EIOU损失函数,其表示为:
其中,LIOU为IOU损失,Ldis为距离损失,Lasp为方向损失;
ρ表示欧氏距离的计算公式;
b为预测框的中心点,bgt为目标GT框的中心点;
c表示包含预测框和目标GT框的最小闭包区域的对角线距离;
w为预测框的宽度,wgt为目标GT框的宽度;
Cw表示包含预测框和目标GT框的最小闭包区域的宽度;
h为预测框的高度,hgt为目标GT框的高度;
Ch表示包含预测框和目标GT框的最小闭包区域的高度。
本发明的有益效果:
(1)针对原始YOLOv5算法采用的K-means算法存在收敛情况严重依赖于聚类中心初始化的不足,本发明在改进的YOLOv5算法模型的初始锚框选择上,引入K-means++聚类方法在训练数据集上获得合适的初始锚框,提升检测性能;
(2)针对原始YOLOv5算法采用的GIOU损失函数存在的收敛较慢,有可能无法精确的反映两个框的重合度大小等不足,本发明引入Focal-EIOU损失函数,加快了模型收敛速度,解决了回归中的样本不平衡问题。
(3)针对PCB表面工艺缺陷尺寸小,类间差异较大等特点,本发明引入嵌入了有效的通道关注视觉注意力模块(ECA注意力模块)的C3-ECA模块,在仅增加了少量的参数的情况下,提高了特征提取能力,并获得明显的性能增益。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的PCB表面缺陷检测方法的流程图;
图2是本发明的改进型YOLOv5网络架构的示意图;
图3是本发明的CBS模块的结构示意图;
图4是本发明的C3-ECA模块的结构示意图;
图5是本发明的ECA注意力模块的构造示意图;
图6是本发明的SPPF模块的结构示意图;
图7是本发明的特征融合颈部网络Neck模块中的C3模块的结构示意图;
图8是本发明的改进的YOLOv5算法模型进行训练和验证的结果示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本实施例提供了一种基于改进的YOLOv5算法的PCB表面缺陷检测方法,包括:
步骤1、获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集;
步骤2、构建改进型YOLOv5网络架构,并得到改进的YOLOv5算法模型;
步骤3、用PCB表面缺陷样本数据集对改进的YOLOv5算法模型进行训练,得到训练好的改进的YOLOv5算法,即PCB表面缺陷检测模型;
步骤4、将待检测的PCB图像经图像预处理后输入PCB表面缺陷检测模型,输出该PCB图像中的缺陷位置及其对应的缺陷类别。
在一些实施例中,所述步骤1中获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集,包括:利用标注软件对采集的PCB图像中表面缺陷的类型及其位置采用目标GT框进行手动标注制作标签,并将PCB图像及其标签共同构建包含表面缺陷的PCB图像数据集;采用图像数据增强方法和图像裁剪对PCB图像数据集中的图像进行图像预处理,以形成图片尺寸为640×640的PCB表面缺陷样本数据集;其中所述表面缺陷的类型包括缺失孔、鼠标咬伤、开路、短路、杂散和伪铜;所述图像数据增强方法包括:增强HSV、随机仿射、马赛克、图像尺度和其他变换;以及所述PCB表面缺陷样本数据集包括训练集、验证集和测试集。
在具体的实施方式中,本实施例选择北京大学发布的印刷电路板(PCB)瑕疵数据集作为PCB图像数据集,该PCB图像数据集包含1386张图像以及6种缺陷(缺失孔,鼠标咬伤,开路,短路,杂散,伪铜)用于检测、分类和配准任务。由于PCB图像数据集中每个原始图像的分辨率为2777×2138,且原始数据集中的数据量比较小,在训练时容易出现过拟合,则在训练前采用了图像数据增强方法,并将图像裁剪为640×640子图像以扩增样本数据,最终形成分别包含6720、2881和1067张图像样本的训练集、验证集和测试集。
在本实施例中,所述步骤2中的改进型YOLOv5网络架构包括特征提取骨干网络Backbone模块、特征融合颈部网络Neck模块和分类与定位预测头部网络Head模块;所述特征提取骨干网络Backbone模块适于输出三个不同尺度的特征图,其包括CBS模块、C3-ECA模块和SPPF模块;其中所述C3-ECA模块是在添加shortcut分支的C3模块的输出端串联一个ECA注意力模块构成,用于提取不同尺寸的特征图;所述SPPF模块用于快速融合多尺度的特征。
具体的,改进型YOLOv5网络架构的各个模块如图2所示。
1、特征提取骨干网络Backbone模块
输入的图片640*640*3经过预处理后首先经过第一CBS模块(卷积核尺寸大小为6×6,步长为2,padding为2),将其替代Focus模块进行特征提取,便于模型导出且效率更高,输出320*320*32的特征图,再依次经过第二CBS模块(卷积核尺寸大小为3×3,步长为2)、第一C3-ECA模块、第三CBS模块(卷积核尺寸大小为3×3,步长为2)、第二C3-ECA模块、第四CBS模块(卷积核尺寸大小为3×3,步长为2)、第三C3-ECA模块、第五CBS模块(卷积核尺寸大小为6×6,步长为2,padding为2)、第四C3-ECA模块和SPPF模块,其中第二C3-ECA模块、第三C3-ECA模块和SPPF模块适于分别向特征融合颈部网络Neck模块输出80*80*128、40*40*256以及20*20*512的特征图。
如图3所示,所述CBS模块由二维卷积层、批归一化层和SiLu激活层串联构成。
如图4所示,所述C3-ECA模块分成两路,主路依次经过一个卷积核尺寸大小为1×1,步长为1的CBS模块、输入与输出端之间添加shortcut分支的Bottleneck模块,该Bottleneck模块包含两个串联的卷积核尺寸大小为3×3,步长为2的CBS模块,其输出端与支路经过一个卷积核尺寸大小为3×3,步长为2的CBS模块的输出端进行Concat堆叠操作后,继续进入卷积核尺寸大小为1×1,步长为2的CBS模块,并在其末端加入ECA注意力模块。
ECA-NET是一种具有新颖通道注意机制的卷积神经网络,它改进了SE-NET的通道注意模块,遵循局部跨通道交互策略,不降维,可以有效地使用一维卷积实现。此外,ECA-NET提出了一种自适应选择一维卷积核大小的方法,以确定局部跨信道交互的覆盖范围,从而在提高性能的同时降低模型复杂性。
如图5所示,所述ECA注意力模块使用快速一维卷积捕获局部跨信道相互作用,并根据输入信道的大小生成卷积核尺寸大小为5×5的一维卷积层,再利用sigmoid函数生成每个通道的权重比,最后将所有通道按权重进行组合,使得有效特征得到增强,无效特征被显著抑制。
具体的,ECA注意力模块的流程思路如下:
1)输入维度为H*W*C的特征图;
2)使用全局平均池化GAP对输入的特征图在空间维度进行空间特征压缩,得到维度为1*1*C的特征图;
3)通过1*1卷积对压缩后的特征图进行通道特征学习,且仍输出维度为1*1*C的具有通道注意力的特征图;
4)将维度为1*1*C的包含通道注意力的特征图与原始输入的维度为H*W*C的特征图进行逐通道乘,以实现通道注意力结合,最终输出维度为H*W*C的具有通道注意力的特征图。
如图6所示,所述SPPF模块先经过一个卷积核尺寸大小为1×1,步长为1的CBS模块,再分别与经过一个Maxpool层(池化核尺寸大小为5×5,步长为2,padding为2),两个串联的Maxpool层和三个串联的Maxpool层的输出经过Concat堆叠操作,最后再经过一个卷积核尺寸大小为1×1,步长为1的CBS模块,输出20*20*512的特征图。SPPF模块采用多个小尺寸池化核级联代替原来的SPP模块中单个大尺寸池化核,从而在保留原有功能,即融合不同感受野的特征图,丰富特征图的表达能力的情况下,进一步提高了运行速度。
2、特征融合颈部网络Neck模块
将SPPF模块输出的20*20*512的特征图依次经过第六CBS模块(卷积核尺寸大小为1×1,步长为1)、Upsample上采样模块与第三C3-ECA模块输出的40*40*256的特征图进行Concat堆叠操作形成40*40*512的特征图,继续经过第一C3模块、第七CBS模块(卷积核尺寸大小为1×1,步长为1)、Upsample上采样模块与与第二C3-ECA模块输出的80*80*128的特征图进行Concat堆叠操作形成80*80*256的特征图,再经过第二C3模块,一方面向分类与定位预测头部网络Head模块输出80*80*128的融合特征图,另一方面,继续经过第八CBS模块(卷积核尺寸大小为3×3,步长为2)输出40*40*128的特征图,再与第七CBS模块输出的40*40*128的特征图进行Concat堆叠操作形成40*40*256的特征图,继续进入第三C3模块,一方面向分类与定位预测头部网络Head模块输出40*40*256的融合特征图,另一方面,继续经过第九CBS模块(卷积核尺寸大小为3×3,步长为2)输出20*20*256的特征图,再与第六CBS模块输出的20*20*256的特征图进行Concat堆叠操作形成20*20*512的特征图,继续经过第四C3模块向分类与定位预测头部网络Head模块输出20*20*512的融合特征图。
如图7所示,所述C3模块分成两路,主路依次经过一个卷积核尺寸大小为1×1,步长为1的CBS模块、一个包含两个串联的卷积核尺寸大小为3×3,步长为2的CBS模块的Bottleneck模块,其输出端与支路经过一个卷积核尺寸大小为3×3,步长为2的CBS模块的输出端进行Concat堆叠操作后,继续经过卷积核尺寸大小为1×1,步长为2的CBS模块输出。
3、分类与定位预测头部网络Head模块
所述分类与定位预测头部网络Head模块适于接收特征融合颈部网络Neck模块输出的分别经二维卷积后的20*20*512的融合特征图、40*40*256的融合特征图、80*80*128的融合特征图,并在融合特征图上应用初始锚框输出若干预测框,将其与目标GT框进行比对生成带有类概率、对象置信度得分和预测框的最终输出向量,采用非极大值抑制NMS操作对多个预测框进行筛选确定最终的PCB表面缺陷的预测框。
在一些实施例中,所述步骤3中用PCB表面缺陷样本数据集对改进的YOLOv5算法进行训练的过程,包括:
步骤30、将PCB表面缺陷样本数据集中至少60%的样本划分为训练集,剩余的样本分别划分为验证集和测试集;
步骤31、初始化改进的YOLOv5算法模型的网络权重、学习率、批处理大小、迭代次数;
具体的,可以选择在互联网上下载原始YOLOv5算法的网络权重作为改进的YOLOv5算法的初始网络权重,学习率的初始值可以设置为0.01,并采用余弦退火策略降低学习率,批处理大小可以设置为16,迭代次数可以设置为300。
步骤32、根据k-means++聚类算法,确定适用于PCB表面缺陷检测的初始锚框;
原始的YOLOv5算法采用K-means算法进行自适应锚框选择,由于K-means是一种启发式方法,不能保证收敛到全局最优,而且初始聚类中心的选择将直接影响聚类结果,K-means随机选取样本点作为聚类中心,容易导致局部收敛或需要增加迭代次数才能达到收敛。另一方面,在预训练参数中,默认初始先验锚框参数是通过在通用COCO目标检测数据集(包含80类物体)聚类训练得到的。然而,PCB表面缺陷类型的尺寸大小及数量与预训练集存在差异,因此有必要重新设计先验锚框的相关尺寸。
针对上述问题,在本实施例中,适于采用K-means++方法来优化初始聚类中心的选择,获得适用于PCB表面缺陷检测的锚框,可以将初始聚类中心的选择转化为概率问题,有利于估计更好的初始聚类中心,并加快算法的收敛速度。
具体的,根据k-means++聚类算法确定PCB表面缺陷检测的初始锚框的具体流程,包括:
步骤321、从PCB表面缺陷样本数据集X中随机选择一个数据点作为聚类中心;
步骤322、计算PCB表面缺陷样本数据集X中每个数据点与先前选择的最近的聚类中心之间的欧式距离D(x),并计算各数据点被选为下一个聚类中心的概率P(x),用轮盘法选出下一个聚类中心;其中
所述各数据点被选为下一个聚类中心的概率表示为:
步骤323、重复步骤322,直到找到k个聚类中心;
步骤324、计算PCB表面缺陷样本数据集X中的每个数据点与k个聚类中心之间的距离,并将该数据点分配给距离最近的聚类中心所对应的簇中;
步骤325、将每个簇的聚类中心更新为该簇所有数据点的平均值;
步骤326、反复迭代步骤324和步骤325,直到每个簇的聚类中心不再发生变化,即得到用于PCB表面缺陷检测的初始锚框。
步骤33、将训练集中样本输入改进的YOLOv5算法中进行预训练,并基于步骤32中的初始锚框输出PCB表面缺陷的预测框;
步骤34、采用Focal-EIOU损失函数,计算预测框与目标GT框之间的损失值,并将损失值反向传播优化更新改进的YOLOv5算法的网络权重;
原始的YOLOv5算法采用GIOU损失函数来计算损失,但是,当两个预测框高宽相同,且处于同一水平面时,GIOU就退化为IOU,因此当两个框不相交时,GIOU就不能反映两个框距离的远近,从而无法精确的反映两个框的重合度大小;此外,GIOU收敛较慢、回归不够准确。
针对上述问题,本实施例中Focal-EIOU损失函数代替GIOU损失函数,首先,EIOU将损失函数分为三块:距离损失、方向损失、IOU损失,有效地解决了由CIOU使用长宽比例造成的问题。其次,为了更好地提高模型性能,使用Focal L1 loss设置不同梯度,将错误率大的地方设置更高梯度,从而更关注难样本的识别,降低低质量样本对模型性能的影响。最终,Focal-EIOU损失函数通过整合EIOU loss和Focal L1 loss,解决了因样本质量低导致损失值波动较大的问题,加快了模型收敛速度,解决了回归中的样本不平衡问题。
具体的,Focal-EIOU损失函数,表示为:
LFocal-EIOU=IOUγLEIOU;
其中,IOU为预测框和目标GT框的交并比;
γ为控制异常值抑制程度的参数;
LEIOU为EIOU损失函数,其表示为:
其中,LIOU为IOU损失,Ldis为距离损失,Lasp为方向损失;
ρ表示欧氏距离的计算公式;
b为预测框的中心点,bgt为目标GT框的中心点;
c表示包含预测框和目标GT框的最小闭包区域的对角线距离;
w为预测框的宽度,wgt为目标GT框的宽度;
Cw表示包含预测框和目标GT框的最小闭包区域的宽度;
h为预测框的高度,hgt为目标GT框的高度;
Ch表示包含预测框和目标GT框的最小闭包区域的高度。
步骤35、重复步骤33和步骤34,直至训练集中的样本用尽,得到预训练完成的改进的YOLOv5算法模型;
步骤36、将验证集中样本输入预训练完成的改进的YOLOv5算法模型中进行验证,并基于步骤32中的初始锚框输出验证集中样本的预测框;
步骤37、根据预测框和目标GT框,计算验证集中样本的表面缺陷类别的精确度值AP,并计算所有精确度值AP的平均精确度值mAP;
步骤38、重复步骤35至步骤37,直至多次获得的平均精确度值mAP等于或者趋近于一个固定值,得到训练完成的改进的YOLOv5算法模型;
步骤39、利用测试集对训练完成的改进的YOLOv5算法模型进行测试,评估该模型的性能。
可以理解的是,所述步骤33和步骤36中基于初始锚框输出预测框的方法包括:所述分类与定位预测头部网络Head模块接收特征融合颈部网络Neck模块输出的大小为20×20的融合特征、大小为40×40的融合特征、大小为80×80的融合特征,并在融合特征图上应用初始锚框输出若干预测框,将其与目标GT框进行比对生成带有类概率、对象置信度得分和预测框的最终输出向量,采用非极大值抑制NMS操作对多个预测框进行筛选确定最终的PCB表面缺陷的预测框并输出。
(1)消融实验结果
本实施例中针对初始锚框自适应选择的聚类算法的改进、损失函数的改进以及嵌入的ECA注意力模块的改进采用测试集开展了消融实验,以验证本PCB表面缺陷检测方法的有效性,改进的YOLOv5算法模型的消融实验结果如表1所示。
表1改进YOLOv5模型消融实验结果
与原始YOLOv5算法模型相比,基于改进的YOLOv5算法的PCB表面缺陷检测模型在测试集上获得了更好的检测结果。首先使用K-means++方法改进了锚框的选择,使mAP值提高了0.32个百分点。此外,实验研究了EIoU、SIoU、Focal-EIoU等差分损失函数的效果,发现Focal-EIoU的效果最好,使mAP提高了1.36个百分点。由于增强了最有价值锚框在模型优化中的贡献权重,Focus-EIoU对小数据集和噪声盒具有更强的鲁棒性,与GIOU、EIOU、SIOU等其他损失函数相比,也得到了最好的mAP结果。注意机制模块的加入也提高了模型的性能,类似于在骨干网的SPPF层前面增加一个注意模块SE或ECA,ECA直接嵌入到C3模块中,合并后的模块被命名为C3-ECA,消融实验结果显示C3-ECA提升mAP值2.13个百分点,改善最为明显。
(2)训练与验证实验结果
模型在实际训练和验证过程中,模型的性能是相同的,相关结果如图8所示(其中box_loss用于监督检测框的回归,表示预测框与目标GT框之间的误差,obj_loss用于计算网络置信度,cls_loss用于监督类别分类,计算初始锚框与对应的标定分类是否正确,train表示训练过程,val表示验证过程,),这表明模型没有过度拟合数据。从结果可以看出,在训练过程中,损失函数值有下降的趋势。在训练批次达到20个之前,损失函数值迅速下降,而准确率、召回率和平均准确率迅速提高。另一方面,该模型具有较高的精度和查全率,说明该模型的假阴性率较低。
PCB表面缺陷样本数据集中六种缺陷类型对应的精确度值AP和平均精确度值mAP结果如表2所示。
表2六种PCB表面缺陷对应的精确度值AP和平均精确度值mAP结果
可见,本基于改进的YOLOv5算法的PCB表面缺陷检测方法的mAP值达到99.1%,具有良好的检测性能。
(3)对比实验结果及讨论
为了进一步验证方法的检测效果,在PCB缺陷数据集上,本发明选择与Faster R-CNN、SSD、RetinaNet、YOLOv4、YOLOv5s等先进的目标检测方法进行比较。Faster R-CNN采用的是一种具有代表性的两阶段深度学习目标检测器。SSD借鉴了Faster R-CNN的锚定机制和YOLO方法的端到端一步结构,在卷积阶段直接执行对象分类和位置回归。RetinaNet是一个统一的网络,由CNN骨干网和两个特定于任务的子网(分类子网和回归子网)组成。YOLOv4是一个于2020年4月发布的实时对象检测模型,在COCO数据集上实现了最先进的性能。
确定好对比方法之后,本实施例针对参数选择模型的精度、速度和模型尺寸进行对照比较,相关结果如表3所示。
表3本实施例与各对比方法在数据集上的检测对比结果
方法模型 | mAP@.5(%) | mAP@.5:.95(%) | 速度(FPS) | 参数(MB) |
Faster R-CNN | 95.32 | 64.5 | 7 | 528 |
SDD | 84.67 | 55.7 | 41 | 149 |
RetinaNet | 89.7 | 61.2 | 23 | 157 |
YOLOv4 | 97.63 | 63.3 | 62 | 248 |
YOLOv5s | 98.72 | 66.1 | 87 | 14.5 |
本实施例 | 99.1 | 69.3 | 86 | 17 |
可见,与传统方法相比,本实施例的模型具有明显的优势,并且获得了更高的FPS速率。首先,采用K-means++聚类方法确定PCB缺陷数据集的锚盒大小,提高模型对小物体缺陷定位的精度;其次,采用Focal-EIOU损失函数替换原有的置信度损失,补偿正样本类和负样本类之间的不平衡。最后,在优化后的YOLOv5网络中加入C3-ECA模块,提高重要特征通道的权重。通过上述改进,优化模型的mAP较Faster R-CNN、SDD、RetinaNet、YOLOv4和YOLOv5s分别提高了3.78、14.43、9.4、1.47和0.38个百分点,检测FPS满足工程应用的实时性要求。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (7)
1.一种基于改进的YOLOv5算法的PCB表面缺陷检测方法,其特征在于,包括:
步骤1、获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集;
步骤2、构建改进型YOLOv5网络架构,并得到改进的YOLOv5算法模型;
步骤3、用PCB表面缺陷样本数据集对改进的YOLOv5算法模型进行训练,得到训练好的改进的YOLOv5算法模型,即PCB表面缺陷检测模型;
步骤4、将待检测的PCB图像经图像预处理后输入PCB表面缺陷检测模型,输出该PCB图像中的缺陷位置及其对应的缺陷类别。
2.根据权利要求1所述的PCB表面缺陷检测方法,其特征在于,
所述步骤1中获取包含表面缺陷的PCB图像数据集,并进行图像预处理得到PCB表面缺陷样本数据集,包括:
利用标注软件对采集的PCB图像中表面缺陷的类型及其位置采用目标GT框进行手动标注制作标签,并将PCB图像及其标签共同构建包含表面缺陷的PCB图像数据集;
采用图像数据增强方法和图像裁剪对PCB图像数据集中的图像进行图像预处理,以形成图片尺寸为640×640的PCB表面缺陷样本数据集;其中
所述表面缺陷的类型包括缺失孔、鼠标咬伤、开路、短路、杂散和伪铜;
所述图像数据增强方法包括:增强HSV、随机仿射、马赛克、图像尺度和其他变换;以及
所述PCB表面缺陷样本数据集包括训练集、验证集和测试集。
3.根据权利要求1所述的PCB表面缺陷检测方法,其特征在于,
所述步骤2中的改进型YOLOv5网络架构包括特征提取骨干网络Backbone模块、特征融合颈部网络Neck模块和分类与定位预测头部网络Head模块;
所述特征提取骨干网络Backbone模块适于输出三个不同尺度的特征图,其包括CBS模块、C3-ECA模块和SPPF模块;其中
所述C3-ECA模块是在添加shortcut分支的C3模块的输出端串联一个ECA注意力模块构成,用于提取不同尺寸的特征图;
所述CBS模块由卷积层、批归一化层和SiLu激活层串联构成;
所述SPPF模块用于快速融合多尺度的特征。
4.根据权利要求3所述的PCB表面缺陷检测方法,其特征在于,
所述步骤3中用PCB表面缺陷样本数据集对改进的YOLOv5算法进行训练的过程,包括:
步骤30、将PCB表面缺陷样本数据集中至少60%的样本划分为训练集,剩余的样本分别划分为验证集和测试集;
步骤31、初始化改进的YOLOv5算法模型的网络权重、学习率、批处理大小、迭代次数;
步骤32、根据k-means++聚类算法,确定适用于PCB表面缺陷检测的初始锚框;
步骤33、将训练集中样本输入改进的YOLOv5算法模型中进行预训练,并基于步骤32中的初始锚框输出训练集中样本的预测框;
步骤34、采用Focal-EIOU损失函数,计算训练集中样本的预测框与目标GT框之间的损失值,并将损失值反向传播优化更新改进的YOLOv5算法的网络权重;
步骤35、重复步骤33和步骤34,直至训练集中的样本用尽,得到预训练完成的改进的YOLOv5算法模型;
步骤36、将验证集中样本输入预训练完成的改进的YOLOv5算法模型中进行验证,并基于步骤32中的初始锚框输出验证集中样本的预测框;
步骤37、根据验证集中样本的预测框和目标GT框,计算验证集中样本的表面缺陷类别的精确度值AP,并计算所有精确度值AP的平均精确度值mAP;
步骤38、重复步骤35至步骤37,直至多次获得的平均精确度值mAP等于或者趋近于一个固定值,得到训练完成的改进的YOLOv5算法模型;
步骤39、利用测试集对训练完成的改进的YOLOv5算法模型进行测试,评估该模型的性能。
5.根据权利要求4所述的PCB表面缺陷检测方法,其特征在于,
所述步骤33和步骤36中基于初始锚框输出预测框的方法包括:
所述分类与定位预测头部网络Head模块接收特征融合颈部网络Neck模块输出的大小为20×20的融合特征、大小为40×40的融合特征、大小为80×80的融合特征,并在融合特征图上应用初始锚框输出若干预测框,将其与目标GT框进行比对生成带有类概率、对象置信度得分和预测框的最终输出向量,采用非极大值抑制NMS操作对多个预测框进行筛选确定最终的PCB表面缺陷的预测框并输出。
6.根据权利要求4所述的PCB表面缺陷检测方法,其特征在于,
所述步骤32中根据k-means++聚类算法,确定适用于PCB表面缺陷检测的初始锚框,包括:
步骤321、从PCB表面缺陷样本数据集X中随机选择一个数据点作为聚类中心;
步骤322、计算PCB表面缺陷样本数据集X中每个数据点与先前选择的最近的聚类中心之间的欧式距离D(x),并计算各数据点被选为下一个聚类中心的概率P(x),用轮盘法选出下一个聚类中心;其中
所述各数据点被选为下一个聚类中心的概率表示为:
步骤323、重复步骤322,直到找到k个聚类中心;
步骤324、计算PCB表面缺陷样本数据集X中的每个数据点与k个聚类中心之间的距离,并将该数据点分配给距离最近的聚类中心所对应的簇中;
步骤325、将每个簇的聚类中心更新为该簇所有数据点的平均值;
步骤326、反复迭代步骤324和步骤325,直到每个簇的聚类中心不再发生变化,即得到用于PCB表面缺陷检测的初始锚框。
7.根据权利要求4所述的PCB表面缺陷检测方法,其特征在于,
所述步骤34中的Focal-EIOU损失函数,表示为:
LFocal-EIOU=IOUγLEIOU;
其中,IOU为预测框和目标GT框的交并比;
γ为控制异常值抑制程度的参数;
LEIOU为EIOU损失函数,其表示为:
其中,LIOU为IOU损失,Ldis为距离损失,Lasp为方向损失;
ρ表示欧氏距离的计算公式;
b为预测框的中心点,bgt为目标GT框的中心点;
c表示包含预测框和目标GT框的最小闭包区域的对角线距离;
w为预测框的宽度,wgt为目标GT框的宽度;
Cw表示包含预测框和目标GT框的最小闭包区域的宽度;
h为预测框的高度,hgt为目标GT框的高度;
Ch表示包含预测框和目标GT框的最小闭包区域的高度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310258991.2A CN116258707A (zh) | 2023-03-15 | 2023-03-15 | 一种基于改进的YOLOv5算法的PCB表面缺陷检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310258991.2A CN116258707A (zh) | 2023-03-15 | 2023-03-15 | 一种基于改进的YOLOv5算法的PCB表面缺陷检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116258707A true CN116258707A (zh) | 2023-06-13 |
Family
ID=86684333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310258991.2A Pending CN116258707A (zh) | 2023-03-15 | 2023-03-15 | 一种基于改进的YOLOv5算法的PCB表面缺陷检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116258707A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116503401A (zh) * | 2023-06-26 | 2023-07-28 | 成都数联云算科技有限公司 | 一种pcb连板目标检测方法、装置、设备和介质 |
CN116630301A (zh) * | 2023-06-20 | 2023-08-22 | 盐城工学院 | 基于超分辨率和YOLOv8的带钢表面小目标缺陷检测方法及系统 |
CN116682000A (zh) * | 2023-07-28 | 2023-09-01 | 吉林大学 | 一种基于事件相机的水下蛙人目标检测方法 |
CN116863274A (zh) * | 2023-07-17 | 2023-10-10 | 燕山大学 | 一种基于半监督学习的钢板表面缺陷检测方法及系统 |
CN116881830A (zh) * | 2023-07-26 | 2023-10-13 | 中国信息通信研究院 | 基于人工智能的自适应检测方法和系统 |
CN116883333A (zh) * | 2023-06-26 | 2023-10-13 | 华南理工大学 | 一种基于深度学习的纺织品表面缺陷检测方法 |
CN117351288A (zh) * | 2023-10-31 | 2024-01-05 | 湖北工业大学 | 一种基于改进YOLO v5算法的PCB缺陷检测方法 |
CN117664983A (zh) * | 2023-12-01 | 2024-03-08 | 西安科技大学 | 一种双层复合石英坩埚表面缺陷检测装置及方法 |
-
2023
- 2023-03-15 CN CN202310258991.2A patent/CN116258707A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116630301A (zh) * | 2023-06-20 | 2023-08-22 | 盐城工学院 | 基于超分辨率和YOLOv8的带钢表面小目标缺陷检测方法及系统 |
CN116503401A (zh) * | 2023-06-26 | 2023-07-28 | 成都数联云算科技有限公司 | 一种pcb连板目标检测方法、装置、设备和介质 |
CN116503401B (zh) * | 2023-06-26 | 2023-09-22 | 成都数联云算科技有限公司 | 一种pcb连板目标检测方法、装置、设备和介质 |
CN116883333A (zh) * | 2023-06-26 | 2023-10-13 | 华南理工大学 | 一种基于深度学习的纺织品表面缺陷检测方法 |
CN116883333B (zh) * | 2023-06-26 | 2024-03-22 | 华南理工大学 | 一种基于深度学习的纺织品表面缺陷检测方法 |
CN116863274A (zh) * | 2023-07-17 | 2023-10-10 | 燕山大学 | 一种基于半监督学习的钢板表面缺陷检测方法及系统 |
CN116881830A (zh) * | 2023-07-26 | 2023-10-13 | 中国信息通信研究院 | 基于人工智能的自适应检测方法和系统 |
CN116682000A (zh) * | 2023-07-28 | 2023-09-01 | 吉林大学 | 一种基于事件相机的水下蛙人目标检测方法 |
CN116682000B (zh) * | 2023-07-28 | 2023-10-13 | 吉林大学 | 一种基于事件相机的水下蛙人目标检测方法 |
CN117351288A (zh) * | 2023-10-31 | 2024-01-05 | 湖北工业大学 | 一种基于改进YOLO v5算法的PCB缺陷检测方法 |
CN117664983A (zh) * | 2023-12-01 | 2024-03-08 | 西安科技大学 | 一种双层复合石英坩埚表面缺陷检测装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116258707A (zh) | 一种基于改进的YOLOv5算法的PCB表面缺陷检测方法 | |
CN110060237B (zh) | 一种故障检测方法、装置、设备及系统 | |
CN111179217A (zh) | 一种基于注意力机制的遥感图像多尺度目标检测方法 | |
CN113421263B (zh) | 零件缺陷检测方法、设备、介质及计算机程序产品 | |
CN112561910A (zh) | 一种基于多尺度特征融合的工业表面缺陷检测方法 | |
CN113569667B (zh) | 基于轻量级神经网络模型的内河船舶目标识别方法及系统 | |
CN110348437B (zh) | 一种基于弱监督学习与遮挡感知的目标检测方法 | |
CN114627383B (zh) | 一种基于度量学习的小样本缺陷检测方法 | |
CN110717881A (zh) | 晶圆缺陷识别方法、装置、存储介质和终端设备 | |
KR20210038303A (ko) | 제품 분류 시스템 및 방법 | |
CN116843650A (zh) | 融合aoi检测与深度学习的smt焊接缺陷检测方法及系统 | |
CN110826457A (zh) | 一种复杂场景下的车辆检测方法及装置 | |
CN111144425B (zh) | 检测拍屏图片的方法、装置、电子设备及存储介质 | |
CN114972759A (zh) | 基于分级轮廓代价函数的遥感图像语义分割方法 | |
CN116823738A (zh) | 一种基于YOLOv8的PCB裸板表面缺陷检测方法 | |
CN115937659A (zh) | 基于Mask-RCNN的室内复杂环境下多目标检测方法 | |
CN113780423A (zh) | 一种基于多尺度融合的单阶段目标检测神经网络及工业品表面缺陷检测模型 | |
CN116012291A (zh) | 工业零件图像缺陷检测方法及系统、电子设备和存储介质 | |
CN112364974A (zh) | 一种基于激活函数改进的YOLOv3算法 | |
CN115147418A (zh) | 缺陷检测模型的压缩训练方法和装置 | |
CN115965862A (zh) | 基于掩码网络融合图像特征的sar舰船目标检测方法 | |
CN116363136B (zh) | 一种机动车部件自动化生产在线筛选方法及系统 | |
Niu et al. | An improved YOLOv5 network for detection of printed circuit board defects | |
CN114998222A (zh) | 汽车差速器壳体表面检测方法、电子设备及介质 | |
CN115170838A (zh) | 一种数据筛选方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |