融合双神经网络的PCB缺陷检测方法

2022-04-14 06:30林璐颖吴慧君杨文元
关键词:置信度卷积图像

林璐颖,吴慧君,杨文元

(1.漳州职业技术学院,福建 漳州 363000; 2.闽南师范大学 福建省粒计算及其应用重点实验室,福建 漳州 363000)

缺陷检测在印刷电路板(Printed Circuit Boards,PCB)生产成本中占据很大比例,是保证PCB产品质量的重要手段[1].近年来,基于图像处理技术的各种自动光学检测方法广泛应用于PCB检测[2],这些方法多数基于参考比较法[3],在缺陷检查中,将被检查的PCB图像与标准样品图像通过各种逻辑算法进行比较,最后将被检查图像的缺陷信息输出给用户[4].

自2014年以来,基于深度学习的目标检测算法研究在图像分析领域,取得令人瞩目的成果[5].目前主流的算法可以分为两类:一类是基于Region Proposal的R-CNN系列算法R-CNN,Fast R-CNN,Faster R-CNN[6]等,这类算法分为two-stage[7],生成目标候选框之后再对其做分类与回归[8-9],识别候选区中的对象;另一类one-stage算法通过卷积神经网络预测目标的类别和位置.Liu等人[10]提出了单次多盒检测器(Single Shot MultiBoxDetector,SSD),采用单一深度神经网络检测目标.Joseph等人提出了YOLO系列方法,直接在同一个无分支卷积网络中进行特征提取、边界框回归和分类[13].使得网络结构更加简单,大大提高了检测速度.

然而,PCB布线密集复杂,缺陷非常小,人工目测难以完成高精度的缺陷检测任务.基于图像识别技术的相关检测系统,在实际检测中对定位要求较高,PCB生产环境复杂,被检测图像对比度低、亮度不均匀、形状不规则[14]等问题导致误检率和漏检率过高[15],难以实现精准的识别效果.

本文提出双神经缺陷检测网络(Dual Nerve Defect Detection Network,DNDD),融合YOLOv3和VGG19两个网络,实现对PCB缺陷小目标的精确检测.利用DNDD算法首先对PCB缺陷数据集DE进行预处理,根据标注文件将缺陷目标裁剪出来形成数据集DE1.将DE和DE1分别输入YOLOv3和VGG19网络进行训练,生成缺陷检测模型M1和M2.其次,使用YOLOv3检测模型M1对PCB图像进行检测,目标置信度50%以上为缺陷确认目标R1,置信度50%以下为缺陷待确认目标R2.最后,将R2裁剪出来,使用VGG19缺陷检测模型M2对其进行二次检测,检测结果中目标置信度大于50%的为R3,对R1和R3进行融合,提高了目标的置信度.DNDD采用的双网络结构有助于检测出置信度较低的目标,大大降低了小目标的漏检率.在PCB缺陷检测中表现出了优秀的性能.

1 相关工作

本节主要介绍构成DNDD的两种检测相关技术:YOLOv3被用于目标的初始检测;VGG19对置信度低的目标进行重新检测,保证检测结果.

1.1 YOLOv3

YOLOv3借鉴ResNet残差网络,设计了功能更强大的Darknet-53网络来实现特征提取[16].与ResNet-101相比,Darknet-53网络的速度是ResNet-101的1.5倍.在精确度相同的情况下,Darknet-53比ResNet-152快两倍[17].YOLOv3采用类似特征金字塔网络RPN,对不同大小的对象进行多尺度预测.当输入一个608×608大小的图像,网络会输出76×76,38×38,19×19三个尺度的特征图.每个特征图设置预测3个先验框,一共预测9个先验框.76×76有较小的感受野,对应较小的先验框,用于检测小物体, 19×19小尺度特征图有较大的感受野, 适合检测大物体.最后, 融合三个特征图上的目标框,筛选出置信度最高的边界框,输出目标的定位及分类.这些改进使得YOLOv3通过大量数据训练出来的模型具有更强的泛化能力,在小目标检测的速度和精度上表现出色[18].

