logo资料库

PCB缺陷检测系统.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
l sYs sEcuRITY 系统安全 98 PCB缺陷检测系统的研究与实现 蔡茂蓉 (西南科技大学计算机学院四川绵阳621010) 摘要:本文介绍利用图像处理和模式识别技术,实现自动检测PcB缺损缺陷的方法。文中详 细介绍了数字图像处理技术在PCB板缺陷检测中的检测算法和PCB各种常见缺陷的识别方法。给 出了系统的工作流程和实现方法,实验证明本方法可行。 关键字:图像处理;PCB;图像分割;定位 中图分类号:TP317.4 文献标识码:A 1引言 2 PCB板缺陷的模式识别 印刷电路板(Printed Circuit Boards)是提供电 从GJB和lPC(美国电子电路互连和封装协会) 子零件安装的主要支撑物体,它将电子零组件连接 标准中,可以综合出PCB上存在的主要缺陷有短路、 在一起,使其发挥整体功能,是所有电子产品不可 短路、凸起、凹陷、空洞和划痕等,本文采用的识别 缺少的基本构成部分。由于印刷板生产技术涉及多 种工艺技术,任何一个工序出问题,都会对产品的 方式分别简述如下。 2.1短路和断路的识别 质量造成影响。随着通信、计算机等产业的飞速发 发生短路时,与标准图像相比,其图像中包含 展,对印刷电路板的质量提出了更高的要求。原来 的区域数会减少。同样,对于断路模式,其区域数会 的检测手段逐渐不适应当今PCB技术的发展趋势, 增加。所以,可以用计算图像区域面积的方法来判断 因此,有必要研究新型的PCB检测手段。本文研究 待测缺陷是短路还是断路。计算面积的具体方法,本 的方法是利用数字图像技术自动检测PCB裸板缺陷 文采用的是火烧法。首先需要将二值图像规格化,使 的软件部分。 对象的像素值为1,背景区的像素值为0。然后逐行 近年来出现了很多PCB图像检测算法,这些算法 扫描,当发现灰度值为1的点时,就在当前点点燃火 大致可分为三大类:有参考算法、无参考算法以及混 种,使火种在当前点的8连通域内蔓延,直到燃尽对 合型算法。有参考算法分为两大类,图像对比法和模 象所有点,同时计数器加1。当扫描完整幅图后,可 型对比法;无参考算法是一种不需要标准图像的检测 求得对象区域的面积(像素的个数)。 算法,它是基于一定的设计规则来进行检测的;混合 2.2划痕的识别 型方法是将有参考算法与无参考算法混合使用,从而 划痕类缺陷的最大特点是它的颜色与板上的正常 发挥它们各自的优点。比如,模板匹配法与数学形态 模式的颜色不同,而其它类缺陷则无此特点。本文采 学方法结合使用,或者连接表方法与数学形态学方法 用BMP格式图像文件和RGB色彩模式。所谓色彩模式 结合使用等。本文采用的是混合方法中的模板匹配法 就是数字图像中像素点采用的颜色描述方法。划痕的 与数学形态学方法结合的方法。 识别需要提取红或绿通道,这是因为在混合通道中, ˝ • ‰ ˚
sYs sEcuR.TY系统安全l 99 划痕部分的灰度级与标准板和导体的灰度级区别不 大。 通过灰度级差别,可以检测出划痕,但还需要进 一步判断。这是因为划痕属于较为轻微的缺陷,有时 并不会影响印刷板的使用性能。必须根据PCB标准上 的规定做出判断:是缺陷还是可忽略缺陷。具体采用 的是“与”运算,将标准图像和缺陷图像相“与”, 即对缺陷图像中的像素,若灰度级与标准图像中的对 应像素的灰度级相同,在新图中灰度级为O,若相异 则新图中对应点灰度级取1,可得缺陷图像。 2.3凸起的识别 凸起和凹陷、空洞的最大区别是会引起区域的面 积增加,因此仍然通过计算对象区域面积的方法来识 别凸起。当然,此时要排除短路的情况。 2.4凹陷和空洞的识别 凹陷和空洞的区分比较复杂,二者都会引起面 积的减小,因而不能用面积特征来判断。凹陷位于导 线的边缘,而空洞位于导线的内部,因而可以通过分 析缺陷部分的周围区域进行识别。若缺陷部分的周围 区域全为白域,则为空调;若既有白区又有黑区则为 凹陷。具体方法是,首先将规格化的二值图像的缺陷 区域的灰度值设为与背景和导体不同,如设为2。其 输入待测PCB l 垃路层j 险测 焊盘层检测 妇路 层检测 1机械胃;检测 I可忽略l|瑕疵ll… 外形矫正 I可忽略I 凸起ll凹陷ll短路|l断路I l凹陷¨空洞¨划痕f 图1 PCB图像检测流程图 路层分割和机械层分割。图像诊断检测分为线路层检 测、焊盘层检测、碳路层检测和机械层检测。通过缺 陷图像与标准板图像进行匹配,计算机面积差值的方 法,将匹配不上的地方分为可以忽略和有缺陷两种情 况。对可以忽略的地方,用背景色填充。对缺陷继续 划分,分为凸起、凹陷、短路和断路以及可以忽略。 对可以忽略的地方仍然采用背景色填充。如果是凹 陷,要进一步检测是凹陷、空洞还是划痕。下面这个 函数完成找出PCB缺陷位置。 void FindFlawPosition(HDIB hDIB,HDIB hTempDIB) 次对缺陷部分进行边缘跟踪,记录下缺陷部分的边缘 …… { 曲线。利用缺陷部分的边缘曲线,求缺陷部分的外包 线,若外包线全为1(即为白区),则缺陷为空洞; 若有连续的一部分为1,一部分为0(黑区),则说明 缺陷为凹陷。 3软件实现 本文采用Visual C++编写实现PCB裸板的缺陷自 动检测系统。系统功能模块划分如图所示,工作流程 如图1所示。 数学形态学的基本运算只能针对二值图像和灰度 图像。因此,该系统在进行图像预处理时,先通过大 律法计算出分割阈值,再对图像进行二值化处理,然 后通过中值滤波去除噪声。预处理后的图像经过数学 形态学膨胀和腐蚀后,用于图像分析。在图像分割模 ,,找到DIB图像像素起始位置 IDDlBBits=cIsDIB.FindDIBBits(IpDIB);IpTempDIBBits=cl sDIB.FindDIBBits(IpTempDIB); ∥DIB的宽度和高度 LONG IWidth=cIsDIB.DIBWidth(IPDIB):LONG IHeight=cIsD旧.DIBHeight(IpDIB): 脓取每行宇节数 LONG ILineBytes=WIDTHBYTES(IWidth。clsDIB. DIBBitCount(1pDIB)): LPBYTE pSrc,pTemp; if(clsDIB.DlB8jtCount(IpDIB)==24) I for(i=O:i
..。。I sYs sEcuR.TY系统安全 if((+pS FC一。pTemP)==0&&(’(pS rc+1)一 。(pTemp+1))==O&&(。(pSrc+2)一’(pTemp+2))==0) ’(pSrc+1)=255;。(pSrc+2)=255;} {。pSrc=255; j-j+2:)}) if(clsDIB.DIBBitCount(IpDlB)==8) { for(i=0:i
分享到:
收藏