APP下载

基于RetinaNet的手机主板缺陷检测研究*

2020-05-04马美荣李东喜

计算机工程与科学 2020年4期
关键词:检测器元件损失

马美荣,李东喜

(太原理工大学大数据学院,山西 晋中 030606)

1 引言

随着智能手机的快速普及,人们对手机的品质要求越来越高。在手机功能的实现中,手机主板占据着核心地位。手机主板在生产过程中需要经过抛光、喷砂、板测、装配、功能测试、包装等加工工序,有时会出现焊点移位、尺寸不合格的现象,而且主板表面还会产生塌陷、破损、撞件、空焊等缺陷。目前检测手机主板的缺陷主要依靠人工来完成,准确率低、稳定性差,严重影响手机的装配质量。因此,必须要研究手机主板缺陷的多目标检测方法,以提高手机主板的质量和自动化检测的效率。

传统检测方法常需要预处理和后处理步骤,以转换输入图像,增加主板之间的对比度标记[1]。然而,这些方法仅解决了如光照、曲线或颜色强度等引起的问题[2,3],并不适用于所有的目标检测。目前,为解决主板缺陷检测中的问题,研究人员已经提出了多个深度学习方法。这些方法在基准测试和实际应用场景中表现出很高的性能。

Figure 1 RetinaNet structure图1 RetinaNet的结构

深度学习中的两级检测器,如更快的区域卷积神经网络Faster R-CNN(Faster Regional Convolutional Neural Networks)[4]、单次多盒检测器SSD(Single Shot multibox Detector)[5],以及一级检测器如YOLO(You Only Look Once)[6,7]和RetinaNet[8],在检测精度和速度方面都有较好的表现。与一级检测器相比,两级检测器检测速度较慢。两级检测器使用外部模块生成候选对象位置,更多地考虑了难以检测的样本[8]。一级检测器RetinaNet和YOLO-v3通过引入焦点损失进一步提升了其检测精度和速度。因此,可进一步改进深度学习中的目标检测器用于解决手机主板图像中的缺陷检测问题。RetinaNet有2个主要的构建块:特征金字塔网络(FPN)[9]和焦点损失。前者提取出多尺度特征,用于主板缺陷的分类和定位;后者用于解决类别不平衡问题,以增加难以检测的小样本的权重。在手机主板图像中,缺陷元件的部位对姿势和配置敏感[3,10],由于各种分辨率的影响,同一缺陷元件的形状是多尺度的。因此,有必要考虑缺陷部位的方差。目前,有一些研究可以解决这个问题[11 - 17],除文献[14]外,文献[11-13]仅提供单一分辨率的手机玻璃屏数据集进行缺陷检测。

基于上述分析可知,RetinaNet适用于手机主板缺陷检测。本文以实验方式研究了包含4种类别缺陷的图像,即塌陷、破损、撞件、空焊。为了解决数据集稀疏性的问题,对缺陷图像进行对比度变换、旋转、平移、裁剪、翻转与亮度变换等数据增强技术。将所有已标记的缺陷图像,按照7∶2∶1的比例分为训练集、验证集和测试集。本文的主要贡献如下所示:

(1)基于本文的数据集可以构建大量多分辨率的缺陷元件的图像,我们相信这个数据集会促进计算机视觉技术在工业目标检测中的应用。

(2)将最先进的目标检测器,即RetinaNet,与MobileNetV2网络融合,并应用于检测多类别的主板缺陷图像,实现了超过96%的平均精度(mAP),与其他5个模型相比排名第一。

2 基于RetinaNet的缺陷检测方法

2.1 RetinaNet

RetinaNet的结构分为3部分,即用于特征提取的骨干网络和2个子网。其中一个子网用于分类,另一个子网用于边界回归[8]。为了应对检测对象存在不同尺度的问题,RetinaNet使用FPN来表示多尺度对象。RetinaNet使用骨干网络提取更高层的语义特征映射,然后利用FPN来提取具有各种尺度的相同维度的特征,最后将这些特征送到用于对象分类和定位的2个子网中,如图1所示[8]。

