基于LWN-Net的印刷电路板缺陷检测算法

2024-03-13 05:45斌,胡晖,杨
计算机集成制造系统 2024年2期
关键词:轻量化损失精度

文 斌,胡 晖,杨 超

(三峡大学 电气与新能源学院,湖北 宜昌 443002)

0 引言

电子工业的发展在中国经济中占据着重要的位置,印刷电路板(Printed Circuit Board,PCB)作为连接各种电子元器件的载体,负责为设备提供线路连接和硬件支撑,在各个高新技术领域得到了广泛应用。然而,PCB的制作过程十分复杂,导致PCB存在漏孔、缺口、短路、断路、毛刺、余铜等缺陷,PCB板缺陷检测存在以下问题:①缺陷目标较小且易受背景颜色影响;②缺陷种类较多且线路复杂,无法准确定位缺陷;③现今网络无法满足工业实时性部署的要求。因此在生产过程中对PCB缺陷进行非接触、准确、高效地自动检测非常必要。

早期PCB缺陷检测方法以人工检测、电气检测和红外检测为主。人工检测易受工人情绪波动、视觉疲劳等因素影响,检测效率低、速度慢、人力成本高,且信息不易集成;电气检测与红外检测对设备要求较高且检测的缺陷种类较少,无法满足现代化PCB检测的需求。

传统PCB缺陷检测算法的弊端日益明显,以机器视觉为核心的检测算法相继推出。BAYGIN等[1]提出一种检测PCB孔洞缺失的方法,该方法采用Hough变换和Otsu阈值化提取图像特征,将待检测的目标图像输入匹配模型中与参考图像匹配,然而该方法在检测过程中需要与正常PCB进行对比检测,通用性较低;LIU等[2]通过形态学和模式识别的方法对图像进行二值化,并对PCB图像的阈值进行分割,从而去除冗余点并标记PCB缺陷,然而该算法复杂度高,应用较少;YUK等[3]基于加速鲁棒和随机森林的方法,提出一种无需正常图像进行对比的PCB缺陷检测方法,虽然精确度和鲁棒性有所提高,但是所需时间和空间较大,效率较低;KUMAR等[4]在PCB的非铜件检测部分使用3D非均匀颜色直方图进行缺陷检测,虽然取得了较好的检测结果,但是易受光照影响,使得该类方法的适用范围较小。

得益于深度学习的兴起,基于卷积神经网络(Convolutional Neural Network,CNN)[5]的缺陷检测方法成为主流方法之一,相比传统PCB缺陷检测方法,该方法无需任何额外信息,即使存在阴影或反射,仍然可以准确定位并检测缺陷区域。现有的深度学习目标检测方法主要分为两类,一类是以Faster-RCNN[6]为代表的双阶段检测算法,例如HU等[7]开发了一个基于Faster-RCNN的、用于PCB缺陷检测的微小缺陷检测网络,并在训练阶段使用一种硬挖掘技术的在线示例减轻小数据集和样本不平衡的影响;陈仁祥等通过增加多注意力以及平衡特征金字塔模块对Faster-RCNN进行进一步改进,提高了PCB在有噪声情况下的缺陷表征能力。虽然双阶段检测算法模型的检测精度得到了较好的提升,小目标检测优势明显,但是模型复杂度高、参数量大,无法满足现阶段轻量化的要求。另一类是以YOLO(you only look once)和SSD(single shot multibox detector)[12]为代表的单阶段检测算法,该类算法的检测速度快于双阶段算法,但小目标检测精度低,漏检率高。伍济钢等[13]采用改进的YOLOv4对印刷电路板进行缺陷检测,首先通过改进的K-means聚类,并结合交并比损失函数确定锚框,解决了锚框不适合小目标检测的问题,然后采用MobileNet作为特征提取网络使模型轻量化,最后引入Inceptionv3作为检测网络,解决了目标细节丢失的问题;RAN等[14]基于SSD模型检测PCB缺陷,然而实验检测到缺陷只有3类,且未与其他目标检测方法进行比较;ZENG等[15]针对小目标缺陷检测设计了改进的PCB缺陷检测框架(Improved PCB Defect Detection,IPDD),并提出新的特征金字塔,以ResNeXt为主干网络并嵌入注意力机制,最后得到较好的鲁棒性;苏佳等[16]提出新型的PCB小目标缺陷检测网络YOLO-J,首先采用二分K-means 聚类算法重新聚类先验框,然后对路径聚合网络(Path Aggregation Network,PANet)进行改进,增强了模型的特征提取能力,最后使用Hard-swish激活函数,提升了模型的训练速度,该算法的检测效果能够满足工业检测精度的要求。

