宋華軍,韓 旭,李 翼,張永昊
(中國石油大學(xué)(華東)海洋與空間信息學(xué)院,電子信息工程系,山東 青島 266580)
LED 晶片分揀機(jī)是將LED 晶片按等級從晶片盤分揀至料片(成品)盤的設(shè)備,而對晶片盤中晶片的識別和定位是分揀過程中最為關(guān)鍵的步驟之一[1]。在對晶片盤中的晶片定位時,晶片會出現(xiàn)微小角度歪斜,識別出歪斜晶片的角度可以減少漏檢率,也可以使LED 分揀機(jī)的分揀過程更加流暢。傳統(tǒng)LED 分揀機(jī)大多采用基于Hu 矩的形狀匹配或者基于灰度的模板匹配對LED 晶片進(jìn)行定位?;诨叶鹊哪0迤ヅ浞椒m然可以完成LED 晶片的定位,但該方法計算量大,耗時較長。而Hu 矩具有旋轉(zhuǎn)不變性,因此基于Hu 矩的形狀匹配無法識別出晶片旋轉(zhuǎn)角度[2]。
吳曉等[3]采用粗精結(jié)合的匹配實現(xiàn)較為準(zhǔn)確的定位,但LED 晶片分揀機(jī)對速度的要求不斷提高,該方法的速度已滿足不了需求。Jun-Bo X 等[4]為了提高模板匹配的性能,提出基于梯度搜索的圓模板匹配方法,采用灰度匹配值和差分匹配值來共同設(shè)定匹配值,但該方法無法識別出晶片旋轉(zhuǎn)角度。
針對上述存在的問題,利用基于邊緣梯度的晶片定位算法對LED 晶片進(jìn)行識別和定位,通過計算LED 晶片模板圖像和LED 晶片待搜索圖像邊緣點梯度,將梯度相關(guān)性作為匹配的相似度[5],既提高了定位速度,也能識別出晶片旋轉(zhuǎn)角度。HexSight視覺軟件的算法是機(jī)器視覺領(lǐng)域成熟穩(wěn)定的算法,設(shè)置實驗與HexSight 的算法進(jìn)行比較,證明速度優(yōu)于HexSight 的算法,且在穩(wěn)定性、精度和速度方面均滿足LED 晶片定位的基本要求。
后續(xù)結(jié)構(gòu)如下:第一節(jié)介紹基于邊緣梯度的晶片定位算法的流程。第二節(jié)介紹了對該算法的優(yōu)化。第三節(jié)設(shè)置實驗與HexSight 的算法比較并進(jìn)行分析。
基于邊緣梯度的晶片定位算法的主要思想是采用邊緣梯度進(jìn)行相似性度量,使得算法在LED 晶片旋轉(zhuǎn)的情況下仍能準(zhǔn)確的匹配,提高算法的適用性,并且提高LED 晶片識別定位速度。算法整體流程圖如圖1 所示。
圖1 算法整體流程圖
首先,對LED 晶片模板圖像和LED 晶片待搜索圖像進(jìn)行高斯濾波等圖像預(yù)處理。對LED 晶片模板圖像以0.1°的步長進(jìn)行旋轉(zhuǎn),然后金字塔下采樣,生成一系列不同旋轉(zhuǎn)角度和三層金字塔的模板,用Canny 算子提取邊緣點,計算并保存邊緣點對應(yīng)的梯度,并歸一化處理[6]。同樣,對LED 晶片待搜索圖像進(jìn)行下采樣,生成三層金字塔的LED 晶片待搜索圖像,分別提取并計算LED 晶片待搜索圖像不同層級的金字塔圖像的邊緣點梯度信息,最后,通過歸一化互相關(guān)匹配算法計算LED 晶片模板邊緣梯度和LED 晶片待搜索圖像邊緣梯度向量的相關(guān)性[7],根據(jù)相關(guān)性大小獲取匹配信息,得到晶片旋轉(zhuǎn)角度、位置中心,完成晶片識別和定位。
下面對算法主要步驟進(jìn)行解釋。
用Canny 算子分別提取不同旋轉(zhuǎn)角度和金字塔層級的LED 晶片模板圖像的邊緣點。同樣,分別提取不同金字塔層級的LED 晶片待搜索圖像的邊緣點,獲取邊緣點x方向和y方向的梯度,計算所有邊緣點梯度的幅值和方向。通過非最大值抑制以及雙閾值法識別出偽邊緣點,不作為后續(xù)相關(guān)性計算的數(shù)據(jù)[8]。
將LED 晶片模板圖像轉(zhuǎn)換為一個點集pi=(ri,ci)T,每一個點(ri,ci)對應(yīng)的梯度向量為di=(ti,ui)T。同樣,對LED 晶片待搜索圖像進(jìn)行處理,得到每個點(x,y)及其對應(yīng)的梯度向量ex,y=(vx,y,ωx,y)T。對LED 晶片模板圖像仿射映射[9],得到點集pi′=Api,梯度向量=(A-1)Tdi,其中A為二階標(biāo)準(zhǔn)旋轉(zhuǎn)矩陣。計算LED 晶片模板圖像中邊緣點梯度與LED 晶片待搜索圖像子圖像的邊緣點梯度相關(guān)性,并將其作為匹配相似度[10]。在LED 晶片待搜索圖像點q=(r,c)T處,模板與待搜索圖像的相似度量值的計算表示如下:
式中:n為邊緣點數(shù)。在計算LED 圖像梯度時,向量的模與LED 圖像亮度有很大關(guān)系,所以(1)式容易受到光照或非線性噪聲的影響,對其進(jìn)行歸一化處理:
通過(2)式可以得到0 到1 的匹配得分,該分值越高,表示當(dāng)前LED 晶片待搜索圖像的子圖與LED 晶片模板圖像越匹配[11]。
從圖像金字塔頂層開始,計算邊緣梯度的相似性。在最頂層獲得與模板圖像相似的大概位置后,將該位置映射到下一層,在一定ROI 區(qū)域內(nèi)進(jìn)行更準(zhǔn)確的匹配,以此類推,到金字塔的底層為止。每次計算匹配得分之后,將該得分與提前設(shè)定好的閾值做比較,若高于該閾值,則保存該子圖位置和旋轉(zhuǎn)角度,并將該得分作為LED 晶片待搜索圖像下一個子圖像的閾值。當(dāng)遍歷完整個LED 晶片待搜索圖像后的閾值就是當(dāng)前LED 晶片待搜索圖像的最高匹配得分,而對應(yīng)的位置和旋轉(zhuǎn)角就是晶片位置和旋轉(zhuǎn)角。
LED 晶片待搜索圖像中通常存在多個與LED晶片模板相匹配的目標(biāo)位置,需要全部將其識別并定位。當(dāng)應(yīng)用基于邊緣梯度的算法識別出一個LED 晶片后,該位置的匹配得分很高,并且該位置附近區(qū)域的匹配分?jǐn)?shù)也會較高。由于每一個LED晶片之間有一定間隔,因此可以在得到一個LED 晶片的位置中心后,將LED 晶片待搜索圖像中該匹配目標(biāo)所在區(qū)域內(nèi)的邊緣梯度幅值設(shè)為0,然后對不同金字塔層的LED 晶片待搜索圖像對應(yīng)位置做同樣的處理[12]。下一次匹配時,該位置及附近位置不會被匹配到,因此與上一次匹配相比,處理的速度也會變快。此時最高匹配得分位置將不再是之前匹配到晶片的區(qū)域,所以可以找到該區(qū)域外的最高匹配得分,進(jìn)而定位到另一個晶片。重復(fù)上述過程直至所有晶片都被識別和定位。最后,將所有的LED 晶片位置中心都記錄下來,完成一張LED 晶片待搜索圖像的完整識別和定位。
此外,為了提高搜索速度,在搜索過程中設(shè)置了終止計算條件,設(shè)定一個閾值Smin來確定何時停止計算相似度量。設(shè)LED 晶片模板圖像前j個元素的點積和為Sj,由(2)式可知其相似度量表示為:
由(3)式可知,點積總和中剩余的n-j項都小于1,因此當(dāng)部分和滿足Sj<Smin-1+j/n條件時,對應(yīng)匹配得分的局部最大值也無法高于Smin[13]。滿足該情況后,在第j個元素就停止LED 晶片待搜索圖像與LED 晶片模板圖像的相似性的計算,減少了整個匹配過程的計算量,因此設(shè)置終止計算條件的搜索策略可以有效地提高算法速度。
實驗采用的視覺系統(tǒng)包括高性能CCD 相機(jī),可控紅色環(huán)形光源和點光源以及高倍率連續(xù)變焦鏡頭,實現(xiàn)LED 晶片圖像的獲取。
通過基于邊緣梯度的晶片定位算法得到的匹配結(jié)果圖像如圖2 所示。為了驗證基于邊緣梯度的晶片定位算法穩(wěn)定性、精度和速度,設(shè)置實驗與HexSight 的算法進(jìn)行比較。
圖2 基于邊緣梯度的晶片定位算法匹配結(jié)果
為檢驗算法的穩(wěn)定性,在每一種旋轉(zhuǎn)角度下隨機(jī)取20 幅晶片盤不同位置的圖像,每幅圖像中有25 個完整的晶片,所以每一個旋轉(zhuǎn)角度包含500 個晶片。6 種旋轉(zhuǎn)角度總共120 幅圖像,設(shè)順時針旋轉(zhuǎn)角度為正值。對結(jié)果進(jìn)行分析,如表1 所示。
表1 不同角度晶片識別率結(jié)果
表1 結(jié)果表明,不同旋轉(zhuǎn)角度下,基于邊緣梯度的晶片定位算法識別率均很高,120 幅LED 晶片圖像共3 000 個晶片,精準(zhǔn)識別出2 995 個??傋R別率達(dá)到99.83%,與HexSight 的算法識別率相當(dāng),滿足LED 晶片分揀機(jī)對識別率大于99%的要求。
為檢驗算法的精度,在一幅LED 晶片圖中選取8 個晶片,如表2 所示。
表2 結(jié)果表明,基于邊緣梯度的晶片定位算法與HexSight 的算法定位坐標(biāo)幾乎一致,總體偏差在1 pixel 之內(nèi)。
表2 識別坐標(biāo)對比結(jié)果 單位:pixel
為檢驗算法的速度,在每一種旋轉(zhuǎn)角度下隨機(jī)取20 幅晶片盤不同位置的圖像,每幅圖像中有25個完整的晶片,7 種旋轉(zhuǎn)角度總共140 幅圖像,對其進(jìn)行算法耗時計算,并與HexSight 的算法比較,如圖3 所示。
從圖3 結(jié)果可以看出,基于邊緣梯度的晶片定位算法每幅圖像計算耗時均在85 ms 以內(nèi)。平均每個晶片耗時3.4 ms 以內(nèi),速度優(yōu)于HexSight 視覺軟件算法,可以滿足LED 晶片分揀機(jī)實際工作時對速度的要求。
圖3 耗時實驗結(jié)果
為解決傳統(tǒng)LED 分揀機(jī)視覺系統(tǒng)速度較慢,無法識別晶片旋轉(zhuǎn)角度的問題,應(yīng)用基于邊緣梯度的算法對LED 晶片進(jìn)行識別和定位。該方法提取LED 晶片搜索圖像不同層級金字塔圖像的邊緣點梯度信息,通過互相關(guān)算法計算邊緣梯度向量相關(guān)性獲取匹配信息,實現(xiàn)對晶片的識別和定位。經(jīng)驗證,基于邊緣梯度的晶片定位算法能識別出晶片旋轉(zhuǎn)角度,速度優(yōu)于HexSight 的算法,平均3.2 ms 完成一個晶片角度的識別和定位,滿足LED 晶片高速識別和定位需求。