基于改进YOLOv5的PCB板表面缺陷检测

2023-06-21 01:09王淑青张子言朱文鑫刘逸凡王娟李青珏
仪表技术与传感器 2023年5期
关键词:注意力卷积精度

王淑青,张子言,朱文鑫,刘逸凡,王娟,李青珏

(1.湖北工业大学电气与电子工程学院,湖北武汉 430068;2.华中科技大学武汉光电国家研究中心,湖北武汉 430074)

0 引言

进入工业4.0时代以来,电子设备与我们的生活紧密相连,而精密的电子产品往往依赖于PCB板进行走线和装配[1-3]。在工业生产中会因为工业设备操作不当,而破坏PCB板原有的电路属性,造成资源浪费。目前,用于PCB板缺陷检测的主要方法有:人工检测法和在线测试[4]。人工检测法受检测人员主观因素较大,且在检测过程中可能会人为造成其他缺陷,检测效率低、人工成本高[5]。在线测试通过电气性能来识别缺陷,常见的有针床测试仪和飞针测试仪,但制造夹具的成本高,检测速度慢[6-7]。

随着机器视觉的快速发展,一种高精度、非接触性的实时检测方法逐渐进入人们视角[8],通过终端与高精度工业相机连接[9],可精准、高效的检测PCB板多类缺陷。如胡珊珊等[10]提出了一种上采样和跳层连接(Skip Connect)进行特征融合的方法,实现对PCB板微小缺陷的检测,但速度有待提高;杨庆华等[11]采用Hough变换和仿射变换配准获取缺陷区域,但检测数据集较少,实验结果缺少说服力;J.Shen等[12]提出一种轻量化模型实现对PCB板的缺陷检测,检测精度较高,有良好鲁棒性。

针对上述研究中PCB板表面缺陷检测存在的各种问题,以YOLOv5深度学习模型为基础,提出了一种更加轻量化的模型。采用EfficientNetV2替代YOLOv5的主干网络,减少模型运算参数。改进注意力机制,引入CA注意力机制代替SE注意力机制,增强模型空间识别能力,提高模型对小目标缺陷的检测效果。引入α族群损失函数,在不增加模型额外参数的情况下,提升模型检测精度和加快模型收敛速度。实验结果表明,改进后的模型针对PCB表面缺陷检测,能够以更高的检测精度和更快的收敛速度,完成PCB板工业检测系统部署[13-14]。

1 YOLOv5模型分析与改进

1.1 YOLOv5检测模型

YOLOv5作为当前单阶段目标检测算法中[15],表现较为高效、稳定的深度学习框架,可将模型分为输入端(Input)、主干网络(Backbone)、颈部网络(Neck)和输出端(Output):

1.1.1 Input

内嵌数据增强,通过将数据集进行拼接组合和调整色度、饱和度的方法,实现数据集的扩充,以增加检测数据的丰富性;采用自适应锚框计算,通过对比预测框和真实框的差距,自适应性反向更新,迭代网络参数;自适应图片缩放,为使图片达到检测所需尺寸,在黑边最少的情况下,选择性地对图片进行缩放。

1.1.2 Backbone

为更高效的使用现有GPU设备,首次提出Focus结构,采用切片操作,在不丢失语义信息的情况下,使输入通道扩充为原来的4倍,经过卷积操作后,得到2倍下采样图。

1.1.3 Neck

采用FPN+PAN结构,引入SPPF模块,通过将不同大小的最大池化层串行操作和卷积操作,将不同等级的特征层进行融合,得到语义信息更丰富的新特征图,通过PAN结构自底向上传达强语义信息,从而实现对不同检测层的参数聚合。

1.1.4 Output

GIOU_Loss在IOU_Loss的基础上增加了相交尺度的衡量方式,解决了边界框不重合的问题;采用加权NMS非极大值抑制的方式,使其效果更优。

1.2 EfficientnetV2主干特征提取网络

