摘要:該文提出了一種采用BP神經網絡方法來對無限制手寫體字母、數字進行識別的方案。在選取合適的特征點的基礎上,對手寫體圖像進行分域處理,每一小區域對應輸入層的一個神經元。測試結果表明,該識別方案具有很強的抗畸變、抗旋轉能力。
關鍵詞:神經網絡;誤差反傳;字符識別
中圖分類號:TP183文獻標識碼:A文章編號:1009-3044(2008)33-1459-02
Recognize Unconstrained Handwritten Characters in BP Neural Network
GUO Gang, WANG Yi
(Qingdao TV University, Qingdao 266012, China)
Abstract: This paper introduces neural network to recognize unconstrained handwritten characters. On the basis of appropriate feature extraction, handwritten image segmentations are made. Every part corresponds to a neural cell of input layer. Experimental results show that this method has the ability of rotational variance-resistance.
Key words: neural network; BP; character recognition
1 引言
字符識別長期以來都是采用傳統的識別方法,對印刷體字符的識別率一般只是穩定在96%左右,未能進一步提高,而對手寫體字符的識別,其研究還處于探索階段,其識別率還相當低,因此,為了提高識別率,就必須尋求新的方法和途徑。
20世紀80年代中期,人們已經開始利用人工神經網絡解決手寫體數字識別問題。人工神經網絡為OCR研究提供了新的手段,它具有一些傳統技術所沒有的特點:1)具有很強的分類能力,可以在特征空間內形成任意復雜的決策區域;2)硬件實現后的神經網絡分類速度比傳統方法快得多;3)分類器便于訓練,無需人為過多的干預。特別是對手寫體字符識別問題,神經網絡技術更顯示出獨特的優越性。
目前研究的神經網絡字符識別系統可劃分為兩大類.第一類系統實際上是傳統方法與神經網絡技術的結合,這也是本文采用的方法.這類系統分為兩塊,第一塊主要完成樣本模式預處理和字符特征抽取任務,第二塊是用前面獲得的模式特征來訓練神經網絡分類器,從而達到識別字符的目的。這類系統充分利用了人的經驗來獲取模式特征以及神經網絡的杰出分類能力來識別字符,是人們通常采用的方法。第二類系統省去了特征抽取工作,整個字符直接作為神經網絡的輸入,這類系統的神經網絡結構的復雜度大大增加了,首先輸入模式維數的增加導致網絡規模的龐大,使得網絡的訓練、學習非常困難。此外神經網絡結構上要消除模式變形的影響。通常這類網絡都采用局部連接的方式減少網絡的復雜度,并采用共享連接權的策略增強網絡抗變形(輸入模式)的能力。
由于人工神經網絡具有并行處理和很強的容錯性等特點,因此有可能大大提高手寫體字母數字識別的準確率和速度。目前神經網絡手寫體字母數字識別系統的識別水平已與傳統模式方法相當,且大有提高的余地。本文闡述了利用BP網絡進行手寫體字母(小寫)、數字識別的一些嘗試,取得了令人滿意的測試結果。
2 預處理和特征抽取
2.1 樣本集的獲取和預處理
實驗中所用的手寫體數字樣本集由1000個數字組成,它們是在屏幕上隨意書寫后,由象素點提取程序提取數據并存入磁盤文件,每個數字由6×8的網格數據組成。
實驗中所用的手寫體小寫字母樣本集由400個字母組成,它們也是在屏幕上隨意書寫后,由象素點提取程序提取數據并存入磁盤文件,每個數字由8×10的網格數據組成。
圖1給出了部分原始數字圖象和處理后的圖像樣本和部分原始字母圖像和處理后的圖像樣本。
2.2 特征提取方法
字符是由弧線和直線構成的,弧線的彎曲方向和程度不同,字符的形狀也就不一樣。但是同一類不同形狀的字符,它的端點數、交叉點數,點與點之間的相對位置及弧線的彎曲方向基本上是穩定的。而這些特征反映了字符的拓撲結構,是字符的重要特征。
我們所采用的特征提取方法是:在手寫(用鼠標模擬)過程中,由于鼠標會在屏幕上留下軌跡,所以只要從鼠標按鍵到鼠標起鍵,分別記錄下鼠標經過的最大最小橫縱坐標值,就可以分別將數字、字母劃分為6×8和8×10的結構(如圖1所示)。在確定好字符所占的區域之后,對于每一個網格,按照12×16的點陣提取象素點,如果在12×16的點陣上存在象素點的象素值為字體顏色,則認為相應網格取值為1,否則取值為0。
例如:圖1中數字2提取的特征值為:
0011100100100000100000100001100011000110001111111
字母a提取的特征值為:
00111000010011000100010010000100100001001000110010011100110101000110001000000001
所得到的數據作為神經網絡輸入層的輸入數據。
在生成訓練集時,不但要把上述數據存入磁盤文件,同時,還要將目標值(數字2和字母a)也分別寫入磁盤文件,作為訓練集數據。
3 識別和訓練
3.1 神經網絡的結構及其優化
我們采用的是誤差反向傳播的BP網絡,選一層隱含層,網絡結構如圖2所示。輸入層神經元的數目即為輸入樣本的維數(數字48,字母80),輸出層的神經元數目為10(數字)和26(字母),分別對應10個數字和26個字母。至于隱含層神經元數目目前只有在實驗的基礎上經驗選取,在實驗中,我們將數字識別神經網絡的隱含層神經元設置為20,字母的設置為40。
3.2 識別的實現
構造48×20×10的前饋BP神經網絡模型用于數字識別(字母識別用的是80×40×26)。輸入層含有48個神經元,對應圖像被劃分為48個小區域,每個神經元取值范圍可為0或1。若取0,表明該區域內不含任何圖像信息,若取1,表明該區域內含有圖像信息。輸出層是10個神經元,對應10個數字,隱含層是20個神經元。所有神經元都采用Sigmoid特性,即。網絡輸出誤差的度量采用均方誤差準則,即 。式中Ti為第三層(輸出層)第i 個神經元的目標輸出;ViL為輸出層第i個神經元的實際輸出。
網絡采取全連接的方式,它的自適應過程采用誤差逆向傳播(EBP)的學習規則,學習過程中各神經元之間的連接權重按下列關系進行調整:
W(n)=W(n-1)+ΔW(W(n)為第次迭代中的權重值,ΔW為本次權重調節量)
對于輸出層,權重調節量為:
ΔWqm(n)=ησmVq+μΔWqm(n-1)(η為學習率0<η<1、μ為慣性系數0<μ<1)
其中,σm= (Tm-Vm)(1-Vm) Vm(T為目標向量,V為輸出層輸出向量)
對于隱含層,權重調節量為:ΔWij,k(n)=ησi,kVj,k-1+μΔW ij,k(n-1)(η為學習率、μ為慣性系數)
其中,σi=f'(Ji)σhWih(假定神經元h在K+1層上,i在K層上,j在K-1層上)
本實驗中,經調試發現,取η=0.1,μ=0.4時,學習與收斂速度為最佳。
3.3 網絡的訓練
訓練程序中,將隨機數函數產生的隨機數作為本次訓練的記錄序號,從訓練集中取出輸入向量以及目標向量,根據上面的誤差反傳算法調整網絡神經元之間的權重,每次訓練10000次,所得到的誤差如圖3、圖4所示:
圖3自動訓練10000次(約80秒)后誤差 圖4 自動訓練20000次(約160秒)后誤差
4 結論
本系統對數字的識別率相當高,平均識別率達到98%,而對小寫字母的識別率則較低些,但平均識別率仍可達到90%。分析認為,對于數字識別所使用的訓練集比較大,有1000多條,而用于小寫字母識別的訓練集則比較小(產生訓練集比較繁瑣),僅有300多條,是產生這個差別的原因。實驗結果圖如下:
6
本系統采用Visual Basic6編寫,在Windows 2000環境下調試通過。實驗結果表明,本系統具有運算速度快,識別率較高的特點。數字的平均正確識別率達98%,字母的平均正確識別率在90%左右,并具有良好的容錯能力。如果讓系統學習更多的樣本,則識別率將會進一步提高。
參考文獻:
[1] 馮天瑾.神經網絡技術[M].山東:青島海洋大學出版社,1994:44-50.
[2] 施善昌.自動識別原理與應用[M].北京:人民郵電出版社,1989
[3] 曹煥光.人工神經元網絡原理[M].北京:氣象出版社,1992
[4] 焦李成.神經網絡系統[M].西安:電子科技大學出版社,1990
[5] 王明會,潘新安.神經網絡在手寫體數字識別中的應用[J].通信學報,1992,13(5):60-64.
[6] Haykin S.神經網絡的綜合基礎[M].2版.北京:清華大學出版社,2001:156-252.
[7] 王偉.人工神經網絡原理——入門與應用[M].北京:航空航天大學出版社,1995.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”