趙冬香 曹賢平
摘 要:文章針對(duì)部分清水江文書保管不善,破舊、污損嚴(yán)重,人工難以識(shí)別的特點(diǎn),建立了基于BP神經(jīng)網(wǎng)絡(luò)的清水江文書識(shí)別系統(tǒng),該系統(tǒng)以Matlab技術(shù)實(shí)現(xiàn),初期所挑選的待識(shí)別漢字都是書寫較標(biāo)準(zhǔn)規(guī)范的漢字圖像,系統(tǒng)所使用的識(shí)別樣本庫(kù)是HCL2000國(guó)家脫機(jī)手寫漢字標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)。測(cè)試結(jié)果表明,本系統(tǒng)對(duì)書寫規(guī)范的漢字識(shí)別率較高,能達(dá)到85%以上,而對(duì)一些錯(cuò)別字、繁體字、異形字識(shí)別率較低。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);清水江文書;分類器
1 概述
清水江文書,又名錦屏文書,主要是指一些山林經(jīng)營(yíng)和木材貿(mào)易方面的民間契約和交易記錄,是貴州清水江流域苗族侗族人民創(chuàng)造和保存的一種民間文獻(xiàn)遺產(chǎn),具有多學(xué)科研究?jī)r(jià)值,2010年2月被列入《中國(guó)檔案文獻(xiàn)遺產(chǎn)名錄》。
但是,正因?yàn)槠溟L(zhǎng)期在民間保存,沒有很好的外部環(huán)境,導(dǎo)致很多文書破舊、污損,識(shí)別困難。一直以來,都是依靠人工識(shí)別文書,效率低下,不能及時(shí)有效的再現(xiàn)清水江文書的價(jià)值。如何快速高效的識(shí)別出文書上的字,是一直困擾研究人員的問題,本系統(tǒng)就是利用脫機(jī)手寫漢字識(shí)別技術(shù),結(jié)合清水江文書自身特點(diǎn),希望能研究出一種自動(dòng)識(shí)別出清水江文書的方法。
雖然清水江文書的識(shí)別本身也屬于脫機(jī)手寫漢字的識(shí)別,但因其特殊性,即便前期進(jìn)行預(yù)處理,也比一般意義上的手寫漢字更難于識(shí)別。因此,本系統(tǒng)設(shè)計(jì)初期從清水江文書中所挑選的待識(shí)別漢字都是書寫較標(biāo)準(zhǔn)規(guī)范的漢字圖像。
2 基于BP神經(jīng)網(wǎng)絡(luò)的識(shí)別系統(tǒng)設(shè)計(jì)
BP神經(jīng)網(wǎng)絡(luò)是一種多層神經(jīng)網(wǎng)絡(luò),通常具有三層或三層以上,其左、右各層之間每一個(gè)神經(jīng)元都有連接,而上下層神經(jīng)元之間無(wú)連接。
2.1 圖片預(yù)處理
對(duì)輸入的整個(gè)文書圖像要先進(jìn)行一些必要的處理,從中正確切分出單個(gè)的手寫漢字圖像,形成單個(gè)漢字圖像陣列,以便對(duì)其進(jìn)行后期的單字識(shí)別處理。因清水江文書是采用從右向左、自上而下的豎直書寫方法,所以我們的采用的方法是先自右向左逐列對(duì)圖像進(jìn)行掃描,同時(shí)對(duì)各個(gè)掃描列的像素進(jìn)行計(jì)算,得到圖像垂直的投影,再利用文字每列之間存在的空白間隔,對(duì)其進(jìn)行列分割,最后再依據(jù)字和字之間空白間隔的投影空隙把單個(gè)的漢字圖像切分出來。
切分出的單個(gè)漢字圖像還要進(jìn)行二值化、去噪、大小歸一化與位置歸一化、細(xì)化、傾斜矯正等處理,這樣處理的是目的為了提高漢字抽取特征的準(zhǔn)確率,從而保證最終文字識(shí)別的正確率。如圖2以常見的“立、賣”兩個(gè)字為例,經(jīng)過預(yù)處理后,文字大小一致,暗陳的背景與多余的墨跡都被處理掉了。
2.2 手寫漢字的特征提取
對(duì)手寫漢字識(shí)別特征提取可以有多種方法,本系統(tǒng)中采用了模板法,即在單個(gè)待識(shí)別漢字圖形上定義一個(gè)N×N模板,將每個(gè)漢字樣本的長(zhǎng)度和寬度N等分,平均有N×N個(gè)等份,對(duì)每一份內(nèi)的像素個(gè)數(shù)進(jìn)行統(tǒng)計(jì),除以每一份的面積總數(shù),即得特征初值。
雖然N值越大,特征越多,區(qū)分文字的能力越強(qiáng),但同時(shí)計(jì)算量增加,計(jì)算機(jī)時(shí)間變長(zhǎng),所需要的樣本庫(kù)也成倍增加,一般樣本庫(kù)的個(gè)數(shù)為特征數(shù)的5-10倍,本系統(tǒng)中特征總數(shù)為5×5=25個(gè),每一種字就需要至少125個(gè)標(biāo)準(zhǔn)樣本,如果樣本數(shù)過少,不同文字之間的區(qū)分就較難。
本文實(shí)驗(yàn)所使用的是HCL2000漢字庫(kù),所挑選的待識(shí)別漢字都是書寫標(biāo)準(zhǔn)規(guī)范的漢字。與國(guó)內(nèi)外其它的數(shù)據(jù)庫(kù)相比, 該數(shù)據(jù)庫(kù)具有樣本量大且可以實(shí)現(xiàn)漢字樣本庫(kù)和書寫者信息庫(kù)間互查的特點(diǎn)。
2.3 BP神經(jīng)網(wǎng)絡(luò)分類器設(shè)計(jì)
2.3.1 BP神經(jīng)網(wǎng)絡(luò)分類器結(jié)構(gòu)設(shè)計(jì)
我們?cè)O(shè)計(jì)的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)有三層:輸入層、隱含層、輸出層,其結(jié)構(gòu)圖如圖1所示。系統(tǒng)中對(duì)文字提取了5×5=25個(gè)特征作為神經(jīng)網(wǎng)絡(luò)的輸入,因此,輸入結(jié)點(diǎn)為25個(gè),通常隱含層結(jié)點(diǎn)個(gè)數(shù)大約為輸入層結(jié)點(diǎn)數(shù)的兩倍,所以隱含層取50個(gè)結(jié)點(diǎn),而輸出層取4個(gè)結(jié)點(diǎn),這4個(gè)輸出為四位二進(jìn)制數(shù),代表神經(jīng)網(wǎng)絡(luò)輸出的文字類型。
2.3.2 BP神經(jīng)網(wǎng)絡(luò)調(diào)整參數(shù)Matlab實(shí)現(xiàn)方法及實(shí)現(xiàn)步驟
(1)初始化輸入、輸出矩陣p[ ]、t[ ]。p為訓(xùn)練樣品,t為訓(xùn)練樣品所屬的類別。
(2)在樣品被訓(xùn)練前,需要構(gòu)建BP神經(jīng)網(wǎng)絡(luò),設(shè)置參數(shù)調(diào)整方式。Matlab的newff函數(shù)具有構(gòu)建BP神經(jīng)網(wǎng)絡(luò)的功能,為選擇不同的調(diào)整BP網(wǎng)絡(luò)參數(shù)方式,只需修改newff函數(shù)最后一個(gè)參數(shù),該參數(shù)代表調(diào)整BP神經(jīng)網(wǎng)絡(luò)連接權(quán)值和閾值的方法。本系統(tǒng)采用梯度下降法調(diào)整BP參數(shù),將最后一個(gè)參數(shù)設(shè)置為′traingd′,與′traingd′有關(guān)的調(diào)整參數(shù)如表1所示:
其中,學(xué)習(xí)速率是最重要的參數(shù),權(quán)值和閾值的調(diào)整量就是由它和負(fù)梯度的乘積決定的,學(xué)習(xí)速率越高,調(diào)整步伐越大。然而,學(xué)習(xí)速率過高,算法會(huì)變得不穩(wěn)定;但是如果學(xué)習(xí)速率過低,算法收斂的時(shí)間就會(huì)增長(zhǎng)。訓(xùn)練過程中,只要滿足下面五個(gè)條件之一,訓(xùn)練就會(huì)停止:a.超過最大訓(xùn)練次數(shù)epochs;b.表現(xiàn)函數(shù)值小于誤差指標(biāo)
goal;c.最大失敗次數(shù)超過次數(shù)限制max_fail;d.梯度值小于要求精度min_grad;e.訓(xùn)練所用時(shí)間超過時(shí)間限制time。
(3)調(diào)用Matlab的train(bpnet,p,t)函數(shù),訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)。其中,bpnet為已經(jīng)建立好的BP網(wǎng)絡(luò),p為訓(xùn)練樣品,t為訓(xùn)練樣品所屬的類別。
(4)對(duì)待測(cè)試樣品,調(diào)用Matlab的sim函數(shù),利用已經(jīng)訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)識(shí)別。sim函數(shù)定義為:[t,x,y]=sin(mod el,timespan,options,ut);其中參數(shù)model表示網(wǎng)絡(luò)結(jié)構(gòu)名,timespan表示循環(huán)次數(shù),options表示可選條件,ut表示輸入的向量,t表示網(wǎng)絡(luò)輸出向量結(jié)構(gòu),x表示仿真狀態(tài)矩陣,y表示仿真輸出矩陣。
經(jīng)過梯度下降法訓(xùn)練后,選擇一個(gè)經(jīng)過預(yù)處理的文字圖片,用神經(jīng)網(wǎng)絡(luò)分類器進(jìn)行分類,分類后再把HCL2000漢字庫(kù)作為樣本庫(kù)進(jìn)行對(duì)照,識(shí)別出該文字。實(shí)驗(yàn)表明,本系統(tǒng)對(duì)于書寫較規(guī)范的漢字圖片,識(shí)別率較高,比如“立”字的識(shí)別結(jié)果如圖4所示。
3 結(jié)束語(yǔ)
脫機(jī)手寫體漢字的OCR識(shí)別一直是文字識(shí)別領(lǐng)域無(wú)法攻克的難題,而清水江文書更因?yàn)槠湔Q生于民間的特殊性,其中有很多不規(guī)范的簡(jiǎn)寫字、繁體字、異體字甚至于錯(cuò)別字,使得對(duì)樣本庫(kù)的要求更高,本系統(tǒng)所使用的HCL2000數(shù)據(jù)庫(kù)基本以國(guó)家制定的標(biāo)準(zhǔn)簡(jiǎn)體字為主,所以對(duì)清水江文書中大師出現(xiàn)的繁體字、異體字等無(wú)法準(zhǔn)確識(shí)別。
測(cè)試表明,本系統(tǒng)對(duì)書寫規(guī)范的漢字識(shí)別率較高,能達(dá)到85%以上,而對(duì)一些錯(cuò)別字、繁體字、異形字識(shí)別率較低。在后續(xù)的研究中,希望能找到一種包括大量繁體字的手寫漢字庫(kù)作為樣本庫(kù),這樣就可以解決清水江文書中繁體字沒訓(xùn)練樣本,無(wú)法識(shí)別的問題。而且,還可以考慮用遺傳算法對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,適當(dāng)增加漢字特征,盡量提高識(shí)別率及減少識(shí)別時(shí)間。
參考文獻(xiàn)
[1]龍澤江.清水江文書研究的背景意義和價(jià)值[J].原生態(tài)民族文化學(xué)刊,2012,03:23-25.
[2]高彥宇,楊揚(yáng).脫機(jī)手寫體漢字識(shí)別研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2004,07:74-77.
[3]楊淑瑩.模式識(shí)別與智能計(jì)算-Matlab技術(shù)實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2013(01):141-157.
[4]烏云高娃.人工神經(jīng)網(wǎng)絡(luò)的發(fā)展[J].福建電腦,2004,04:16-17.