针对EfficientNetV1在网络浅层和深层使用深度卷积(depthwise convolution),却无法充分利用现有加速器等问题,拟采用EfficientNetV2作为主干特征提取网络,其主要由移动反向瓶颈卷积结构(MBConv)和融合移动反向瓶颈卷积结构(Fused MBConv)2个模块组成,其结构如图1所示。MBConv结构主要由1*1卷积层、深度可分离卷积(depthwise separable conv)、批量归一化(batch normalization,BN)、SiLU激活函数、SE注意力机制和残差边组成,使用深度可分离卷积可以较大程度上减少模型参数量,提升网络的训练速度。Fused MBConv则是将MBConv中的1*1卷积和3*3深度可分离卷积替换成3*3卷积层,使浅层网络可以更好的利用现有加速器,从而进一步提升模型的训练速度。

(a)MBConV结构 (b)Fused-MBConv结构

深度可分离卷积由深度卷积和逐点卷积(pointwise convolution)两部分组成,深度卷积在不改变输入特征图深度的情况下,对每一个通道进行卷积操作;逐点卷积则是利用1*1卷积对输入特征图进行升维或降维,卷积过程如图2所示。

图2 卷积过程图

若假设输入特征图的大小尺寸为DF*DF*M,卷积核尺寸为DK*DK*M,输出特征图大小尺寸为DF*DF*N,N表示为卷积核的个数,分别计算上述各类卷积的参数量:

图2中标准卷积的参数量如式(1)所示:

N_sc=(DK*DK*M)*N

(1)

图2中深度卷积通过与输入特征图的每一层特征独立的在二维平面上进行卷积操作,减少了模型在深度方向的计算量,但由于没有充分利用不同通道在空间上的特征信息,故需要逐点卷积(见图2右图)提取空间语义信息,深度卷积的参数量如式(2)所示:

N_DC=(DK*Dk*1)*M

(2)

逐点卷积通过1*1卷积来对输入的特征图进行空间上的加权组合,从而生成与卷积核数量相同的输出特征图,逐点卷积的参数量如式(3)所示:

N_PC=1*1*M*N

(3)

将式(2)、式(3)相加,就可以得到深度可分离卷积的参数量如式(4)所示:

N_DSC=DK2*M+N*M

(4)

因此深度可分离卷积与标准卷积的参数量之比k如式(5)所示:

(5)

由式(5)可以看出,卷积核尺寸越大、数量越多,则深度可分离卷积就相比于标准卷积使用更少的参数量,且在PCB板表面缺陷类型多而密的情况下,需要挖掘更深层次的语义信息,故深度可分离卷积在理论上可以为模型训练减少大量时间成本,并提升检测精度。

1.3 CA坐标注意力机制

为进一步提升PCB板对于细小缺陷的检测能力,采用CA坐标注意力机制替换EfficientNetV2中的SE注意力模块。CA坐标注意力机制通过将通道注意力分解为2个一维特征编码的方式,分别沿垂直和水平2个方向,独立地获取空间方向远程依赖关系以及保留精确的位置信息,最后将2个方向的注意力图整合到输入特征图,以提升EfficientNetV2特征提取网络的特征表达能力,如图3所示。

图3 CA坐标注意力机制

对于给定的输入X,采用范围为(H,1)和(1,W)分别沿水平坐标和垂直坐标对每个通道进行编码,H表示输入特征张量X的高度、W表示宽度,因此,第c个通道在高度h处的输出可以表示为:

(6)

式中:W为通道宽度特征向量;xc为第c个通道的输入值。

同理可以得出第c个通道在宽度w处的输出表达式,如式(7)所示。

(7)

式中H为通道高度特征向量。

与SE模块中的挤压操作不同,上述2种转换分别沿2个空间方向聚合特征,生成一对方向感知特征映射,也允许注意力模块捕捉沿着一个空间方向的长期依赖关系,并保留另一个空间方向上的精确位置信息,使网络能够更精确的定位感兴趣区域。