骨干网络可以是残差网络ResNet[18]、VGG(Visual Geometry Group)[19]或密集连接的卷积神经网络DenseNet[20]。FPN用来获得多尺度特征。2个子网包括用于分类的子网1和用于边界框回归的子网2。2个边界框3是由特征金字塔网络(FPN)提取的金字塔特征。

2.1.1 特征金字塔网络

选取特征金字塔网络作为特征提取器,主要是考虑到低级别高分辨率和高水平低分辨率语义含义[8]。 FPN有2条路径,分别为自下而上的路径和自上而下的路径。自下而上的路径采用卷积网络从骨干网络中提取高分辨率的特征作为输入。自上而下的路径用于对更抽象、语义更强的高层特征图进行上采样,再把此特征横向连接至前一特征,以此加强高层特征。自下而上的路径通常包括卷积神经网络的一部分,如ResNet[18]、VGG16[19]和DenseNet[20]。在自上而下的路径中,首先采用1×1卷积将特征图的数量通道减少到256,然后使用横向连接来组合相应的特征图,以帮助检测器更好地预测位置。

Figure 2 ResNet50 structure图2 ResNet50结构

Figure 3 Downsampling block and residual block at different stage stages图3 不同stage阶段的下采样块和残差块

ResNet50包括2个基本的构建块:卷积构建块(Conv Block)和恒等构建块(IDentity Block),分别如图2中的Conv Block和ID Block所示。ResNet50包含了5个不同的卷积阶段,如图2中的stage1~stage5,每个阶段都包括1个下采样块和2个残差块,如图3所示[21]。其中,区域1的下采样块会设置最初的卷积步长为1,通过该方式对特征图进行下采样,使得图像尺寸得到缩减。而在区域2及之后对特征图进行相加处理,可避免深层网络的梯度消失和退化问题。每个卷积阶段中卷积构建块将图像特征从低语义层提取到高语义层。

FPN如图4所示[22]。显而易见有2条主要的路径,即自下而上的路径和自上而下的路径,如图4区域1和区域2所示。 跳过conv1连接使用1×1卷积滤波器来减小深度convi(i= 2,3,4,5)到256。在自上而下的路径中,除了特征映射M2,M3,M4和M5之外,首先,把对应的convi(i= 2,3,4)通道数减少到256;然后通过上采样组合相应层到上一层;最后,使用3×3卷积滤波器来获得用于对象分类和边界框回归的特征图层Pi(i = 2,3,4,5)。

Figure 4 FPN structure图4 FPN的体系结构

图4中虚线框区域1中为自下而上的路径,虚线框区域2中为自上而下的路径。M2~M5分别表示从conv2~conv5获得的特征图,而P2~P5表示用于预测的特征图。

2.1.2 焦点损失

RetinaNet使用FPN来获取多尺度特征,用于对象分类和边界框回归。在边界框回归中,借助候选边界框与真值框的比较来获得正面和负面子类。在训练期间,类不平衡和难易实例的检测对检测的准确性会产生一定的影响[8]。为解决这个问题,文献[8]提出了焦点损失,它更加强调难检测对象,并侧重于在训练期间对损失贡献大的难检测样本。焦点损失已经应用于改进检测算法中,如式(1)所示。

L(pt)=-αt(1-pt)γlog(pt)

(1)

(2)

其中,αt和γ是2个超参数,用于调节难易检测样本权重;pt为二分类情况下对应的模型估计概率;p是模型估计的概率,y=1为真实标签。

Figure 6 Workflow of defect detection图6 缺陷检测的工作流程

2.2 MobileNetV2网络

