局部自适应分割算法在PCB图像处理中的应用
2019-05-28李世文
李世文
(河源职业技术学院,广东 河源517000 )
随着电子技术的发展,关于电路板方面图像处理的研究显得越来越重要,在PCB的缺陷检测中,常用的检测方法有人工检测、基于机器视觉的检测等[1],随着技术的发展基于机器视觉的检测方法应用越来越广,检测方法主要是通过摄像头获取电路板图像,而后把电路板的图像发送给计算机进行灰度化、滤波、图像分割、边缘检测[2]等获取电路板的缺陷信息[3]。采用这种方式所获取的边缘信息没有考虑具体的环境和应用场合,所获取的边缘信息不一定很准确。
针对这种情况,本文采用局部自适应分割算法并结合数学形态学来对PCB图像进行边缘检测,数学形态[4]时针对不同的情况采用不同的相关运算,从而获得想要的信息。数学形态学主要包括膨胀、腐蚀、开运算和闭运算,它的应用非常广泛。所以本文利用数学形态学在PCB图像中进行滤波来提高边缘检测的效率。
1 PCB图像的边缘检测流程
首先通过摄像头获取图像,由于图像在拍摄过程中可能存在有噪声干扰,所以需要对灰度化后的图像进行滤波。然后采用局部自适应去获取图像的阈值,通过该阈值来分割PCB图像,最后对图像进行形态滤波和Sobel边缘检测。具体如图1所示。
图1 PCB缺陷检测流程
2 具体算法的实现
2.1 局部自适应二值化分割
在图像二值化处理中,由于外界光照的影响,或者是拍摄的角度、噪声都可以引起图像的照度不均匀,如果此时用单一的阈值去分隔图像,会发现分割的效果比较差,主要原因是由于光照不均匀整幅图像没有一个能兼顾整个域的阈值,在这种情况下单一阈值分隔效果显然不好,为了解决单一阈值分隔问题,本文采用了局部自适应的分隔方法对PCB图像进行分隔:首先对PCB图像进行分块,在图像分隔的时候,每一块单独采用一个阈值进行分隔。在根据具体情况对图像进行分块之后,分别单独计算每个分块图像的阈值,具体阈值的计算采用最大类间方差二值化(OSTU)来获取每块的阈值。OSTU是日本学者提出的一种图像分隔方法,它利用统计学的相关知识对图像进行分隔。具体对于某一分块图像而言,这块图像按照某个阈值t可以把图像像素分为两部分,第一部分如公式(1)所示,第二部分如公式(2)所示,公式(3)和(4)分别为计算这两部分的均值。
公式(5)和(6)分别计算这两部分的方差。这两部分像素计算到的均值、方差分别代入倒公式(7)中,如果能够使得公式(7)达到最大值时,此时的t值就是需要获取的阈值。
通过上述步骤可以对每块图像进行类间方差二值化的阈值分隔,显然分块越多分隔效果越好,计算量也越大,其时间复杂度也越大。
下面是对局部阈值分隔和全局阈值分隔的效果进行对比和分析,其中图2是光照不均匀的PCB原始图像,图3是采用本文的方法局部阈值分隔后的图像,图4是采用全局阈值分隔后的PCB图像,对比图3和图4明显可以看出来图3的分隔效果较好。图4因为采用全局阈值分隔,所以在PCB的左边基本上已经很难正确达到分割的效果。
图2 PCB原图
图3 局部自适应阈值分隔后图像
图4 全局阈值分隔后图像
在对原始图像进行局部阈值分割时,采用了分块的方法,分块的时候采用比较折衷的方法,把整个PCB图像分为32块,然后每块图像计算他们的局部阈值,从结果也可以看出分成32块对图像进行分隔基本上可以满足要求,如果分块太少在一定程度上也会影响分隔效果。
2.2 数学形态学算法介绍
数学形态学在图像处理中需要构建一个结构元素,该结构元素在图像上进行匹配操作,获取图像的相关特征的同时,在一定程度上还可以抑制噪声,而在膨胀和腐蚀的基础上推导出来点动开、闭算法是在PCB缺陷图像处理中的核心的内容,所以本文主要对这四种操作进行相应的介绍。
公式(8)和(9)分别为膨胀和腐蚀运算,从两个公式可以看出:与用滑动窗口内分别取最大和最小值的一种滤波技术。其开和闭运算分别对应公式(10)和(11),在腐蚀和膨胀的基础上推导出来的,开运算也就是先进行腐蚀之后再进行膨胀运算,闭运算是先膨胀后腐蚀。
数学形态开操作主要功能是滤去峰值噪声,对毛刺等的去除非常有效,所以在电路板检测中,利用开操作,也就是先膨胀后腐蚀元素可以去除电路板的毛刺,在PCB电路板去除毛刺之后与标准的电路板相异或,根据异或之后的结果就能检测PCB板的毛刺缺陷。数学形态的闭运算能够滤除波谷噪声,填平小沟结构,所以在PCB检测中利用闭操作,也就是先腐蚀后膨胀,可以填平PCB板的凹陷、缺损缺陷。待检测PCB图像进行闭操作之后,得到了一副有凹陷和缺损的图像,与标准PCB图像相异或就能检测出PCB的缺损和凹陷等缺陷。
所以针对PCB缺陷图像处理特点,需要对PCB在不同场合使用开操作或者闭操作。所以需要采用开闭算法的级联和组合来实现对不同图像的检测处理。图5为采用形态滤波之后的效果图,本文在图像二值化分隔的基础上对图像先进行了腐蚀,之后再对图像进行了膨胀操作,也就是闭运算,通过闭运算可以和图4比较,发现通过该操作后起到了填平凹陷和缺损。
图5 局部阈值分隔后形态滤波
2.3 边缘sobel算子进行边缘检测
Sobel算子首先是利用模板计算偏导数gx和gy的值,然后利用公式(14)判断实现边缘的检测。由于在上面采用了局部自适应阈值法已经对图像进行了二值化,系统的边缘信息就会比较好地保留,相比如果前面没有采用局部自适应二值化,在边缘检测中就有可能会漏掉一部分信息。所以即使其在时间和空间来说,复杂度比较大也是值得的。
对形态滤波之后的图像进行边缘检测,结果如图6所示,采用本文的方法基本上包含了PCB板的全包边缘信息。
图6 边缘检测结果
3 实验结果分析
从相关测试结果图来看,采用全局固定阈值的分割效果并不好,这主要是因为固定阈值完全是用户根据自己的经验来设定的,处理不好可以再另外设一种阈值,同时由于图像受到光照等因素的影响,根本不存在有一个固定的值来对图像进行分割,这样采用局部阈值就显得很有必要了。图3是局部阈值分割后的PCB图像,基本上可以正确对图像进行分割,图5是形态滤波之后的PCB图像,通过它可以滤除部分不需要的信息,图6是最后边缘检测的结果。同时本文通过对大量PCB图像进行边缘检测验证,发现采用局部自适应阈值方法在PCB边缘检测中的效果非常好,过去由于光照或者其他原因导致检测效果差等问题都可以解决,在实际的应用中也需要根据不同情况,应用不同的处理方法有效地提取一幅图像中感兴趣的部分。
4 结论
结合局部自适应阈值分割法、数学形态滤波技术和Sobel算子对PCB图像进行了边缘信息的提取,局部自适应阈值分割法主要是对图像进行二值化分割,数学形态滤波技术主要是空洞填充、噪声滤除,通过Sobel来提取PCB图像边缘信息。从仿真结果和实验所得图像来看,可以获得图像较为准确的边缘信息,具有较好的应用前景。