本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,具體涉及一種基于高斯擬合的高密度電路板圓孔亞像素檢測方法。
背景技術(shù):
fpc由于其體積小、重量輕及具備可撓性等優(yōu)點(diǎn)被廣泛用于航天、軍事、移動(dòng)終端、數(shù)碼相機(jī)等多個(gè)領(lǐng)域。目前fpc線路板的尺寸越來越小,對工藝的要求也越來越高。與此同時(shí),需要更高精度的方法來檢測fpc的各項(xiàng)特征以確保fpc的性能。其中,圓孔(包括標(biāo)識孔、組裝孔、定位孔、導(dǎo)通孔和對位孔)是fpc上的一項(xiàng)重要特征,圓孔的位置、大小及圓度等特征都會(huì)影響fpc的功能及性能。用光學(xué)影像的方法來檢測圓孔是常用的方法。而對高密度的fpc,用一般像素級的檢測方法往往達(dá)不到我們的檢測精度。針對這種情況,可以采用亞像素的方法來到達(dá)測量精度的要求。近年來,亞像素檢測技術(shù)已得到了很大的發(fā)展,這些方法大致可以分為三類:基于插值的方法,基于矩的方法和基于擬合的方法?;诓逯档姆椒ㄓ?jì)算時(shí)間短,但是精度低,抗噪性差;基于矩的方法抗噪性能強(qiáng),但由于涉及到模板的計(jì)算,所以計(jì)算量很大。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)存在的缺點(diǎn)與不足,本發(fā)明提供一種基于高斯擬合的高密度電路板圓孔亞像素檢測方法。
本發(fā)明采用如下技術(shù)方案:
一種基于高斯擬合的高密度電路板圓孔亞像素檢測方法,包括如下步驟:
s1fpc圖像進(jìn)行處理得到像素級邊緣,再檢測出圓孔邊緣,得到圓孔邊緣的重心;
s2在圓孔邊緣像素點(diǎn)與圓孔重心連線上選取邊緣像素點(diǎn)及其附近的像素點(diǎn),構(gòu)成待擬合曲線;
s3采用高斯擬合方法對待擬合曲線的梯度曲線進(jìn)行高斯擬合,得到圓孔亞像素邊緣;
s4根據(jù)圓孔亞像素邊緣,實(shí)現(xiàn)圓心、半徑、圓度和圓缺陷的檢測。
所述s2在圓孔邊緣像素點(diǎn)與圓孔重心連線上選取邊緣像素點(diǎn)及其附近的像素點(diǎn),構(gòu)成待擬合曲線,具體為:
設(shè)邊緣像素點(diǎn)個(gè)數(shù)為n,(xi,yi)為第i個(gè)像素點(diǎn)的坐標(biāo),(xc,yc)為重心坐標(biāo);
作一條以重心為端點(diǎn),經(jīng)過點(diǎn)(xi,yi)(xc,yc)的射線,然后在線上的(xi,yi)兩邊各取4個(gè)點(diǎn),包括點(diǎn)(xi,yi)得到的9個(gè)點(diǎn)作為待擬合的曲線,所述9個(gè)點(diǎn)都在射線上。
所述s3采用高斯擬合方法對待擬合曲線的梯度曲線進(jìn)行高斯擬合,得到圓孔亞像素邊緣,具體為:
s3.1待擬合曲線由9個(gè)點(diǎn)構(gòu)成,用f表示(xi,yi)像素點(diǎn)的灰度值,則待擬合曲線可表示為f(x),x=-4,-3,-2,-1,0,1,2,3,4,依次表示9個(gè)點(diǎn);
則f(x)的梯度曲線:
其中,x=-3,-2,-1,0,1,2,3;
s3.2圖像邊緣沿某一梯度方向灰度的一階導(dǎo)數(shù)近似為高斯分布,該高斯分布的均值即為邊緣位置,故只要求得待擬合曲線即梯度曲線g(x)的高斯均值即可得到亞像素邊緣坐標(biāo);
高斯曲線的表達(dá)式為:
其中,u為均值,σ為標(biāo)準(zhǔn)差,將高斯曲線兩邊取對數(shù)可得:
可以看出,上式是一條二次曲線y=ax2+bx+c,故可將待擬合曲線即梯度曲線g(x)取對數(shù)來擬合拋物線,求出的拋物線頂點(diǎn)坐標(biāo)即為亞像素的邊緣坐標(biāo),
s3.3擬合拋物線時(shí)用最小二乘法來求得曲線參數(shù)a,b,c,進(jìn)而得到拋物線的頂點(diǎn),即高斯曲線的均值,也即亞像素坐標(biāo):
所述s4中根據(jù)圓孔亞像素邊緣得到圓心及半徑,具體為:
采用最小二乘法得到圓孔的圓心及半徑
設(shè)圓的亞像素邊緣包含n個(gè)像素點(diǎn),其中
公式:
其中,圓心坐標(biāo)為(a,b),令a=-2a,b=-2b,c=a2+b2-r2即可得到圓曲線的另一個(gè)形式:
公式:
根據(jù)得到的亞像素邊緣點(diǎn)和最小二乘法可求得參數(shù)a,b和c,從而得到圓心的坐標(biāo)和半徑分別為:
根據(jù)圓心的坐標(biāo)、半徑及圓孔亞像素邊緣得到待檢測圓的圓度:
公式:
所述圓缺陷的檢測具體包括孔偏位、孔徑大小不符、外形殘缺、多孔及少孔。
所述s1fpc圖像進(jìn)行處理得到像素級邊緣,再檢測出圓孔邊緣,得到圓孔邊緣的重心,具體為:
s1.1采集圖像進(jìn)行灰度化處理進(jìn)行高斯去噪,然后采用canny算子進(jìn)行邊緣檢測,得到該圖像的像素級邊緣;
s1.2根據(jù)邊緣連通域的幾何特性剔除干擾邊緣,再檢測圓孔邊緣:
s1.2.1利用邊緣連通域的面積大小來剔除一些噪聲邊緣和可能存在的圖像邊框,設(shè)s<ε1或s>ε2,其中s為連通域面積,ε1和ε2分別為連通域面積閾值下界和上界;
s1.2.2利用邊緣連通域的面積與周長關(guān)系來剔除一些類似條狀的邊緣,l/s>ε3,其中l(wèi)為連通域周長,ε3為連通域周長與面積比的閾值下界;
s1.2.3采用hough變換的方法檢測屬于圓形的邊緣,通過如下公式計(jì)算圓邊緣的重心:
其中,n為邊緣像素點(diǎn)的個(gè)數(shù),(xi,yi)為第i個(gè)像素點(diǎn)的坐標(biāo),(xc,yc)為重心坐標(biāo)。
本發(fā)明的有益效果:
本發(fā)明在圓孔邊緣像素點(diǎn)與重心連線上獲得待擬合曲線的操作簡單,魯棒性好;采用梯度曲線的高斯擬合方法(即邊緣模型為sigmoid模型)比采用階躍模型更加符合實(shí)際情況,能夠?qū)崿F(xiàn)高密度fpc圓孔的檢測。
附圖說明
圖1是本發(fā)明的工作流程圖;
圖2是本發(fā)明實(shí)施例待擬合曲線獲取結(jié)果示意圖;
圖3是本發(fā)明實(shí)施例待擬合曲線的一階導(dǎo)圖;
圖4是本發(fā)明實(shí)施例中亞像素圓孔檢測效果示意圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖,對本發(fā)明作進(jìn)一步地詳細(xì)說明,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例
如圖1所示,一種基于高斯擬合的高密度電路板圓孔亞像素檢測方法,包括如下步驟:
s1采用常規(guī)圖像處理方法得到fpc圖像的像素級邊緣,再檢測出圓孔邊緣,得到圓孔邊緣的重心,具體為:
s1.1采用常規(guī)圖像處理方法得到fpc圖像的像素級邊緣;
待處理的圖像若還有噪聲,將影響邊緣檢測的結(jié)果,所以在采集到圖像后,先要灰度化圖像并進(jìn)行高斯去噪。高斯濾波是一種常用的平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過程。高斯濾波的具體操作是,用一個(gè)模板掃描圖像中的每一個(gè)像素,用模板確定的領(lǐng)域內(nèi)像素的加權(quán)平均灰度值去代替模板中心像素點(diǎn)的值。對高斯濾波后的圖像采用canny算子進(jìn)行邊緣檢測,得到圖像的像素級邊緣。
s1.2根據(jù)邊緣連通域的幾何特性剔除干擾邊緣,再檢測圓孔邊緣:
用canny算子得到的邊緣中由很多的非圓孔邊緣,若直接從這些邊緣中檢測圓孔的邊緣將會(huì)使計(jì)算量過大,因此有必要先通過邊緣連通域的幾何特性來剔除掉一部分非圓孔邊緣;然后可以在剩下的邊緣中用hough變換的方法來檢測出圓孔邊緣。
a、利用邊緣連通域的面積大小來剔除一些噪聲邊緣和可能存在的圖像邊框等,s<ε1或s>ε2,其中s為連通域面積,ε1和ε2分別為連通域面積閾值下界和上界。此步驟將那些面積太小和太大的邊緣剔除掉;本實(shí)例中,ε1=10000,ε2=70000。
b、利用邊緣連通域的面積與周長關(guān)系來剔除一些類似條狀的邊緣,l/s>ε3,其中l(wèi)為連通域周長,ε3為連通域周長與面積比的閾值下界。此步驟將明顯不是圓形的類似條狀的邊緣剔除掉;本實(shí)例中ε3=0.02。
c、采用hough變換的方法檢測屬于圓形的邊緣,通過如下公式計(jì)算圓邊緣的重心:
其中,n為邊緣像素點(diǎn)的個(gè)數(shù),(xi,yi)為第i個(gè)像素點(diǎn)的坐標(biāo),(xc,yc)為重心坐標(biāo)。
s2在圓孔邊緣像素點(diǎn)與圓孔重心連線上選取一個(gè)邊緣像素點(diǎn)及其附近的像素點(diǎn),構(gòu)成待擬合曲線;
具體為:
設(shè)邊緣像素點(diǎn)個(gè)數(shù)為n,(xi,yi)為第i個(gè)像素點(diǎn)的坐標(biāo),(xc,yc)為重心坐標(biāo);
作一條以重心為端點(diǎn),經(jīng)過點(diǎn)(xi,yi)(xc,yc)的射線,然后在線上的(xi,yi)兩邊各取4個(gè)點(diǎn),包括點(diǎn)(xi,yi)得到的9個(gè)點(diǎn)作為待擬合的曲線,所述9個(gè)點(diǎn)都在射線上。
s3采用高斯擬合方法對待擬合曲線的梯度曲線進(jìn)行高斯擬合,得到圓孔亞像素邊緣,具體為:
s3.1待擬合曲線由9個(gè)點(diǎn)構(gòu)成,用f表示(xi,yi)像素點(diǎn)的灰度值,則待擬合曲線可表示為f(x),x=-4,-3,-2,-1,0,1,2,3,4,依次表示9個(gè)點(diǎn);如圖2所示,
則f(x)的梯度曲線:
其中,x=-3,-2,-1,0,1,2,3;如圖3所示。
s3.2圖像邊緣沿某一梯度方向灰度的一階導(dǎo)數(shù)近似為高斯分布,該高斯分布的均值即為邊緣位置,故只要求得待擬合曲線即梯度曲線g(x)的高斯均值即可得到亞像素邊緣坐標(biāo);
高斯曲線的表達(dá)式為:
其中,u為均值,σ為標(biāo)準(zhǔn)差,將高斯曲線兩邊取對數(shù)可得:
可以看出,上式是一條二次曲線y=ax2+bx+c,故可將待擬合曲線即梯度曲線g(x)取對數(shù)來擬合拋物線,求出的拋物線頂點(diǎn)坐標(biāo)即為亞像素的邊緣坐標(biāo),
s3.3擬合拋物線時(shí)用最小二乘法來求得曲線參數(shù)a,b,c,進(jìn)而得到拋物線的頂點(diǎn),即高斯曲線的均值,也即亞像素坐標(biāo),可使計(jì)算簡單化:
注意,這里求得的坐標(biāo)是相對邊緣點(diǎn)坐標(biāo)的偏移量,故最后圓孔的亞像素邊緣坐標(biāo)為邊緣點(diǎn)坐標(biāo)沿其與重心點(diǎn)連線方向加上偏移量u的值。
3.4、重復(fù)操作,得到所有邊緣點(diǎn)的坐標(biāo)位置即可完成圓孔的亞像素檢測,如圖4所示。
s4根據(jù)圓孔亞像素邊緣,實(shí)現(xiàn)圓心、半徑、圓度和圓缺陷的檢測。
采用最小二乘法得到圓孔的圓心及半徑
設(shè)圓的亞像素邊緣包含n個(gè)像素點(diǎn),其中
其中,圓心坐標(biāo)為(a,b),令a=-2a,b=-2b,c=a2+b2-r2即可得到圓曲線的另一個(gè)形式:
根據(jù)得到的亞像素邊緣點(diǎn)和最小二乘法可求得參數(shù)a,b和c,從而得到圓心的坐標(biāo)和半徑分別為:
根據(jù)圓心的坐標(biāo)、半徑及圓孔亞像素邊緣得到待檢測圓的圓度:
本示例中,左邊圓的圓心坐標(biāo)為(745.26,1341.54),半徑為145.60,右邊圓的圓心坐標(biāo)為(1765.84,1289.65),半徑為144.92,左邊圓的圓度為0.95,右邊圓的圓度為0.91。
通過得到的圓孔參數(shù)與標(biāo)準(zhǔn)文件進(jìn)行比對,可檢測出一些主要的圓孔缺陷:
孔偏位:max(|a-as|,|b-bs|)>ε4,其中(as,bs)是標(biāo)準(zhǔn)文件中圓心的位置,本實(shí)例中左邊圓為(750,1340),右邊圓為(1300,1390),ε4是位置偏差的閾值上界,本實(shí)例中,ε4=20。因此本實(shí)例中的圓不存在孔偏位。
孔徑大小不符:|r-rs|>ε5,其中rs是標(biāo)準(zhǔn)文件中圓的半徑,本實(shí)例中rs=145,ε5是圓孔半徑的閾值上界,本實(shí)例中,ε5=10。因此本實(shí)例中的圓不存在孔徑大小不符。
外形殘缺:ρ<ε6,其中ε6是圓孔圓度的閾值下界,本實(shí)例中,ε6=0.75。因此本實(shí)例中的圓不存在外形殘缺。
多孔:檢測出圓孔的個(gè)數(shù)比標(biāo)準(zhǔn)文件中圓孔的個(gè)數(shù)多,本實(shí)例不存在多孔。
少孔:檢測出圓孔的個(gè)數(shù)比標(biāo)準(zhǔn)文件中圓孔的個(gè)數(shù)少,本實(shí)例不存在少孔。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受所述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。