李忠海,王崇瑤,宋智欽,徐 蕾
(1.沈陽航空航天大學自動化學院,沈陽 110136;2.武警工程大學,西安 710000)
手寫漢字的識別問題一直是圖像處理與模式識別研究領域的難點之一。傳統的識別方法如最近鄰算法[1]、支持向量機、神經網絡[2]等,解決復雜分類問題及數學函數表示能力和網絡的泛化能力有限,不能達到高識別精度的需求,隨著科技的發展和研究,CNN的出現解決了這個問題。它最初由美國學者Cun[3]等提出,是一種層與層之間局部連接的神經網絡。文獻[4]通過降低C5層的特征圖改進了卷積神經網絡模型,提高了識別速度;文獻[5]提出通過改進激活函數來改變卷積神經網絡的性能,提高了識別率。文獻[6]提出了基于頻度統計生成相似子集,提取訓練樣本中的梯度特征,改進了識別率和速度。
在此基礎上,本文先將原有的圖像用高階差分法進行增強處理,增加漢字的全局特征,然后在原始的LeNet-5結構的基礎上,將前兩層的激活函數改為ReLu函數,并且去掉C5層以及F6層,通過增加輸出層的神經元數來增加漢字的識別率。
最初LeNet-5是用于手寫數字識別的,輸出的類別數目為10,但是手寫漢字的識別與手寫數字識別相比,需分類的類別數目要多很多。除了10個數字外,大約還有3 000多個常見的漢字。原有的LeNet-5網絡已經不能滿足漢字識別需要了,因此對識別數字的LeNet-5網絡進行了改進。
卷積神經網絡LeNet-5的結構如圖1所示。輸入數字的圖像要經過大小歸一化,神經網絡的每一個神經元的輸入均來自于前一層的一個局部鄰域,并被加上由一組權值決定的權重。提取的這些特征在下一層結合形成更高一級的特征。同一特征圖的神經元共享相同的一組權值,次抽樣層對上一層進行平均。

圖1 LeNet-5結構
卷積神經網絡LeNet-5不包括輸入,由7層組成,每一層都包括可訓練的參數(權值)。該網絡的輸入是32*32的圖像,其中C層是由卷積層神經元組成的網絡層,S層是由次抽樣層神經元組成的網絡層。網絡層F6,包括84個神經元,與網絡層C5進行全連接。最后,輸出層有10個神經元,是由徑向基函數單元(RBF)組成,輸出層的每個神經元對應一個字符類別。RBF單元的輸出Y的計算方法如式(1)所示:

由于原始的LetNet-5網絡識別類數少,不能滿足識別手寫漢字的需要;加上手寫漢字存在書寫不規范,掃描圖像不清晰且存在較大的噪聲,難以識別。基于此本文提出了增強CNN網絡模型來增加手寫漢字的識別率。現對原始的LeNet-5網絡進行了改進:
1)由于漢字識別的種類多,訓練樣本集數據量大,用原始LeNet5網絡中的激勵函數會出現過擬合現象,現將ReLu函數作為網絡前兩層的激勵函數,能夠有效防止訓練數據出現過擬合現象,輸出層的激活函數仍用softmax。
2)為了得到較高的識別率,則需要更多的特征信息。現將CNN網絡的C5層以及F6層去掉,與輸出層的神經元進行全連接,來保留漢字的局部和全局特征,增加漢字的識別率。
增強CNN網絡模型如圖2所示:

圖2 增強CNN網絡模型
由圖2可知,增強CNN網絡模型只有5層,模型的層數減少了,這樣訓練時間也會相應地縮短,同時由于改進后的網絡依舊是卷積層和采樣層交替出現,所以改進的網絡仍保留了圖像對位移、縮放和扭曲的不變性和良好魯棒性的優點。
在此對輸入的漢字圖像進行增強處理,以減少特征提取的干擾。本文摒棄了傳統的增強算法,引進了五階濾波模板,提出高階差分增強算法,用于對輸入漢字圖像進行增強。
依據偏微分理論在圖像處理中的原理[9],將圖像進行離散化,圖像微分可用差分近似實現,即用離散差分方程近似代替導數方程。
假設濾波器模板大小為五階,取為5×5的方陣,濾波系數用Y(i,j)表示,像素的系數根據位置記錄,中心點的濾波器系數值記為Y(0,0),5×5濾波器模板表示如下:

四階差分濾波實現方法是利用五階濾波器與圖像進行卷積運算,一般來說對大小為M×N的圖像f(x,y)使用m×n濾波器實現圖像濾波的計算公式為:

其中,a=(M-1)/2,b=(N-1)/2,Y (i,j) 是濾波器系數,f(x,y)是圖像像素值。隨著濾波器在圖像f(x,y)中的移動,將計算出新的圖像像素值f(x,y)。
由于離散差分方程來近似代替導數方程,可知有如下公式:

進一步可知:

由于二維離散圖像進行差分運算時,要確定運算方向。本文采用先前向差分后后項差分,即對圖像f(x,y)先做前向差分,當下一次前向差分沒有離散像素點時做后項差分。因此,本文只需研究水平(0°和 180°)、45°(225°) 對角、垂直(90°和 270°)、135°(315°)對角4個方向的濾波器模板系數。定義Δnkαf(x,y)為圖像f(x,y)在kα方向上的n階差分,其中 α=45°,k=0,1,2,3。
3.1.1 水平方向的濾波器模板系數推導
當k=0,n=4時,f(x,y)的四階差分表達式為:

