摘要:通過(guò)對(duì)多種手寫(xiě)數(shù)字識(shí)別方法分析,提出一種新的基于BP神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別算法:該算法在應(yīng)用了一種新的特征向量的提取方案,只需要提取每個(gè)字符的18個(gè)向量,節(jié)省了特征提取時(shí)間,然后,利用改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練和識(shí)別。仿真結(jié)果表明,這種新的特征提取方法對(duì)數(shù)字識(shí)別有著極好的適應(yīng)性,在運(yùn)行速度和識(shí)別率上比起傳統(tǒng)算法都有很大的提高。
關(guān)鍵詞:手寫(xiě)數(shù)字識(shí)別;特征提取;BP神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 引言
手寫(xiě)數(shù)字識(shí)別作為數(shù)字簽名等計(jì)算機(jī)信息處理領(lǐng)域的熱點(diǎn)問(wèn)題一直被人們長(zhǎng)期關(guān)注著,特征提取是手寫(xiě)體數(shù)字識(shí)別中的一個(gè)重要的環(huán)節(jié),是模式識(shí)別的核心之一。經(jīng)過(guò)預(yù)處理后,滿足識(shí)別要求的模式要根據(jù)識(shí)別方法的要求抽取特征,作為識(shí)別的依據(jù)。因此,特征選擇會(huì)直接影響到分類器的構(gòu)造和識(shí)別的效果。本文在通過(guò)分析與總結(jié)前人的成果,提出了一種速率和準(zhǔn)確率都較好的方法。
2 預(yù)處理與特征提取
字符處理前的首要工作是將視覺(jué)圖像轉(zhuǎn)化為可由計(jì)算機(jī)識(shí)別的二值圖像識(shí)別前必須對(duì)圖像進(jìn)行必要的預(yù)處理,經(jīng)過(guò)圖像的灰度化、二值化、平滑、分割、歸一化等一系列的預(yù)處理操作之后,接下來(lái)就要提取字符的特征向量。特征提取的目的就是從分析數(shù)字的拓?fù)浣Y(jié)構(gòu)人手,把它的某些結(jié)構(gòu)特征提取出來(lái),使數(shù)字的位移、大小變化、字形畸變等干擾相對(duì)減小,而把那些反映數(shù)字特征的關(guān)鍵信息提供給神經(jīng)網(wǎng)絡(luò),這樣就等于間接地增加了網(wǎng)絡(luò)的容錯(cuò)能力,而且經(jīng)過(guò)特征提取,數(shù)據(jù)量也大大減少,相應(yīng)地,網(wǎng)絡(luò)規(guī)模也減小了。可見(jiàn),為了有效地進(jìn)行數(shù)字識(shí)別,特征提取是影響識(shí)別效果的一個(gè)關(guān)鍵步驟,,必須在保證準(zhǔn)確率的前提下 ,盡量使用少的特征向量。
特征向量的提取方法多種多樣,根據(jù)具體情況的不同可以來(lái)選擇不同的方法.對(duì)于手寫(xiě)體數(shù)字的特征提取方法而言,通常用得比較多的有以下幾種方法:
1)逐像索特征提取法:逐像素特征提取方法是一種最簡(jiǎn)單也是當(dāng)前運(yùn)用較多的的特征提取方法,它對(duì)圖像進(jìn)行逐行逐列的掃描,當(dāng)遇到黑色像素時(shí)取其特征為1,遇到白色像時(shí)取其特征值為0,這樣當(dāng)掃描結(jié)束以后形成了一個(gè)維數(shù)與圖像中像素點(diǎn)的個(gè)數(shù)相同的特征向量矩。
逐像素特征提取方法的特點(diǎn)是算法簡(jiǎn)單,運(yùn)算速度快,可使網(wǎng)絡(luò)很快地收斂,訓(xùn)練效果好,但是這種算法的適應(yīng)性不強(qiáng)。
2)骨架特征提取法:骨架特征提取法是一種利用細(xì)化的方法來(lái)提取骨架的方。兩幅圖像由于它們的線條粗細(xì)不同,使得兩幅圖像差別大,但是將它們的線條進(jìn)行細(xì)化以后,統(tǒng)一到相同的寬度,一個(gè)像素寬時(shí),這時(shí)兩幅圖像的差距就不那么明顯,利用圖的骨架作為特征來(lái)進(jìn)行數(shù)字識(shí)別,就使得識(shí)別有了一定的應(yīng)性。
骨架特征提取的方法對(duì)于線條粗細(xì)不同的數(shù)字有一定的應(yīng)性,但是圖像一旦出現(xiàn)偏移就難以識(shí)別。
3)垂立方向數(shù)據(jù)統(tǒng)計(jì)特征提取法:垂直方向數(shù)據(jù)統(tǒng)計(jì)特征提取法就是自左向右對(duì)圖像進(jìn)行列的掃描,統(tǒng)計(jì)每列黑色像素的個(gè)數(shù),然后自上而下逐行掃對(duì)圖像進(jìn)行逐行逐列掃描,當(dāng)遇到黑色像素時(shí)取其特征值為1,遇到白色像素時(shí)取其特征值為0,即當(dāng)掃描結(jié)束后形成1個(gè)維數(shù)與圖像中像素點(diǎn)的個(gè)數(shù)相同的特征向量矩陣。這樣有多少個(gè)像素點(diǎn)就有多少個(gè)特征值。劃分的像素點(diǎn)多,影響識(shí)別的效率,劃分的太少,又影響準(zhǔn)確率。
3 一種新的手寫(xiě)體數(shù)字特征提取改進(jìn)方案
上述的特征提取方法都存在有適應(yīng)性不強(qiáng)的特點(diǎn),當(dāng)字符存在傾斜和偏移時(shí)都會(huì)對(duì)識(shí)別產(chǎn)生誤差,本文提出一種18特征提取法,只需要提取很少的特征向量,同時(shí)識(shí)別手寫(xiě)體數(shù)字的效果和效率良好。提取過(guò)程總體思路是:
首先把字符平10份,分別統(tǒng)計(jì)這10個(gè)區(qū)域中的黑像素的數(shù)目,可以一共得到10個(gè)特征;然后統(tǒng)計(jì)水平方向中間五行和豎直方向中間兩列的黑色像素點(diǎn)的個(gè)數(shù)作為7個(gè)特征,也就是說(shuō),分別畫(huà)四道橫線(如圖1)和兩道豎線(如圖2),統(tǒng)計(jì)線穿過(guò)的黑像素的數(shù)目;然后統(tǒng)計(jì)前面黑色像素點(diǎn)的值作為第17個(gè)特征;
最后一個(gè)特征0表示是否存在環(huán),1表示存在環(huán)18特征。
4 建立手寫(xiě)體數(shù)字識(shí)別系統(tǒng)
本文利用VC6.0建立一個(gè)手寫(xiě)數(shù)字識(shí)別系統(tǒng),圖3為系統(tǒng)主界面。
對(duì)于整個(gè)系統(tǒng),程序的實(shí)現(xiàn)分為圖像預(yù)處理和神經(jīng)網(wǎng)絡(luò)識(shí)別兩大模塊。預(yù)處理完成提取到特征向量后,就由BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練和識(shí)別。
基本的BP神經(jīng)網(wǎng)絡(luò)由輸入層、中間層和輸出層3部分組成BP網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程由2部分組成:正向傳播和反向傳播.當(dāng)正向傳播時(shí),輸入信息從輸入層經(jīng)隱藏層處理后傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層的神經(jīng)元狀態(tài).如果在輸出層得不到理想的輸出,則轉(zhuǎn)入反向傳播,將誤差信號(hào)沿原來(lái)的神經(jīng)元連接通路返回.返回過(guò)程中逐一修改各層神經(jīng)元連接的權(quán)值。關(guān)于BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的詳細(xì)推導(dǎo)過(guò)程可查閱參考文獻(xiàn)[1]。雖然BP算法有著廣泛的應(yīng)用,但是其在實(shí)際應(yīng)用中存在著以下的問(wèn)題:①收斂速度慢,但若加快收斂速度容易產(chǎn)生振蕩,所以收斂速度不好掌握;②存在逃離不出局部極小點(diǎn)的問(wèn)題;④隱節(jié)點(diǎn)數(shù)和初始值的選取缺乏理論指導(dǎo)。
解決方案:初始權(quán)值選取時(shí)各值不要相同,以0~1之間均勻分布的隨機(jī)值。對(duì)于隱層節(jié)點(diǎn)數(shù)的選取:輸入層的節(jié)點(diǎn)數(shù),也就是提取的特征數(shù)18,輸出層的節(jié)點(diǎn)數(shù)10,(即0000000001表示數(shù)字1,0000000010表示數(shù)字2,以此類推),則隱層的節(jié)點(diǎn)數(shù)可通過(guò)經(jīng)驗(yàn)公式和多次試驗(yàn)結(jié)果確定,試驗(yàn)中證明為隱層節(jié)點(diǎn)數(shù)為8時(shí)效果較好。另外,采用雙動(dòng)量項(xiàng)法,其算法如下:
式中:α、β均為動(dòng)量因子。第3項(xiàng)可視為前一次的學(xué)習(xí)經(jīng)驗(yàn),當(dāng)與本次梯度方向相同時(shí),起加速作用;否則為阻尼項(xiàng),可減小學(xué)習(xí)過(guò)程的振蕩趨勢(shì),提高網(wǎng)絡(luò)穩(wěn)定性。第4項(xiàng)起到平滑學(xué)習(xí)過(guò)程、跳過(guò)局部極小的作用。使用此2項(xiàng)可提高網(wǎng)絡(luò)性能。
5 結(jié)果比較和分析
表1是一組數(shù)字的識(shí)別結(jié)果(初始值和訓(xùn)練樣本相同),并與當(dāng)前運(yùn)用最多的用逐像索提取特征的算法進(jìn)行比較(樣本為60),下面是其中一組的數(shù)據(jù):
6 結(jié)束語(yǔ)
實(shí)驗(yàn)證明,采用18數(shù)字特征提取方法,可以減少特征提取時(shí)間,加快系統(tǒng)識(shí)別速度,同時(shí)算法的準(zhǔn)確度沒(méi)有很大的影響。若加大訓(xùn)練樣本數(shù),應(yīng)可達(dá)到更高的識(shí)別率,當(dāng)然訓(xùn)練時(shí)間可能相應(yīng)增加。因此,需要考慮如何在時(shí)間和準(zhǔn)確度中取得平衡題。同事該算法只適合于事先知道要識(shí)別的對(duì)象是數(shù)字的識(shí)別,需要提前對(duì)樣本進(jìn)行訓(xùn)練,否則,這種特征提取方案是無(wú)法進(jìn)行正常識(shí)別的。
參考文獻(xiàn):
[1] 張猛.手寫(xiě)體數(shù)字識(shí)別中圖像預(yù)處理的研究[J].微計(jì)算機(jī)信息,2006,22(6):256-258.
[2] 任民宏.基于矢量特征編碼的手寫(xiě)字符識(shí)別技術(shù)[J].軟件學(xué)報(bào)2007(5):18-20.
[3] 杜彥蕊.基于特征編碼的手寫(xiě)字符識(shí)別技術(shù)[J].計(jì)算機(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] 邊肇祺,張學(xué)工.模式識(shí)別[M].2版.北京:清華大學(xué)出版社,2002.
[6] 彭松,方祖祥.BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的聯(lián)合優(yōu)化[J].電路與系統(tǒng)學(xué)報(bào),2005,5(3):26-31.
[7] 劉光中,李曉峰.人工神經(jīng)網(wǎng)絡(luò)BP算法的改進(jìn)和結(jié)構(gòu)的自調(diào)整[J].運(yùn)籌學(xué)學(xué)報(bào),2001,5(1):17-24.
[8] 王俊清.BP神經(jīng)網(wǎng)絡(luò)以及改進(jìn)[J].電子與自動(dòng)化,2007(3):167-182.