随着神经网络层数的加深,其模型训练的时间也相应加长,这是模型训练的最大缺点。本文利用MobileNetV2的思想对ResNet50进行加速和压缩。MobileNetV2将1个标准的卷积操作分解为1个深度卷积操作和1个点卷积操作。通过卷积核的巧妙分解来加速运算,显著减少了计算量和网络参数。本文将ResNet50中标准3×3的卷积层替换为区域1中的3×3的卷积层和1×1的卷积层,再经过BN和ReLU激活函数来更充分地挖掘缺陷的相关特征,拟合训练数据。如图5所示。

Figure 5 MobileNetV2 structure图5 MobileNetV2结构

图5中虚线框区域1表示ResNet50中替换后的标准卷积操作,虚线框区域2表示MobileNetV2的结构。

2.3 缺陷检测流程

缺陷检测工作流程如图6所示[8],包括数据处理、模型训练和实验测试(Test)3个过程。其中,Training模块表示模型训练过程;Validation表示验证过程,从采集的主板图像中选择可能包含缺陷的感兴趣区域(ROI)建立数据集。这些ROI被切割成256×256像素的缺陷图像,使用LabeImg 标记缺陷元件在主板中的位置,最后得到所需数据集。所有缺陷图像已标记并按照7∶2∶1的比例分为训练集、验证集和测试集。训练集完成后,测试数据集用于评估模型的性能。

3 实验和结果分析

3.1 实验数据集

破损、撞件、空焊和塌陷是主板中常见的缺陷类别,这4种缺陷的特征如表1所示。

Table 1 Defect characteristics表1 缺陷特征

我们在手机生产车间搜集的数据集下使用不同的参数设置,对检测模型进行了训练和测试。对于实验,我们从该车间数据集中选择了3 597幅图像,筛选出含有4类缺陷的图像。为了解决深度学习中数据稀疏的问题,选取1 000幅主板缺陷图像用于构建训练集,部分缺陷图像的采集参数如表2所示,其中拍摄角度顺时针旋转;拍摄距离是指相机到主板的拍摄距离;Width是指图像缺陷区域的宽度;Height是指图像缺陷区域的高度。

对这些数据在拍摄角度、拍摄距离、对比度变换、旋转、平移、裁剪、翻转和亮度变换等方面做出多种变换,以形成更多的训练数据。 每个数据集的示例图像如图7和表3所示。

Table 2 Collection parameters of some detective images表2 部分缺陷图像的采集参数

Figure 7 Defective component图7 缺陷元件

Table 3 Details of defective components in Figure 7表3 图7中缺陷元件的数据信息

表3中,damage(xmin、ymin、xmax、ymax)和size(width、height、depth)表示图7中0000001.jpg图像中缺陷元件的位置和该图像的形状。

本文采集了3 597幅图像作为训练集,每一幅图像分别含有若干不同大小的破损、空焊、撞件和塌陷。每幅缺陷图像的大小在45×45~250×250,具体组成如表4所示。

Table 4 Composition of training set表4 训练集构成

首先,将3 597幅缺陷图像都转换为灰度图像。 之后,从候选子图像中裁剪像素尺寸大于1000×1000的图像。 然后通过滑动窗口从这些候选子图像中获得尺寸为256×256像素的元件图像。最后,用LabelImg软件对这些缺陷元件进行标记[23]。 每个元件对应于手机主板位置注释的可扩展标记语言(XML)文件。该数据集共有4类待检测元件。所构造的数据集中的缺陷元件的样本,以及标记的缺陷元件的示例,如图8所示。

Figure 8 Several types of defective components in the constructed training set图8 构建的训练集中的几类缺陷元件

3.2 实验环境