针对以上算法中检测精度低、速度慢、漏检率高和模型参数量大的问题,本文提出一种基于YOLOv3(you only look once version 3)的轻量级权重新型网络(Lightweight Weight Novel Network,LWN-Net)。主要创新如下:

(1)设计轻量级特征增强网络(Lightweight Feature Augmentation Network,LFAN)为LWN-Net的主干部分,该网络主要由不同数量的残差块和残差蒸馏空间金字塔池化(Residual Distillation Space Pyramid Pooling,RDSPP)组成,保证模型轻量化的同时避免损失过多精度。

(2)引入权重聚合分配机制(Weight Aggregation Distribution Mechanism,WADM)并添加到主干网络中,以平衡特征提取网络中的语义信息和位置信息,提高模型对小目标特征的提取能力。

(3)提出新型特征金字塔网络(Novel Feature Pyramid Network,NFPN)作为特征融合部分,即特征图金字塔网络融合了密残差空洞空间金字塔池化(Dense Residual Atrous Spatial Pyramid Pooling,DRASPP)和细节整合模块(Detai Integration Module, DIM)两种结构,避免了丢失细节信息以及产生冗余信息。

(4)在训练过程中,采用回归损失函数SIoU[17],加快模型的收敛速度并提高检测精度。

1 LWN-Net

1.1 模型概述及算法流程

LWN-Net网络结构如图1所示,主要由LFAN,WADM,NFPN以及计算损失并负责预测的头部网络组成,其算法流程图如图2所示。首先将PCB缺陷图传入LFAN,由不同数量的残差块提取特征,并采用RDSPP提取加强特征,从而提取更加充分的PCB缺陷特征;然后,将LFAN提取的缺陷信息输入WADM,平衡语义信息和位置信息,使不同层之间的通信更加高效,得到平衡特征层;其次,为避免丢失细节以及多尺度直接融合导致的信息冗余,将平衡特征层传入NFPN,加强提取细节信息,过滤冗余信息;最后,在头部网络中采用3种不同大小的特征层生成边界框,并在边界回归损失计算中采用损失函数SIoU,从而检测并定位PCB缺陷。

1.2 轻量级特征增强网络

在PCB工业缺陷检测过程中,检测模型部署在边缘设备中,需要其满足轻量化要求,虽然原主干特征提取网络DarkNet53能够满足检测模型精度的要求,但是由于参数量大、结构复杂、检测速度慢,无法满足现阶段工业检测的要求。因此,本文提出以LFAN为主干网络提取PCB缺陷特征,具体结构如图3所示,其中残差块的数量为2,2,2。为了在避免模型轻量化的同时降低模型检测精度,提出RDSPP,其结构如图4所示,该模块由粗提取和细提取两部分组成。在细提取PathA分支中,首先采用蒸馏模块(D1~D4)提取特征,并采用浅层残差块(Shallow Residual Block,SRB)组成细化模块来细化提取的特征;然后,采用1×1卷积进行通道缩减;最后,应用坐标注意力(Coordinate Attention,CA)[18]机制生成能够区分方向并生成坐标感知的特征图,减少丢失位置信息。在粗提取PathB分支中,采用空间金字塔池化(Spatial Pyramid Pooling,SPP)[19]和不同大小的卷积提取特征,其中SPP由4种不同尺寸的最大池化组成,为了能够提取更高阶的特征,提高了图像尺度不变性和鲁棒性。

1.3 权重聚合分配机制

特征提取过程中语义信息和位置信息不平衡会降低模型的检测精度。因此,本文提出WADM,其根据每个模块信息自适应地预测一组权重来增强每个特征层的原始特征,从而提高模型对PCB小目标的特征提取能力,具体结构如图5所示。

WADM分为权重聚合和权重分配两部分。在权重聚合中,首先输入LFAN的输出特征层Xn,n∈{0,1,2,3};然后,分别对每层特征层进行全局平均池化(Global Average Pooling,GAP)压缩其空间信息,整合全局的目标信息。每个特征层表示为Xn∈RHn×Wn×Cn,通过权重聚合计算全局平衡特征层Z∈R1×1×φ,

(1)

