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