1.2 VGG19网络

VGG NET在2014由牛津大学视觉几何组和 DeepMind 公司提出后,成为当年最流行的卷积神经网络模型.目前,VGG以简洁性、实用性,以及在图像分类和目标检测任务中的出色表现,广泛应用于图像特征的提取.其中网络层次最深的VGG19网络模型在小目标的分类和定位任务上表现尤为突出[8].卷积神经网络模型具有很强的特征提取能力[19-21],VGG19整个网络都使用了同样大小的卷积核尺寸3×3和最大池化尺寸2×2.对于给定的感受野,采用堆积的小卷积核是优于采用大的卷积核,多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价比较小.

2 双网络缺陷检测

本节展示DNDD的算法过程.DNDD使用叠加处理来优化目标检测,增强了小目标特性和系统鲁棒性.PCB缺陷数据集中的图像数量,类别,分辨率和缺陷的比例,对检测的结果有重要影响.

2.1 小目标检测

在浅层网络中,特征信息较少,但目标位置信息准确;在深度网络中,特征信息丰富,但目标位置粗糙.DNDD结合了不同尺度下的预测,目标识别准确率有很大提升,尤其是在小目标检测方面.如图1所示,在DNDD检测中,对输入的PCB图像调整大小为608×608像素.采用上采样和多尺度策略在三种特征图19×19、38×38和76×76上进行预测,执行5次采样,每个采样步长为2,网络的最大步长为25.网络在特征图的每个单元格上预测3个先验框,使用K-means聚类出九种尺寸的先验框,大小为(10×13),(16×30),(33×23),(30×61),(62×45),(1 059×119),(116×90),(156×198),(373×326),目标中心点落在哪个单元格,该单元格与ground truth的IoU最大的先验框负责预测目标,最后,显示目标的定位及其分类.

图1 DNDD检测结构图

先验框预测一个置信度值和四个坐标:kx,ky,kw,kh.置信值由先验框与真实值的符合度决定.图2中虚线代表预测的先验框,实线代表ground truth.假设目标中心点所在的单元格距离图像左上角的边距为(Px,Py),该单元格对应的先验框宽度和高度分别为cw,ch.σ(x)为sigmoid函数,将坐标归一化到0~1之间.每个单元格有五个基本参数,即bx,by,bw,bh,confidence.则预测边界框的真实值由式(1)~(4)给出:

图2 先验框机制

bx=σ(kx)+px,

(1)

by=σ(ky)+py,

(2)

bw=cwekw,

(3)

bh=chekh.

(4)

网络完成初步检测并输出结果R,每个目标获得七条信息,分别为目标所在图像名称、类别、置信度、目标的宽和高、目标中心点坐标.置信度大于等于50%的目标为R1,置信度小于50%的目标为R2.将R2裁剪出来,进行二次检测.

2.2 低置信度目标检测

如图1所示,DNDD首先对PCB增强数据集DE进行预处理,根据标注文件将DE中的目标裁剪出来,调整大小后送入VGG网络训练,生成检测模型.用模型对网络初步检测后的低置信度目标R2进行二次检测,输出结果.筛选二次检测结果中置信度大于等于50%的目标,重置R中相对应目标的置信度.融合两次检测结果后,再分别计算六个分类的平均精确度,得到最终的检测结果.

VGG19在传统CNN基础上加深了网络深度,采用小尺度卷积滤波器提取图像边缘细节特征,有利于提高小目标识别准确度.在检测过程中,由于PCB缺陷目标尺寸小且类型多,容易过拟合.为防止这种情况,DNDD对VGG19网络进行了一些改进.将dropout添加到整个连接层,在每次训练时,让某些特征检测器停止工作,部分神经元不被激活,防止过拟合,提高模型泛化能力.另外在网络中输入数据的每一层添加batch normalization,能有效提高训练速度和分类精度,有利于数据的均匀分布和更好的模型推广,这些设计都促进了检测准确率的提升.

2.3 损失函数

