APP下载

基于YOLOv5的轻量化PCB缺陷检测

2022-11-24王恒涛张朝阳刘展威

无线电工程 2022年11期
关键词:锚框剪枝尺度

王恒涛,张 上*,张朝阳,刘展威

(1.三峡大学 湖北省建筑质量检测装备工程技术研究中心,湖北 宜昌 443002;2.三峡大学 计算机与信息学院,湖北 宜昌 443002;3.三峡大学 电气与新能源学院,湖北 宜昌 443002)

0 引言

印刷电路板(Printed Circuit Board,PCB)受限于当前的制造工艺与技术,在生产过程中可能会存在短路、断路、毛刺、焊点缺焊、缺口和余铜等缺陷。在PCB缺陷检测中面临着如下难题:① PCB缺陷种类较多,并且缺陷的大小、形态复杂;② PCB出现缺陷的区域小,难以对其进行精确的捕捉;③ PCB背景单一,缺陷特征与非缺陷特征相似度高,难以对其进行分辨[1]。

传统PCB缺陷检测为人工检测和电光学检测。Kim等[2]通过小波变换进行图像压缩,节省PCB缺陷检测所需的内存和计算量。Gaidhane等[3]使用传统机器学习算法进行PCB缺陷检测。Annaby等[4]设计了一套低复杂度NNC的传统机器视觉方案来解决缺陷检测。Tsai等[5]使用傅里叶图像重建方法进行小缺陷的检测。Cho等[6]使用超声激光发热成像进行实时缺陷检测。传统检测方法存在检测效率低下和漏检率高等缺点。随着人工智能的发展,基于深度学习的缺陷检测形成了一套无接触的自动检测方法,成为当下缺陷检测的热点,并且具有检测适应能力强、泛化能力强等优点。基于深度学习的目标检测算法分为2类:双阶段检测算法和单阶段检测算法。双阶段检测算法通过先进行候选区域提取目标建议框,再进行目标的分类与具体位置的预测,如Mask R-CNN[7],Fast R-CNN[8]和Faster R-CNN[9],具有检测精度高、漏检率低等优点,但检测速度慢、计算复杂,难以达到实时性要求。单阶段检测算法将候选区域的特征提取与预测框的定位融合在一起,直接进行目标类别的判断和检测框的定位,如YOLO[10],YOLO900[11],SSD[12],YOLOv3[13],YOLOv4[14]和YOLOv5,具有检测速度快、计算量较少等优点,能够满足实时检测的需求。王永利等[15]使用卷积神经网络进行PCB缺陷检测。何国忠等[16]使用改进版YOLOv4进行PCB缺陷检测。蒋子敏等[17]使用轻量级网络进行PCB芯片中文字符的识别。

当前,PCB缺陷检测面临着多种难题,因此,为了更好地对其进行缺陷检测,本文贡献如下:

① 实现四尺度检测,提高深层语义与低层语义的信息融合,并且对预选框进行调整,提高模型小目标检测能力。

② 对模型进行剪枝,使用FPGM算法对YOLOv5模型进行剪枝,降低模型的容量和计算量,提高检测速度。

③ 使用聚类和遗传学习算法对模型锚框进行调整,促进模型检测效果,提高模型在训练过程中的收敛速度。

④ 在模型中引入Coordinate Attention(CA)[18]注意力机制,部署于主干网络,调整模型在空间和通道信息提取的方式。

1 YOLOv5网络

YOLOv5是一种单阶段检测算法,一次性输出预测框的位置和类别置信度,拥有极快的检测速度和较高的检测精度。

YOLOv5算法由4部分组成:第1部分为输入层,主要实现数据训练前预处理,主要功能有Mosaic数据增强、自适应锚框计算和自适应图片缩放;第2部分为主干网络(Backbone),主要实现目标特征的提取,由Focus结构和CSP结构组成;第3部分为颈部网络(Neck),主要实现目标特征的收集,由FPN+PAN结构组成;第4部分为检测层(Prediction),主要用于预测信息损失部分。

原始YOLOv5模型适用于COCO数据集,在检测大目标时具有明显的优势。而PCB缺陷的检测目标大多为小目标,为此,需要在PCB缺陷目标检测任务上对原始模型进行改进。

2 轻量化PCB缺陷检测算法

