程 鑫,同軍超,施恢勝,張 帆,吳臻冕,張衛(wèi)超
(1.武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070;2.湖北省磁懸浮工程技術(shù)研究中心,湖北 武漢 430070)
光學(xué)字符識別(optical character recognition,OCR)技術(shù)的概念由德國科學(xué)家提出,接著美國科學(xué)家也提出了類似的想法,之后世界各國開始了對OCR技術(shù)的研究[1]。日本學(xué)者最先研究漢字識別。中國起步比較晚,但在后來取得了實質(zhì)性的進(jìn)展。目前,OCR技術(shù)應(yīng)用的領(lǐng)域越來越多,包括列車號識別、車牌識別、手工填寫表格識別、鐵路集裝箱號識別、港口集裝箱號識別以及芯片批號識別等[2-6],市場上也有很多相關(guān)的產(chǎn)品。但在弱光條件下,這些產(chǎn)品對非規(guī)則曲面,淺刻蝕字符識別的適應(yīng)性不理想,因此對弱光條件下非規(guī)則曲面和淺刻蝕字符識別的研究有重要意義。
弱光條件下會降低待識別字符與區(qū)域背景的對比度,降低獲取圖像的信噪比,給識別算法以及系統(tǒng)設(shè)計帶來很多問題。非規(guī)則曲面和淺刻蝕條件會給補光帶來光線覆蓋范圍和光線反射不規(guī)律問題,并且淺刻蝕的字符清晰度很差,不利于圖像預(yù)處理和字符識別。
文獻(xiàn)[7]研發(fā)了一套圖像獲取自適應(yīng)系統(tǒng),采用LED燈打光的方式解決了環(huán)境光線造成的字符成像不清晰的問題。針對不規(guī)則曲面字符以及圖像顯示微弱難以獲取的情況,文獻(xiàn)[8]利用照明的方式提高弱光情況下的圖像亮度,并用偏振片來減少反射到攝像頭的強光來提高成像清晰度。文獻(xiàn)[9]通過研究各種單色光對圖像清晰度的變化,利用單色光照射提高了顯示微弱圖像的清晰度。
針對上述弱光條件、非規(guī)則曲面及淺刻蝕問題,筆者提出了一種外部光線阻斷,攝像頭腔體內(nèi)部單色補光的方法,實現(xiàn)了較高的字符識別精度。
字符識別系統(tǒng)的整體結(jié)構(gòu)如圖1所示,其主要實現(xiàn)思路為:①將被識別物體放置在黑箱中,采用內(nèi)部光源補光,增強了需識別對象的光照條件,也避免了外部強光干擾,增強了弱光條件字符識別效果;②采用特定照射角度及光源選擇來應(yīng)對非規(guī)則曲面下的光線反射不均勻的問題。圖像信息通過攝像頭傳輸?shù)缴衔挥嬎銠C,通過區(qū)域定位、字符分割及識別獲取字符編碼。
圖1 字符視頻識別系統(tǒng)的整體構(gòu)成
通過攝像頭獲取圖像之后,不能直接進(jìn)行字符的定位分割識別。首先要對圖像進(jìn)行預(yù)處理,把圖像中的干擾噪聲,沒有用的信息給濾除掉。通常采用的預(yù)處理有:圖像灰度化、中值濾波、二值化處理和圖像開操作。待識別字符如圖2所示。
在黑箱中通過光照獲取的圖像如圖2(b)所示。從圖2(b)可知,通過調(diào)節(jié)設(shè)備的角度,獲取的圖像中只有編號和單一背景,沒有其他信息,這為后面的工作提供了很大便利。
圖像灰度化就是把彩色圖像變成沒有彩色的圖像。常用的處理方法,如分量法、最大值法、平均值法等,他們對于具有不平衡顏色值區(qū)域的彩色圖像,僅僅通過處理三通道的亮度無法如實地表示原圖的結(jié)構(gòu)和對比度,因此采用加權(quán)平均法來進(jìn)行灰度化,加權(quán)平均值法可以在一定程度上保留圖像的這些信息[10]。處理結(jié)果如圖3所示。
圖3 灰度化處理后的圖像
加權(quán)平均法對RGB三分量分配合適的權(quán)重進(jìn)行均值運算,結(jié)果作為灰度值。因為人眼對綠色的敏感度高,藍(lán)色低,所以權(quán)重分配如式(1)所示[2]。
Gray(i,j)=0.3×R(i,j)+
0.59×G(i,j)+0.11×B(i,j)
(1)
式中:Gray(i,j)為像素點(i,j)處的灰度值;R(i,j)、G(i,j)和B(i,j)分別為像素點(i,j)處的紅色分量、綠色分量和藍(lán)色分量。
從圖3可知,在灰度化處理后有很多灰白點,這種噪聲稱為固定值噪聲,中值濾波可以有效地處理這種噪聲[11]。
中值濾波通過選擇一個像素塊,計算像素塊的中值并把中值賦給像素塊。太大的像素塊會把圖像必要的信息給濾除掉,而過小的像素塊又會造成噪聲濾除不完全。通過觀察圖3各個像素的灰度值以及經(jīng)過多次的實驗,發(fā)現(xiàn)塊大小選擇11×11能最好地對圖像進(jìn)行濾波,濾波效果如圖4所示。
圖4 中值濾波處理后的圖像
中值濾波之后,需要對圖像進(jìn)行二值化操作。因為在黑箱中有燈光照射,所以采用全局閾值的方式來進(jìn)行二值化。全局閾值在光照充足的情況下計算速度快,響應(yīng)靈敏。全局濾波的數(shù)學(xué)表達(dá)式為:
(2)
其中f(i,j)為像素點(i,j)處的灰度值。要確定閾值的大小,首先來看一下圖像的灰度直方圖,如圖5所示。
圖5 濾波后圖像灰度直方圖
從圖5中可以看出,字符和背景出現(xiàn)了兩個駝峰。這樣就為把字符和背景分離提供了一個方法。只要找到兩個駝峰之間的最佳閾值,就可以實現(xiàn)字符和背景分離。而最大類間方差法是一個比較好的確定閾值的方法。
(3)
(4)
則閾值T為:
(5)
根據(jù)最大類間方差法得到的閾值為90。將其作為程序參數(shù)得到的二值化處理圖像如圖6所示。
圖6 二值化處理后的圖像
二值化后圖像中只剩下黑白兩種灰度值。而圖像開操作可以把黑色字符連成一片。
開操作的原理就是對圖像先進(jìn)行腐蝕,然后進(jìn)行膨脹。數(shù)學(xué)表達(dá)式為:
A°B=(A?B)⊕B
(6)
式中:A為圖像;B為需進(jìn)行開操作的像素點矩陣。
從式(6)可知,B的大小對圖像開操作的影響很大。過大的B會將不必要的信息帶入要選擇的區(qū)域中,過小的B會造成區(qū)域選擇不完整,如圖7所示。
圖7 開操作錯誤圖
為了選擇合適的B大小,觀察圖像字符區(qū)域的像素關(guān)系,發(fā)現(xiàn)字符橫向的像素間隔在20到25之間,豎向的像素間隔在12到18之間。經(jīng)過多次試驗,B的大小選擇(21,15)能把字符連成一片。結(jié)果如圖8所示。
圖8 開操作處理后的圖像
字符定位采用的方法為基于邊緣檢測的定位方法,其目的是找到圖像中的矩形區(qū)域,然后根據(jù)矩形區(qū)域的面積大小來篩選定位。這與前面的圖像預(yù)處理剛好符合,并且定位精度較高。字符定位結(jié)果如圖9所示。
圖9 字符定位提取的圖像
字符區(qū)域提取出來后,接下來就是要把這些字符進(jìn)行分割,才能進(jìn)行一對一的識別。
常用的分割方法有兩種:
(1)連通域分割。字符區(qū)域的每個字符筆畫都是連續(xù)的。從左開始在垂直領(lǐng)域定位字符的開始位置和結(jié)束位置。然后計算它的外接矩形,可以分割出字符來。
(2)垂直投影分割。垂直投影分割是在垂直方向上進(jìn)行灰度值投影,可以得到一個統(tǒng)計圖。每一列表示灰度值的累加。通過掃描統(tǒng)計圖,判斷累加值就可以分割出字符來并且不會亂序。
上述兩種方法理論上對字符分割都可以實現(xiàn)。但是經(jīng)過試驗后,發(fā)現(xiàn)連通域分割法對圖像的角度很敏感,很小的角度就會造成分割出來的字符順序混亂,沒有具體的規(guī)律可循,很難進(jìn)行排序。而垂直投影法則不會造成這樣的結(jié)果,分割出來的字符順序不會亂,對角度也不敏感。
因此采用垂直投影法來進(jìn)行字符分割。在進(jìn)行投影之前,首先要對圖像進(jìn)行反相操作,如圖10所示。
圖10 反相操作后的圖像
垂直投影分割處理的結(jié)果如圖11所示。
圖11 垂直投影分割處理結(jié)果
從圖11可以看出,垂直投影圖中的黑色部分對應(yīng)圖10中的每一個字符。每個白色間隔與圖10中的字符間黑色間隔對應(yīng)。編寫程序檢測圖11中黑色的起始位置和結(jié)束位置來分割出字符,結(jié)果如圖12所示。
圖12 分割出來字符圖
本文要識別的字符是汽車?yán)鋮s水泵的泵體編號,字符字體一定,不會改變,并且是在黑箱中進(jìn)行的圖像采集??蛇\用模板匹配法進(jìn)行字符識別。模板匹配法簡單有效,只需要把分割出來的字符進(jìn)行歸一化,然后與準(zhǔn)備好的字符進(jìn)行對比即可得出結(jié)果。
采用的模板匹配策略為:(1)依次使用一個字符與模板的圖像進(jìn)行像素做差;(2)累加圖像做差產(chǎn)生的像素值;(3)求出所有累加值中的最小值,最小值即為所求。
(7)
一個字符最終匹配得到的結(jié)果為:
min(ε1,ε2,…,ε36)
通過編寫程序識別的結(jié)果如圖13所示。從圖13可知,識別的結(jié)果正確。
圖13 字符識別結(jié)果
在水泵的生產(chǎn)線中,泵體編號的采集是在黑箱狀態(tài)下,用燈光照明采集得到的。圖14為在亮光下采集的同一個泵體的編號。利用上述系統(tǒng)進(jìn)行字符識別,得到結(jié)果如圖15所示。
圖14 亮光下采集的編號
圖15 不同光照的識別結(jié)果
從圖15可知,識別的結(jié)果是錯誤的,這表明光照強度對識別結(jié)果有很大的影響。
因為圖像采集是在生產(chǎn)線上進(jìn)行,所以不宜選擇大的照明設(shè)備。通常用的補光光源有熒光燈、鹵素?zé)艉蚅ED等,其主要性能如表1所示。
通過表1對比發(fā)現(xiàn)LED燈是一個很好的選擇,并且其比普通光源單色性能好,成本低。選擇5 mm的LED燈作為照明器件,燈光的顏色對于獲取圖像的清晰度有很大的影響。根據(jù)文獻(xiàn)[9]的研究,紅光對藍(lán)色的太陽電池補光獲取的圖像清晰度最好,另外根據(jù)光色散以及吸收理論,使用與字符顏色相同或相近的單色光照射物體,會對該光的反射率很大,獲得的圖像很亮;使用與字符顏色互補的光或者與互補光相近的光照射,會使字符很暗[12]。顏色間的互補關(guān)系如圖16所示。
表1 常見光源性能
圖16 顏色互補關(guān)系圖
因為需要識別字符區(qū)域是很深的黃色并且趨于黑色,背景區(qū)域為銀白色且有點發(fā)藍(lán),所以選用白發(fā)黃的LED燈進(jìn)行補光實驗。白發(fā)黃LED燈發(fā)光強度和電流的關(guān)系曲線如圖17所示,曲線以25 mA額定電流為基準(zhǔn)。
圖17 白發(fā)黃LED發(fā)光強度和電流關(guān)系曲線
4.2.1 不同光照強度下的圖像獲取
此次實驗通過控制同一角度下不同電流大小對光照強度進(jìn)行控制??刂频碾娏鞔笮》謩e為10 mA、15 mA、20 mA、25 mA、30 mA。不同電流下采集的圖像如圖18所示。
圖18 不同電流強度下采集的圖像
4.2.2 實驗分析
這些圖像肉眼看起來沒多大的區(qū)別,但是用計算機來識別會有很大的差距。為了更好地對這些圖像進(jìn)行區(qū)別,采用圖像熵來對這些圖像進(jìn)行評價。
圖像熵[13]表達(dá)的是圖像特征的一種統(tǒng)計形式,可以很好反映圖像中平均信息量的多少,它不僅表達(dá)了圖像灰度的聚集特征,還反映了圖像灰度分布的空間特征,他是一個表示圖像信息量很好的方法。
數(shù)學(xué)表達(dá)式為:
(8)
式中:i為像素的灰度值;j為鄰域灰度均值;f(i,j)為特征二元組(i,j)出現(xiàn)的頻數(shù);N為圖像的深度。
定義圖像的二維熵為:
(9)
利用式(8)和式(9)計算圖18的圖像熵,結(jié)果如圖19所示。
圖19 圖像熵與LED電流強度曲線
利用圖像熵給采集的圖像進(jìn)行了定量的評價,對圖像進(jìn)行識別,識別結(jié)果如圖20所示。
圖20 不同電流強度下采集圖像的識別結(jié)果
從圖20可知,在電流10 mA和15 mA的光照強度下識別正確。其他光照強度下識別結(jié)果都不正確。再根據(jù)圖像熵分析,可以得到在電流10 mA和15 mA的光照強度下,圖像熵的值都在6.9以上,其他的都在6.9以下。因此可以得到結(jié)論,光照強度不是越大越好,在適當(dāng)?shù)墓庹諒姸群推ヅ渥R別程序的參數(shù)設(shè)置下,圖像熵在大于6.9是能正確識別的條件。
筆者實現(xiàn)了針對弱光條件下非規(guī)則曲面上的淺刻蝕字符的字符識別工作,并在不同的光照條件下,對識別效果進(jìn)行了實驗研究,結(jié)論如下:
(1)實現(xiàn)了弱光條件下非規(guī)則曲面上的淺刻蝕字符的模板匹配,通過編碼模板庫,可準(zhǔn)確識別上述不理想條件下的淺刻蝕字符。
(2)隔離外部光源具備較好的外部干擾屏蔽效果,但內(nèi)部光源的強度、顏色和照射角度對識別效果有較大影響。在實驗中,常規(guī)白發(fā)黃LED燈在10~15 mA工作電流下能實現(xiàn)圖像熵6.9以上,具備較好的照射條件,能保證淺刻蝕字符的準(zhǔn)確識別。