高 磊,洪奔奔,姚青岐
?
基于卷積神經(jīng)網(wǎng)絡(luò)的隨機手寫數(shù)字識別
高 磊,洪奔奔,姚青岐
(西安工程大學(xué),機電工程學(xué)院,陜西 西安 710048)
針對傳統(tǒng)手寫數(shù)字的隨機性、無規(guī)律性等問題,為了提高手寫數(shù)字識別的檢測準確性,本文在研究手寫數(shù)字區(qū)域特點的基礎(chǔ)上,提出了一種新的手寫數(shù)字識別檢測方法.首先,對采集的手寫數(shù)字圖像進行預(yù)處理,由于原始圖像包含各種各樣的噪聲,為了防止造成干擾,對圖像進行去噪、濾波等處理;然后,在MATLAB中構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型結(jié)構(gòu),采用CNN模型中典型的 LeNET-5的卷積模型,通過對采集圖像進行逐層學(xué)習(xí)、訓(xùn)練與測試,將學(xué)習(xí)得到的高層特征用于手寫數(shù)字識別。以隨機手寫數(shù)字與字母進行圖像驗證,結(jié)果表明,該模型算法應(yīng)用于手寫數(shù)字或字母準確識別,可獲得較高的識別率,具有一定的通用性。
圖像預(yù)處理;深度學(xué)習(xí);LeNet-5卷積模型;手寫數(shù)字識別
手寫體數(shù)字屬于光學(xué)字符識別的范疇,但分類的類別比光學(xué)字符識別少得多,主要只需識別0~9共10個字符。近年來,隨著計算機技和數(shù)字圖像處理技術(shù)的飛速發(fā)展,手寫體數(shù)字識別在電子商務(wù)、機器自動輸入等場合逐步獲得推廣。與其他字符的識別相比,手寫體數(shù)字識別的研究有隨機性、不規(guī)則性等缺點。但在許多自動錄入、識別領(lǐng)城,機器自動識別仍然發(fā)揮主要的作用[1]。
傳統(tǒng)的機器學(xué)習(xí)與信息處理技術(shù)采用淺層架構(gòu),即包含一個單層的非線性特征轉(zhuǎn)換,用來將輸入信號轉(zhuǎn)換至特定問題的特征空間[2]。淺層結(jié)構(gòu)具有響應(yīng)速度慢、分布能力差等缺點。然而,人類對于視覺以及語言的處理機制,要通過深度學(xué)習(xí),從大量的輸入信息中提取復(fù)雜的特征信息,因此需要建立深層架構(gòu)[3]。深層架構(gòu)可以用新層次的實現(xiàn)來替換原有層次的實現(xiàn)、可以降低層與層之間的依賴、有利于標(biāo)準化、有利于各層邏輯的復(fù)用等。
文獻[4]探討了卷積神經(jīng)網(wǎng)絡(luò)的基本原理及應(yīng)用。首先回顧了卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史,闡述了它的基本原理,研究了卷基層和下采樣層;其次總結(jié)了卷積神經(jīng)網(wǎng)絡(luò)的三大重要特征:稀疏連接、權(quán)值共享和池采樣,并將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在MNIST手寫數(shù)字識別中,但沒有解決過擬合現(xiàn)象提高學(xué)習(xí)能力和設(shè)置合理參數(shù)等問題。文獻[5],為了解決銀行郵局等場合的實時數(shù)字識別問題,提出了一種優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)數(shù)字識別方法模型為基礎(chǔ)改進了卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)并推導(dǎo)了改進后的前向和反向傳播算法,將改進的卷積神經(jīng)網(wǎng)絡(luò)用在印刷數(shù)字組合數(shù)據(jù)庫上進行測試,此方法識別準確率有所提高,但不具備隨機性和不規(guī)則性的手寫數(shù)字的識別。
本文采用深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)手寫數(shù)字識別是通過內(nèi)部卷積來識別圖像,可看到已識別圖像上物體的邊緣,特別在圖像特征識別上表現(xiàn)優(yōu)異。深度卷積神經(jīng)網(wǎng)絡(luò)具有共享卷積核,對高維數(shù)據(jù)處理無壓力,無需手動選取特征,訓(xùn)練好權(quán)值,即得分類特征。既滿足了手寫數(shù)字識別的隨機性和不規(guī)則性,又提高了檢測準確率。
手寫數(shù)字識別中,特征的提取作為其中的關(guān)鍵部分,采用深度學(xué)習(xí)模型,可以避免預(yù)處理過程,減少人為因素影響。CNN作為深度學(xué)習(xí)中,較早提出來的模型結(jié)構(gòu),結(jié)構(gòu)較為簡單,需要訓(xùn)練的參數(shù)數(shù)量較少,適用性較強,在最近幾年的發(fā)展中,廣泛應(yīng)用于圖像處理與模式識別等領(lǐng)域。
利用卷積神經(jīng)網(wǎng)絡(luò)中的典型結(jié)構(gòu)LeNet-5模型。下面結(jié)合LeNet-5結(jié)構(gòu)圖[6-8]做具體的分析,如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)中的典型LeNet-5模型
下面逐層分析:
第一層:數(shù)據(jù)輸入層
卷積神經(jīng)網(wǎng)絡(luò)的強項在于圖像的處理,lenet的輸入為32*32的矩陣圖像。
第二層:卷積層c1
卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心,通過不同的卷積核,來獲取圖像的特征。卷積核相當(dāng)于一個濾波器,不同的濾波器提取不同特征。
第三層:pooling層s2
基本每個卷積層后邊都會接一個pooling層,目的是為了降維。一般都將原來的卷積層的輸出矩陣大小變?yōu)樵瓉淼囊话耄奖愫筮叺倪\算。另外,pooling層增加了系統(tǒng)的魯棒性,把原來的準確描述變?yōu)榱烁怕悦枋觥?/p>
第四層:卷積層c3
與之前類似,在之前的特征中進一步提取特征,對原樣本進行更深層次的表達。這里不是全連接。X代表連接,空白代表不連。
0123456789101112131415 0XXXXXXXXXX 1XXXXXXXXXX 2XXXXXXXXXX 3XXXXXXXXX 4XXXXXXXXXX 5XXXXXXXXXX
第五層:pooling層s4
基本每個卷積層后邊都會接一個pooling層,目的是為了降維。一般都將原來的卷積層的輸出矩陣大小變?yōu)樵瓉淼囊话?,方便后邊的運算。另外,pooling層增加了系統(tǒng)的魯棒性,把原來的準確描述變?yōu)榱烁怕悦枋觥?/p>
第六層:卷積層(全連接)c5
有120個卷積核,這里是全連接的。將矩陣卷積成一個數(shù),方便后邊網(wǎng)絡(luò)進行判定。
第七層:全連接層
和MLP中的隱層一樣,獲得高維空間數(shù)據(jù)的表達。
第八層:輸出層
一般采用RBF網(wǎng)絡(luò),每個RBF的中心為每個類別的標(biāo)志,網(wǎng)絡(luò)輸出越大,代表越不相似,輸出的最小值即為網(wǎng)絡(luò)的判別結(jié)果。
卷積層是卷積神經(jīng)網(wǎng)絡(luò)[9]中的基礎(chǔ)操作,在網(wǎng)絡(luò)最后起分類作用的全連接層,在工程實現(xiàn)時也是由卷積操作替代的。假設(shè)輸入圖像(輸入數(shù)據(jù))為如圖2中右側(cè)的5×5矩陣,其對應(yīng)的卷積核為一個3×3的矩陣。同時,假定卷積操作時每做一次卷積,卷積核移動一個像素位置,即卷積步長為1。第一次卷積操作從圖像(0,0)像素開始,由卷積核中參數(shù)與對應(yīng)位置圖像像素逐位相乘后累加作為一次卷積操作結(jié)果,如圖3a所示。類似地,在步長為1時,如圖3b至圖3d所示,卷積核按照步長大小在輸入圖像上從左至右自上而下依次將卷積操作進行下去,最終輸出3×3大小的卷積[10]特征,同時該結(jié)果將作為下一層操作的輸入。
圖2 二維場景下的卷積核與輸入數(shù)據(jù)
注:左圖為3×3的卷積核,右圖為5×5的輸入
其中,(i +1,j +1)為卷積結(jié)果的位置坐標(biāo),滿足下式:
0≤i 1<H ?+ 1 =H +1,0 ≤j +1<W ?+ 1 =+1
圖3 卷積操作
其中,0 ≤i +1< Hl+1,0 ≤j +1< W +1, 0 ≤< D +1= D 。
圖4為2×2大小、步長為1的最大值匯合操作。除了最常用的上述兩種匯合操作外,隨機匯合則介于二者之間。隨機匯合操作非常簡單,只需對輸入數(shù)據(jù)中的元素按照一定概率[13]值大小隨機選擇,并不像最大值匯合那樣永遠只取那個最大值元素。對隨機匯合而言,元素值大的響應(yīng)被選中的概率也大,反之易然??梢哉f,在全局意義上,隨機匯合與平均值匯合近似;在局部意義上,則服從最大值匯合的準則。
圖4 最大值匯合操作
該模型[13]采用的數(shù)據(jù)為mnist手寫數(shù)據(jù)庫,含有70000個手寫數(shù)字樣本其中60000作為訓(xùn)練樣本,10000作為測試樣本。經(jīng)過去噪、濾波等處理,部分樣本圖像如圖5所示。
圖5 部分樣本圖像
計算流程包括數(shù)據(jù)讀取、模型訓(xùn)練、模型測試、繪制均方誤差圖四個主要過程,如圖6所示
圖6 數(shù)字識別流程
本文采用基于matlab環(huán)境下,深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)對讀取圖像進行數(shù)字識別流程操作[14],其主要步驟如下:
(1)設(shè)置CNN的基本參數(shù)規(guī)格,如卷積、降采樣層的數(shù)量,卷積核的大小、降采樣的降幅
(2)cnnsetup函數(shù)初始化卷積核、偏置等
(3)cnntrain函數(shù)訓(xùn)練cnn,把訓(xùn)練數(shù)據(jù)分成batch,然后調(diào)用
1)cnnff完成訓(xùn)練的前向過程
2)cnnbp計算并傳遞神經(jīng)網(wǎng)絡(luò)的error,并計算梯度(權(quán)重的修改量)
3)cnnapplygrads 把計算出來的梯度加到原始模型上去
(4)cnntest函數(shù),測試當(dāng)前模型的準確率
將訓(xùn)練數(shù)據(jù)輸入網(wǎng)絡(luò)中,在不同訓(xùn)練樣本下,采用不同的迭代次數(shù),計算均方誤差值、測試圖像準確率與訓(xùn)練圖像準確率,如表1所示。
表1 不同訓(xùn)練樣本下圖像準確率檢測及均方誤差值
Tab.1 Image accuracy detection and mean square error under different training samples
實驗結(jié)果分析如下:
由表1可以得出,均方誤差值的大小與迭代次數(shù)和訓(xùn)練權(quán)值無關(guān),與訓(xùn)練樣本數(shù)量有關(guān)。隨著訓(xùn)練樣本數(shù)量的增加,圖像檢測準確率逐漸增加。當(dāng)網(wǎng)絡(luò)輸入的訓(xùn)練樣本數(shù)量為6000張,迭代次數(shù)為10次時,測試圖像檢測準確率為98.43%,訓(xùn)練圖像檢測準確率為98.3133%.
由于訓(xùn)練樣本較多,無法實現(xiàn)一次性將全部樣本輸入到網(wǎng)絡(luò),因此采取分批次輸入,使網(wǎng)絡(luò)得到充分訓(xùn)練,為研究每輸入到網(wǎng)絡(luò)中的訓(xùn)練權(quán)值對識別率的影響,分別將訓(xùn)練權(quán)值為10、30、50輸入到網(wǎng)絡(luò)中,得到的實驗結(jié)果如圖7所示。
圖7(a)、(b)中,橫坐標(biāo)表示迭代次數(shù),,縱坐標(biāo)表示圖像識別錯誤率,從圖7中可以看出,隨著迭代次數(shù)的增加,圖像識別錯誤率逐漸減小,網(wǎng)絡(luò)逐漸達到收斂狀態(tài)。當(dāng)訓(xùn)練權(quán)值為10時,在測試圖像中,迭代4次左右就可以取得較高的識別率;而在訓(xùn)練圖像中,迭代8次左右就可以取得較高的識別率,識別效果明顯。此實驗結(jié)果說明,訓(xùn)練權(quán)值越小,網(wǎng)絡(luò)收斂速度越快。同時圖像識別錯誤率比訓(xùn)練權(quán)值為30和50都要低。
圖7 在不同訓(xùn)練權(quán)值下迭代次數(shù)與圖像識別錯誤率
綜上所述,表明該訓(xùn)練模型能有效地表示圖像檢測準確率。隨著迭代次數(shù)的增加,圖像測試準確率和訓(xùn)練準確率,不斷提高,使得不同類型的圖像能夠被區(qū)分出來;隨著訓(xùn)練樣本的增加,樣本的交錯重疊現(xiàn)象幾乎可以忽略,能有效的解決過擬合現(xiàn)象,提高學(xué)習(xí)能力,可以很好的解決手寫數(shù)字的隨機性和不規(guī)則性等問題。
為了分析深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的識別性能,利用幾種常用的識別方法對手寫數(shù)字進行識別,結(jié)果如表2所示。
表2 幾種常用方法識別結(jié)果
Tab.2 Several commonly used methods to identify the results
從表2可以看出,深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)模型在手寫數(shù)字的識別準確率為98.31%,和其它識別方法相比,其識別準確率更高,表明此方法在手寫數(shù)字識別方面具有一定的優(yōu)勢。
本文首先通過對手寫數(shù)字圖像去除高斯噪聲、椒鹽噪聲等,有效濾除噪聲信息;然后,采用深度學(xué)習(xí)CNN中典型的LeNET-5的卷積模型,對輸入數(shù)據(jù)進行逐層學(xué)習(xí),將學(xué)習(xí)得到的高層特征用于手寫數(shù)字識別??朔耸謱憯?shù)字識別的隨機性、不規(guī)則性等問題;最后,在手寫數(shù)字識別檢測過程中,有效抑制了各種干擾信息,提高了手寫數(shù)字識別區(qū)域顯著度,提高了手寫數(shù)字識別準確檢測,防止了圖像的過度擬合。本文在圖像檢測類別上還存在一定的局限性,如何應(yīng)對不同類型的圖像,提高檢測準確率,將是深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)后期待解決的問題。
[1] 宋昌統(tǒng), 黃力明, 王輝. 基于概率神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識別[J]. 微型電腦應(yīng)用, 2016, 32(10): 14-15+21.
[2] DONG Y, LI D. Deep Learning and Its Applications to Signal and Information Processing[J]. IEEE SIGNAL PROCE-SS-ING MAGAZINE. 2011. 28(1): 145-154.
[3] SERRE T, KREIMAN G, KOUTH M, et al. A quantitative theory of immediate visual recongnition[J]. Progress in Brain Research, 2007, 165: 33-56.
[4] 馬媛媛, 史加榮. 卷積神經(jīng)網(wǎng)絡(luò)及其在手寫體數(shù)字識別中的應(yīng)用[J]. 湖北工程學(xué)院學(xué)報, 2017, 37(6): 66-72.
[5] 代賀, 陳洪密, 李志申. 基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)字識別[J]. 貴州師范大學(xué)學(xué)報(自然科學(xué)版), 2017, 35(5): 96-101.
[6] 李斯凡, 高法欽. 基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別[J]. 浙江理工大學(xué)學(xué)報(自然科學(xué)版), 2017, 37(3): 438-443.
[7] 王立中, 管聲啟. 基于深度學(xué)習(xí)算法的帶鋼表面缺陷識別[J]. 西安工程大學(xué)學(xué)報, 2017, 31(5): 669-674.
[8] Ameen, Salem. A convolutional neural network to classify American Sign Language fingerspelling from depth and col-our images[J], Expert systems. 2017. 34(3): e12197.
[9] 馬寧, 廖慧惠. 基于量子門神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識別[J]. 吉林工程技術(shù)師范學(xué)院學(xué)報, 2012, 28(4): 71-73.
[10] Ravi Babu, U. Handwritten Digit Recognition Using Structural, Statistical Features and K-nearest Neighbor Class-ifier[J], International Jourmnal of Information Engineering &Ele tronic Business. 2014. 6(1): 62-68.
[11] 鐘彩. 邊緣檢測算法在圖像預(yù)處理中的應(yīng)用[J]. 軟件, 2013, 34(1): 158-159.
[12] GORGEVIK D. CAKMAKOV D. Handwitten digit reog-nition by combining SVM classifiers[C], The International Conference Computers as a Tool. 1EEE, 2005: 1393-1396.
[13] 杜敏, 趙全友. 基于動態(tài)權(quán)值集成的手寫數(shù)字識別方法[J]. 計算機工程與應(yīng)用, 2010, 46(27): 182-184.
[14] 黃弋石, 梁艷. 手寫識別建模數(shù)學(xué)方法研究[J]. 軟件, 2013, 34(8): 13-15.
Random Handwritten Numeral Recognition Based on Convolution Neural Network
GAO Lei, HONG Ben-ben, YAO Qing-qi
(College of mechanical & electronic Engineering, Xi’an Polytechnic University, Xi’an, 710048, China)
Aiming at the randomness and irregularity of traditional handwritten numbers, in order to improve the detection accuracy of handwritten digital recognition, this paper proposes a new method of handwritten digital recognition detection based on the study of the characteristics of handwritten digital regions. Since the original image contains various kinds of noise, in order to prevent interference, the image is de-noised and filtered. Then, in MATLAB, the convolution neural network (CNN) model structure is constructed, and the typical LeNET-5 convolution model in the CNN model is used to learn, train, and test the collected images layer by layer. The learned high-level features are used for handwritten number recognition. The results show that the model algorithm can be applied to the accurate recognition of handwritten numbers or letters, and can obtain a higher recognition rate and have a certain generality.
Image pretreatment; Depth learning; LeNet-5 convolution model; Handwritten numeral recognition
TH83
A
10.3969/j.issn.1003-6970.2018.09.016
高磊(1991-),男,研究生,主要研究方向:機器視覺與視覺控制;洪奔奔(1992-),男,研究生,主要研究方向:視覺檢測與識別;姚青岐(1993-),男,研究生,主要研究方向:液壓控制。
本文著錄格式:高磊,洪奔奔,姚青岐. 基于卷積神經(jīng)網(wǎng)絡(luò)的隨機手寫數(shù)字識別[J]. 軟件,2018,39(9):74-78