高杰 GAO Jie;贾培刚 JIA Pei-gang;谭超 TAN Chao
(西安工业大学,西安 710021)
随着我国当今电力电子技术的飞速发展和智能制造体系的逐步完善,电子设备对于当今社会的发展和科技进步产生了深远影响。而印刷电路板(Printed Circuit Board,PCB)是各种电子设备的核心部件,承载着各种电子元器件的正常运行。当前PCB产业产值在电子元件各个细分产业中占比最大,占全球电子元件总产值份额达四分之一以上[1]。英特尔创始人戈登 摩尔就预言:集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。随着PCB集成度提高,复杂性也大大提高,对于大批量高复杂性的PCB板的快速准地缺陷确检测已成为一种必然需求。
在PCB缺陷检测领域缺陷检测方法主要包括基于图像处理与模板匹配的缺陷检测方法和基于机器学习、深度学习的缺陷检测方法两类。基于图像处理的缺陷检测方法主要采用主成分分析、傅里叶变换、小波变换、图像模式匹配等对PCB图像进行特征提取,然后根据缺陷特征匹配模板进行缺陷检测分类。Hagi[2]等应用相位相关对PCB裸板对齐,根据测试图像与参考图像的差异检测出精度较高的缺陷候选区域,然后提取特征识别真或伪缺陷。应用图像减法识别缺陷。赵翔宇等[3]提出基于数学形态学与种子填充相结合的分层提取匹配算法解决PCB元器件丢失和IC片机型错误的缺陷。该方法采用种子填充算法实现了分层提取PCB中各类元器件,然后采用单链表的模板分别进行分类匹配。李文静等[4]针对漏焊和短路缺陷检测问题运图像预处理、图像分割技术及模式识别方法检测。该方法可实现模板分割图像和待测分割图像相同区域的提取,然后基于预先设定的阈值进行判定待测区域的缺陷。蔡念[5]等将缺陷检测问题转为对象检测问题,使用ViBe模型更新方案构建焊点模型。然后将焊点图像与训练良好的模型进行比较,以检测潜在的缺陷。然而,传统基于图像处理与模板匹配的缺陷检测方法对位置和光照敏感,在复杂的实际工业生产环境应用中受限较大。
基于机器学习的缺陷检测方法一般可分为传统的机器学习方法和深度学习方法,利用传统机器学习加图像处理技术的方式,检测PCB是否存在缺陷。李云峰等[6]首先利用滤波去噪和图像分割操作获得PCB敷铜层区域,然后设计了邻域梯度方向信息熵作为特征描述子,并结合边缘像素在局部区域的分布特性,进行缺陷特征提取和特征向量构造,最后利用支持向量机(SVM)实现缺陷识别和定位。Li[7]针对IC焊点较小缺陷检测较难,提出了一种基于生成元-对抗网络模板的IC焊点检测方法,对缺陷凸起图像中的像素进行累加,以区分被检IC焊点的质量。能够较好地检测微小缺陷。何忠国[8]等人改进YOLOv4网络用于PCB缺陷检测相较于优化前精度提升了6.88%。
神经网络在图像识别和缺陷检测中具有卓越的效果。基于深度学习的缺陷检测方法已经远远超越传统机器学习中对缺陷分类的能力,可以实现对缺陷定位分类和分割,而且也实现了特征自动提取,克服了传统缺陷检测对位置和光照敏感的问题。
YOLO网络模型是目标检测领域比较优秀的单阶段目标检测算法,其检测过程是在卷积阶段提取检测结果,相比其他在全连接层提取检测结果的算法,速度遥遥领先。虽然其在准确度上存在一定的不足,不过在最新的版本迭代中不断地弥补这方面缺陷,准确率有较大的提升,因而其具有广阔的应用前景。YOLOv5是较新的迭代版本,具有体积小,速度快,准确率高的特点,所以本文选择YOLOv5进行研究PCB缺陷检测。YOLOv5s的网络参数结构如表1所示,它是由3个部分组成:Backbone、NECK以及Output。其目标检测原理主要为自适应设定锚框通过Backbone提取图像特征,NECK部分负责融合图像特征值,再根据图像特征进行预测,最后生成预测类别,并返回目标位置的边框坐标。
表1 YOLOv5网络模型参数框架
YOLOv5在跨阶段局域网络思想的基础上,使用CSP作为主干网络,主要包括切片结构(Focus)、卷积模块(Conv)、瓶颈层(C3)以及空间金字塔池化(SPP)。切片结构是将高分辨率图像中抽出像素点重新构造到低分辨率图像中,该模块主要是用来加快计算速度。SPP模块分别采用5/9/13的最大池化,再进行concat融合,提高感受野,在颈部网络中使用了FPN+PAN的结构,较比之前版本,虽然总体结构没有改变,但其增加了sp2结构,加强了特征融合的能力[9]。最后在输出端使用了损失函数GIOU_Loss,GIOU函数同时包含了预测框和真实框的最小框的面积,其计算过程如2.2所示。该函数可以增强其检测能力。
在深度学习中,损失函数本质上是计算预测值和真实值的差距的函数。在一定程度上表征了模型预测的准确性,本实验模型损失函数包含三部分:框损失(lbox),对象损失(lobj)和分类损失(lcls)。其中框损失表征算法定位中心对象的程度以及预测的边界框覆盖对象的程度,即算法检测出目标位置中心以及框选覆盖的程度。对象性损失本质上是对象存在于建议的区域中概率的度量,若经计算后得到的概率较高,图像窗口则可能包含一个对象,即计算PCB缺陷在框中的概率;分类损失使用到了softmax函数,将6种PCB缺陷类型的预测值转换成总和为1的概率,将概率最高的那一类作为模型判断的最终缺陷类型,定义如下:
为了全面客观评价PCB缺陷检测模型的性能,本研究使用目标检测领域常用的精确率(Precious)、召回率(recall)、平均精度(mAP)指标来衡量评估,具体公式如下所示:
精度(查准率)是评价预测准不准的评价指标,计算方式如下:
其中TP表示正类正样本,即样本值为A值,预测结果也为A值;FP表示负类正样本,即样本值为B值,预测结果为A值;
召回率(查全率)是评估预测查找的全不全,计算方式如下:
其中FN表示负类负样本,即样本值为A值,预测为B值。
mAP表示模型在所有类别上预测效果的评价指标,计算方式如下:
本文采用PCB缺陷检测公开数据集进行算法验证。该数据集由北京大学智能机器人开放实验室发布,该数据集原始数据共693张分为鼠咬,漏孔,短路,断路,毛刺,伪铜共6个类别。由于原数据集数量过少,采用Mosaic数据增强方法对样本进行扩充,其增强方法为:相对先有样本进行随机剪裁和缩放,然后进行拼接生成新数据,扩充小样本数量。(表2)
表2 PCB缺陷信息表
本实验的运行环境:CPU为Intel-i5-11400H,GPU为NVIDIA GeForce RTX 3050,内存为4G,操作系统为Windows11,CUDA为11.6版本,开发语言环境为Python3.8,框架为pytorch-gpu。
本实验在现有数据集上进行300轮训练后发现损失趋近于平稳,且精度不再有变化。如图1所示,图1(a)代表训练集位置损失;图1(b)代表训练集置信度损失;图1(c)代表训练集类别损失。由图1可知,训练效果达到了较好的拟合状态,训练集位置损失稳定在0.02左右,置信度损失稳定在0.01左右,类别损失稳定在0.002左右。
本研究对其精度(公式(6))和召回率(公式(7))进行了分析。研究发现,PCB缺陷检测模型的精度(图2(a))在1~19轮的时候迅速上升,到100轮的时候达到峰值,而召回率(图2(b))则在训练前期平稳上升,在120轮的时候达到最高值为0.98。
利用测试集数据对六类缺陷的识别模型准确率进行分析统计,结果如表3所示。由表3可知,6种缺陷的识别准确率均达到90%以上,其中漏孔缺陷检测准确率最高为98.9%,其次是短路准确率为97.2%,毛刺的识别准确率最低为91.1%,相比而言,毛刺的缺陷特征较小,难以提取,因而导致其难以识别。
表3 模型在训练集上的准确率
本文使用YOLOv5s对印刷电路板缺陷进行检测识别,根据最终的实验结果表明,本文算法中PCB缺陷检测与识别的平均精度达到了95.4%,在6种PCB缺陷中,对于漏孔检测精度最高达到了98.9%.对于640*640的样本图片,检测速度为0.2s。该算法在复杂环境下准确率、检测速率仍具有良好的表现,因此YOLOv5算法可以满足实际应用生产缺陷检测需要。