摘 要: 針對(duì)目前脫機(jī)手寫字符識(shí)別計(jì)算量大,對(duì)字體字形都有一定的要求,,提出了主要以字符矩陣中01變換頻率為基礎(chǔ),,從字符的整體和局部特征出發(fā)進(jìn)行分析識(shí)別的算法。此算法縮減了計(jì)算量并對(duì)所需局部信息進(jìn)行放大,,在一定程度上避免了傳統(tǒng)采用分類器方法的錯(cuò)誤傳導(dǎo),,提高了字符的識(shí)別率,易于實(shí)現(xiàn)移植和擴(kuò)展,。
關(guān)鍵詞: 字符識(shí)別,;脫機(jī)識(shí)別;手寫字符
0 引言
目前計(jì)算機(jī)對(duì)手寫字符識(shí)別主要分聯(lián)機(jī)和脫機(jī)兩種方式,。聯(lián)機(jī)方式目前主要采用的是聯(lián)機(jī)筆畫順序識(shí)別[1],。脫機(jī)方式目前研究以計(jì)算機(jī)常用字體為主的識(shí)別主要采用方式模板匹配法[2]、基于結(jié)構(gòu)特征算法[3],、基于神經(jīng)網(wǎng)絡(luò)算法[4]和基于支持向量機(jī)[3]等,。前兩種算法算法本身對(duì)字符比較敏感,對(duì)手寫體特征筆畫定義的差距造成識(shí)別率下降,;后兩者提高識(shí)別率則需要大量計(jì)算,。
1 LVc算法
字符主要由豎線、橫線,、半封閉弧線,、封閉線筆畫構(gòu)成,筆畫簡(jiǎn)單特征少,,而手寫半封閉弧線經(jīng)常和橫線豎線進(jìn)行相互替換,,加上封閉完整性的缺失增加了識(shí)別難度。因此本文提出LVc算法,,提取文本中定義字符和數(shù)字的頻率特征和細(xì)節(jié)特征,,并與已知標(biāo)準(zhǔn)字符提取的特征相比較、識(shí)別,。
1.1 預(yù)處理
圖像矩陣經(jīng)過(guò)降噪,、二值化后得到,并把矩陣?yán)檬剑?)轉(zhuǎn)換成矩陣Am×n,,其中m=p+2,,n=q+2。
1.2 基本計(jì)算
1.2.1 頻率的相關(guān)計(jì)算
當(dāng)對(duì)Am×n第x行掃描時(shí),,若ax,,y≠ax,y+1,,則稱存在一次變化,,x行總變化次數(shù)稱為x行水平變化頻率,,記做lv(x),如式(2)所示,。同理可得第y列的垂直變化頻率hv(y),。
其中,x=1,,2,3,,…,,m。
若相鄰的,,則稱它們屬于同一個(gè)水平頻率組Lgt(t=1,,2,…),,其水平變化頻率為L(zhǎng)gtlv,,該組所擁有行數(shù)為L(zhǎng)gnt,如式(4)所示,。
其中,,
同理可得垂直頻率組Hgt(t=1,2,,…),,相關(guān)數(shù)據(jù)設(shè)其所得垂直變化頻率為Hgthv,所擁有列數(shù)為Hgnt,。
1.2.2 行(列)累計(jì)度
字符中各行(列)中非0像素點(diǎn)的多少稱為該行(列)累計(jì)值,,如式(5)所示。
同理可得第y列的累計(jì)值,。
為了對(duì)筆畫的長(zhǎng)短有所區(qū)分,,這里用Pilel(x)來(lái)表示:
橫向長(zhǎng)筆畫數(shù)用Spsl表示:
同理可以得到相應(yīng)區(qū)域的列累計(jì)度和縱向長(zhǎng)筆畫數(shù)。
1.2.3 筆跡粗細(xì)
當(dāng)用累計(jì)值除對(duì)應(yīng)頻率時(shí),,可得字符的筆跡粗細(xì)Handw:
同理可得列筆跡的粗細(xì)Handwv,。
1.2.4 頻率的修正
字符邊緣的“毛刺”現(xiàn)象對(duì)頻率影響非常嚴(yán)重。若在x行中存在n個(gè)符合條件的區(qū)域,,其中,,則令lv′(x)=lv(x)-n。同理可以對(duì)垂直頻率進(jìn)行修正,。
手寫中經(jīng)常出現(xiàn)筆畫的起筆或末端的彎鉤現(xiàn)象如6,、C,給下一步有效頻率組判斷帶了一定的干擾,。若某個(gè)水平頻率組中滿足,,
1.3 英文字符的基本特征提取
1.3.1 有效變化頻率組
若某水平頻率組,,則稱其為有效水平頻率組efLgt,其水平頻率,,擁有的行數(shù)設(shè)為efLgtn,;一個(gè)字符所擁有的efLgt數(shù)設(shè)為numLg。
計(jì)算有效垂直頻率efLgt,,首先確定其測(cè)試區(qū)域:若numLg=1,,則需根據(jù)垂直有效頻率判別式求得efLgt;若numLg≥2,,存在efLg1其x∈[a,,b]和efLg2其x∈[c,d],,則取Did=下部和Diu=上部,,如圖1所示進(jìn)行垂直有效頻率判別式分析計(jì)算。
垂直有效頻率判別式為:若字符中Hgt的Hgnt≥,,則認(rèn)為其所在Hgt組為有效垂直頻率組,;若字符中Hgnt<,則選max(Hg1hv×Hgn1,,Hg2hv×Hgn2,,…)(t=1,2,,…),,其中Hgnt≥2Handw最大值所在組為有效垂直頻率組。
1.3.2 焦點(diǎn)集中區(qū)域
一個(gè)字符中往往存在某個(gè)有效區(qū)域其像素點(diǎn)較為集中,,稱之為焦點(diǎn)集中區(qū)域,。確定集點(diǎn)集中區(qū)域需先以水平有效頻率為劃分基礎(chǔ)再進(jìn)行計(jì)算。
若numLg=1,,設(shè)su為字符垂直有效頻率的上部像素點(diǎn)的合計(jì)數(shù):
同理知下部非0點(diǎn)的合計(jì)數(shù)sd,。
滿足時(shí),則認(rèn)為字符垂直方向上部區(qū)域焦點(diǎn)集中,,反之亦然,。
若numLg≥2,則需按垂直頻率的區(qū)間劃分并根據(jù)式(10)計(jì)算判斷,。
計(jì)算水平方向的焦點(diǎn)集中區(qū)域時(shí),,選定其垂直方向的焦點(diǎn)集中區(qū)域,并以其區(qū)域內(nèi)的有效垂直頻率組的中線為分界線依據(jù)式(10)計(jì)算,。
1.4 字符的細(xì)節(jié)檢測(cè)
1.4.1 有效空頻組檢測(cè)
把字符中存在間斷情況作為其字符的細(xì)節(jié)特點(diǎn)加以考察,。
若存在Lgt-1、Lgt,、Lgt+1(1<t<m)連續(xù)3個(gè)相鄰的水平頻率組,,若滿足Lgt-1lv≠0∩Lgt+1lv≠0∩Lgtlv=0,,且Handw≥Lgnt≥min(Lgnt-1,Lgnt+1),,則認(rèn)定Lgt組為有效空頻組Lgo,。
1.4.2 直線、曲線,、波浪曲線檢測(cè)
字符6和b,、8和B等單從頻率上無(wú)法區(qū)分,需對(duì)邊緣部分求其平均曲率加以區(qū)分,,如式(11)所示,。
其中,為對(duì)應(yīng)切線的轉(zhuǎn)角,,為對(duì)應(yīng)弧線的長(zhǎng)度。
若字符存在垂直焦點(diǎn)集中區(qū)域,,則只需求此區(qū)域外側(cè)平均曲率即可,;否則計(jì)算兩側(cè)。上下兩側(cè)的有效水平頻率組的中線外側(cè)區(qū)域?yàn)橛?jì)算區(qū)域,,利用式(11)~(12)計(jì)算,。
字符3和B的右側(cè)曲線稱為波浪曲線。若在計(jì)算字符時(shí),,其側(cè)面存在垂直頻率組t符合Hgnt≥2Handw∩Hgthv≥6,,則認(rèn)為其側(cè)存在波浪曲線。
1.4.3 封閉性檢測(cè)
如果字符numLg=1,,則以字符整體為測(cè)試區(qū)域進(jìn)行檢測(cè):
,,成立,則此區(qū)間為上部封閉,,否則此區(qū)間非上部封閉,。同理判斷其他區(qū)間的封閉性。
如果numLg≥2,,則根據(jù)求有效垂直頻率的區(qū)域劃分進(jìn)行封閉性計(jì)算,。
1.4.4 相交檢測(cè)
書寫往往會(huì)造成兩條線段平行和相交的近似,如A和H,。因此當(dāng)字符存在efLgtlv=2且兩側(cè)Sstl=straight,,其待測(cè)區(qū)間的兩線段的斜率為k1、k2,,設(shè)相交檢測(cè)結(jié)果為Sa:
當(dāng)Sa=intersect,,則認(rèn)為其兩條線段相交,同時(shí)其相交方向可以認(rèn)為近似封閉,。
1.5 相似度比較
1.5.1 編碼
通過(guò)計(jì)算,,得到了一系列數(shù)字構(gòu)成測(cè)試值編碼Rand,,如圖2所示。
1.5.2 相似度計(jì)算
計(jì)算采用左對(duì)齊不夠補(bǔ)0的策略,,計(jì)算方法如式(15)所示,。其中,Rand為測(cè)試值編碼,,Stan為已有標(biāo)準(zhǔn)字符編碼,。
1.5.3 LVc算法實(shí)現(xiàn)
該算法主要根據(jù)字符的頻率進(jìn)行分類,在確定字符的水平有效分組的基礎(chǔ)上,,再計(jì)算其有效垂直頻率,、封閉性、視覺焦點(diǎn)集中區(qū)域等,。根據(jù)計(jì)算得出的數(shù)值排列成一組數(shù)字代碼表示字符特征,,并把此數(shù)字特征代碼與已知標(biāo)準(zhǔn)庫(kù)中代碼串相比較,求出的最大相近字符即識(shí)別輸出,。算法流程圖如圖3所示,。
2 實(shí)驗(yàn)及其結(jié)果
由于字母o和數(shù)字0以及印刷體的字母l和數(shù)字1特征不明顯,這里不做具體討論,。
實(shí)驗(yàn)1 字符的頻率和累計(jì)度
對(duì)原始圖像進(jìn)行濾波和二值化等預(yù)處理,,如圖4所示。圖5所示為圖像的頻率特征,,其中圖5(a)是原始狀態(tài)下得到的頻率,,圖5(b)是經(jīng)過(guò)修正后得到的頻率,可以明顯看出修正后的字符的頻率特征更加明顯,。圖6是進(jìn)一步對(duì)焦點(diǎn)集中區(qū)域進(jìn)行的頻率特征檢測(cè),。
實(shí)驗(yàn)2 字符的識(shí)別率
實(shí)驗(yàn)以計(jì)算機(jī)黑體字庫(kù)為基礎(chǔ)字庫(kù)并根據(jù)實(shí)際情況對(duì)其字體庫(kù)進(jìn)行了適當(dāng)擴(kuò)充。實(shí)驗(yàn)從UCI字符庫(kù)和MNIST數(shù)字庫(kù)選取了其中7 200個(gè)字符,。分別采用SUV算法[5],、非線性PCA神經(jīng)網(wǎng)絡(luò)算法[6]與本文LVc算法對(duì)2 240個(gè)字符進(jìn)行測(cè)試,結(jié)果如表1所示,。
從表1可以看出,,本文算法的正確率達(dá)到96.83%,在3種算法中最優(yōu),。
3 結(jié)論
本文提出的算法計(jì)算方法簡(jiǎn)單,,計(jì)算速度快,易于實(shí)現(xiàn),。由于算法采用了比值法,,避免了傳統(tǒng)分類結(jié)構(gòu)存在的錯(cuò)誤傳導(dǎo)缺陷,提高了識(shí)別率,避免了模板匹配中對(duì)標(biāo)準(zhǔn)字符的依賴,,可用于多種計(jì)算機(jī)字體并對(duì)手寫字體傾斜度有一定的適應(yīng)性,,且易于移植和擴(kuò)展。
參考文獻(xiàn)
[1] 姚正斌,,丁曉青,,劉長(zhǎng)松.基于筆劃合并和動(dòng)態(tài)規(guī)劃的聯(lián)機(jī)漢字切分算法[J].清華大學(xué)學(xué)報(bào)(自然科學(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] 武強(qiáng),,童學(xué)鋒,,季雋.基于人工神經(jīng)網(wǎng)絡(luò)的數(shù)字字符識(shí)別[J].計(jì)算機(jī)工程與應(yīng)用,2003,,19(14):112-114.
[5] 支持向量機(jī)入門[EB/OL].[2014-10-31].http://www.docin.com/p-46942684.html.
[6] 孫光民,,張程,,王鵬,,等.基于非線性PCA神經(jīng)網(wǎng)絡(luò)的手寫體字符識(shí)別[J].北京工業(yè)大學(xué)學(xué)報(bào),2007,,33(9):915-919.