一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于YOLOv5的PCB缺陷检测方法与流程

2021-10-24 08:09:00 来源:中国专利 TAG:缺陷 检测方法 工业生产 检测 yolov5pcb

一种基于yolov5的pcb缺陷检测方法
技术领域
1.本发明涉及一种pcb缺陷检测方法,具体为一种基于yolov5的pcb缺陷检测方法,属于工业生产中的pcb缺陷检测技术领域。


背景技术:

2.随着大数据、人工智能、5g通信、物联网等高新技术的迅速发展,推动了印刷电路板(以下简称pcb板)的发展。pcb板作为电子产品之母,对电子产品的重要性如同人类的心脏。各类电子产品的组成部件中pcb板必不可少,且电子产品的质量很大程度上也取决于pcb板的质量,因此pcb板对于各个品牌和商家的竞争力也有很大影响,在出厂时对于pcb裸板的质量要求和检测效率要求也越来越高。
3.目前,对于pcb裸板的检测主要还是依靠传统的人工目检,但是随着线路密度的不断增高,人工进行检测的难度随之加大。为了解决这一问题,有部分企业使用了针床检测在线测试的方法对其进行检测,虽然这种方法相较于传统人工方法有了明显的进步,但同时带来了模板成本高、检测尺寸受到限制、接触式检测方式易对pcb裸板造成损坏等局限性,依然无法达到产品批量化、高精度、高效率检测的要求。利用较为先进的以机器视觉为核心的自动光学检测系统(automatic optical inspection,aoi)虽然能够解决上述问题,但是由于功能齐全产业完善的企业大多是国外企业,不断引进国外的aoi设备无疑会增加国内企业的成本,对于国内行业的发展不利,因此解决这一问题是pcb行业的巨大挑战。


技术实现要素:

