梁天為, 朱呈祥, 陳 浩, 楊 光
(1.江蘇師范大學(xué) 電氣工程及自動(dòng)化學(xué)院,江蘇 徐州 221116;2.聚時(shí)科技(上海)有限公司,上海 201100)
隨著芯片產(chǎn)業(yè)鏈在國(guó)內(nèi)外的不斷開拓,芯片封裝檢測(cè)技術(shù)得到了快速發(fā)展,芯片制造的諸多工藝已經(jīng)在向亞微米級(jí)方向發(fā)展。球柵陣列(ball grid array,BGA)封裝芯片是諸多集成芯片的一種[1],植球工藝的封裝質(zhì)量直接影響芯片的性能與可靠性。鑒于錫球直徑小、檢測(cè)指標(biāo)精度高的特點(diǎn),使得普通的接觸式測(cè)量技術(shù)無法滿足要求。目前應(yīng)用于BGA芯片的檢測(cè)技術(shù)主要有[2~9]:基于X射線的錫球檢測(cè)、基于平面圖像處理技術(shù)的錫球檢測(cè)、基于機(jī)器學(xué)習(xí)的錫球表面缺陷檢測(cè)等?;赬射線的檢測(cè)技術(shù),雖是無損檢測(cè),但檢測(cè)效率不高且依賴于檢測(cè)人員的主觀判定;基于平面圖像處理的檢測(cè)技術(shù),主要是針對(duì)錫球的表面缺陷,如錫球半徑、間距、偏移等,無法測(cè)量到錫球的三維指標(biāo),且錫球表面光滑易反光,所以拍攝時(shí)對(duì)打光系統(tǒng)的要求嚴(yán)格;基于機(jī)器學(xué)習(xí)的檢測(cè)技術(shù),同上,也是主要針對(duì)錫球的表面缺陷,如空焊、過焊、缺焊以及錫球粘連等。此外,也有采用CCD方法對(duì)BGA錫球的三維尺寸進(jìn)行測(cè)量[10],但該方法建模復(fù)雜,對(duì)硬件設(shè)施的要求也高。經(jīng)相關(guān)文獻(xiàn)檢索以及工程實(shí)踐經(jīng)驗(yàn)表明,目前國(guó)內(nèi)尚未有一種成熟的芯片外觀檢測(cè)系統(tǒng),尤其是BGA芯片錫球的檢測(cè)。
現(xiàn)有檢測(cè)方法中,尚未有從芯片點(diǎn)云入手進(jìn)行缺陷檢測(cè)的公開文獻(xiàn)報(bào)道?;邳c(diǎn)云的高精度特點(diǎn),本文提出一種新的BGA芯片錫球三維檢測(cè)方法。其原理是將獲取的BGA芯片點(diǎn)云轉(zhuǎn)成深度圖像,并引入連通域分析方法進(jìn)行處理,可快速地得到芯片錫球高度及其共面度。算法魯棒性好,速度和精度均可以達(dá)到實(shí)時(shí)檢測(cè)要求,有效避免了從點(diǎn)云做直接處理的低效率。
據(jù)行業(yè)內(nèi)要求,BGA芯片的三維檢測(cè)指標(biāo)主要包括錫球高度、錫球共面度、芯片底座高度等。本文主要討論錫球高度和共面度的檢測(cè),如圖1所示。圖中,高度為錫球頂部到芯片底座的距離,共面度以錫球高度偏移量作為衡量指標(biāo)。
圖1 檢測(cè)指標(biāo)
1.2.1 深度圖像轉(zhuǎn)換原理
深度圖像(depth image)是包含視點(diǎn)到物體對(duì)象表面距離相關(guān)信息的平面圖像[11],其每個(gè)像素值代表視點(diǎn)到物體表面的實(shí)際距離。本文針對(duì)獲取的芯片表面點(diǎn)云,利用沿Z方向投影在Z坐標(biāo)值最小的點(diǎn)所在的XY平面并歸一化的方法,將其轉(zhuǎn)為深度圖像,點(diǎn)云中的各三維點(diǎn)一一對(duì)應(yīng)深度圖像中的各像素,如圖2所示,圖2中5個(gè)三維點(diǎn)與視點(diǎn)所在面的距離實(shí)際用對(duì)應(yīng)二維像素灰度值表示。
圖2 深度圖像轉(zhuǎn)換原理
1.2.2 檢測(cè)算法
根據(jù)具體檢測(cè)環(huán)境的情況,調(diào)節(jié)雙目線掃相機(jī)的光強(qiáng)、曝光時(shí)間等參數(shù),獲取到完整的三維點(diǎn)云數(shù)據(jù)。在獲取BGA芯片點(diǎn)云數(shù)據(jù)后,根據(jù)點(diǎn)云的各點(diǎn)間距,預(yù)先設(shè)置好投影圖像的大小和像素間距,利用上述圖像轉(zhuǎn)換原理將芯片點(diǎn)云轉(zhuǎn)為深度圖像。設(shè)定深度圖的位深度為16位,各像素的灰度值代表點(diǎn)云各點(diǎn)到視點(diǎn)所在水平面的距離大小。針對(duì)深度圖像,預(yù)設(shè)投影的相對(duì)高度,即設(shè)定點(diǎn)云中Z值最小點(diǎn)到視點(diǎn)所在水平面的距離
hd=2(zmax-zmin)
(1)
式中zmax,zmin分別為點(diǎn)云中Z坐標(biāo)值的最小與最大值,zmax-zmin即為芯片的整體高度,視點(diǎn)所在位置設(shè)置為芯片整體高度的2倍距離所在的水平面。利用隨機(jī)抽樣一致性(RANSAC)算法擬合出芯片點(diǎn)云的基座平面并得到方程參數(shù)[12]。針對(duì)深度圖像,利用連通域分析方法[13],提取各錫球區(qū)域的像素點(diǎn)并聚類,以此求取各區(qū)域的二維中心坐標(biāo)。然后,選取中心點(diǎn)的8鄰域并提取該9點(diǎn)對(duì)應(yīng)的三維坐標(biāo)點(diǎn)共同求平均,賦值給錫球頂部三維點(diǎn),以減小中心點(diǎn)選取不精確帶來的誤差,提高算法的魯棒性。
上述連通域分析算法主要包括:
1)閾值分割:二值化的主要方法有基于邊緣灰度、基于直方圖聚類以及定值選取的方法等。本文針對(duì)深度圖像,通過設(shè)定錫球區(qū)域相對(duì)于基座表面的高度定值(Z方向)作為閾值T來進(jìn)行二值化操作
(2)
輸入16位深度圖像g(x,y)可得到8位的二值圖像gb(x,y)
(3)
上述操作可將圖像分為目標(biāo)前景與背景,黑色為背景,白色前景即為各錫球區(qū)域。
2)形態(tài)學(xué)處理:由于通過設(shè)定的高度閾值進(jìn)行二值化操作后,目標(biāo)不免會(huì)被分割成不連續(xù)的區(qū)域,因此,為減少計(jì)算錯(cuò)誤,填充各區(qū)域空洞并去除各區(qū)域間的噪聲點(diǎn),使各錫球區(qū)域逼近圓形化,形態(tài)學(xué)處理十分重要。形態(tài)學(xué)處理是利用結(jié)構(gòu)元素對(duì)圖像目標(biāo)區(qū)域進(jìn)行分析的方法[14]。根據(jù)需求,首先設(shè)定結(jié)構(gòu)元素M1的形狀為橢圓,確定元素大小,對(duì)二值圖像G進(jìn)行閉運(yùn)算操作獲得圖像G1,目的是填充目標(biāo)區(qū)域內(nèi)的細(xì)小空洞、平滑其邊界。定義如下
G1=GM1=(G⊕M1)?M1
(4)
其次,設(shè)定結(jié)構(gòu)元素M2的形狀為橢圓,確定元素大小,對(duì)圖像G1進(jìn)行開運(yùn)算操作,目的是消除孤立點(diǎn)、平滑其邊界,以此保證各錫球區(qū)域的完整性。定義如下
(5)
3)連通域分析:對(duì)于二值圖,連通域分析實(shí)際是采用4或8鄰域的方法對(duì)像素值相同或相似的像素進(jìn)行標(biāo)記并聚類,可得到各類中所有的像素坐標(biāo)值以及像素總數(shù)。
根據(jù)各錫球區(qū)域中心橫縱坐標(biāo)的最大與最小值,將各錫球依次排序。得到錫球頂部三維坐標(biāo)點(diǎn)后,利用點(diǎn)到平面的距離,可計(jì)算得到錫球的高度;求取各錫球高度的平均值,利用作差法可得各錫球的位置偏差,求得共面度。設(shè)各錫球頂部坐標(biāo)點(diǎn)為p(xi,yi,zi),i∈{1,2,…,m},則各錫球的高度及共面度如下
(6)
(7)
式中hi為各錫球高度;Ci為各錫球的偏移量,代表共面度;m為錫球總數(shù);基座平面方程為Ax+By+Cz+D=0。
本文研究中,通過Chromasens—3DPIXA雙目三維線掃相機(jī)獲取BGA芯片的點(diǎn)云數(shù)據(jù),點(diǎn)云數(shù)量為2 273 758個(gè)。算法利用Visual Studio 2017+OpenCV庫(kù)等開發(fā),使用OpenMP和多線程等技術(shù)提升速度,可同時(shí)處理多個(gè)BGA芯片點(diǎn)云;計(jì)算機(jī)配置為Intel?CoreTMi7—8700,GeForce GTX 1660,16.0 GB運(yùn)行內(nèi)存。圖3為獲取的BGA芯片部分三維點(diǎn)云示意及轉(zhuǎn)換后的深度圖,圖像大小預(yù)設(shè)為2 560×2 560,像素間距等于點(diǎn)云的各點(diǎn)間距。
圖3 芯片點(diǎn)云與深度圖像
擬合基座表面獲取平面方程參數(shù)后,通過設(shè)定的閾值進(jìn)行二值化處理,得到圖4(a)所示的結(jié)果。其中,圖4(b)為圖4(a)的特寫視圖,可明顯看出,各錫球的目標(biāo)區(qū)域存在不連貫性。利用本文所述的形態(tài)學(xué)處理方法,通過對(duì)比大小不同的結(jié)構(gòu)元素所得出的效果,最終設(shè)置閉運(yùn)算的橢圓形結(jié)構(gòu)元素M1大小為15×15,開運(yùn)算的橢圓形結(jié)構(gòu)元素M2大小為5×5,對(duì)二值圖進(jìn)行處理,結(jié)果如圖4(c)所示??擅黠@看出各錫球區(qū)域較為完整,更加逼近圓形化,且區(qū)間不存在孤立的噪聲點(diǎn)。
圖4 連通域分析結(jié)果
通過連通域分析后,利用上述公式可求取各錫球的高度及共面度,將計(jì)算結(jié)果繪制成如圖5所示,圖中橫坐標(biāo)為芯片中的552個(gè)錫球,縱坐標(biāo)為計(jì)算結(jié)果。從運(yùn)行時(shí)間上來看,本文檢測(cè)算法共計(jì)耗時(shí)498.34 ms。為突出算法的優(yōu)越性,本文直接對(duì)芯片點(diǎn)云進(jìn)行處理,基于PCL算法庫(kù)去除基座點(diǎn)云并利用聚類分割算法將各錫球單獨(dú)分割計(jì)算,算法耗時(shí)7.392 s。由此可見本文算法的耗時(shí)遠(yuǎn)遠(yuǎn)小于對(duì)點(diǎn)云做直接處理的耗時(shí),表明本文提出的三維檢測(cè)方法,可有效地用于BGA芯片錫球的實(shí)時(shí)三維檢測(cè)。
圖5 檢測(cè)結(jié)果的數(shù)據(jù)分布
對(duì)同一芯片依次采集5次點(diǎn)云數(shù)據(jù),對(duì)其進(jìn)行重復(fù)性實(shí)驗(yàn),并利用更加精密的設(shè)備(±2 μm)獲取該芯片各錫球的高度數(shù)據(jù)作為標(biāo)準(zhǔn)參數(shù)。將每次實(shí)驗(yàn)測(cè)量的錫球高度數(shù)據(jù)與該芯片錫球標(biāo)準(zhǔn)參數(shù)的絕對(duì)差值的最大值,作為每次實(shí)驗(yàn)的最大誤差,從而判定測(cè)量的重復(fù)性精度,誤差如下
(8)
式中E為每次實(shí)驗(yàn)的最大誤差;h′i,hi分別為各錫球的測(cè)量數(shù)據(jù)與標(biāo)準(zhǔn)數(shù)據(jù);n為芯片的錫球總數(shù)。表1給出了每次實(shí)驗(yàn)的最大誤差計(jì)算數(shù)據(jù)。可見,實(shí)驗(yàn)的最大誤差不超過0.01 mm。這一結(jié)果表明,本文方法檢測(cè)精度明顯優(yōu)于行業(yè)內(nèi)通用的檢測(cè)標(biāo)準(zhǔn)(誤差為0.015 mm[15])。
表1 實(shí)驗(yàn)的最大誤差 mm
本文提出了一種新的BGA芯片錫球三維檢測(cè)方法。首先將采集到的BGA芯片點(diǎn)云轉(zhuǎn)換成深度圖像,然后經(jīng)過點(diǎn)云與圖像信息的預(yù)處理,利用連通域分析方法并行計(jì)算各錫球的高度及共面度。在特定的光強(qiáng)下多次重復(fù)性實(shí)驗(yàn)的最大誤差皆不超過0.01 mm,相比于直接做點(diǎn)云處理的方法,本文所提出的方法速度快、精度高,獲得了滿意的效果。為芯片的在線檢測(cè)提供了理論與方法依據(jù),同時(shí)也可為其他類型芯片的檢測(cè)提供一些借鑒。