APP下载

基于机器视觉的PCB板上元器件检测系统

2020-09-29包晓敏鲁耀文

无线电工程 2020年10期
关键词:角点视场元器件

包晓敏,鲁耀文

(浙江理工大学 信息学院,浙江 杭州 310018)

0 引言

印刷电路板(Printed Circuit Board,PCB)是现代社会工业化的基础,从计算机、通信设备到电子玩具都离不开它。近年来,随着生产工艺的不断提高,PCB正在向高密度多层板发展。当这些高密度多层板在生产工序的最后一道检查中被发现有缺陷而不能使用时,其代价是很大的[1]。目前,裸板缺陷检测有几种常用方法[2-3]:人工目测、接触式检测和非接触式检测。传统的PCB检测方式依靠人眼和目镜,由于操作简单、投资低廉曾被广泛应用。但随着加工工艺水平的提高,人工目检的方式对这些高精度的PCB越来越无能为力,而且这种方法对人类的健康损伤也非常大,因此逐渐开始被淘汰。与此同时,自动光学检测(Automatic Optical Inspection,AOI)技术越来越多地被用到PCB的视觉检测[4]。AOI系统在进行PCB缺陷检测时,具有检测速度快、无损伤和检测可靠等特点,但该技术主要掌握在外国公司手里,例如2004年在以色列成立的奥蒂玛(Optima)公司[5]的AOI检测仪AI388、全球知名的以色列奥宝科技[6]推出的Power Vision Discovery,Fusion产品。国内对PCB板自动检测系统的研究大约始于90年代,由于各种因素的影响,对于PCB缺陷的自动光学检测系统的研究也停留在一个相对初期的水平[7]。

研发出一款基于机器视觉的PCB自动检测系统具有很高的经济价值和重要的科学研究意义,特别是对元器件的自动检测意义重大,可以降低电路板的损坏,并提高电路板的质量和安全性。本系统基于Labview2018软件平台,利用IMAQ Vision图像处理模块[8]对PCB进行检测,在搭建系统时成本低廉,适用于大多数中小型企业,能大大降低成本,同时也能提高其核心竞争力。

1 系统整体设计

1.1 系统构成

系统由硬件和软件两部分组成。系统硬件包括工业CCD相机[9]、光学镜头、箱式光源、图像采集卡、传送轨道以及工业计算机,这一部分负责待检测PCB的传送、PCB图像的采集;系统软件由建立模板模块、跟踪模块、PCB元器件缺陷检测模块和数据记录模块组成,这一部分负责在复杂环境下实时、准确地检测出PCB表面电子元器件存在的缺陷,记录检测数据。PCB元器件检测系统整体组成如图1所示。

图1 PCB元器件检测系统整体组成

1.2 系统流程

系统流程如图2所示。

图2 系统流程

检测系统开始工作之后,流水线上的PCB开始流入工业CCD相机视场范围内,当PCB完全流入,截取CCD相机视场范围内任意位置的PCB图像作为一次模板。以一次模板为标准进行实时跟踪,当流水线上的PCB在CCD工业相机视场正中间位置时,截取该位置的PCB图作为二次模板。

然后以二次模板为标准再次对流水线上的PCB进行实时跟踪,当流水线上的PCB再次出现在CCD相机视场正中间位置时,截取该位置的PCB图作为送去检测的测试图。最后,对测试图进行缺陷检测,并记录检测的数据。

2 系统功能实现

2.1 建立模板

机器视觉系统的检测算法对光照很敏感,每次送去检测的测试图亮度不一样,会极大地干扰检测结果。因此,在误差允许范围内,每次送去检测的测试图亮度要保持一致,并且尽可能是CCD工业相机视场中亮度最大的,此外也要保证每次送去检测的测试板图是在CCD工业相机视场的同一位置处获取的,所以本系统中每次送去检测的测试图选择的位置是CCD工业相机视场正中间位置。

当截取工业CCD相机视场正中央位置的PCB图作为实时跟踪模板时,由于流水线上的PCB一直在流动,故不能保证截取的PCB图恰好位于相机视场正中间位置,所以需要先随机截取CCD工业相机视场中任意位置的PCB图作为一次模板,然后以一次模板为标准进行实时跟踪,当流水线上的PCB在CCD工业相机视场正中间位置时,截取该位置的PCB图作为二次模板。