损失函数用于计算预测的缺陷目标与实际缺陷目标之间的数据差距,在很大程度上影响模型收敛的效果.DNDD损失包含四部分:中心坐标损失Lcentre,边界框宽高损失Lwh,分类损失Lclass和置信度损失Lconf.缺陷目标的坐标损失通过计算Lcentre和Lwh得到,这部分损失会影响实验中的交并比.计算分类损失可以帮助确定预测目标所属类别的概率,目标类别的错检会影响召回率.

(5)

(6)

在计算分类损失时,对每个缺陷分类标签使用二值交叉熵损失.ki代表分类概率.分类损失函数如式(7)所示.

(7)

(8)

算法:双神经缺陷检测网络(DNDD)

-------------------------------------------

输入:PCB缺陷数据集DE,PCB图像,表1实验参数.

输出:检测结果R,R1,R2,R3,检测精度评价指标AP,mAP.

1)将DE输入YOLOv3网络训练,生成检测模型M1.

2)M1对PCB图像检测并输出检测结果R,目标置信度大于50%为R1,置信度小于50%为R2.

3)将R2裁剪出来,重新调整大小,形成PCB缺陷数据集Dtn.

4)根据标注文件,将DE上的缺陷目标裁剪出来形成数据集DE1,输入VGG19网络训练,得到检测模型M2.

5)M2对Dtn进行检测并输出检测结果,目标置信度大于50%为R3.

6)将R1和R3进行融合,计算AP,mAP.

返回:检测结果.

3 实验及分析

3.1 实验环境和参数设置

本文实验配置:GPU为NVIDIA GeForce RTX 2080ti,CPU为Intel(R) Xeon(R) W2133,3.6GHz/32G,WIN10系统.DNDD系统参数包括YOLOv3检测和VGG19检测两部分,参数设置如表1所示.

表1 实验参数

3.2 实验数据集

实验基于北京大学智能机器人开放实验室提供的693张PCB原始缺陷数据集D,包含六种PCB常见缺陷,分别为:开路、缺口、短路、毛刺、缺孔和铜渣.图像平均大小为2 777×2 138像素,每张图像都有3~5个缺陷,每个缺陷提供相应的边界框标注数据.

由于数据集较小,Runwei Ding[4]等人采用了添加高斯噪声,改变对比度,旋转图像,翻转,随机剪裁和移位等六项数据增强技术,对数据集D进行扩充,将图像裁剪成600×600像素的子图像,得到PCB缺陷增强数据集DE.使用数据增强技术可以解决小数据集的局限,提高模型的泛化能力,另一方面增加噪声数据,可以增强模型的鲁棒性.训练集、验证集和测试集比例分别为60%,20%,20%.数据集D和DE分布如表2所示.

表2 原始缺陷数据集D和增强数据集DE

PCB缺陷数据集包括6类缺陷:开路、缺口、短路、毛刺、缺孔和铜渣,图3中展示了PCB缺陷范例.

图3 PCB缺陷范例

3.3 评价标准

实验采用平均精确度AP、mAP作为PCB缺陷检测性能的精度评价指标,其数值越高,表示算法的检测精度越高.通过计算召回率Recall评估检测器对目标的查全率.实验中, 还利用目标的IoU值来预测目标的类别.当IoU在某个类别中的值大于等于50%时,认为目标属于该类别.

3.4 DNDD实验结果与分析

DNDD每一次迭代随机抽取64幅图像,分32组参与训练,以利于更好地寻找梯度下降的方向,并且提高内存利用率.在网络中再次通过调整图像饱和度,曝光度和对比度提高模型的泛化能力.每训练1 000次保存一次模型,以选取最优模型.对比DNDD在不同数据集上的表现,DNDD使用原始数据集D进行训练,Loss曲线在迭代3 600次之后趋于收敛,使用增强数据集DE训练,Loss曲线在迭代2 400次左右开始收敛,收敛速度比较快且稳定,随着Loss的快速下降,mAP直线上升,稳定在99.2%左右.实验mAP/Loss曲线如图4所示.通过实验发现,使用增强数据集训练的DNDD-DE相比于使用原始数据集的DNDD-D,在模型的收敛和平均检测精度上都有提高,模型泛化能力更好,鲁棒性更强.

