基于注意力机制与多尺度融合的PCB缺陷检测

2024-01-18 12:07陆维宽周志立阮秀凯聂赛赛
无线电工程 2024年1期
关键词:尺度注意力特征

陆维宽,周志立*,阮秀凯,聂赛赛

(1.温州大学 电气与电子工程学院,浙江 温州 325035;2.温州大学 智能锁具研究院,浙江 温州 325036)

0 引言

印制电路板(PCB)是电子产品的基础部件,其质量与电子产品能否正常运作以及使用寿命息息相关。PCB的制作工艺复杂,在生产中的各个环节都有可能损坏。因此,为提高PCB及后续产品的合格率,必须准确检测出PCB中存在的缺陷。传统基于机器视觉的PCB缺陷检测技术通过摄像头采集图像信息,然后利用图像处理算法对比测试图像与标准图像,进而根据人为设定的参数,确定缺陷目标的位置和类型[1]。由于检测过程中人为主观因素不可避免,导致了检测模型泛化能力弱、鲁棒性差和检测精度低等问题。

与传统检测方法相比,基于深度学习的目标检测方法通过使用大量的数据进行训练,可自动学习目标特征,避免了人工干预,有效提高了目标检测的准确性和有效性[2]。截至目前,基于深度学习的目标检测方法主要分为两大类:一类是以R-CNN系列[3]为代表的Two-stage目标检测算法。该类算法利用区域建议网络(Region Proposal Network,RPN)生成建议框,再在建议框的基础上对目标进行边框回归和分类操作。如Ding等[4]提出了一种基于Faster R-CNN的微小缺陷检测网络,实现了较高的PCB缺陷检测精度。该方法弥补了深层卷积网络在检测微小缺陷方面的不足,实验在开放的PCB缺陷数据库上获得良好的检测效果。但是,该模型的整体网络较深,普通实验平台硬件要求无法满足。Hu等[5]针对Faster R-CNN检测模型进行改进,在骨干网络中添加特征金字塔网络(Feature Pyramid Network,FPN),同时对区域生成网络添加ShuffleNetV2 残差模块,由此生成更精确的锚点,实现了端到端检测。另一类是One-stage目标检测算法,经典算法有YOLO系列[6-8]和SSD[9]。该类算法直接在输入图像上选择目标,然后进行目标的边框回归和分类。Lan等[10]在YOLOv3模型中引入了广义交并比损失函数,提高了模型对PCB缺陷目标的检测效果。何国忠等[11]采用YOLOv4为基础框架,在特征提取网络中加入长距离全局注意力机制,得到了更丰富的特征信息,提高了模型对PCB缺陷目标的检测精度。

然而,当缺陷目标受背景干扰过多或尺度较小时,上述方法不能有效提取缺陷目标的特征,难以准确检测出缺陷目标。因此,为解决上述问题,本文提出了一种基于注意力机制与多尺度融合的PCB缺陷检测方法,主要贡献有:① 针对PCB缺陷特征的非显著性造成现有方法检测精度较低的问题,提出了一种三维注意力(3D-Attention)模块。该模块将缺陷目标通道维度上的类别信息与2个空间方向的位置信息相结合,能够有效提取缺陷目标特征,从而增强了缺陷目标特征的显著度;② 针对PCB缺陷尺度较小导致目标特征信息易丢失的问题,引入了一种加权双向特征金字塔网络(Bi-directional Feature Pyramid Network,BiFPN)[12]模块。该模块不仅通过特征层间的跨尺度连接融合了缺陷目标的浅层形态信息与深层语义信息,而且可自动学习不同特征层对多尺度融合的权重系数,充分利用了微小缺陷目标的多尺度特征,从而减少了缺陷目标特征信息的丢失。

1 PCB缺陷检测方法

作为目前主流的一阶段检测模型之一,YOLOv5具有训练速度快、检测精度高和模型权重小等诸多优点[13-14]。因此,本文选用YOLOv5作为基础模型,并从PCB缺陷目标的非显著性和小尺度特性两方面进行改进。

本方法的网络整体结构如图1所示。

图1 网络整体结构Fig.1 Overall architecture of the network

