孔 巖,管庶安
(武漢工業(yè)學(xué)院計(jì)算機(jī)與信息工程系,湖北武漢430023)
在PCB(Printed Circuit Board)缺陷檢測的項(xiàng)目中,由于采集環(huán)境和數(shù)碼相機(jī)本身等多重原因,使得采集的圖像不夠理想,不僅有噪聲存在,而且圖像模糊,目標(biāo)物體的邊緣不夠突出,目標(biāo)圖像與背景的灰度對比度低,難以準(zhǔn)確的選取閾值進(jìn)行圖像分割。
通過圖像分析發(fā)現(xiàn)PCB缺陷大多數(shù)發(fā)生在邊緣處,PCB線路的缺陷必然由邊緣反映,邊緣信息是描述區(qū)域形狀的關(guān)鍵信息。建立基于邊緣的樣本數(shù)據(jù)結(jié)構(gòu),提取對缺陷識別有用的信息,如邊緣的位置和梯度方向等。提取這些信息可去掉圖像中大量的冗余信息,回避對圖像中無有效信息區(qū)域的反復(fù)處理。針對這一特點(diǎn)對PCB圖像進(jìn)行增強(qiáng)處理,主要是進(jìn)行圖像銳化,使處理后的圖像比原始圖像的灰度的對比度增加,突出圖像的邊緣信息以使圖像顯得更為清晰,為后續(xù)的圖像分割更有效的選取閾值打下良好基礎(chǔ)[1];同時(shí)盡可能濾除鄰近邊緣的噪聲,以便排除對缺陷的漏檢和誤檢。
空間域圖像銳化的主要方法就是梯度法,常用的有一階導(dǎo)數(shù)和二階導(dǎo)數(shù)為基礎(chǔ)的邊緣檢測算子,一階導(dǎo)數(shù)邊緣檢測算子有Roberts算子、Sobel算子、Prewitt算子等。二階導(dǎo)數(shù)邊緣檢測算子有Laplacian算子等[2]。
PCB圖像的邊緣點(diǎn)一般屬于階躍狀邊緣,但在進(jìn)行圖像采集時(shí),由于客觀原因采集的圖像并不會(huì)如預(yù)期般理想,不僅會(huì)有噪聲的存在,而且圖像邊緣的灰度不是突變的,而是漸變的,PCB圖像邊緣的灰度值與背景的灰度值相差不大。為了將圖像變得輪廓分明,增大導(dǎo)線與背景的灰度值對比,就要用梯度法增強(qiáng)邊緣[3]。在數(shù)學(xué)上可以利用灰度的導(dǎo)數(shù)來刻畫邊緣點(diǎn)的變化[4],對于存在階躍邊緣的圖像f(x,y)的灰度值圖見圖1(a),其一階導(dǎo)數(shù)的局部最大值點(diǎn)對應(yīng)著導(dǎo)線的邊緣,見圖1(b)。一階導(dǎo)數(shù)的局部最大值對應(yīng)著二階導(dǎo)數(shù)的零交叉點(diǎn),見圖1(c)。由于物體表面交界處灰度常常緩慢變化,在圖像中表現(xiàn)為邊緣是有一定寬度的,即圖像邊緣并不清晰,是模糊的,其灰度變化通常呈現(xiàn)出斜面狀態(tài),斜坡部分與邊緣的模糊程度成正比。圖像的一階梯度不能夠很好的反映出邊緣的這種模糊的變化。從圖1(c)可以看出,在邊緣附近,其二階導(dǎo)數(shù)存在由正到負(fù)的階躍。這就意味著其二階梯度圖在邊緣附近具有比一階梯度圖更明顯的變化,也就是說,其檢測細(xì)微邊界的能力會(huì)更強(qiáng);另外由于在邊緣附近二階梯度數(shù)值變化幅度比較大,也說明在二階梯度圖上,其邊緣附近更容易同背景區(qū)域分離。
圖1 圖像灰度值及導(dǎo)數(shù)值波形圖
常用的一階梯度圖像增強(qiáng)的方法主要有Roberts算子、Sobel算子、Prewitt算子等??的恋仍谖模?]中提出一種改進(jìn)的Roberts算子進(jìn)行圖像銳化的算法,在8像素鄰域內(nèi)通過計(jì)算4個(gè)方向的一階偏導(dǎo)數(shù)有限差分,來確定像素梯度幅值的方法,這種方法兼顧了梯度幅值計(jì)算中邊緣準(zhǔn)確定位和抑制噪聲的要求,而且定位精度也比較高,但對噪聲的去除并不明顯。蔣婷在文[6]中提出一種Sobel算子邊緣增強(qiáng)算法,是一種非線性的邊緣檢測算法。優(yōu)點(diǎn)是對圖像中的隨機(jī)噪聲有一定的平滑作用,減弱了檢測結(jié)果對噪聲的敏感性;缺點(diǎn)是得到的邊緣顯得粗而亮,降低了邊緣檢測精度。
孫增國在文[7]中提出一種二階梯度增強(qiáng)算法,利用Laplacian算子檢測圖像的邊緣細(xì)節(jié)信息,然后以適當(dāng)?shù)谋壤€性疊加原始圖像和邊緣細(xì)節(jié)信息,從而獲得增強(qiáng)的圖像。缺點(diǎn)是在增強(qiáng)圖像的同時(shí)無法兼顧消除噪聲,且圖像增強(qiáng)后目標(biāo)與背景之間的灰度對比度不強(qiáng)。
針對傳統(tǒng)的基于梯度邊緣檢測算法在梯度幅值計(jì)算上的缺陷,可以利用改進(jìn)的二階梯度法進(jìn)行圖像的增強(qiáng)處理,不僅要增強(qiáng)圖像目標(biāo)部分的灰度,還要保留背景灰度,尤其是圖像的目標(biāo)邊緣附近的背景部分。因此要對二階梯度提取出的邊緣部分與原圖像相減,相減后的波形如圖1(d)所示。從波形圖可看出增強(qiáng)后的圖像邊緣與原圖像的邊緣相比灰度高的部分更高而灰度低的部分則更低。采用7×7鄰域法,取四個(gè)方向上像素梯度幅值的最大值。由于檢測的邊緣方向由兩個(gè)增加到了四個(gè),因此能在一定程度上有效地解決傳統(tǒng)梯度算子在梯度計(jì)算中的方位局限的問題。這種方法兼顧了突出邊緣及抑制噪聲兩方面要求。
首先利用中值濾波法對圖像進(jìn)行初步的濾波處理。在圖像的采集中不可避免地會(huì)有噪聲或干擾信息存在,因此在對圖像進(jìn)行二階梯度增強(qiáng)之前有必要進(jìn)行去噪處理。中值濾波是一種對干擾脈沖和椒鹽噪聲有良好的抑制作用,而對圖像邊緣能較好保持的非線性圖像增強(qiáng)技術(shù)。相對于鄰域平均法,中值濾波有效地保留了圖像的邊緣,圖像的輪廓也比較清晰。這是由于若取平均的話會(huì)影響到周圍的像素,但通過選擇中間值,極端值的影響被這種非線性運(yùn)算吸收了的緣故。中值濾波的主要優(yōu)點(diǎn)是運(yùn)算簡單同時(shí)對椒鹽噪聲非常有效,采集的PCB圖像經(jīng)過中值濾波后去除了噪聲,為下一步進(jìn)行二階梯度圖像增強(qiáng)打下良好基礎(chǔ)。
計(jì)算圖像像素點(diǎn)的二階梯度。設(shè)圖像的像素點(diǎn)坐標(biāo)為p(x,y),該點(diǎn)的灰度值為f(x,y),對于數(shù)字圖像用差分來近似替代導(dǎo)數(shù),則p點(diǎn)在x方向的一階梯度用gx(x,y)表示,一階梯度的離散量表示為該點(diǎn)x方向的右三點(diǎn)的灰度值之和減去左三點(diǎn)的灰度值之和,計(jì)算方法見公式(1)。
設(shè)p點(diǎn)在x方向的二階梯度用hx(x,y)表示,二階階梯度的離散量表示為該點(diǎn)x方向的右三點(diǎn)的一階梯度值之和減去左三點(diǎn)的一階梯度值之和,計(jì)算公式為:
設(shè)p點(diǎn)的48鄰域點(diǎn)按由左至右,由上至下的順序編號為p1—p48,利用公式分別計(jì)算出p1—p48點(diǎn)的一階梯度。將求得的一階梯度值帶入上式,整理得:
其中t[i]為鄰域點(diǎn)的灰度值所乘的系數(shù)。經(jīng)過計(jì)算系數(shù)矩陣為:
t[i] =[0,1,2,1,0,-2,-4,-2,0,1,2,1,0].
用同樣的方法分別求出四個(gè)方向的梯度值,計(jì)算公式見(4)、(5)、(6)。
取其中的最大值作為梯度,以此檢測是否為邊緣點(diǎn),即
原圖像與計(jì)算后的梯度值進(jìn)行相減運(yùn)算。圖像增強(qiáng)不僅要增強(qiáng)邊緣部分,而且要保持非邊緣部分并且去除邊緣噪聲。本方案使用二階梯度檢測圖像的邊緣部分,然后把所求二階梯度和原圖像的灰度值相減,從而獲得圖像的增強(qiáng)效果。計(jì)算公式如式(8)。
二階梯度與背景的疊加有一個(gè)系數(shù),如果系數(shù)k過大,則邊緣會(huì)不夠突出,銳化效果不理想;如果系數(shù)過小又會(huì)保留部分噪聲且圖像的背景部分灰度值過高。為了能夠在保留圖像細(xì)節(jié)的同時(shí)最大程度地去除噪聲,采用不同系數(shù)進(jìn)行實(shí)驗(yàn),結(jié)果表明當(dāng)k=3時(shí),圖像銳化效果最好。
進(jìn)行二階梯度增強(qiáng)后的圖像更加容易選取適當(dāng)?shù)拈撝颠M(jìn)行分割,通過灰度直方圖的對比也可以明顯的看出圖像增強(qiáng)后的灰度值對比。圖2(a)是原始圖像的灰度直方圖,為了能夠更好地將目標(biāo)圖像從背景中分割出來,一般要設(shè)定一個(gè)閾值。而這個(gè)閾值是由兩個(gè)波峰之間的波谷的灰度值來確定的。但原始圖像的灰度直方圖有三個(gè)波峰,而且沒有明顯的波谷值點(diǎn)。圖2(b)是采用梯度法進(jìn)行圖像增強(qiáng)后的灰度直方圖??梢钥闯鲭p波峰非常明顯,而且閾值的選取也很容易。
圖2 圖像的灰度直方圖
方差分析法是一種簡單有效的閾值選取方法[8]。由圖2(b)可以明顯看出波谷范圍大約在100至230之間,因此將閾值的選取范圍設(shè)置在這個(gè)范圍之內(nèi)。首先設(shè)分割閾值為T。將圖像f(x,y)中的像素分為兩組,像素灰度值小于閾值T的為第一組,有w1個(gè)像素;像素灰度值大于等于T的為第二組,有w2個(gè)像素。第一組的灰度值平均值為m1,組內(nèi)方差為σ1,則組內(nèi)方差的計(jì)算公式為:
同樣,第二組的灰度值平均值為m2,組內(nèi)方差為σ2,則組內(nèi)方差的計(jì)算公式為:
設(shè)全部圖像的灰度平均值為m,則灰度值平均值
設(shè)組內(nèi)方差為σw,組間方差為σB,則計(jì)算公式為:
使用500萬像素?cái)?shù)碼相機(jī)采集大小為640×480像素的PCB灰度圖像作為原始圖像。圖3(a)為原始圖像,圖像相對較暗,邊緣模糊,目標(biāo)與背景的灰度對比度較低。圖3(b)—(e)是傳統(tǒng)的梯度算子銳化圖像的效果圖,從結(jié)果圖看,利用Robert算子處理后的圖像銳化效果并不明顯,而prewitt算子和Sobel算子處理后的圖像由于邊緣過寬,圖像的灰度級過多減少,因而降低了圖像的灰度層次感,丟失了部分細(xì)節(jié),且邊緣附近噪聲仍然存在;利用Laplacican算子處理后的圖像比原始圖像邊緣清晰,亮度增強(qiáng),但邊緣仍存在噪聲且邊緣部分的灰度對比度模糊現(xiàn)象并未徹底解決。圖3(f)為改進(jìn)的二階梯度增強(qiáng)算法處理結(jié)果,由圖像可以看出增強(qiáng)后的效果突出,類似圖像二值化效果。邊緣部分的噪聲幾乎完全去除,目標(biāo)圖像的邊緣部分灰度值明顯高于非邊緣部分,而對于背景圖像而言,靠近邊緣的部分灰度值明顯低于遠(yuǎn)離邊緣的部分。
圖3 各梯度算子增強(qiáng)圖像后的效果圖
分別取閾值為100、150、200進(jìn)行圖像分割,分割后的二值圖像見圖4。當(dāng)取閾值T為100時(shí),在目標(biāo)物體圖像中某些灰度偏高的點(diǎn)會(huì)被誤判為背景點(diǎn),表現(xiàn)為在目標(biāo)圖像中會(huì)有黑點(diǎn)存在。當(dāng)取閾值T為200時(shí),在背景圖像中某些灰度偏低的點(diǎn)會(huì)被誤判為目標(biāo)點(diǎn),表現(xiàn)為在背景圖像中會(huì)有白點(diǎn)存在。通過對比可發(fā)現(xiàn)利用方差分析法選取的閾值150分割效果最佳。
圖4 選取不同閾值分割后的二值圖像
傳統(tǒng)的一階梯度法進(jìn)行圖像銳化在處理過程中會(huì)導(dǎo)致圖像的灰度級過多減少,因而降低了圖像的灰度層次感,丟失了部分細(xì)節(jié),難以得到滿意的圖像增強(qiáng)效果?;诙A梯度的Laplacican算子進(jìn)行圖像銳化針得到的圖像目標(biāo)與背景之間的灰度對比度不大,圖像的邊緣含有噪聲,為后續(xù)的圖像分割的閾值選取帶來困難。針對這樣的問題,提出了利用二階梯度檢測圖像的邊緣,然后與原始圖像進(jìn)行疊加,不僅使圖像的灰度對比度大大增加,而且有效地突出了邊緣信息,去除了噪聲。實(shí)驗(yàn)結(jié)果表明,本文提出的基于二階梯度的增強(qiáng)方法是圖像增強(qiáng)的有效方法,它計(jì)算簡單,圖像增強(qiáng)的同時(shí)濾除了邊緣附近的噪聲,非常適合圖像的在線處理。實(shí)驗(yàn)結(jié)果證明了理論分析的正確性。
[1] 陳宇云.灰度圖像的邊緣檢測研究[D].成都:電子科技大學(xué),2009.
[2] Meylan L,Susstnmk S.High Dynamic Range Image Rendering with a Retinex-based Adaptive Filter[J].IEEE Transactions on Image Processing,2006,15(9):2820-2830.
[3] 喬鬧生,趙華君.保留灰度級的PCB圖像增強(qiáng)研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(9):180-182.
[4] 曾嘉亮.基于邊緣檢測的圖像銳化算法[J].數(shù)字化設(shè)備,2006(12):90-93.
[5] 康牧,許慶功,王寶樹.一種Roberts自適應(yīng)邊緣檢測方法[J].西安交通大學(xué)學(xué)報(bào),2008,42(10):1240-1244.
[6] 蔣婷,譚躍剛,劉泉.基于Sobel算子的圖像清晰度評價(jià)函數(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2008,36(8):129-131.
[7] 孫增國,韓崇昭.基于Laplacian算子的圖像增強(qiáng)[J].計(jì)算機(jī)應(yīng)用研究,2007,24(1):222-224.
[8] 連軍莉.印刷電路板的圖像分割[J].電子工業(yè)專用設(shè)備,2006,51(8):51-53.