基于改进PP-YOLOv2的IC引脚焊接缺陷检测算法研究

2023-11-03 11:34王学影胡晓峰
计量学报 2023年10期
关键词:损失卷积精度

李 娜, 王学影, 胡晓峰, 郭 斌, 罗 哉

(中国计量大学 计量测试工程学院,浙江 杭州 310018)

1 引 言

在人工智能、机器人、半导体、航空航天等高新技术飞速发展的环境下,印刷电路板(printed circuit boards, PCB)制造作为高新技术的基础产业,在各个高新技术产业的发展中发挥重要的作用。在PCB上焊接集成电路(integrated circuit, IC)、电容、电阻等元器件之后,才能组装为电子设备[1]。PCB板上元器件的焊接质量将直接影响产品的性能指标,尤其贴片IC引脚多、间距小,使得贴片IC的焊接缺陷检测的难度要高于其他元器件。

传统的PCB缺陷检测方法有人工目检、在线测试和功能测试[2],其中人工目检容易受到工作人员情绪、经验等主观因素的影响,导致缺陷检测的准确率和效率较低;在线测试的主要方式为飞针测试,属于接触式测量,在一定程度上,会对电路板造成二次损坏;功能测试基于自动化测试原理,采用各种测试设备对特定板或特定单元进行测试,具有测试速度慢、不支持参数测量的缺点。

机器视觉是一种无接触、无损伤的自动检测技术[3],近年来得到了迅速发展,基于机器视觉的PCB缺陷检测备受关注。Malge P S等[4]提出了一种基于形态图像分割算法的PCB缺陷检测与分类系统,能够检测短路、开路等多个缺陷;Kumar M等[5]提出了彩色平面提取、LUT变换等图像增强方法和标准数据生成算法完成对PCB的缺陷检测;Gaidhane V H等[6]提出了一种相似性度量方法,对PCB缺陷进行检测。基于传统图像处理和机器视觉的方法,需要进行特征提取、模板匹配等操作,对于不同的PCB板,需要重新建模,耗时且繁琐。近年来,随着深度学习模型在人脸识别、缺陷检测、目标跟踪等领域成功应用[7~9],基于深度学习的PCB缺陷检测也得到了快速发展。Ding R等[10]基于Faster R-CNN提出了一种微小的缺陷检测网络,提高了PCB缺陷检测的性能。殷政[11]建立深度卷积网络,对不同型号的IC引脚焊接缺陷进行检测。李澄非等[12]基于YOLOv4提出了一种PCB缺陷检测方法,达到了较高的检测精度。由于IC引脚小而密集,对其缺陷检测具有很高的难度,针对这些存在的问题,本文提出改进的PP-YOLOv2算法,完成对IC引脚焊接缺陷的检测。

2 检测流程

提出改进的PP-YOLOv2算法对IC引脚焊接缺陷进行检测,检测流程图如图1所示。

图1 检测流程图Fig.1 Flow chart of detection

对采集到的IC引脚焊接缺陷图像进行标注,制作成Pascal VOC格式的数据集,划分训练集、验证集、测试集的比例为6:2:2,将训练集、验证集输入改进的PP-YOLOv2网络中进行迭代,优化网络参数,加速网络收敛,模型训练完毕之后,使用测试集检验网络对新的缺陷图像检测的能力。工业上要求缺陷检测的平均准确率大于95%,如果模型的性能达到要求,则将模型应用到在线检测系统中,否则,优化网络,继续训练。

3 网络模型算法

基于深度学习的目标检测算法分为:两阶段检测算法和单阶段检测算法。两阶段目标检测算法将检测任务分2个阶段,首先找出目标的候选区域,对是否为目标做初步判断;然后再对候选区域进行分类和回归,对候选区域的位置进行修正,最后输出目标的类别。其代表算法有R-CNN[13],Fast R-CNN[14],Faster R-CNN[15]。单阶段目标检测算法没有候选区域生成阶段,直接输出物体的类别概率以及位置坐标信息,代表算法有YOLO[16]、YOLOv3[17]、SSD[18]等。

本文基于PP-YOLOv2算法对IC引脚焊接缺陷进行检测,为了提高PP-YOLOv2算法对IC引脚焊接缺陷此种小而密集情况的目标识别能力,本文在网络的特征提取部分后加入注意力机制SE(squeeze and excitation)模块,进一步提高网络特征提取能力。

3.1 改进的PP-YOLOv2算法

PP-YOLOv2是Huang X等[19]提出的一种改进的基于PaddlePaddle的YOLOv3模型,是基于anchor-based的单阶段目标检测算法,网络由骨干网络,检测颈和检测头组成,引入注意力机制SE模块的PP-YOLOv2网络结构如图2所示。

