《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于頻率特征提取的脫機手寫字符的快速識別
基于頻率特征提取的脫機手寫字符的快速識別
2015年微型機與應(yīng)用第8期
朱孝山1,2
(1.山西大學(xué) 商務(wù)學(xué)院信息中心,山西 太原 030013;2.中國科學(xué)院心理研究所,北京 100101)
摘要: 針對目前脫機手寫字符識別計算量大,對字體字形都有一定的要求,提出了主要以字符矩陣中01變換頻率為基礎(chǔ),從字符的整體和局部特征出發(fā)進行分析識別的算法。此算法縮減了計算量并對所需局部信息進行放大,在一定程度上避免了傳統(tǒng)采用分類器方法的錯誤傳導(dǎo),提高了字符的識別率,易于實現(xiàn)移植和擴展。
關(guān)鍵詞: 字符識別 脫機識別 手寫字符
Abstract:
Key words :

  摘  要: 針對目前脫機手寫字符識別計算量大,對字體字形都有一定的要求,提出了主要以字符矩陣中01變換頻率為基礎(chǔ),從字符的整體和局部特征出發(fā)進行分析識別的算法。此算法縮減了計算量并對所需局部信息進行放大,在一定程度上避免了傳統(tǒng)采用分類器方法的錯誤傳導(dǎo),提高了字符的識別率,易于實現(xiàn)移植和擴展。
  關(guān)鍵詞: 字符識別;脫機識別;手寫字符
0 引言
  目前計算機對手寫字符識別主要分聯(lián)機和脫機兩種方式。聯(lián)機方式目前主要采用的是聯(lián)機筆畫順序識別[1]。脫機方式目前研究以計算機常用字體為主的識別主要采用方式模板匹配法[2]、基于結(jié)構(gòu)特征算法[3]、基于神經(jīng)網(wǎng)絡(luò)算法[4]和基于支持向量機[3]等。前兩種算法算法本身對字符比較敏感,對手寫體特征筆畫定義的差距造成識別率下降;后兩者提高識別率則需要大量計算。
