APP下载

基于深度学习的机器人电路板自主故障检测系统

2022-03-03袁廷翼邓百川邹文峰

电工电能新技术 2022年2期
关键词:锚框电路板卷积

黄 威, 袁廷翼, 邓百川, 邹文峰, 张 锋, 曹 晖

(1.广东省惠州供电局, 广东 惠州 516003; 2.西安交通大学电气工程学院, 陕西 西安 710049)

1 引言

机器人在生产制造以及使用过程中,由于电路板出现故障而发生失控或者损坏的情况很多,因此电路板的故障检测是保障机器人在使用过程中正常工作的关键[1]。印刷电路板作为电子设计过程中的基本组成部分,经过多年的演进已经发展成为一个非常复杂的组件。电路板的表面缺陷很大程度上反映了电路板的质量[2],因此检测电路板的表面缺陷非常重要。早期使用人工目力检测的方法,具有检测效率低,人工成本高,不确定因素多,检测信息不易整合等特点[3]。在线仪器检测方法存在测试点设置困难、测试夹具制造成本高、调试时间长等缺点,难以满足现代工业生产和质量检测的需要[4]。这些方法对传感器等硬件依赖较大,并且存在检测效率低、误检率高的问题。自动光学检测系统(Automated Optical Inspection,AOI)比人工检测方便快捷,AOI通过分析处理电路板的基准图像信息,控制传感器的光学成像设备对待检测板以光学扫描的方式提取出带检测板的轮廓以及色彩信息。根据对比算法将待检板与样板进行分析判断,实现信息过滤以及缺陷分类,最终将分析得到的故障信息反馈给用户[5],但其误检率均高于人工检测。电路板自主故障检测有几处难点:首先,实际市场上有很多不同的电路板,不同的电路板有不同的复杂布线设计规则。作为通用的制造算法,很难兼容各种电路板,传统的电路板缺陷检测方法不稳定。其次,电路板缺陷的类型和特点一般是多种多样的。最后,行业内大量电路板缺陷样本采集难度很大,导致没有办法训练复杂度较高的模型。基于深度学习的缺陷检测方法是实现精准调控和智能工厂的有效手段,安全可靠,可在多种环境下长时间运行[6]。与人工目检和在线仪器检测方法相比,基于深度学习的检测方法不仅可以有效克服人工目检和在线仪器检测的弊端,还可以提高生产和质检效率。随着深度学习图像检测技术的发展,特别是在特征提取和端到端检测方面,深度学习网络能够准确、快速地从图像中识别目标,具有很强的鲁棒性。因此,基于深度学习的自动化缺陷检测技术在电路板缺陷检测领域的应用日渐增多[7]。

深度卷积网络随着卷积层的加深,目标的整体结构特征越来越明显,但细粒度特征逐渐消失。对于电路板缺陷检测,整体结构信息有利于识别缺陷类别,细粒度特征可以更好地定位小缺陷。因此,基于深度学习的电路板缺陷检测有几个难点:第一个问题是如何设计合理的锚框。电路板缺陷图像不同于开源数据集中的常见图像。缺陷只占电路板图像的一小部分。因此,如何设计合适的锚固框架自然成为一个挑战。第二,如何通过重新设计更快的基于区域的卷积神经网络(Region-based Convolutional Neural Networks, R-CNN)架构来集成多尺度特征图。从根本上说,细小缺陷检测的主要挑战是细小缺陷的分辨率在前向传播过程中会逐渐减小,直到在骨干网的前向计算中由于其特性而消失。因此,需要根据电路板缺陷的微观尺度和不规则形状重新设计网络的架构。

综上所述,针对电路板故障缺陷的特点,本文提出了基于深度学习的机器人电路板自主故障缺陷检测系统。该网络首先以压缩-激发网络(Squeeze-and-Excitation Networks, SENet)作为骨干网络,通过多尺度的卷积结合注意力机制提取出输入图像的特征信息,将提取到的特征输入区域提议网络生成感兴趣区域,再通过感兴趣区域对齐层提取固定尺寸的特征图,然后通过全连接层进行缺陷的分类预测以及检测框的回归预测,最后通过级联神经网络提升检测框的回归和分类的精度,从而实现缺陷的精确检测。本文提出的方法能够对印制电路板的缺失孔、鼠标咬伤、开路、短路、杂散和伪铜等缺陷进行有效地故障检测。通过实验的定量结果表明:本文的方法在公开的电路板缺陷检测测试集上在交并比取值从0.5到0.95下的AP值达到55.7%,交并比取值为0.5时AP值达到99.4%,满足电路板缺陷检测的实际检测需求,且该方法具有较好的移植性,可以很好地移植到类似缺陷检测的场景。