图2中,骨干网络为Resnet50-vd网络[20,21],检测颈为路径聚合网络(path aggregation network,PAN)[22],检测头有3种尺度的输出,SE Block表示注意力机制[23]。

3.1.1 改进后的PP-YOLOv2骨干网络

该模型的骨干网络采用Resnet50-vd网络,相比于YOLOv3的骨干网络Darknet53网络,Resnet50-vd可以根据不同需要适当地增加网络分支,具有更强的普适性。IC引脚小且高密度,经典的神经网络在卷积计算过程中,将目标中心像素点与其卷积核矩阵范围内的像素点加入计算,而IC引脚焊接缺陷的尺寸不一、形状多变,导致检测效果不佳。因此,本文在Resnet50-vd网络基础上,用可变卷积层(deformable convolutional networks, DCN)代替了最后一级的3×3卷积层,提升感受野与实际目标缺陷形状的匹配度。改进后的PP-YOLOv2骨干网络结构如图3所示。

图3 改进后的骨干网络结构图Fig.3 Structure of the improved backbone network

3.1.2 改进后的PP-YOLOv2检测颈

检测颈采用PAN,自上而下地聚合特征信息,在特征金字塔网络的基础上添加了自下而上的路径增强结构,增加了跳转连接,将低层特征信息传递给高层,利用准确的低层定位信号增强特征层次,进而缩短低层与顶层特征之间的信息路径。检测颈PAN结构详见图2,PAN中detection block的结构如图4所示。

图4 Detection block的结构图Fig.4 Structure of detection block

图4中,上一级输入的特征图,分为2个部分,一部分通过1×1卷积,另一部分通过多层卷积,再相加,最后经过1×1卷积输出。

3.1.3 改进后的PP-YOLOv2检测头

改进后的PP-YOLOv2的检测头由一个3×3卷积层和一个1×1卷积层组成,输出通道为3×(K+5),其中3表示3种大小的锚框,K表示预测的类的个数,5表示每个预测框的4个位置参数和1个包含物体的概率参数。

3.1.4 注意力机制SE模块

对于卷积神经网络输出的H×W×C的特征图,C是通道,也表示特征的数量,H和W分别是原始图片经过压缩后的图的高度和宽度,改进后的PP-YOLOv2在骨干网络后加入SE模块,SE给特征图中的每个通道,通过神经网络算出梯度并且前向传播和后向反馈来学习得到不同的权重,有利于网络学习各个特征通道之间的关系,提高网络对密集小目标的检测精度。SE结构图如图5所示。

图5 SE结构图Fig.5 Structure of SE

由图5可知,SE模块首先对输入的特征图全局平均池化,将输入的特征图压缩成为1×1×C的特征通道向量ZC,计算公式如下:

(1)

式中:uc表示特征向量。

再使用全连接神经网络经过激活函数等操作赋予特征通道向量不同的权重,计算公式如下:

SC=σ(W2g(W1ZC))

(2)

最后通过乘法逐通道加权到C个通道上,完成在通道维度上对原始特征的重标定,并作为输出值,计算公式如下:

(3)

3.2 Mish激活函数

Mish是自正则的非单调神经激活函数[24],有助于保持较小的负值,稳定网络的梯度流;而且,与其他激活函数相比,无穷阶连续性和光滑性具有更好的泛化能力,可以提高检测的精度。因此,本文将Mish激活函数应用于检测颈部。Mish激活函数如图6所示。

定义和求导公式如下:

f(x)=x×tanh(ln(1+ex))

(4)

(5)

式中:x表示输入;w=4(x+1)+4e2x+e3x+ex(4x+6);δ=2ex+e2x+2。

3.3 损失函数

改进算法的损失函数,包括坐标回归和分类的损失函数,去掉了平滑的L1损失,增加了iou损失和iou感知损失,以适应检测的回归任务,提高了定位精度。IC引脚焊接缺陷检测模型的损失函数可以表示为

floss=λ1fxy loss+λ2fwh loss+λ3fobj loss+λ4fcls loss

+λ5fiou loss+λ6fiou aware loss

(6)

式中:λ1,λ2,…,λ6是权重参数;fxy loss和fwh loss是坐标损失函数;fobj loss是置信度损失函数;fcls loss是类别损失函数;fiou loss是预测框和真实框交并比损失函数;fiou aware loss是预测框和真实框交并比感知损失函数。fiou loss和fiou aware loss公式为

(7)