1 LVc算法
  字符主要由豎線、橫線、半封閉弧線、封閉線筆畫構(gòu)成,筆畫簡單特征少,而手寫半封閉弧線經(jīng)常和橫線豎線進行相互替換,加上封閉完整性的缺失增加了識別難度。因此本文提出LVc算法,提取文本中定義字符和數(shù)字的頻率特征和細節(jié)特征,并與已知標準字符提取的特征相比較、識別。
  1.1 預(yù)處理
  圖像矩陣PK@%I$_ULQ4O[F(16BIU5{X.png經(jīng)過降噪、二值化后得到_3`3RYWG7CAKP[I~C4@$%A5.png,并把_3`3RYWG7CAKP[I~C4@$%A5.png矩陣利用式(1)轉(zhuǎn)換成矩陣Am×n,其中m=p+2,n=q+2。
1.png

  1.2 基本計算
  1.2.1 頻率的相關(guān)計算
  當(dāng)對Am×n第x行掃描時,若ax,y≠ax,y+1,則稱存在一次變化,x行總變化次數(shù)稱為x行水平變化頻率,記做lv(x),如式(2)所示。同理可得第y列的垂直變化頻率hv(y)。

2.png

3.png

  其中,x=1,2,3,…,m。
  若相鄰的Z9(X}V@3XENHIUPTO0)UA{E.jpg,則稱它們屬于同一個水平頻率組Lgt(t=1,2,…),其水平變化頻率為Lgtlv,該組所擁有行數(shù)為Lgnt,如式(4)所示。
4.png

  其中,0(}J7}%@7~{H27{N2J1D}OB.jpg 

 同理可得垂直頻率組Hgt(t=1,2,…),相關(guān)數(shù)據(jù)設(shè)其所得垂直變化頻率為Hgthv,所擁有列數(shù)為Hgnt。
  1.2.2 行(列)累計度
  字符中各行(列)中非0像素點的多少稱為該行(列)累計值,如式(5)所示。
5.png

  同理可得第y列的累計值。
  為了對筆畫的長短有所區(qū)分,這里用Pilel(x)來表示:
6.png

  橫向長筆畫數(shù)用Spsl表示:
7.png

  同理可以得到相應(yīng)區(qū)域的列累計度和縱向長筆畫數(shù)。
  1.2.3 筆跡粗細
  當(dāng)用累計值除對應(yīng)頻率時,可得字符的筆跡粗細Handw:
8,9.png

  同理可得列筆跡的粗細Handwv。
  1.2.4 頻率的修正
  字符邊緣的“毛刺”現(xiàn)象對頻率影響非常嚴重。若在x行中存在n個符合條件Z15E2$@V_8X1B_4]~6ODRS9.jpg的區(qū)域,其中3($~GF8@X_4`Y%2SUY885NC.jpg,則令lv′(x)=lv(x)-n。同理可以對垂直頻率進行修正。
  手寫中經(jīng)常出現(xiàn)筆畫的起筆或末端的彎鉤現(xiàn)象如6、C,給下一步有效頻率組判斷帶了一定的干擾。若某個水平頻率組中滿足GDTX(J~72(UQ[@Z)Q2V(]C5.jpg,XE$IAGQG0O51CMA[6GOZ[MG.jpg
  1.3 英文字符的基本特征提取
  1.3.1 有效變化頻率組
  若某水平頻率組DARZ4Q0E5FFBNF`RHC@]EOG.jpg,則稱其為有效水平頻率組efLgt,其水平頻率{J))U[[ZTZ@$SBG82Q%(P08.jpg,擁有的行數(shù)設(shè)為efLgtn;一個字符所擁有的efLgt數(shù)設(shè)為numLg。
  計算有效垂直頻率efLgt,首先確定其測試區(qū)域:若numLg=1,則需根據(jù)垂直有效頻率判別式求得efLgt;若numLg≥2,存在efLg1其x∈[a,b]和efLg2其x∈[c,d],則取Did=PML2777}23FP5XX[@043CYW.png下部和Diu=$20}E[{JKZ19FCF4YP~AV6W.png上部,如圖1所示進行垂直有效頻率判別式分析計算。

Image 001.png

  垂直有效頻率判別式為:若字符中Hgt的Hgnt≥VRC6H)Z%I(1OQ~J$(5Q}%{G.png,則認為其所在Hgt組為有效垂直頻率組;若字符中Hgnt<VRC6H)Z%I(1OQ~J$(5Q}%{G.png,則選max(Hg1hv×Hgn1,Hg2hv×Hgn2,…)(t=1,2,…),其中Hgnt≥2Handw最大值所在組為有效垂直頻率組。
  1.3.2 焦點集中區(qū)域
  一個字符中往往存在某個有效區(qū)域其像素點較為集中,稱之為焦點集中區(qū)域。確定集點集中區(qū)域需先以水平有效頻率為劃分基礎(chǔ)再進行計算。
  若numLg=1,設(shè)su為字符垂直有效頻率的上部像素點的合計數(shù):
10.png

  同理知下部非0點的合計數(shù)sd。
  ~}K4{N[63X7NTJS$ADI6~4X.jpg331LDFM0R%_J8X0}OF_FKKL.jpg滿足時,則認為字符垂直方向上部區(qū)域焦點集中,反之亦然。
  若numLg≥2,則需按垂直頻率的區(qū)間劃分并根據(jù)式(10)計算判斷。
  計算水平方向的焦點集中區(qū)域時,選定其垂直方向的焦點集中區(qū)域,并以其區(qū)域內(nèi)的有效垂直頻率組的中線為分界線依據(jù)式(10)計算。
  1.4 字符的細節(jié)檢測
  1.4.1 有效空頻組檢測
  把字符中存在間斷情況作為其字符的細節(jié)特點加以考察。
  若存在Lgt-1、Lgt、Lgt+1(1<t<m)連續(xù)3個相鄰的水平頻率組,若滿足Lgt-1lv≠0∩Lgt+1lv≠0∩Lgtlv=0,且Handw≥Lgnt≥min(Lgnt-1,Lgnt+1),則認定Lgt組為有效空頻組Lgo。
  1.4.2 直線、曲線、波浪曲線檢測
  字符6和b、8和B等單從頻率上無法區(qū)分,需對邊緣部分求其平均曲率加以區(qū)分,如式(11)所示。
11.12.png

  其中,E4{9UI1F9O7%LO8M5P@75]W.jpg為對應(yīng)切線的轉(zhuǎn)角,`L`N(E~{9SH_EB9SI1%_HWS.jpg為對應(yīng)弧線的長度。
  若字符存在垂直焦點集中區(qū)域,則只需求此區(qū)域外側(cè)平均曲率即可;否則計算兩側(cè)。上下兩側(cè)的有效水平頻率組的中線外側(cè)區(qū)域為計算區(qū)域,利用式(11)~(12)計算。
  字符3和B的右側(cè)曲線稱為波浪曲線。若在計算字符時,其側(cè)面存在垂直頻率組t符合Hgnt≥2Handw∩Hgthv≥6,則認為其側(cè)存在波浪曲線。
  1.4.3 封閉性檢測
  如果字符numLg=1,則以字符整體為測試區(qū)域進行檢測:
13.png
 9)LIQ)T4$N_DFM()()T8SX8.pngNJ6GN0~K$F%U0(%@Q9ES%8U.jpg成立,則此區(qū)間為上部封閉,否則此區(qū)間非上部封閉。同理判斷其他區(qū)間的封閉性。
  如果numLg≥2,則根據(jù)求有效垂直頻率的區(qū)域劃分進行封閉性計算。
  1.4.4 相交檢測
  書寫往往會造成兩條線段平行和相交的近似,如A和H。因此當(dāng)字符存在efLgtlv=2且兩側(cè)Sstl=straight,其待測區(qū)間的兩線段的斜率為k1、k2,設(shè)相交檢測結(jié)果為Sa:
14.png

  當(dāng)Sa=intersect,則認為其兩條線段相交,同時其相交方向可以認為近似封閉。
  1.5 相似度比較
  1.5.1 編碼
  通過計算,得到了一系列數(shù)字構(gòu)成測試值編碼Rand,如圖2所示。

Image 002.png

  1.5.2 相似度計算
  計算采用左對齊不夠補0的策略,計算方法如式(15)所示。其中,Rand為測試值編碼,Stan為已有標準字符編碼。
15.png

  1.5.3 LVc算法實現(xiàn)
  該算法主要根據(jù)字符的頻率進行分類,在確定字符的水平有效分組的基礎(chǔ)上,再計算其有效垂直頻率、封閉性、視覺焦點集中區(qū)域等。根據(jù)計算得出的數(shù)值排列成一組數(shù)字代碼表示字符特征,并把此數(shù)字特征代碼與已知標準庫中代碼串相比較,求出的最大相近字符即識別輸出。算法流程圖如圖3所示。

Image 003.png

2 實驗及其結(jié)果
  由于字母o和數(shù)字0以及印刷體的字母l和數(shù)字1特征不明顯,這里不做具體討論。
  實驗1 字符的頻率和累計度
  對原始圖像進行濾波和二值化等預(yù)處理,如圖4所示。圖5所示為圖像的頻率特征,其中圖5(a)是原始狀態(tài)下得到的頻率,圖5(b)是經(jīng)過修正后得到的頻率,可以明顯看出修正后的字符的頻率特征更加明顯。圖6是進一步對焦點集中區(qū)域進行的頻率特征檢測。

Image 004.png

Image 005.png

  實驗2 字符的識別率
  實驗以計算機黑體字庫為基礎(chǔ)字庫并根據(jù)實際情況對其字體庫進行了適當(dāng)擴充。實驗從UCI字符庫和MNIST數(shù)字庫選取了其中7 200個字符。分別采用SUV算法[5]、非線性PCA神經(jīng)網(wǎng)絡(luò)算法[6]與本文LVc算法對2 240個字符進行測試,結(jié)果如表1所示。

Image 006.png

  從表1可以看出,本文算法的正確率達到96.83%,在3種算法中最優(yōu)。
3 結(jié)論
  本文提出的算法計算方法簡單,計算速度快,易于實現(xiàn)。由于算法采用了比值法,避免了傳統(tǒng)分類結(jié)構(gòu)存在的錯誤傳導(dǎo)缺陷,提高了識別率,避免了模板匹配中對標準字符的依賴,可用于多種計算機字體并對手寫字體傾斜度有一定的適應(yīng)性,且易于移植和擴展。
  參考文獻
  [1] 姚正斌,丁曉青,劉長松.基于筆劃合并和動態(tài)規(guī)劃的聯(lián)機漢字切分算法[J].清華大學(xué)學(xué)報(自然科學(xué)版),2004,44(10):31-36.
  [2] KHOTNAZAD A, HONG Y H. Invariant image recognition by Zernike moments[C]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1990,12(5):489-497.
  [3] SCH?魻LKOPF B, BURGES C J C, VAPNIK V. Extracting support data for a given task[C]. Proceedings of 1st International Conference on Knowledge Discovery & Data Mining, Menlo Park, CA:AAAI Press,1995:252-257.
  [4] 武強,童學(xué)鋒,季雋.基于人工神經(jīng)網(wǎng)絡(luò)的數(shù)字字符識別[J].計算機工程與應(yīng)用,2003,19(14):112-114.
  [5] 支持向量機入門[EB/OL].[2014-10-31].http://www.docin.com/p-46942684.html.
  [6] 孫光民,張程,王鵬,等.基于非線性PCA神經(jīng)網(wǎng)絡(luò)的手寫體字符識別[J].北京工業(yè)大學(xué)學(xué)報,2007,33(9):915-919.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。