实验平台配备8 GB内存NVIDIA GTX 1070,其能够应用于深度学习库Keras[24]Tensorflow[22]。为了更好地利用RetinaNet,对骨干网络和焦点损失进行不同设置。特别是,从Keras网站下载该模型以初始化骨干网络,包括用过的VGG和ResNet在内。由于式(1)中αt和γ的设置会影响实验结果,本文将其设置为不同值,即{(αt= 0.25,γ= 2),(αt= 0.5,γ= 2),(αt= 0.25,γ= 1)},以选择更好的模型。基于文献[8],根据不同高宽比的边界框,训练中将锚点比率设置为{1∶2,1∶1,2∶1}。特别地,Adam(Adaptive momentum)作为一种自适应动量的随机优化方法,经常用作深度学习的优化,本文将Adam用于模型训练优化[25],学习率为0.000 01,这是一个基于文献[3]的经验值。其他参数的设置与文献[3]中的相同。

3.3 实验结果

3.3.1 RetinaNet各种设置的比较

如上所述,RetinaNet的不同设置可能会对检测结果产生不同的影响。表5是设置了6种不同骨干网络的RetinaNet的检测结果。这6种模型都是基于同一数据集进行训练的。这6个模型几乎具有相同的mAP(均超过94%)。 由于RetinaNet_6比其他模型的mAP高,它将被选中进行进一步评估。 与RetinaNet_4相比,RetinaNet_5和RetinaNet_6具有不同的骨干网络,这可能对它的mAP有所贡献。 与RetinaNet_4相比,RetinaNet_5通过设置不同焦点损失中的超参数,得到了不同的mAP。

Table 5 Six configurations of RetinaNet and their corresponding mean accuracy in defect detection (mAP)表5 RetinaNet的6种配置及其对应的缺陷检测的平均值精度

3.3.2 与其他模型的比较

为了更好地评估RetinaNet的性能,本文使用Faster R-CNN、YOLO、SSD和R-FCN 4种模型进行对比实验。Faster R-CNN是两级物体检测器,它使用区域候选网络RPN[4]生成候选边界框。与Faster R-CNN不同,RetinaNet利用FPN,此外焦点损失有助于进一步解决类不平衡问题。在训练期间,Faster R-CNN的学习策略与文献[4]中的相同。YOLO是单级物体检测器,直接应用算法对输入图像进行识别和定位。与YOLO不同,RetinaNet利用了损失函数,检测效果明显提升。SSD[18]是单次多盒的物体检测器,首先,作为基础网络提取多尺度特征;其次采用多尺度特征对目标进行分类并获取包含目标的边界框。RetinaNet融合了像SSD这样的子采样层和重构层,以提高检测准确性。它的学习率为0.000 001,批次大小为18,动量因子momentum设置为0.99。训练SSD的其他参数与文献[5,13]中的相同。R-FCN和RetinaNet之间唯一的区别是损失函数。特别是,RetinaNet使用焦点损失作为损失函数。焦点损失解决了类别不平衡问题并增大了难检测的样本的权重,以提高检测精度[8]。

为了更好地评估RetinaNet的性能,本文使用Faster R-CNN、YOLO、SSD和R-FCN 4种模型进行对比实验。Faster R-FCN、YOLO和SSD主要用于评估缺陷元件的多尺度特征,以进行分类和边界框回归。 6个模型在整个数据集上进行训练,实验结果如表6所示。由表6可看出,RetinaNet在mAP方面实现最佳。改进的RetinaNet(MobileNetV2)在检测精度和速度方面都优于Faster R-CNN。RetinaNet(MobileNetV2)检测速度低于YOLO和SSD,但比RetinaNet(ResNet50)模型的mAP高4.98%,单幅图像检测快了0.003 s。综上所述,RetinaNet(MobileNetV2)是一种有效的主板缺陷检测模型。

通过比较R-FCN、Faster-RCNN和SSD,很容易得出检测语义多尺度特征的mAP大大改善的结论。因为与SSD和Faster RCNN相比,R-FCN提取了缺陷特征以对缺陷元件进行分类和边界框回归。与R-FCN相比,RetinaNet实现了更高的mAP。由于R-FCN和RetinaNet之间的区别是焦点损失,可以推断,局部损失对mAP的贡献约为1.35%。这可能是焦点损失解决类别不平衡和难易检测样本对损失贡献的关键。

