李世文
(河源職業(yè)技術學院,廣東 河源517000 )
隨著電子技術的發(fā)展,關于電路板方面圖像處理的研究顯得越來越重要,在PCB的缺陷檢測中,常用的檢測方法有人工檢測、基于機器視覺的檢測等[1],隨著技術的發(fā)展基于機器視覺的檢測方法應用越來越廣,檢測方法主要是通過攝像頭獲取電路板圖像,而后把電路板的圖像發(fā)送給計算機進行灰度化、濾波、圖像分割、邊緣檢測[2]等獲取電路板的缺陷信息[3]。采用這種方式所獲取的邊緣信息沒有考慮具體的環(huán)境和應用場合,所獲取的邊緣信息不一定很準確。
針對這種情況,本文采用局部自適應分割算法并結合數學形態(tài)學來對PCB圖像進行邊緣檢測,數學形態(tài)[4]時針對不同的情況采用不同的相關運算,從而獲得想要的信息。數學形態(tài)學主要包括膨脹、腐蝕、開運算和閉運算,它的應用非常廣泛。所以本文利用數學形態(tài)學在PCB圖像中進行濾波來提高邊緣檢測的效率。
首先通過攝像頭獲取圖像,由于圖像在拍攝過程中可能存在有噪聲干擾,所以需要對灰度化后的圖像進行濾波。然后采用局部自適應去獲取圖像的閾值,通過該閾值來分割PCB圖像,最后對圖像進行形態(tài)濾波和Sobel邊緣檢測。具體如圖1所示。
圖1 PCB缺陷檢測流程
在圖像二值化處理中,由于外界光照的影響,或者是拍攝的角度、噪聲都可以引起圖像的照度不均勻,如果此時用單一的閾值去分隔圖像,會發(fā)現分割的效果比較差,主要原因是由于光照不均勻整幅圖像沒有一個能兼顧整個域的閾值,在這種情況下單一閾值分隔效果顯然不好,為了解決單一閾值分隔問題,本文采用了局部自適應的分隔方法對PCB圖像進行分隔:首先對PCB圖像進行分塊,在圖像分隔的時候,每一塊單獨采用一個閾值進行分隔。在根據具體情況對圖像進行分塊之后,分別單獨計算每個分塊圖像的閾值,具體閾值的計算采用最大類間方差二值化(OSTU)來獲取每塊的閾值。OSTU是日本學者提出的一種圖像分隔方法,它利用統(tǒng)計學的相關知識對圖像進行分隔。具體對于某一分塊圖像而言,這塊圖像按照某個閾值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塊對圖像進行分隔基本上可以滿足要求,如果分塊太少在一定程度上也會影響分隔效果。
數學形態(tài)學在圖像處理中需要構建一個結構元素,該結構元素在圖像上進行匹配操作,獲取圖像的相關特征的同時,在一定程度上還可以抑制噪聲,而在膨脹和腐蝕的基礎上推導出來點動開、閉算法是在PCB缺陷圖像處理中的核心的內容,所以本文主要對這四種操作進行相應的介紹。
公式(8)和(9)分別為膨脹和腐蝕運算,從兩個公式可以看出:與用滑動窗口內分別取最大和最小值的一種濾波技術。其開和閉運算分別對應公式(10)和(11),在腐蝕和膨脹的基礎上推導出來的,開運算也就是先進行腐蝕之后再進行膨脹運算,閉運算是先膨脹后腐蝕。
數學形態(tài)開操作主要功能是濾去峰值噪聲,對毛刺等的去除非常有效,所以在電路板檢測中,利用開操作,也就是先膨脹后腐蝕元素可以去除電路板的毛刺,在PCB電路板去除毛刺之后與標準的電路板相異或,根據異或之后的結果就能檢測PCB板的毛刺缺陷。數學形態(tài)的閉運算能夠濾除波谷噪聲,填平小溝結構,所以在PCB檢測中利用閉操作,也就是先腐蝕后膨脹,可以填平PCB板的凹陷、缺損缺陷。待檢測PCB圖像進行閉操作之后,得到了一副有凹陷和缺損的圖像,與標準PCB圖像相異或就能檢測出PCB的缺損和凹陷等缺陷。
所以針對PCB缺陷圖像處理特點,需要對PCB在不同場合使用開操作或者閉操作。所以需要采用開閉算法的級聯(lián)和組合來實現對不同圖像的檢測處理。圖5為采用形態(tài)濾波之后的效果圖,本文在圖像二值化分隔的基礎上對圖像先進行了腐蝕,之后再對圖像進行了膨脹操作,也就是閉運算,通過閉運算可以和圖4比較,發(fā)現通過該操作后起到了填平凹陷和缺損。
圖5 局部閾值分隔后形態(tài)濾波
Sobel算子首先是利用模板計算偏導數gx和gy的值,然后利用公式(14)判斷實現邊緣的檢測。由于在上面采用了局部自適應閾值法已經對圖像進行了二值化,系統(tǒng)的邊緣信息就會比較好地保留,相比如果前面沒有采用局部自適應二值化,在邊緣檢測中就有可能會漏掉一部分信息。所以即使其在時間和空間來說,復雜度比較大也是值得的。
對形態(tài)濾波之后的圖像進行邊緣檢測,結果如圖6所示,采用本文的方法基本上包含了PCB板的全包邊緣信息。
圖6 邊緣檢測結果
從相關測試結果圖來看,采用全局固定閾值的分割效果并不好,這主要是因為固定閾值完全是用戶根據自己的經驗來設定的,處理不好可以再另外設一種閾值,同時由于圖像受到光照等因素的影響,根本不存在有一個固定的值來對圖像進行分割,這樣采用局部閾值就顯得很有必要了。圖3是局部閾值分割后的PCB圖像,基本上可以正確對圖像進行分割,圖5是形態(tài)濾波之后的PCB圖像,通過它可以濾除部分不需要的信息,圖6是最后邊緣檢測的結果。同時本文通過對大量PCB圖像進行邊緣檢測驗證,發(fā)現采用局部自適應閾值方法在PCB邊緣檢測中的效果非常好,過去由于光照或者其他原因導致檢測效果差等問題都可以解決,在實際的應用中也需要根據不同情況,應用不同的處理方法有效地提取一幅圖像中感興趣的部分。
結合局部自適應閾值分割法、數學形態(tài)濾波技術和Sobel算子對PCB圖像進行了邊緣信息的提取,局部自適應閾值分割法主要是對圖像進行二值化分割,數學形態(tài)濾波技術主要是空洞填充、噪聲濾除,通過Sobel來提取PCB圖像邊緣信息。從仿真結果和實驗所得圖像來看,可以獲得圖像較為準確的邊緣信息,具有較好的應用前景。