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