2 电路板故障检测原理

当下比较主流的电路板故障检测方法根据其检测原理可以大致分为参考法和非参考法。

2.1 基于参考法的电路板缺陷检测方法

参考方法是通过识别标准电路板图像像素到像素(或特征到特征)与测试的电路板图像之间的差异进行的。此类方法可以检测明显的缺陷,例如短路、开路。图像减法是最简单最直接的参考,用异或逻辑算子逼近。减法速度很快,因为只能比较两种类型的像素值。这种方法的优点是很容易在电路板中实现,并且可以验证电路板几何形状的整体缺陷[8]。最简单直接的方法是使用异或计算方法计算待测电路板图像对应的像素与标准图像之间的逻辑关系[9]。参考法的一般流程如下:

(1)待检测样板的检测图像提取。

(2)根据缺陷特征进行图像预处理,包括图形形态学滤波、图像光学处理、图像裁切等。

(3)缺陷定位,即与标准样本图像进行对齐以及位置校准。

(4)故障检测。采用颜色或灰度以及边缘轮廓信息对样板以及待检板进行特征提取,对比差异确定故障置信度、故障区域以及故障类别。

这些方法可以检测明显的缺陷,如短路、开路。这种方法检测简单,但由于需要将参考图像与检测图像准确对齐,对于电路板检测比较难以实现。由于从生产环境中获取的电路板图像,可能会有对齐错位,颜色和亮度的差异等问题,所以这种方法是比较难以应用的。

另一种是基于特征匹配算法[10],通过特征提取算子从整幅图像中提取鲁棒性更好的特征。提取的特征通常包括特定区域的轮廓信息、几何信息以及纹理信息。

2.2 基于非参考法的电路板缺陷检测方法

电路板的缺陷检测本质上是目标检测的任务,可以分为两类:一类基于锚框的两阶段方法,主要是更快的基于区域的卷积神经网络(Faster Region-based Convolutional Neural Networks, Faster R-CNN)[11]系列算法等,这类算法是基于区域提议网络先生成候选框,再对候选框进行类别区别和更加精确的回归;另一类是直接得到目标位置和类别的一阶段方法,例如YOLO[12]、单发多盒探测器(Single Shot multibox Detector, SSD)[13]、基于区域的全卷积网络(Region-based Fully Convolutional Networks, R-FCN)[14]等。一阶段算法速度比二阶段更快,但是精度会更低一些。然而,这些传统的卷积神经网络(Convolutional Neural Networks,CNN)方法通常使用滑动窗口[15]来对缺陷进行局部化,当输入图像的大小和尺度不同时,很难确定窗口的大小,因此,上述方法难以在电路板缺陷检测中得到广泛应用。文献[16]在Faster R-CNN的基础上提出电路板微小缺陷检测网络(Tiny Defect Detection Network, TDD-Net),使用卷积残差网络-101[17]作为主干网络,通过特征金字塔网络进行特征融合[18],设计针对电路板缺陷的锚框尺寸,达到98 %以上的准确度。U形全卷积网络[19]在特征金字塔网络的基础上对网络结构进行更精细化的设计,使算法更为高效,完全可以作为特征金字塔的替代方案使用。

由于电路板故障检测任务对检测速度要求不高,本文提出方法是基于区域的卷积神经网络算法[20]构建的电路板缺陷检测方法,属于非参考法中的二阶段算法。

Faster R-CNN网络结构通过区域提议网络能够得到更少且更为有效的提议区域,使得目标检测的精度更高。图1为该算法的区域提议网络结构。

图1 区域提议网络结构Fig.1 Structure of region proposal network

图1为区域提议网络的结构图,网络首先通过任一卷积骨干网络对输出图像进行特征提取,将提取到的特征结合预置的锚框尺寸进行锚框的生成,通过对特征以及损失函数来学习每一个锚框是否包含物体的概率以及锚框的位置参数,最后通过非极大值抑制算法对重叠冗余的锚框进行过滤筛选。图像的损失函数定义如下所示:

(1)

(2)

对于检测框的回归,位置向量包括以下几个部分:

