基于机器视觉的芯片引脚缺陷检测与分拣系统

2023-07-25 07:29王建冲高军伟
仪表技术与传感器 2023年6期
关键词:二值萤火虫坐标系

王建冲,高军伟

(1.青岛大学自动化学院,山东青岛 266071;2.山东省工业控制技术重点实验室,山东青岛 266071)

0 引言

SOP芯片作为电子元器件之一,具有产量大、种类多、尺寸微小等特点。在SOP芯片生产过程中,常需要对引脚进行缺陷检测,判断芯片是否符合生产标准,包括引脚断裂、倾斜、数目缺失等,这些质量问题会直接影响电路产品的质量。传统工业多采用人工检测方法,这种方法效率低、实时性差,无法满足大批量、高精度的检测要求。随着机器视觉和图像处理技术的发展,利用机器视觉技术对SOP芯片引脚进行缺陷检测,不仅检测精度高、速度快,还能避免在实际检测中与芯片接触,保证了芯片的质量[1-3]。为了满足工业自动化的需求,必须对检测后的芯片进行分拣,传统机械臂多采取固定点抓取,当被测目标位置发生变化时,可能会导致抓取失败,而机器视觉作为机械臂重要的感知技术之一,可以帮助机械臂获取到工作范围内任意目标的位置[4]。文中基于MATLAB和Arduino软件平台,搭配三自由度机械臂完成SOP芯片的引脚缺陷检测与分拣。实验数据表明,该系统具有良好的检测和抓取精度。

1 系统总体设计

系统主要由计算机、相机、光源、机械臂和传动带组成,完成芯片的引脚缺陷检测和抓取工作。首先MATLAB对1号相机采集到的图像进行预处理,然后采用Blob分析与萤火虫神经网络相结合完成芯片引脚的缺陷检测,检测完成后传送带将芯片传送到2号相机视野内,求取芯片形心坐标并转换化为机械臂可以识别的坐标,再通过运动学逆解计算出步进电机的转动角度,转化成步进值后通过串口发送给Arduino,由Arduino控制机械臂运动,完成芯片的分拣工作。系统总体流程如图1所示。

图1 系统总体流程框图

2 图像预处理

2.1 芯片倾斜校正

由于芯片每次放置的角度都不一样,为了不影响后续的检测,在图像经过灰度化、增强处理后采用Radon变换[5]校正倾斜图像。Radon变换公式如式(1)所示,图像校正前后对比如图2所示。

(a)校正前

(b)校正后图2 图像倾斜校正对比

(1)

式中:g(θ,s)为变换后得到的一维函数;θ为旋转角度;s为旋转后的直线距离;z(x,y)为校正前图像某一点(x,y)的灰度值;δ为函数,在xcosθ+ysinθ=s处值为无限大,其他位置为0。

2.2 改进的Canny边缘检测

SOP芯片的引脚存在“海鸥”型特征,即引脚存在倾斜度,当LED光源前向照明时,引脚弯折处会与背景混淆,如图3直线指向所示。此时采用传统Canny检测会导致分割出来的边缘不连续,如图4所示。

图3 弯折处阴影

图4 传统Canny分割

为了解决上述问题,在Canny边缘检测中采用双边滤波代替传统的高斯滤波、采用OTSU算法代替传统的人为设定阈值,通过增强算法的自适应性来提高边缘检测的效果;最后采用Hough变换连接引脚边缘。

双边滤波相比于高斯滤波会考虑到某点像素值邻近关系和亮度上的相似性,从而在去除噪声的同时使边缘信息更加完整[6]。双边滤波公式如式(2)所示。

(2)

式中:f(k,l)为输入图像一点;g(i,j)为输出图像一点;S(i,j)为以(i,j)为中心的范围;w(i,j,k,l)为加权值,包含定义域核d和值域核r,如式(3)、式(4)所示。

(3)

(4)

式中:i、j为中心点像素位置;k、l为邻域点像素位置;f(i,j)为中心点灰度值;f(k,l)为邻域点灰度值;σd为定义域标准差;σr为值域标准差。

OTSU算法是按灰度特性将图像分成背景和前景两部分,对一幅含有L个灰度级的图像M×N,将在0~(L-1)范围内计算最大方差,从而把背景和前景区分开[7]。在一幅图像中,每个灰度值对应的像素值为ni,某点像素i出现的概率为Pi,如式(5)所示。

(5)

假定阈值x(x∈[0,L-1])将图像分成了前景w0(w0∈[0,x])和背景w1(w1∈[x+1,L-1],那么某一点在w0、w1上的概率如式(6)、式(7)所示。

(6)

(7)

整幅图像和前景w0、背景w1的平均灰度值如式(8)~式(10)所示。

(8)

(9)

(10)

则由上式就可以求出最大类间方差δ2,如式(11)所示。

δ2=Pw0(x)[h0(x)-h(x)]2+Pw1(x)[h1(x)-h(x)]2

(11)

Hough变换[8]可利用图像的全局特性将目标的边缘像素连接起来变成一个封闭区域。Hough边缘连接简化后的步骤如下:

(1)Hough变换将ρθ参数空间划分为累加单元,使用ρ轴和θ轴的单位细分将每个点映射到ρθ平面上。

(2)对像素高度集中的区域检验其累加单元的数量。

(3)分析选中单元中各个像素之间的联系,将不连续像素之间的距离作为基础,如果缝隙的长度比设定阈值小,与给定单元相关联的一条直线中的缝隙就会被连接起来。

通过上述步骤后,对分割出来的图像进行填充、滤波后便可以得到完整的引脚二值图像。传统算法和改进后算法分割图像如图5所示。

(a)传统算法

(b)改进后算法图5 引脚分割对比

3 芯片引脚缺陷检测设计

3.1 Blob分析

Blob分析是指对二值图像中具有相同的像素而且位置相邻的像素点组成的封闭区域进行分析,从而进一步获取这些区域的数目、位置等[9]。对预处理得到的引脚二值图像进行Blob分析后得到引脚的数目,从而检测芯片引脚是否缺失。

3.2 萤火虫BP神经网络

3.2.1 设计理念

设计神经网络的目的是将训练好的神经网络对引脚的二值图像进行识别和分类。由于芯片引脚缺失由Blob分析进行检测,所以将引脚的特征分为3类:合格、倾斜、断裂。将芯片的每个引脚进行归一化处理制作成24×14型标准模板,自建部分模板库如图6所示(依次为合格、倾斜、断裂)。将模板图片进行数字化,白色区域数字化成1,黑色区域数字化0。将每一个引脚图片数字化后的0、1数据保存在固定矩阵中,作为神经网络训练的输入。所以核心思想是利用训练好的神经网络来对引脚二值图像数字化后的0、1数据进行分类,从而检测芯片引脚是否倾斜和断裂。

图6 自建部分引脚模板库

3.2.2 萤火虫优化设计

BP神经网络可以将输入和输出产生映射关系,从而达到分类的效果,但是BP神经网络有时易陷入局部最小值而且分类精度达不到系统的要求[10],所以该文利用萤火虫算法(FA)来对BP神经网络进行优化。

萤火虫优化原理是把空间中的各点看成萤火虫,利用发光弱的萤火虫会被发光强的萤火虫所吸引这一特点,在弱光萤火虫向强光萤火虫移动的过程中完成位置的迭代,从而找到最优位置[11],具体优化步骤如下:

(1)初始化参数。设置萤火虫数目大小M,最大迭代次数ε及其他参数值。

(2)萤火虫位置初始化。一个萤火虫个体包含BP神经网络的一种权值与阈值,萤火虫个体的维度如式(12)所示。

k=k1k2+k2+k2k3+k3

(12)

式中:k1、k2、k3分别为BP神经网络的输入层、隐含层、输出层节点数。

由BP神经网络的误差来计算萤火虫的目标函数值作为个体最大荧光亮度I0,由I0得到萤火虫的相对亮度I,如式(13)所示。再按照亮度对I0进行排序得到萤火虫相对吸引度βij,如式(14)所示。

I=I0e-γrij

(13)

(14)

式中:β0为最大吸引度;γ为光吸收系数;rij为萤火虫i与j之间的距离,如式(15)所示。

(15)

式中:xik,xjk为i,j2个萤火虫的k维度权值与阈值;D为数据维度。

(3)根据相对亮度I判断萤火虫位置是否发生变化,并更新其位置xi(t+1),如式(16)所示。

xi(t+1)=xi(t)+βij[xj(t)-xi(t)]+α(rand-1/2)

(16)

式中:xi(t),xj(t)为萤火虫i和j位于空间中的位置;α为步长因子,介于[0,1]之间;rand为随机因子,介于[0,1]之间。

(4)根据式(13)~式(14)计算新的I和βij,并将绝对发光强度最小的个体当作新一轮移动前绝对发光强度最大的个体,再根据式(15)、式(16)开始新一轮迭代,这样使所有萤火虫个体都聚集在亮度最高的位置上,从而实现最优。

(5)到达最大迭代次数ε后,停止迭代,取绝对亮度最大的萤火虫个体的权值与阈值代入BP神经网络中进行训练,以生成最佳的FA-BP神经网络模型。

4 芯片抓取设计

4.1 芯片形心定位

系统完成芯片的引脚缺陷检测后,传送带开始向左传动,当芯片进入2号相机视野时,传送带停止传动,完成芯片形心坐标的提取。

在一幅M×N二值图像中,假如白色区域为目标区域,黑色区域表示非目标区域,则目标区域的形心坐标计算公式如式(17)所示。

(17)

对芯片图像进行处理后,得到芯片封装处的二值图像,根据公式便可以计算出二值图像中芯片的像素形心坐标,测试2次不同位置的芯片像素形心标记如图7所示。

(a)芯片A

(b)芯片B图7 芯片形心标记图

4.2 坐标转换

由形心公式求出来的坐标为芯片的像素坐标,并不能作为最终抓取坐标,还需要将像素坐标转化为机械臂可以识别的坐标。这一过程涉及到4个坐标系,分别是像素坐标系O0-uv、图像坐标系O-xy、相机坐标系Oc-XcYcZc和世界坐标系Ow-XwYwZw,如图8所示。

图8 坐标系示意图

若要机械臂末端到达芯片的正上方,还需要将相机与机械臂运动产生联系,关键步骤是手眼标定,基于系统的搭建情况采用眼在手外的标定方式[12]。

机械臂手眼标定目的是求得3个参数:机械臂基坐标系到末端的位姿矩阵A、像素到相机的内参矩阵B、相机到机械臂末端的手眼矩阵X。位姿矩阵A通过运动学正解求出,相机内参矩阵B通过相机标定求出,X矩阵可通过AX=XB模型求解出,该模型求解主要有Navy算法和Tsai两步法,由于Tsai两步法求解更快,因此采用此方法来求解X矩阵[13]。通过4个坐标系的转换关系和手眼标定得到的转换矩阵便可以将像素坐标(u,v)转化为机械臂可以识别的坐标(Px,Py,Pz),如式(18)所示。

(18)

式中:Sc为相机深度值;R3×3、T3×1分别为手眼矩阵X中的旋转矩阵和平移矩阵;K3×3为相机内参矩阵。

4.3 机械臂控制部分

4.3.1 机械臂运动学分析

该系统采用三自由度机械臂完成分拣工作,如图9所示。腰部的3个步进电机分别控制机械臂底座水平运动、大臂前后运动、小臂上下运动,机械臂末端安装了吸盘,通过气泵和电磁阀控制实现吸盘对芯片的抓取和放置。系统搭建图如图10所示。

图9 三自由度机械臂结构图

图10 系统搭建图

若要机械臂成功抓取芯片,需对该机械臂进行正逆运动学分析,于是对该系统三自由度机械臂建立了连杆坐标系,如图11所示。

图11 机械臂连杆坐标系

然后根据表1中的机械臂连杆参数采用标准D-H参数法建立机械臂运动学模型[14]。

表1 机械臂连杆参数表

(19)

(20)

(21)

式中:aij、bij为常数项,i=1,2,3。

令等式(21)两边矩阵元素对应相等,结果如式(22)所示。

(22)

式(22)求解结果如式(23)所示。

(23)

因此,已知机械臂需要抓取的芯片位置(Px,Py,Pz),便可以通过式(23)求解出机械臂到达芯片正上方每一个连杆需要转动的角度。

4.3.2 机械臂运动控制

机械臂运动部分采用核心控制器Arduino和MATLAB之间的相互通信来完成。Arduino程序控制部分采用C语言编写,使用易于操作,具有过电流保护的A4988模块驱动步进电机,有全步、1/2、1/4、1/8、1/16多种步进模式选择[15]。为了保证机械臂的运动精度,该系统采用1/16步进模式,并搭配步进电机自身10∶1的减速比,在这种模式下步进电机转动一圈则需要32 000个脉冲,即每个脉冲会驱动步进电机运动0.011 25°。MATLAB对缺陷检测后的芯片进行目标定位,并通过式(23)计算出每个连杆需要转动的角度,再根据公式stepi=θi/0.011 25°转化为每个步进电机的步进值,通过串口通信发送到Arduino,控制机械臂完成抓取。

5 系统测试与分析

实验选取了合格、倾斜、断裂引脚模板图片各50张作为一个数据集,将这些图片进行归一化后作为神经网络的输入P,定义萤火虫数目为M=50,最大迭代次数ε=50,最大吸引度β0=0.2,光吸收系数γ=1,步长因子α=0.25,将萤火虫优化后得到的最优权值和阈值代入神经网络,设置双隐含层节点为[10,3],学习速率为0.1、训练目标为0.005进行训练,数据集期望输出如表2所示。将BP神经网络与FA-BP神经网络进行对比训练,数据集训练曲线如图12、图13所示。

表2 数据集期望输出

图12 BP网络训练误差曲线图

图13 FA-BP网络训练误差曲线图

由图12、图13可以看出,BP神经网络精度为1.666 7,在迭代4次后停止迭代,出现了局部最优;FA-BP神经网络精度为0.774 9×10-4,迭代5次后便达到了最优值。由此可知,萤火虫优化神经网络是有效的,FA-BP神经网络可以进一步寻找最优解,训练效率更好,可有效解决BP神经网络陷入局部最优等问题。

将优化好的神经网络保存,结合Blob分析对引脚进行缺陷检测,检测流程如图14所示,对芯片引脚断裂(图15(d)中7号和16号引脚)检测的数据进行优化,优化前后数据对比如表3所示。

图14 引脚缺陷检测流程图

表3 优化前后分类数据对比

通过Blob分析与萤火虫神经网络相结合对200个芯片进行缺陷检测测试,取具有代表性的引脚二值图像,如图15所示。

(a)合格

(b)缺失

(c)倾斜

(d)断裂图15 引脚二值图像

最后对机械臂抓取进行测试,其中10个目标芯片的实验测试数据如表4所示,图16为末端执行器抓取一个芯片从传送带到放置区域的过程。

图16 单个芯片分拣过程

表4 机械臂控制实验数据

从表3数据可以看出,经过萤火虫优化后,神经网络对引脚缺陷类型的分类精度有所提升,解决了BP神经网络的分类精度达不到系统要求的问题,提高了SOP芯片引脚缺陷检测的成功率;从图16和表4可以看出,设计搭建的芯片分拣系统对任意放置的芯片都能够很好的实现定位和分拣功能。

6 结束语

文中提出了一种SOP芯片引脚缺陷检测与分拣的方法,由实验数据可知系统易于操作,自动化程度高,达到了高精度、实时性的要求,提高了工业中SOP芯片缺陷检测和分拣的效率,具有一定的参考意义。

猜你喜欢
二值萤火虫坐标系
混沌伪随机二值序列的性能分析方法研究综述
支持CNN与LSTM的二值权重神经网络芯片
基于二值形态学算子的轨道图像分割新算法
萤火虫
解密坐标系中的平移变换
坐标系背后的故事
萤火虫
基于重心坐标系的平面几何证明的探讨
基于曲率局部二值模式的深度图像手势特征提取
抱抱就不哭了