1. 引言
PCB (Printed Circuit Board)板又称印制线路板,是电子工业的重要部件之一 [1]。随着PCB集成度的提高,对其表面缺陷检测也提出了更高的要求 [1]。而焊点质量作为表面缺陷检测的重要内容,传统人工目检的方法已然无法满足更高效率、更高精度焊点表面缺陷检测的要求,而应用机器视觉技术实现焊点表面质量的自动化检测成为目前最热门的焊点检测方法之一 [2] [3]。
随着自动光学检测(Automatic Optical Inspection, AOI)系统不断推陈出新,逐渐朝着高精度、智能化的方向发展,针对PCB板焊点质量检测的视觉方法也层出不穷。为实现焊点类型的精准检测,赵爽 [4] 提出了一种基于多特征的支持向量机二次多分类算法,成功提升了检测率;魏炽旭 [5] 等利用图像分割和矩阵计算的方法将PCB板的焊点区域缺陷进行分类再检测,进而获得最终的检测结果;文献 [6] 则根据不同颜色面积作为特征进行焊点缺陷检测统计样本,采用模式匹配的方法,提出一种阈值自适应的参数提取方法,该方法具有较高的检查率和检测速度。文献 [7] 提出了一种基于梯度向量匹配的定位方法检测焊点位置,结合卷积神经网络算法进行缺陷检测,设计了一套焊点缺陷检测系统,其检测结果优良。此外,文献 [8] [9] 也针对焊点检测问题,提出相应的解决方案并取得较好的检测结果。
本文针对某PCB板在焊接过程中焊点存在的多锡、少锡等问题,提出一种基于贝叶斯分类器的焊点缺陷自动检测方法。首先利用图像预处理获取PCB中焊点区域的基础特征信息,并根据焊点特征建立特征集,然后利用该特征集构造贝叶斯分类器,通过分类器的训练和分类最终得到该分类器的实验数据,下文对该方法进行详细论述。
2. 方案设计
PCB缺陷自动检测系统硬件部分主要由工业相机、镜头、光源等构成。根据PCB样本尺寸及焊点区域的大小,选用500万像素的CMOS工业相机,配合25 mm的变焦镜头。由于焊点表面呈弧形,对光源的反射散度较大,因此选用聚光效果优良的碗状光源,能够使相机获取足够的光源。
焊点检测算法主要包括特征提取和分类器构建两部分,具体算法流程如图1所示。图像预处理主要有滤波和图像增强,可以有效去除噪音等影响,为后续处理提供更高质量的图像。将预处理后的图像进行分割,得到易提取特征信息的分割图像,然后提取二维特征参数集,通过该参数集完成分类器的构建以及训练,最终根据分类器结果判断待测PCB焊点样本是否合格。

Figure 1. Flow chart of defect detection algorithm
图1. 缺陷检测算法流程图
3. 图像预处理
通过相机获取的标准焊点区域灰度图如图2所示,图像在采集过程中由于环境的影响,存在噪声、模糊等干扰因素,因此需要通过图像增强、滤波等图像预处理,提高图像质量。其中,直方图均衡化是图像增强中最常用的方法之一,通过将图像中的像素级出现的概率均匀化,从而增强其对比度。

