APP下载

基于PCA和粒子群优化算法的焊点缺陷识别

2020-06-06廖坤锐陈卫兵

计算机测量与控制 2020年5期
关键词:焊点特征值权值

廖坤锐, 陈卫兵, 杨 雪

(湖南工业大学 计算机学院,湖南 株洲 412000)

0 引言

随着现代电子工业的迅速发展,印刷电路板(Printed Circuit Board)逐渐以多样化、小型化、高密度的科技产品出现。同时对焊点质量检测也提出了更高的要求,焊点质量对产品的寿命、安全性等有着直接的影响。因此如何提高焊点缺陷检测的准确率,从而保证产品质量的可靠性和稳定性,具有极其重要的意义。文献[1]改进了一种图像增强算法,利用双S型函数转换并进一步推导出转换算法的实现,有效的锐化了PCB图像边缘,使边缘提取和边缘识别更简单。文献[2]采用贝叶斯算法和支持向量机对焊点进行分类,提取颜色特征以及模板匹配特征,焊点图像的识别率高,但提取特征过多造成数据冗余,加大了算法复杂度。文献[3]提出了改进的K-近邻法,利用模板匹配法对图像中的焊点进行定位,根据特征分布直方图提取焊点的特征,有效地提高了检测效率,但对非线性样本分类效果较差。文献[4]提出了一种新的基于模板匹配和坐标解耦算法相结合的焊点识别方法,利用PCB设计图焊点坐标与坐标转换参数得出待检测焊点的坐标,间接的焊点识别方法提高了识别精度。文献[5]和文献[6]采用支持向量机算法对焊点进行分类,该算法在解决小样本、非线性以及高维度问题时有其固有优点,但对大规模训练样本难以实施,当样本数目很大时将耗费大量的内存和运算时间。文献[7]和文献[8]采用的是一种按误差逆传播算法训练的多层前馈网络传统反向传播BP神经网络。前馈神经网络大多采用梯度下降法,该方法通过多次迭代,不断优化权值和阈值,因此训练过程耗时较长,且容易陷入局部极小值,无法到达全局最小,使得训练过程可能不稳定。

选取适当的图像特征提取方法和图像分类方法是基于图像处理的PCB焊点缺陷检测技术的关键所在,能否提取出有效的特征信息是焊点缺陷检测准确与否的前提条件。主成分分析是一种数学降维的方法,该算法能够将原始变量中众多具有一定关联的变量,重新组合成为一种新的相互无关的综合变量,大大的降低数据的冗余。本文在对焊点图像进行预处理的基础上经形态学操作和全局阈值分割,获取了有效的焊点边界图,对提取出来的图像特征进行特征融合,然后结合PSO算法对传统BP神经网络进行优化,并对图像焊点进行分类识别。实验结果表明,该方法具有较高的识别精确度。

1 图像预处理与特征提取

1.1 焊点图像预处理

为避免图像采集过程中因环境问题(如相机设备、灯光等)而产生的图像噪声、图像过度曝光、图像对比度清晰度不够等影响图像特征提取的情况出现,需要对图像进行大小和灰度值归一化,图像滤波,对比度增强等预处理操作。通过对图像的预处理,消除图像中的噪声以及其他无关干扰信息,从而更好的对图像特征进行提取。

首先对图像的大小归一化,统一使图像的像素值放缩为100×100唯一标准形式。对图像进行灰度值的归一化公式如下:

式中,I(i,j)和N(i,j)分别表示原图像的灰度值、变换后图像的灰度值,min和max分别表示原图像的最小灰度值、最大灰度值。

由于在图像采集、图像传输过程中存在非可控因素的影响,会引入图像噪声,为后续能更好提取图像特征需要对噪声进行消除。选用 3×3 窗口进行中值滤波,可以在保持原图形状的基础上,更好的消除了孤立点实现了对图像去噪的目的。

CCD传感器的分辨率、曝光时间等都会对目标图像造成影响。因此为了得到更为理想的目标图像,还需要利用图像增强技术对图像进一步处理,使图像与视觉响应特性相匹配,得到更好的特征和视觉效果,更加突出焊点特征。

如图1所示为图像预处理结果,图2为不同类型焊点灰度直方图。

图1 图像预处理结果

图2 不同类型焊点灰度直方图

1.2 图像分割

图像分割指的是将数字图像细分为若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程,进行图像分割能简化图像的表示形式,更方便理解和分析图像。常用的图像分割方法主要分以下几类:基于区域的分割方法、基于阈值的分割方法、基于边缘的分割方法、基于直方图的分割方法等。

阈值分割是图像分割中应用数量最多的一类,适用于分割物体与背景有较强对比的图像,将灰度大于等于阈值的像素判定为属于物体,灰度值为255表示前景,灰度值为0表示背景。多阈值分割与单阈值分割并无本质区别,只是分割技巧不同。输入图像f到输出图像g的如下变换:

其中:T为阈值;对于物体的图像元素g(i,j)=1,对于背景的图像元素g(i,j)=0。

全局阈值分割步骤如下:

1)参数设定,选择初始估计阈值T。

2)以设定阈值为标准将图像分割成两部分。一部分由灰度值大于或等于T的像素组成,另一部分由灰度值小于T的像素组成。

3)分别计算各部分所有像素的平均灰度值u1和u2以及新阈值T=(u1+u2)/2。

4)重复步骤2)~4),直到在连续的重复中,T的差异比预先设定的参数△T小为止,直到获取最优阈值。

因此,确定阈值是阈值分割算法的关键所在,一个适合的阈值可准确地将图像分割开来。在确定阈值后,可对像素点阈值的灰度值比较以及像素分割过程并行进行,直接给出图像区域的分割结果。

如图3所示为焊点边界提取结果,首先将预处理后图像转为二值图像,分割出感兴趣的区域,然后对分割结果进行形态学开操作使对象的轮廓变得光滑并消除细的突出物,之后用标记连通区域的面积,为了减少噪声的干扰,认为连通区域面积(像素个数)不足100的区域是噪声点,并将其删除(即置为背景黑色),最后再得出焊点的边界图。

图3 焊点边界图提取

1.3 图像特征提取

从图3图像分割后的结果可以看出,不同类型的焊点其形状是有差别的,故而面积、周长、矩形度也不尽相同。因此,在获得焊点边界图之后,可以在此基础上在得出焊点特征值向量I。设图像大小为N×M,则焊点的形状特征计算步骤如下:

1)焊点面积S:焊点区域的面积,即焊点所有像素点总和。

2)周长计算P: 焊点区域轮廓的长度,即焊点边界像素点之和。

其中:N表示区域边缘像素点的个数,Nx和Ny分别为水平和垂直方向像素点的个数。

其中:H是焊点目标的高度,W是焊点目标的宽度。

4)矩形度R:矩形度是图像面积区域S与其最小外接矩形面积SMER之比。

5)Hu矩:Hu矩是一种具有平移、旋转和尺度不变性的图像特征,七个不变矩由二阶和三阶中心矩的线性组合构成。

6)欧拉数O:欧拉是表示一个图像区域中的孔数H和连接部分数C的差,即E=C-H。

2 实验原理与方法

2.1 基于主成分分析的特征降维

在处理有关数字图像处理方面的问题时,需要提取到很多的特征值。当特征值过多时会加大计算量,造成数据冗余;而特征值过少时则会缺乏一般性,从而降低精确度。主成分分析是将原始的多个特征转化为若干个重要特征,这些特征可以呈现原始变量的众多关键信息,特征之间保持信息的独立性,减少数据冗余,简化问题处理过程,同时得到更科学可行的数据结果。

设原始变量中共有n个样本p维特征值,降维算法如下:

1)消除量纲影响和特征值大小影响,对原始变量进行如下标准化变换:

(1)

其中:

2)对标准阵Z求相关系数矩阵:

(2)

3)求解矩阵R的特征值λ1≥λ2≥…≥λp≥0及其相应的特征向量。

5)对m个主成分进行综合评价,求前m个主成分融合后的表达式:

(3)

式中,aip为初始变量矩阵第i个特征值所对应的p维特征向量,(X1,X2,…Xp)T为p维初始输入变量。

2.2 粒子群优化BP神经网络

BP神经网络是由误差逆向传播算法训练的多层前馈神经网络。采用梯度下降法持续调节神经网络的权值和阈值,使实际输出值与期望网络输出值之间的平均误差偏差最小。

如图4所示为BP神经网络结构图,可知BP神经网络结构图由输入层、隐含层和输出层组成。

图4 BP神经网络结构图

经预处理后的特征信息进入神经网络输入层时,神经网络缺陷分类训练过程开始,其训练结果经输出层输出。当输出层结果不满足预期时,开始误差反向传播过程。误差结果将会由隐含层向输入层进行反向传递,并摊派给各层单元,从而得到各层的误差信号,并以此作为调整个单元权值的根据。对各层权值反复进行调整,使得误差沿梯度方向下降,在不断的训练学习后,可以得到与最小误差相对应的权值和阈值。此时神经网络可根据最小误差对类似缺陷样本进行识别分类。

BP神经网络是当前广泛应用的神经网络模型,其有着自适应、自主学习能力强,计算量小的优点。由于通过误差函数的负梯度方向修改权值,因此存在两方面的缺点:(1)易陷入局部极小值;(2)训练次数多导致效率低,速度慢。

针对BP神经网络算法的局限性,本文采用粒子群算法对BP神经网络权值和阈值进行优化,得到最优权值阈值。粒子群优化算法的思想是运用群体中个体之间的合作和数据共享进行寻优,该方法在函数优化、神经网络训练、模糊系统控制以及其他遗传算法等领域被广泛应用。

PSO初始化后是一群处于随机化的微粒,在不断的迭代中微粒通过追踪pbest,gbest两个极值来达到更新自己的目的,经验证精确度符合条件后即得到最优解。微粒更新速度和位置的公式如下:

vt=ωvi+c1×rand()×(pbesti-xi)+

c2×rand()×(gbesti-xi)

(4)

xi=xi+vi

(5)

式中,i=1,2,…,N,N是此群粒子的总数。ω称为惯性因子,动态ω能获得更好的寻优结果;vi;xi是粒子的当前位置;rand()产生0到1间的随机数;c1和c2为学习因子,在进化迭代过程中,须根据实际需要为vi和xi指定范围。

(6)

其中:ωmax、ωmin分别为最大和最小的惯性因子,η为当前迭代数,ηmax为最大迭代数。

PSO算法优化BP神经网络流程图如图5所示。

图5 PSO-BP优化算法

1)BP神经网络的权值阈值初始化,设置粒子群参数(群体规模为N),包括随机位置和迭代速度等。

2)评价每个微粒的适应度;

3)对每个微粒,将其适应值与pbest对比,若当前适应度优于pbest,则更新pbest;

4)对每个微粒,将其适应值与gbest对比,若当前适应度优于gbest,则更新gbest;

5)根据公式(4)、(5)调整微粒速度和位置;

6)迭代次数加1,检查精确度是否符合条件或达到最大迭代次数,未达到结束条件则转步骤2);

7)使用步骤6)输出的权值阈值训练BP神经网络。

3 实验结果与分析

3.1 实验平台

本算法是基于Windows 7平台上开发软件MATLAB 2018b实现的。提取生产线上分拣的PCB电路板样本集特征,经PCA降维后输入PSO-BP神经网络中训练和测试。

3.2 实验结果与分析

为了证实所设计的PSO-BP神经网络分类器的可行性,实验以某PCB电路板为研究对象,选取不同类型的焊点图片总计218张,将其中100个样本作为训练集,剩余118个样本作为测试集。

3.2.1 基于PCA的特征降维

表1表2为不同类型焊点所对应的焊点面积、焊点周长、伸长度、矩形度、欧拉数、7个不变特征矩等12个特征计算结果。

表1 焊点几何特征计算结果

表2 焊点Hu矩特征计算结果

经主成分分析进行特征值融合后的焊点主成分分析表如表3所示。不难看出,前5个主成分累计贡献率已达到86.6%,已基本包括全部特征值信息,可利用公式求得前5个主成分的融合特征值。

3.2.2 基于PSO-BP神经网络的焊点缺陷识别

使用融合后的特征值作为PSO-BP神经网络的输入,输出为焊点的分类结果。BP神经网络输入节点数为5,激励函数选用sigmoid函数,为提高训练效率,设置输出层节点数为2,正常、多锡、少锡、漏焊四种不同类型的焊点输出分别用[0,0]、[0,1]、[1,0]、[1,1]表示。将提取出来的100组特征向量逐一添加到BP神经网络分类器中进行分类训练,设置最大迭代次数为1 000,训练终止误差为0.001。如表4所示为测试的结果,实验结果表明,本研究方法可以比较准确地检测出PCB焊点缺陷,准确率达到了93.22%。

表3 主成分贡献率和贡献累计率

表4 缺陷分类结果

分别建立BP神经网络和优化后的PSO-BP神经网络分类模型,通过测试样本集验证模型的性能验证本文算法的有效性。从表5可以看出,相较于传统BP神经网络,PSO-BP在运行速度和准确率上都有很大提升。

表5 BP和PSO-BP分类算法实验结果比较

4 结语

PCB焊点不仅仅会影响产品的寿命和稳定,更给消费者的生命财产安全带来了挑战。为解决PCB检测质量的问题,本文提出一种基于PCA和粒子群优化算法的焊点缺陷识别方法,使用PCA对提取的焊点特征进行降维融合,结合PSO算法和BP网络神经提出一种新的焊点缺陷识别方法。实验结果表明,该方法能正确的识别缺陷焊点,优化BP神经网络算法减少了训练的时间,并且获得了较高的整体准确率,该检测方法能够满足工业生产中高速度高精度的要求。

猜你喜欢

焊点特征值权值
一种融合时间权值和用户行为序列的电影推荐模型
CWELD焊点类型有限元结构刚度分析
兼顾鲁棒性的多目标焊点自适应优化方法*
单圈图关联矩阵的特征值
汽车外观焊点品质要求和控制方法
汽车白车身焊接强度检测
伴随矩阵的性质及在解题中的应用
求矩阵特征值的一个简单方法
财务风险跟踪评价方法初探
基于洪泛查询的最短路径算法在智能交通系统中的应用