4.本发明的目的就在于为了解决问题而提供一种基于yolov5的pcb缺陷检测方法。
5.本发明通过以下技术方案来实现上述目的:一种基于yolov5的pcb缺陷检测方法,包括以下步骤:
6.步骤一、采集图像,拍摄生产出的pcb图像;
7.步骤二、挑选图像并裁剪,对含有缺陷的pcb图像进行挑选、裁剪、增加亮度。
8.步骤三、图像预处理并标注,利用得到的子图像,进行数据增强,构建训练样本集、验证样本集、测试样本集;
9.步骤四、图像训练,利用所构建的训练样本集和验证样本集,对yolov5权重进行训练以及验证获训练好的yolov5模型;
10.步骤五、图像测试,使用训练好的yolov5模型对测试集pcb图像进行检测,分析检测结果。
11.作为本发明再进一步的方案:所述步骤一中,具体包括以下步骤:
12.a、在pcb生产线配备高清线阵相机;
13.b、当pcb通过触发传感器,启动成像设备后对pcb图像进行拍摄,获取高清线阵图像;
14.c、对拍摄的图像进行裁剪,剥离背景,只保留pcb图像。
15.作为本发明再进一步的方案:所述步骤二中,具体包括以下步骤:
16.a、在拍摄的图像里挑选含有缺陷的图像;
17.b、为减小数据量和方便处理,将含有包括的pcb缺陷的部分图像裁剪成600*600的统一大小;
18.c、对裁剪后的图片提高亮度,方便计算机识别。
19.作为本发明再进一步的方案:所述步骤三中,具体包括以下步骤:
20.a、对图像进行数据增强,本模型采用的数据增强方式有:图像小角度旋转、图像翻转、图像随机融合、网格掩膜、凸面叠加数据增强;
21.b、对图像中的缺陷进行人工标注,生成xml文件;
22.c、以8:1:1的比例把图像分为训练集、验证集、测试集。
23.作为本发明再进一步的方案:所述在步骤四中,具体包括以下步骤:
24.a、采用官方yolov5s权重对数据进行训练,训练完成后得到权重文件yolov5s.pt,并分析其训练数据;
25.b、采用官方yolov5m权重对数据进行训练,训练完成后得到权重文件yolov5m.pt,并分析其训练数据;
26.c、采用官方yolov5l权重对数据进行训练,训练完成后得到权重文件yolov5l.pt,并分析其训练数据。
27.作为本发明再进一步的方案:所述步骤五中,对yolov5模型进行测试,具体包括以下步骤:
28.a、使用yolov5s模型对测试集图片进行测试,分析其检测效果,包括精准率、召回率、测试时间;
29.b、使用yolov5m模型对测试集图片进行测试,分析其检测效果,包括精准率、召回率、测试时间;
30.c、使用yolov5l模型对测试集图片进行测试,分析其检测效果,包括精准率、召回率、测试时间;
31.d、根据测试效果结合实际情况选用模型。
32.作为本发明再进一步的方案:该检测方法采取yolov5目标检测算法,具体包括:
33.一、mosaic数据增强,采用的yolov5目标检测算法的输入端采用mosaic数据增强的方式把四张图片,通过随机缩放、随机裁减、随机排布的方式进行拼接;
34.二、自适应锚框计算,在算法中,针对不同的数据集,都会有初始设定长宽的锚框。在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数,本算法中将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值;
35.三、自适应图片缩放,将原始图片统一缩放到一个标准尺寸,再送入检测网络中,因此在代码中datasets.py的letterbox函数中进行了修改,对原始图像自适应的添加最少的黑边:
36.第一步:计算缩放比例,对图片长宽分别计算缩放系数,选择较小的缩放系数;
37.第二步:原始图片长宽都乘以较小的缩放系数;
38.第三步:将计算后的长宽的较大者减去较小者,得到原本需要填充的高度,在用取
余数的方式,即得到图片高度两端需要填充的数值。
39.四、backbone
40.csp结构,yolov5中设计了两种csp结构,csp1_x结构应用于backbone主干网络,另一种csp2_x结构则应用于neck中;cspnet全称是cross stage partial networks,也就是跨阶段局部网络;cspnet解决了其他大型卷积神经网络框架backbone中网络优化的梯度信息重复问题,将梯度的变化从头到尾地集成到特征图中,因此减少了模型的参数量和flops数值,既保证了推理速度和精确率,又减小了模型尺寸。
41.neck,neck主要用于生成特征金字塔。特征金字塔会增强模型对于不同缩放尺度对象的检测,从而能够识别不同大小和尺度的同一个物体。
42.五、输出端
43.bounding box损失函数,yolov5中采用其中的giou_loss做bounding box的损失函数。
44.nms非极大抑制值,在目标检测的后处理过程中,针对很多目标框的筛选,在yolov5中采用加权nms的方式进行nms操作。
45.因为ciou_loss中包含影响因子v,涉及groudtruth的信息,而测试推理时,是没有groundtruth的。
46.本发明的有益效果是:
47.1.经过测试本发明对于pcb缺陷检测识别的精确率达到97.27%,召回率达到97.88%,map@0.5值达到0.9877,map@[.5:.95]值达到0.6588,各项性能极为优秀;
[0048]
2.与传统图像处理相比,本发明的方法在pcb缺陷表面检测方面具有更高的精确率和泛化能力;
[0049]
3.与faster

