基于图像处理技术的PCB缺陷自动检测系统
2010-05-18胡秀亮叶健敏
胡秀亮,高 志,叶健敏,王 涛
(华东理工大学 机械与动力工程学院,上海 200237)
我国是PCB生产大国,据世界电子电路理事会WECC各协会统计[1],2007年中国大陆PCB产值占全球总产值的27.9%,仅一年时间就比2006年增长了17.0%。但在我国PCB行业高速发展的同时,也面临着巨大的挑战,那就是PCB质量问题。在生产过程中任何一道工序甚至PCB上的任何1条线路出现问题都会导致整个PCB板的报废。高废品率提高了生产成本。如何及时发现并减少废品率,是当前所有PCB生产厂家的迫切需求。在当前人工目测、在线测试等众多检测方法中,自动光学检测 AOI(Automatic Optic Inspection)在成本、效率、可靠性等方面都显示出独特的优势。本文通过图像处理技术开发了一套PCB缺陷自动检测系统。本文主要介绍该系统的软件实现部分。
1 系统流程
图1 系统的软件处理流程
系统软件组成如图1所示。首先在同一个工作台上拍摄PCB标准图,这是为了尽量保持拍摄标准图与待测图具有相同的物距、焦距等,以减少图像配准的耗时以及尽量减少误差,提高识别率。对标准图进行中值滤波以滤除噪声平滑图像,然后保存标准图。检测时打开被测图,首先进行滤除噪声等预处理,然后通过定位圆进行图像配准;再做差影运算,通过阈值变换分离出差影特征。由于图像配准时不能完全做到像素一一对应以及阈值分割得不完美,将引起阈值变换后的二值图可能存在非缺陷部分。如果不能把这些部分去除,会造成误检。所以还需要进行形态学的变换来滤除噪点。最后则对分离出来的缺陷目标进行几何特征统计并得出结论。
2 图像的预处理与配准
2.1 图像的去噪运算
图像在形成、传输、接收和处理的过程中,不可避免地存在着外部和内部干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程的量化噪声、传输过程中的误差以及人为因素等,都会引起噪声[2]。目前去噪效果很理想的算法是中值滤波。中值滤波是一种非线性的信号处理方法,其原理如下:假设有1个一维序列f1,f2,f3,…,fn,取该窗口长度(点数)为 m(m 为奇数)。对该序列进行中值滤波,即从序列中相继抽取m个数fi-v,…,fi-1,fi,fi+1,…,fi+v,其中 fi为窗口的中心点值,v=(m-1)/2。再将这m个点值按其数值大小排序,取中间的那个数作为滤波输出 ,用公式表示为 :yi=med{fi-v,… ,fi-1,fi,fi+1,…,fi+v},其中 i∈Z,v=(m-1)/2。 图 2 所示为中值滤波前后图片的对比效果。由此可见,中值滤波对滤除噪声,保留特征信息具有比较理想的效果。
图2 中值滤波效果图
2.2 图像的配准
图像的配准是对取自不同时间、不同传感器或者不同视角的同一场景的2幅图像或者多幅图像图形匹配的过程。图像配准通常通过计算图像的相似度来进行,而图像的相似度是通过计算相似性测度评价的。相似性测度又分为互相关相似性测度、基于傅里叶分析的测度以及序贯相似性检测。其中互相关相似测度是最基本的相似性测度,其原理如下:假设有模板 T和搜索图 S,Si,j表示模板覆盖下的那块搜索图[3],其中i、j表示位置。则其互相关相似度为:
归一化为:
2.3 几何匹配
2.3.1 匹配原理
本文对缺陷检测采取差影法检测,差影法检测必须是待测图与标准图的像素基本对应。所以差影法的核心就在于图像的几何匹配。待测图与标准图的匹配通常采用设置定位标志来解决,也就是在PCB板对角线部位通过添加特定的图形,定位时通过图形在标准图和目标图板上的几何位置差异进行缩放、平移和旋转的几何操作来实现待测图与标准图的像素一一对应。几何匹配的效果很大程度上取决于定位图形位置尺寸的获取[4]。通常定位图形选用形状规则的圆来进行,不仅因为圆心坐标具有很好的定位作用,还因为目前对于圆检测的研究已经相对比较成熟,比较容易检测出圆的特征尺寸。
2.3.2 圆的检测
对于圆的检测目前绝大多数是通过Hough变换来进行。Hough变换是利用图像空间与参数空间的对应关系,将图像控件的检测问题转化到参数空间,通过参数空间进行简单的累加统计来完成检测任务。Hough变换的圆形检测原理其圆的方程表示为:
在参数空间建立 1个三维的累加数组 A(a,b,r),计算出每 1个三元组(a,b,r),并对 A累加:
图3 Hough变换的参数空间
如果半径r固定,则参数空间与图像空间的对应如图3所示。黑色部分对应图像空间中的圆周上的点,而圆周则为可能的圆心位置。因此,在图像空间中共圆的点在参数空间中对应同一个点,即图像空间中的点对应参数空间中的圆,参数空间中的点对应图像空间中的圆。算法的实现也正是利用了这种特性。
如果直接通过这种方法进行圆检测,由于需要对整幅图的像素进行逐点运算并判断,会占用很多系统时间,因此速度上无法满足实时性的需求。基于Hough变换的圆检测方法[5]通过先对图像进行灰度化、去噪、边缘检测以及形态学运算等预处理,再通过使用多维数组代替循环计算进行Hough变换,可以大大提高检测速度与准确率。
此外,Intel公司的视觉扩展库OpenCV也有Hough圆检测的函数HoughCircles。该函数检测圆的速度非常快,但是检测圆的效果对设定的参数过于依赖,需要多次设置手动寻找最佳参数值,而且效果还是不够理想。图4是通过OpenCV和改进的Hough变换检测圆的效果对比图。
施工场地狭小,四周全是高大建筑物,基坑南侧距大同市古城墙14 m,西侧距3座砖混结构的住宅楼15 m,东侧距两座砖混结构住宅楼20 m,北侧距雁同东路30 m。
图4 检测圆效果对比
2.3.2 图像的几何变换
图5所示为 PCB板定位圆的位置,其中 A(x1,y1)、B(x2,y2)分别为2个定位圆的圆心坐标。由于标准板上和待测板上都有定位圆,因此待测图因摄像头畸变或者工作台振动而产生的偏差可以通过A、B坐标的偏差对待测图进行几何变换进行调整,调整步骤为:
(1)计算出待测图定位圆心的水平偏角θAB和标准图的θ′AB。 如果θAB≠θ′AB,则对待测图进行旋转变换。 旋转角度为θAB―θ′AB(顺时针方向为正)。
(2)计算出待测图定位圆心的距离LAB和标准图的L′AB,如果 LAB≠L′AB,则对待测图进行缩放变换。 缩放倍数为 n=L′AB/LAB(n>1 表示缩放)。
(3)计算出待测图2个定位圆心线段的中点坐标经过(1)、(2)两步运算后的坐标 D。将 D与标准图的 D′进行比较,如果不相等,则 X方向平移 Dx′-Dx,Y方向平移Dy′-Dy(屏幕左上角为原点,X轴正方向朝右,Y轴正方向朝下)。
图5 定位圆
3 缺陷检测
3.1 阈值变换
几何配准对标准图和待测图做差运算,得到的差影图如图6(a)所示,此图并非二值图,为了对缺陷进行统计识别,需要通过阈值分割将其转化为二值图。图像分割的方法可分为固定阈值分割和自动阈值分割。固定阈值分割是通过一个确定的或者人为操作时选定的阈值进行二值化的方法。由于该法很不灵活且不具有自动性,所以本文主要讨论自动阈值分割,通过搜索直方图的方法来选取全局阈值进行分割。该类方法主要有:双峰法、最大内间方差阈值(OSTU)法、P_tittle阈值分割法、最大熵法等。本文使用最大内间方差阈值(OSTU)法[5]。该法基本思想是:最佳阈值应当使得不同类之间的可分离性最大。把待处理图像的直方图在某一阈值与支出分割为2组,当被分割成2组的间方差最大时,决定阈值。OSTU分割后的图像如图6(b)所示。
图6 差影运算与阈值分割效果
3.2 形态学变换
图7 形态学运算后
由于配准过程存在的误差以及图片本身的微小畸变缺陷,所以差影运算后的图像会有无法消去的非缺陷部分。如图7所示,其灰度值和缺陷部分灰度值相差不大,阈值分割后也必然存在这部分噪点,如果不把这些部分消除掉,会造成误检。通过形态学变换可以消除这些噪点。
形态学又称数学形态学[6],是一种分析几何形状的数学方法,是建立在集合代数基础上的,用集合论方法定量描述集合结构的科学。最基本的形态学运算子有:腐蚀(Erosion)、膨胀(Delation)、开(Opening)和闭(Closing)。 由于需要滤除噪点,本文使用了腐蚀和开运算。
对于1个给定的目标图像X和1个结构元素S,如果S在图像上移动,在每1个当前位置 x,S[x]只要3种可能的状态 :S[x]⊆X、S[x]⊆Xc、S[x]∩X 与 S[x]∩Xc 均不为空。其中满足S[x]⊆X的点x的全体构成结构元素与图像的最大相关点集,则称这个点集为S对X的腐蚀,记为 X⊖S。用集合的方式定义为:X⊖S={x|S[x]⊆X}。腐蚀的作用是消除物体边界点,可以把小于结构元素的物体去掉,选取不同大小的结构元素,就可以去掉不同大小的物体。
腐蚀可以看作是将图像X中每1个结构元素S全等的 S[x]收缩为点x。反之,将 X中的每1个点X扩大为S[x]。这就是膨胀运算,用集合方式定义为:X⊖S={x|S[x]∩x≠0}。与腐蚀相反,膨胀运算的作用是把图像周围的背景点合并到物体中。
开运算和闭运算是在腐蚀和膨胀的基础上定义的。开运算就是对图像先进行腐蚀运算再进行膨胀运算。而闭运算是对图像先进行膨胀运算再进行腐蚀运算。
通过这4种形态学算子的组合可以对图像进行包括图像分割、特征抽取、边缘检测、图像滤波、图像增强和恢复等操作。图7是对阈值分割后的图进行1次腐蚀运算和1次开运算后的结果。留下来的4处正是目标电路板上缺陷位置的二值图。
4 检测结果分析
图8 检测结果显示
最终检测结果通过连通区域像素标记法对缺陷对象进行查找和标记。而连通区域像素标记采用八连通判别算法,对二值图进行从左向右、从上至下进行扫描,标记当前正被扫描的黑像素需要检查它之前扫描到得的4个近邻像素(包含正上、左上、右上、正前方 4个方位已经被处理过的像素)的值。若该4点均为背景点,则该点加新标记;若其中1点已加标记,则该点加以相同标记;若4点中有2个以上已加标记,则以左前点或右上点为准。标记后可扫描取得每个点的像素值即标号,统计相同标号个数获得各缺陷目标的面积,统计不同标号个数得到缺陷目标数目。通过该方法可以有效检测出二值图中缺陷的个数以及每个缺陷的面积。如图8所示,可以检测出短路、断路、突起、针眼等缺陷,并通过图像输出直观地展示给操作员。
本文采用图像处理技术和VC开发了一套电路板缺陷检测系统。介绍了本系统的主要组成部分,重点介绍了检测过程中的预处理、几何匹配,以及差影检测后的处理算法。由于大部分都是采用优化后的改进算法,使其系统运行速度可以满足实时性的需求,而且可以检测出大部分的缺陷并以图形的方式直观地显示。实践证明了该系统具有较强的实用性。
[1]杨宏强.全球 PCB产业发展近况[J].印刷电路信息,2008(12):9-16.
[2]杨淑莹.VC++图像处理程序设计[M].北京:清华大学出版社,2003.
[3]杨顺辽,苏明,钟立,等.基于图像处理的印制电路板缺陷自动检测[J].计算机测量与控制,2007,15(5):591-592.
[4]张利.PCB板检测中的定位研究[J].中国图像图形学报,1999(8):659-662.
[5]O’GOMAN L.Binarization and multithresholding of document images using connectivity[J].CVGIP, 1994, 56(6):494-506.
[6]何斌,马天予,王云坚,等.Visual C++数字图像处理(第二版)[M].北京:人民邮电出版社,2002.