式中:φ为全局平衡特征层通道数;f(x)表示由内向外分别进行GAP、归一化和激活操作;‖·‖表示沿通道维度进行拼接;σ(·)表示sigmoid激活函数;BN(·)表示归一化层;Xn(i,j),n∈{0,1,2,3}表示特征图空间坐标。

Φi=Fi(Z),i∈{0,1,2};

(2)

Pi=Xi×Φi,i∈{0,1,2}。

(3)

式中F(·)表示全连接操作。

1.4 新型特征金字塔网络

随着网络的加深,语义信息逐渐丰富,但随之而来的是细节信息逐渐丢失,在特征金字塔网络(Feature Pyramid Network,FPN)[20]中亦如此,不同尺度特征直接融合导致大量的信息冗余和冲突,在一定程度上降低了模型的多尺度表达能力,加大了缺陷精确定位的难度。因此,本文提出NFPN,具体结构如图6所示。NFPN在原基础上提出两种结构,即DRASPP和DIM。

1.4.1 密残差空洞空间金字塔池化结构

为了减少细节丢失,进一步提高模型精度,在WADM的输出特征层P0后加入DRASPP结构,具体如图7所示。其由3部分组成,分别为ASPP(atrous spatial pyramid pooling)模块、密残差单位卷积和GAP。在DRASPP结构中,首先利用ASPP模块的多分支结构获取不同尺度的特征信息,提升模型的表达能力,并添加GAP分支防止网络过拟合;然后,用密残差单位卷积不断增强各个ASPP块的预输出和后输出特征交互,从而减少信息丢失。整个模型的工作原理如下:

(4)

式中:Ri(·),i∈{0,1},表示密残差单位卷积;Ai(·),i∈{0,1},表示ASPP块,每一个ASPP块级联1×1的卷积和不同膨胀率的3×3空洞卷积;⊕表示沿通道维度进行拼接。

整个模型的最终输出为

out=G(P0)⊕A0(P0)⊕A1(out0)⊕A2(out1)。

(5)

式中:G(·)表示GAP;Ai(·),i∈{0,1,2},表示ASPP块,每一个ASPP块级联1×1的卷积和不同膨胀率的3×3空洞卷积。

1.4.2 细节整合模块

为了过滤冗余信息和冲突信息,提出细节整合模块DIM,其结构如图8所示。该模块包括通道整合模块和空间整合模块两部分,利用该模块进一步细化特征图,剔除多余信息,增强特征融合。

Mc(F)=β{Conv3×3[AvgPool(F)]}+

β{Conv3×3[MaxPool(F)]}。

(6)

式中:F为空间整合模块输入;β(·)表示Relu激活函数;Convm×m表示核大小为m的卷积操作;AvgPool(·)表示平均池化;MaxPool(·)表示最大池化。

在空间整合模块中沿着通道轴进行平均池化和最大池化,将两个池化操作得到的两个特征图拼接得到全局的空间信息,然后对拼接后的特征图进行卷积和Relu激活,筛选出有用目标信息的空间信息,达到空间信息整合效果,最终空间整合模块的输出为

Ms(F)=β{Conv7×7[AvgPool(F)⊕MaxPool(F)]}。

(7)

最后将通道整合模块与空间整合模块分别与输入相乘,得到细节整合模块的输出为

F′=F×Mc(F)+F×Ms(F)。

(8)

1.5 SIoU损失函数

在回归损失计算中,原YOLOv3使用的损失函数GIoU[21]未考虑所需真实框与预测框之间不匹配的方向,导致收敛速度变慢且效率降低,从而产生更差的模型。因此,本文引用新的损失函数SIoU替换原YOLOv3的损失函数GIoU,其考虑所需回归之间的向量角度,重新定义了惩罚指标。SIoU损失函数由角度损失、距离损失、形状损失和IoU损失4个损失组成。

1.5.1 角度损失

角度损失∧的计算公式为

(9)

其各参数关系如下:

(10)

1.5.2 距离损失

距离损失Δ的计算公式为

Δ=∑1-e-γρt,γ=2-∧,t=x,y。

(11)

式中:γ=2-∧ ,表示[1,2]范围内的常数,防止距离损失为零;γ为被赋予时间优先的距离值,与角度损失∧有关x,y表示水平方向和垂直方向。px和py为真实框与预测框之间位置的偏离程度,

(12)

1.5.3 形状损失

形状损失Ω的计算公式为

Ω=∑t=w,h(1-e-wt)θ
=(1-e-ww)θ+(1-e-wh)θ;