3.3.3 2种RetinaNet模型的比较

为验证加入MobileNetV2的RetinaNet目标检测模型对训练的加速和压缩有一定程度的提高,本文在自制的缺陷数据集上对2种RetinaNet模型RetinaNet_6(RetinaNet(ResNet101))和RetinaNet_7(RetinaNet(MobileNetV2))进行了训练和测试, 结果如表7所示。表7中,AP(L)、AP(M)、AP(S)分别表示大、中、小目标的检测精度,AP(50)指IoU设置为0.5时目标的检测精度,AP指总的检测精度。

Table 6 mAP comparisions among six defect detection models表6 6种缺陷检测模型的mAP比较

Table 7 Comparison of detection accuracy and model parameters between two different RetinaNet models表7 2种不同RetinaNet模型参数和检测精度对比

由表7可知,对比RetinaNet(ResNet101),改进后的RetinaNet(MobileNetV2)在模型检测率上有所提高。在IoU设置为0.5时,RetinaNet(MobileNetV2)提高了0.9%,平均检测率提高2.6%。以MobileNetV2作为特征提取网络的RetinaNet多目标检测模型大大减少了模型训练的参数,模型训练时间降低了22.7%,表现出更大的优势。因此,本文提出以MobileNetV2作为特征提取网络的RetinaNet检测模型能在保证检测精度有一定提高的情况下实现模型的加速和压缩。

图9为RetinaNet(MobileNetV2)的损失函数曲线图。从图9中可以看出,3条损失曲线随着迭代次数的增加均呈下降趋势,最终,在迭代次数为70万次时,得到最好的结果。图9中显示,边框回归损失值在总损失值中所占比重较大,因此定位误差的消除仍是当前目标检测中需要继续研究的方向。

Figure 9 RetinaNet(MobileNet) loss graph图9 RetinaNet(MobileNet) loss曲线图

(1)RetinaNet(ResNet101)的缺陷检测结果。

Figure 10 Test results of RetinaNet (ResNet101)图10 RetinaNet(ResNet101)的检测结果

图10是利用RetinaNet(ResNet101)进行缺陷检测的部分结果。从图10中能够看到,训练后的模型能对待测图像进行定位和识别,但检测准确率不高且缺陷区域并未能全部检测到。例如,图10a破损检测中只检测到局部的破损区域。图10b空焊检测中,左下角的边界框属于误检区域,实际上该区域不存在缺陷。图10c撞件和塌陷检测中,漏检了椭圆形区域的塌陷,同时误检了damage 0.742缺陷边界框所在区域的撞件。

缺陷检测的关键是要精准定位出目标的边界回归框,因此可将IoU作为评价目标边界回归框定位是否精准的一个指标。IoU是2个矩形框产生的重叠区域与这2个矩形框并集的比值。矩形框A、B重叠度的度量值IoU=(A∩B)/(A∪B)。记录图10中检测率较高的缺陷类别的各个边界回归框的坐标,计算IoU值,结果如表8所示。

Table 8 IoU values corresponding to various types of defects in Figure 10表8 图10中各类缺陷对应的IoU值

表8中,打标坐标为手动标注的缺陷边框坐标,检测坐标为RetinaNet_6定位出的边界回归框坐标。IoU值越大,检测算法定位出的边界框与手动标注的缺陷边框越接近,定位准确度越高。对应误检区域,选取边界框包围的缺陷区域的最大面积的坐标值,没有检测到的缺陷区域坐标取0。由图10和表8可知,RetinaNet(ResNet101)训练出的模型定位精度差,只能识别部分缺陷。

113幅待测图像的各类缺陷的个数和相应的检测率统计结果如图11所示。