fiou aware loss=-t×log(σ(p))-(1-t)

×log(1-σ(p))

(8)

3.4 评价指标

3.4.1 检测精度

平均精确度(average precision, AP)是对数据集中单个类别检测精度衡量的指标,平均检测精度均值(mean average precision, mAP)是对数据集中所有类别目标的检测精度衡量的指标。mAP是各个缺陷类别的AP的平均值,AP由准确率-召回率(precision-recall)曲线下覆盖的面积得到,准确率、召回率由混淆矩阵计算得到,混淆矩阵如表1所示。

表1 混淆矩阵Tab.1 Confusion matrix

表1中:TP表示预测结果中预测框被正确预测为正样本的个数;FN表示正样本被错误预测为负样本的个数;FP表示负样本被错误预测为正样本的个数;TN表示预测框被正确预测为负样本的个数。

(1) 准确率P又称查准率,指分类过程中模型所预测的所有正样本内预测正确的比例,其公式为

P=TP/(TP+FP)

(9)

(2) 召回率R又称查全率,指分类过程中模型预测正确的正样本占真实正样本的比例,其公式为

R=TP/(TP+FN)

(10)

(3) 以P为纵轴,R为横轴作图,得到模型的P-R曲线。计算P-R曲线与坐标轴所围的面积,即对P-R曲线求积分可得到该类别的平均精度AP,AP值越高表明检测效果越好。其公式如下:

(11)

式中r表示召回率变量。

(4) mAP是评价模型综合性能的重要指标,代表着模型在所有类别目标上的平均检测精度,其公式如下:

(12)

式中:M表示检测目标的种类数;APi为每一类目标的平均精度。

3.4.2 检测速度

每秒帧数(frame per second, FPS)表示测试样本总数与测试样本进行检测所消耗时间的比值,计算公式为

FPS=N/T

(13)

式中:N表示测试样本总数;T表示测试样本进行检测所消耗的时间。

4 实验准备

4.1 图像采集

本文实验数据由搭建的图像采集硬件平台采集得到,计算机发出采集指令,运动控制器控制PCB板在轨道上移动,移动到指定位置停止,打开光源,相机拍摄IC图像,存入计算机。共计采集1 000幅图像。

4.2 数据增强

当训练样本数较少时,使用深度学习算法容易导致过拟合现象,难以训练出具有好的鲁棒性的模型。数据增强是一种常见的技术,能够降低过拟合,训练出具有好的泛化能力的模型,从而更好的对缺陷进行识别。因此,本文通过5种数据增强方法对IC数据样本进行扩充,以增强数据的丰富性。采用的数据增强的方法有:平移、翻转、对比度变换、缩放变换、mosaic数据增强。经过数据增强后共得到1×104幅图片,并且图片大小全部Resize为640×640,数据增强示例如图7所示。

图7 4种数据增强方法示例Fig.7 Examples of four data enhancement methods

4.3 数据集制作

为了使采集的图片数据在模型训练及测试时更加标准,将经过数据增强后的图片数据制作成Pascal VOC格式的数据集。拍摄得到的IC引脚焊接缺陷共有4种,分别为短路(short_circuit)、缺脚(missing_pin)、翘脚(pin_cocked)、少锡(little_tin),选用LabelImg对缺陷进行标注,标注后的每一幅图片都会生成对应xml格式的标注文件,该文件包含图片的名称及尺寸信息,缺陷名称及缺陷标注框的位置信息等。划分训练集、验证集、测试集的比例为6:2:2。

5 实验与分析

5.1 实验环境

计算平台配置如下:CPU为Intel(R) Core(TM) i7-7700@3.60 GHz;GPU为NVIDIA GeForce GTX 1070;内存16 GB;操作系统Win10;深度学习框架为PaddlePaddle 2.0.2;CUDA 10.2。

5.2 配置训练参数

数据集共1×104幅,划分训练集6 000幅,验证集2 000幅,测试集2 000幅。训练集和验证集共计8 000幅图片,设置Batch size为20,则Batch数为400,输入图像尺寸为640×640,初始学习率设置为0.001 25,动量参数设置为0.9,整个训练过程分为100个Epoch,则总迭代次数为4×104次。

PP-YOLOv2使用3个不同尺度的特征图预测缺陷,每个尺度的特征图包含3种预测信息,因此共有9个anchor参数。不同数据集中目标的尺寸和长宽比不同,为了更加准确地识别本文制作数据集中的缺陷,改进的算法采用k-means++聚类算法对所有的缺陷框大小聚类,最终得到9个聚类中心,分别为:(18,61), (18,79), (72,20), (59,29), (56,37), (37,58), (50,84), (51,85), (84,60)。

