首页 理论教育 PCB自动光学检测中的分水岭算法实现原理

PCB自动光学检测中的分水岭算法实现原理

时间:2023-10-26 理论教育 版权反馈
【摘要】:分水岭算法可以归为基于区域的图像分割方法。分水岭算法的应用较多,但文献中未见PCB缺陷检测应用的报道。缺陷识别核心算法研究主要围绕分水岭算法展开,围绕算法原理、算法优化以及算法相关应用场合展开描述。相比传统的基于边缘检测、阈值处理和区域生长的分割概念而言,分水岭算法实现了三种理念的融合和具体化,有效地实现区域分割的同时,也保证了算法实现的稳定性。

PCB自动光学检测中的分水岭算法实现原理

分水岭(watershed)算法在20世纪70年代末由C.Digabel和H.Lantuejoul第一次引入到数字图像处理领域。由于硬件设备的制约(主要是受制于当时计算机的处理速度)和算法本身巨大的计算量的影响,分水岭算法并没有得到广泛的应用,而仅仅被当作一种二值化图像的方法。随着Luc Vincent和S.Beucher的进一步深入研究,分水岭算法在算法复杂度方面得到了进一步的发展,显著地减少了计算量。至此,分水岭算法的优点和独特的思想才吸引了后来越来越多的研究者们的研究,分水岭算法也成为图像分割领域一个重要的研究方向。

分水岭算法可以归为基于区域的图像分割方法。在地形学上的概念就是:假如有水流入一个洼地内,分水岭作为划分流入这个区域的水的分界线。更直观的概念就是假设一个湖中存在这样的地形:洼地是它的局部极小点,这些洼地会随着水的注入而慢慢被填满。不同的洼地的水面上升时会相遇,在这些相遇的地方建立一个堤坝,直到水位淹没这个地形的最高点,结束。这样就建立了一个划分各个区域的分水岭,或者叫分水线。目前,分水岭算法大体可以分为两种,一种是基于数学形态学定义下的算法,由Vincent和Soillem提出;另一种是基于地形学上的距离定义下的算法,由Meyer和Fernand提出,该算法对微弱边缘敏感,可以得到单像素宽的、连通的、封闭的及位置准确的轮廓。

分水岭算法的应用较多,但文献中未见PCB缺陷检测应用的报道。同时,Matlab 8.0及以后的版本集成了上段所两种分水岭算法,对若干标准图像和扫描图像处理(后发现结果见第七节“现有工作基础和条件”),其搜索到的“分水线”能够成功用于缺陷检测,但总有分水线漏检,严重时甚至有一半分水线都未搜索到。

综上所述,分水岭算法具有应用于PCB缺陷机器视觉检测的潜力,有必要研究更适合的算法并有效集成到国产的自动光学检测设备中,从而研发出性能更优越、检测效率更高、价格合理的PCB检测系统,提高PCB的合格率、保证PCB的质量,增强我国PCB加工制造企业适应PCB现代发展要求的能力。

缺陷识别核心算法研究主要围绕分水岭算法展开,围绕算法原理、算法优化以及算法相关应用场合展开描述。实验证明分水岭算法在具体应用方面存在的优势明显,通过对比差影分析算法的相关特性,明确分水岭算法的优势及劣势,从而选择合适的改进分水岭算法应用到系统检测当中。

基于形态学的变换,结合“地形学”中分水岭的概念,形成了图像分割中所谓的分水岭算法。相比传统的基于边缘检测、阈值处理和区域生长的分割概念而言,分水岭算法实现了三种理念的融合和具体化,有效地实现区域分割的同时,也保证了算法实现的稳定性。

该算法主要面向对象包括梯度图像以及距离图像。根据“地形学”中的解释,应用范围主要面向三种类型的情况:(1)区域最小值点;(2)水滴所在的不稳定区域,即处在该区域的水滴一定会运动到某一单一最小值点;(3)存在某一区域的水滴会不确定流向,同时存在流向多个最小值点的可能。针对以上三种概念因而引出了具体名称包括“汇水盆地”“分水岭”“分水线”以及“分割线”。令P1,P2,P3…,PR表示图像I(x,y)区域中最小值点的坐标集合,同时C(Pi)是与最小值Pi相关的汇水盆地中的坐标集合。于是M[n]表示满足I(s,t)<n的坐标(s,t)的集合。

其中,M[n]是I(x,y)中位于下方的点的坐标的集合。

随着n值不断增加,令Cn(Pi)表示汇水盆地与淹没阶段n的最小从相关联的点的集合。则Cn(Pi)可以表示为:

(www.xing528.com)

与此同时令C[n]汇水盆地的并集

采用递归处理的方式来找寻分水岭,首选通过C[min+1]=M(min+1)来初始化,每次递归通过C[n-1]来计算C[n]。具体求解步骤如下:令Q表示M[n]中连通分量的集合。然后,对于每个连通分量q=Q[n],有如下三种可能:

(1)q∩C[n-1]为空集

(2)q∩C[n-1]包含C[n-1]的一个连通分量

(3)q∩C[n-1]包含C[n-1]的一个以上的连通分量

三种条件代表三种不同情况,条件(1)代表遇到新的最小值时,这时q并入C[n-1]形成C[n];条件(2)代表遇到局部最小值,同样将q并入C[n-1]形成C[n];当条件(3)发生时,代表遇到全部或者部分分隔两个或多个汇水盆地的山脊线。最终必须在q内构建一个分水岭。通过采用元素为1,大小为3×3的一个结构元来膨胀q∩C[n-1],从而建立一座1个像素的分水岭。

如图9.23所示即为PCB电路板原图和经过分水岭变换的结果,通过变换可以发现,分水岭像素出现的位置包括覆铜区域和基材区域。

图9.23 电路板结果对比图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