通过上述信息嵌入之后,将生成的聚合特征映射进行连接,然后通过1*1卷积变换函数F1对其进行变换,如(8)式所示。

f=δ(F1([zh,zw]))

(8)

式中:[zh,zw]为沿空间维度的连接操作;f为中间信息在水平和垂直方向上编码操作的特征表达;δ为非线性激活函数。

通过批量归一化和非线性操作后,将函数分解为2个方向的张量,即fh∈RC/r×H和fw∈RC/r×W。经过1×1卷积变换函数Fh和Fw分别将fh和fw变换为同一通道数量的张量,输入到X中,如式(9)所示。

(9)

δ为sigmoid激活函数,r为减少f通道数的控制模块缩减率,最后各方向的输入值xc重新加权构成CA模块的最终输出,如式(10)所示。

(10)

使用CA模块使其在水平和垂直方向同时施加注意力作用于输入张量,以确认两种特征表示中的每个元素都存在于感兴趣区域内。这种操作方式使CA模块能更精确地定位有效特征位置,从而实现对PCB板各类缺陷的精准识别。

1.4 损失函数的改进

当预测框被目标框包含时,3种情况所得到的损失值相同,如图4所示,使得GIoU退化为IoU,从而未能真实反映出最佳的预测框位置。

图4 LossGIoU检测图

针对上述问题,本文采用Lossα-CIOU对LossCIOU进行改进,Lossα-CIOU将LossIOU推广到幂IoU损失,以可变的功率参数作为旋钮,调整损耗,来满足不同水平的bbox回归精度,而无需向训练模型引入额外的计算参数。

当0<α<1时,α-IoU会降低对高IoU对象的训练权重,此时会损害模型回归精度;当α>1时,模型可获取高回归精度,但α对于不同数据集和模型的敏感度不同,经过多次训练表明,本模型在选取α=3时,损耗族可以很容易地应用于不同环境bbox设置下,改进性能效果最先进的检测器。Lossα-CIoU的定义如式(11)所示。

(11)

式中:c为同时包含预测框和真实框的最小矩形的对角线距离;b为一个大于0的权衡参数;v用来衡量检测框长宽比的一致性;r为预测框到真实框中心点的欧几里得距离。

v可用式(12)、式(13)表示:

(12)

(13)

2 数据集准备与实验配置

2.1 数据集准备

PCB板的表面缺陷类型主要有毛刺(spur)、缺口(mouse bite)、短路(short)、余铜(spurious copper)、漏焊(missing hole)、开路(open circuit)等[16],如图5所示。产生PCB板表面缺陷的主要问题是由于其多个生产过程,包括:开料、内层干膜、棕化、层压、钻孔、沉铜板镀、外层干膜、外层图形电镀、阻焊、丝印字符、表面处理等[17-18],其中内层干膜所包括的显影和蚀刻等需要使用到化学药品进行冲洗,加上工业机械压力和人工操作不当,极易产生各类缺陷。

图5 PCB板缺陷类型

本次实验部分数据集来自于MS COCO、ImageNet等公共数据集,针对已有PCB板各类缺陷图像收集数据不均和总体数据集较少等问题,采用预处理的方式对已有图像进行扩充,主要为:高斯模糊、锐化、随机翻转、随机裁剪等方式对数量较少的缺陷进行扩充。最终得到6 000张图片,将图片按照8∶2的比例划分为训练集和测试集。

2.2 实验配置

本次实验环境为Ubuntu16.04操作系统,使用pytorh1.7框架,CPU:NVIDIA GeForce RTX3060 Laptop,显存:6G,加速器为CUDA 11.3。