(13)

(14)

式中:θ表示对形状损失的关注程度;ωw和ωh为预测框与真实框之间宽和高的拉伸程度;(w,h)和(wgh,hgt)分别为预测框和真实框的宽度和高度。形状损失考虑了预测框和真值框之间的真实长宽比,对ωw和ωh的计算只用到真实框和预测框的长宽属性,因此计算量更少,推理速度更快。

1.5.4 回归损失和总损失

综上所述,回归损失函数为

(15)

(16)

式中:IoU为真实框和预测框交并比;B表示预测框;BGT表示真实框。

总损失为

L=wboxLbox+wclsLcls。

(17)

式中:Lcls表示焦点损失FocalLoss[22];Lbox表示框损失;wbox和wcls为框损失和焦点损失的权重,实验中设置wbox=0.05,wcls=0.075。

2 实验与结果分析

2.1 实验环境和数据

本实验所采取的硬件环境为Intel Core i7-11700 CPU、16 G内存、RTX3080显卡、10 G显存,采用CUDA 11.1和cuDNN 8.2.0对图形处理器(Graphics Processing Unit,GPU)进行加速;软件环境为Python 3.8,Opencv和Pycharm 20.1.1。

实验数据集采用北大智能机器人开发实验室的印刷数据集[23],经过裁剪、旋转等操作将数据集扩充到10 668张,其中训练集、验证集、测试集的比例为8∶1∶1,数据集中各缺陷图片数量如表1所示。

表1 PCB缺陷类型

数据集中共6类缺陷,分别为焊点漏焊、缺口、开路、余铜、短路、毛刺,如图11所示。

2.2 评价指标

在目标检测中,常采用平均精度均值mAP作为模型的评价指标,其为所有类别平均精度AP的均值,而每个类别APi为第i个类别的精确度P和对应召回率R在0-1范围内曲线所包围的面积。

(18)

(19)

(20)

式中:TP为被正确划分为正样本的个数;FP为被错误划分为负样本的个数;FN为被错误划分为负样本的个数。

帧数FPS的计算公式为

(21)

式中:Fn为检测图片的个数;T为检测图片所用的总时间。

2.3 结果分析

2.3.1 LWN-Net网络训练

LWN-Net在训练过程中输入的原始图片大小为416×416,经实验得出,设置批次大小为8,总训练次数为300,学习率的初始值为1.25×10-4,采用余弦退火衰减策略更新学习率,可以得到最优模型权重。预测效果最佳的训练和验证损失曲线及评估指标mAP、漏检率、召回率如图12所示。

2.3.2 不同模块性能对比

对本文所提模块进行消融实验,结果如表2所示,其中IoU=0.5时,mRecall为6个类别Recall取平均值,IoU=[0.5,0.95],步长为0.05时,mRecall值由coco工具箱中area=all计算得出。为保持模型轻量化,以LFAN为主干提取特征,然而所提取特征中的语义信息和位置信息不平衡会导致精度降低,因此添加WADM模块,以提高模型的特征提取能力。由实验b可得,IoU=0.5时,mAP提升了1.68%,mRecall提升了5.61%;IoU=[0.5,0.95],步长为0.05时,mAP提升了4.6%,mRecall提升了3.5%,证明WADM模块具有有效性。因为不同尺度融合导致一些细节信息缺失,并增加了冗余信息,从而影响网络的检测效果,所以添加NFPN模块来过滤冗余信息,提升检测精度。由实验c可知,IoU=0.5时,mAP提升了0.69%,mRecall提升了0.83%;当IoU=[0.5,0.95],步长为0.05时,mAP提升了4.2%,mRecall提升了3.0%,模型精度得到进一步提高。为加快模型收敛,提高检测效率,将回归损失函数替换为SIoU,由实验d可得,IoU=0.5时,mAP提升了0.44%,mRecall提升了0.95%;IoU=[0.5,0.95],步长为0.05时,mAP提升了1.6%,mRecall提升了1.2%,从而验证了SIoU的有效性。

表2 消融实验性能对比 %

2.3.3 不同主干性能对比

