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

基于改进YOLOv5的PCB小目标缺陷检测方法和系统

2022-11-19 13:39:21 来源:中国专利 TAG:

基于改进yolov5的pcb小目标缺陷检测方法和系统
技术领域
1.本发明属于机器视觉检测技术领域,尤其涉及一种基于改进yolov5的pcb小目标缺陷检测方法和系统。


背景技术:

2.目前,随着现代工业的智能化发展,工业生产力也随之快速提高,这离不开电子设备的核心组件印刷电路板(print circuit board,pcb)。pcb作为电子元件的载体,具有高集成化、多层化以及小型化等特点,因此对制造工艺有着极高的要求。但在实际生产中,因受设备、环境及人工操作等因素影响,pcb会产生短路、开路、缺口、毛刺、焊点漏焊、余铜等缺陷。
3.由于pcb缺陷具有种类多、缺陷大小尺度多变以及辨识度低等问题。所以目前生产现场的人工目视和电气特性检测方法已经无法满足pcb高效率、高精度、高性能的生产需求。机器视觉检测方法是一种无接触、无损伤的自动化检测方法,具有工作效率高的优点。
4.机器视觉检测方法是一种无接触、无损伤的自动化缺陷检测方法,具有检测工作效率高的优点。基于机器视觉的pcb缺陷检测方法分为参考法、混合法和无参考法,参考法需制作大量模板,易受噪声影响导致检测通用性低、精度低。混合法设计复杂,检测时间长,难以满足工业应用要求。无参考法具有较好的检测柔性,对噪声影响小,检测精度高。
5.无参考法常以深度学习方法进行pcb缺陷检测,基于深度学习的缺陷检测算法可以分为两大类,一类是以r-cnn、fast r-cnn和faster r-cnn为代表的两阶段目标检测算法,另一类是以ssd和yolo系列为代表的单阶段检测网络,最突出的是yolo系列网络模型算法,凭借着高精度和高速度的优势,使其在缺陷检测领域中大放光彩。yolov5从工程部署、特征提取以及提升检测精度和速度等方面进行改进,能较好满足pcb缺陷检测要求。
6.通过上述分析,现有技术存在的问题及缺陷为:
7.(1)由于pcb缺陷具有种类多、缺陷大小尺度多变以及辨识度低等问题,目前生产现场的人工目视和电气特性检测方法无法满足pcb的生产需求。
8.(2)现有参考法需制作大量模板,易受噪声影响导致检测通用性低、精度低;混合法设计复杂,检测时间长,难以满足工业应用要求。
9.(3)现有yolov5s技术面对基于改进yolov5的pcb小目标缺陷检测存在的漏检、特征提取能力不足、误检率高以及检测性能差等问题。


技术实现要素:

10.针对现有技术存在的问题,本发明提供了一种基于改进yolov5的基于改进yolov5的pcb小目标缺陷检测方法和系统,尤其涉及一种基于改进yolov5的基于改进yolov5的pcb小目标缺陷检测方法,旨在解决现有yolov5s技术面对基于改进yolov5的pcb小目标缺陷检测存在的漏检、特征提取能力不足、误检率高以及检测性能差等问题。
11.本发明是这样实现的,一种基于改进yolov5的pcb小目标缺陷检测方法,所述基于
改进yolov5的pcb小目标缺陷检测方法包括:
12.采用dbscan 二分k-means聚类算法对pcb小目标缺陷数据集进行聚类分析并得到聚类中心;首先将通过dbscan算法处理后的pcb小目标缺陷数据集输入二分k-means聚类算法中获得聚类中心,将获得的聚类中心值输入至yolov5网络,再对yolov5算法的标注信息和缺陷种类信息进行配置;对yolov5特征提取网络进行算法改进,引用gam模块加入yolov5特征提取网络;对yolov5特征融合网络进行算法改进,引用bifpn路径聚合网络代替yolov5特征融合网络;采用decoupled-head解耦头网络作为yolov5特征检测网络;将改进思路在yolov5代码中进行修改,设置相关参数进行训练以及实验验证;利用训练得到的权重文件在pcb小目标缺陷测试数据集中进行缺陷检测,验证模型检测效果。
13.进一步,所述基于改进yolov5的pcb小目标缺陷检测方法包括以下步骤:
14.步骤一,利用dbscan 二分k-means算法对pcb缺陷数据集进行聚类分析,得到更适合pcb小目标缺陷的聚类中心;
15.步骤二,将通过改进聚类算法获得的锚框信息、pcb小目标数据集的训练数据集和pcb缺陷种类信息输入至yolov5算法网络中,进行相关参数设置;
16.步骤三,对yolov5特征提取网络进行相应改进,将gam网络引入到yolov5特征提取网络中,根据相关原理对代码进行修改;
17.步骤四,搭建bifpn路径聚合网络,对yolov5特征融合网络进行相应改进,再进行相应代码修改;
18.步骤五,搭建decoupled-head解耦头网络,在yolov5特征检测网络中增加decoupled-head解耦头网络,进行相应代码修改;
19.步骤六,对改进的yolov5算法进行训练,结合预训练权重文件设置好相关参数进行训练;
20.步骤七,利用训练的得到的权重文件对pcb缺陷数据集测试数据集进行缺陷检测,并验证模型检测效果。
21.进一步,所述步骤一中,采用dbscan 二分k-means算法实现对pcb缺陷数据集的聚类分析,通过聚类分析得到9个不同尺寸的聚类中心,得到适合pcb小目标缺陷的锚框数值;具体包括:利用dbsan算法对公开的pcb小目标缺陷数据集进行相关分析,排除边缘点和孤立点因素的干扰,再利用二分k-means聚类算法得到所需锚框数值。获取锚框数值的流程为将排除孤立点因素的标定框数据集作为输入,将所有数据作为聚类簇,将所述聚类簇利用k-means算法分为两个簇,并计算每个簇的误差;选择能使聚类损失函数将iou最小的簇划分为两个簇,继续进行下去,直到选出簇数目达到用户给定的k值为止;最终共聚类出9个锚框。其中,误差iou计算公式如下:
[0022][0023]
其中,boxi代表第i个标定框数值,cenj代表第j个锚框数值。
[0024]
进一步,所述步骤二中,将通过dbscan算法处理后的pcb小目标缺陷数据集输入至二分k-means算法中,再将采用二分k-means算法得到的聚类中心输入至yolov5中,并将得到聚类中心数值按从小到大顺序输入至yolov5模型参数当中;再在yolov5模型相关参数中设置需要检测的pcb缺陷类别,pcb小目标缺陷数据集的路径等相关信息;根据留出法对所
需pcb小目标缺陷数据集进行划分,按照9:1的比例设置训练数据集和验证数据集,将得到的各类数据集相关信息汇成文本文档,输入至yolov5模型当中。
[0025]
所述步骤三中,采用gam网络改进yolov5特征提取网络。给定输入特征映射f1∈rc×h×w,中间状态f2和输出f3,过程表述公式如下:
[0026][0027][0028]
其中,mc是通道注意力图;ms是空间注意力图;表示基于元素的乘法操作。
[0029]
进一步,所述步骤四中,采用efficientnet网络模型中的bifpn路径聚合网络结构对原网络的yolov5特征融合网络进行改进。所述bifpn采用的优化方法如下:
[0030]
(1)删除没有特征融合
‑‑
贡献很小且只有一条输入边的节点;(2)在不增加过多成本的前提下,在相同层增加一个跳跃连接;(3)多次重复路径聚合网络;(4)针对不同分辨率输入特征的贡献不平等问题,bifpn为每个输入额外增加一个权重,采用快速归一化特征融合方法,公式如下:
[0031][0032]
其中,ωi≥0,∈=0.0001,ωi和ωj是可学习的权重,ii是向量;ωi≥0通过在每个ωi后施加relu函数保证,∈取小值;bifpn第6层融合特征输出公式如下:
[0033][0034][0035]
其中,是自上而下路径中第6层的中间特征,是自下而上路径中第6层的输出特征,ω1、ω2和ω
′1、ω
′2、ω
′3分别是和的输入权重,resize是上采样或下采样,conv是卷积操作。
[0036]
所述步骤五中,引用decoupled-head解耦头对现有网络模型的检测模块进行改进;decoupled-head解耦头的思想来源于double-head检测头。double-head检测头结构具有两个分支,一个分支用于类别定位的conv-head,另一个分支用于目标分类的fc-head。conv-head采用卷积运算获取目标的边缘信息;采用decoupled-head解耦头对原网络进行改进,改进后的网络模型的类别与定位信息分别由两个分支输出。
[0037]
进一步,所述步骤六中,对yolov5算法代码进行改进,并实现相关代码训练。利用gam网络改进yolov5特征提取网络,在对应特征提取层数后面增加相应gam层,在yolov5特征融合网络中增加bifpn网络,在yolov5检测头中增加decoupled-head解耦头网络,并修改相应代码;利用改进算法实现对pcb小目标缺陷数据集训练,并设置好相关参数;其中,所述参数包括:训练迭代次数epoch、训练中训练样本数batch_size、训练学习率设置策略、训练数据增强方式以及训练输入图像尺寸大小。
[0038]
所述步骤七中,在训练过程中,将获得的每次训练权重文件进行保存,利用权重文件实现对pcb缺陷测试数据集和pcb板的检测,并获取检测性能参数。
[0039]
本发明的另一目的在于提供一种应用所述的基于改进yolov5的pcb小目标缺陷检
测方法的基于改进yolov5的pcb小目标缺陷检测系统,所述基于改进yolov5的pcb小目标缺陷检测系统包括:
[0040]
聚类分析模块,用于利用dbscan 二分k-means算法对pcb缺陷数据集进行聚类分析,得到更适合pcb小目标缺陷的聚类中心;
[0041]
参数设置模块,用于将改进聚类算法获得的锚框信息、pcb小目标数据集的训练数据集和pcb缺陷种类信息输入至yolov5算法网络中,进行参数设置;
[0042]
特征提取网络改进模块,用于对yolov5特征提取网络进行相应,将gam网络引入到yolov5特征提取网络中,根据相关原理对代码进行修改;
[0043]
特征融合网络改进模块,用于搭建bifpn路径聚合网络,对yolov5特征融合网络进行相应改进,再进行相应代码修改;
[0044]
解耦头网络搭建模块,用于搭建decoupled-head解耦头网络,在yolov5特征检测网络中增加decoupled-head解耦头网络,进行相应代码修改;
[0045]
模型训练模块,用于对改进的yolov5算法进行训练,结合预训练权重文件设置好相关参数进行训练;
[0046]
缺陷检测模块,用于利用训练的得到的权重文件对pcb缺陷数据集测试数据集进行缺陷检测,并验证模型检测效果。
[0047]
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述的基于改进yolov5的pcb小目标缺陷检测方法的步骤。
[0048]
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述的基于改进yolov5的pcb小目标缺陷检测方法的步骤。
[0049]
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的基于改进yolov5的pcb小目标缺陷检测系统。
[0050]
结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
[0051]
第一,针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
[0052]
针对现有yolov5s技术面对基于改进yolov5的pcb小目标缺陷检测存在漏检、特征提取能力不足、误检率高以及检测性能差等问题,本发明提出了一种结合注意力机制、bifpn特征路径聚合网络和decoupled-head解耦头网络改进yolov5的pcb缺陷检测方法,主要有以下几个优点:
[0053]
(1)检测精度高,极大提高了工业生产现场的生产效率。因pcb缺陷具有与背景相似度高、表征信息相似等不易区分特点,原yolov5算法对pcb缺陷进行检测时难以满足工业检测的高精度要求,采用bifpn网络融合特征图的深层和浅层信息,充分利用特征信息,提高网络检测精度;采用decoupled-head解耦头对现有网络模型的检测模块进行改进从而使得一个分支专注于一种操作,分别提升分类和定位效果。本发明通过解耦操作,不仅提高了检测精度还减少了参数量,极大的提高了运算速度。最终使算法满足工业生产现场高速度、
高精度要求,提高生产质量。
[0054]
(2)检测柔性更强。因pcb板具有高度集成化、小型化以及多层化等特点,所以pcb板缺陷具有种类较多、微小缺陷种类间相似度高以及尺度范围大等特点。在使用yolov5进行缺陷检测时忽略了不同特征通道重要程度不同问题,本发明采用注意力机制gam网络对yolov5进行改进,充分利用了pcb数据三个维度上所有的重要特征,可以有效提升检测柔性。
[0055]
(3)检测可以更好应对目标尺寸变化。yolov5采用k-means算法对数据集进行聚类分析,在计算过程中首先随机选取初始聚类中心,然后计算与聚类中心距离进行簇的划分,容易受孤立点数据影响,出现聚类结果不稳定和局部最优等问题,不利于多尺度变化的目标检测;提出采用dbscan 二分k-means算法改进yolov5中k-means算法,先采用dbscan去除孤立点干扰,再使用二分k-means克服随机选取初始聚类中心问题,更好适应多种尺度缺陷检测。
[0056]
第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
[0057]
本发明目的在于对pcb小目标进行缺陷检测。针对pcb小目标缺陷具有种类多、缺陷大小尺度多变以及辨识度低等特点,而yolov5s面对基于改进yolov5的pcb小目标缺陷检测存在漏检、特征提取能力不足、误检率高以及检测性能差等问题,本发明提出一种基于改进yolov5网络的基于改进yolov5的pcb小目标缺陷检测方法,该方法从特征提取层、特征聚合层以及检测层等网络结构入手来提高检测性能。
[0058]
基于bifpn面对特征处理时的优势,本发明选择采用bifpn对原网络进行改进,加强了原网络特征融合能力,促进了对pcb小目标缺陷特征提取能力,提高了对pcb缺陷检测的精度。通过本发明的方法,可以准确获得pcb小目标缺陷相关信息,满足实际工业生产时的高精度、高速度、实时性要求。
[0059]
第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
[0060]
本发明的技术方案转化后的预期收益和商业价值为:
[0061]
自从工业智能化时代到来,全球pcb市场规模成波动上升趋势,受疫情影响,2019年全球市场规模同比下降1.3%,但疫情过后,pcb市场从2020年约650亿美元上升至2021年超800亿美元水平,同比上升23%左右。在科技强国的号召下,无论是智能工业还是智能农业,都离不开电子设备核心组件pcb,随着pcb的快速发展,高度集成化、小型化甚至微型化都对pcb质量提出了更高的要求,一种能满足实际工业生产需求的具有高精度、高速度、泛化性强的pcb小目标检测方案必受市场欢迎,由此可见,市场潜力巨大,市场需求空间大。一台高精度、高速度的pcb缺陷检测设备不仅可以提高pcb生产效率还可以促进pcb技术的发展,从而促进整个产业链的发展。
附图说明
[0062]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
[0063]
图1是本发明实施例提供的基于改进yolov5的pcb小目标缺陷检测方法流程图;
[0064]
图2是本发明实施例提供的对数据集利用改进dbscan 二分k-means算法得到的聚类中心图;
[0065]
图3是本发明实施例提供的gam通道注意力机制模块示意图;
[0066]
图4是本发明实施例提供的fpn、panet、bifpn网络模块示意图,其中(a)为fpn,(b)为panet,(c)为bifpn;
[0067]
图5是本发明实施例提供的decoupled-head解耦头网络结构图;
[0068]
图6是本发明实施例提供的改进的yolov5网络结构图;
[0069]
图7是本发明实施例提供的训练好的模型检测map图;
[0070]
图8是本发明实施例提供的利用训练好的模型对pcb进行缺陷检测的实际检测效果图。
具体实施方式
[0071]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0072]
针对现有技术存在的问题,本发明提供了一种基于改进yolov5的基于改进yolov5的pcb小目标缺陷检测方法和系统,下面结合附图对本发明作详细的描述。
[0073]
如图1所示,本发明实施例提供的基于改进yolov5的pcb小目标缺陷检测方法包括以下步骤:
[0074]
s101,利用dbscan 二分k-means算法对pcb缺陷数据集进行聚类分析,得到更适合pcb小目标缺陷的聚类中心;
[0075]
s102,将通过改进聚类算法获得的锚框信息、pcb小目标数据集的训练数据集和pcb缺陷种类信息输入至yolov5算法网络中,进行相关参数设置;
[0076]
s103,对yolov5特征提取网络进行相应改进,将gam网络引入到yolov5特征提取网络中,根据相关原理对代码进行修改;
[0077]
s104,搭建bifpn路径聚合网络,对yolov5特征融合网络进行相应改进,再进行相应代码修改;
[0078]
s105,搭建decoupled-head解耦头网络,在yolov5特征检测网络中增加decoupled-head解耦头网络,进行相应代码修改;
[0079]
s106,对改进的yolov5算法进行训练,结合预训练权重文件设置好相关参数进行训练;
[0080]
s107,利用训练的得到的权重文件对pcb缺陷数据集测试数据集进行缺陷检测,验证模型检测效果。
[0081]
作为优选实施例,本发明实施例提供的基于改进yolov5的pcb小目标缺陷检测方法具体包括以下步骤:
[0082]
(1)采用dbscan 二分k-means聚类算法实现对pcb小目标缺陷数据集进行聚类分析,共计聚类出9个不同尺寸的聚类中心,以解决pcb数据集边缘点、孤立点和随机化初始聚类中心造成的漏检问题。
[0083]
(2)将通过dbscan算法处理后的pcb小目标缺陷数据集输入二分k-means聚类算法中,通过将利用二分k-means对处理后pcb小目标缺陷数据集进行聚类得到的聚类中心值输入至yolov5网络,再对yolov5算法所需的标注信息、缺陷种类等相关信息进行相关配置。
[0084]
(3)对yolov5特征提取网络进行算法改进,引用gam模块加入yolov5特征提取网络,以解决pcb缺陷特征难以提取、与背景相似度高的问题。
[0085]
(4)对yolov5特征融合网络进行算法改进,引用bifpn路径聚合网络代替yolov5特征融合网络。以解决pcb缺陷特征深层信息难以提取、误检率高的问题,达到增加视野和权衡比重效果。
[0086]
(5)为提升基于改进yolov5的pcb小目标缺陷检测性能,提高pcb缺陷分类与定位能力,采用decoupled-head解耦头网络作为yolov5特征检测网络,从而提升检测精度。
[0087]
(6)将改进思路在yolov5代码中进行修改,设置相关参数进行训练以及进行实验验证。
[0088]
(7)利用训练得到的权重文件在pcb小目标缺陷数据集的测试数据集中进行缺陷检测,并验证模型检测效果。
[0089]
本发明实施例根据步骤(1)的要求,主要是采用dbscan 二分k-means算法实现对pcb缺陷数据集的聚类分析,通过聚类分析得到9个不同尺寸的聚类中心,得到适合pcb小目标缺陷的锚框数值。其具体的流程为,先用dbsan算法对公开的pcb小目标缺陷数据集进行相关分析,排除边缘点、孤立点等因素干扰,再利用二分k-means聚类算法得到所需锚框数值。获取锚框数值主要流程为将排除孤立点因素的标定框数据集作为输入,先将所有数据作为一个聚类簇,然后将该簇利用k-means算法分为两个簇,并计算每个簇的误差。选择能使聚类损失函数即iou最小的簇划分为两个簇,以此继续进行下去,直到选出簇数目达到用户给定的k值为止。其中,误差iou计算公式如下:
[0090][0091]
其中boxi代表第i个标定框数值,cenj代表第j个锚框数值。最终共聚类出9个锚框。
[0092]
本发明实施例根据步骤(2)的要求,先将通过dbscan算法处理后的pcb小目标缺陷数据集输入至二分k-means算法中,再将采用二分k-means算法得到的聚类中心输入至yolov5中,将这些得到聚类中心数值按从小到大顺序输入至yolov5模型参数当中。接着再在yolov5模型相关参数中设置需要检测的pcb缺陷类别,pcb小目标缺陷数据集的路径等相关信息。最后根据留出法对所需pcb小目标缺陷数据集进行划分,按照9:1的比例设置训练数据集和验证数据集,将得到的各类数据集相关信息汇成文本文档,输入至yolov5模型当中。
[0093]
本发明实施例根据步骤(3)的要求,主要是采用gam网络改进yolov5特征提取网络。针对原网络对pcb缺陷特征差异性表现不敏感,本发明引进了gam(global attention mechanism)网络,gam充分利用了pcb数据三个维度上所有的重要特征,避免了以往注意力机制如senet、cbam以及bam等所造成的跨维信息丢失。其目的是在减少信息缩减的同时放大全局维度交互的特征。给定输入特征映射f1∈rc×h×w,中间状态f2和输出f3,其过程表述公式如下:
[0094]
[0095][0096]
其中mc和ms分别是通道注意力图和空间注意力图;表示基于元素的乘法操作。因此使用gam网络对原网络进行改进,有助于提高对pcb缺陷的特征提取能力,加强对pcb相似缺陷的区分能力。
[0097]
本发明实施例根据步骤(4)的要求,主要是利用bifpn路径聚合网络改进yolov5特征融合网络。特征图的浅层信息通常携带着十分详细的目标细节信息,更有利于小目标的定位匹配;深层信息则具有更多的语义信息和更广的感受野,具体体现在拥有更强的分辨力。针对pcb缺陷具有面积小、与背景相似度高以及表征信息相似等特点,采用efficientnet网络模型中的bifpn(bidirectional feature pyramid network)结构对原网络的特征融合网络进行改进。原网络采用的是panet特征融合网络,panet由fpn改进而来;fpn采用的是自顶向下的路径聚合结构,充分融合高层语义特征来提高对小目标的检测效果;panet在fpn基础上引入了自底向上路径聚合结构,将浅层特征的定位信息传输到深层,增强每个层的定位能力;bifpn全称为加权双向特征金字塔网络,它相比于panet网络结构,不仅采用了自顶向下 自底向上的路径聚合结构,还引入了重复双向跨尺度连接和带权重的特征融合思想,实现了对特征的充分处理。
[0098]
本发明实施例bifpn主要采用的主要优化方法如下:(1)删除没有特征融合即贡献很小且只有一条输入边的节点;(2)在不增加过多成本的前提下,在相同层增加一个跳跃连接,从而融合更多特征。(3)多次重复路径聚合网络,实现更高层次特征融合;(4)针对不同分辨率输入特征的贡献不平等问题,bifpn为每个输入额外增加一个权重,采用快速归一化特征融合方法,其公式如下。
[0099][0100]
其中,ωi≥0,∈=0.0001,ωi和ωj是可学习的权重,ii是向量;ωi≥0通过在每个ωi后施加relu函数来保证,∈取小值,避免数值不稳定。从相关实验得知,快速归一化融合准确性与softmax类似,但运行速度却快了30%。最终bifpn第6层融合特征输出公式如下:
[0101][0102][0103]
其中,是自上而下路径中第6层的中间特征,是自下而上路径中第6层的输出特征,ω1、ω2和ω
′1、ω
′2、ω
′3分别是和的输入权重,resize是上采样或下采样,conv是卷积操作。
[0104]
综上,基于bifpn面对特征处理时的优势,因此本发明选择采用bifpn对原网络进行改进,加强了原网络特征融合能力,促进了对pcb小目标缺陷特征提取能力,提高了对pcb缺陷检测的精度。
[0105]
本发明实施例根据步骤(5)的要求,主要是引用decoupled-head解耦头对现有网
络模型的检测模块进行改进从而提升分类和定位效果。decoupled-head解耦头的思想来源于double-head检测头。double-head检测头结构具有两个分支,一个分支是用于类别定位的conv-head,另一个分支是用于目标分类的fc-head。类别定位和目标分类侧重点不同,定位需要的是边缘信息,而分类则需要目标的纹理信息。conv-head采用卷积运算更有利于获取目标的边缘信息,但对于目标框的分类任务而言,fully connected head(fc-head)的全连接层会更具有空间敏感性。所以,采用decoupled-head解耦头对原网络进行改进,使其一个分支专注于一种操作,更好的满足本发明任务需求。改进后的网络模型的类别与定位信息分别由两个分支输出,这样极大的增强了原网络对pcb缺陷目标的分类和定位能力,提升了检测精度。而且通过解耦操作,减少了参数量,极大的提高了运算速度。
[0106]
本发明实施例根据步骤(6)的要求,主要是对yolov5算法代码进行改进,并实现相关代码训练。利用gam网络改进yolov5特征提取网络,在对应特征提取层数后面增加相应gam层,在yolov5特征融合网络中增加bifpn网络,在yolov5检测头中增加decoupled-head解耦头网络,并修改相应代码。再利用改进算法实现对pcb小目标缺陷数据集训练,设置好相关参数,主要包括,训练迭代次数epoch、训练中训练样本数batch_size、训练学习率设置策略、训练数据增强方式、训练输入图像尺寸大小等相关参数。
[0107]
本发明实施例根据步骤(7)的要求,在训练过程中,将获得的每次训练权重文件进行保存,利用该权重文件实现对pcb缺陷测试数据集的检测,实现对pcb板的高效精确检测,并获取检测相关性能参数。
[0108]
本发明实施例提供的基于改进yolov5的pcb小目标缺陷检测系统包括:
[0109]
聚类分析模块,用于利用dbscan 二分k-means算法对pcb缺陷数据集进行聚类分析,得到更适合pcb小目标缺陷的聚类中心;
[0110]
参数设置模块,用于将改进聚类算法获得的锚框信息、pcb小目标数据集的训练数据集和pcb缺陷种类信息输入至yolov5算法网络中,进行参数设置;
[0111]
特征提取网络改进模块,用于对yolov5特征提取网络进行相应,将gam网络引入到yolov5特征提取网络中,根据相关原理对代码进行修改;
[0112]
特征融合网络改进模块,用于搭建bifpn路径聚合网络,对yolov5特征融合网络进行相应改进,再进行相应代码修改;
[0113]
解耦头网络搭建模块,用于搭建decoupled-head解耦头网络,在yolov5特征检测网络中增加decoupled-head解耦头网络,进行相应代码修改;
[0114]
模型训练模块,用于对改进的yolov5算法进行训练,结合预训练权重文件设置好相关参数进行训练;
[0115]
缺陷检测模块,用于利用训练的得到的权重文件对pcb缺陷数据集测试数据集进行缺陷检测,并验证模型检测效果。
[0116]
本发明实施例提供的改进的基于yolov5的基于改进yolov5的pcb小目标缺陷检测方法,具体包括以下步骤:
[0117]
步骤101:利用dbscan 二分k-means算法实现对pcb缺陷数据集进行聚类,得到更适合pcb小目标缺陷的聚类中心。
[0118]
首先采用dbscan算法对pcb小目标缺陷数据集进行处理,去除pcb小目标缺陷数据集的边缘点、孤立点等因素影响,再采用二分k-means算法实现对pcb小目标缺陷数据集的
相关缺陷进行聚类,根据pcb小目标缺陷数据集的标注信息,使用二分k-means聚类算法获得9个不同大小的聚类中心值,其聚类中心在数据集中具体位置如图2所示。使用二分k-means算法对pcb小目标缺陷数据集聚类得到的聚类中心数值是:(17,17),(18,33),(23,20),(24,48),(25,26),(33,31),(39,48),(41,21),(54,46)。
[0119]
步骤102:将通过改进聚类算法获得的锚框信息、pcb小目标数据集的训练数据集、pcb缺陷种类等相关信息输入至yolov5算法网络中,进行相关参数设置。
[0120]
通过dbscan算法对pcb小目标缺陷数据集进行相关处理,再利用二分k-means算法对pcb小目标缺陷数据集进行聚类分析,相关实验设置图像大小为640pixels
×
640pixels,最终得到聚类结果为(17,17),(18,33),(23,20),(24,48),(25,26),(33,31),(39,48),(41,21),(54,46)。再将聚类结果按从小到大顺序进行排序,将其输入至yolov5算法pcb_data.yaml中的an chor信息中。根据pcb小目标缺陷数据集的图像信息和标注信息进行相关代码处理得到train.txt和trainval.txt文件信息,这些文本文档中存放训练数据集和验证数据集中图片、路径等信息。最后在pcb_data.yaml文件中输入pcb缺陷相关类别信息,pcb缺陷种类信息共计六种,分别为:missing_hole,mouse_bite,open_circuit,short,spur,spurious_copper。然后下载好预训练权重文件输入至pcb_data文件夹中。至此,完成了模型需要数据的相关设置。
[0121]
步骤103:对yolov5特征提取网络进行相应,将gam网络引入到yol ov5特征提取网络中,根据起相关原理对代码进行修改。
[0122]
原yolov5网络在对每一层特征进行提取时持以相等关注度,忽略了不同特征通道具有不同重要度的事实,以至于不能很好的对pcb缺陷特征进行提取。因此针对原网络对特征差异性的不敏感的问题,对原网络的特征提取网络部分引入gam网络,gam充分利用了pcb数据三个维度上所有的重要特征,避免了以往注意力机制如senet、cbam以及bam等所造成的跨维信息丢失。其目的是在减少信息缩减的同时放大全局维度交互的特征。gam主要采用通道-空间顺序注意力机制,整个过程如图3所示。
[0123]
给定输入特征映射f1∈rc×h×w,中间状态f2和输出f3,其过程表述公式如下:
[0124][0125][0126]
其中mc和ms分别是通道注意力图和空间注意力图;表示基于元素的乘法操作。因此使用gam网络对原网络进行改进,有助于提高对pcb缺陷的特征提取能力,加强对pcb相似缺陷的区分能力。根据相关参数搭建gam网络,并应用至yolov5特征提取网络进行相关参数修改。
[0127]
步骤104:搭建bifpn路径聚合网络,对yolov5特征融合网络进行相应改进,再进行相应代码修改。
[0128]
gam机制虽充分提取了pcb数据每一个特征通道的特征,但若想进一步提高对pcb缺陷的检测精度,还需要充分利用浅层信息和深层信息。特征图的浅层信息通常携带着十分详细的目标细节信息,更有利于小目标的定位匹配;深层信息则具有更多的语义信息和更广的感受野,具体体现在拥有更强的分辨力。原yolov5网络采用的是panet特征融合网络,panet由fpn改进而来;由图4(a)的fpn结构图可知,fpn采用的是自顶向下的路径聚合结构,充分融合高层语义特征来提高对小目标的检测效果;如图4(b)的panet结构图可知,
panet在fpn基础上引入了自底向上路径聚合结构,将浅层特征的定位信息传输到深层,增强每个层的定位能力;bifpn全称为加权双向特征金字塔网络,其结构图如图4(c)所示。它相比于panet网络结构,不仅采用了自顶向下 自底向上的路径聚合结构,还引入了重复双向跨尺度连接和带权重的特征融合思想,实现了对特征的充分处理。
[0129]
bifpn主要采用的主要优化方法如下:(1)删除没有特征融合即贡献很小且只有一条输入边的节点;(2)在不增加过多成本的前提下,在相同层增加一个跳跃连接,从而融合更多特征。(3)多次重复路径聚合网络,实现更高层次特征融合;(4)针对不同分辨率输入特征的贡献不平等问题,bifpn为每个输入额外增加一个权重,采用快速归一化特征融合方法,其公式如下。
[0130][0131]
其中,ωi≥0,∈=0.0001,ωi和ωj是可学习的权重,ii是向量;ωi≥0通过在每个ωi后施加relu函数来保证,∈取小值,避免数值不稳定。从相关实验得知,快速归一化融合准确性与softmax类似,但运行速度却快了30%。最终bifpn第6层融合特征输出公式如下:
[0132][0133][0134]
其中,是自上而下路径中第6层的中间特征,是自下而上路径中第6层的输出特征,ω1、ω2和ω
′1、ω
′2、ω
′3分别是和的输入权重,resize是上采样或下采样,conv是卷积操作。
[0135]
步骤105:搭建decoupled-head解耦头网络,在yolov5特征检测网络中增加decoupled-head解耦头网络,进行相应代码修改。
[0136]
decoupled-head解耦头的思想来源于double-head检测头。double-head检测头结构具有两个分支,一个分支是用于类别定位的conv-head,另一个分支是用于目标分类的fc-head。类别定位和目标分类侧重点不同,定位需要的是边缘信息,而分类则需要目标的纹理信息。conv-head采用卷积运算更有利于获取目标的边缘信息,但对于目标框的分类任务而言,fully connected head(fc-head)的全连接层会更具有空间敏感性。所以,采用decoupled-head解耦头对原网络进行改进,使其一个分支专注于一种操作,更好的满足我们任务需求。其结构图如图5所示。
[0137]
最终改进特征提取网络、特征融合网络和特征检测网络的yolov5网络结构如图6所示,在yolov5中修改相应检测网络代码以及网络参数。
[0138]
步骤106:对改进的yolov5算法进行训练,结合预训练权重文件设置好相关参数进行训练。
[0139]
对最终改进yolov5网络模型进行训练,训练过程中,图像输入大小设置为(640pixels
×
640pixels)设置迭代次数为300,采用的是sgd优化器和warmup学习率调整策略,迭代次数为300,动量为0.937,初始学习率为0.001,后200epoch学习率为0.0002,
batch_size设置为16,学习率优化方式采用adam方式,不采用数据增强方式。经过训练之后,得到训练好的网络模型。
[0140]
步骤107:利用训练的得到的权重文件对pcb缺陷数据集测试数据集进行缺陷检测,验证模型检测效果。
[0141]
将需要检验的缺陷样本图像放入数据集下data文件夹中,采用获得的权重文件及网络对缺陷样本进行检测,得到缺陷的类别、位置以及置信度信息。平均检测一张图像的时间为16毫秒,模型的检测map如图7所示,得到的检测结果如图8所示。由图中可以看出,通过本发明的方法,可以准确获得pcb小目标缺陷相关信息,满足实际工业生产时的高精度、高速度、实时性要求。
[0142]
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0143]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献