Figure 2. Gray scale image diagram of solder joint area
图2. 焊点区域灰度图像示意图
常用的滤波算法有中值滤波、均值滤波、高斯滤波等。通过对该类图像进行测试对比,最终发现均值滤波后的图像在后续处理中具有很好的效果。因此,在预处理中采用均值滤波算法。
4. 图像分割
图像分割是获取图像特征的常用方法之一。常用的图像分割方法主要有基于特征的分割方法、基于边缘的分割方法、基于阈值的分割方法三大类。由于标准焊点成像均匀、过渡明显,因此利用阈值分割能达到最优化分割,但由于锡焊的不稳定和光照环境的影响,若直接设定固定阈值进行分割,其效果不稳定,易产生过分割,因此需要一种适应光照的自适应阈值分割方法。
最大类间方差法 [10] [11] [12] (OTUS)是一种自适应的阈值分割方法,通过背景和前景的像素值的比例关系确定出合适的分割阈值,能有效的去除光照的影响,保证分割的结果稳定。其分割效果如图3所示,焊点顶部的高亮区域和周围的暗色区域分割效果符合实际情况。
(a)
(b)
(c)
Figure 3. Gray scale and segmentation. (a) Granular solder; (b) Standard solder; (c) Excess solder
图3. 灰度图与分割图。(a) 少锡;(b) 标准;(c) 多锡
经阈值分割后,由于边缘存在毛刺、孤立点等影响因素。利用形态学腐蚀运算,可以有效去除杂色、孤立点,效果如图4所示,其得到的分割结果更为完整。
(a)
(b)
(c)
Figure 4. Binarization segmentation diagram and corrosion diagram. (a) Granular solder; (b) Standard solder; (c) Excess solder
图4. 二值化分割图与腐蚀图。(a) 少锡;(b) 标准;(c) 多锡
5. 朴素贝叶斯分类器
贝叶斯分类器(Bayesian Classifier)是各种分类器中分类错误概率最小或者在预先给定代价的情况下平均风险最小的分类器 [13] [14]。通过计算给定对象的先验概率,利用贝叶斯公式计算出其后验概率,即得到其属于某一类别的概率,选择具有最大概率的类别作为该对象所属的类。由于基于贝叶斯公式估计后验概率难以从有限的训练样本直接估计得到,提出一种“属性独立”假设:即针对已知类别,假设其属性相互独立,在该假设下的贝叶斯原理称为朴素贝叶斯原理 [15]。基于上述假设,朴素贝叶斯公式为:
(1)
其中,
表示在条件x下分属c类的概率;
表示条件属性概率;
、
则表示类先验概率。
由式(1)可知,构建朴素贝叶斯分类器需首先获得类先验概率以及条件属性概率,并提取相应的各条件特征参数,最后进行样本参数统计。
5.1. 特征提取
根据上述图像分割结果,确定PCB焊点质量特征信息,通过先验知识建立缺陷不良品和标准合格品的分类特征参数集,主要特征参数如下:
1) 覆盖率
。如图5所示其焊点顶部高亮区域以及周围存在的未填充的空焊区域与所在焊点整体区域面积的比值,即
,其中,S表示面积。通过该值可以判断其焊点区域填充是否饱和;
(a)
(b)
(c)
Figure 5. Threshold segmentation diagram. (a) Granular solder; (b) Standard solder; (c) Excess solder
图5. 阈值分割图。(a) 少锡;(b) 标准;(c) 多锡
2) 纵横比
。中间存在的光滑连续(或半连续)高亮区域,形状为近似椭圆长条状,周围为暗色区域,通过高亮填充区域的纵向与横向的比值来判断其填充是否过度饱和,其表达式为:
(2)
其中,∆x、∆y分别表示纵向和横向长度。
3) 重心坐标
,通过拟合高亮轮廓,得到其重心的位置坐标,通过位置偏移情况来确定是否存在少锡;
4) 轮廓数N,根据拟合的轮廓数得出其焊点区域的填充情况,如图6所示,将零散的干扰区域去除后,提取焊点轮廓。通过轮廓数判断出该焊点是否少焊。
(a)
(b)
(c)
Figure 6. Contour extraction diagram. (a) Granular solder; (b) Standard solder; (c) Excess solder
图6. 轮廓提取图。(a) 少锡;(b) 标准;(c) 多锡
5.2. 构建分类器
根据上述焊点区域图像分割得到的特征参数信息 [16],建立焊点的特征参数数据集。如表1所示为部分焊点数据。其中,焊点类型中少锡、多锡均属于不良品;训练集大小为500,测试集大小为500;焊点的ROI区域是像素值为310 × 455 的矩形;轮廓属性为离散属性,其特征表述为单轮廓(N = 1)和多轮廓(N > 1);当存在多个轮廓时,其轮廓数表示为多轮廓,且以最大轮廓为主轮廓提取覆盖率
、纵横比
和重心坐标
。

Table 1. Given the characteristics of the solder joint type under the statistical table
表1. 已知焊点类型下的特征统计表
根据表1的特征统计表,构建该焊点的表面质量贝叶斯分类器的训练集D。首先需要获取该分类器的类先验概率,其表达式为:
(3)
其中,
表示类别,Q表示可能的类别数,这里的分类类别为合格和不良。
然后需要获取上述不同特征的条件概率,其中轮廓数属于离散属性,其条件概率由于离散化而采用估计法进行统计表达,因此其表达可估计为:
(4)
而重心坐标、覆盖率、纵横比等属性特征为连续属性,因此基于高斯分布得到其条件概率为:
(5)
根据上述各属性的条件概率计算公式,结合式(1)得到其最终的所属类别的概率,即:
(6)
由式(6)得到焊点分别在合格条件下和缺陷条件下的贝叶斯计算结果,根据其值的大小来判断所属类别。当该差值大于一个数量级时,认定为分类成功。如表2中编号1的样本,其属于合格品的概率为0.057,属于不良品的概率为2.1 × 10−5,即其分类结果为合格。
根据上述计算方法结合特征统计表,构建出合格–不良分类器,该分类器的各特征条件概率及分类结果如表2所示,其中c表示合格条件,
表示不良条件。

Table 2. Classifier classification results
表2. 分类器分类结果
由上述表2可知,在各属性特征的条件概率支撑下,获得了每个焊点的不同类别下的分类概率,其中大部分分类结果都具有明显的数量级差,如1号焊点属于合格的概率为0.057,而其属于不良的概率仅为2.1 × 10−5,即表示该焊点的分类结果为合格,并且分类准确;但是也有分类所属差别不大,容易产生分类误差的分类结果,如497号焊点。通过统计表2的全部分类结果,并根据先验知识判断可得该分类器在其训练样本中的检测准确率为99.6%,同时,在测试样本中的检测准确率为93.4%。
为进一步得到该算法的适用性以及算法效果,本文通过几种主流的焊点检测算法进行对比试验,得到的实验结果如表3所示。

Table 3. Comparison of detection results of different algorithms
表3. 不同算法检测结果对比
由表3的对比结果可知,本文算法在检测率方面高于部分基本检测方法,如基于连通域的检测方法和基于轮廓的检测方法,但是略低于SVM的分类方法,而从检测效率来看,该方法略低于基于轮廓的检测方法,而高于其余两种方法。综合分析可得该方法能够实现焊点的缺陷分类检测,具有较高的检测率以及检测效率,符合预期要求。
6. 结语
本文针对PCB在焊接过程中存在的多焊、少焊等表面质量问题,提出一种基于朴素贝叶斯分类器的焊点表面缺陷自动检测方法。结合自适应图像分割算法和特征提取,构建了该类焊点的朴素贝叶斯分类器,并利用训练样本和测试样本分别进行了测试,经实验验证,该方法能准确对该类缺陷进行分类,具备实现焊点表面缺陷检测的可行性。
基金项目
国家自然科学基金资助项目(61572185);湖南省教育厅重点资助项目(19A170);湖南科技大学博士科研启动基金资助项目(E57110)。