2.1 注意力机制

CA注意力机制将位置信息融合到通道信息中。CA在捕获通道特征的同时,还进行方向和位置的信息捕捉。因此,CA注意力机制能更加精准地定位和识别图像中的重要信息。CA注意力机制如图1所示,由2部分组成。第1部分为坐标信息嵌入。图像输入注意力机制后,池化层沿着水平和垂直方向进行编码,分别得到水平和垂直方向的特征图。然后将特征图进行拼接,利用1×1卷积函数得到中间特征图。第2部分为坐标信息特征图生成。沿着空间维度分解2个张量,分别沿水平和垂直方向进行卷积和激活函数处理,将2个方向的输出进行融合。

图1 CA注意力机制

使用CA注意力机制能够在捕获位置信息的同时对通道信息进行捕获,而且CA注意力的计算量较小。

2.2 FPGM算法

基于几何中值的卷积神经网络滤波剪枝(FPGM)算法[19]是一种通过修剪冗余滤波器的模型压缩方式,其主要思想是利用可代替性来进行模型特征的修剪,修剪掉的滤波器均为离几何中心最近的。FPGM不再根据范数作为裁剪的标准,而是根据过滤器的可替代性确定裁剪规则。FPGM原理如图2所示,相较于传统剪枝方式,FPGM保留了更多的特征信息。

图2 FPGM原理

FPGM算法如下。

FPGM算法描述Preparations:input training data:Xgiven pruning rate R1:Initialize:model parameter W={W(i),0 ≤ i ≤ L}2:forepoch = 1;epoch ≤ epoch_max;epoch ++do3: Update the model parameter W based on X4: for i = 1;i ≤ L;i ++ do5: Calculate:the sum of N Euclidean distances6: end for7: Find the relatively small number of N×R filters8: Zeroized the selected filter gradient9: end for10:Obtain the pruning model with zeroing model W# from W11:Remove zero parameters from the model W∗Output:The pruning model and its parameters W∗

结合FPGM算法描述,YOLOv5实现剪枝的具体流程如图3所示。首先,对YOLOv5模型和参数进行设定,给定剪枝率R。然后,不断迭代卷积核欧式距离之和的计算、排序和梯度置零,直至模型收敛或训练终止,得到待去零剪枝模型。最后,进行去零操作,包括全零卷积核、冗余通道和BN层参数冗余数值,得到完整去零剪枝模型。

图3 YOLOv5实现FPGM流程

2.3 四尺度检测

YOLOv5中使用三尺度检测,尺度大小为20 pixel×20 pixel,40 pixel×40 pixel与80 pixel×80 pixel,这种检测尺度适用于检测目标较大的情况。而PCB缺陷的形态各异,模型在训练过程中会丢失较小的目标区域信息,导致错检与漏检率提高。

为了解决原模型小目标漏检的难题,本文算法在YOLOv5的检测层中增加160 pixel×160 pixel检测尺度。四尺度检测结构如图4所示(单位:pixel)。

图4 四尺度检测结构

主要改进策略为:在特征提取层增加卷积层与上采样层,然后将2倍上采样层与160 pixel×160 pixel特征层进行融合,以此提高低层语义与深层语义的连接与融合,提高模型小检测能力。

相较于YOLOv5算法,本文的四尺度检测算法充分考虑了浅层特征信息,降低了卷积带来的小目标区域特征信息丢失。6个类别的目标检测效果均有显著提高,提高了召回率,降低了漏检率。

2.4 锚框参数优化

锚框的设定存在着较大的人为因素,YOLOv5中加入了自适应锚定框,但存在触发机制。为了能够更好地进行训练,提高模型精度,在训练前对锚框进行k均值聚类和遗传学习算法处理,对数据集进行分析,获得最适合的预设锚定框。

锚定框分配如表1所示,针对小目标漏检问题,使用自适应锚定框机制调整锚框。不但调整原有3类锚框的尺寸,而且增加(8,8),(13,13),(17,11),提高小目标检测精度。通过实验,使用上述锚框不仅可以提高训练收敛速度,节省训练时间,而且可以小幅度提高精度。

表1 锚定框分配

2.5 改进后模型结构