Figure 11 Statistics of defect detection results using RetinaNet_6图11 RetinaNet_6缺陷检测结果统计

从图11可以看出,该训练好的模型可以检测出部分缺陷,但对撞件和空焊的检测结果较差,误检率和漏检率都很高,整体检测率不能达到高于95%的要求。待测图像中缺陷部位的大小普遍在45×45~250×250内,该检测区域小,RetinaNet(ResNet101)的识别准确率和定位精度偏低。本文对RetinaNet(ResNet101)的结构做了改进,用MobileNetV2代替ResNet101作为骨干网络,使训练出来的模型能够进一步提升对较小的缺陷部位的识别准确率和定位精度,以满足实际要求。

(2)RetinaNet(MobileNetV2)的缺陷检测结果。

图12为改进后的RetinaNet对待测图像的检测结果。

Figure 12 Test results of RetinaNet (MobileNetV2)图12 RetinaNet(MobileNetV2)的检测结果

从图12中可以看到,改进后的网络模型对待测图像能正确检测出4类缺陷。记录图12中检测率较高的缺陷类别的各个边界回归框的坐标,计算IoU值,结果如表9所示。

Table 9 IoU values corresponding to various types of defects in Figure 12表9 图12中各类缺陷对应的IoU值

从表9中可以看出,IoU值提高很多。改进后的网络模型对4种缺陷都能进行准确的识别和精准定位,同时定位精度也大大提高。利用改进后的网络模型对113幅待测图像进行检测,统计各类缺陷的个数和相应准确率,结果如图13所示。

Figure 13 Statistics of defect detection results using RetinaNet_7图13 RetinaNet_7缺陷检测结果统计

由图13可知,改进后的网络模型误检率和漏检率大大降低,大幅提升了对破损、空焊、撞件的识别准确率,缺陷检测的准确率达到95%以上,且不同类别的缺陷都能进行精准定位,提高了算法的泛化能力。

4 讨论

如前所示,RetinaNet_7在多类别缺陷图像检测中实现了最佳mAP(超过95%),这得益于特征金字塔网络、MobileNetV2和焦点损失的共同作用。但是,还有许多因素会影响缺陷检测的性能,例如图像分辨率、拍摄角度、光照、形变、缺陷元件大小和破损位置,本文只探讨了RetinaNet的结构改进和参数设置。其他有影响检测目标的因素,也会影响缺陷部位的检测结果。另外,我们发现预处理也会对检测结果产生一定的影响,如主板图像被转换为8字节的灰度图像,这可能会降低缺陷部位的检测性能。

5 结束语

本文采用基于RetinaNet的目标检测器来解决主板缺陷检测中的多类别缺陷元件的检测问题。 RetinaNet使用特征金字塔网络(FPN)提取缺陷元件的多尺度特征分类和位置,然后引入MobileNetV2以压缩和加速RetinaNet模型,再使用焦点损失进一步解决类不平衡和训练期间难以检测样本对损失贡献程度不同的问题。实验结果表明:(1)即使在多类别缺陷图像中,RetinaNet也可以获得mAP>95%的检测精度;(2)与其他目标检测器相比,RetinaNet在复杂背景下具有最佳表现。

目前仍在探索更好的获取缺陷部位的方法,并根据新数据集做进一步评估。下一步我们将继续分析其他因素对缺陷元件检测性能的影响,未来的工作将集中在主板边缘元件密集部位微小缺陷的检测。

猜你喜欢

检测器元件损失
承压类特种设备受压元件壁厚测定问题的探讨
胖胖损失了多少元
玉米抽穗前倒伏怎么办?怎么减少损失?
基于二次否定剪切选择的入侵检测方法*
中核北方核燃料元件有限公司
车道微波车辆检测器的应用
一种柱状金属物质量检测器的研究
口腔综合治疗台水路回吸检测器的研制与应用
QFN元件的返工指南
菜烧好了应该尽量马上吃