梁 楊,任勝兵,胡志剛
(中南大學(xué) 軟件學(xué)院,湖南 長沙410075)
紙幣冠字號識別作為目前模式識別領(lǐng)域的一項重要應(yīng)用,主要涉及圖像預(yù)處理、字符分割和字符識別三大模塊。圖像預(yù)處理是冠字號識別系統(tǒng)的重要基礎(chǔ),主要包括冠字號定位[1],旋轉(zhuǎn)校正[2],二值化[3,4],去噪濾波[5]等環(huán)節(jié)。傳統(tǒng)的圖像定位方法中,有的依靠經(jīng)驗值對圖像進行粗略截取,定位誤差較大,有的通過掃描圖像某些特征來截取目標(biāo)區(qū)域,抗干擾性差且耗時。傳統(tǒng)的幾何坐標(biāo)旋轉(zhuǎn)算法雖然實現(xiàn)簡單,但需要對每個點都進行包含乘加運算的坐標(biāo)變換,非常耗時,并且待旋轉(zhuǎn)圖像越大其執(zhí)行速度越會成為系統(tǒng)瓶頸。傳統(tǒng)的二值化主要有全局閾值法和局部閾值法,全局閾值法根據(jù)圖像的灰度統(tǒng)計確定閾值,算法速度快,但抗干擾能力差;局部閾值法需要對每個點及其鄰域的灰度信息進行判斷,有一定的抗噪性,但速度很慢。字符識別作為識別系統(tǒng)的核心,其識別率和識別速度直接影響整個系統(tǒng)的性能。根據(jù)特征提取方法不同,常用的識別方法有模板匹配法[6-8],小矩量法[9]和網(wǎng)格法[10]。文獻(xiàn) [6-8]介紹的模板匹配法相對簡單,但比較耗時,而且識別率較低;文獻(xiàn) [9]利用小波矩提取的特征向量維數(shù)較高,算法收斂速度慢,識別率較低;文獻(xiàn) [10]介紹的網(wǎng)格法需要計算每個網(wǎng)格的統(tǒng)計特征,雖然網(wǎng)格特征容易提取,但其抗位置變化能力差,字符的傾斜、偏移會導(dǎo)致網(wǎng)格間錯位,使識別率降低。
針對以上方法處理速度和準(zhǔn)確率的不足,改進了預(yù)處理的關(guān)鍵算法并提出了一種組合特征識別方法。預(yù)處理階段,提出一種幾何定位算法,達(dá)到了精確性和實時性的要求;改進旋轉(zhuǎn)算法,提高了執(zhí)行速度;提出一種可變滑窗二值化算法和一種濾波算法,改善了二值化效果。識別階段,通過有針對性地提取字符的必選特征和若干可選特征,采用多叉樹作為分類器,高效地進行分類識別。以美元冠字號為例的測試驗證了該方法可以達(dá)到較高的識別率和識別速度,滿足工程應(yīng)用的要求。
一般地,冠字號識別流程可分為圖像采集、圖像預(yù)處理、字符分割、字符識別等四大步驟。其中,圖像采集一般由圖像傳感器等硬件部分完成,本文主要研究圖像采集后軟件算法的改進。冠字號識別系統(tǒng)整體框架如圖1所示。
圖1 冠字號識別系統(tǒng)整體框架
如果對整張美元圖像進行處理,很多無關(guān)信息并不需要,而且數(shù)據(jù)量大,效率低。所以定位的目的就是得到包含完整冠字號碼的圖片部分,盡量切掉冠字號周圍無關(guān)的圖像,因此首先要根據(jù)冠字號的位置特點將冠字號區(qū)域初步定位下來。本文提出一種幾何定位方法,算法思想如下:
(1)采用邊界找點法確定紙幣圖像四條邊上的若干點(點的個數(shù)根據(jù)實驗確定,但至少為2),以此來線性擬合出紙幣的四條邊界線。
(2)根據(jù)最小二乘法原理求出紙幣圖像四條邊界線的斜率和截距。
(3)確定目標(biāo)區(qū)域上邊線到紙幣上邊界線的距離、目標(biāo)區(qū)域左邊線到紙幣左邊界線的距離、目標(biāo)區(qū)域的高度和寬度。
(4)根據(jù)直線平移原理以及步驟 (3)中確定的距離、寬度和高度參數(shù),平移四條邊界線,將目標(biāo)區(qū)域包含在四條直線圍成的矩形區(qū)域內(nèi)。
(5)求出平移后四條直線的交點,然后根據(jù)交點坐標(biāo)將目標(biāo)區(qū)域截取出來,即可準(zhǔn)確地定位出包含冠字號的區(qū)域。
為了方便后續(xù)分割與識別,需要對定位后傾斜的冠字號區(qū)域進行旋轉(zhuǎn)校正。旋轉(zhuǎn)應(yīng)先考慮到如下三方面:①為了使處理的數(shù)據(jù)量小,對目標(biāo)區(qū)域旋轉(zhuǎn)時超出整幅圖像邊界的部分需要裁剪掉;②繞圖像中心進行旋轉(zhuǎn),確保冠字號不會被切割掉;③由于圖像的像素坐標(biāo)只能為整數(shù),而經(jīng)過坐標(biāo)變換后,原圖像與旋轉(zhuǎn)后圖像的點不是一一對應(yīng)關(guān)系,旋轉(zhuǎn)后點的坐標(biāo)出現(xiàn)小數(shù),需要估算該點的灰度值。
字符識別系統(tǒng)主要應(yīng)用于嵌入式平臺,因此針對實時性和準(zhǔn)確性的問題,旋轉(zhuǎn)算法有三點改進:
(1)采用查表法建立每一度傾角對應(yīng)的正弦、余弦映射表,并把相應(yīng)的正余弦值擴大為真實值的256 倍,使運算過程中只有整數(shù)沒有浮點數(shù),所有乘除運算均通過移位運算實現(xiàn)。
(2)只選取每行的第一個點根據(jù)式 (1)進行坐標(biāo)變換,該行其余點根據(jù)式 (2)進行坐標(biāo)變換
其中,θ為旋轉(zhuǎn)角度,式 (1)中 (X0,Y0)為旋轉(zhuǎn)前的點,(X,Y)為旋轉(zhuǎn)后的點,式 (2)中 (X,Y)為前一個旋轉(zhuǎn)后的點,(Xnext,Ynext)為下一個旋轉(zhuǎn)后的點,式 (2)根據(jù)同一行前后兩個點橫坐標(biāo)的關(guān)系得出。
(3)采用雙線性插值法估計旋轉(zhuǎn)后點的灰度值。把旋轉(zhuǎn)后像素坐標(biāo) (X,Y)分解成 (x+u,y+v),其中x、y代表坐標(biāo)點的整數(shù)部分,u、v 代表坐標(biāo)點的小數(shù)部分。如式 (3)所示
由式 (3)可以看出,用距離點 (x+u,y+v)最近的4個點估計 (x+u,y+v)灰度值,f (x+u,y+v)的值即為旋轉(zhuǎn)校正后點 (X0,Y0)的灰度值。距離點 (x+u,y+v)越近,對 (X0,Y0)灰度值影響越大。
二圖像的好值壞直接影響字符特征的提取,進而影響識別率。提出了一種可變滑窗二值化算法,主要思想是:將原圖像用滑動窗口分成若干子圖像,再分別用OTSU 算法進行二值化,滑窗大小根據(jù)整幅圖像中噪音多少自適應(yīng)調(diào)整。算法簡述如下:
算法1:可變滑窗二值化算法輸入:原始圖像F(x,y)輸出:二值圖像B(x,y)Begin If F(x,y)中灰度值在80到140間的點數(shù)大于常數(shù)K Then滑窗寬度WIN=COL/N1 Else 滑窗寬度WIN =COL/N2 ‘N2 <N1 EndIf For j=1:COL If(j>0)AND(j% WIN=0) Then 用OTSU 算法計算當(dāng)前窗口閾值并二值化,二值化結(jié)果保存在B(x,y)中 EndIf EndFor Output B(x,y)End
實際應(yīng)用中,二值化后的圖像里難免存在噪聲干擾,為進一步提高二值圖像質(zhì)量,提出了一種能降低離散噪聲的濾波算法,主要思想是:如果該點為前景點0,并且其一周至少有3個背景點1,并且其相鄰右邊3個點或下面3個點不全為0時,將其置為1。算法簡述如下:
算法2:濾波算法輸入:二值圖像B(x,y)輸出:濾波圖像T(x,y)Begin T(x,y)=B(x,y)For i=2:ROW-1 For j=2:COL-1 If (T(i,j)=0) AND((T(i-1,j)+T(i+1,j)+T(i,j-1)+T(i,j+1))>2) AND ((T(i+1,j)+T(i+2,j)+T(i+3,j)>0)) AND ((T(i,j+1)+B(i,j+2)+T(i,j+3)>0)) Then T(i,j)=1; EndIf EndFor EndFor Output T(x,y)End
字符特征提取是字符識別的關(guān)鍵,通過研究字符的結(jié)構(gòu)特征和統(tǒng)計特征,提出了一種高效的組合特征提取方案,具體方法如下:
(1)橫豎線特征:大量實驗發(fā)現(xiàn),橫豎線特征作為字符的一種結(jié)構(gòu)特征,非常具有代表性,分類效果明顯。為此,首先給出橫豎線的定義,假設(shè)字符外接矩形的高度為H,寬度為W。
定義1 字符圖像中,垂直線高度大于αH,稱為豎線。
定義2 字符圖像中,水平線寬度大于βW,稱為橫線。
其中,α是豎線特征比閾值,β是橫線特征比閾值,0.5<α<1,0.5<β<1。
此外,規(guī)定橫豎線特征向量為兩位,表示為 (colFeature,rowFeature),colFeature 代表豎線特征,取值為0、1、2、3、4,分別代表:無左右豎線、僅有左豎線、僅有右豎線、僅有中豎線、兩側(cè)均有豎線;rowFeature代表橫線特征,取值為0、1、2、4,分別代表:無上下橫線、僅有上橫線、僅有下橫線、上下均有橫線。
提取字符豎線特征的步驟:①從左到右掃描字符的每一列,計算該列最大連續(xù)黑色像素點的個數(shù)N。②如果N/H>=α,說明該列為豎線,如果N/H<α,說明該列不是豎線。③如果該字符所有列都不存在豎線,則colFeature=0;如果只有前三列存在豎線,則colFeature=1;如果只有后三列存在豎線,則colFeature=2;如果只有中間三列存在豎線,則colFeature=3;如果前三列和后三列同時存在豎線,則colFeature=4。
橫線特征提取步驟和豎線類似,在此不再贅述。
通過提取橫豎線特征,得到僅有兩個特征值的二維向量,分類效率高。不僅能有效區(qū)分1和4,I和H 等結(jié)構(gòu)特征差別較大的字符,也能有效區(qū)分N 和K,6和5等一些形似字符。
對訓(xùn)練樣本集提取了不同字符的橫豎線特征后,首先要進行字符集的劃分。在實際應(yīng)用中由于存在字符傾斜、噪聲干擾等影響,可能造成同一字符對應(yīng)多個特征向量的情況。由于篇幅所限,這里以特征向量 (1,0), (4,2)為例,給出對應(yīng)的字符集見表1。
表1 字符集舉例
(2)連通域特征:字符的連通域特征非常穩(wěn)定,不受字符傾斜的影響,抗干擾能力強,很好地彌補了字符橫豎線特征的不足。
二值圖像的連通域標(biāo)記是指在白色像素 (通常用1表示)和黑色像素 (通常用0表示)組成的一幅點陣圖像中,把互相鄰接 (一般4-鄰接或8-鄰接)的像素值為1的像素集合提取出來,為圖像中不同的連通域填入不同的數(shù)字標(biāo)記,并統(tǒng)計連通域的數(shù)目。
字符連通域特征的提取步驟如下:
令標(biāo)記變量flag 初值為2,為方便連通域掃描,在分割完的字符四周加上一圈背景像素點1,如圖2 (a)所示;
從坐標(biāo)為 (0,0)的點開始順序掃描,如果值為1,則標(biāo)記為flag 的值,然后坐標(biāo)先進棧,判斷如果棧非空,則棧頂坐標(biāo)出棧,同時遍歷該出棧點4鄰域內(nèi)的點,如果為1,則進棧,標(biāo)記為flag 的值,否則不標(biāo)記。如此循環(huán)判斷棧的狀態(tài),非空則出棧并進行遍歷和標(biāo)記。直到??眨瓿梢粋€連通域的標(biāo)記,并使flag 值加1以便標(biāo)記下一個連通域;
直到該字符圖像中所有點均已被標(biāo)記,即不存在值為1的像素點時,所有連通域標(biāo)記結(jié)束,該字符連通域個數(shù)=flag-2。
以字母D 為例,其連通域的標(biāo)記如圖2所示。
圖2 字母D 的連通域標(biāo)記
由圖2 (b)可知,對字母D 標(biāo)記完值為3 的連通域后,flag 加1變?yōu)?,此時所有點都已進行過標(biāo)記,則D的連通域個數(shù)為2。因此根據(jù)連通域特征能準(zhǔn)確進行字符分類,很好地區(qū)分外部輪廓相似而內(nèi)部特征差異較大的字符,如B和D,0和8等。
(3)縱向交點數(shù)特征:不同字符在某些列縱向交點數(shù)上存在差異,如數(shù)字2和7,字母C和E,在中間幾列交點數(shù)有明顯不同。因此,字符的交點信息可以作為字符分類的有效信息。字符縱向交點數(shù)的提取就是掃描字符的某一列前景像素點與背景像素點相交的個數(shù)。以字母C 和E 為例,提取其中間列的交點特征如圖3所示。
在圖3中,C 和E 在中間列的交點數(shù)不同,可以快速識別出來。實際應(yīng)用中,由于筆畫偶爾會有噪音干擾或斷裂情況,所以計算交點時一般會同時掃描前后相鄰的幾列,綜合進行判定。
圖3 字母C和E交點特征對比
(4)橫向交點數(shù)特征:橫向交點數(shù)特征的提取和縱向類似,需要掃描該字符某幾行前景像素點與背景像素點相交的個數(shù),在此不再贅述。
(5)橫向交點坐標(biāo)位置特征:橫向交點坐標(biāo)位置特征的提取是指在字符的某一行中,從左往右或者從右往左掃描,第一次碰到前景像素點時,記錄該點的橫坐標(biāo),然后判斷此坐標(biāo)是在字符的左半部分還是右半部分,進而區(qū)分具有此特征的字符。以數(shù)字2和5 為例,選擇第5 行,從右往左掃描交點,如圖4所示。
圖4 數(shù)字2和5橫向交點位置特征對比
在圖4的掃描行中,第一次碰到前景像素點時,數(shù)字2的橫坐標(biāo)位于字符中線的右側(cè),數(shù)字5的位于中線的左側(cè)。從而快速識別出結(jié)構(gòu)相似的字符2和5。
(6)縱向交點坐標(biāo)位置特征:縱向交點坐標(biāo)位置特征的提取和橫向類似,需要在字符的某一列中,從上往下或者從下往上掃描,第一次碰到前景像素點時,記錄該點的縱坐標(biāo),然后根據(jù)此坐標(biāo)的位置來識別字符,在此不再贅述。
(7)斜線特征:斜線特征提取首先在字符4個頂點的位置找到一個基點,然后從此基點開始尋找有無從該點延伸的斜線。斜線就是有從基點出發(fā)的前景點能往斜向 (如左上)游走兩次以上的特征。以字母O 和Q 為例,基點選取的基準(zhǔn)是在右下的3×3的框中找到1個前景像素點,使其縱、橫坐標(biāo)之和最大,若縱、橫坐標(biāo)之和相等,則取縱坐標(biāo)較大的點做為基點。因此,字母Q 有從基點出發(fā)向左上角的斜線,而字母O 沒有此斜線,由此可以將字母Q 和O 識別出來。
(8)環(huán)位置特征:環(huán)是指字符中由前景點圍成的一個閉合區(qū)域。環(huán)位置特征適用于連通域個數(shù)相同的形似字符的識別,其特征提取需要借助連通域標(biāo)記好的數(shù)字,從上往下或者從下往上掃描,第一次碰到該標(biāo)記值時,記錄該點的縱坐標(biāo),然后判斷環(huán)位于字符的上半部還是下半部,進而識別出字符。例如數(shù)字6 和9,由于連通域個數(shù)都為2,顯然環(huán)在數(shù)字6的下半部,在數(shù)字9的上半部,從而能夠快速區(qū)分。
(9)環(huán)內(nèi)前景點統(tǒng)計特征:環(huán)內(nèi)前景點統(tǒng)計特征的提取在連通域掃描時完成,即統(tǒng)計環(huán)內(nèi)具有同一標(biāo)記的點的個數(shù)。例如,字母O 內(nèi)的像素點明顯要多于字母A,從而很快區(qū)分出字母O 和A。
(10)區(qū)域統(tǒng)計特征:區(qū)域統(tǒng)計特征是計算字符圖像中選定矩形區(qū)域內(nèi)前景點或背景點的個數(shù),其作為字符圖像重要的統(tǒng)計特征,具有很好的區(qū)分性和穩(wěn)定性。
采用多叉樹的方法進行分類識別。首先提取待識別字符的橫豎線特征進行第一次分類,如果不是最終結(jié)果,則根據(jù)分支特點繼續(xù)提取其它合適的特征進行再次分類,直至識別出結(jié)果。以美元數(shù)字0-9為例,識別過程如圖5所示。
圖5 數(shù)字識別過程
從圖5可以看出,一般地,對單個字符而言,平均2-3次分類即可完成識別,個別字符最少需要1次分類,最多不超過4次分類。因此,組合特征提取方法靈活,針對性強,識別率高,而且字符的特征空間維度低,平均分類次數(shù)少,識別速度快。字母識別過程和數(shù)字類似,由于篇幅所限,不再贅述。
實驗環(huán)境:集成德州儀器公司DM642 芯片的開發(fā)板,Code Composer Studio V3.3 開發(fā)環(huán)境,仿真器,點鈔機。用點鈔機的掃描管在白光下隨機掃描2000張美元圖片作為測試集,全部保存為.dat格式的數(shù)據(jù)文件。在開發(fā)板上,依次導(dǎo)入這2000張美元圖片并在線測試,實驗結(jié)果表明,基于該方法的字符識別率達(dá)到96.80%,平均識別時間為22.5ms/張。
4.2.1 定位算法實驗結(jié)果
以小頭版的100美元為例,分別在紙幣的4 個邊上選取20個點進行線性擬合,根據(jù)幾何定位算法定位出冠字號區(qū)域。幾何定位效果如圖6所示。
圖6可以看出,冠字號區(qū)域在紙幣上的相對位置固定,所以根據(jù)實驗確定距離、寬度和高度的參數(shù)。幾何定位法可以精確地定位到紙幣上任意指定的區(qū)域,并且選擇較少的點進行線性擬合可以明顯提高算法速度。與傳統(tǒng)的經(jīng)驗值定位相比,幾何定位法更準(zhǔn)確,與依靠掃描圖像某些特征區(qū)域的定位方法相比,幾何定位算法速度更快,抗干擾性更強。
4.2.2 旋轉(zhuǎn)校正算法實驗結(jié)果
以大小為240×480的圖像進行旋轉(zhuǎn)校正,表2給出傳統(tǒng)幾何旋轉(zhuǎn)和改進旋轉(zhuǎn)算法的性能比較。
圖6 幾何定位效果
表2結(jié)果表明,由于采用加減運算、查表法、移位運算等,代替了需要占用更多指令周期的乘除、三角和浮點運算,改進的旋轉(zhuǎn)算法比傳統(tǒng)旋轉(zhuǎn)算法執(zhí)行速度更快,效率更高。
表2 傳統(tǒng)幾何旋轉(zhuǎn)和改進旋轉(zhuǎn)算法性能對比
4.2.3 二值化算法實驗結(jié)果
取一個略有噪聲的冠字號圖像,分別采用傳統(tǒng)OTSU算法和可變滑窗二值化算法效果如圖7所示。
圖7 圖像二值化效果對比
圖7效果說明,由于可變滑窗二值化算法會根據(jù)噪聲多少自適應(yīng)調(diào)整滑窗大小,然后按其大小分塊采用OTSU算法計算閾值,兼顧了全局閾值法的速度和局部閾值法的效果,與傳統(tǒng)OTSU 算法相比,可變滑窗二值化算法抗干擾性更強,二值圖像質(zhì)量更好,為特征提取打下良好基礎(chǔ)。
4.2.4 濾波算法實驗結(jié)果
實驗證明,提出的濾波算法能有效減少二值圖像中的離散噪音點,如圖8所示。
4.2.5 分類識別算法實驗結(jié)果
圖8 濾波前后效果對比
為檢驗提出的組合特征識別算法性能,在本系統(tǒng)中分別集成了幾種傳統(tǒng)的字符識別算法作為對比模型,選擇字符的識別率和識別時間作為評價標(biāo)準(zhǔn),對這2000張美元圖片進行實驗測試,見表3。
表3 組合特征識別法與傳統(tǒng)特征識別法性能對比
實驗結(jié)果表明,由于組合特征識別法不需要存儲模板,占用資源少,一般只需提取包含字符橫豎線特征在內(nèi)的2~3個特征,即可通過多叉樹分類器完成識別,因此采用組合特征的字符識別算法識別率高,識別速度快,優(yōu)于其它3種傳統(tǒng)識別算法。
研究了嵌入式平臺上字符識別的關(guān)鍵算法,改進了預(yù)處理的關(guān)鍵算法,提出了一種組合特征識別方法。首先提出了幾何定位算法,通用性強,定位精度高,速度快,穩(wěn)健性強;其次改進了圖像旋轉(zhuǎn)算法,圖像校正速度顯著提高;然后提出了一種可變滑窗的二值化算法和一種濾波算法,自適應(yīng)性強,二值圖像質(zhì)量提高,為特征提取打下了良好的基礎(chǔ);最后提出了一種組合特征提取方案,并采用多叉樹結(jié)構(gòu)進行字符分類,識別率高,速度快,魯棒性好。對比4種分類算法的總體性能可以看出,組合特征識別方法具備識別率高和耗時短的優(yōu)點,更能滿足實際系統(tǒng)的要求。研究圖像在頻率域上的可用特征,豐富組合特征的提取,改進識別方法,使識別率和識別速度進一步提高是下一步的研究方向。
[1]Vinhdu Mai,Miao Duoqian,Wang Ruizhi,et al.An improved method for Vietnam license plate location,segmentation and recognition [C]//International Conference on Computational and Information Sciences,2011:212-215.
[2]Serene Banerjee,Anjaneyulu Kuchibhotla.Real-time optimal-memory image rotation for embedded systems[C]//IEEE International Conference on Image Processing,2009:3277-3280.
[3]Zhang Zhiyong,Song Yang.The license plate image binarization based on Otsu algorithm and MATLAB Realize[C]//International Conference on Industrial Control and Electronics Engineering,2012:1657-1659.
[4]Kuang Jiangming,Xu Suxiao,Zhang Shuang,et al.License plate recognition system with voice announcement based on improved Otsu pseudo binarization algorithm [C]//International Conference on System of Systems Engineering,2012:316-318.
[5]Sun Chuanwei,Liu Hong,Liu Jingao.An image enhancement method for noisy image[C]//International Conference on Audio,Language and Image Processing,2010:1144-1147.
[6]TANG Jin,LI Qing.Fast template matching algorithm [J].Journal of Computer Applications,2010,30 (6):1559-1564(in Chinese).[唐琎,李青.一種快速的模板匹配算法 [J].計算機應(yīng)用,2010,30 (6):1559-1564.]
[7]Shih Bih-Yaw,Chen Chen-Yuan,Kuo Jin-Wei,et al.A pre-liminary study on design and development of template-based for license plate recognition system applying artificial coordinates auxiliary techniques[C]//IEEE International Conference on Industrial Engineering &Engineering Management,2010:80-83.
[8]Alexander Sibiryakov.Fast and high-performance template matching method [C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2011:1417-1424.
[9]ZHOU Hongjun,YANG Hao,LIN Yimang.Plate characters recognition based on ICA and wavelet moments[J].Journal of Southwest China Normal University (Natural Science Edition),2010,35 (2):159-163 (in Chinese).[周虹君,楊浩,林一莽.利用獨立成分分析和小波矩對車牌字符特征的識別 [J].西南師范大學(xué)學(xué)報 (自然科學(xué)版),2010,35 (2):159-163.]
[10]YANG Danfeng,LV Yue.Off-line signature verification based on combination of direction feature and grid feature[J].Journal of Image and Graphics,2012,17 (6):717-721 (in Chinese).[楊丹鳳,呂岳.方向特征和網(wǎng)格特征融合的離線簽名鑒別 [J].中國圖象圖形學(xué)報,2012,17(6):717-721.]