劉勁松+梁皓源
摘要:根據(jù)特定晶圓(Wafer)產(chǎn)品光學(xué)特性,基于OpenCV開源視覺庫(kù),設(shè)計(jì)一套晶圓字符編碼識(shí)別系統(tǒng)。系統(tǒng)過程包括光源選型及照射方式選擇、圖像預(yù)處理、自適應(yīng)閾值分割、形態(tài)學(xué)處理、圖像矯正及ROI提取。通過優(yōu)化評(píng)價(jià)標(biāo)準(zhǔn)的模板匹配完成字符識(shí)別。經(jīng)過試驗(yàn),該系統(tǒng)能夠準(zhǔn)確檢測(cè)字符,具備一定應(yīng)用價(jià)值。
關(guān)鍵詞:字符檢測(cè);OpenCV;形態(tài)學(xué)處理;自適應(yīng)閾值處理;模板匹配
DOIDOI:10.11907/rjdk.171106
中圖分類號(hào):TP312
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2017)006-0025-03
0 引言
半導(dǎo)體工業(yè)某種程度上是國(guó)家工業(yè)水平的標(biāo)桿,其智能化水平尤為重要。機(jī)器視覺作為新興且迅速發(fā)展的多學(xué)科綜合技術(shù),是智能化生產(chǎn)的重要組成部分,主要用于缺陷檢測(cè)、掃描識(shí)別、定位對(duì)位等領(lǐng)域,在半導(dǎo)體應(yīng)用領(lǐng)域舉足輕重[1]。
晶圓(wafer)生產(chǎn)過程中,需頻繁識(shí)別記錄本體編號(hào),以便于產(chǎn)品追溯,為提高品質(zhì)控制提供基礎(chǔ)數(shù)據(jù)。以往通過人工進(jìn)行該項(xiàng)操作,不但增加了人力資源開銷,效率和準(zhǔn)確性也無法保障。將機(jī)器視覺與晶圓編號(hào)識(shí)別結(jié)合,可為優(yōu)化晶圓信息提供新思路 。本文基于特定晶圓產(chǎn)品編號(hào)特征,結(jié)合Visual C++ 和OpenCV開源視覺庫(kù)實(shí)現(xiàn)了晶圓字符編號(hào)的識(shí)別。
1 系統(tǒng)概述
機(jī)器視覺系統(tǒng)主要包括圖像采集、圖像處理、目標(biāo)識(shí)別3部分[2]。圖像采集系統(tǒng)和識(shí)別算法是影響系統(tǒng)效率和穩(wěn)定性的兩大因素。本文通過選取合適的光源和照射方式獲取優(yōu)質(zhì)的源圖像,然后對(duì)圖像進(jìn)行預(yù)處理、矯正、分割,最后通過模板匹配實(shí)現(xiàn)字符識(shí)別,如圖1所示。
2 光源及照射方式選擇
光源及照射方式直接影響原始圖像質(zhì)量,設(shè)計(jì)系統(tǒng)時(shí)需著重考慮。鑒于晶圓表面呈鏡面特性且編號(hào)為刻蝕字符,故選用同軸光照射,見圖2(a),以減少反射光影響。晶圓表面呈暗黃色而字符為黑色,為弱化背景信息并突顯字符,可運(yùn)用反色溫單色光照射,由色環(huán)(見圖2(b))選用藍(lán)色LED光源。圖2(c)為在該照明條件通過CCD相機(jī)采集到的灰度圖像。
3 預(yù)處理
首先將灰度圖像二值化。本文采用閾值分割法,可先確定全局灰度閾值,而后逐像素點(diǎn)進(jìn)行灰度值比較,根據(jù)結(jié)果將其重新賦值為0或255。通過圖像灰度直方圖(見圖3),可直觀了解圖像灰度分布,這是確定最優(yōu)閾值常用的方法[3]。
OpenCV中通過函數(shù)calcHist ()統(tǒng)計(jì)圖像灰度分布。
得益于光源和光照方式,直方圖分布均衡且明顯分為前后兩個(gè)波峰區(qū)域,分別對(duì)應(yīng)著字符及黑色邊緣區(qū)域和主體背景區(qū)域。將灰度直方圖平滑后,選取波谷區(qū)域的最小值作為固定閾值,并以此對(duì)原圖像全局二值化。
由圖4可見,部分字符特征信息缺失且圖像邊緣陰影區(qū)域也被突出。此外,由于實(shí)際環(huán)境復(fù)雜,并不能保證源圖像的灰度直方圖始終呈現(xiàn)明確清晰的雙峰特性,難以獲取最優(yōu)閾值,故固定閾值全局二值化在此并不適合。
考慮到源圖像結(jié)構(gòu)特點(diǎn),雖然整體背景灰度分布復(fù)雜,但字符區(qū)域背景構(gòu)成相對(duì)簡(jiǎn)單。因此要根據(jù)不同區(qū)域的自身特點(diǎn)選擇適合該區(qū)域的局部閾值,并藉此對(duì)當(dāng)前區(qū)域二值化[4],這樣不但可以消減噪聲,還可以降低非均勻光照對(duì)灰度分布的影響。通過濾波器獲取以某一像素為中心的局部區(qū)域平均灰度值,以此作為閾值,與該像素進(jìn)行灰度值比較,繼而確定該像素點(diǎn)的灰度取值(0或255),也稱為自適應(yīng)閾值二值化。其中,濾波器尺寸的選取較為關(guān)鍵。尺寸偏小,可導(dǎo)致對(duì)局部區(qū)域平均灰度值估計(jì)不足,引入額外噪聲;尺寸偏大,可能會(huì)使感興趣區(qū)域丟失特征信息。經(jīng)多次嘗試,筆者選取5×5的濾波器對(duì)全圖進(jìn)行高斯濾波(見圖5)。相對(duì)于全局二值化,自適應(yīng)二值化效果更好,不但完整保留了字符信息,也將背景中低灰度值區(qū)域?yàn)V除。
OpenCV通過函數(shù)adaptiveThreshold () 實(shí)現(xiàn)自適應(yīng)閾值二值化。
4 圖像角度矯正及ROI獲取
機(jī)械結(jié)構(gòu)只能保證晶圓字符信息處于鏡頭視野范圍內(nèi),但字符串方向可能與圖像X軸方向呈一定角度,影響后續(xù)模板匹配的效率和準(zhǔn)確性。因此,有必要對(duì)圖像進(jìn)行角度矯正。
首先,對(duì)二值圖像進(jìn)行形態(tài)學(xué)處理,目的是將字符區(qū)域連接為一體,使其具備更明顯的特征以便獲取傾斜角度和區(qū)域提取。根據(jù)字符串沿X軸方向展開且字符線條較窄的特點(diǎn),本文采用1×5橫向進(jìn)行X方向的多次腐蝕,實(shí)現(xiàn)字符區(qū)域連接,再進(jìn)行膨脹處理,平滑邊緣。該過程后,可能導(dǎo)致原本存在的噪點(diǎn)發(fā)展為橫向線噪聲。因此,隨后以3×1縱向核進(jìn)行Y方向膨脹腐蝕以消減噪聲,結(jié)果如圖6所示。
OpenCV中通過cvCreateStructuringElementEx ()自定義形態(tài)核,cvErode()和cvDilate()分別完成膨脹和腐蝕操作。
由于字符區(qū)域沒有明顯透視效果,且形態(tài)學(xué)結(jié)果的下邊緣清晰,故其傾斜角度近似等于待矯正角度。在下邊緣上選取兩個(gè)相距較遠(yuǎn)的點(diǎn)并計(jì)算其連線的傾斜角度[5],據(jù)此對(duì)圖像進(jìn)行旋轉(zhuǎn)矯正(見圖7)。
OpenCV中先通過cv2DRotationMatrix()計(jì)算二維旋轉(zhuǎn)變化矩陣,再通過cvWarpaffine()實(shí)現(xiàn)圖像的旋轉(zhuǎn)變換。
基于形態(tài)學(xué)結(jié)果,結(jié)合先驗(yàn)知識(shí),設(shè)計(jì)了兩個(gè)條件用于分割并提取字符區(qū)域(見圖8):①編碼區(qū)域(最小外接矩形)的長(zhǎng)寬比接近4:1;②面積最大的矩形連通域。
5 字符識(shí)別
由于采用了特定光源及照射方式,且產(chǎn)品編碼字符樣式固定,圖像質(zhì)量及圖像采集的魯棒性均得以保障。筆者使用優(yōu)化度量算子后的基于灰度值的模板匹配進(jìn)行字符識(shí)別,即模板圖像t(r,c)在待識(shí)別圖像中逐像素點(diǎn)移動(dòng),并在每個(gè)位置計(jì)算相應(yīng)的相似度量S,最后取相似度最接近要求的位置作為最佳匹配位置。相似度量是一個(gè)函數(shù),其參變量由模板圖像中各像素點(diǎn)的灰度值t(r,c)及模板ROI在待匹配圖像中移動(dòng)時(shí)ROI的灰度值g(r+u,c+v)確定。而后,根據(jù)這些灰度值數(shù)據(jù)計(jì)算一個(gè)標(biāo)量值作為相似度[6]。通過這種方法,變換空間中的每一個(gè)點(diǎn)都會(huì)得到一個(gè)相似度,而此時(shí)的變換空間也可以看成為一幅圖像,表達(dá)式見式(1):
6 試驗(yàn)結(jié)果
筆者在VC++6.0環(huán)境中實(shí)現(xiàn)了本文所述字符識(shí)別算法流程,并對(duì)生產(chǎn)線上隨機(jī)抽取的50張圖像進(jìn)行測(cè)試。樣本中,每張圖像的字符區(qū)域都有不同程度的角度傾斜。試驗(yàn)結(jié)果證明,該算法能夠正確有效地識(shí)別字符,且平均檢測(cè)時(shí)間為1.76 s,滿足一般流水線生產(chǎn)節(jié)拍要求。
但該算法仍有很多不足,體現(xiàn)在:①模板匹配需要占用大量系統(tǒng)資源,如何獲取高質(zhì)量的模板將成為提高算法識(shí)別效率和成功率的瓶頸;②該算法針對(duì)特定產(chǎn)品設(shè)計(jì),普適性較差,主要表現(xiàn)在圖像的獲取和矯正環(huán)節(jié)上,缺乏移植性。
7 結(jié)語(yǔ)
自動(dòng)化生產(chǎn)線的生產(chǎn)節(jié)拍直接關(guān)乎產(chǎn)品的成本與品質(zhì)控制,將機(jī)器視覺應(yīng)用于產(chǎn)品的可追溯性,既保證了效率又提高了可靠性。本文基于特定晶圓產(chǎn)品的編號(hào)特點(diǎn),結(jié)合光源及照射方式選擇,設(shè)計(jì)了一種字符識(shí)別算法,目的是拋磚引玉,為半導(dǎo)體裝備制造業(yè)的發(fā)展提供思路。該算法雖具備一定實(shí)用價(jià)值,但仍有很大的改進(jìn)空間。隨著研究的深入,機(jī)器視覺系統(tǒng)在工業(yè)自動(dòng)化生產(chǎn)中將越來越完善。
參考文獻(xiàn):
[1]劉勁松,郭儉.3D芯片封裝晶圓植球裝備關(guān)鍵技術(shù)研究[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2013,8(6):573-577.
[2]劉學(xué)平,陳藝昌,刁常龍,等.基于機(jī)器視覺的BGA芯片檢測(cè)對(duì)中技術(shù)[J].計(jì)算機(jī)工程,2013,39(8):281-284.
[3]布拉德斯基,克勒.學(xué)習(xí)OpenCV[M].北京:清華大學(xué)出版社,2009:256-258.
[4]郭斯羽,張煦芳.一種基于模型的自適應(yīng)閾值分割算法[J].浙江大學(xué)學(xué)報(bào):工學(xué)版,2005,39(12):1950-1953.
[5]黃先學(xué),韓震宇.基于OpenCV的半導(dǎo)體電子元器件字符檢測(cè)方法[J].計(jì)測(cè)技術(shù),2013,33(4):30-32.
[6]CARSTEN S, MARKUS U,CHRISTIAN W.機(jī)器視覺算法與應(yīng)用[M].第3版.楊少榮,譯.清華大學(xué)出版社,2011:432-438.
[7]陳麗芳,劉淵,須文波.改進(jìn)的歸一互相關(guān)法的灰度圖像模板匹配方法[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(26):181-183.
(責(zé)任編輯:杜能鋼)