摘要:本文對筆劃識別過程中提取關(guān)鍵點的重要性進行分析研究,介紹了提取拐點的兩種常用的算法,并進一步結(jié)合這兩種算法的優(yōu)缺點,提出了二次檢測的方法,使得系統(tǒng)提取拐點的準(zhǔn)確度得到了進一步提高。實驗結(jié)果表明,本文提出的改進方法具有很好的魯棒性。
關(guān)鍵詞:聯(lián)機手寫;漢字識別;特征提取
中圖分類號:TP391.41 文獻標(biāo)識碼:A 文章編號:1007-9599 (2012) 24-0072-02
隨著計算機和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,計算機信息化的時代已進入到了我們?nèi)粘I?。漢字是我們?nèi)粘=涣鞯闹匾獦蛄海欢?,目前漢字不能像英文那樣可以通過鍵盤直接鍵入計算機,而是需要通過各種輸入法去轉(zhuǎn)換。因此,如何在計算機上有效地輸入漢字,將對計算機中文信息處理的應(yīng)用與發(fā)展有著直接的影響。針對應(yīng)用日益廣泛的聯(lián)機手寫漢字識別技術(shù),本文對其中筆劃識別過程中提取關(guān)鍵點的重要性進行分析研究,介紹了提取拐點的兩種常用的算法,并進一步結(jié)合這兩種算法的優(yōu)缺點,提出了二次檢測的方法,使得系統(tǒng)提取拐點的準(zhǔn)確度得到了進一步提高。
1 預(yù)處理
在書寫者書寫的過程中,由于手寫者手會抖動的原因,使得在系統(tǒng)得到的采樣點中常?;煊性肼朁c。除此之外,不同書寫者的書寫習(xí)慣也不同,書寫時字體有大有小,速度也有快有慢,這些不定因素對采集到的數(shù)據(jù)進行有效識別有著直接影響,因此,預(yù)處理是聯(lián)機手寫識別中重要環(huán)節(jié),預(yù)處理結(jié)果的好壞將直接關(guān)系到最終的識別結(jié)果[1-2]。本系統(tǒng)采用的預(yù)處理主要包括大小歸一化、濾除噪聲、均勻化等處理。
1.1 歸一化
由于書寫者的手寫習(xí)慣不同,這樣所采集到的書寫位置、書寫軌跡以及其點陣大小也不盡相同。另外,如果不對字符進行歸一化,獲取筆劃長度等屬性也就失去了方法上的意義。因此,必須進行歸一化處理,使其具有相同的大小和形狀,以利于特征提取和識別的進行。把不同大小、不同位置的文字變換為同樣大小、相同位置文字的處理過程稱為歸一化,它包括大小歸一化和位置歸一化。常用的歸一化方法有兩種:線性歸一化和非線性歸一化[1]。在本系統(tǒng)中,為了使歸一化后的文字不發(fā)生形變,以及便于后期文字識別中對文字筆劃的特征提取和識別,本系統(tǒng)采用了線性歸一化的方法,將筆劃軌跡映射到一個固定大小的框當(dāng)中,對手寫文字軌跡的大小、位置等進行一定的轉(zhuǎn)換。
1.2 濾除噪聲
在本系統(tǒng)中,預(yù)處理濾除噪聲主要包含兩個過程步驟:濾除噪聲筆劃和平滑處理[2]。當(dāng)以手寫板作為手寫輸入的設(shè)備時,對輸入筆劃的判斷會因為手寫板電磁干擾所產(chǎn)生的孤立點噪聲而產(chǎn)生偏差。盡管當(dāng)使用鼠標(biāo)作為手寫輸入設(shè)備時,電磁干擾噪聲問題不會出現(xiàn),但書寫者書寫時會產(chǎn)生無意的落筆,以及剛落筆時筆劃斷裂等現(xiàn)象,這些都會形成干擾筆劃,從而影響后續(xù)識別。通過分析發(fā)現(xiàn)這些干擾筆劃的共同特點是筆劃長度小于正常筆劃,因此,在本系統(tǒng)中采用閾值的方法對干擾筆劃進行濾除。這里設(shè)定一個干擾筆劃長度閾值,然后計算每一個筆劃長度。通過進一步比較,若筆劃長度大于干擾筆劃長度閾值,則保留,否則判別為干擾筆劃,予以濾除。此外,由于書寫者的手在書寫時會出或多或少抖動,使得本應(yīng)平直的筆劃出現(xiàn)輕微鋸齒,而計算機在對鼠標(biāo)采樣點量化時,也會產(chǎn)生鋸齒畸變。這些鋸齒畸變在對書寫筆跡的直線化時往往是不利的。為此,我們需要對書寫的筆跡進行平滑處理,以減小以上情況所產(chǎn)生的影響,在系統(tǒng)中采用均值加權(quán)濾波算法做平滑處理。這樣的處理過程具有簡單快捷的特點,便于系統(tǒng)的實時處理。
1.3 均勻化
由于書寫者書寫時運筆速度是不均勻的,而在計算機系統(tǒng)中捕獲鼠標(biāo)坐標(biāo)的時間間隔往往又是固定的,這就造成了系統(tǒng)所采集到的相應(yīng)的坐標(biāo)點序列間距不等,從而對筆劃的存儲和識別都有一定的影響。為了消除這種影響,本系統(tǒng)對文字的書寫軌跡按一定距離閾值進行等距離重采樣,以使文字的采樣點間距均勻,并減少文字軌跡的數(shù)據(jù)量。
2 特征提取
特征提取在手寫體識別的研究中一直起著十分重要的作用。良好的特征應(yīng)該使同一種字符的不同書寫所對應(yīng)的特征序列之間的差異性盡可能小,而在不同字符之間的差異性盡可能大[3-4]。在聯(lián)機手寫漢字識別中,筆劃特征關(guān)鍵點的有效提取對筆劃的正確獲取有著直接影響,進而也關(guān)系到最后整個字符識別的結(jié)果。
2.1 有關(guān)定義
漢字是按照該字的筆劃依次書寫而成,根據(jù)聯(lián)機手寫漢字識別系統(tǒng)的特點,要識別一個漢字,首先要抽取書寫漢字的筆劃特征,然后識別出所書寫的筆劃,最后用這些筆劃特征序列查找所對應(yīng)的漢字。本文這里所論述的主要是這種基于漢字筆劃特征的漢字識別方法。
定義1:筆劃是指在一次書寫過程中從落筆到抬筆之間形成的軌跡。筆劃中單一方向的直線段稱作筆段。
定義2:設(shè)某筆段的起始點和終結(jié)點坐標(biāo)分別為 、 ,則該筆段的方向為:
(1)
定義3:當(dāng)筆劃是一條一個方向的線段時,也就是筆劃只是由一個筆段構(gòu)成,則稱該筆劃為單筆段筆劃(或基本筆劃);當(dāng)筆劃是由兩個以上方向的線段構(gòu)成,也就是兩個以上的筆段構(gòu)成時,則稱該筆劃為復(fù)合筆劃。
定義4:漢字是由四種基本筆劃橫、豎、撇、捺(點)和一種復(fù)合筆劃折組成。
2.2 筆劃分割
由于一般的用戶在配置計算機的時候很少會配置用作手寫輸入的書寫板,所以,本系統(tǒng)使用我們平時用得最多的鼠標(biāo)作為手寫輸入設(shè)備。當(dāng)鼠標(biāo)在本系統(tǒng)有有效區(qū)域內(nèi)移動時,計算機操作系統(tǒng)會定時自動地捕獲鼠標(biāo)坐標(biāo)值,并以消息的形式發(fā)送給本系統(tǒng)窗口的過程處理函數(shù)。而當(dāng)書寫者使用鼠標(biāo)在本系統(tǒng)的輸入?yún)^(qū)內(nèi)書寫漢字時,系統(tǒng)會自動的把從計算機操作系統(tǒng)獲取的各點x-y坐標(biāo)值存儲起來,用以記錄書寫的筆跡,并作為聯(lián)機識別的原始數(shù)據(jù)。
本系統(tǒng)對于筆劃是指從落筆(鼠標(biāo)左鍵按下)在手寫區(qū)內(nèi)起,書寫到抬筆(鼠標(biāo)左鍵起來)或越出書寫區(qū)。對于使用鼠標(biāo)作為輸入設(shè)備的本系統(tǒng)來說,筆劃分割相對來說比較簡單,因為在鼠標(biāo)左鍵按下或起來的時候,計算機操作系統(tǒng)都會向系統(tǒng)窗口發(fā)送相就的消息。據(jù)此,我們只需要在鼠標(biāo)在書寫區(qū)中左鍵按下時,開始記錄鼠標(biāo)移動軌跡,而在鼠標(biāo)左鍵抬起或越出書寫區(qū)時停止記錄。此時所得到的點集是構(gòu)成先前書寫的筆劃的筆跡。
2.3 筆劃關(guān)鍵點提取
筆劃關(guān)鍵點主要有三種:起點、終點和拐點。對于聯(lián)機手寫漢字而言,筆劃的端點很容易由書寫筆劃在鼠標(biāo)左鍵按下和放開的消息中得到,因而對拐點的判斷就是能否準(zhǔn)備提取筆劃特征的關(guān)鍵。拐點檢測最常用的算法有多邊形近似法和角點檢測法[5]。多邊形近似法的基本思想是用多邊形來逼近平面曲線,把多邊形的頂點作為對應(yīng)筆劃的拐點。該算法首先將待逼近曲線的起點與終點相連,計算曲線上每一點到該連線的距離。若最大距離超過既定門限,則將對應(yīng)最大距離的點作為多邊形的一個頂點、該頂點把所逼近的曲線分成兩段。最后分別對所分成的兩段曲線進行遞歸處理,重復(fù)前面操作,直至不能分割出更多的頂點為止。
對于多邊形近似法,門限的選擇對識別的結(jié)果有很大的影響。如果門限太大,會導(dǎo)致部分拐點無法識別;而如果門限太小,筆劃會因此分割得太碎,拐點識別不準(zhǔn)確。處理這個問題,要選出個特別理想的門限值,從而從根上解決這個問題相對來說有點難。為此,本系統(tǒng)采用二次檢測的方法,先使用多邊形近似法,用相對較小的門限,識別出備選拐點,然后再用角點檢測的方法,把曲率不達到系統(tǒng)定值的備選拐點從該筆劃拐點集中刪除。
在拐點的二次檢測的過程中,角點檢測法在檢查當(dāng)前點時,首先要獲得以當(dāng)前點為頂點且與相鄰備選拐點間的連線作為邊所形成夾角,然后判斷該夾角是否小于門限拐點夾角值,并以此來判斷當(dāng)前點是否保留為拐點,其具體實現(xiàn)步驟如下:
步驟1:設(shè)備選拐點坐標(biāo)序列為 ,其中 為總的備選拐點個數(shù)。令當(dāng)前備選拐點 點為待檢測點,其夾角 為點 到 的連線 與點 到 的連線 之間的夾角。這里, , , ,則有
(2)
若 則 為筆劃中的一個折點,否則,把 從拐點列表中刪除。
步驟2:回到步驟1,斷續(xù)檢測下一個點,直至循環(huán)結(jié)束。
根據(jù)前面提取的筆劃的關(guān)鍵點,可以很容易的計算出筆段的平面方向,從而得到該筆劃的筆段方向碼序列。對于前面所提取的關(guān)鍵點,不符合要求的關(guān)鍵點并不一定能夠完全的刪除,同時,由于筆劃書寫的特點,前面所提取出來的筆劃的筆段方向序列中有可能會存在一些連續(xù)的同類型筆段。因此,在識別出筆劃之前,有需要通過對組成筆劃的筆段方向碼序列進行濾波、歸并處理之后得到筆劃的編碼重復(fù)最少的方向碼序列,最后完成筆劃識別。
3 系統(tǒng)測試
下面我們以將以“中”、“國”兩個漢字來對本系統(tǒng)進行測試實驗。經(jīng)過本文上述在預(yù)處理和筆劃關(guān)鍵點提取等方面的操作,本文系統(tǒng)不僅可以在按照正常筆劃書寫的情況下,得較好的識別結(jié)果,而且對于圖1中通過非正常規(guī)范筆劃書寫的漢字,也能得到正確的識別效果。另外,從圖1中我們還可以看出,經(jīng)過預(yù)處理后的筆劃都比較平滑,且對鋸齒畸變有很好的抑制作用,而對非規(guī)范書寫時產(chǎn)生的多個筆劃關(guān)鍵點也并沒有影響識別效率,這些都對有利于提高最終文字識別的正確率,提高了識別系統(tǒng)的魯棒性。
圖1 “中”、“國”兩字的書寫與識別結(jié)果
4 結(jié)束語
本文對聯(lián)機手寫過程中重要的預(yù)處理環(huán)節(jié)進行了詳細(xì)介紹,對筆段識別過程中筆劃特征的關(guān)鍵點提取進行了分析研究,然后結(jié)合這兩種傳統(tǒng)的拐點檢測算法提出了二次檢測的方法。采用二次檢測的方法使得系統(tǒng)提取筆劃拐點的準(zhǔn)確度進一步得到了提高,同時也增強了系統(tǒng)的魯棒性,這也對其他文字的聯(lián)機識別算法帶來有價值的參考。
參考文獻:
[1]劉曉娟.聯(lián)機手寫漢字識別中字根提取算法研究[D].華中科技大學(xué)碩士論文,2008.
[2]陳萬軍.聯(lián)機手寫藏文識別的研究[D].西北民族大學(xué)碩士論文,2005.
[3]魯湛,丁曉青.基于筆段間關(guān)系的聯(lián)機手寫漢HMM模型[J].清華大學(xué)學(xué)報,2004,44(7):913-916.
[4]何浩智,朱寧波,劉偉.基于骨架點分布規(guī)律的漢字筆段提取算法[J].計算機工程與應(yīng)用,2007,43(22):83-86.
[5]戴汝為,郝紅衛(wèi),肖旭紅.漢字識別系統(tǒng)與集成[M].浙江:科學(xué)技術(shù)出版社,1998.