通过LableImage对PCB板数据集进行缺陷类型标记,生成包含:毛刺、缺口、短路、余铜、漏焊、开路6类缺陷类型以及缺陷标注框对应的宽、高和位置坐标。输入图像尺寸设定为640像素×640像素,batch size设为8,最大迭代次数为500,初始学习率为0.001,在第100次和第200次迭代后逐渐衰减,权重衰减系数为0.000 5。

3 实验结果与分析

模型的损失函数(Loss)表示的是模型对于实际数据预测的差距程度,损失值越趋于0表示模型的预测效果越好。将数据集训练完成后的损失值曲线,通过平滑处理后的曲线如下图6所示。

图6 损失值对比

实验结果表明,改进YOLOv5模型的损失值随着迭代次数的增加越来越趋近于0,并在迭代次数小于200时,相比于YOLOv5有更快的收敛速度,在迭代次数大于300之后损失值基本平稳,表明本算法模型的鲁棒性较好。

精确率P(precision)也称为查准率,表示所有成功检测到缺陷的情况下,正确检测到PCB板缺陷的概率;平均精度AP的平均值mAP用以衡量模型对PCB板缺陷检测的准确性;FPS用以衡量模型的检测速度。

图7展示了本文算法与YOLOv5的精度对比图,试验结果表明:本文算法由于迭代前期损失函数的复杂性,导致波形浮动较大,但随着迭代次数的不断增加,训练精度逐渐趋于平稳,并始终超越原始网络模型,证明改进后的模型对于PCB板缺陷特征的训练有显著提升。

图7 训练精度对比

为了更直观的突出本文算法相比于原始网络在整体性能方面的优势,选用网络层数、参数量、每秒浮点运算次数、训练时间作为评估标准,如表1、表2所示。

表1 模型整体对比

表2 PCB板表面缺陷检测AP对比 %

通过表1、表2数据可以看出,改进YOLOv5模型比原模型的网络层数增加了20%,但参数量约减少了47%,网络模型的推理速度和训练时间分别减少了6.6s/G和1.9 h;毛刺、缺口、短路、余铜、漏焊、开路的检测精度分别提高了3.3%、2.4%、4.8%、1.9%、0.9%、2%。

由表3可以看出,本文改进YOLOv5模型与Faster-RCNN、EfficientDet、SSD、YOLOv5深度学习模型相比,mAP分别提高了9.6%、5.3%、14%、2.6%;检测速度分别提升了37.3、28.3、9、5.3帧;改进后的YOLOv5模型在检测精度和检测速度上,较原模型有大幅度提升,检测结果如图8所示。

表3 模型检测性能对比

图8 检测结果

由图8检测结果可知,改进后的YOLOv5模型对于PCB板中细小目标依然有较高的检测精度,在线路与铜板的颜色相近的情况下,能有较高置信度来辨别毛刺、余铜这类不易检测到的缺陷。改进YOLOv5模型检测查准率达98%,平均检测速度约为17 ms,可完全满足在高速流水线上的实时检测。

4 结束语

提出了一种改进YOLOv5的PCB电路板表面缺陷检测的方法,针对PCB板表面缺陷类型多、检测数量多的情况,引入EfficientNetV2作为轻量化主干网络,减少了训练模型参数量,提升了检测速度;针对PCB板线路与铜板颜色相近,容易造成毛刺、余铜这类缺陷不易被检测到的问题,融入CA注意力机制,使模型对空间表征信息更加敏感,提高了模型的检测精度;针对检测框和真实框相交时,检测模型在水平和垂直方向收敛较慢的情况,引入α-IoU损失函数,提高模型回归精度,为模型提供更高的鲁棒性。

通过多项对比实验表明:改进后的模型可以精准高效的对PCB电路板表面的多种缺陷进行实时检测,可轻松布署在小型工业生产中,对印刷电路板工业生产的检测环节有十分重要的意义。由于本次数据集收集较少,对于各类缺陷的归纳不够完整,在后续工作不断优化算法。

猜你喜欢
注意力卷积精度
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器
一种基于卷积神经网络的性别识别方法