在与上述实验相同的硬件配置下,IoU=0.5时选取不同经典主干进行对比,如表3所示,其中平均漏检率为6个类别漏检率取平均值。选取Ghostnet[24]和Mobilnetv3[25]作为主干,虽然模型更加轻量化,但是模型漏检率较高且检测精度低,因此性能低于LFAN主干。与经典主干Darknet53[11],Resnet50[26],Vgg[27]相比,模型的mAP虽然提升不多,但是召回率有较大提高,分别为2.43%,1.24%,0.43%,且使漏检保持在较低水平,分别降低3.16%,2.16%,1.16%,模型更加轻量化,尤其是图片的检测速度分别提高18.37帧·s-1、10.65帧·s-1、7.21帧·s-1。综上所述,相比其他主干网络,本文采用LFAN主干提取特征,使得模型的精度较高、漏检率较低且检测速度更快,模型规模仅为28.19 MB,更加符合现阶段轻量化部署的要求。

表3 不同主干性能对比

2.3.4 不同检测网络性能对比

为了客观验证本文所提PCB缺陷检测网络LWN-Net的优越性,在相同硬件配置且IoU=0.5下,将其与单阶段网络(SSD[12],YOLOv3[11],YOLOv4[28])和轻量化网络(MobileNetV3-YOLOv3[29],GhostNet-YOLOv3[30])5种目标检测网络进行对比。由表4可知,在单阶段网络中,LWN-Net网络性能均优于YOLOv3和SSD检测算法。与YOLOV4相比,虽然召回率降低了0.06%,但是对于缺陷检测更重要的mAP提高了0.4%,而且检测速度也有较大提升。在轻量级网络中,LWN-Net网络性能优于GhostNet-YOLOv3检测算法。与MobileNetV3-YOLOv3相比,虽然检测速度降低了5.35帧·s-1,但是mAP提升了0.92%且漏检率降低了2%。综合分析,与单阶段算法和轻量级检测算法相比,本文算法LWN-Net在保持模型轻量化的同时,具有较高的检测速度和精度,并有效避免了因缺陷目标较小而出现的漏检现象。

表4 不同检测网络性能对比

2.3.5 相同缺陷场景不同检测方法对比

为了验证LWN-Net网络在同类算法中的性能,在相同硬件配置下分别与相同缺陷场景中的检测算法(YOLO-Z,YOLO-J[16])进行比对分析,并在相同数据集上进行训练和评估。当IoU=0.5时,所得比对结果如表5所示。YOLO-Z算法将Mobilenetv3作为模型的主干,并用改进的二分K-means重新聚类先验框,虽然模型达到了轻量化,但是检测精度却低于LWN-Net;YOLO-J算法将Resnet50作为主干网络,采用H-swish激活函数与注意力机制增强模型特征提取能力,其检测精度得到了提高,但是模型规模较大,无法部署到移动设备。综上所述,LWN-Net算法很好地平衡了mAP、检测速度和模型规模,其性能优于其他网络。

表5 相同缺陷场景不同检测方法对比

2.3.6 检测结果对比

从原数据集随机裁剪相同大小的PCB缺陷图,在相同硬件环境下,分别用LWN-Net网络和YOLOv3网络进行检测,其对比检测结果如图13所示。在图13a中,YOLOv3对小目标检测能力较弱,在检测余铜缺陷出现漏检现象,且在其他缺陷检测中精度不高。在图13b中,LWN-Net网络在检测余铜以及其他缺陷时未出现漏检现象,而且其他缺陷检测的精度均优于YOLOv3。因此,本文算法能够检测出被忽略的小目标缺陷区域,在工业生产缺陷检测中的检测效果较优。

3 结束语

本文提出基于改进YOLOv3的LWN-Net轻量级缺陷检测网络,该网络用LFAN为主干,使模型更加轻量化,并用WADM解决主干提取特征中语义信息和位置信息不平衡的问衡。为避免特征融合过程中丢失细节信息并产生冗余信息,提出NFPN,最后采用回归损失函数SIoU进行网络训练。结果表明,相比于YOLOv3,LWN-Net网络模型规模压缩了87.5%,检测速度提升了8.32帧·s-1,预测精度和召回率分别提升了0.88%和1.6%。由此可见,本文所提LWN-Net网络在准确度、速度、模型规模和漏检率方面展现出明显的优势。未来将继续对模型进行改进,使其可以适应复杂的检测环境;同时通过进一步轻量化处理,使模型满足工业场景下实时检测的需求,更加适用于工业检测及部署。

猜你喜欢
轻量化损失精度
汽车轻量化集成制造专题主编
胖胖损失了多少元
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
GPS/GLONASS/BDS组合PPP精度分析
瞄准挂车轻量化 锣响挂车正式挂牌成立
一般自由碰撞的最大动能损失
损失