李浩霖,賀云波
(廣東工業(yè)大學(xué)精密電子制造技術(shù)與裝備國家重點(diǎn)實(shí)驗(yàn)室,廣州 511400)
隨著半導(dǎo)體封裝技術(shù)的不斷發(fā)展,對半導(dǎo)體封裝設(shè)備提出了更高精度、更高質(zhì)量的要求[1]。芯片定位涉及到芯片檢測、引線鍵合等環(huán)節(jié),隨著近年來芯片尺寸的不斷縮減,對芯片精確定位的要求越來越高[2]。對于先進(jìn)封裝設(shè)備說,像素級定位的精度并不能滿足實(shí)際生產(chǎn)要求,受限于CCD工業(yè)相機(jī)靶面尺寸,一個(gè)像素的像元尺寸,可能已經(jīng)大于機(jī)器的重復(fù)定位要求,因此,考慮到成本與精度的問題,一般采用求解亞像素精度的辦法實(shí)現(xiàn)機(jī)器的精確定位[3]。
圖像邊緣檢測與定位,是計(jì)算機(jī)視覺中的基本問題,其目的是根據(jù)數(shù)字圖像中灰度的變化,找到灰度突變的特征,可根據(jù)這一特征,將圖像前景和背景分割開來,這特征普遍認(rèn)為是圖像目標(biāo)的邊緣。目前,在圖像處理領(lǐng)域,比較常用的邊緣檢測算子有基于一階微分的Sobel算子、Prewitt算子、Roberts算子,基于二階微分的Canny算子和Laplacian算子,這些邊緣檢測方法已經(jīng)被眾多研究者證實(shí)了其可行性[4-6],不足的地方在于這些算子生成的都是像素級別邊緣。
亞像素邊緣檢測算法可分為3類:擬合法、插值法和矩方法。矩方法相較于擬合法和插值法有著對噪聲不敏感和精測精度高的優(yōu)勢[7],是一種較優(yōu)的亞像素邊緣定位算法。GHOSAL等[8]提出了利用Zernike正交矩進(jìn)行邊緣檢測,該方法通過3個(gè)Zernike正交矩計(jì)算出圖像邊緣參數(shù),實(shí)現(xiàn)了亞像素級別的邊緣定位。陳璐等[9]結(jié)合Canny算子和Zernike正交矩,針對理想階躍模型的不足,推導(dǎo)出三灰度過渡模型的邊緣參數(shù),在鉆鉚圓孔檢測中取得了不錯(cuò)的效果。
本文針對LED芯片電極的定位問題,提出一種亞像素定位算法。在電極ROI定位階段通過霍夫變換算法提取類圓區(qū)域,配合HOG-SVM模型去除錯(cuò)誤的類圓區(qū)域,得到理想的ROI區(qū)域。然后基于Zernike矩求取亞像素邊緣,最后通過最小二乘法擬合定位電極位置。
霍夫圓變換算法,將圖像二維空間中的一個(gè)圓,轉(zhuǎn)換成由此圓半徑、圓心橫縱坐標(biāo)所確定的三維參數(shù)空間中的一個(gè)點(diǎn),通過將圓周上的點(diǎn)映射到參數(shù)空間中,任意3點(diǎn)可以確定一個(gè)圓[10]。在笛卡爾坐標(biāo)系中,圓的方程為:
(x-a)2+(y-b)2=r2
(1)
式中:(a,b)是圓心,r是圓的半徑,若將笛卡爾坐標(biāo)系下的圓轉(zhuǎn)換為參數(shù)空間中,x、y則是常數(shù)求解。
(x-a)2+(y-b)2-r2=0
(2)
如圖1所示,此時(shí)圓上一點(diǎn)即可表示為參數(shù)空間中的一條三維曲線。霍夫圓檢測設(shè)置一個(gè)累加器,記錄參數(shù)空間中相交曲線的數(shù)量,當(dāng)其數(shù)量大于閾值時(shí),便認(rèn)為其相交點(diǎn)是笛卡爾坐標(biāo)系下的圓心坐標(biāo),而參數(shù)空間中維度r上的數(shù)值,即是對應(yīng)圓的半徑。
圖1 霍夫參數(shù)空間變換
如圖2所示,本文所用的LED芯片電極類似于圓形,使用霍夫圓檢測算法可以快速地在圖像中定位到電極的位置。然而,圖像中存在不少除電極區(qū)域以外的類圓形區(qū)域,要精確地排除掉這些無關(guān)區(qū)域是一件十分困難的事情。在本文的處理中,引入支持向量機(jī)模型對所有類圓區(qū)域進(jìn)行二分類,利用機(jī)器學(xué)習(xí)算法篩除霍夫變換算法提取出的無關(guān)區(qū)域。
圖2 霍夫圓檢測結(jié)果
方向梯度直方圖(histogram of oriented gradient)是一種描述圖像局部特征的方法,它通過統(tǒng)計(jì)和整合局部區(qū)域的梯度方向直方圖來構(gòu)成圖像特征信息描述子[11]。
求取HOG特征第一步,對灰度圖像進(jìn)行Gamma矯正歸一化,以降低光照變化對圖像造成的影響。
計(jì)算圖中像素點(diǎn)F(x,y)的梯度方向α(x,y)和梯度幅值G(x,y):
(3)
(4)
Gx(x,y)=F(x+1,y)-G(x-1,y)
(5)
Gy(x,y)=F(x,y+1)-G(x,y-1)
(6)
式中:Gx(x,y)是像素點(diǎn)的水平方向梯度,Gy(x,y)是像素點(diǎn)的豎直方向梯度。
把一個(gè)8×8大小的區(qū)域定義為一個(gè)細(xì)胞單元(cell),把這個(gè)cell里面的梯度方向定義為180°,180°分成9個(gè)bin統(tǒng)計(jì)這個(gè)cell里的梯度信息。假如一個(gè)cell里的某一個(gè)像素點(diǎn)梯度方向?yàn)?0°,梯度幅值為2,則第3個(gè)bin統(tǒng)計(jì)量增加2,重復(fù)此操作統(tǒng)計(jì)完每個(gè)cell里的梯度信息,獲得一個(gè)9維的特征向量。
每2×2個(gè)cell組成一個(gè)塊(block),并且對這個(gè)block的特征向量歸一化,進(jìn)一步降低光照的影響,則每個(gè)block對應(yīng)一個(gè)36維的特征向量。
最后一步收集檢測窗口中的所有block的特征向量,隨著檢測窗口在圖像中滑動,遍歷完整個(gè)圖像生成HOG特征向量。
在本文中,會把霍夫變換檢測結(jié)果的區(qū)域裁剪出來作為備選ROI區(qū)域,并且縮放成64×64的大小,檢測窗口大小為32×64,最終每個(gè)備選ROI區(qū)域的HOG特征向量維度是3780。
支持向量機(jī)(SVM)是一種解決二分類問題的機(jī)器學(xué)習(xí)算法[12],對于樣本量較小的數(shù)據(jù),SVM可以較好地解決小樣本量帶來的過擬合問題。對于一個(gè)線性可分的樣本,SVM模型的分類原理是在樣本空間中尋找一個(gè)最優(yōu)的超平面,使得這個(gè)超平面可以完美地區(qū)分兩個(gè)樣本的數(shù)據(jù),并且最大化每一側(cè)數(shù)據(jù)點(diǎn)到超平面的最近距離。
如圖3所示,兩個(gè)數(shù)據(jù)樣本在二維空間中線性可分,ωx+b=0是理想超平面,γmin是樣本點(diǎn)(xi,yi)關(guān)于理想超平面最小幾何間隔,任意一個(gè)樣本點(diǎn)到理想超平面的幾何間隔如下定義:
圖3 線性可分超平面
(7)
SVM模型的求解可以表示為以下約束問題:
(8)
(9)
而在解決實(shí)際的分類問題時(shí),樣本數(shù)據(jù)更多的是非線性可分的情況,兩個(gè)樣本數(shù)據(jù)參雜在一起時(shí),無法簡單地用一個(gè)直線超平面進(jìn)行分割。而非線性支持向量機(jī),通過引入核函數(shù),把樣本數(shù)據(jù)空間從低維映射到高維,在高維空間中求解線性可分問題,就能很好地解決數(shù)據(jù)在低維空間中的線性不可分問題[13]。常見的核函數(shù)有線性核函數(shù)(Linear)、多項(xiàng)式核函數(shù)(Poly)、高斯核函數(shù)(RBF)和Sigmoid核函數(shù)。
本文SVM訓(xùn)練器的正負(fù)樣本如圖4所示,正樣本是通過霍夫圓檢測得到的電極區(qū)域,負(fù)樣本是無關(guān)區(qū)域,訓(xùn)練集正負(fù)樣本數(shù)分別為88和184,測試集正負(fù)樣本數(shù)分別為99和199,對正負(fù)樣本分別求取HOG特征后訓(xùn)練SVM模型,不同的核函數(shù)訓(xùn)練結(jié)果如表1所示,其中線性核函數(shù)用時(shí)最短,測試精度高,因此本文選用線性核函數(shù)訓(xùn)練的SVM模型對定位區(qū)域進(jìn)行分類。
表1 SVM訓(xùn)練結(jié)果
圖4 正負(fù)樣本示例
Zernike多項(xiàng)式的定義為:
Vnm(ρ,θ)=Rnmeimθ
(10)
(11)
式中:m,n為整數(shù)并且n≥0,n-|m|為偶數(shù),|m|≤n,i是虛數(shù)單位。
根據(jù)Zernike正交多項(xiàng)式,TEAGUE[14]定義了灰度圖像的n階m次Zernike矩:
(12)
(13)
(14)
圖5a和圖5b分別是圖像旋轉(zhuǎn)前后的邊緣,空白處是背景區(qū)域,其灰度值為h,陰影處是圖像目標(biāo)區(qū)域,灰度值為h+k,l為原點(diǎn)到理想邊緣的最短距離,β是l與x軸的夾角。對比圖像旋轉(zhuǎn)前后,其模值保持不變,只有相角發(fā)生了變化,利用這一特性,可以容易求出灰度階躍模型的4個(gè)參數(shù),然后把這些參數(shù)放到Zernike矩上計(jì)算,可以求出亞像素級別的邊緣位置,實(shí)現(xiàn)邊緣的精確定位。
(a) 旋轉(zhuǎn)前圖像邊緣 (b) 旋轉(zhuǎn)后圖像邊緣
計(jì)算3個(gè)Zernike矩Z00,Z11,Z20和其對應(yīng)的旋轉(zhuǎn)后的Zernike矩:
(15)
(16)
(17)
令Re[Z11]和Im[Z11]代表Z11的實(shí)部和虛部,可以得到:
(18)
根據(jù)式(15)~式(18),可以計(jì)算出:
(19)
(20)
(21)
(22)
通過對參數(shù)l和k設(shè)定閾值,根據(jù)Zernike模板大小,可以推導(dǎo)出亞像素邊緣的檢測公式為:
(23)
式中:xs和ys代表亞像素位置,x和y代表圖像原本邊緣位置,N為模板大小,考慮到檢測精度和檢測時(shí)間,N一般取為7。
在實(shí)際計(jì)算亞像素點(diǎn)時(shí),先檢測出圖像的像素級邊緣點(diǎn)進(jìn)行粗定位,在像素級邊緣點(diǎn)的位置上利用Zernike模板求得亞像素邊緣,這樣比對整個(gè)圖像用Zernike模板卷積計(jì)算的效率要高。利用Canny算子計(jì)算灰度圖像的邊緣是一個(gè)效果很好的方法,然而在實(shí)際處理圖像時(shí),會不可避免的在邊緣處出現(xiàn)毛刺現(xiàn)象。邊緣附近出現(xiàn)的毛刺并不是我們需要求亞像素點(diǎn)的位置,因此本文先通過OTSU(大津法)求出圖像最佳閾值,然后對灰度圖二值化處理,再求二值化后的圖像的像素級邊緣,能很好地處理掉毛刺,保留理想的邊緣數(shù)據(jù),最后在像素級邊緣的基礎(chǔ)上求得亞像素邊緣點(diǎn),如圖6所示。
(a) 有毛刺邊緣 (b) 去毛刺邊緣 (c) 亞像素邊緣
在經(jīng)過Zernike矩定位亞像素邊緣后,通過最小二乘法擬合圓,從而定位到精準(zhǔn)的電極位置。
假設(shè)圓心坐標(biāo)是(xc,yc),半徑為R,則圓方程的通式為:
(24)
圓心的坐標(biāo)(xc,yc)和圓的半徑R與式(24)的3個(gè)系數(shù)a、b、c的關(guān)系可以表示為:
(25)
定義亞像素點(diǎn)集到圓心的距離為d,亞像素點(diǎn)(xs,ys)到圓邊緣距離的平方與圓半徑平方的差為d2-R2,令:
(26)
求F(a,b,c)關(guān)于a,b和c的偏導(dǎo),并令偏導(dǎo)等于0:
(27)
求解式(27),即可得到a,b,c的值,最后求得擬合圓的參數(shù)xc,yc和R。
為驗(yàn)證本算法的效果,實(shí)驗(yàn)所用的計(jì)算機(jī)系統(tǒng)為Window10平臺,處理器為Intel(R) Core(TM) i5-1135G7,主頻2.40 GHz,內(nèi)存16 GB。軟件開發(fā)環(huán)境Visual Studio 2019 x64版本,編程語言C++,搭配開源函數(shù)庫OpneCV 4.5.0。實(shí)驗(yàn)所用的LED芯片圖像由自組搭建的鏡頭模塊采集,如圖7所示,其中所用的工業(yè)相機(jī)是某機(jī)器人的CA系列工業(yè)面陣相機(jī),分辨率為720×540,像元尺寸為6.9 μm。鏡頭模塊成品的放大倍率為3.68,則圖像中單位像素所對應(yīng)的真實(shí)大小為1.875 μm。同時(shí),以某顯微鏡STM7測試得出的芯片電極直徑作為真值,如圖8所示,與本文算法結(jié)果比較。
圖7 鏡頭模塊 圖8 顯微鏡
由本文算法得出的部分電極定位結(jié)果如圖9和表2所示。經(jīng)過訓(xùn)練好的SVM模型分類后,在定位電極時(shí)沒有出現(xiàn)多檢類圓區(qū)域或漏檢電極區(qū)域的情況,能很好地定位到兩個(gè)電極的區(qū)域,提高算法的可靠性。
表2 部分電極定位數(shù)據(jù)
圖9 電極定位結(jié)果
通過搭建的鏡頭模塊采集50組LED芯片圖像以算法擬合計(jì)算,并且記錄此50組LED芯片的電極直徑真值,擬合誤差和算法用時(shí)如圖10所示。左電極誤差比右電極誤差大,最大擬合誤差為3.23 μm,原因是左電極如圖6b所示有部分直線邊緣,導(dǎo)致擬合時(shí)造成較大誤差。而算法運(yùn)行時(shí)間最長為13.7 ms,平均每個(gè)芯片耗時(shí)9.34 ms,能達(dá)到先進(jìn)封裝設(shè)備的定位精度和時(shí)間要求。
圖10 算法誤差與運(yùn)行時(shí)間
針對LED芯片電極定位問題,本文提出一種亞像素邊緣擬合的定位算法。先檢測圖像中的類圓區(qū)域,再通過HOG-SVM模型分類出電極區(qū)域,對電極區(qū)域二值化后求取Canny像素級邊緣點(diǎn)。用Zernike正交矩計(jì)算亞像素邊緣參數(shù)從而求解得到亞像素邊緣點(diǎn)集,通過最小二乘法擬合出電極區(qū)域圓心點(diǎn)。實(shí)驗(yàn)結(jié)果表明,本文算法能得到亞像素級別的電極中心位置,算法擬合的電極區(qū)域直徑與電極實(shí)際直徑最大相差3.23 μm,算法平均運(yùn)行時(shí)間9.34 ms,能提高LED芯片的電極定位精度和定位時(shí)間,滿足先進(jìn)封裝設(shè)備的作業(yè)要求,在先進(jìn)封裝設(shè)備領(lǐng)域有著廣闊的應(yīng)用前景。