基于深度学习的电子元件焊点缺陷检测方法
文章来源:SMT技术网
摘要:提出一种用于训练掩模区域卷积神经网络(Mask R-CNN)的半自动生成焊点图像掩模的方法。由于传统的通过人工标注获取掩模的方法费时费力,提出了一种简便快捷的基于GrabCut获取图像掩模的方法。该方法由两个阶段组成,第一阶段为基于GrabCut的焊点图像分割,输出像素级分割结果,从而获得所输入图像掩模。第二阶段实现基于Mask R-CNN的焊点表面缺陷检测方法,可以实现对缺陷的定位、分类和分割。实验结果证实了该方法的有效性,在保证Mask R-CNN方法检测精度的前提下,能快速简单地获取训练Mask R-CNN所需的焊点掩模。
关键词:缺陷检测;深度学习;焊点检测;卷积神经网络
1 引言
电路板上电子元件的安装缺陷往往会影响产品的功能,降低产品的经济价值。因此在电子元件的制造过程中,基于机器视觉的缺陷检测技术得到广泛应用。随着深度学习技术的兴起,越来越多的基于卷积神经网络的新技术被加入到机器视觉检测中。
近年来,业界开展了大量关于元件检测的研究。相关检测方法可分为传统的图像处理法、机器学习法和深度学习法[1]。传统的图像处理法使用小波变换[2]、傅里叶变换[3]和模板匹配等。而机器学习法一般先提取元件的灰度、颜色和几何特征,然后将特征输入到分类器进行分类检测。常用的机器学习分类器支持向量机[4]和各类传统的神经网络(自组织映射[5]、学习矢量量化[6]等)。深度学习法被大量运用在图像识别和物体检测方面。黄汉成等[7]基于深度学习的方法对指针等元件进行了缺陷的识别研究。郑建聪等[8]提出了一种基于特征点的管材表面缺陷视觉检测方法,实现了管材表面的主要缺陷类别的检测任务。CAI[9]提出了用一个级联卷积神经网络进行焊点图像兴趣区域的自适应学习,而后将结果输入到2个卷积神经网络中获得测试结果。
更加先进的对象检测方法有快速区域卷积神经网络(Fast R-CNN)[10]和实例分割方法MaskR-CNN[11])。Mask R-CNN在对象实例分类方面取得了很好的效果,WU等人[12]提出了一种基于Mask R-CNN的元件缺陷检测方法。所提出的Mask R-CNN包含3个不同任务的分支,即边界框回归定位分支、边界框类别分支以及分割分支,分别完成对元件的定位、分类和分割等任务。该框架所采用的区域提案网络能够精准地分割出目标缺陷。
但是,在使用上述基于Mask R-CNN的元件检测方法进行训练时,传统的获取掩模(Mask)的方法都是使用人工操作来勾勒目标轮廓,所以对训练所需的目标图像Mask进行标记和获取费时费力,因此本文提出了一种简单快速的半自动生成Mask 的方法来训练Mask R-CNN,利用GrabCut所输出的Mask来训练Mask R-CNN,然后使用训练好的模型对样本进行测试。
2 系统整体流程及构成
将电子元件焊接安装在PCB上,可能会产生的常见缺陷如下:错件、元件偏移、立碑、缺件。错件是指将元件安装到不匹配的位置上;元件偏移是指元件在水平面的焊接区域产生了移动或者是旋转;立碑表示元件在高度方向分离,从而没有与焊接区域保持接触;缺件是指元件在焊接区域的缺失。这几类缺陷与无缺陷元件的对比如图1所示。
图1 电子元件的几类典型缺陷
本文提出的用于电子元件检测的半自动Mask生成方法包括两部分:Mask分割模块和Mask R-CNN分类模块。该方法的流程如图2所示。原始图像通过自动光学检测[4]获取,大小为200×100×3像素。首先,将原始图像转换为224×224×3像素,便于后续实验处理;之后用GrabCut[13]方法对原始输入图像进行分割,然后将其转换为Mask;分类模块使用Mask R-CNN方法对带有标签信息和Mask的原始图像进行定位、分类和分割。
图2 用于电子元件检测的半自动Mask生成方法的流程
2.1 Mask分割模块
GrabCut算法是迭代的GraphCut算法[14],GrabCut算法的分割过程如图3所示。为了使交互更加简单,GrabCut算法进一步将交互操作简化为指定一个环绕目标的矩形框,从而有效地减少了交互工作量。GraphCut模型的核心思想是构造一个能量函数,然后通过加权图映射和网络流理论的应用,将标签问题的全局优化解转化为相应的最大流/最小分割问题,GrabCut在这一部分和GraphCut相同,但GrabCut以红绿蓝三通道的混合高斯模型(GMM)取代灰度直方图模型,然后迭代最大流算法以达到最优化分割。
图3 GrabCut算法的分割过程
若在RGB空间,图像由n个像素点mn,由数组α={α1,…,αN}表示图像的分割。GrabCut使用2个GMM,一个对应背景,另一个对应前景。每个GMM由k个高斯模型混合而成 (通常k=5),每个像素由对应的参数kn(kn∈{1,...,k})来表示该像素属于GMM的哪个部分。GrabCut算法将用于来分割的Gibbs能量改写为式 (1):
其中,E为Gibbs能量,V为平滑部分,U为数据部分。
平滑部分V可用RBG空间的欧几里德距离求出。
其中,Z为图像灰度值,V为经验确定的参数(通常取为50),β为与图像对比度有关的参数。
数据部分U定义为:
其中
其中,P为高斯概率分布,π为混合权重系数,参数0可表示为
均值μ(a, k)和方差Ʃ(α,k)是用传统的方法在集合F(k)中求得的样本均值和方差,权重
(6)
整个GrabCut算法由初始化、迭代最小化和用户修正几个部分组成。
2.2 Mask R-CNN分类模块
分类模块在得到Mask R-CNN训练所需的Mask后,利用Mask R-CNN方法对原始图像进行定位、分类和分割。该方法能有效地检测图像中的目标,并能产生高质量的实例分割结果。与单一检测相比,它是一项更加精细的目标检测任务。同时,由于该模型在训练过程中提供了像素级的标注,并且对目标对象和背景进行了更多的信息分类,因此该算法的结果可以得到有效的改善。
Mask R-CNN是基于Faster R-CNN5的改进,首先它使用区域提议网络(RPN)来提议感兴趣的区域。然后提取被提议的感兴趣区域的特征,并将它们处理成3个分支,一个用于分类,一个用于边界框回归定位,另一个用于分割。
3 试验设计
本文对所提出的方法在PCB电子元件[16]焊点图像上进行了评估,首先描述了数据集和试验装置,然后给出使用GrabCut方法的分割结果,最后用比较的方法给出了Mask R-CNN的分类结果。
3.1 试验设置
电子元件焊点图像数据集是使用自动光字检测收备从工厂收集的,所有元件的焊点图像都经过评估,并标有区域和类别。数据集包括60个训练样本和28个测试样本,这些元件图像尺寸为200×100像素,这样的数据集制备方式与之前的研究[17]保持一不致。对于本次的分割比方,所有样本都有自己的标签图像(Masks),标签图像是大小与原始图像相同的图像。如图 2(c)所示,图像中黑色部分的像素值为0,表砂背景区域,中心有色部分表示电子元件对象。
在使用Python3.6的PyCharm和Tensorflow深度学习平台上米用GPU开发了试验系统。对于Mask R-CNN的训练,在Microsoft COCO数据集上初始化开训练网给。然后利用迁移学习方法,使用Microsoft COCO数据集上的学习信息来提高电于元件数据集的准确性。首先,将 MaskR-CNN的初始层以0.0001的学习率训练10个训练周期,然后对所有层以0.00001的学习率训练30个训练周期。
为了评估本文提出的电子元件检测方法的性能,使用平均精度(mAP)[18]以及用于测量检测结果(DT)与真实度(GT)之间重叠比的交并比(IoU)指标作为度量标准,将loU定义为:
(7)
3.2 GrabCut的性能
使用GrabCut执行分割任务,首先需要手动框选目标区域,算法会自动分割出可能的目标区域,之后进行少量的用户交互,即指定一些像素属于目标,切割后的图片将是去除背景的彩色图片。去除背景后的目标区域图片需要转换成黑白灰色图像,在图像处理上更方便将其制作为图像Mask。具体过程如下。
用PyCharm运行GrabCut算法时,会弹出1个交互界面,按照说明在交互界面中处理图像。首先需要手动框选图像中的目标区域,算法将根据框选中的区域自动分割出可能的目标区域。若分割效果不佳,会出现目标区域未分割出或误将背景分割为目标区域的情况,即可进入后续的交互操作。用线简单标注,标出目标区域或背景,再执行分割算法,就可以达到半自动分割目标区域的目的。根据最小能量法,该算法分割出近似目标区域的像素点,实现交互式GrabCut。由于增加了人工干预,其比全自动分割更准确。标记5类电子元件的具有代表性的图像,并提供基于GrabCut的元件分割方法的操作,只需要简单的框选和标注目标区域就可以得到所需的Mask,最终得到的Mask结果如图4 (d)所示。
为了评估基于GrabCut的元件分割结果的性能,将本文提出的方法与其他传统的分割方法包括大律法(Otsu)[19]阈值和完全卷积网络(FCN)[20]方法进行比较。元件区域是目标对象区域,这些样品由安装在PCB上的不同类型的元件组成。不同方法分割的效果对比如图5所示。
从图5(b)中可以看到,Otsu阈值方法对元件分割的效果不佳。由于焊盘区域存在亮斑,Otsu方法在分割过程中始终会突出显示这些区域。当电子元件在焊盘区域中掺杂了许多高光像素(分割后的白色像素)时,使用Otsu方法会使分割任务失败。
FCN方法和本文提出的GrabCut方法对大多数样本的分割有相对接近的效果。但是,FCN还需要首先使用带标签的元件图像进行训练,以获得如图5(c)所示的分割效果,而GrabCut仅要求使用者简单地绘制一条线和其他操作,即可对元件部分进行分割,其分割结果如图5(d)所不。因此,GrabCut方法是获取图像Mask最简单、最方便的方法。
图4 基于GrabCut的元件分割方法的操作过程
图5 不同方法分割的效果对比
更多使用GrabCut算法进行试验的分割结果如图6所示。这些实验中使用的数据集来自“BigBIRD:Big Berkeley”实例识别数据集[21]。在图6(a)中,目标对象图像来自不同的视角,并且某些对象与背景区域重叠。在图6 (b)中,由GrabCut算法分割的目标对象是正确的,并且对象边缘保持一致和平滑。实验结果表明,本文提出的方法能够准确分割图像的目标对象。分割目标的二值化结果如图6(c)所示。可以看到,目标对象的形状和轮廓基本上是正确分割的,但对象边缘附近仍有一些噪声像素。其主要原因是使用与图4相同的粗线标注方法对对象进行分割,因此很难获得非常准确的目标对象分割结果,今后会考虑添加更多标签来删除这些噪声点。
图6 使用GrabCut算法进行试验的分割结果
3.3 分类性能
为了定量评价基于Mask R-CNN的分类方法的性能,本文还将其与传统旳分尖万法进什比较,包括支持向量机、主要成分分析和随机森林集成学习,并采用Mask R-CNN方法进行上述相关研究。
(1)特征焊料(Eginsoder)[22]:这是一种基于主要成分分析的经典方法,包括特征值提取、选择和分类。
(2)支持向量机[4]:这是一个线性分类模型,其基本模型是一个线性分类器,其最大区间在特征空间中定义。
(3)集成学习[21]:基于随机森林算法,对从元件中提取的几何和颜色特征进行分类。
(4)便用LabelMe的Mask R-CNN[11]:首先用LabelMe标记图像,然后训练Mask R-CNN获取模型,并对样本进行测试。
(5)本文提出的方法:首先使用GrabCut方法对图像进行标记和分割,然后训练Mask R-CNN得到模型,并对样本进行测试。
分别根据上述方法进行了5组元件检测试验。不同方法的识别精度和目标检测结果比较如表1所示。试验结果证明,本文提出的方法不仅获得了文献[11,23]中所用的Mask R-CNN方法的最高精度,而且分割的平均精度(mAP)指标的平均值也高达98.5%,可能是因为文献中使用的注释图像是人为强制注释的结果(使用LabelMc标签软件),而本文所提出的方法是一种交互式标记方法,它结合了图像本身的特点和人工标记操作,从而可以获得更好的分割结果。
表1 不同方法的识别精度和目标检测结果比较
4 结论
本文提出了一种半自动生成图像Mask以训练基于图形切割的MaskR-CNN方法。该方法基于GrabCut半自动生成图像Mask,相对于传统的LabelMe掩模分割方法,可以更高效地获取图像掩模,用以训练Mask R-CNN。
基于GrabCut的半自动掩模获取方法不仅能够快速轻松地获得训练Mask R-CNN所需的Mask,还可以确保 Mask R-CNN定位、分类和分割的性能。在电子元件上进行的掩模分割试验结果验证了该方法的有效性。该方法可应用于自动光学检测设备,并可轻松扩展到训练期间需要图像注释的其他领域。
作者:刘玉龙1,2 吕权权1,2 吴浩1.2 单建化1,2
1、特种重载机器人安徽省重点实验室,2、安徽工业大学机械工程学院 安徽马鞍山243032
版权声明:
《一步步新技术》网站的一切内容及解释权皆归《一步步新技术》杂志社版权所有,转载请注明出处!
《一步步新技术》杂志社。