主要包括三部分:特征提取网络(Backbone)、特征融合网络(Neck)和检测网络(Head)。首先,为增强缺陷目标特征的显著度,通过在特征提取网络中添加3D-Attention模块,得到更关注缺陷特征的目标特征层。其次,在特征融合网络中,通过BiFPN模块生成双向特征金字塔,同时自动学习不同特征层对多尺度融合的权重,充分利用了微小缺陷目标的多尺度特征信息,增强了网络识别能力。最后,在检测网络中,对3组输出特征层进行检测,并在输出特征层上应用先验框,生成包含所属类别的概率得分、置信度得分和边界框回归坐标的输出向量,使用非极大抑制对输出向量进行筛选,得到最后的检测结果。

1.1 三维注意力模块

为了解决PCB缺陷区域受背景影响过多导致缺陷目标显著度低的问题,本文提出了一种如图2所示的3D-Attention模块。

图2 三维注意力模块Fig.2 3D-Attention module

3D-Attention模块扫描输入的全局图像,通过汇聚通道域和空间域的特征信息,得到需要重点关注的PCB缺陷目标区域,并对该部分投入更大的权重,抑制背景的干扰,从而提高缺陷目标信息处理的效率和准确性,其结构由通道注意力和空间注意力组成。

① 通道注意力模块。首先,为充分提取目标的通道维度特征,利用平均池化和最大池化对输入特征层通道维度的特征信息进行全局低维嵌入,即将每个通道上的空间信息压缩到对应通道中,得到 2个拥有全局感受野的通道信息特征向量。其次,分别将得到的特征向量经过多层感知器(Multilayer Perceptron,MLP),以充分捕捉通道间的依赖关系。接着,将MLP输出的2个特征向量相加,并经过Sigmoid激活函数对权值归一化处理,得到一个能够衡量通道重要性的权重矩阵,即通道注意力向量。最后,将通道注意力向量与输入特征层相乘,作为下一部分的输入特征。通道注意力向量计算如下:

Mc=σ(MLP(AvgPool(x))+MLP(MaxPool(x))),

(1)

式中:x为输入特征,Mc为通道注意力向量,AvgPool为平均池化,MaxPool为最大池化,σ为Sigmoid激活函数。

② 空间注意力模块。首先,为保留目标更精确的位置信息,分别沿水平和垂直2个方向使用平均池化聚合特征层的空间信息,即分别将空间域水平方向上的通道、垂直方向信息和空间域垂直方向上的通道、水平方向信息压缩到对应方向中,得到2个特征向量。其次,为捕获空间信息的长距离依赖关系,将水平和垂直方向的特征向量拼接,并经1×1卷积变换和非线性激活函数,获得空间信息交互后的特征向量。然后将交互后的特征向量分别沿水平和垂直方向分割,并使用1×1卷积变换和Sigmoid激活函数对特征向量进行降维和归一化处理,得到2个衡量缺陷目标空间位置信息重要性的权重矩阵,即水平和垂直方向的空间注意力向量。最后,将水平和垂直方向的空间注意力向量同时与输入特征层相乘,得到最后结果,即完成对输入特征层中缺陷目标区域的重校准。水平和垂直方向的空间注意力向量计算方式如下:

f=δ(Conv([AvgPool(c,h)(x),AvgPool(c,w)(x)])),

(2)

Mw=σ(Conv(fw)),

(3)

Mh=σ(Conv(fh)),

(4)

式中:x为输入特征,AvgPool(c,h)和AvgPool(c,w)分别为通道、垂直方向与通道、水平方向上的平均池化,[]为向量拼接操作,Conv为1×1卷积变换,δ为非线性激活函数,f为空间信息交互后的特征向量,将f分别沿水平和垂直方向分割为fw和fh;Mw为水平方向的空间注意力向量,Mh为垂直方向的空间注意力向量。

由以上分析可知,3D-Attention模块不仅从通道维度汇集目标的类别信息,而且沿2个空间方向保留目标更精确的位置信息,可增强缺陷目标的特征表达能力,提高网络模型的检测精度。

1.2 BiFPN

YOLOv5中的特征融合网络如图3(a)所示,结合了FPN[15]与路径聚合网络(Path Aggregation Network,PAN)[16]。该网络在进行多尺度特征融合时,只是将不同分辨率的特征层调整为相同分辨率并简单相加,无法充分利用不同特征层的作用。为充分利用缺陷目标的多尺度特征,引入了一种如图3(b)所示的BiFPN模块,其融合过程分为3步:

(a)FPN+PAN

(b)BiFPN

① 简化网络结构:若一个特征层仅一条输入特征边,那么该特征层对融合不同特征的作用就会大大减少。因此,可通过剔除只有一条输入特征边的特征层来简化网络结构。

② 跨尺度连接:为融合更多的特征信息,对于在同一层的输入特征层和输出特征层增加一条额外的输入特征边。