建立二次模板的流程如图3所示。

图3 建立模板流程

二次模板建立流程如下:

① 首先在流水线上的PCB完全流入CCD工业相机的视场中时,截取CCD相机视场范围内任意位置的PCB图像作为一次模板。一次模板制作过程如图4所示。

图4 一次模板制作过程

② 然后对一次模板进行学习,提取需要进行跟踪的信息制作成学习模板,也就是后面图像用来比对的模板。

③ 利用CCD工业相机实时采集流水线上的PCB图作为与学习模板的匹配图。

④ 把实时采集的PCB图与学习模板进行图像匹配。

⑤ 经匹配后得到流水线上PCB在摄像头视场中的位置信息。

⑥ 最后判断此刻返回的位置坐标是否处于CCD工业相机视场的中间位置。若满足条件,则截取当前位置的PCB图,得到二次模板,即实时跟踪时用的模板,程序结束;若不满足条件,则返回步骤②,程序继续运行。

2.2 实时跟踪

图像模式匹配是指通过分析模板图像和目标图像中灰度、边缘、外形结构以及对应关系等特征的相似性和一致性,从目标图像中寻找与模板图像相同或相似区域的过程。图像的模式匹配过程一般包括学习(Learning)和匹配(Matching)2个阶段。在学习阶段,算法会从模板图像中提取用于进行图像匹配的特征信息,并将它们以便于搜索的方式存放在模板图像中以备后用。在图像匹配阶段,算法从被测目标图像中提取同类型的特征信息,分析它们与模板图像中特征信息的相似性和一致性,以确定目标图像中与模板图像相匹配的区域。

图像匹配三要素包括特征空间、相似性度量和搜索策略[10]。基于图像特征的匹配方法[11-13]是目前采用最多的,该方法提取各类图像中保持不变的特征。本文采用的是图像的角点(Corner Point)特征,它可定义为图像中2个边缘的交点,或目标轮廓线上曲率的局部极大点。图像在角点处不仅梯度的数值大,而且梯度方向的变化速率也很大。也就是说,角点显示了图像在二维空间内灰度变化剧烈的位置,它和周围邻点有着明显的差异。因此可以通过计算图像中的角点获知图像中各个局部的信息,从而实现对图像的一种抽象描述。而基于该抽象描述,可以进行图像的匹配工作。角点特征具有计算量少,匹配简单以及旋转、平移、放缩不变性等特点,因此在图像配准与匹配、目标识别、运动分析和目标跟踪等应用领域都起着非常重要的作用。

以Harris算法提取角点的步骤如下:

① 计算图像I(x,y)在水平和垂直2个方向的梯度Ix和Iy。2个方向上的图像梯度可通过在图像上移动算子[-1,0,1]或其转置,并进行卷积运算得到。

④ 计算每个像素的Harris角点检测的响应值R,并将小于阈值的R置为零。

⑤ 在3 pixel×3 pixel或5 pixel×5 pixel邻域内进行非最大值抑制,将局部最大值点作为角点输出。

Harris角点检测算法不仅对光照和对比度的变化可保持不变,还能对图像的旋转保持不变。

Harris算法检测到的角点数据量大,且不容易进行比较,因此还需要寻找更合适的数学方法对它们进行描述。利用BRISK特征描述方法能把检测到的角点特征进行二进制编码,即可得到二值方式描述的角点特征向量。最后由二进制位描述的特征向量的比较,计算其汉明距离(Hamming Distance)来快速实现。然后设定一个阈值,当2个特征向量的汉明距离大于该阈值时,就说明2个图像的差异较大,反之说明2个图像相近。

本系统使用像素为1.19×107pixel(4 000 pixel×3 000 pixel)像素的CCD工业相机,由于需要判断跟踪到的PCB图是否位于CCD相机视场的正中间位置,因此需要建立直角坐标系来量化实时跟踪到的PCB在CCD相机视场中的位置。直角坐标系的建立如图5所示。

图5 直角坐标

以CCD相机获取的PCB图的左端顶点o点为坐标原点,水平方向和竖直方向分别为x轴和y轴,其中y轴上的o点下方为正方向,x轴上的o点右侧为正方向。以一个像素为直角坐标系的单位刻度,所以CCD相机的视场在y轴方向最大值为3 000 pixel。

