基于改进Faster R-CNN的PCB板表面缺陷检测

2021-09-09 07:36耿朝晖龚涛
现代计算机 2021年19期
关键词:卷积损失样本

耿朝晖,龚涛

(东华大学信息科学与技术学院,上海 201620)

0 引言

步入21世纪,电子工业和电子产品需求发展很快,而电子工业产品最基础部件之一PCB板的应用也越来越广泛。但在实际的生产过程中,电路板表面可能会产生诸多缺陷,进而对电路板性能产生影响,使用问题严重电路板产品,会造成经济损失,甚至可能对使用者造成伤害。因此,针对PCB板表面缺陷检测显得十分重要。在传统的方法中,主要是通过人工目测[1],不仅需要消耗大量人力,且受限于工人经验生理等因素,易造成错误检测等问题,甚至引发事故。

随着工业发展,逐渐开始使用基于机器视觉的缺陷检测方法[2],传统方法所引起的人员疲劳和效率低下等问题有了一定改善。目前常见的机器视觉方法有特征分类、阈值分割等方法。而以机器视觉技术为基础的自动光学检测系统(AOI)更是有着广泛的应用[3]。虽然机器视觉的方法已经在多方面都有着成功的应用,但在实际应用中,检测环境复杂且多变,缺陷检测对细节,精度方面也有着越来越高的要求。基于机器视觉的缺陷检测方法的局限性逐渐凸现出来。

近年来,深度学习得到了快速的发展,在多方面都有着优秀的表现[4]。Yann LeCun[5]所提出的卷积神经网络,相比传统算法也体现出的较强鲁棒性。随着AlexNet、VGGNet、GoogleNet等算法网络提出,深度学习方法也得到了不断地发展。目前,深度学习在目标检测的主流方法中,主要分为两类,其中单阶段检测算法是直接在输入图像上回归出物体的类别概率和位置坐标,如YOLO、SSD等算法[6],其检测速度相对较快,但也因此损失了部分检测精度。另一类是二阶段检测算法,如R-CNN系列算法[7],先从图像提取出目标的可能的候选区域,然后再用分类与回归器,得到目标的类别与位置。虽然速度相对较慢,但因更高的精度,也被更广泛的应用。

实际图像中,PCB板的缺陷相对较小,且与背景色极其相似,因此本文选取检测精度更高的Faster R-CNN检测算法,针对小目标难以检测的情况,主干网络选取为ResNet50并构建特征金字塔进行多尺度特征融合,并将损失函数替换为focal loss来提升检测效果。通过算法改进前后的PCB板图像缺陷检测实验,并进行mAP值的对比来验证提出方法的有效性。

1 算法分析与改进

1.1 Faster R-CNN算法分析

Faster R-CNN是二阶段检测算法中的代表算法,是在R-CNN及Fast R-CNN检测算法上进行改进的,基本结构是由Fast R-CNN网络加上RPN网络两部分组成,如图1所示。之前的R-CNN系列算法都是通过选择性搜索提取候选区域,其速度慢且计算量巨大。RPN网络的提出,取代了选择性搜索,且与Fast R-CNN网络共享卷积层参数,使得检测时只需进行一次特征提取,实现了端到端的检测,减少了计算量并极大地提高了网络检测的速度[8]。

图1 Faster R-CNN结构图

RPN网络中使用了anchor机制,通过话筒窗口的方式来遍历卷积,通过分类层与回归定位层,分别获得2k个类别信息与4k个检测框位置信息。通过RPN网络得到的区域建议框,再通过ROI pooling层转换到固定的尺寸,然后经过全连接层进行最终分类及位置的二次回归,如图2所示。

图2 RPN结构图

1.2 特征提取网络分析

一般情况下,随着网络层数的加深,卷积网络能够提取到更深层次的特征。但是经过长期研究发现,一味增加网络层数深度,到达一定程度则会产生退化及梯度消失和爆炸问题,从而使检测性能下降。随着ResNet的提出,也有效解决了网络层次的加深所带来的问题。ResNet设计了残差学习模块,如图3所示。通过在前馈网络中加入短路连接(shortcut connection)的方式,实现恒等映射,来降低计算的复杂度,可由公式(1)表示,式中H(x)表示残差模块的结果输出,F(x)表示要学习的残差参数,可极大提升网络结构。

H(x):=F(x)+x

(1)

残差网络有着多种层次结构,本文选用常用的ResNet50作为基础网络,可较好地保证缺陷检测效果。

图3 残差结构

1.3 多尺度特征融合分析

