摘要:通過對多種手寫數(shù)字識別方法分析,提出一種新的基于BP神經(jīng)網(wǎng)絡的手寫數(shù)字識別算法:該算法在應用了一種新的特征向量的提取方案,只需要提取每個字符的18個向量,節(jié)省了特征提取時間,然后,利用改進的BP神經(jīng)網(wǎng)絡進行訓練和識別。仿真結(jié)果表明,這種新的特征提取方法對數(shù)字識別有著極好的適應性,在運行速度和識別率上比起傳統(tǒng)算法都有很大的提高。
關鍵詞:手寫數(shù)字識別;特征提??;BP神經(jīng)網(wǎng)絡
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2009)05-1207-02
Application of a New Feature Extraction Method in Number Recognition
ZENG Xu-feng
(School of Compter, Center South University of Forestry and Technology, Changsha 410004, China)
Abstract: By studying and analyzing many algorithms for handwritten digit recognition, this paper proposes a new algorithm for handwritten digit recognition based on BP neural network. Firstly, the new algorithm applies a new feature vector extraction program, only need to extract each character 18 vector, which saves the time of the feature extraction. And then, uses the improved BP neural network for training and recognition. The simulation results show that the improved method of digital identification has excellent adaptability, running speed and recognition rate than the traditional algorithms.
Key words: handwritten digit recognition; feature vector extraction; BP neural network
1 引言
手寫數(shù)字識別作為數(shù)字簽名等計算機信息處理領域的熱點問題一直被人們長期關注著,特征提取是手寫體數(shù)字識別中的一個重要的環(huán)節(jié),是模式識別的核心之一。經(jīng)過預處理后,滿足識別要求的模式要根據(jù)識別方法的要求抽取特征,作為識別的依據(jù)。因此,特征選擇會直接影響到分類器的構(gòu)造和識別的效果。本文在通過分析與總結(jié)前人的成果,提出了一種速率和準確率都較好的方法。
2 預處理與特征提取
字符處理前的首要工作是將視覺圖像轉(zhuǎn)化為可由計算機識別的二值圖像識別前必須對圖像進行必要的預處理,經(jīng)過圖像的灰度化、二值化、平滑、分割、歸一化等一系列的預處理操作之后,接下來就要提取字符的特征向量。特征提取的目的就是從分析數(shù)字的拓撲結(jié)構(gòu)人手,把它的某些結(jié)構(gòu)特征提取出來,使數(shù)字的位移、大小變化、字形畸變等干擾相對減小,而把那些反映數(shù)字特征的關鍵信息提供給神經(jīng)網(wǎng)絡,這樣就等于間接地增加了網(wǎng)絡的容錯能力,而且經(jīng)過特征提取,數(shù)據(jù)量也大大減少,相應地,網(wǎng)絡規(guī)模也減小了。可見,為了有效地進行數(shù)字識別,特征提取是影響識別效果的一個關鍵步驟,,必須在保證準確率的前提下 ,盡量使用少的特征向量。
特征向量的提取方法多種多樣,根據(jù)具體情況的不同可以來選擇不同的方法.對于手寫體數(shù)字的特征提取方法而言,通常用得比較多的有以下幾種方法:
1)逐像索特征提取法:逐像素特征提取方法是一種最簡單也是當前運用較多的的特征提取方法,它對圖像進行逐行逐列的掃描,當遇到黑色像素時取其特征為1,遇到白色像時取其特征值為0,這樣當掃描結(jié)束以后形成了一個維數(shù)與圖像中像素點的個數(shù)相同的特征向量矩。
逐像素特征提取方法的特點是算法簡單,運算速度快,可使網(wǎng)絡很快地收斂,訓練效果好,但是這種算法的適應性不強。
2)骨架特征提取法:骨架特征提取法是一種利用細化的方法來提取骨架的方。兩幅圖像由于它們的線條粗細不同,使得兩幅圖像差別大,但是將它們的線條進行細化以后,統(tǒng)一到相同的寬度,一個像素寬時,這時兩幅圖像的差距就不那么明顯,利用圖的骨架作為特征來進行數(shù)字識別,就使得識別有了一定的應性。
骨架特征提取的方法對于線條粗細不同的數(shù)字有一定的應性,但是圖像一旦出現(xiàn)偏移就難以識別。
3)垂立方向數(shù)據(jù)統(tǒng)計特征提取法:垂直方向數(shù)據(jù)統(tǒng)計特征提取法就是自左向右對圖像進行列的掃描,統(tǒng)計每列黑色像素的個數(shù),然后自上而下逐行掃對圖像進行逐行逐列掃描,當遇到黑色像素時取其特征值為1,遇到白色像素時取其特征值為0,即當掃描結(jié)束后形成1個維數(shù)與圖像中像素點的個數(shù)相同的特征向量矩陣。這樣有多少個像素點就有多少個特征值。劃分的像素點多,影響識別的效率,劃分的太少,又影響準確率。
3 一種新的手寫體數(shù)字特征提取改進方案
上述的特征提取方法都存在有適應性不強的特點,當字符存在傾斜和偏移時都會對識別產(chǎn)生誤差,本文提出一種18特征提取法,只需要提取很少的特征向量,同時識別手寫體數(shù)字的效果和效率良好。提取過程總體思路是:
首先把字符平10份,分別統(tǒng)計這10個區(qū)域中的黑像素的數(shù)目,可以一共得到10個特征;然后統(tǒng)計水平方向中間五行和豎直方向中間兩列的黑色像素點的個數(shù)作為7個特征,也就是說,分別畫四道橫線(如圖1)和兩道豎線(如圖2),統(tǒng)計線穿過的黑像素的數(shù)目;然后統(tǒng)計前面黑色像素點的值作為第17個特征;
最后一個特征0表示是否存在環(huán),1表示存在環(huán)18特征。
4 建立手寫體數(shù)字識別系統(tǒng)
本文利用VC6.0建立一個手寫數(shù)字識別系統(tǒng),圖3為系統(tǒng)主界面。
對于整個系統(tǒng),程序的實現(xiàn)分為圖像預處理和神經(jīng)網(wǎng)絡識別兩大模塊。預處理完成提取到特征向量后,就由BP神經(jīng)網(wǎng)絡訓練和識別。
基本的BP神經(jīng)網(wǎng)絡由輸入層、中間層和輸出層3部分組成BP網(wǎng)絡的學習過程由2部分組成:正向傳播和反向傳播.當正向傳播時,輸入信息從輸入層經(jīng)隱藏層處理后傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層的神經(jīng)元狀態(tài).如果在輸出層得不到理想的輸出,則轉(zhuǎn)入反向傳播,將誤差信號沿原來的神經(jīng)元連接通路返回.返回過程中逐一修改各層神經(jīng)元連接的權值。關于BP神經(jīng)網(wǎng)絡學習算法的詳細推導過程可查閱參考文獻[1]。雖然BP算法有著廣泛的應用,但是其在實際應用中存在著以下的問題:①收斂速度慢,但若加快收斂速度容易產(chǎn)生振蕩,所以收斂速度不好掌握;②存在逃離不出局部極小點的問題;④隱節(jié)點數(shù)和初始值的選取缺乏理論指導。
解決方案:初始權值選取時各值不要相同,以0~1之間均勻分布的隨機值。對于隱層節(jié)點數(shù)的選?。狠斎雽拥墓?jié)點數(shù),也就是提取的特征數(shù)18,輸出層的節(jié)點數(shù)10,(即0000000001表示數(shù)字1,0000000010表示數(shù)字2,以此類推),則隱層的節(jié)點數(shù)可通過經(jīng)驗公式和多次試驗結(jié)果確定,試驗中證明為隱層節(jié)點數(shù)為8時效果較好。另外,采用雙動量項法,其算法如下:
式中:α、β均為動量因子。第3項可視為前一次的學習經(jīng)驗,當與本次梯度方向相同時,起加速作用;否則為阻尼項,可減小學習過程的振蕩趨勢,提高網(wǎng)絡穩(wěn)定性。第4項起到平滑學習過程、跳過局部極小的作用。使用此2項可提高網(wǎng)絡性能。
5 結(jié)果比較和分析
表1是一組數(shù)字的識別結(jié)果(初始值和訓練樣本相同),并與當前運用最多的用逐像索提取特征的算法進行比較(樣本為60),下面是其中一組的數(shù)據(jù):
6 結(jié)束語
實驗證明,采用18數(shù)字特征提取方法,可以減少特征提取時間,加快系統(tǒng)識別速度,同時算法的準確度沒有很大的影響。若加大訓練樣本數(shù),應可達到更高的識別率,當然訓練時間可能相應增加。因此,需要考慮如何在時間和準確度中取得平衡題。同事該算法只適合于事先知道要識別的對象是數(shù)字的識別,需要提前對樣本進行訓練,否則,這種特征提取方案是無法進行正常識別的。
參考文獻:
[1] 張猛.手寫體數(shù)字識別中圖像預處理的研究[J].微計算機信息,2006,22(6):256-258.
[2] 任民宏.基于矢量特征編碼的手寫字符識別技術[J].軟件學報2007(5):18-20.
[3] 杜彥蕊.基于特征編碼的手寫字符識別技術[J].計算機工程,2004,30(5):156-157.
[4]Alexander G,Dmitri R .Combination of assembly neu-ral network with a perceptron for recognition of hand-written digits arranged in numeral strings[J].Patter nReconition,2005,38:315-322.
[5] 邊肇祺,張學工.模式識別[M].2版.北京:清華大學出版社,2002.
[6] 彭松,方祖祥.BP神經(jīng)網(wǎng)絡學習算法的聯(lián)合優(yōu)化[J].電路與系統(tǒng)學報,2005,5(3):26-31.
[7] 劉光中,李曉峰.人工神經(jīng)網(wǎng)絡BP算法的改進和結(jié)構(gòu)的自調(diào)整[J].運籌學學報,2001,5(1):17-24.
[8] 王俊清.BP神經(jīng)網(wǎng)絡以及改進[J].電子與自動化,2007(3):167-182.