(1)预测值

(2)真实值

式中,tx为对锚框的横坐标偏移量;x为预测中心的横坐标;xa为锚框中心的横坐标;wa为锚框宽度;ty为对锚框的纵坐标偏移量;y为预测中心的纵坐标;ya为锚框中心的纵坐标;ha为锚框高度;tw为对预测框宽度的偏移量;w为预测框的宽度;th为对预测框高度的偏移量;h为预测框的高度。带*为真实值,只需要把网络预测的x,y,w,h替换为真实标签中的x*,y*,w*,h*即可。

图2为最终的R-CNN网络模型结构图,该网络首先将输入图像通过卷积神经网络进行特征提取,提取到的特征先通过区域提议网络得到初步的建议检测框,将建议检测框以及提取的特征通过池化层转化为固定大小的特征图,最后通过全连接层学习更加精确的故障类别以及位置信息。这里将兴趣区域池化层替换成了兴趣区域对齐层(Region Of Interest Align, ROI Align),解决了兴趣区域池化由于取整而产生的检测误差。该算法将网络输入区域提议出的建议框通过对齐的池化方法转化为固定大小的特征图。

图2 R-CNN网络模型结构Fig.2 Structure of R-CNN network

本文以R-CNN的网络框架作为本文算法的基本框架,以解决当前的目标检测问题,在给定输入图像的情况下,网络可以在每个位置同时输出目标边界和类标签分数。

3 基于R-CNN的多尺度级联神经网络

3.1 骨干网络SENet

SE模块通过对特征图进行全局平均池化压缩各个特征图的信息,再通过前馈网络学习全局信息,得到各个特征图的权重,最后与原始特征图进行点乘得到最终特征。这种注意力机制可以增强主要信息并抑制次要信息,从而提高网络的准确性和收敛速度。

该结构包括压缩和激发两个运算,可以适用于任何映射。首先是压缩的操作过程。由于卷积只在局部空间进行了操作,这对于网络中的前层来说更为严重,因为感受野相对较小。下面是该结构压缩运算的过程:

(3)

式中,zc为压缩运算的输出;Fsq为压缩函数;uc为第c个特征图。可以看出压缩运算过程通过一个全局平均池化的操作对特征图的位置信息进行压缩,得到一个全局的信息。

下面是激发的运算过程。这个运算需要满足函数空间足够学习到其非线性关系且学习到的关系不应该互斥。综上所述,算法采用了sigmoid形式的门控机制:

s=Fexz,W=σgz,W=σ[W2δ(W1z)]

(4)

最后用网络得到的每个通道的权重乘以原始特征,得到带权的特征层输出:

(5)

SENet的注意力模块可以很好地嵌入到各种已有的网络模型中,图4展示了残差卷积网络(Residual convolutional Network, ResNet)的应用案例。

图4 SENet在ResNet上的加载应用图解Fig.4 Loading application diagram of SENet on ResNet

本文采用的骨干网络是基于卷积残差网络构建的SENet-154(层数)网络结构。

3.2 锚框设计和数据增强

电路板缺陷图像不同于开源数据集中的常见图像,电路板图像采用工业相机采集,分辨率一般较高,对于微小缺陷,必须设计合理的锚框。因此本文在设计区域提议网络时,针对细小的缺陷,网络每次生成五种尺寸的{4,8,16,32,64},同时生成三个长宽比的锚框{0.5,1,2}。

另一方面,由于深度学习算法模型复杂度较高,模型训练往往需要一定数量级的训练数据。由于电路设计的保密性和昂贵价值,很难获取到大量具有良好标注信息的电路板故障检测数据集。因此,为了避免模型过拟合的问题,本文通过数据增强技术对训练数据集进行拓展,以提升模型的训练效果。

本文提出的模型采用的数据增强技术包括:调整图像对比度和亮度、增加随机噪声、随机旋转、随机翻转、随机缩放和裁剪。在旋转、裁剪和移动图像时,边界框的相应值也要进行相应的变换。具体数据增强策略如下:

(1)对输入图片以0.5的概率进行随机角度的旋转和水平垂直翻转。

(2)对输入图片叠加一定高斯噪声并进行随机亮度、对比度的扰动。

(3)对图像尺寸进行随机尺寸的放缩变换的多尺度训练,放缩过程保持图像长宽比不变,长边放缩尺寸为[608,640,800,1 024,1 408]。