电路板缺陷检测中,通常识别的目标尺寸较小。为了提升对小目标的检测效果,提出基于特征金字塔的多尺度的检测网络来进行多尺度特征融合[9]。特征金字塔主要是通过自下而上、自上而下和横向连接三部分组成的。通过融合不同层级特征,来获得丰富的语义特征信息。自下而上的卷积是特征提取网络的正常过程。选取ResNet作为主干网络,用C1-C5来分别表示ResNet中每个阶段池化后的特征图的输出,同时每一阶输出的特征图像在尺寸上相差2倍。自上而下的路径首先是从最上方的C5开始进行最近邻上采样,通过1×1的卷积层.产生低分辨率特征信息,然后通过上采样将特征放大一倍,通过横向连接与C4层有着相同尺寸的特征图像进行融合,并将融合后的特征图像通过3×3 的卷积核,来避免上采用产生的混叠效应,进而得到新的具有强语义信息的融合特征图像,记为P2-P5,如图4所示。

由于多层特征的图像分辨率不同,执行多尺度特征映射时,针对不同尺度的区域候选框,通过公式(2)来对金字塔的等级进行计算。

(2)

图4 多尺度特征融合

其中,数字224是所用电路板数据集图像的尺寸,k0为基础网络中通过卷积网络映射出特征图像的层次。w,h为生成候选框的宽和高。通过融合各个层级的特征,使得最终的特征图同时具有强语义信息和强空间信息,逐步提高网络对不同尺度缺陷检测的能力。

1.4 损失函数改进

传统的Faster R-CNN算法中,默认目标分类损失使用的是多类别交叉熵损失函数。检测的电路板图像中,缺陷通常只占有极小的区域,正负样本区域极其不平衡,负样本数量过大也会对损失函数产生一定影响。而在识别过程中,简单的样本也会导致对困难样本的学习能力下降[10]。因此,本文按照公式(3)使用focal loss损失函数。

(3)

其中,y为真实值,y′为预测的概率值,α为调节正负类的矫正系数,γ用来调节样本损失权重,一般取2。通过α和γ对样本不平衡进行调整,进行有效解决样本不平衡问题,提高模型学习能力。

2 实验测试与结果分析

2.1 数据集和评价指标

本实验所用的数据集在北京大学网站上下载,共有693张图像。分为六种缺陷,分别为缺孔、鼠咬、开路、短路、杂散和伪铜。为了丰富数据集并提高图像鲁棒性,对图像进行数据增强。增强后的图像共有3200张,其中训练集2500张,验证集400张,测试集300张,并制作成标准的PASCAL VOC格式。

目前衡量目标检测性能的方法主要是通过精确率(P)、召回率(R)以及平均精度均值(mAP)进行度量。精确率指的是识别为缺陷的样本中,真正的缺陷样本所占的比例。召回率指的是原先为缺陷的样本中,能被准确识别为缺陷的样本所占比例。如公式(4)所示,式中TP指识别为缺陷的样本数量;FP指正常的样本中被识别为缺陷的样本数量;FN指真正的缺陷样本中没有被正确识别的样本数量。

(4)

某一类别进行预测时,以PR为坐标绘制曲线。平均精度指的是PR曲线所围的面积。对所有类别的AP求平均值可得到mAP值,mAP值越大,算法检测效果越好。

2.2 测试实验和结果分析

本实验使用PyTorch作为深度学习框架,选用ResNe50作为主干网络,构建特征金字塔进行特征融合,选用focal loss作为损失函数。模型检测总共设有六种缺陷,加上背景可分为七类。设置初始学习率为0.005,每5个epoch缩减为原先1/3。设置动量值为0.9,数据集运行20个epoch可达到稳定效果。

改进后的算法针对不同的环境和不同的缺陷都有较好的识别精度,可以用于较小的缺陷识别,如图5所示。在图5中,图像数据增强后,亮度更高的图像有着更高的置信度。

图5 不同亮度和缺陷的检测结果

通过实验得到损失函数曲线图和map曲线图,都有良好的效果,如图6所示。损失函数在刚开始振荡后,开始稳定缓慢收敛,14000step后,loss已经收敛到0.2附近。mAP曲线则是稳定在95%以上。通过对比改进前后算法检测的mAP值,在AP为50时候,检测成功率更高,在AP为70时候,算法效果提升更加明显。综合来看,本文改进算法总体有所提升,检测效果更加优秀。如表1所示。

图6 损失函数(a)和mAP曲线(b)

表1 实验结果对比

3 结语

针对工业过程中常见的PCB板缺陷检测问题,提出了PCB板缺陷检测的Faster R-CNN改进方法。通过选取ResNet50作为主干网络,并构建特征金字塔进行特征融合,再使用focal loss作为损失函数。实验数据表明改进后的算法对PCB板的缺陷有着较好的检测效果,通过与传统算法对比,改进后的算法提升了检测精度,有效改善模型的性能。

猜你喜欢
卷积损失样本
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
两败俱伤
随机微分方程的样本Lyapunov二次型估计
损失
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
七年级数学下册期末检测题(B)
那些损失上百万的演员