图4 mAP/Loss曲线图

使用同一数据集DE的条件下,将DNDD和目前主流检测算法进行对比.由表3可知,在6个缺陷类别的检测结果中,五种算法对缺孔的检测平均精确度最高,其中DNDD、YOLOv3和Faster R-CNN都为99%以上,FPN最少,为95.54%.各个算法对短路的检测平均精确度最低,PCB线路密集,短路缺陷特征不明显,易与常规线路混淆,不容易识别,DNDD对短路的检测AP值最高,也仅为98.27%.FPN在毛刺上的AP值只有87.62%,DNDD表现最好,为99.29%,比FPN提高了11.67%.在IoU为0.5的情况下,DNDD的mAP值最高,为99.22%,YOLOv3次之,mAP值为99.15%,FPN算法检测精度最低,mAP为92.08%.

表3 DNDD与主流检测算法在PCB数据集缺陷上的AP和mAP值对比

FPN通过构造多层特征金字塔提取不同深度的特征信息,可以达到较好的检测精度,然而多次的降采样和上采样操作会引起深层网络的定位误差,FPN在6个类别上的AP值相对较低.Faster R-CNN采用共享卷积层提取特征,RPN网络产生候选框,速度和精度都有大幅提高,在PCB缺陷检测中表现不错,各个缺陷类别的AP值都能达到95%左右.YOLOv3采用darknet网络和多尺度预测,更有利于小目标的检测.YOLOv3在四种主流算法中表现最好的.

相比其他算法,DNDD有三个分类的AP值都有大幅度提高,但是缺孔、缺口和开路的检测平均精确率相比YOLOv3分别降低了0.05%、0.3%和 0.04%.开路特征与线路相似,而缺孔和缺口缺陷受对比度影响较大,个别形状缺损比较严重的缺陷容易与PCB底板混淆,在网络提取低阶特征时,颜色、边缘等信息提取难度较大,可能导致缺孔、缺口和开路缺陷的漏检.

图5为PCB缺陷的识别效果范例,DNDD的测试结果较为理想,优于YOLOv3.DNDD虽然会有框选面积不够完整的情况,但对于复杂背景中的小目标的识别效果更好.检测的PCB图像包含六个分类的缺陷共5 509个.DNDD检测出了5 484个,漏检缺陷个数25个,与YOLOv3比,多检测出了30个缺陷,DNDD的召回率为99.55%,比YOLOv3高了0.55%.

图5 YOLOv3和DNDD检测结果范例

观察实验可知,DNDD采用上采样和多尺度策略,更有助于小目标的检测.为了获取细粒度的特征,对前两层的特征图进行上采样,之后将上采样后的特征图和之前的特征图进行连接,不是简单的拼接多尺度向量,只有当PCB缺陷目标落入特征图网格时,这个网格才唯一负责预测这个缺陷目标.在对低置信度目标进行二次检测时,DNDD使用连续的几个3×3的卷积核,在保证具有相同感知野的条件下,增加了网络深度,在一定程度上提高了低置信度目标的检测结果.

4 结 语

本文提出了一种双网络目标检测系统DNDD.该系统对低置信度目标进行二次检测,解决了小目标漏检问题,提高了检测精度.但是,实验表明,提高检测精度的代价是占用了更多的计算资源.下一步工作将针对这一弱点,尝试对网络进行裁剪和轻量化,以期得到一个更优的缺陷检测系统.

猜你喜欢
置信度卷积图像
基于数据置信度衰减的多传感器区间估计融合方法
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于定位置信度预测的二阶段目标检测方法
基于图像处理与卷积神经网络的零件识别
摄像头连接器可提供360°视角图像
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
浅析p-V图像中的两个疑难问题
校核、验证与确认在红外辐射特性测量中的应用
名人语录的极简图像表达