3.3 多尺度特征融合

深度卷积网络在前向推理过程中通过下采样会得到多尺度的特征图,不同深度和尺度的特征对应的语义信息尺度也不一样。在骨干网的前馈计算中,小目标在分辨率较低的特征图上的占比会逐渐降低,导致检测的效果变差。因此,本文的模型采用特征金字塔结构[21],通过纵向的特征连接将高层的语义信息与低层的细粒度高的信息进行融合,使得最后的特征在结构和语义上都有较好的信息保留。

通过多尺度特征融合后,再将区域提议网络生成的不同尺度感兴趣区域根据公式分配给对应的金字塔层次的阶段,特征金字塔的层次{Pk}由下式计算:

(6)

式中,归一化因数224是标准的ImageNet的预训练大小;k为最终得到的层次数;k0为目标级别。多尺度特征融合结构示意图如图5所示。

图5 多尺度特征融合结构示意图Fig.5 Multi scale feature structure

自下而上的途径是骨干卷积网络的前馈计算,它组成了一个由七种尺度的特征图组成的特征层次,缩放步长为2。通常有许多层产生相同大小的输出图,这些层处于同一网络阶段。对于特征金字塔,本文为每个阶段定义一个金字塔层。本文选择每个阶段最后一层的输出作为特征图参考集,将充实这些特征图来创建特征金字塔。

具体来说,对于SENet,本文使用每个阶段的最后一个残差块所输出的特征激活。把这些最后的残差块的输出表示为{C2, C3, C4, C5},代表conv2、conv3、conv4和conv5的输出,并注意它们相对于输入图像的跨度为{4, 8, 16, 32}像素。

3.4 级联神经网络

二阶段的缺陷检测算法一般需要设置训练正负样本的比例,选择正负样本的方法是基于候选框和真值之间的交并比比例。而不同质量的检测框通过不同的阈值得到不同的训练效果,高质量的检测帧往往配合更高的阈值来获得更好的结果。通过级联网络,可以对不同阶段的网络设置不同的交并比阈值,使级联的网络每一级都有更高质量的输入,逐步提高网络输出的准确性。通过实验[22]发现:

(1)越高的选取阈值可以得到准确度较高的候选框,但如果一开始就设定较高的阈值网络无法得到足够的正样本。

(2)训练后网络对输入的建议框有优化作用。

4 数据集与评测指标

4.1 数据集

本文的模型是基于北京大学发布的印刷电路板(Printed Circuit Board, PCB)瑕疵数据集[16]进行训练和验证的,该数据集总的图形数量为1 386,其中包含6种缺陷,分别是缺失孔、鼠标咬伤、开路、短路、杂散、伪铜。可以用于检测、分类和配准任务。

该数据集共包含693张电路板缺陷图像及其缺陷类型标注文件,每个图像的平均像素大小是2 777×2 138。

故障具体分布情况见表1。从标签来看,总共6个类别,如果加上背景类,总共7个类别。各类别之间的框数量相对较平均,不需要调整默认的损失函数。平均每张图的框数量在4张左右,属于比较稀疏的检测,所以本文使用默认的最大检测框数量。

表1 故障分布情况Tab.1 Failure distribution

图6为标注检测框的长宽比,可以看到数据集中大部分长宽比在1.0左右,但也有部分在0.5~1之间,少部分在1.25~2.0之间。虽说锚框会进行回归得到更加准确的锚框,但是一开始给定一个相对靠近的锚框宽高比会让回归更加轻松。所以本文使用锚框的长宽比配置为[0.5,1,2]。

图6 数据集的长宽比分布Fig.6 Aspect ratio distribution of data sets

图7为真实框在原图的大小比例,可以看到大部分框只占到了原图的0.1 %,甚至更小,说明数据集中检测的缺陷基本都是很小的目标,通过显示原图中标注的缺陷框也可以直接体现出这个现象。所以在初始的锚框尺寸设计时可以把尺寸调小。

4.2 评价指标

在目标检测中,检测目标用检测框进行框选和分类[23]。这里采用交并比对检测框进行定位精度的评价,交并比(Intersection over Union, IoU)定义了两个检测框的重叠程度,交并比计算式为:

(7)

式中,G为故障点位置的真值;P为模型的预测值。

COCO是微软团队提供的一个可以用来进行图像识别的数据集。本文采用COCO中使用的检测评估指标,如图8所示。