rcnn等其他深度学习算法对pcb表面缺陷检测相比,本发明的方法具有更高的准确性。
附图说明
[0050]
图1为本发明流程示意图;
[0051]
图2为本发明三种权重训练参数对比图一;
[0052]
图3为本发明三种权重训练参数对比图二;
[0053]
图4为本发明三种权重训练参数对比图三;
[0054]
图5为本发明三种权重训练参数对比图四;
[0055]
图6为本发明模型部分检测结果图一;
[0056]
图7为本发明模型部分检测结果图二;
[0057]
图8为本发明模型部分检测结果图三;
[0058]
图9为本发明模型部分检测结果图四;
[0059]
图10为本发明模型部分检测结果图五;
[0060]
图11为本发明模型部分检测结果图六。
具体实施方式
[0061]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]
实施例一
[0063]
请参阅图1~11,一种基于yolov5的pcb缺陷检测方法,包括以下步骤:
[0064]
步骤一、采集图像,拍摄生产出的pcb图像;
[0065]
步骤二、挑选图像并裁剪,对含有缺陷的pcb图像进行挑选、裁剪、增加亮度。
[0066]
步骤三、图像预处理并标注,利用得到的子图像,进行数据增强,构建训练样本集、验证样本集、测试样本集;
[0067]
步骤四、图像训练,利用所构建的训练样本集和验证样本集,对yolov5权重进行训练以及验证获训练好的yolov5模型;
[0068]
步骤五、图像测试,使用训练好的yolov5模型对测试集pcb图像进行检测,分析检测结果。
[0069]
在本发明实施例中,所述步骤一中,具体包括以下步骤:
[0070]
a、在pcb生产线配备高清线阵相机;
[0071]
b、当pcb通过触发传感器,启动成像设备后对pcb图像进行拍摄,获取高清线阵图像;在实际工业生产中pcb在生产线上的位置会有很多种,比如pcb部分会超出生产线造成拍摄不全,或者两片或者多片pcb叠在一起造成拍摄遗漏,此时需要对这些图片进行人工挑选,工作量较大。
[0072]
c、对拍摄的图像进行裁剪,剥离背景,只保留pcb图像。对于裁剪的pcb需要保证背景尽可能少,但是又要保证不能使得pcb图像缺失。
[0073]
在本发明实施例中,所述步骤二中,具体包括以下步骤:
[0074]
a、在拍摄的图像里挑选含有缺陷的图像;我们挑选的几种缺陷主要有六种,包括漏焊、缺口、开路、短路、毛刺、假铜六种,这六种缺陷都比较小,需要特别仔细才能发现。而且拍摄的图片很多,工作量较大。
[0075]
b、为减小数据量和方便处理,将含有包括的pcb缺陷的部分图像裁剪成600*600的统一大小;由于缺陷都比较小,为了方便模型识别小缺陷,需要减小图片的大小。
[0076]
c、对裁剪后的图片提高亮度,方便计算机识别;增强亮度是为了容易识别,提高精确率。亮度调到人眼能够轻松识别缺陷为宜。
[0077]
在本发明实施例中,所述步骤三中,具体包括以下步骤:
[0078]
a、对图像进行数据增强,本模型采用的数据增强方式有:图像小角度旋转、图像翻转、图像随机融合、网格掩膜、凸面叠加、数据增强。这一步是为了扩充数据集,数据集越多,越能增强模型的泛化能力,能够大幅度提高模型的识别准确度。
[0079]
b、对图像中的缺陷进行人工标注,生成xml文件。这一步使用的是labellmg软件,需要人工识别缺陷并对其位置进行标记,对其缺陷类型进行标注。生成的xml文件中包含了与之对应的图片中的缺陷信息,包括缺陷类型、位置、以及图片的长度、宽度、边框位置信息、文件名称和路径等。
[0080]
c、以8:1:1的比例把图像分为训练集、验证集、测试集。这一步根据数据集数量划分,图片越多,测试集比例可以缩小,本发明使用的数据集有11034张图片,比例仅供参考。
使用插件对数据集进行随机分类,降低耦合性。最终会生成test、train、trainval、val四个集合。test是测试集,主要是用来测试训练效果,这部分数据集要与训练集完全隔离,否则会被污染,影响测试效果。train是训练集,主要对数据进行训练。val是验证集,在训练过程对训练效果进行评估,来验证是否过拟合、以及用来调节训练参数等,此部分对训练效果没有影响。
[0081]
trainval是训练集与验证集的总和。
[0082]
在本发明实施例中,所述步骤四中,具体包括以下步骤:
[0083]
a、采取官方yolov5s权重对数据进行训练,训练完成后得到权重文件yolov5s.pt,一共训练200次,并分析其训练数据;该权重最小、训练速度最快、但是精度相对较低。这里分析的数据主要有四个,分别是recall、precision、map@0.5、map@[.5:.95]四类,recall反映的是检测正确缺陷数量占实际缺陷存在的数量的比例(因为存在一些缺陷未被检测到,这里取的置信度为0.5,就是该位置缺陷概率大于0.5的都会被识别),precision反映的的是检测正确的缺陷占整个检测出来的缺陷的比例(检测出来的缺陷可能正确,也有可能不正确,这里取的置信度为0.5,就是该位置缺陷概率大于0.5的都会被识别)、map@0.5(mean average precision)指的是在置信度为0.5情况下不同分类下precision

recall曲线下的面积的平均值。map@[.5:.95]是指在置信度以0.5为起点,0.05为步长一直到0.95,不同置信度下precision