改进后模型结构如图5所示,为了能够精准地定位检测区域,提高准确率,对网络结构进行了2个改进:增加CA注意力机制和四尺度检测机制。在主干网络每一次下采样后增加了CA注意力模块,对主干网络的特征信息提取方式进行调整,优化其信息提取能力。设计四尺度检测机制,扩大检测范围,增加160 pixel×160 pixel检测尺度,增加深层语义信息与浅层语义的融合,提高小目标检测能力。

图5 改进后YOLOv5网络结构

3 实验及结果分析

3.1 PCB缺陷检测数据集

本文采用PCB缺陷检测公开数据集[20]进行算法验证。该数据集由北京大学智能机器人开放实验室发布,原始数据共693张,6个类别。由于原数据集数量过少,故对其进行数据增强操作,将原数据进行裁剪、镜像和亮度调节操作,扩充后共有9 702张图片。数据集划分如表2所示。

表2 数据集划分

3.2 实验结果与分析

基准算法与改进算法在PCB缺陷数据集的指标对比如表3所示。从数据上看,模型使用四尺度和融入CA注意力机制会增加计算量,降低推理速度,但平均检测精度有所提高,平均精度最高可达99.06%。模型使用不同的输入尺寸,获得的检测效果有较大差别。随着输入尺寸的增加,检测效果在不断提升,但检测速度在下降。模型随着剪枝率的增加,计算量、参数量和模型体积均呈线性降低;推理时间不断降低的同时精度有所降低,但带来的影响较小,在剪枝率小于30%时,平均精度仅下降1%左右;在剪枝率小于70%的情况下,模型的平均精度仍高于90%。剪枝率和输入尺寸的改变均会影响推理速度,输入尺寸的增加会导致推理时间的增加。随着剪枝率的增加,推理时间不断降低,但在输入尺寸为640 pixel时,剪枝率超过60%后,模型的推理时间降低速度变缓,基本保持不变。

表3 基准算法与改进算法在PCB缺陷检测数据集的指标对比

如表4所示,在公开PCB缺陷检测数据集上,本文算法对平均精度、模型体积和推理速度均有提高。在仅考虑精度的情况下(无剪枝),mAP最高为99.06%,相比SSD,YOLOv4和YOLOv5s算法分别提高了7.78%,1.95%和5.72%。在仅考虑模型体积和推理速度的情况下(剪枝率为90%),模型容量最低为0.563 MB,为SSD模型的0.57%,YOLOv4的0.23%,YOLOv5s的3.91%,模型体积大幅降低。从检测速率上来看,本文算法的检测速率优于YOLOv5,YOLOv4和SSD算法,推理速度可达88.9帧/秒,分别提高了20.8%,62.3%和39.9%。

表4 算法对比

3.3 实验效果与分析

本文在YOLOv5和改进版YOLOv5算法上的检测效果如图6和图7所示,依次为毛刺、缺口、余铜、开路、漏焊和短路检测效果。

图6 YOLOv5检测效果

图7 改进后检测效果

由图6和图7可以看出,本文改进版模型在6个类别中均比原YOLOv5模型有较大的改进。改进版模型可检测出更多的缺陷且错检率极低。综上分析,本文改进版模型漏检率低、误检率低、查全率高、准确率高。

4 结束语

PCB缺陷人为检测难度大且成本高。为实现精确的PCB缺陷检测,本文从网络结构入手,通过增加检测层、调整模型感受野范围,提高算法对小缺陷目标的检测能力。实现剪枝算法与模型的融合,通过FPGM对改进后模型进行轻量化处理,使模型的体积和计算量大幅降低,模型体积可压缩至0.56 MB,计算量降至0.9 GFLOs。通过增加注意力机制,调整模型空间和通道的信息提取方式,在公开PCB缺陷数据集上对本文的目标检测算法进行了验证,在提高精度的同时,能够提高模型的推理速度,使本文模型具有实时性高、性能稳定和鲁棒性高等特点。相较于大部分PCB缺陷检测算法,本文算法在平均精度、体积和检测速度等方面均取得了不错的效果。

猜你喜欢

锚框剪枝尺度
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
人到晚年宜“剪枝”
基于GA-RoI Transformer的遥感图像任意方向目标检测
基于YOLOv4-Tiny模型剪枝算法
财产的五大尺度和五重应对
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
剪枝
宇宙的尺度