CN116168017B - 一种基于深度学习的pcb元件检测方法、系统及存储介质 - Google Patents
一种基于深度学习的pcb元件检测方法、系统及存储介质 Download PDFInfo
- Publication number
- CN116168017B CN116168017B CN202310410964.2A CN202310410964A CN116168017B CN 116168017 B CN116168017 B CN 116168017B CN 202310410964 A CN202310410964 A CN 202310410964A CN 116168017 B CN116168017 B CN 116168017B
- Authority
- CN
- China
- Prior art keywords
- yolov7
- network architecture
- data set
- pcb
- original
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 67
- 238000013135 deep learning Methods 0.000 title claims abstract description 20
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000012549 training Methods 0.000 claims abstract description 78
- 230000006870 function Effects 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000013136 deep learning model Methods 0.000 claims abstract description 25
- 238000000605 extraction Methods 0.000 claims abstract description 22
- 230000007246 mechanism Effects 0.000 claims abstract description 20
- 238000012795 verification Methods 0.000 claims abstract description 20
- 230000006872 improvement Effects 0.000 claims abstract description 8
- 238000012360 testing method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004927 fusion Effects 0.000 claims description 10
- 238000007689 inspection Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 6
- 239000003086 colorant Substances 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000002372 labelling Methods 0.000 claims description 2
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000000137 annealing Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000010792 warming Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000012802 pre-warming Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
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/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- 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/40—Extraction of image or video features
- G06V10/52—Scale-space analysis, e.g. wavelet analysis
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于深度学习的PCB元件检测方法、系统及存储介质,该方法包括:改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始网络架构的特征提取层;采用SEIoU位置损失函数改进原始网络架构的CIoU损失函数;在原始网络架构的预测头中加入坐标注意力机制;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果。本发明可提高PCB元件检测识别的精准度及检测效率。
Description
技术领域
本发明涉及PCB元件检测技术领域,具体涉及一种基于深度学习的PCB元件检测方法、系统及存储介质。
背景技术
经过SMT工艺的印刷电路板(PCB)上的元件检测旨在检测组件焊接缺陷,是在规范化的设计和制造管理中必须建议考虑并实施的,电路板制造业自动化测试的发展推动着PCB元件检测的研究,实现PCB元件的快速高效检测对生产质量评估、电路功能分析等方面具有重要意义。从基于颜色特征或者纹理识别等传统图像处理方式及基于机器学习的检测方法到基于深度学习的目标检测模型的不断发展促进PCB工业检测水平的提升,尤其是随着深度学习的发展,一些基于轻量级的目标检测算法不断被尝试应用在PCB制造业的质量检测方面。
在基于深度学习的目标检测算法中,一阶段算法是不需要得到建议框阶段,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果的算法,其速度一般比二阶段算法更快,但精度有所损失。YOLO系列算法作为轻量级的一阶段算法的经典代表,在移动设备运行需求应用方面很受欢迎。YOLO使用图像的全局信息做预测,对背景的误识别率比Faster R-CNN低,综合性能比SSD更好,学习到的特征更加通用。目前YOLOv7为YOLO系列sota模型,基于anchor based的方法,增加E-ELAN层和REP层,将neck层融合head层,新增辅助头用于辅助检测,再一次平衡好参数量、计算量和性能之间的矛盾。
目前对多模态的PCB元件检测的研究仍然具有很大空间,一方面,PCB上的元件背景较为复杂,且目标形状或尺寸大小不一,这给目标的准确识别和精准定位带来挑战。另一方面,现有的研究通常基于颜色识别的图像处理方法或者基于型号不够丰富或数量少的样本训练模型,并且以缺陷为特征训练的模型具有一定的局限性,其检测性能不足以支撑PCB元件检测的实际应用场景,其次,为达到灵活检测的需求,目标检测算法需要保证推理速度的同时尽可能提高识别精度。
发明内容
本发明的目的在于提供一种基于深度学习的PCB元件检测方法、系统及存储介质,以解决现有技术中PCB元件检测识别精准度及效率低的问题。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明公开了一种基于深度学习的PCB元件检测方法,包括:
改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层;采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数;在原始YOLOv7网络架构的预测头中加入坐标注意力机制;
获取PCB图片的训练数据集和验证数据集;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;
将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果。
进一步地,采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层包括:
将原始YOLOv7网络架构中FPN融合后的输出输入至骨干网络中进行二次循环;
将二次循环后输出的三层不同尺寸的特征图替换原始自下向上二次融合的PAFPN模型。
进一步地,SEIoU位置损失函数的表达式为:
;
其中,分别是IoU位置损失函数、距离损失、宽损失和高损失,是方向偏移量,/>分别是预测框中心点和真实框中心点的纵轴坐标差与横轴坐标差,/>分别是预测框和真实框相并的外接矩形的高差与宽差,/>分别是预测框和真实框的实际高差与宽差,/>是微小量参数。
进一步地,在原始YOLOv7网络架构的预测头中加入坐标注意力机制包括:在检测头中的特征融合阶段之后与模型重参化之前加入坐标注意力机制。
进一步地,还包括获取PCB图片的测试数据集;将测试数据集输入至深度学习模型中,以验证深度学习模型的泛化能力。
进一步地,获取PCB图片的训练数据集、验证数据集与测试数据集包括:
采集不同分辨率,不同亮度和不同颜色的PCB板图片组成多模态的PCB图片数据集;
对所述PCB图片数据集进行预处理,获得训练数据集、验证数据集与测试数据集。
进一步地,对所述PCB图片数据集进行预处理包括:
将PCB图片数据集进行裁剪、翻转并通过GridMask与mixup的组合进行数据增强,获得扩充数据集;
对扩充数据集中图片上的元件进行位置标注和类别划分。
第二方面,本发明公开了一种基于深度学习的PCB元件检测系统,包括:
网络架构构建模块,用于改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层;采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数;在原始YOLOv7网络架构的预测头中加入坐标注意力机制;
模型训练模块,用于获取PCB图片的训练数据集和验证数据集;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;
结果输出模块,用于将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果。
第三方面,本发明公开了一种电子设备,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行第一方面任一项所述方法的步骤。
第四方面,本发明公开了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面任一项所述方法的步骤。
根据上述技术方案,本发明的有益效果为:
本发明改进的YOLOv7网络架构将YOLOv7目标检测网络特征提取阶段的自下向上二次融合的特征金字塔替换成反向递归二次循环的特征金字塔,能够获取更多语义信息,减小不相干特征的干扰,增强特征提取能力;同时采用SEIoU位置损失函数,将原来损失函数中的纵横比改为纵横差异值,加强相似性优化能力,并且在距离损失中加入基于欧拉角的方向表示,提高预测框位置回归的收敛速度;并在检测头中加入坐标注意力机制,该机制将位置编码信息嵌入通道注意力,从而使移动网络关注更大区域的信息而避免引入大的开销,提高引导预测头和辅助预测头的协作和检测性能;通过改进的YOLOv7网络架构训练获得深度学习模型,可提高PCB元件检测识别的精准度及检测效率。
附图说明
图1为本发明检测方法的流程图;
图2为本发明检测方法所使用的改进的YOLOv7的网络结构图;
图3为本发明中SEIoU位置损失函数的说明图;
图4为原始YOLOv7在不同模态下的PCB元件的检测效果图;
图5为本发明的模型在不同模态下的PCB元件的检测效果图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
本发明的目的在于,为追求轻量级移动网络模型在多模态PCB元件检测中得到更好地应用,提高PCB元件的检测性能,突破计算资源和检测性能等指标之间的协作,提出一种基于轻量级YOLOv7改进的PCB元件检测方法。
实施例1
如图1所示,本发明公开了一种基于深度学习的PCB元件检测方法,该方法包括改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层;采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数;在原始YOLOv7网络架构的预测头中加入坐标注意力机制;获取PCB图片的训练数据集和验证数据集;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果。
本发明通过改进的YOLOv7网络架构训练获得深度学习模型,可提高PCB元件检测识别的精准度及检测效率。
在本申请中,检测方法可包括:步骤10、获取PCB图片的训练数据集、验证数据集与测试数据集。步骤20、采用三种方式相结合对原始YOLOv7网络架构的不同部分进行改进。步骤30、深度学习模型的训练。步骤40、检测结果的获取。
在本申请中,步骤10和步骤20并无先后顺序。
在一些实施例中,步骤10具体包括:采集不同分辨率,不同亮度和不同颜色的PCB板图片组成多模态的PCB图片数据集;对所述PCB图片数据集进行预处理,获得训练数据集、验证数据集与测试数据集。
更具体的,该步骤包括:
收集不同分辨率,不同亮度和不同颜色的PCB板图片组成一个多模态的PCB图片数据集。
将得到的新的数据集进行裁剪、翻转并通过GridMask与mixup的组合进行数据增强,进一步扩充数据集。
对扩充后的数据集中的图片中的精密组件进行类别和位置标注,采用二八原则随机划分训练数据集、验证数据集与测试数据集。
在本申请中、步骤20、采用三种方式相结合对原始YOLOv7网络架构的不同部分进行改进,改进的YOLOv7网络架构如图2所示。网络结构主要由三个部分组成:input,backbone和head,其中,每个Conv由卷积、批量归一化、SiLU激活函数组成,stem层由三个Conv卷积叠加组成。ELAN层主要目的是提高对特征的学习能力,与ELAN-H的主要区别在于拼接数量不同。MP-n主要实现空间降采样,输出通道数为输入通道数的n倍,但空间分辨率缩小2倍的特征图。CA是加入的注意力模块,能够捕获全局的特征关系且突出重要特征,提高特征提取能力。RepConv层主要目的是进行结构重参数化,移除分支,将训练期间的多分支与推理期间的plain架构解耦,便于模型的部署与加速。
在backbone结构中,图像经过stem层输出一个二倍降采样的特征图,接下来进入一层由卷积核为3,步长为2的Conv和ELAN卷积组成的网络层,输出4倍降采样图,再进行三轮重复的MP-n(n=1)降采样与ELAN组合操作, 输出的32倍降采样特征图。在head结构中,SPPCSPC模块对特征图进行池化操作,将通道数减半至512,我们使用递归FPN对不同尺度的特征图进行融合,再利用CA注意力机制处理特征,通过1x1卷积后分别输出经过8倍、经过16倍、32倍降采样的特征图,最后对特征图的objectness、class和bbox三部分做多级预测。
采用三种方式相结合对原始YOLOv7网络架构的不同部分进行改进,该步骤具体包括:
步骤21、采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层。
首先、创建基于YOLOv7的轻量级网络架构,包括骨干网络层,特征提取层,以及预测层,其中,骨干网络主要包括不同卷积核和步长大小的卷积,批量归一化以及SiLU激活操作,在骨干网络中使用ELAN聚合网络,实现在不破坏原始梯度路径的情况下,提高网络的学习能力,同时指导不同的分组模块来学习更多样化的特性。
特征提取层特征融合阶段采用递归特征金字塔(Recursive-FPN),即将原来的FPN的融合后的输出,再输入给骨干网络,进行二次循环,再输出三层不同尺寸大小的特征图,替换原来的简单自下向上二次融合的PAFPN模型,会显著带来物体检测的性能提升。
网络颈部融合于预测层,并且预测头采用导向头和辅助头双头预测,最终的输出头称为引导头,将用于辅助训练的头称为辅助头,增加额外的辅助头进行深度监督,能够显著提高模型的性能。
规划的模型重参化策略即在训练过程中将一个整体模块分割为多个相同或不同的模块分支,但在推理过程中将多个分支模块集成到一个完全等价的模块中,对网络进行集成,在不增加计算量的情况下提高精度。
步骤22、采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数,此步骤相当于采用SEIoU位置损失函数作为预测框与真实标记位置回归的计算方式。
具体的,交并比 IoU(Intersection Over Union)是指目标预测边界框和真实边界框的交集和并集的比值,即物体预测框与真实框的重叠度,IoU 的定义是为了衡量物体定位精度的一种标准,模型预测通过计算IOU计算梯度进行回归,损失函数作为一种惩罚措施,需要在训练期间最小化,并且理想情况下可以将勾勒出对象的预测框与相应的真实框匹配。本发明提出一种新的位置损失函数SEIoU,改进YOLOv7的CIoU损失函数。
如图3所示,提出的位置损失函数SEIoU,即在EIoU损失函数的基础上,将纵横比分成真实的长宽比的同时,考虑距离在期望回归中的方向,在惩罚指标中加入到真实框和预测边界框之间的匹配方向损失惩罚项,提高收敛速度和推理的准确性,追求预测框与真实框的高质量匹配。
SEIoU的定义如下:
;
其中,与/>定义如下:
;
;
其中,分别是IoU位置损失函数、距离损失、宽损失和高损失,是方向偏移量,/>分别是预测框中心点和真实框中心点的纵轴坐标差与横轴坐标差,/>分别是预测框和真实框相并的外接矩形的高差与宽差,/>分别是预测框和真实框的实际高差与宽差,/>是微小量参数,防止除数为0。
在方向偏移中,随着方向角接近45°时,距离损失逐渐变大,当方向接近轴向或径向时,距离损失剧烈减少。通过在损失函数代价中引入方向性,能够减少变量数量在距离损失中的梯度徘徊情况的发生,它可以大大改善目标检测算法的训练和推理能力。
SEIoU损失函数与之前的方法CIoU相比,能够使得预测框在训练阶段收敛速度更快,推理性能更好。
步骤23、在原始YOLOv7网络架构的预测头中加入坐标注意力机制。
坐标注意力机制CA(coordinate attention)首先沿垂直坐标和水平坐标分别进行1维均值池化操作来捕获不同方位的全局信息,产生一对方向感知特征图,然后再聚合一起在空间方向进行卷积和批量归一化以及非线性编码,重新衡量不同频道的重要性,位置信息因此可以被保存在所生成的注意力图中。接着将两个注意力图都再被乘到输入特征图中,以强调注意区域的表示。
在检测头中的特征融合阶段之后与模型重参化之前加入CA结构。辅助头将预测头部分的浅层特征提取出来,此时特征较为粗糙,引导头提取深层特征作为网络的最终输出。对于一张特征图的提取,在预测头中加入该注意力能够捕获全局的特征关系且能突出最重要的特征,获得更好地提取效果,从而更容易找到感兴趣的目标,精准定位。
改进的YOLOv7网络架构构建完成后,可进行学习模型的训练。
步骤30、模型训练过程具体包括:采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型。参数是指由模型通过学习得到的变量。超参数是指根据经验设定的初始参数。此步骤是基于改进的YOLOv7网络架构构进行训练,学习模型的训练过程可参照现有的训练过程,本申请不再进行说明。
模型训练完成后还包括:将测试数据集输入至深度学习模型中,以验证深度学习模型的泛化能力。
在模型训练过程中,采用学习率预热warmup与余弦退火算法设置训练参数,以自动优化训练模型的学习率。
训练时,模型的权重是随机初始化的,此时若选择一个较大的学习率,可能带来模型的不稳定(振荡),选择Warmup预热学习率的方式,可以使得开始训练时或者一阶段内学习率较小,在预热的小学习率下,模型可以慢慢趋于稳定。
由于我们的目标优化函数可能是多峰的,除了全局最优解之外还有多个局部最优解,在训练时梯度下降算法可能陷入局部最小值,此时可以通过余弦退火算法突然提高学习率,来“跳出”局部最小值并找到通向全局最小值的路径。
余弦退火算法如下:
;
表达式中的字符含义:
和/>分别表示学习率的最大值和最小值,定义了学习率的范围。/>和/>分别表示当前或第次训练中的总轮数。
当执行完个轮数之后就会开始热重启,有助于使模型收敛速度变快,效果更佳。
使用学习率预热warmup与余弦退火算法周期性重启自动优化学习率,保持深度学习的稳定性。
步骤40、将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果。
本发明具有如下优点:基于多模态的数据集,使用图像裁剪、翻转和GridMask等数据增强的策略,使得数据集工作更好,提高模型的泛化能力。
使用学习率预热warm-up与余弦退火算法周期性重启自动优化训练模型的学习率,有助于使模型收敛速度变快,效果更佳。
将基于YOLOv7目标检测网络特征提取阶段的自下向上二次融合的特征金字塔替换成反向递归二次循环的特征金字塔,能够获取更多语义信息,减小不相干特征的干扰,增强特征提取能力。
同时提出SEIoU位置损失函数,将原来损失函数中的纵横比改为纵横差异值,加强相似性优化能力,并且在距离损失中加入基于欧拉角的方向表示,提高预测框位置回归的收敛速度。
同时在检测头中加入坐标注意力机制,该机制将位置编码信息嵌入通道注意力,从而使移动网络关注更大区域的信息而避免引入大的开销,提高引导预测头和辅助预测头的协作和检测性能。
下面通过一具体的实施例对本申请进行举例说明:
S1、收集多模态PCB图片数据集,多模态的数据集主要包括三种不同亮度和不同尺寸以及不同颜色的PCB图像,并通过裁剪、翻转和GridMask,mixup等组合进行数据增强以进一步丰富数据集,在图像增强策略中,mosaic批量处理图片个数设置为4,即随机选取4张图片进行翻转(对原始图片进行左右的翻转)、缩放(对原始图片进行大小的缩放)、色域变化(对原始图片的明亮度、饱和度、色调进行改变)等操作,并对数据集中的电容器,电阻器,感应器,晶体管,二极管和集成电路等元器件重新进行标注与划分,划分据集为6492张训练集,811张验证集,2609张测试集。
S2、设置预训练参数,调用基准模型YOLOv7的预训练权重进行迁移训练,预设置warmup预热学习率为0.01,预设置余弦退火算法从初始学习率衰减至0.002,随机梯度下降法动量参数设置为0.937,IoU阈值设置为0.2。训练轮数设置为100轮,并且分别使用不同的输入尺寸进行多尺度测试。在动态标签分配策略中,引导头和预测头使用相同的正负样本分配策略,初始阶段设置匹配的anchor数为9。
S3、创建基于YOLOv7的轻量级网络架构,包括骨干网络层,特征提取层,以及预测层,从内存访存的角度出发,在骨干网络中使用高效的ELAN聚合网络,对模型进行缩放。
图片调整大小后首先进入骨干网络层,经过ELAN模块后,通道数变为输入时的2倍。
S4、接着进入特征提取层,进行金字塔池化操作,该操作能够解决输入图片大小不一造成的缺陷,把一个特征图从不同的角度进行特征提取,再聚合。在特征融合阶段,运用递归FPN,将原来FPN的融合后的输出,再输入给Backbone,进行二次循环,在卷积层的后面对每一张图片都进行了多方面的特征提取,以提高目标识别的精度。
S5、接着进入Head预测层,将提出的SEIoU替换掉YOLOv7中原来的CIoU位置损失函数,并通过计算最小化SEIoU位置损失函数使目标的预测框与相应的真实框进行回归,采用导向头和辅助头双头预测,避免金字塔新生成的特征映射的权重的丢失。
S6、在检测头中加入坐标注意力机制CA(Coordinate Attention),该机制将位置编码信息嵌入通道注意力,输入信息经过该注意力模块处理后,能够捕获识别特征的长依赖关系,使移动网络关注更大区域的信息而避免引入大的开销,提高引导预测头和辅助预测头的协作和检测性能。
S7、接下来进入规划的模型结构重参化模块REP,REP模块在训练和部署的时候结构不同,在训练的时候由3x3的卷积添加1x1的卷积分支,同时如果输入和输出的通道以及高、宽的大小一致时,再添加一个批量归一化BN(BatchNormalization)的分支,三个分支相加输出。进行模块结构重参化操作能够在不增加计算量的情况下提高精度。
S8、最后根据预测层输出的三层不同大小的特征图,预测出结果。
以上详细步骤主要为本发明PCB元件检测方法的实施方式与网络模型处理图片的流程。接下来训练修改后的模型,训练过程中,网络模型按照以上阐述处理输入图片信息。最后将训练好的权参文件进行部署与测试,通过计算衡量模型性能的指标mAP@0.5来评估该方法的应用效果。
结果表明,与原YOLOv7算法相比,本发明的算法mAP@0.5提升2.1%,达到92.6%。为验证本发明的检测效果,采集PCB板图像进行检测,图4为原YOLOv7的检测效果,图5为本发明在不同模态下的PCB元件的检测效果图,结果表明,本发明PCB元件检测方法明显提高了检测精度,降低了漏检率。
综上所述,本发明PCB元件检测方法,在不大幅增加计算量的情况下,显著提高检测性能,其轻量级,实时性,高精度的特点能够满足部署到边缘设备的需求。
实施例2
基于实施例1相同的发明构思,本发明实施例提供了一种基于深度学习的PCB元件检测系统,包括:
网络架构构建模块,用于改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层;采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数;在原始YOLOv7网络架构的预测头中加入坐标注意力机制;
模型训练模块,用于获取PCB图片的训练数据集和验证数据集;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;
结果输出模块,用于将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果。
实施例3
本申请的实施例还提供了一种电子设备,在本申请实施例中,电子设备可以是平板电脑、智能手机、个人数字助理等。
电子设备可以包括:存储器、处理器、通信接口和通信总线,通信总线用于实现这些组件的连接通信。
存储器用于存储全部模型数据、以及本申请实施例提供的PCB元件检测方法及系统对应的计算程序指令等各种数据,其中,存储器可以是随机存取存储器(RAM),只读存储器(ROM),可编程只读存储器(PROM),可擦除只读存储器(EPROM)等。
处理器用于读取并运行存储于存储器中的与PCB元件检测对应的计算机程序指令时,执行本申请实施例提供的PCB元件检测。
处理器可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(CPU)、网络处理器(NP)等;还可以是数字信号处理器(DSP)、分立门或者晶体管逻辑器件、分立硬件组件。
实施例4
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。
Claims (9)
1.一种基于深度学习的PCB元件检测方法,其特征在于,包括:
改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层;采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数;在原始YOLOv7网络架构的预测头中加入坐标注意力机制;
获取PCB图片的训练数据集和验证数据集;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;
将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果;
SEIoU位置损失函数的表达式为:
;
其中,分别是IoU位置损失函数、距离损失、宽损失和高损失,/>是方向偏移量,/>分别是预测框中心点和真实框中心点的纵轴坐标差与横轴坐标差,/>分别是预测框和真实框相并的外接矩形的高差与宽差,/>分别是预测框和真实框的实际高差与宽差,/>是微小量参数。
2.根据权利要求1所述的基于深度学习的PCB元件检测方法,其特征在于,采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层包括:
将原始YOLOv7网络架构中FPN融合后的输出输入至骨干网络中进行二次循环;
将二次循环后输出的三层不同尺寸的特征图替换原始自下向上二次融合的PAFPN模型。
3.根据权利要求1所述的基于深度学习的PCB元件检测方法,其特征在于,在原始YOLOv7网络架构的预测头中加入坐标注意力机制包括:在检测头中的特征融合阶段之后与模型重参化之前加入坐标注意力机制。
4.根据权利要求1所述的基于深度学习的PCB元件检测方法,其特征在于,还包括获取PCB图片的测试数据集;将测试数据集输入至深度学习模型中,以验证深度学习模型的泛化能力。
5.根据权利要求4所述的基于深度学习的PCB元件检测方法,其特征在于,获取PCB图片的训练数据集、验证数据集与测试数据集包括:
采集不同分辨率,不同亮度和不同颜色的PCB板图片组成多模态的PCB图片数据集;
对所述PCB图片数据集进行预处理,获得训练数据集、验证数据集与测试数据集。
6.根据权利要求5所述的基于深度学习的PCB元件检测方法,其特征在于,对所述PCB图片数据集进行预处理包括:
将PCB图片数据集进行裁剪、翻转并通过GridMask与mixup的组合进行数据增强,获得扩充数据集;
对扩充数据集中图片上的元件进行位置标注和类别划分。
7.一种基于深度学习的PCB元件检测系统,其特征在于,包括:
网络架构构建模块,用于改进原始YOLOv7网络架构,获得改进的YOLOv7网络架构;其中,改进原始YOLOv7网络架构包括:采用反向递归FPN架构优化原始YOLOv7网络架构的特征提取层;采用SEIoU位置损失函数改进原始YOLOv7网络架构的CIoU损失函数;在原始YOLOv7网络架构的预测头中加入坐标注意力机制;
模型训练模块,用于获取PCB图片的训练数据集和验证数据集;采用训练数据集训练改进的YOLOv7网络架构并确定训练模型的参数,采用验证数据集评估并调优训练模型的超参数,获得深度学习模型;
结果输出模块,用于将待检测的PCB图片输入至深度学习模型中,获得PCB元件的检测结果;
SEIoU位置损失函数的表达式为:
;
其中,分别是IoU位置损失函数、距离损失、宽损失和高损失,/>是方向偏移量,/>分别是预测框中心点和真实框中心点的纵轴坐标差与横轴坐标差,/>分别是预测框和真实框相并的外接矩形的高差与宽差,/>分别是预测框和真实框的实际高差与宽差,/>是微小量参数。
8.一种电子设备,其特征在于,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据权利要求1~6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310410964.2A CN116168017B (zh) | 2023-04-18 | 2023-04-18 | 一种基于深度学习的pcb元件检测方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310410964.2A CN116168017B (zh) | 2023-04-18 | 2023-04-18 | 一种基于深度学习的pcb元件检测方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116168017A CN116168017A (zh) | 2023-05-26 |
CN116168017B true CN116168017B (zh) | 2023-07-28 |
Family
ID=86416553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310410964.2A Active CN116168017B (zh) | 2023-04-18 | 2023-04-18 | 一种基于深度学习的pcb元件检测方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116168017B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117011688B (zh) * | 2023-07-11 | 2024-03-08 | 广州大学 | 一种水下结构病害的识别方法、系统及存储介质 |
CN117058241B (zh) * | 2023-10-10 | 2024-03-29 | 轩创(广州)网络科技有限公司 | 一种基于人工智能的电子元件定位方法及系统 |
CN117333726B (zh) * | 2023-12-01 | 2024-03-01 | 宁波云德半导体材料有限公司 | 基于深度学习的石英晶体切割异常监测方法、系统及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11887358B2 (en) * | 2020-06-10 | 2024-01-30 | Ancestry.Com Operations Inc. | Systems and methods for identifying and segmenting objects from images |
US11875580B2 (en) * | 2021-10-04 | 2024-01-16 | Motive Technologies, Inc. | Camera initialization for lane detection and distance estimation using single-view geometry |
CN114241548A (zh) * | 2021-11-22 | 2022-03-25 | 电子科技大学 | 一种基于改进YOLOv5的小目标检测算法 |
CN115731164A (zh) * | 2022-09-14 | 2023-03-03 | 常州大学 | 基于改进YOLOv7的绝缘子缺陷检测方法 |
-
2023
- 2023-04-18 CN CN202310410964.2A patent/CN116168017B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116168017A (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116168017B (zh) | 一种基于深度学习的pcb元件检测方法、系统及存储介质 | |
CN110738207B (zh) | 一种融合文字图像中文字区域边缘信息的文字检测方法 | |
CN110414507B (zh) | 车牌识别方法、装置、计算机设备和存储介质 | |
CN110163193B (zh) | 图像处理方法、装置、计算机可读存储介质和计算机设备 | |
CN109960742B (zh) | 局部信息的搜索方法及装置 | |
KR101896357B1 (ko) | 객체를 검출하는 방법, 디바이스 및 프로그램 | |
CN109886928B (zh) | 一种目标细胞标记方法、装置、存储介质及终端设备 | |
CN112634209A (zh) | 一种产品缺陷检测方法和装置 | |
CN111428807A (zh) | 图像处理方法及计算机可读存储介质 | |
CN112926531B (zh) | 特征信息提取方法、模型训练方法、装置及电子设备 | |
CN112336342B (zh) | 手部关键点检测方法、装置及终端设备 | |
CN113298050B (zh) | 车道线识别模型训练方法、装置及车道线识别方法、装置 | |
CN112001399B (zh) | 基于局部特征显著化的图像场景分类方法和装置 | |
CN113591719B (zh) | 一种自然场景任意形状文本检测方法、装置和训练方法 | |
CN112115879B (zh) | 一种遮挡敏感的自监督行人重识别方法及系统 | |
CN111783797B (zh) | 目标检测方法、装置及存储介质 | |
CN111583180A (zh) | 一种图像的篡改识别方法、装置、计算机设备及存储介质 | |
CN114639101A (zh) | 一种乳状液液滴识别系统、方法、计算机设备及存储介质 | |
CN113763412A (zh) | 图像处理方法、装置及电子设备、计算机可读存储介质 | |
CN116259021A (zh) | 一种车道线检测方法、存储介质和电子设备 | |
CN115984671A (zh) | 模型在线更新方法、装置、电子设备及可读存储介质 | |
CN113886578B (zh) | 一种表单分类方法及装置 | |
CN114743045A (zh) | 一种基于双分支区域建议网络的小样本目标检测方法 | |
CN112733741A (zh) | 交通标识牌识别方法、装置和电子设备 | |
CN112949571A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |