李 飞,冯开勇,苑玮琦
沈阳工业大学 信息科学与工程学院,沈阳110870
电脑键盘上的线路板不同于刚性PCB电路板,具有可折叠和易变形等特点,称为柔性印刷线路板(FPC),FPC 上LED 指示灯的合格与否直接会影响一张FPC 能不能进入市场。FPC上LED的尺寸一般为2 mm×3 mm,在生产过程中,贴片粘贴焊盘的操作过程以及工作人员的操作失误等都可能造成LED 漏贴和粘偏的质量问题,由于LED的灯芯发光区域比LED区域更小,LED质量问题会导致封胶之后的LED 发光微弱或直接不发光。目前国内多数企业都是人工目测FPC上LED的缺陷,该方式效率低且容易发生漏检和误检,产品很难打入欧美日等发达国家。
经文献搜索,国内外大部分研究都是针对PCB 上LED 进行缺陷检测。林宏达教授采用灰度关联来检测LED 上环氧树脂填料圆顶表面出现的微小缺陷[1];Chung-Feng Jeffrey Kuo教授使用两级反向传播神经网络算法来检测LED 芯片上的残留物和划痕缺陷,他们都是对LED表面的纹理缺陷进行检测[2];程良伦教授采用二值投影的梯度来确定LED 的两级端面,再通过预设的中心判断LED 的偏移情况[3]。由于本文针对的贴片式LED 的有效区域是由焊盘确定,所以以上文献中的方法都不适合。2017年文献[4]对FPC上的LED进行了研究,其在硬件上使用1 280×960 像素的面阵相机结合环形白光源对LED 区域进行成像,在算法上使用模板匹配定位焊盘,采用有效区域与LED 区域的交集与差集对粘偏的LED 进行缺陷判断,算法需要对每类LED 进行预先注册获得焊盘的有效区域。但由于使用的面阵相机视野范围小,当两颗LED 的位置靠得太近又不能同时在一个相机视野内成像时,将导致大批材料中相邻较近的LED 漏检;还需要对每类LED 进行注册来获取有效区域,显得尤为麻烦。针对以上问题,本文提出一种使用线阵相机获取FPC 大图数据并检测小区域LED质量缺陷的方法。
本文设计的LED检测硬件系统如图1所示,硬件系统由机械平台和成像系统两部分组成,成像系统包括相机、镜头、光源、采集卡和编码器等设备。
图1 LED粘贴质量检测硬件系统图
系统成像设计过程如下:贴片机粘贴完贴片之后,将载有FPC材料的底板通过传送带传送至LED粘贴质量检测系统,底板接触到光电开关后停止,动力控制模块带动搭载成像设备的龙门架移动,同时相机开始成像。底板的长宽为755 mm×435 mm,最多可以放置9张FPC材料,由于各类FPC材料上LED的位置分布以及个数并不固定,本文采用分辨率为8 192 的线阵相机采集1~4 张图片。为了满足图1 中相机连续的高速采集,采用硬触发方式触发相机成像,伺服驱动器驱动电机带动龙门架移动时会发送一个帧信号触发相机准备成像,伺服电机转动一周为100 mm,通过编码器和倍频器发出个9 360 行脉冲触发信号,得到采集图像的分辨率为10.68 μm,成像一张图像的大小为8 192×70 000像素。
LED 的缺陷分为漏贴和粘偏,图2(a)为合格的LED,图2(b)为漏贴的LED,图2(c)和(d)为粘偏的LED,其贴片灯芯坐标偏离焊盘中心坐标规定的要求,粘偏示意图如图2(e)所示,即当a 超过物理距离0.20 mm(18 个像素)为上下偏移,当b 超过物理距离0.16 mm(15个像素)时为左右偏移,判断LED的缺陷质量首先需要在大图上定位到LED区域。
图2 LED缺陷类型
成像系统采集的图像大小为8 192×70 000 像素,图3(a)中截取大图中0.2%的局部区域进行显示。由于处理灰度大图的计算量会非常大,本文将灰度图像转换为二值图像,二值化公式如式(1)所示,本文采用经验阈值,Threshold 值设置为190,本文原始LED及背景区域二值化后的图像如图3(b)所示。
图3 二值化及形态学操作
二值图像中焊盘空洞最大宽度为70 个像素,如图3(c)所示,所以采用70×1 的矩形结构元对焊盘区域进行闭运算操作[5],闭运算公式如式(2)所示,处理结果如图3(d)所示。
闭运算之后焊盘存在突出物的最大像素距离为10,所以采用10×1的矩形结构元对图3(d)进行开操作,如式(3)所示,处理结果如图3(e)所示。形态学操作可以平滑焊盘的边缘,将凹陷和突出形变的焊盘形状规格统一。
二值化后的图片除焊盘之外还包括导线和硅胶帽等干扰区域,如图3(b)所示,采用区域面积和区域矩形度两个几何特征进行筛除。面积通过统计区域像素个数获得,焊盘上下区域两部分的面积在7 000 到12 000个像素范围内,所以设置筛选面积大小为7 000~12 000。
矩形度计算公式如式(4)所示,式中A 是区域的面积,S 是区域最小外接矩形的面积,本文通过矩[6]求取区域的最小外接矩形的面积。在统计学中,用矩来描述随机变量的分布形态,将矩的定义推广到m×n 大小的图片中,则把焊盘的像素值f(x,y)看成随机变量,(x,y)是随机变量的坐标,对求取的感兴趣区域(ROI)的i+j 阶矩如式(5)所示。
对于一阶矩,i 和j 有两种取值方式,即i=1,j=0或i=0,j=1,由此可以得出ROI的两个一阶矩为:
通过零阶矩和一阶矩可以求取ROI的质心,零阶矩如式(7)所示,设质心坐标为(xˉ,yˉ),质心的求取如式(8)所示。
对于图3(e)中所示的焊盘区域,求得的质心位置如图4 中红色圆点所示。将ROI 的质心转移到参考坐标系的原点,则可以求出中心矩为:
类似地,可以求出u00、u20、u02等。那么ROI的最小外接矩形的长、宽求取如式(10)中的a 和b。
图4(a)中焊盘上部分区域的面积为9 275 像素,计算该区域的最小外接矩形的长宽分别为173 像素和64像素,面积为11 072,将最小外接矩形的面积和焊盘区域的面积带入公式(4),得到其矩形度为0.844,计算图4(b)的矩形度为0.853,形态学操作之后焊盘区域的矩形度在0.8~1之间,所以设置矩形度小于0.8即可筛除大部分的非焊盘区域。
根据预处理获得的焊盘形状的共性将焊盘边缘轮廓作为定位匹配模板,对图3(e)分别使用Canny边缘检测、Sobel 边缘检测[7]和使用ZS 算法[8]细化Sobel 检测的边缘作为焊盘的边缘轮廓,Canny边缘检测算子具有去除伪边缘和响应度小等特点,Sobel 算子对二值图像的边缘检测效果好,但对于细节不明显的灰度图像会产生伪边缘,Zhang 和Suen 提出的ZS 算法在二值图像的骨架提取中应用广泛。对三种方法检测并放大90°拐角的局部边缘信息分别如图5中(a)~(c)红色框中的边缘所示。图5(a)虽然无毛刺影响,边缘平滑程度高,但丢失了焊盘边缘的真实拐角信息;图5(b)虽然保证了焊盘边缘的拐角信息,但却存在大量的毛刺突起像素点影响;图5(c)既有前两者的优点,又克服其缺点。ZS 细化边缘保证了制作模板的优点,既保证匹配的信息量也保证模板中的干扰信息少。
图4 焊盘区域的最小外接矩形
图5 焊盘边缘局部放大信息图
但是ZS 细化的焊盘边缘并非单一像素,图5(c)中ZS 细化结果使焊盘边缘在90°拐角处成非单一像素宽度,这些像素重叠点也会降低匹配返回的相似度分数,本文利用图6中的模板来消除4个方向上的重叠像素点。
图6 四个重叠点模板
对8 领域像素点(如图7)使用模板1 进行像素单一化分析可知,得出模板1 所在方向的重叠点判断条件为:设P1为当前像素点,P1、P2和P4的值同时为1构成该方向的像素重叠点,同时像素点P6、P7和P8的值必定为0。其余3个方向的判定与模板1同理,得出判定重叠点如式(11)所示:
图7 重叠点8领域
对ZS 细化后的焊盘边缘如图8(a)所示,使用图6中的模板进行并行判定,即同时使用四个重叠点模板对当前点P1进行式(11)判定,只要满足四个条件中之一就将像素点P1变为0 像素点,细化焊盘边缘后的单一像素如图8(b)所示,最终通过细化焊盘边缘获得的焊盘轮廓模板如图8(c)所示。
图8 焊盘区域的最小外接矩形
焊盘轮廓模板匹配是基于形状特征匹配的一种,将焊盘轮廓模板和待匹配图中焊盘轮廓分别看作是两个点的集合,通过计算两个点集之间的hausdorff 距离[9]判断匹配程度。
工业现场生产的LED 形状大小并不完全相同,存在X 轴和Y 轴方向的压缩或拉伸;底板位置和材料位于底板上都会存在一定的角度倾斜。如果采用单一特殊的模板匹配,则会导致上述情况下的焊盘定位失败,若减少匹配分数来获得焊盘区域的定位,则会误检定位到非焊盘区域,为了解决上述问题,本文提出基于异步缩放的模板匹配定位焊盘,其示意图如图9所示。
图9 异步缩放示意图
在X 轴和Y 轴方向加入缩放因子,缩放的比例范围0.8~1.2 倍,图10(a)~(d)所示为焊盘边缘轮廓在X轴和Y 轴方向上压缩0.8倍和拉伸1.2倍之后的轮廓形状,为了获得较高的精确度,设置了较少的缩放步长为0.05,匹配时生成8个缩放模板。对于LED存在角度偏差的问题,加入旋转角度因子,角度设置为−10°~10°,图10(e)和(f)所示为角度−10°和10°的焊盘轮廓,角度步长设置为0.5°,匹配时生成40个旋转模板。基于异步缩放的模板匹配定位可以很好地解决LED中焊盘产生的缩放和角度偏差问题,获得精确的焊盘中心坐标,防止因焊盘形变漏检LED。
图10 异步缩放的焊盘轮廓模板
根据焊盘中心坐标截取灯芯区域,由于设备和现场环境等因素导致贴片图像存在高斯噪声,如图12(a)噪声较少,图12(b)噪声较多。为了保留图像的边缘信息并取得较好的去噪效果,采用高斯双边滤波去噪[10]。双边滤波加入灰度信息的权重,贴片的灰度值越接近模板中心点的灰度值权重越大,通过计算空间距离函数如式(12)和灰度距离函数如式(13)的乘积并归一化后作为卷积核模板。式中,p 点的坐标为(x,y),q 点的坐标为(u,v),Ip是中心点的灰度值,Iq是邻域的灰度值。取灯芯边缘点(32,63)的3×3 区域进行高斯双边滤波,示意图如图11所示,将坐标数据和像素值带入高斯滤波函数后计算得到该点的值为52,取非边缘点(61,47),像素86 的邻域进行高斯双边滤波得到(61,47)点的像素值为87,证明了高斯双边滤波具有保留灯芯的边缘信息。
图12(a)和(b)高斯双边滤波的结果如图12(c)和(d)所示。
本文采用具有定位精度高的Canny算子[11-12]进行灯芯边缘的检测,Canny算子主要是参数σd、TL和TH的选择。σd决定了图片的平滑程度,TL和TH则直接决定了边缘信息的保留。对图12(c)和(d)使用不同参数的检测结果如图13(a)~(d)所示。当使用σd=2、TL=2和TH=15 时图13(a)获得了较清晰的灯芯真实边缘,效果好,而图13(b)中的检测效果就不佳。当参数σd=7、TL=4 和TH=20 时图13(d)获得了真实边缘,但是图13(c)却得不到真实的边缘。Canny边缘检测的缺点就是检测对比度不一致的图像,易丢失局部边缘或检测虚假边缘,自适应性差,难以满足检测要求。针对Canny 边缘检测算子的缺点,本文根据灯芯区域的圆度[13]自适应地选择不同的参数去检测对比度不同的灯芯边缘。
由于贴片灰度值不均匀和局部区域的模糊程度高,采用单一阈值无法兼顾以上情况,所以使用动态阈值[14]获得灯芯区域,图12(c)和(d)动态阈值的结果如图13(e)和(f)所示,并利用公式(14)计算灯芯区域的圆度。式中C 为所求圆形度,A 是灯芯区域的面积,D 是灯芯区域中两点间最大的距离,本文提出通过区域投影的方法近似计算D,计算区域在X 轴上投影值的示意图如图14所示。
图14 投影法求取区域距离
将灯芯区域的第J1到J2列进行垂直投影,选取投影区域内最大的投影值Px,Px=max(Pk),Pk为第Xk列的投影像素点数,其中k 的范围为{J1,J1+1,…,J2}。同理可以求出区域在Y 轴方向的最大投影值Py,取Px和Py的最大值作为D 值。
对图13(e)和(f)计算圆形度分别为0.92和0.51,通过大量测试,选择圆形度为0.82作为判断条件。灯芯区域大于0.82的选择边缘检测参数σd=2,TL=2,TH=15,小于0.82的选择边缘检测参数σd=7,TL=4,TH=20。
为了获得较高精度的灯芯中心坐标,本文采用基于几何距离[15]来拟合灯芯的边缘。原理是求取灯芯边缘到几何特征拟合点之间正交的最短距离,通过保持几何空间变换的恒等性来避免拟合结果的偏差,图13(a)和(d)拟合的结果如图13(g)和(h)所示。
图11 高斯双边滤波原理示意图
图12 高斯双边滤波去噪
图13 获取灯芯坐标
若未得到边缘拟合的坐标,则判断焊盘区域存在漏贴贴片;计算拟合得到的灯芯坐标与定位得到的焊盘坐标的距离来判断LED 的粘偏缺陷,从而将图像的几何缺陷转为坐标的数值判断。已知焊盘的定位坐标为(a,b),拟合的灯芯坐标为(c,d),当 ||c-a >18 像素时,贴片粘贴存在上下粘偏,当 ||b-d >15 像素时,贴片粘贴存在左右粘偏,将图2(c)使用本文算法处理返回焊盘区域的坐标为(206,64),灯芯坐标为(210,87), ||b-d =23 大于15像素,所以存在左右粘偏,为不合格LED。
将FPC 大图进行二值化后使用区域的几何特征筛除非焊盘干扰区域,并对型号为DK69的某板材料中四张大图统计区域像素如表1 所示。可知几何特征筛选后图片中的区域大大减少,成为缩短定位算法处理时间和提高定位精度的关键。
表1 DK69材料几何特征筛选后像素统计
任意挑选DK69 型号的6 个LED 区域,截取区域大小为340×280像素,首先标定LED区域的焊盘中心点为(x,y),再使用Canny 边缘检测、Sobel 边缘检测以及细化算法处理得到的轮廓模板匹配定位获得焊盘的坐标,分别计算三种焊盘模板在X 轴和Y 轴方向上的定位偏差结果Δx 和Δy,统计如表2 所示,根据检测结果,采用本文提出的细化模板定位焊盘区域的最大坐标偏差为4个像素,定位结果更加准确。
本文采用异步缩放的方法精定位LED 区域,并与文献[4]直接定位法做实验分析。先制作7 类LED 的图库,每类LED图库各50张图像,首先人工标定LED的焊盘中心位置(M,N),然后分别使用两种方法定位获得LED 的焊盘中心坐标,记异步缩放定位得到的坐标为(m,n),定位准确率L 如式(15)所示,同理可得直接定位的准确率,并统计结果如图15所示。
表2 定位焊盘区域的坐标偏差统计pixel
图15 两种定位算法的平均准确率
从实验结果可以得到两种算法的定位准确率都在90%以上,本文采用的异步缩放的方法的定位准确率更高,达到97.5%,文献[4]中的方法只有93.8%,异步缩放在尺寸与旋转角度上都以细分并行搜索的方式定位原图像中的焊盘模板,更高的准确率更利于判断LED 的缺陷情况。
在工业现场采集不同型号的LED 建立图库,使用本文方案进行测试,并统计了准确率和时间如表3 所示。从表中数据看出,LED检测算法对漏贴的检测准确率为100%,对粘偏的检测准确率为97.3%,由于线阵相机运动成像两张大图的时间间隔为2 100 ms,而平均每张8 192×70 000 图片的检测时间为1 538 ms,说明了本文所使用的算法在检测准确率和检测效率方面取得了较好的效果。
对粘偏存在漏检是由于材料堆叠时LED区域与背景灰度值高的区域相连接导致无法定位到焊盘区域,如图16(a)所示。
表3 算法检测准确率和检测时间统计
图16 干扰检测LED缺陷情况
表4 给出了本文方法和文献[4]中获取有效区域方法判断LED粘偏缺陷的漏检率ERR对比结果。
表4 本文方法与文献[4]方法对比
由表4 可知,本文方法ERR 低达2.7%,相对于文献[4]的方法,ERR值降低了11.5,展现出显著的优势,本文算法的平均运行时间没有文献[4]的时间低,但都小于贴片机的贴片时间,满足实时性要求。相对于本文算法,文献[4]判断LED 的缺陷情况需要依赖贴片覆盖焊盘区域的大小,如图16(b)所示,焊盘区域被贴片覆盖较多,文献[4]方法在定位LED时就已失败,文献[4]的ERR计算包括此类LED,而本文算法检测的LED 类型更广泛,准确率更高。
由于成像大图的分辨率要远远大于电脑显示屏的分辨率,为了方便观察检测结果,将定位的LED坐标映射到人机交互界面上,将粘偏的LED位置进行标注排序,并显示于界面右下角,如图17所示,项目软件于VS2012平台上开发,人机交互界面使用C++类库MFC设计。
图17 LED粘贴质量检测人机交互界面
本文根据柔性印刷线路板中LED的位置分布设计了一套硬件成像系统,解决了面阵相机因视野范围小存在的漏检相邻列LED的难题。算法上使用统计学中的矩计算最小外接矩形的面积,使用重叠点模板并行遍历ZS 细化的焊盘边缘,采用基于异步缩放的思想匹配定位LED,通过区域投影的方法计算圆度,并使用自适应参数的Canny边缘检测获得真实的灯芯边缘,完成了对LED的定位和缺陷质量的判断。经过测试,本文所提出的方案在检测精度和速度上都满足工业现场实时检测的要求,为FPC 上LED 缺陷质量检测提供了新的方法和途径,并根据工业现场需求设计了人机交互界面,具有实用性和实际意义。