recall曲线下的面积的平均值。以上参数均是越高越好。
[0084]
b、采取官方yolov5m权重对数据进行训练,训练完成后得到权重文件yolov5m.pt,并分析其训练数据;该权重相对于yolov5s权重较大,训练速度相对yolov5s训练时间较长,一共训练200次
[0085]
c、采取官方yolov5l权重对数据进行训练,训练完成后得到权重文件yolov5l.pt,并分析其训练数据;该权重相对于yolov5m权重较大,训练速度相对yolov5m训练时间较长,一共训练200次。
[0086]
在本发明实施例中,所述步骤五中,对测试集进行测试,具体包括以下步骤:
[0087]
a、分别使用yolov5s权重、yolov5m权重、yolov5s权重对测试集图片进行测试。
[0088]
b、根据测试效果结合实际情况选用模型。根据测试,对1103张测试图片中分别进行五次测试,测试时间如表所示:
[0089][0090]
yolov5s测试精确率为95.36%,召回率为96.37%。yolov5m测试精确率为97.27%,召回率为97.88%。yolov5l测试精确率为96.23%,召回率为96.83%。
[0091]
综合以上数据分析,对于本发明使用的数据集,yolov5m权重准确率、召回率均是最高的。但是其训练时间较长,而且对硬件要求相对高。而yolov5s权重精确率、召回率虽相较与另外两种权重较低、但是检测速度最快,对硬件要求较低。具体选用那种权重需要综合
实际情况选择。
[0092]
实施例二
[0093]
请参阅图1,一种基于yolov5的pcb缺陷检测方法,包括以下步骤:
[0094]
步骤一、采集图像,拍摄生产出的pcb图像;
[0095]
步骤二、挑选图像并裁剪,对含有缺陷的pcb图像进行挑选、裁剪、增加亮度。
[0096]
步骤三、图像预处理并标注,利用得到的子图像,进行数据增强,构建训练样本集、验证样本集、测试样本集;
[0097]
步骤四、图像训练,利用所构建的训练样本集和验证样本集,对yolov5权重进行训练以及验证获训练好的yolov5模型;
[0098]
步骤五、图像测试,使用训练好的yolov5模型对测试集pcb图像进行检测,分析检测结果。
[0099]
在本发明实施例中,该检测方法采取yolov5目标检测算法,具体包括:
[0100]
一、mosaic数据增强,采用的yolov5目标检测算法的输入端采用mosaic数据增强的方式把四张图片,通过随机缩放、随机裁减、随机排布的方式进行拼接;
[0101]
二、自适应锚框计算,在算法中,针对不同的数据集,都会有初始设定长宽的锚框。在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数,本算法中将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值;
[0102]
三、自适应图片缩放,将原始图片统一缩放到一个标准尺寸,再送入检测网络中,因此在代码中datasets.py的letterbox函数中进行了修改,对原始图像自适应的添加最少的黑边:
[0103]
第一步:计算缩放比例,对图片长宽分别计算缩放系数,选择较小的缩放系数;
[0104]
第二步:原始图片长宽都乘以较小的缩放系数;
[0105]
第三步:将计算后的长宽的较大者减去较小者,得到原本需要填充的高度,在用取余数的方式,即得到图片高度两端需要填充的数值。
[0106]
四、backbone
[0107]
csp结构,yolov5中设计了两种csp结构,csp1_x结构应用于backbone主干网络,另一种csp2_x结构则应用于neck中;cspnet全称是cross stage partial networks,也就是跨阶段局部网络;cspnet解决了其他大型卷积神经网络框架backbone中网络优化的梯度信息重复问题,将梯度的变化从头到尾地集成到特征图中,因此减少了模型的参数量和flops数值,既保证了推理速度和精确率,又减小了模型尺寸。
[0108]
neck,neck主要用于生成特征金字塔。特征金字塔会增强模型对于不同缩放尺度对象的检测,从而能够识别不同大小和尺度的同一个物体。
[0109]
五、输出端
[0110]
bounding box损失函数,yolov5中采用其中的giou_loss做bounding box的损失函数。
[0111]
nms非极大抑制值,在目标检测的后处理过程中,针对很多目标框的筛选,在yolov5中采用加权nms的方式进行nms操作。
[0112]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在
不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0113]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