基于改进YOLOv5的PCB缺陷检测方法
2024-01-02王宇航张凯兵
王宇航,张凯兵
(1.西安工程大学 电子信息学院,陕西 西安 710048;2.西安工程大学 计算机科学学院,陕西 西安 710048)
随着科技发展以及算力的不断升级,深度学习发展迅速,目标检测算法及应用也在不断成熟,使得工业制造与生产的水平持续提升。新兴的技术离不开底层硬件的基础,由于PCB在生产过程中,环境难以控制,且对生产的条件要求较为苛刻。生产出的PCB会存在缺孔、鼠咬、开路、短路、直刺和杂铜等缺陷。导致生产产品质量不合格,使得某些使用该产品的电子设备出现瘫痪等问题。
传统的人工检测[1]难以长时间、高效率地应对PCB的细小缺陷检测任务,为提高生产效率,控制缺陷检测成本,如何利用高效且高精度的目标检测算法检测PCB中的缺陷已经成为研究的热门。使用计算机视觉技术,如边缘检测、轮廓检测和图像分割来进行检测,对于缺陷检测的发展十分重要[2-3]。易欢等[4]利用基于HALCON软件采用一系列的图像处理方式对PCB进行缺陷检测。温悦欣等[5]通过拉普拉斯锐化来对PCB缺陷的特征进行加强,并通过SURF算法实现PCB缺陷检测。经过深度学习的发展,逐渐将深度学习与缺陷检测进行结合应用。采用卷积神经网络[6]提取特征,从而对缺陷进行检测等。具有代表性网的网络有RNN[7]、FasterR-CNN[8]、YOLOv1[9]、YOLOv3[10]、YOLOv5[11]、YOLOv7[12]等深度学习网络。苏佳等[13]利用YOLOv4的网络框架,在其中加入注意力机制并对PANet结构进行改进,从而提高对特征的提取能力,来解决PCB缺陷检测问题。王淑青等[14]利用基于YOLOv5的模型框架,采用EfficientNetV2结构来替换原始的主干网络,针对小目标引入CA注意力机制来解决PCB缺陷检测问题。
与此同时,研究表明注意力机制可使算法能够集中关注输入中的相关信息,以便更好地处理和理解数据,有效提升检测准确性[15]。目前较为常见的注意力机制有挤压-激励注意力模块(squeeze-and-excitation,SE)[16]通过引入squeeze操作即全局平均池化层,将每个通道的特征图压缩为一个单一的数值。然后经过excitation操作即全连接网络,生成通道注意力权重。这些权重被应用于原始特征图,以增强重要的特征并抑制不重要的特征,从而提升网络性能。瓶颈式注意力模块(bottleneck attention module,BAM)[17]是一种结合了通道注意力和空间注意力的注意力模块。通道注意力部分,首先使用全局平均池化来将特征图的每个通道压缩成一个单一的数值。然后通过一层全连接网络,生成通道注意力权重并应用于原始特征图的每个通道上,以增强重要的通道信息并抑制不重要的通道。空间注意力应用一个特殊的卷积操作来捕捉特征图中不同空间位置的相关性。通道注意力和空间注意力的联合作用可以提升网络的性能和表达能力。卷积块注意力模块(convolutional block attention module,CBAM)[18]由通道注意力和空间注意力组成,通道注意力部分通过全局平均池化将特征图的每个通道进行压缩,得到通道级别的表示,通过两个全连接网络分支,生成通道注意力权重。空间注意力部分旨在捕捉特征图中不同空间位置的相关性和重要性。它通过使用一维最大池化和一维平均池化操作,分别在水平和垂直方向上对特征图进行压缩。然后通过两个全连接网络分支,生成空间注意力权重。联合通道注意力和空间注意力,CBAM模块可以自适应地调整不同通道和空间位置的重要性,从而增强网络对关键特征的表示能力,有效提升网络在各种计算机视觉任务中的性能。
由于单一的YOLOv5网络检测速度虽然可观,但在检测时由于各种条件原因,检测环境往往会出现一些干扰,使得检测精度往往难以达到工业化标准。本文基于YOLOv5的BiFormer网络结构,提出了一种使用融合图像多尺度特征的注意机制模块MBiFormer,通过自适应的调整对于被检测目标中更为关键的特征信息,有效增强网络对于关键特征的表示能力,提高了PCB中微小缺陷检测的准确性。通过实验对比分析,改进算法有效提升对于PCB检测的精度,满足工业化对PCB缺陷检测的精度要求。
1 YOLOv5
1.1 YOLOv5总体结构
作为One-Stage检测方法中代表性算法之一,YOLOv5具有相比于其他Single Shot MultiBox Detector(SSD)[19]、ResNet[20]等二阶段方法有着更快的速度,更好的通用性、拓展性,这些特性使得YOLO系列算法的发展潜力十分巨大。YOLOv5的网络结构主要由四个部分即输入模块、Backbone主干网络模块、Neck网络模块以及Head模块组成。Backbone模块采用轻量级卷积神经网络结构CSPDarknet53,模块包含一系列的卷积层和残差块,而每个残差块由一层卷积层、多个残差连接和一个跨层连接组成,有效的输入图像转换为一系列特征图,用于后续的目标检测任务;Neck采用了FPN结构,有助于从不同层的特征金字塔中提取信息,且一系列上采样与融合操作可以生成多尺度的特征,模块对不同层级的特征进行融合,可以帮助模型在不同大小的目标上实现更好的检测性能;Head模块则由多个卷积层与全连接层构成,通过置信度边界框与候选边界框重叠面积大小进行最后的筛选完成检测步骤,Head模块的多尺度预测策略,可以在不同尺度的特征图上进行目标检测,提高检测的精度。 通过上述结构与模块的设计,使得YOLOv5可以实现高效目标检测,有效完成缺陷检测任务等。在较快速度的同时保持较高准确性,并且,可满足各种应用如智能监控、自动驾驶等,实验结果表明改进后的YOLOv5可以以较高准确度完成PCB的缺陷检测任务。
2 方法的提出
2.1 改进YOLOv5总体结构
为了使模型以高精度的方式完成PCB的缺陷检测任务,本文对YOLOv5模型框架进行了改进。YOLOv5框架模型Backbone骨干网络仍采用CSPDarknet53结构来对图像进行初始特征提取,得到三个有效特征层,与特征提取网络进行特征融合。同时在获得三层有效特征层后,分别将经过多尺度改进后的MBiFormer模块融入到特征提取之后,有助于解决由于PCB缺陷较小,且难以检测的特征提取的问题。之后在FPN结构中,通过对不同尺寸的特征层进行融合并进行连续卷积从而有效提取特征信息。通过上述处理可以有效地提取PCB中较为微小的缺陷,从而针对性的增强PCB微小缺陷的检测精度。将FPN得到的特征层传入到PANet结构并自底向上进行融合操作,有效的传输强定位信息,通过对强语义信息和强定位信息的相互作用从而有效提高模型对PCB微小缺陷提取的鲁棒性,改进后的YOLOv5结构图如图1所示。
图1 改进YOLOv5总体结构
2.2 双层路由注意力机制
注意力机制(attention mechanism,AM)作为计算模型中的重要组成,首次在Transform[21]中提出。注意力机制模拟量注意力分配,允许网络专注于它需要关注的地方,以一种即插即用结构的方式,在提高模型性能和解决序列到序列任务方面取得了显著成功。通过引入查询向量和注意力权重的方式使得模型根据输入的信息动态的选择性关注输入的不同特征,从而有效的提升对于PCB缺陷中的检测精度,提高了模型性能。Fu等[22]提出了一种双重注意力网络DANet,可以自适应地将局部特征与全局依赖性相结合,在传统的扩张型全卷积网络之上附加了两种类型的注意力模块,分别在空间维度和通道维度上建模语义间的依赖关系。与上述双重注意力网络思想十分相似,Zhu等[23]提出了BiFormer注意力机制如图2所示,一种新的通用视觉Transformer。以一种自适应的方式关注于查询中一小部分相关的标记,且不被其他不相关的标记干扰,BiFormer具有良好的性能与高计算效率,适用于一些预测任务。
图2 BiFormer注意力机制结构
双层路由注意力机制(bi-level routing attention,BRA)是一种动态的、查询感知的稀疏注意力机制。其核心思想是在粗粒度的区域级别上筛选出大部分不相关的键值对,只保留小部分经过路由的区域,并在这些路由区域的并集上应用细粒度的token to token注意力。
BiFormer采用了四阶段金字塔结构。在每个阶段中,通过重叠的路径嵌入和路径合并模块来处理输入特征,从而降低空间分辨率并增加通道数量。然后通过使用连续的BiFormer块对特征进行转换。每个BiFormer块中,我们首先使用3×3的深度可分离卷积对相对位置信息进行编码,然后依次应用BRA模块和2层MLP模块来建模跨位置关系和生成每个位置的嵌入。
基于上述BiFormer模块,本文通过融合输入图像的多尺度特征,提出了一个有效提升目标提取能力的注意力模块MBiFormer,有助于有效提高YOLOv5对于小目标缺陷的特征提取能力,从而提高PCB缺陷检测的准确性。
2.3 改进多尺度输入的MBiFormer
使用多尺度方法对于PCB缺陷检测有着十分关键的作用,PCB上可能存在不同大小的缺陷,有些缺陷可能较小且细微,而有些可能较大。使用多尺度的提取方法可以捕获不同尺寸的特征,帮助检测不同级别的缺陷,特别是对过小尺寸或过大尺寸的缺陷。同时,多尺度方法能够在不同尺度上进行特征提取和分析,有助于提高缺陷检测的准确性和鲁棒性,增强缺陷的检测和定位能力,使得模型在不同PCB样本上都能有较好的表现。
不同尺度的信息包含不同层次的语义信息和空间细节,通过对注意力模块进行多尺度信息融合,提高模型对于图像不同尺度的感知能力,使得在PCB缺陷检测中充分考虑不同尺寸的特征信息,提高检测全面性和准确性。
Q=XrWq
(1)
K=XrWk
(2)
V=XrWv
(3)
式中:Wq,Wk,Wv为查询、键、值的投影权重。
区域间路由和有向图:通过构建一个有向图,确定每个区域的关注区域。通过对Q和K分别进行区域级平均,得到区域级查询和键Qr,Kr形状为(S2×C)。然后通过Qr与转置Kr的矩阵相乘得到区域间关联图的邻接矩阵Ar(形状为S2×S2)。Ar中的元素表示两个区域之间的语义相关性。接下来的关键步骤是通过保留每个区域的前k个连接来处理关联图。具体而言,通过对Ar进行逐行的top-k操作,得到路由索引矩阵Ir(形状为S2×K),由此可得Ir的第i行包含第i个区域最相关的k个区域的索引,如式(4)和(5)所示:
Ar=Qr(Kr)T
(4)
Ir=topkIndex(Ar)
(5)
式中:Ar为区域间关联图的邻接矩阵,Ir为路由索引矩阵,topkIndex为以通过返回每行最大值的索引,从而形成一个索引矩阵用于获取矩阵中每行的前k个最大值为目的的算子。
Kg=gather(K,Ir),Vg=gather(V,Ir)
(6)
O=Attention(Q,Kg,Vg)+LCE(V)
(7)
本文通过对BiFormer进行改进,提出了一种将图像多尺度特征进行输入提取并将之在模块中融合的注意力机制模块MBiFormer,具体模块结构如图3所示。
图3 图(a)为MBiFormer Block模块结构.图(b)为单个MBiFormer Block图
MBiFormer模型采用四阶金字塔结构进行构建,本文以MBlock作为基本模块。首先,将图像分成小块,将每个小块转换为嵌入向量。通过重叠的方式进行这个过程,从而降低输入的空间分辨率,并且增加通道数。然后,在二到四阶段通过Patch Merging模块,将块进行合并,从而进一步降低空间分辨率,增加通道数,进一步使用Ni个连续的MBiFormer模块,用来进行特征的变换。
在上述四个阶段中使用连续的Block来转换特征,每个Block组成如下:输入经过不同卷积的不同尺度图像特征,用来获得包含不同层次语义信息与空间细节的特征。之后,我们使用一个3×3的深度可分离卷积来隐式编码相对位置信息。经过加和融合不同尺度信息的特征并对编码后的特征图Xp。通过应用上述介绍的BRA模块来进行跨位置关系建模。 接收输入融合图像不同尺度特征的特征图Xp,并且输出经过位置关系建模后的特征图。接着应用双层MLP模块,对每个位置进行嵌入。通过对注意力机制模块MBiFormer在特征提取层的应用,使得模型在提取PCB缺陷的不同深度特征时更加全面,有效提升检测准确度。
3 实验部分
3.1 数据集及模型训练细节
本文以PCB板缺陷检测为研究对象,所使用的PCB缺陷数据集包含6种缺陷分别为:缺孔、鼠咬、开路、短路、杂铜和伪铜。缺孔(Missing hole):制造过程中的错误或设计问题导致电路板上应该有孔洞但却缺失的情况;鼠咬(Mouse bite):加工过程中的机械应力或切割工具导致的电路板上通过孔或焊盘的边缘出现的圆形或半圆形咬痕或裂纹;开路(Open circuit):连接点松动、线路损坏或焊接问题等原因造成的导电路径被中断,电流无法流过的情况;短路(Short):电路中两个本不应该连接的节点之间发生意外的连接,导致电流绕过了预期的路径;杂铜(Spur):材料或加工问题引起的电路板上出现的不应该存在的突起物或凸起;伪铜(Spurious copper):制造过程中的错误、化学反应或污染导致的电路板上不应存在的铜质杂质或未经预期的铜导电层;数据集共693张图片,部分数据集缺陷如图4所示,对数据集按照训练集加验证集和测试集按7:3的比例随机划分。
图4 部分数据集
模型训练过程的初始学习率为0.0025,BatchSize为16。经过100次迭代后,学习率调整为0.0001,整个训练过程的总迭代次数为300次。
3.2 评价指标
为直观评估模型性能的指标,本文选用准确率P和召回率R以及平均精度均值作为评价依据,准确率P和召回率R,平均精度AP以及平均精度均值mAP的计算表达式如下:
(8)
(9)
(10)
(11)
3.3 实验结果与分析
为了更定性、直观地验证本文优化算法对高密度小目标PCB缺陷的有效性,将优化后的算法与YOLOv5s、YOLOv4、以及YOLOv3算法进行比较,得到5种网络模型各性能指标对比,如表1所示。
表1 5种网络模型的性能指标对比
改进后算法模型的缺陷混淆矩阵结果如图5所示,其中各个类别的缺陷检测效果都较为可观。其中焊孔缺失、老鼠咬痕、短路、断路、散杂铜等缺陷预测准确值均达到0.91之上,由于缺陷突起与背景中的一些缺陷十分相似,但也达到0.83的准确率。
图5 各缺陷混淆矩阵
我们将各种方法识别结果进行对比,可以发现:在识别结果中,我们的方法有较好的表现,置信度高的同时识别错误较少。部分结果比较如图6所示,其中红色框为结果中出现错误检测结果,黄色框为结果中没有检测出即漏检。
图6 各方法识别结果对比图
由上述结果可知,对PCB缺陷检测,在输入图像尺寸不变的情况下,本文的优化算法提高了模型的平均精度,算法中mAP0.5值为95.8%,分别比YOLOv5s、YOLOv4与YOLOv3高1.3%、2.6%和10.4%;mAP0.5:0.95值为50.2%,分别比YOLOv5s、YOLOv4与YOLOv3高1.4%、8.4%和34.6%,且本文的优化算法对6种PCB板缺陷进行检测,单一类别缺陷检测精度十分可观,可以得出改进YOLOv5模型算法对PCB板缺陷的检测方法有客观的实用价值。本文通过在YOLOv5的网络基础上增加了M-BiFormer模块,有效提升了YOLOv5对PCB检测的精度。在实际的工业生产过程中,可以有效满足PCB板缺陷检测的高精度需求。
4 结束语
本文通过对YOLOv5模型进行改进,在网络结构中增加了MBiFormer模块,并将其应用于多尺度特征的提取过程。通过高效捕获不同大小的缺陷,并充分考虑不同尺度的特征信息,提高了检测的准确性。实验结果表明,优化后的算法在PCB缺陷检测中表现出较高的准确率和召回率,其平均精度相较于YOLOv5s、YOLOv4和YOLOv3都有着明显提高。表明本文的优化算法在PCB缺陷检测中取得了显著的性能改进。本文提出的优化算法可以有效改善工业生产过程,满足PCB缺陷检测的高精度需求。通过增加MBiFormer模块并融合多尺度特征,该算法在PCB缺陷检测中取得了较好的表现,为工业化标准的实现提供了有力的支持。