图8 COCO竞赛目标检测评估指标Fig.8 Evaluation index of COCO competition target detection

在COCO竞赛中AP50或者AP@0.5指的是当设置IoU为0.5时的平均准确率。AP75是严格模式的测量。APsmall,APmedium,APlarge分别对应面积area<322,322962的目标分别测试的值。mAP@[0.5∶0.95]指标是指在交并比取值从0.5到0.95下的平均准确率。

5 实验和结果分析

本文模型的训练过程中每个批次包含2个图像且每个图像生成512个感兴趣区域。训练参数配置如下:

迭代轮数设置为12个epoch,采用Momentum优化器,学习率配置为0.001 25,并在40 000次和45 000次迭代时进行0.1的学习率衰减,权重衰减系数为0.000 1,动量配置为0.9,采用L2正则化,正则化因子为1e-4。

在印刷电路板缺陷数据集上比较了本文的方法和部分较新技术方法的实验效果,结果见表2。

表2 实验结果对比Tab.2 Comparison of experiment results

图9为级联网络在级联前后的网络的回归误差变化曲线,其中曲线为损失的均值,横坐标为放缩到0~1的训练迭代次数,纵坐标为网络的回归损失。由图9可以看出级联之后检测框的回归误差在均值和方差上都有明显下降,说明级联神经网络对检测框的回归精度有很大提升。图10展示了最终训练模型的实验评估结果,最终输出mAP@[0.5∶0.95]=0.557,mAP@[0.5]=0.994。

图9 级联网络的检测框回归误差变化Fig.9 Change of detection frame regression error in cascaded networks

图10 COCO评估指标结果Fig.10 COCO evaluation index results

本文的实验结果如图11所示,分别展示了整体的故障检测效果和局部放大的检测效果,可以看到故障的分类置信度都很高,基本可以达到0.95以上,故障区域的定位精度都相当高,且能对多种故障都有较高的召回率。可以看出本文设计的网络结构可以在较高的置信度下完成故障类型的识别,并标注精确地框选出故障位置。

图11 电路板缺陷检测实验结果展示Fig.11 Experimental results display of PCB defect detection

综合以上实验结果可以得出,本文提出的算法可以较好地解决电路板缺陷检测遇到的一些挑战,如训练样本小、缺陷尺寸小、缺陷种类复杂等问题。且最后达到的精度和实际效果都比较高。

6 模型压缩以及部署

本文提出的模型是基于PaddlePaddle飞桨框架进行搭建的,可以通过飞桨支持的模型蒸馏、剪枝以及量化等操作对模型进行模型体积以及运算量的压缩,以提升模型的精度和运算效率。该模型支持部署到多平台,可以通过PaddleLite等模型部署库部署到移动端(手机),或者通过PaddleInference库部署到服务器端,实现工业的电路板故障检测,因此本文提出的方法具有很高的便携性和可迁移性。

7 结论

本文提出了基于深度学习的机器人电路板缺陷检测系统。针对电路板缺陷检测人工成本高、漏检率高且执行效率低等问题,本文将R-CNN算法与多尺度特征金字塔和级联神经网络相结合并应用于电路板缺陷检测,同时结合数据集特征制定了相应的数据增强策略以及锚框设计方案以适应微小缺陷检测。最终通过实验证明:

(1)合理数据增强策略和锚框设计可以使网络更快地收敛并且达到更高的精度,从而更准确地定位缺陷。

(2)多尺度特征金字塔通过自上而下的特征融合使网络对微小缺陷进行定位和分类的效果提升很大。

(3)级联神经网络有效地提升了故障检测的定位精度。

最终本文的电路板缺陷检测模型最高达到了mAP(IoU=0.5∶0.95)=55.7%,mAP(IoU=0.5)=99.4%的精度。此外,该网络结构的扩展性较强,可以方便地扩展到其他微小缺陷检测的相关领域。

猜你喜欢

锚框电路板卷积
锚框策略匹配的SSD飞机遥感图像目标检测
基于GA-RoI Transformer的遥感图像任意方向目标检测
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于模糊神经网络的电路板故障诊断方法研究
结合k-均值聚类缓解行人检测正负样本不平衡问题
基于深度学习的齿轮视觉微小缺陷检测①
卷积神经网络的分析与设计
从滤波器理解卷积
智能燃气表主控电路板仿真检测技术
基于傅里叶域卷积表示的目标跟踪算法