雷臻宇,賀香華,駱佩文,周 聰,謝德芳
(廣州大學(xué)機(jī)械與電氣工程學(xué)院,廣州 510006)
芯片技術(shù)的不斷發(fā)展和進(jìn)步,其性能越來越高,在各領(lǐng)域的使用越來越廣泛[1-3]。芯片在出廠前一般使用料盤的形式進(jìn)行包裝,芯片裝入卷帶再纏繞在料盤里,如圖1所示。芯片價(jià)格昂貴,出廠前需要對(duì)每個(gè)料盤內(nèi)芯片數(shù)目進(jìn)行準(zhǔn)確計(jì)數(shù),但每個(gè)料盤內(nèi)芯片數(shù)量少則幾千,多則幾萬個(gè),且單個(gè)芯片體積非常小,無法使用人工進(jìn)行計(jì)數(shù),需要有穩(wěn)定可靠的解決方案完成整盤芯片的快速自動(dòng)計(jì)數(shù)工作。近年來,機(jī)器視覺技術(shù)以其快速、穩(wěn)定、可靠的性能,在工農(nóng)業(yè)生產(chǎn)中的尺寸測(cè)量、缺陷檢測(cè)和自動(dòng)計(jì)數(shù)等領(lǐng)域得到了較廣泛的應(yīng)用。機(jī)器視覺技術(shù)可用于對(duì)農(nóng)作物計(jì)數(shù),評(píng)估生產(chǎn)量、優(yōu)化管理[4-6];對(duì)圖像細(xì)胞進(jìn)行計(jì)數(shù),用于醫(yī)學(xué)診斷[7];甚至利用圖像對(duì)運(yùn)動(dòng)物體進(jìn)行計(jì)數(shù)等[8]。利用機(jī)器視覺在芯片計(jì)數(shù)領(lǐng)域,目前還沒有找到相關(guān)文獻(xiàn)。
圖2為通過使用X光在料盤垂直方向拍照獲取的料盤圖像,圖3為芯片部分局部放大的圖像。使用圖像對(duì)產(chǎn)品進(jìn)行計(jì)數(shù),一般是首先設(shè)定產(chǎn)品的模板圖像,然后使用模板匹配的方法在圖像中搜索匹配到與模板類似的對(duì)象,從而實(shí)現(xiàn)產(chǎn)品的計(jì)數(shù)[9-10]。但針對(duì)芯片計(jì)數(shù)的應(yīng)用,使用模版匹配的方法存在以下幾個(gè)問題:(1)芯片型號(hào)眾多且切換頻繁,每次切換型號(hào)都需停機(jī)重新制作模版,降低設(shè)備使用效率;(2)每張圖片中,芯片數(shù)量眾多,全部使用模版匹配耗時(shí)較長(zhǎng);(3)芯片包裝緊密,有些相鄰芯片在圖像中粘連在一起,會(huì)對(duì)匹配造成較大干擾,影響最終計(jì)數(shù)結(jié)果的精度。
圖1 芯片包裝料盤
為了解決以上問題,本文提出基于X光圖像的芯片在線自適應(yīng)計(jì)數(shù)算法,可根據(jù)不同芯片產(chǎn)品的圖像信息自動(dòng)調(diào)整相關(guān)參數(shù);對(duì)于圖像中芯片相互粘連的問題,通過自動(dòng)估算單個(gè)芯片的大小,即使緊密粘連在一起的芯片也可以大致估算出相應(yīng)的數(shù)目。
結(jié)合實(shí)際生產(chǎn)需求,本算法需要滿足以下條件:(1)針對(duì)不同類型芯片圖像,算法無需人工干預(yù),可自動(dòng)調(diào)整相關(guān)參數(shù);(2)偏差率小于0.3%;(3)單張圖片耗時(shí)小于3 s。
算法流程如圖3所示。本算法主要分為以下幾個(gè)步驟:
(1)讀取芯片的X光圖像;
(2)自動(dòng)提取芯片感興趣區(qū)域:首先去除滾筒區(qū)域的干擾,然后為降低背景區(qū)域污漬的影響,利用自動(dòng)閾值提取卷帶區(qū)域,最后在卷帶區(qū)域里利用自動(dòng)閾值提取出芯片區(qū)域;
(3)估算單個(gè)芯片面積,并計(jì)算芯片總數(shù);
(4)輸出結(jié)果。
圖3 算法流程圖
首先統(tǒng)計(jì)出芯片料盤圖像的灰度直方圖,如圖4所示。結(jié)合圖2芯片料盤圖像,芯片、滾筒、卷帶和背景區(qū)域分別分布在相應(yīng)的波峰帶。因此,在各波峰帶做閾值分割,即可提取相應(yīng)區(qū)域。圖4中,滾筒區(qū)域峰值與芯片區(qū)域峰值相隔不明顯,會(huì)影響對(duì)芯片區(qū)域提取的效果,因此需從原圖中去除滾筒區(qū)域。
圖4 灰度直方圖
由于芯片被包裝纏繞在同種規(guī)格的料盤上,因此滾筒區(qū)域的灰度值范圍基本一致,采用固定閾值分割,對(duì)滾筒區(qū)域進(jìn)行自動(dòng)提取屏蔽。
式中,i,j分別對(duì)應(yīng)圖像中第i行,j列。 f(i,j)、 g(i,j)分別對(duì)應(yīng)閾值分割前后對(duì)應(yīng)點(diǎn)的灰度值,m1、m2為閾值。
對(duì)滾筒區(qū)域做閾值分割,取m1=0,m2=80,分割后的結(jié)果如圖5所示。
對(duì)分割后的區(qū)域采用最大面積特征提取[11],提取結(jié)果即為滾筒區(qū)域。從圖5可以看出,滾筒區(qū)域邊緣部分并沒有被完全提取出來,因此對(duì)滾筒區(qū)域做膨脹運(yùn)算。膨脹后的區(qū)域再與原圖做補(bǔ)集運(yùn)算,得到去除滾筒區(qū)域B,如圖6所示,此時(shí)滾筒區(qū)域已被去除,圖像記為S。
圖5 滾筒區(qū)域分割結(jié)果
圖6 去除滾筒區(qū)域B
補(bǔ)集運(yùn)算如圖7所示,A區(qū)域與B區(qū)域構(gòu)成集合U,對(duì)A區(qū)域做補(bǔ)集運(yùn)算得到B。
由于個(gè)別圖像上存在著污漬、噪聲干擾且污漬灰度值與芯片灰度值接近,如圖8所示,直接提取芯片區(qū)域會(huì)一并將污漬提取出來,影響計(jì)數(shù)結(jié)果。為減少污漬干擾,先提取出卷帶區(qū)域,在卷帶區(qū)域的背景下提取芯片區(qū)域。
不同芯片卷帶區(qū)域的灰度峰值范圍不同,大小也不同,所以基于固定閾值分割的方式對(duì)卷帶區(qū)域進(jìn)行提取是不穩(wěn)定的,效果也不理想。對(duì)此,本文提出一種自動(dòng)閾值方法,能根據(jù)不同芯片圖像的區(qū)域信息自動(dòng)調(diào)整相應(yīng)閾值。
首先統(tǒng)計(jì)出S的灰度直方圖,直方圖經(jīng)過高斯函數(shù)(σ=1.5)平滑[11]后如圖9所示。
圖7 補(bǔ)集運(yùn)算
圖8 帶污漬的圖像
圖9 灰度直方圖
然后找出直方圖上的波峰波谷。將灰度直方圖看成函數(shù)f(x),x∈[0,255]∩x∈N的函數(shù)圖,定義波峰波谷為函數(shù)的極大、極小值(個(gè)別波峰由于峰值太小,直方圖上體現(xiàn)不明顯)。對(duì)此函數(shù)定義:如果存在點(diǎn)x0的某一鄰域[x0-1,x0+1],使得對(duì)任意x∈[x0-1,x0+1],都有f(x0) >f(x),則稱x0為f(x)的極大值點(diǎn),f(x0)為極大值。同理,極小值為對(duì)任意x∈[x0-1,x0+1],都有f(x0) <f(x)。經(jīng)高斯平滑后,灰度值會(huì)產(chǎn)生細(xì)微波動(dòng),造成了f(x)<1的極大值點(diǎn),為排除此影響,選出的極大值需大于50。若臨界值f(0)>f(1),f(255)>f(254),則x=0,x=255為極大值點(diǎn)。統(tǒng)計(jì)出所有波峰點(diǎn)xn(n=1,2,3…且x1<x2<x3…<xn)。
最后在灰度直方圖上,取后2個(gè)波峰即xn和xn-12個(gè)函數(shù)點(diǎn)間的極小值作為閾值m2,m1取0對(duì)S2進(jìn)行閾值分割,對(duì)分割后的區(qū)域作最大區(qū)域面積特征提取,提取結(jié)果即為卷帶區(qū)域。在做最大區(qū)域面積提取后,卷帶區(qū)域邊緣可能會(huì)有損失,如圖10所示。因此在提取最大區(qū)域面積前應(yīng)對(duì)分割區(qū)域作膨脹運(yùn)算。
卷帶區(qū)域提取后,在卷帶區(qū)域背景下做自動(dòng)閾值提取芯片區(qū)域。
同樣的,首先統(tǒng)計(jì)出卷帶區(qū)域的灰度直方圖,用高斯函數(shù)平滑(σ=1.5),如圖11所示。
圖10 卷帶區(qū)域提取結(jié)果
圖11 灰度直方圖
取前2個(gè)波峰x1和x22個(gè)函數(shù)點(diǎn)間的極小值作為閾值m2,m1取0。對(duì)分割后的區(qū)域做面積特征提取,提取面積大于等于5像素的區(qū)域,此時(shí)區(qū)域可認(rèn)為是芯片區(qū)域,如圖12所示。
圖12 芯片區(qū)域提取結(jié)果
芯片的提取區(qū)域用“+”標(biāo)志。在統(tǒng)計(jì)結(jié)果發(fā)現(xiàn),個(gè)別圖像芯片與卷帶灰度差異不明顯,難以完全分割提取出來,如圖13所示。因此利用增強(qiáng)對(duì)比度的方法,增加芯片邊緣區(qū)域灰度差異后再進(jìn)行閾值分割。
圖13 增強(qiáng)對(duì)比度前后比較
增強(qiáng)對(duì)比度:首先對(duì)S進(jìn)行均值濾波[11],掩濾波器大小為7×7。然后對(duì)濾波后的圖像做如下處理:
式中,ori是原始灰度值,mean是濾波后的灰度值,F(xiàn)ac作為增強(qiáng)對(duì)比度的度量,round()把實(shí)數(shù)四舍五入轉(zhuǎn)化為整數(shù),取Fac=1。
如圖14所示,提取后的芯片區(qū)域還存在以下問題:(1)圖14(a)存在多個(gè)粘連區(qū)域,有2個(gè)、3個(gè)甚至更多芯片區(qū)域粘連在一起;(2)圖14(b)圖像上的污漬被提取出來產(chǎn)生干擾(噪聲區(qū)域);(3)圖14(c)污漬與芯片一起形成粘連區(qū)域。
圖14 誤差來源
由于圖像上的芯片精細(xì)且分布緊密,很難有方法分割出單個(gè)芯片區(qū)域而不影響其他區(qū)域。為此,本文提出基于連通區(qū)域面積的計(jì)數(shù)方法。
首先對(duì)提取出的芯片區(qū)域面積做概率統(tǒng)計(jì),如圖15所示。面積出現(xiàn)次數(shù)最多的即為單個(gè)芯片的標(biāo)準(zhǔn)面積s1。由于單個(gè)芯片面積小且占絕大多數(shù),為提高算法速度,只需0~400像素范圍內(nèi)的區(qū)域面積做概率統(tǒng)計(jì)。
圖15 面積統(tǒng)計(jì)圖
圖16 倍數(shù)統(tǒng)計(jì)圖
然后針對(duì)這些噪聲、粘連區(qū)域設(shè)置相應(yīng)的倍數(shù)關(guān)系來減少誤差,提高精度。用600張圖片作為測(cè)試集,測(cè)試倍數(shù)與實(shí)際個(gè)數(shù)之間的關(guān)系,如圖16所示。
針對(duì)圖16倍數(shù)關(guān)系交界區(qū)域做誤差統(tǒng)計(jì),最終得出如表1所示的倍數(shù)關(guān)系。
表1 芯片區(qū)域劃分
最后芯片總數(shù)為:
選擇配置為CPU Intel Core i5 2.5GHZ,內(nèi)存8G的PC測(cè)試算法。實(shí)驗(yàn)數(shù)據(jù)為500張不同的芯片圖像,幾種代表性芯片圖像的提取結(jié)果如圖17所示。測(cè)試步驟如下:
(1)用模板匹配方法進(jìn)行計(jì)數(shù),對(duì)匹配結(jié)果用“+”標(biāo)記,統(tǒng)計(jì)出漏標(biāo)多標(biāo)的誤差數(shù)量,實(shí)際數(shù)量z;
圖17 不同芯片圖像舉例
(2)設(shè)置好倍數(shù)關(guān)系,利用本文算法對(duì)500張圖片自動(dòng)計(jì)數(shù);
(3)匯總實(shí)驗(yàn)結(jié)果,計(jì)算各自偏差率。
將2種方法的計(jì)數(shù)結(jié)果匯總:統(tǒng)計(jì)出算法的平均偏差率y,平均耗時(shí)。xi表示單個(gè)圖片的偏差數(shù),zi表示單個(gè)圖片的實(shí)際數(shù)量。
實(shí)驗(yàn)結(jié)果如表2所示。
表2 實(shí)驗(yàn)結(jié)果
從表2可知,模板匹配方法不僅需要頻繁切換模板,而且偏差較高,耗時(shí)長(zhǎng)。而本文算法不僅能做到根據(jù)圖像自適應(yīng)調(diào)整相關(guān)參數(shù),而且通過對(duì)粘連區(qū)域設(shè)立倍數(shù)關(guān)系,大大改善了偏差率。偏差率平均為0.03%,平均耗時(shí)2.9 s/張(圖像分辨率為3 072×2 592),滿足實(shí)際需求。
本文提出一種基于X光圖像的芯片在線自適應(yīng)計(jì)數(shù)算法,該方法基于自動(dòng)閾值,實(shí)現(xiàn)了相關(guān)參數(shù)的自動(dòng)調(diào)整,通過設(shè)置單個(gè)芯片參考面積和倍數(shù)關(guān)系,解決了芯片粘連緊密的問題。實(shí)驗(yàn)表明,最終平均誤差為0.03%,耗時(shí)平均為2.9s/張(圖像分辨率為3 072×2 592),能達(dá)到生產(chǎn)線上的自動(dòng)化要求,有較高的實(shí)用價(jià)值。如何分割芯片與污漬粘連的區(qū)域,是下一步需要深入研究的問題。