摘要:針對(duì)高速高精度幀片機(jī)視覺檢測(cè)中的元件圖像分割問題,提出了一種改進(jìn)分水嶺算法。該算法結(jié)合傳統(tǒng)的邊緣檢測(cè)和閾值分割,并采用一定的集水盆區(qū)域合并準(zhǔn)則,有效地抑制了過分割現(xiàn)象。現(xiàn)場(chǎng)運(yùn)行結(jié)果表明該算法效果很好,滿足了幀片機(jī)視覺檢測(cè)的要求。
關(guān)鍵詞:分水嶺算法 貼片機(jī) 圖像分割
隨著表面貼裝技術(shù)的迅速發(fā)展,貼片機(jī)在我國(guó)電子組裝行業(yè)中的應(yīng)用越來越廣泛。它是機(jī)-電-光以及微型計(jì)算機(jī)控制技術(shù)的綜合體,通過吸取-位移-定位-放置等功能,實(shí)現(xiàn)了將表面貼裝元件快速而準(zhǔn)確地貼裝到PCB板指定的焊盤位置。其中貼片機(jī)視覺檢測(cè)的任務(wù)是完成帖裝元件的中心定位、質(zhì)量檢測(cè)以及貼裝校正等。而實(shí)現(xiàn)正確的視覺定位與檢測(cè)的前提是保證圖像的正確分割,即將貼裝元件準(zhǔn)確地從圖像的背景中分割出來。
圖像分割作為由圖像處理到圖像分析的關(guān)鍵步驟,至今已有許多相關(guān)算法被提出,大致分為三類:一是基于閾值的方法;二是基于區(qū)域的方法;三是基于邊緣的方法。盡管這些方法已被廣泛應(yīng)用于醫(yī)學(xué)圖像分割、遙感影像特征提取以及紅外目標(biāo)檢測(cè)等諸多領(lǐng)域中,但對(duì)于貼片機(jī)這種高速運(yùn)動(dòng)環(huán)境下的高速高精度圖像分割算法國(guó)內(nèi)目前尚處于研究應(yīng)用的起步階段。

分水嶺(Watershed)算法是一種新近發(fā)展起來的數(shù)學(xué)形態(tài)學(xué)圖像分割方法。這種方法之所以引起人們的重視,一是其計(jì)算速度較快,二是物體輪廓線的封閉性,三是定位的精確性。但分水嶺算法對(duì)微弱邊緣也具有良好的響應(yīng),因此采用分水嶺算法進(jìn)行圖像分割時(shí),通常會(huì)產(chǎn)生過度分割的現(xiàn)象。
本文針對(duì)項(xiàng)目組在國(guó)內(nèi)率先研制和產(chǎn)業(yè)化的八頭全自動(dòng)高速高精度貼片機(jī)中涉及的微型計(jì)算機(jī)視覺檢測(cè)問題,提出了一種以分水嶺算法為基礎(chǔ),并結(jié)合傳統(tǒng)的邊緣檢測(cè)和閾值分割算法的改進(jìn)分水嶺算法,避免了分水嶺變換過度分割的缺陷,實(shí)現(xiàn)了貼裝元件與背景的精確分割。
1 傳統(tǒng)閾值分割算法及其缺陷
簡(jiǎn)單說來,灰度圖像的閾值分割就是先確定一個(gè)處于圖像灰度取值范圍之中的灰度閾值,然后將圖像中各像素的灰度值與這個(gè)閾值相比較。像素灰度值大于閾值的為一類,像素灰度值小于閾值的為另一類,灰度值等于閾值的像素可歸入上述兩類之一。這兩類像素一般分屬圖像中的兩類區(qū)域,所以對(duì)像素根據(jù)閾值分類就達(dá)到了將目標(biāo)從背景中分割出來的目的。
如果要把圖像中各種灰度的像素分成多個(gè)不同的類,那么需要選擇一系列閾值以將每個(gè)像素分到合適的類別中去。如果只用一個(gè)閾值分割稱為單閾值分割方法,如果用多個(gè)閾值分割稱為多閾值分割方法。
一幅原始圖像f(x,y)取單閾值T分割后的圖像可定義為:

在一般的多閾值分割情況下,取閾值分割后的圖像可表示為:
F(x,y)=k 如Tk-1<f(x,y)≤Tk k=0,1,2,…,K (2)
其中T0,T1,…,Tk是一系列分割閾值,k表示賦予分割后圖像各區(qū)域的不同標(biāo)號(hào)。
由此可見,閾值分割算法主要有兩個(gè)步驟:
(1)確定需要的閾值;
(2)將分割閾值與像素值比較以劃分像素。
以上步驟中,確定閾值是分割的關(guān)鍵,如果能確定一個(gè)合適的閾值就可以方便地將圖像分割開來。但由于圖像的復(fù)雜多變性,確定一個(gè)準(zhǔn)確的閾值并非易事。近年來許多閾值分割算法還借用了神經(jīng)網(wǎng)絡(luò)、模糊數(shù)學(xué)、遺傳算法、小波變換等工具,但由于所處理的圖像不同,每種方法的適用性都受到一定的局限。特別是對(duì)于貼片機(jī),照明情況復(fù)雜多變,光照條件和變化對(duì)貼裝元件圖像的灰度分布以及元件與背景的對(duì)對(duì)度影響很大,因此很難確定一個(gè)準(zhǔn)確的閾值來對(duì)圖像進(jìn)行分割,傳統(tǒng)的閾值分割算法受到了很大限制。特別當(dāng)元件與背景的對(duì)比度差或元件旁邊有干擾點(diǎn)時(shí),即使閾值已被確定,也有可能導(dǎo)致誤分割。
2 傳統(tǒng)分水嶺算法及其缺陷
分水嶺算法是一種基于數(shù)學(xué)形態(tài)學(xué)的分割方法,基本原理是把灰度圖像看作是測(cè)地學(xué)上的地形表面,圖像中每個(gè)像素的灰度值代表該點(diǎn)的海拔高度,圖像中每一個(gè)局部極小值及其影響區(qū)域被稱為集水分別,而集水分盆的邊界則形成分水嶺。分水嶺的計(jì)算方法很多,圖1描述了分水嶺算法的經(jīng)曲體形:浸沒模擬。在圖像的每一個(gè)局部極小值處刺穿一個(gè)小孔,然后將其逐漸深入一個(gè)湖中,圖像的局部極小值點(diǎn)先進(jìn)水,水逐漸浸入整個(gè)集水盆地。當(dāng)水位達(dá)到盆地的邊緣高度就將溢出,這時(shí)在水溢出處建立堤壩。如此直到整個(gè)圖像沉入水中,所建立的堤壩就成為分開盆地的分水嶺。
g(x,y)=W{f(x,y)} (3)
基于上述浸沒模擬,人們提出了許多分水嶺計(jì)算方法,比較經(jīng)典的是Vincent L提出的。在該算法中,分水嶺計(jì)算分為兩個(gè)步驟,一個(gè)是排序,另一個(gè)是淹沒。首先按像素灰度值的升存排列像素,然后升序?qū)崿F(xiàn)淹沒過程,并利用一個(gè)先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),即循環(huán)隊(duì)列來擴(kuò)展標(biāo)記過的聚水分別地。通過一定的規(guī)則,分配分水嶺標(biāo)記,最終得到準(zhǔn)確的結(jié)果。
3 改進(jìn)分水嶺算法
圖像分割的目的是將圖像分割成不同的特體,即提取出物體的邊緣。由于特體邊緣的灰度變化比較強(qiáng)烈,而梯度圖像正好描述了該圖的灰度變化情況,因此,可使用梯度圖像的分水嶺變化換來進(jìn)行圖像分割。梯度圖像可將原始圖像通過梯度算子邊緣檢測(cè)得到,這里采用索貝爾(Sobel)算子,其兩價(jià)個(gè)3×3梯度變換卷積模板如圖3。
原始輸入圖像f(x,y)經(jīng)過邊緣檢測(cè)索貝爾算法S{·}得到梯度圖像f‘(x,y)的算法可以簡(jiǎn)單表示為:
f‘(x,y)=S{f(x,y)} (4)
分水嶺變換得到輸入圖像的集水分別圖像,而集水盆之間相鄰的像素點(diǎn),即為分水嶺。顯然,分水嶺表示圖像極大值點(diǎn)。但是這些極大值點(diǎn)中并非所有都是期望的,有些是由于物體的細(xì)小結(jié)構(gòu)和噪聲引起。如果每一個(gè)極大值點(diǎn)都確定一個(gè)集水盆,那么輸出圖像將產(chǎn)生過分割。由于背景之間、物體之間的像素灰度值分別具有相似性,而背景與物體之間的像素灰度值則差別較大,分水嶺變換輸出圖像的各極大值點(diǎn)之間也反映了這種相似性和差別。因此,設(shè)定一分割閾值,定義為兩相鄰極大值點(diǎn)之間的灰度差。其某一極大值點(diǎn)與它最鄰近的另一極大值點(diǎn)之間的灰度差小于該閾值時(shí),由這兩個(gè)極大值點(diǎn)確定的集水盆將合并;否則兩集水盆操保持不變。該算法描述為:設(shè)分水嶺變換后的輸出圖像為g(x,y),任意兩相鄰極大值點(diǎn)的灰度值分別為p1、p2,對(duì)應(yīng)的集水分盆分別為C1、C2,若用(C1+C2)表示兩集水盆合并,(C1、C2)表示兩集水分別保持不變,分割閾值為T1,則該算法的輸出圖像G(x,y)可表示為:

經(jīng)過區(qū)域合并后的圖像G(x,y)為一灰度圖像,而且特體仍有可能被分割成灰度值各不相同的幾個(gè)區(qū)域??紤]到元件位于圖像中心位置一定范圍內(nèi),基于這種先驗(yàn)知識(shí),對(duì)G(x,y)再作一閾值分割,取閾值T2為圖像左上角位置像素灰度值,G(x,y)中灰度值等于T2的像素變換為最小值(0),其余像素變換為最大值(255),經(jīng)過變換后的目標(biāo)圖像F(x,y)可表示為:

這樣得到的目標(biāo)圖像為二值化圖像,元件為全白,背景為全黑,實(shí)現(xiàn)了元件的正確分割。
綜上所述,改變分水嶺算法的具體實(shí)現(xiàn)步驟如下:
(1)原始輸入圖像f(x,y)進(jìn)行分水嶺變換輸出包含所有集水盆的灰度圖像g(x,y);
(2)梯度圖像f‘(x,y)進(jìn)行分水嶺變換輸出包含所有集水盆的灰度圖像g(x,y);
(3)針對(duì)g(x,y)中所有相鄰的集水分別,在分割閾值T1下進(jìn)行區(qū)域合并,輸出灰度圖像G(x,y)。其中T1取值為g(x,y)中特體與背景所處極大值點(diǎn)之間的最小灰度差,算法描述見式(5);
(4)G(x,y)在閾值T2下進(jìn)行分割,算法描述見式(6),最終得到目標(biāo)圖像F(x,y)。
至此實(shí)現(xiàn)了物體與背景的分割。
4 試驗(yàn)結(jié)果及分析
將改進(jìn)分水嶺算法應(yīng)用于貼片機(jī)視覺檢測(cè)中的貼裝元件圖像分割。為了便于比較,本文也給出了采用傳統(tǒng)閾值分割后的分割結(jié)果,如圖3。
第一列為三種類型元件及其吸嘴的原始灰度圖,分別為Chip、Sot和Soic??梢姴煌愋偷脑?,其圖像灰度分布各不相同。
.gif)
第二列為傳統(tǒng)閾值分割后的二值化圖,分割閾值分別為90、75和50??梢姼黝愒姆指铋撝挡顒e較大,不能統(tǒng)一。如果閾值太低,則吸嘴上部分較亮的區(qū)域也被分割出來;反之,則元件某些管腳的連接部分就不能合并到管腳中,導(dǎo)致這些管腳被分割成兩部分。這些都不利于后續(xù)圖像分析。
第三列為采用改進(jìn)分水嶺算法分割一的二值化圖,分割閾值均為50??梢?,吸嘴完全被分割到背景中,而元件所有管腳及其連接部分都合并到一個(gè)區(qū)域中,不存在過分割現(xiàn)象。而且由于該算法采用的閾值實(shí)際為一相對(duì)值(相鄰極值點(diǎn)的灰度差),不同于傳統(tǒng)閾值分割中閾值T1為一絕對(duì)值。試驗(yàn)證明,當(dāng)T1在一個(gè)比較大的范圍內(nèi)變化時(shí),均能實(shí)現(xiàn)元件的正確分割,該算法具有較好的穩(wěn)定性。
圖像的正確分割是進(jìn)行圖像分析的前景,本文提出的將分水嶺變換與邊緣檢測(cè)、閾值分割相結(jié)合以及集水盆合并處理的改進(jìn)算法,可以比較好地處理物體的分割和背景的抑制與消除問題。該算法在貼片機(jī)現(xiàn)場(chǎng)生產(chǎn)過程中的應(yīng)用表明,其性能穩(wěn)定可靠,實(shí)現(xiàn)了貼裝元件圖像的正確分割,滿足了貼片機(jī)視覺檢測(cè)的要求,為后續(xù)圖像分析打下了良好的基礎(chǔ)。