③ 添加权重:为让网络能够学习每个输入特征层的重要性,在每个输入特征边上添加一个权重。为避免操作的复杂性,BiFPN使用快速归一化融合来添加权重:

(5)

式中:Ii表示输入特征层,wi表示输入特征层的权重系数,ε是一个小数值,本文取0.000 1。

(6)

综上,BiFPN模块不仅通过特征层间的跨尺度连接,丰富了特征层的语义信息和形态信息,而且能够自动学习不同分辨率的特征层对多尺度融合的权重系数,可提高模型对小尺度缺陷目标的检测性能。

2 实验与分析

本文基于Ubuntu 20.04系统搭建实验平台,具体配置参数如表1所示。在训练过程中,使用SGD作为优化器,学习率的初始值设定为0.01,并使用One-Cycle策略改变学习率,训练次数epoch为300,批次大小batch_size为16,输入图片大小为 640 pixel×640 pixel。

表1 实验平台配置参数Tab.1 Configuration parameters of experimental platform

2.1 实验数据集与评价指标

实验选用北京大学智能机器人开放实验室提供的PCB缺陷数据集[17]对所提出的模型进行验证。该数据集共有693张PCB缺陷图像,包含6类PCB缺陷,分别是缺孔(missing hole)、鼠咬(mouse bite)、开路(open circuit)、短路(short)、毛刺(spur)和杂铜(spurious copper)。为确保样本充足,利用随机翻转、放缩和亮度调整等操作扩充数据集。扩充后的数据集共包含4 158张图像和17 718处缺陷,并按照8∶1∶1的比例划分训练集、验证集和测试集。

为客观评价网络模型的性能,选取精确度(Precision,P)、召回率(Recall,R)、 平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)作为评价指标。其中,精确度表示模型预测的所有目标中预测正确的比例;召回率表示模型预测的正确目标占所有正确目标的比例;AP表示召回率在0~1的精确度平均值;mAP表示所有类别AP的平均值。以上评价指标计算如下:

(7)

(8)

(9)

(10)

式中:TP表示正样本被判断为正样本的数量,FP表示负样本被判断为正样本的数量,FN表示正样本被判断为负样本的数量,P表示精确度,R表示召回率,n表示类别数量。

2.2 注意力模块对比实验

为充分验证3D-Attention模块对YOLOv5目标检测算法的有效性,将3D-Attention模块嵌入特征提取网络进行实验,并将其与GAM[18]、CBAM[19]、CA[20]注意力模块进行实验对比,采用P、R、mAP@0.5、mAP@0.5:0.95和推理时间作为评价指标,其中mAP@0.5表示阈值为0.5时的平均检测精度,mAP@0.5:0.95表示阈值0.5~0.95,步长 0.05的平均检测精度。实验结果如表2所示。

表2 不同注意力模块性能对比Tab.2 Performance comparison of different attention modules

从表2可以看出,使用GAM、CA、CBAM、3D- Attention模块的模型较原方法检测精度分别提高了0.3%、0.3%、1.4%、1.2%。由于注意力模块的插入,少量增加了模型参数,导致模型的推理速度变慢。由于CBAM的运算流程与3D-Attention相似,且其结构更为复杂,造成了CBAM的P、R和mAP@0.5略高于3D-Attention。但3D-Attention的mAP@0.5:0.95和推理时间均优于CBAM。相较于mAP@0.5,mAP@0.5:0.95的结果更为均衡,表明3D-Attention模块的性能更优。综上,本文所提的3D-Attention模块可有效增强缺陷目标的特征表达能力,提高网络模型的检测精度。

2.3 多尺度融合对比实验

为验证多尺度融合对YOLOv5的有效性,在PCB缺陷数据集上分别对原方法和改进方法进行实验对比,采用参数量、P、R、mAP@0.5、mAP@ 0.5:0.95和推理时间作为评价指标。实验结果如表3所示。

表3 多尺度融合对比实验Tab.3 Multi-scale fusion contrast experiment

由表3可以看出,虽然BiFPN模块增加了额外的输入特征边,造成参数量增加1.06 M、推理时间增加了0.3 ms,但P提高了0.8%、R提高了0.7%、mAP@0.5提高了1.2%,mAP@0.5:0.95提高了4.3%。该实验结果充分证明了BiFPN对多尺度特征融合的有效性,在少量增加网络参数和降低推理速度的情况下,融合了多个特征层的语义信息和形态信息,提高了模型对小尺度缺陷目标的检测性能。