由式(10)可知:差分方程的系數依次為1、-4、6、-4、1。將這5個系數分別作為濾波器系數值,記Y(-2,0)=1,Y(-1,0)=-4,Y(0,0)=6,Y(1,0)=-4,Y(2,0)=1。
3.1.2 45°對角方向的濾波器模板系數推導

由式(11)可知:差分方程的系數依次為1、-4、6、-4、1。將這5個系數分別作為濾波器系數值,記Y(-2,-2)=1,Y(-1,-1)=-4,Y(0,0)=6,Y(1,1)=-4,Y(2,2)=1。
3.1.3 垂直方向的濾波器模板系數推導
當k=2,n=4時,即f(x,y)的差分表達式為:

由式(12)可知:差分方程的系數依次為1、-4、6、-4、1。將這5個系數分別作為濾波器系數值,記Y(0,-2)=1,Y(0,-1)=-4,Y(0,0)=6,Y(0,1)=-4,Y(0,2)=1。
3.1.4 135°對角方向的濾波器模板系數推導
當k=3,n=4時,即f(x,y)的差分表達式為:

由式(13)可知:差分方程的系數依次為1、-4、6、-4、1。將這5個系數分別作為濾波器系數值,記Y(-2,2)=1,Y(-1,1)=-4,Y(0,0)=6,Y(1,-1)=-4,Y(2,-2)=1。
陪同親屬從柳絮、楊絮紛飛的城市一路開車到達腫瘤醫院,路上甚至得知親人生病后很長時間都沉浸在擔心與焦慮里,偶然抬頭看到流蘇花的那一刻,心里覺得松了一口氣,之后留意到每個角落里都熱烈生長的植物,心里也愉快了些,尋味到一種“人間四月芳菲盡,山寺桃花始盛開”的意境。再觀看每一位穿梭在我身邊的人,雖然行色匆匆不曾駐足,卻也是面目如素,沒有預設中的“悲戚”。在CT室外看到大家都在討論顯影水多么難喝時,我覺得自己此前“談癌色變”的緊張都顯得多余,緊張兮兮、一直面有難色的我在人群里才是最不正常的存在。
綜上所述:四階差分方程4個方向的濾波器模板系數已經分別求出。
將上述4個方向的模板進行線性組合,可得出4個方向的五階濾波器模板如圖3所示:

圖3 五階濾波器模板
將4個五階濾波器模板進行線性組合,則圖像邊緣增強后的新圖像表達式為:

為了獲取較真實的實驗數據,增加算法的說服性,本文采用中科院自動化研究所和模式識別國家重點實驗室聯合建立的手寫字體數據集CASIA-HWDB1.1進行實驗驗證。它包括3 755個一級手寫漢字以及171個數字和符號,其中手寫漢字的總樣本容量為1 121 749個。在本文中實驗數據集從中選擇了306個漢字所對應的30 600個樣本,每個手寫漢字包括300個手寫體樣本。本文將每個漢字的290個樣本拿來訓練,剩下的10個樣本拿來測試。訓練樣本圖片的大小為69*69。部分手寫漢字的訓練樣本如圖4所示。

圖4 訓練樣本

表1 迭代次數與訓練樣本正確率的關系
如表1所示,隨著訓練樣本的迭代次數增多,訓練樣本的正確率也在提升。但是,當迭代次數達到一定的數目時,訓練樣本的正確率達到100%,繼續訓練,測試樣本的錯誤率在下降,并且趨近平穩,基本上沒有過訓練的情況。這說明ReLu激活函數很好地補救了訓練數據出現過擬合的現象,同時也體現了改進后的CNN網絡良好的性能。
為了分析經過圖像增強處理后,手寫漢字誤識別率的大小和本文算法的優越性,將本文算法與目前幾種常用的識別方法進行對比,對比數據如表2所示:
從表2中可以看出,早期的識別方法誤識別率較大,高達15%;而CNN識別方法效果較好,誤識別率為0.98%。通過CNN算法與本文增強CNN算法對比,可以看出經過高階差分增強處理的CNN算法誤識別率更低,僅為0.5%。相比較而言,本文算法比未增強處理的CNN算法識別率提高了0.48%。進一步表明本文算法在手寫漢字識別方面占據一定的優勢。
實驗識別所用卷積神經網絡模型參數的設定:
1)輸入圖像為69*69大小,圖像增強模板用的是五階濾波器模板如圖3所示。
2)卷積層為6個20*20的模板,池化層采用2*2的模板。
識別效果如圖5所示:
從測試的漢字來看,本文算法的識別度比較高,效果比較好。
本文將輸入圖像用高階差分法進行圖像增強處理,然后在原始的LeNet-5結構的基礎上,將前兩層的激活函數改為ReLu函數,并且通過增加輸出神經元的個數,來增加字體的識別率。經過數據分析,ReLu激活函數很好地補救了訓練數據出現過擬合的現象;增強處理比未增強處理的CNN算法識別率提高了0.48%。實驗證明,手寫漢字隨著訓練樣本數據的增大,識別率也在逐漸增加,高達99.5%。可見,本文算法在手寫漢字識別方面有一定的優勢。但是,如何能夠在軍事領域應用識別,準確識別出被遮擋或者未寫完的漢字將是下一步研究的課題和方向。