一种基于改进YOLOv5的PCB板表面缺陷检测方法技术

技术编号:36706538 阅读:11 留言:0更新日期:2023-03-01 09:29
本发明专利技术公开了一种基于改进YOLOv5的PCB板表面缺陷检测方法,改进YOLOv5的特征融合网络PANet为BiFPN结构,且添加了SimAM注意力机制,对空间金字塔池化模型SPPF优化后为SPPFCSPC模型,并且缩减了head中用于检测中、大目标的P4、P5结构,使其能够更加准确提取并检测小目标的缺陷,来弥补缺陷检测尺度不足的问题,同时为了进一步解决小目标缺陷检测,优化了训练方法,采用迁移学习的方法,对训练网络的训练权重和参数进行多重迁移化处理,使得短期训练的程度更加充分。的程度更加充分。的程度更加充分。

【技术实现步骤摘要】
一种基于改进YOLOv5的PCB板表面缺陷检测方法


[0001]本专利技术属于模式识别
,具体涉及一种PCB板表面缺陷检测方法。

技术介绍

[0002]印刷电路板是组成电子产品的重要部分,其质量检测成为满足电子产品能否长期正常运作的前提。印刷电路板(Printed Circuit Board,PCB)主要由绝缘基材和导体两类材料组成,在各种电子产品中起到支撑和互连的作用。在印刷电路板出现之前,早期电子元器件之间的互连依靠普通导线直接连接完成,存在尺寸大、装配工艺复杂和电路稳定性差等问题。但是,随着工业自动化制造技术的迅速发展,电子产品的制造开始朝着多功能、集成化和智能化的方向发展。其中,印刷电路板作为电子产品的基础部件,其质量直接影响电子产品的性能。然而,PCB的制作工艺非常复杂,在整个生产制造过程中不可避免受到各种因素的影响,对其质量检测是一项非常重要的工作。虽然深度学习目标检测方法在PCB表面缺陷检测领域中取得了极大的发展,但是依旧存在标签样本数据缺乏、特征学习能力有限、深度网络训练困难以及检测精度和速度不均衡等问题。目标小,难以发现,前景和背景太接近,借鉴COD伪装目标检测和小目标检测的优点去融合,attention有助于更好的定位和识别小目标缺陷。

技术实现思路

[0003]为了克服现有技术的不足,本专利技术提供了一种基于改进YOLOv5的PCB板表面缺陷检测方法,改进YOLOv5的特征融合网络PANet为BiFPN结构,且添加了SimAM注意力机制,对空间金字塔池化模型SPPF优化后为SPPFCSPC模型,并且缩减了head中用于检测中、大目标的P4、P5结构,使其能够更加准确提取并检测小目标的缺陷,来弥补缺陷检测尺度不足的问题,同时为了进一步解决小目标缺陷检测,优化了训练方法,采用迁移学习的方法,对训练网络的训练权重和参数进行多重迁移化处理,使得短期训练的程度更加充分。
[0004]本专利技术解决其技术问题所采用的技术方案包括如下步骤:
[0005]步骤1:获取数据集并进行数据预处理;
[0006]步骤1

1:对获取的PCB板表面缺陷原始数据集进行截取、翻转、映射,将数据集进行标签转换并对数据集进行划分;将数据集划分为训练、验证和测试集;
[0007]步骤1

2:采用mosaic数据增强方式,使用4张图片的数据,经过随机缩放、随机裁剪、随机分布的方式进行拼接,将4张图片组合成一张图片;
[0008]步骤1

3:将数据集图像统一缩放到同一个尺寸,然后送入检测网络YOLOv5s_BSSs中;
[0009]所述检测网络YOLOv5s_BSSs具体描述如后;
[0010]步骤2:在YOLOv5主干中,将原来的Focus操作替换成一个卷积层,增加了SimAM注意力机制,并且对空间金字塔池化结构SPPF进行优化,改为SPPFCSPC,具体流程为:
[0011]步骤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通道;
[0012]步骤2

2:对于第1层,[

1,1,Conv,[128,3,2]]的模块参数[128,3,2]被解析成[32,64,3,2],32为通道数即上一层输出的维度;128代表卷积核的数量,最终的卷积核数量为128
×
0.5=64即第1层输出的维度;
[0013]步骤2

3:对于第2层,[

1,3,C3,[128]]的模块参数[128]被解析成[64,64,1],64为通道数即上一层输出的维度;128代表卷积核的数量,最终的卷积核数量为128
×
0.5=64即第2层输出的维度;
[0014]步骤2

4:对于第3层,[

1,1,Conv,[256,3,2]]的模块参数[256,3,2]被解析成[64,128,3,2],64为通道数即上一层输出的维度;256代表卷积核的数量,最终的卷积核数量为256
×
0.5=128即第3层输出的维度;
[0015]步骤2

5:对于第4层,[

1,6,C3,[256]]的模块参数[256]会被解析成[128,128,2],128为通道数即上一层输出的维度;256代表卷积核的数量,最终的卷积核数量为256
×
0.5=128即第4层输出的维度;
[0016]步骤2

6:对于第5层,[

1,1,Conv,[512,3,2]]的模块参数[512,3,2]被解析成[128,256,3,2],128为通道数即上一层输出的维度;512代表卷积核的数量,最终的卷积核数量为512
×
0.5=256即第5层输出的维度;
[0017]步骤2

7:对于第6层,[

1,9,C3,[512]]的模块参数[512]被解析成[256,256,3],256为通道数即上一层输出的维度;256代表卷积核的数量,最终的卷积核数量为512
×
0.5=256即第6层输出的维度;
[0018]步骤2

8:对于第7层,[

1,1,Conv,[1024,3,2]]的模块参数[1024,3,2]被解析成[256,512,3,2],256为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第7层输出的维度;
[0019]步骤2

9:对于第8层,[

1,3,C3,[1024]]的模块参数[1024]被解析成[512,512,1],512为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第8层输出的维度;
[0020]步骤2

10:对于第9层,[

1,1,SimAM,[1024]]的模块参数[1024]会被解析成[512,512],512为通道数即上一层输出的维度;1024代表卷积核的数量,最终的卷积核数量为1024
×
0.5=512即第9层输出的维度;
[0021]步骤2

11:对于第10层,[

1,1,SPPFCSPC,[1024,5]]的模块参数[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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,...

【专利技术属性】
技术研发人员:王成张嘉鹏王英民刘思杰王奇陶林伟郑琨黄爱萍
申请(专利权)人:西北工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1