系统实时跟踪步骤如下:

① 二次模板建立好之后,利用Labview2018的IMAQ Vision模块的IMAQ dx Grab VI函数实时抓取CCD工业相机视场中的PCB图作为被测目标图像。

② 对二次模板进行学习,从二次模板图像中提取用于进行图像匹配的角点特征信息,并将它们以便于搜索的方式存放在二次模板图像中。

③ 把实时抓取的PCB图与二次模板进行图像匹配。

④ 返回跟踪到的二次模板在CCD工业相机视场中的坐标信息,二次模板如图6所示,返回的坐标位置如图7中A,B点所示,A和B两点的坐标分别为(xa,ya),(xb,yb)。

图6 二次模板

图7 PCB板的坐标

⑤ 根据返回跟踪的PCBA和B两点的坐标,利用Labview2018中IMAQ Vision模块的IMAQ Overlay Rectangle VI函数,在实时抓取的PCB图的图层中用红色的矩形框实时标记出匹配到的PCB的位置。标记效果如图8(a)和图8(b)所示。对比可以看出,跟踪到的二次模板在CCD工业相机的视场不同位置处都实时被标记出。

图8 实时标记PCB的位置

⑥ 图7中C点是跟踪到的二次模板的中心点,由上文CCD相机的视场在y轴方向最大值为3 000 pixel,所以跟踪到的二次模板的中心点C的纵坐标yc=1 500 pixel时,表明此时跟踪到的二次模板的位置位于CCD相机视场的正中间。此时把截取的该位置的PCB图作为送去缺陷检测的测试图。在直角坐标系中,yc可以用ya和yb来表示:

(1)

判断yc是否等于1 500,若满足条件则截取该位置的二次模板作为送去缺陷检测的测试图,程序结束;若不满足条件,则程序返回步骤③继续运行。实时跟踪流程如图9所示。

图9 实时跟踪流程

2.3 缺陷检测

缺陷检测流程如图10所示。

图10 缺陷检测流程

对PCB板上元器件检测时,不同的元器件以及元器件检测的内容不同要建立不同的检测模板,例如对电解电容极性的检测和存在性的检测,需要分别建立对应的检测模板。由于PCB板上元器件种类众多,与之对应的检测模板种类也很多,因此本文就以对电解电容极性的检测模板建立为例来说明建立检测模板的流程。流程如下:

① 在模板管理界面要检测电解电容,点击电解电容检测按钮,模板管理界面如图11所示。

图11 模板管理界面

② 在电解电容极性的检测模板建立界面,首先点击电解电容大图按钮,框取的电解电容就会加载出来。然后框取电解电容的本体,点击框选电容小图按钮,加载出框选的电解电容本体,点击检测匹配按钮,程序检测出电解电容极性,最后点击退出按钮退出该界面,回到模板管理界面。电解电容极性的检测模板建立界面如图12所示。

图12 电解电容极性的检测模板建立界面

③ 在模板管理界面中点击添加按钮,把建立的电解电容极性检测模板加入到元器件信息库,用于后面的检测。

跟踪得到的测试图和实际模板图空间位置上会出现误差,使元器件定位的时候造成困难,本文采用彩色模板匹配方法进行模板图-测试图校正,算法步骤如下:

① 在模板图上框出一块校准区域mark[14]作为图像匹配的模板,在测试图上截取出包含mark区域的部分,如图13所示。

图13 Mark图

② 以图13(a)为模板,以图13(b)为被测目标进行彩色图像匹配,得出匹配的具体位置坐标。

③ 计算出模板图和测试图在水平x方向和竖直y方向上的像素误差。

④ 根据计算出来的像素误差来校准正测试图。校正效果如图14所示。

图14 校正效果

程序会根据元器件信息库保存的元器件检测模板信息,对元器件选择相应的检测算法,最后得出PCB元器件缺陷检测的结果。

2.4 数据记录

基于机器视觉的PCB检测系统对流水生产线上的每块PCB板上的元器件进行缺陷检测之后,要实时记录元器件检测的数据,方便分析检测系统对PCB的检测准确率以及检测设备的稳定性,为后续的大数据建立奠定基础,以及作为工厂产线插件员工业绩的考核依据。

