【技术实现步骤摘要】
一种基于改进YOLOv5的PCB板表面缺陷检测方法
[0001]本专利技术属于模式识别
,具体涉及一种PCB板表面缺陷检测方法。
技术介绍
[0002]印刷电路板是组成电子产品的重要部分,其质量检测成为满足电子产品能否长期正常运作的前提。印刷电路板(Printed Circuit Board,PCB)主要由绝缘基材和导体两类材料组成,在各种电子产品中起到支撑和互连的作用。在印刷电路板出现之前,早期电子元器件之间的互连依靠普通导线直接连接完成,存在尺寸大、装配工艺复杂和电路稳定性差等问题。但是,随着工业自动化制造技术的迅速发展,电子产品的制造开始朝着多功能、集成化和智能化的方向发展。其中,印刷电路板作为电子产品的基础部件,其质量直接影响电子产品的性能。然而,PCB的制作工艺非常复杂,在整个生产制造过程中不可避免受到各种因素的影响,对其质量检测是一项非常重要的工作。虽然深度学习目标检测方法在PCB表面缺陷检测领域中取得了极大的发展,但是依旧存在标签样本数据缺乏、特征学习能力有限、深度网络训练困难以及检测精度和速度不均衡等问题。目标小,难以发现,前景和背景太接近,借鉴COD伪装目标检测和小目标检测的优点去融合,attention有助于更好的定位和识别小目标缺陷。
技术实现思路
[0003]为了克服现有技术的不足,本专利技术提供了一种基于改进YOLOv5的PCB板表面缺陷检测方法,改进YOLOv5的特征融合网络PANet为BiFPN结构,且添加了SimAM注意力机制,对空间金字塔池化模型SPPF优化后为 ...
【技术保护点】
【技术特征摘要】
1.一种基于改进YOLOv5的PCB板表面缺陷检测方法,其特征在于,包括如下步骤:步骤1:获取数据集并进行数据预处理;步骤1
‑
1:对获取的PCB板表面缺陷原始数据集进行截取、翻转、映射,将数据集进行标签转换并对数据集进行划分;将数据集划分为训练、验证和测试集;步骤1
‑
2:采用mosaic数据增强方式,使用4张图片的数据,经过随机缩放、随机裁剪、随机分布的方式进行拼接,将4张图片组合成一张图片;步骤1
‑
3:将数据集图像统一缩放到同一个尺寸,然后送入检测网络YOLOv5s_BSSs中;所述检测网络YOLOv5s_BSSs具体描述如后;步骤2:在YOLOv5主干中,将原来的Focus操作替换成一个卷积层,增加了SimAM注意力机制,并且对空间金字塔池化结构SPPF进行优化,改为SPPFCSPC,具体流程为:步骤2
‑
1:对于第0层,[
‑
1,1,Conv,[64,6,2,2]]的模块参数args[64,6,2,2]被解析成[3,32,6,2,2],64代表卷积核的数量,最终的卷积核数量乘以width_multiple,为64
×
0.5=32即第0层输出的维度;6为卷积核大小,2为卷积核的步长,3是本层的输入维度因为输入的图像是彩色的RGB 3通道;步骤2
‑
2:对于第1层,[
‑
1,1,Conv,[128,3,2]]的模块参数[128,3,2]被解析成[32,64,3,2],32为通道数即上一层输出的维度;128代表卷积核的数量,最终的卷积核数量为128
×
0.5=64即第1层输出的维度;步骤2
‑
3:对于第2层,[
‑
1,3,C3,[128]]的模块参数[128]被解析成[64,64,1],64为通道数即上一层输出的维度;128代表卷积核的数量,最终的卷积核数量为128
×
0.5=64即第2层输出的维度;步骤2
‑
4:对于第3层,[
‑
1,1,Conv,[256,3,2]]的模块参数[256,3,2]被解析成[64,128,3,2],64为通道数即上一层输出的维度;256代表卷积核的数量,最终的卷积核数量为256
×
0.5=128即第3层输出的维度;步骤2
‑
5:对于第4层,[
‑
1,6,C3,[256]]的模块参数[256]会被解析成[128,128,2],128为通道数即上一层输出的维度;256代表卷积核的数量,最终的卷积核数量为256
×
0.5=128即第4层输出的维度;步骤2
‑
6:对于第5层,[
‑
1,1,Conv,[512,3,2]]的模块参数[512,3,2]被解析成[128,256,3,2],128为通道数即上一层输出的维度;512代表卷积核的数量,最终的卷积核数量为512
×
0.5=256即第5层输出的维度;步骤2
‑
7:对于第6层,[
‑
1,9,C3,[512]]的模块参数[512]被解析成[256,256,3],256为通道数即上一层输出的维度;256代表卷积核的数量,最终的卷积核数量为512
×
0.5=256即第6层输出的维度;步骤2
‑
8:对于第7层,[
‑
1,1,Conv,[1024,3,2]]的模块参数[1024,3,2]被解析成[256,512,3,2],256为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第7层输出的维度;步骤2
‑
9:对于第8层,[
‑
1,3,C3,[1024]]的模块参数[1024]被解析成[512,512,1],512为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第8层输出的维度;步骤2
‑
10:对于第9层,[
‑
1,1,SimAM,[1024]]的模块参数[1024]会被解析成[512,
512],512为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第9层输出的维度;步骤2
‑
11:对于第10层,[
‑
1,1,SPPFCSPC,[1024,5]]的模块参数[1024,5]被解析成[512,512,5],512为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第10层输出的维度;步骤3:在YOLOv5的Neck中,将原来的Concat替换成BiFPN,并且将P4、P5结构去掉以减少网络规模,具体流程为:步骤3
‑
1:对于第11层,[
‑
1,1,Conv,[512,1,1]]的模块参数[512,1,1]被解析成[512,256,1,1],512为通道数即上一层输出的维度;512代表卷积核的数量,最终的卷积核数量为512
×
0.5=256即第11层输出的维度;步骤3
‑
2:对于第12层,[
‑
1,1,nn.Upsample,[None,2,nearest]]的模块参数不变;步骤3
‑
3:对于第13层,[[
‑
1,6],1,BiFPN_Add2,[256,256]]的模块参数[256,256]不变;步骤3
‑
4:对于第14层,[
‑
1,3,C3,[512,False]]的模块参数[512,False]被解析成[256,256,1,False],256为通道数即上一层输出的维度;512代表卷积核的数量,最终的卷积核数量为512
×
0.5=256即第14层输出的维度;步骤3
‑
5:对于第15层,[
‑
1,...
【专利技术属性】
技术研发人员:王成,张嘉鹏,王英民,刘思杰,王奇,陶林伟,郑琨,黄爱萍,
申请(专利权)人:西北工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。