5.3 实验结果与分析

为了验证改进后网络的性能,在相同的实验环境下,应用相同的IC引脚焊接缺陷数据集分别对YOLOv3算法、PP-YOLOv2算法、改进算法网络训练100轮,损失值曲线对比如图8所示。

图8 3种网络训练损失值变化曲线Fig.8 Variation curve of three network training loss values

可见,随着训练轮数的增加,3种网络的损失函数曲线整体上均呈下降趋势。YOLOv3算法损失值曲线有震荡,PP-YOLOv2算法损失值在训练22轮左右收敛,改进算法损失值在训练32轮左右收敛,改进算法损失值相比于原始PP-YOLOv2算法来说收敛较慢,这是因为在网络结构中添加了SE模块,所以增加了计算量。最终经过100轮迭代训练后,YOLOv3算法损失值收敛至0.2,PP-YOLOv2算法损失值收敛至0.1,改进算法损失值收敛至0.04,改进算法相比其他2种算法的收敛值更小。综上所述,改进算法的损失曲线收敛值最小且趋于稳定,比其他2种算法效果更好。

在训练期间每经1轮就在验证集上验证模型效果,平均精度曲线对比如图9所示。

图9 3种网络训练平均精度变化曲线Fig.9 Variation curve of mAP of three network training

图9显示,随着训练轮数的增加,3种网络的平均精度曲线整体上均呈上升趋势。YOLOv3算法平均精度曲线有波动,经过90轮训练后模型mAP达到最高为82%。PP-YOLOv2算法平均精度曲线经过45轮训练后mAP稳定在90%左右,经66轮训练后模型mAP达到最高为91%。改进算法平均精度曲线在30轮训练后模型的mAP稳定在95%左右,经49轮训练后模型mAP达到最高为96%。

分别使用3种模型在IC引脚焊接缺陷测试集上进行预测,性能对比如表2所示。

表2 3种模型检测性能对比Tab.2 Comparison of detection performance of three models

表2显示,YOLOv3模型对短路、缺脚、翘脚、少锡4种缺陷的AP差为19.4%,表明模型性能随着缺陷复杂度增加大幅降低。PP-YOLOv2模型对4种缺陷的AP差为9.1%,表明模型对于复杂缺陷的识别能力有所提高。改进算法对4种缺陷的AP差为2.1%,各缺陷的平均检测精度较为均衡,模型性能得到大幅提高。在阈值为0.5的情况下,改进模型的mAP达到96.6%,与YOLOv3、PP-YOLOv2相比,分别提高了14.9%, 5.1%。检测速度上,改进模型的检测速度远快于YOLOv3的检测速度,改进模型比PP-YOLOv2的检测速度稍慢,原因是SE模块增加了推理时间,但是其速度在IC质检要求范围内。

分别使用YOLOv3、PP-YOLOv2和改进模型对2幅图片进行检测,检测结果如图10所示。

图10 3种模型对2张图片检测结果Fig.10 Detection results of three models on two images

3种模型检测结果的统计情况如表3所示。

表3 3种模型对左、右图检测结果Tab.3 Detection results of three models on the left and right images 个数

由图10和表3可以看出:改进模型较准确地检测出了图中所有的缺陷,而其他两种模型存在漏检和错检,这说明改进算法模型的识别效果更好。

6 结 论

本文提出一种基于改进PP-YOLOv2算法的IC引脚焊接缺陷检测方法。

1) 针对IC引脚小而密集导致缺陷难以检测的问题,本文在Resnet50-vd网络基础上,使用可变卷积层DCN,提升了感受野与实际目标缺陷形状的匹配度。

2) 在骨干网络后加入SE模块,增加了对小目标的感知能力,使用Mish激活函数改善梯度消失的问题,稳定了训练过程,进而提高了缺陷检测精度。

3) 使用k-means++聚类算法确定先验框的大小,加快了模型收敛,提升了检测精度和速度。

改进算法mAP达到了96.6%,与YOLOv3、PP-YOLOv2相比,mAP分别提高了14.9%、5.1%,改进算法对单幅图片的检测时间仅为0.151 s,远快于YOLOv3,比PP-YOLOv2的检测速度慢。

本研究为IC引脚焊接缺陷检测提供了新的研究思路和方法,可为小目标和密集目标的检测提供理论支持和参考。

猜你喜欢
损失卷积精度
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
GPS/GLONASS/BDS组合PPP精度分析
一般自由碰撞的最大动能损失
损失
改进的Goldschmidt双精度浮点除法器