检测系统每检测完成一个PCB都会记录下该PCB的检测结果以及元器件的信息统计结果。对于检测完成的PCB需要收集的信息有:测试用时、PCB编号、已经检查测PCB总数、测试结果和测试错误信息等。数据记录流程如图15所示。

图15 数据记录流程

3 系统实验结果与分析

3.1 系统界面

当运行系统时,系统会跳到软件登陆界面,系统有检测员、纠错员和管理员3个入口,不同人用不同密码选择不同入口就可以进入相应的界面,进行不同的操作[15]。软件登陆界面如图16所示。

图16 软件登陆界面

管理员进入系统之后,系统会跳到模板管理界面,在模板管理界面里,新建模板按键和加载模板按键分别用来建立和加载放置检测数据的文夹。其中名称、类型、相似度阈值、删除和添加按键都是负责把建立的元器件的检测模板添加到元器件信息库里。界面最右边的二极管检测方法1、二极管检测方法2、C-电解电容、电解电容匹配、颜色提取、直方图-自适应插座、直方图-蓝色插座、直方图-红色插座和二维码等按键,是对不同的元器件建立检测模板时所选择的对应按键。在传送带检测界面中,模板设置选项中的保存模板、保存空板、测试图以及拍照按钮和选择模板按钮来制作一次模板。传送带实时显示的是CCD工业相机实时抓取的流水线上的PCB图片,制作二次模板按键和开始匹配按键分别控制二次模板的建立和实时跟踪的开启。传送带检测界面如图17所示。

图17 传送带检测界面

3.2 系统检测效果

系统检测效果如图18所示。当系统对跟踪到的PCB板检测完成之后,检测结果会在界面最右侧的图中显示出来。图中用绿色矩形框框住的元器件表示检测结果正确的元器件,用红色矩形框覆盖住的元器件则表示检测结果错误的元器件,如图18(a)和图18(b)所示。图18(a)中,OK指示灯亮起,表示检测的PCB板上的元器件全部安装正确。

图18 系统检测效果

图18(b)显示,NG指示灯亮起,表示检测的PCB板上的元器件插件有错误的情况,错误就是被红色矩形框覆盖的电解电容插反了。

3.3 系统检测准确率分析

在实际的流水线生产中,PCB上的元器件漏查或者插反的情况是随机的,为了测试系统检测的准确率,提前将准备好的有缺陷的PCB和达标的PCB混合在一起,进行检测,记录下检测情况。采用威能P3板进行实验,测试系统的性能,威能P3板如图19所示。

图19 威能P3

威能P3单块板上有元器件35个,用于检测的威能P3板共计150块,其中有4块板是提前准备的有缺陷的板,每一块板都有一个元器件是提前设置错误的。第1块PCB电解电容的极性插反,第2块PCB电解电容发生了倾斜,第3块PCB红色插座没有插,第4块PCB黄色继电器倾斜。系统检测到的有缺陷的元器件与模板图上元器件的对比如图20所示。

图20 模板图元器件与测试图元器件对比

此次测试中出现了误报的情况,其中PCB编号为46和87的板子分别出现电解电极性判断误报和二极管极性判断误报,其中电解电容误报由于电解电容亮环较暗无法判断;二极管极性过薄无法判断,误报图像如图21所示。

图21 误报对比

4 结束语

设计了基于机器视觉的PCB检测系统,逐步介绍了实现系统的关键技术以及算法,最后对系统的实验结果进行了分析。经实验结果证明,本系统能稳定、高效、快捷地对工厂流水生产线上的PCB实时检测,能大大提高检测的准确率,弥补了由于人工检测的高错误率,也为企业节省了人工检测的成本。但美中不足之处在于,对于极个别的元器件,存在误报的情况以及系统对于遮挡的或者倾斜的元器件无法准确检测,有待于以后的进一步研究。

猜你喜欢

角点视场元器件
一种晶圆自动光学检测系统的混合路径规划算法
元器件国产化推进工作实践探索
大视场日盲紫外告警系统研究
多支撑区域模式化融合角点检测算法仿真
一种基于基准视场扩散拼接的全景图像投影方法
角点检测技术综述①
基于灰度差预处理的改进Harris角点检测算法
提高电子元器件使用可靠性的措施探讨
移动通信用电子元器件的技术发展趋势及其动向分析
基于FAST角点检测算法上对Y型与X型角点的检测