2.4 消融实验

为验证本文提出的改进模块的有效性,在YOLOv5的基础上对各个模块进行消融实验。首先,在特征提取网络中加入3D-Attention模块;其次,采用BiFPN作为特征融合网络;最后,将二者结合生成最终的改进模型,并与原方法进行实验对比,采用P、R、mAP@0.5作为评价指标。对比实验结果如表4所示。

表4 不同模块对模型性能的影响Tab.4 Impact of different modules on model performance

由表4可以看出,添加3D-Attention模块后,P提高了0.5%,R提高了1.6%,mAP@0.5提高了 1.2%,证明了3D-Attention模块对增强缺陷特征表达的有效性;添加BiFPN模块后,P提高了0.8%,R提高了0.7%,mAP@0.5提高了1.2%,证明了BiFPN模块对多尺度特征融合的有效性;将2个模块同时加入基础模型中,mAP@0.5提高了3.9%。以上结果表明,本文所提出的改进策略可以有效增强缺陷特征的显著度,提高模型对微小缺陷目标的检测性能。

2.5 主流算法对比实验

为充分验证本文所提方法的优越性,将本文方法与Faster R-CNN、Cascade R-CNN[21]、SSD、YOLOv3、改进YOLOv3[22]、YOLOv4、YOLOX[23]和YOLOv5在相同实验环境下进行实验对比,实验结果如表5所示。

表5 不同方法的性能对比Tab.5 Performance comparison of different methods

从表5可以看出,本文方法对于鼠咬、开路、短路、毛刺和杂铜这几类缺陷的检测精度均高于其他几种方法。只有在缺孔上的检测精度,本文方法没有达到最高,相比于YOLOX方法低了0.1%。本文方法在PCB缺陷数据集上的mAP@0.5达到了 98.2%,相比于Faster R-CNN、Cascade R-CNN、SSD、YOLOv3、改进YOLOv3、YOLOv4、YOLOX和YOLOv5分别提高了15.7%、17.9%、12.9%、 19.8%、10.6%、5.5%、5.3%和3.9%。综上,本文方法相比于其他主流目标检测算法,具有较高的检测精度和较低的推理时间,证明了本文方法的优越性。

2.6 可视化分析

为进一步验证模型的性能,将YOLOv5方法与本文方法的检测效果可视化,如图4所示。

从图4(a)可以明显看出,YOLOv5方法受背景干扰较大,将部分正常区域识别为缺陷,同时漏掉了较小尺度的缺陷目标。这是由于YOLOv5方法的特征提取网络只是对PCB图像进行局部区域运算,忽略了全局信息对当前区域的贡献,导致模型不能准确提取缺陷目标特征。同时,特征融合网络只是将不同特征层进行尺度变换后相结合,不能充分融合多尺度特征层中缺陷目标信息,从而易出现缺陷目标特征信息丢失。

从图4(b)可以看出,本文方法能够正确识别出PCB缺陷目标,且识别精度很高,未出现漏检和误检的情况。这是由于本文方法针对PCB缺陷特点,提出了2个优化策略:① 在特征提取网络中,添加了3D-Attention模块,充分考虑了PCB图像的全局信息,提升了网络对于缺陷特征的提取能力,抑制了背景区域中无关信息的干扰;② 在特征融合网络中,引入了一种特征融合能力更强的BiFPN模块,加强了小尺度缺陷目标的特征表达,从而进一步提高模型对PCB缺陷的检测能力。

3 结束语

为解决PCB缺陷检测精度较低的问题,提出了一种基于注意力机制与多尺度融合的PCB缺陷检测方法。该方法通过在特征提取网络中添加3D- Attention模块,增强了缺陷特征的显著度,从而提高了缺陷目标的检测效果;通过在特征融合网络中引入BiFPN模块,减少了微小缺陷目标特征信息的丢失,提高了模型对小尺度缺陷的识别能力。实验结果表明,该方法能够快速、准确地识别PCB缺陷目标,在PCB缺陷数据集上的检测精度和推理时间分别为98.2%和2.5 ms,相比于其他方法有明显提高。在未来的工作中,将制作更多的PCB缺陷样本以扩充数据集,同时研究更有效的网络模型,进一步提高PCB缺陷检测的准确性。

猜你喜欢
尺度注意力特征
让注意力“飞”回来
财产的五大尺度和五重应对
如何表达“特征”
不忠诚的四个特征
抓住特征巧观察
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
宇宙的尺度
9
线性代数的应用特征