張 晶,吳 磊,賀建軍,劉文鵬
(大連民族大學 信息與通信工程學院,遼寧 大連 116605)
基于深度卷積神經(jīng)網(wǎng)絡(luò)的手寫哈薩克文字母識別方法
張 晶,吳 磊,賀建軍,劉文鵬
(大連民族大學 信息與通信工程學院,遼寧 大連 116605)
利用卷積神經(jīng)網(wǎng)絡(luò)在圖像識別方面的優(yōu)勢,提出了一種基于深度卷積神經(jīng)網(wǎng)的哈薩克手寫字母識別方法(DCNN-KLR),成功建立了一種哈薩克手寫文字識別模型。 與傳統(tǒng)的方法(SVM+HOG)相比,不僅訓練方便、速度快,而且提高了哈薩克手寫文字的識別率。在5708個數(shù)據(jù)樣本上進行訓練和測試,將樣本分為33類和100類,正確識別率分別達到93.29%和92.38%。
卷積神經(jīng)網(wǎng)絡(luò);哈薩克文字母;字符識別
Abstract:This paper proposes a handwritten Kazakh letter recognition method based on deep convolutional neural network (DCNN-KLR). We exploit the advantages of the convolutional neural network in image recognition to build a model for handwritten Kazakh letter recognition. Compared to traditional method (SVM+HOG), this method is not only convenient and fast in training but also achieves a higher recognition accuracy. We use 5708 data samples for training and testing. The data is divided into 33 classes with 100 categories, and the highest recognition rate can be up to 93.29% and 92.38%.
Keywords:convolutional neural network; handuritten Kazakh letters; letter recognition
近年來,隨著智能手機的普及,手寫輸入法得到人們的高度重視,并在日常生活中得到廣泛應用,對手寫文字識別的要求也越來越嚴格,西方文字和漢字的識別技術(shù)在印刷、脫機和聯(lián)機手寫體等方面的研究已取得顯著進展,而對手寫少數(shù)民族文字識別的研究還很少。特別是新疆的西部與北部地區(qū)(即伊犁哈薩卡自治州)使用的語言—哈薩克語的文字識別研究相對滯后,對哈薩克文字母識別技術(shù)的研究更少。目前對于手寫哈薩克文字母識別的研究主要有基于ANN的方法[1],基于HMM的方法[2]以及達吾勒·阿布都哈依爾使用改進的PCA方法和K-W校驗法[3]來識別哈薩克文字母,這些方法的識別率都降低,而且這些傳統(tǒng)的識別方法都是采用特征提取和特征匹配[4]的策略建立的,普遍存在著抗干擾性差、預處理復雜等問題。近年來機器學習技術(shù)的發(fā)展為少數(shù)民族文字識別提供了新的解決途徑,特別是深度卷積神經(jīng)網(wǎng)絡(luò)在漢字、英文等文字的識別問題上取得了較好的效果,因此本文基于深度卷積神經(jīng)網(wǎng)絡(luò)建立一種新的哈薩克文字母識別方法。
哈薩克語文字是一種拼音文字,它借用阿拉伯文字母來表示。哈薩克文字母由33個字母組成,每個字母根據(jù)它在詞語中的位置不同,有1-4種不同的字符形式,所以33個字母一共有106(常用100)個不同的字符形式。其書寫方向為從右往左,每個詞中各個字符在基線附近相互連接的。哈薩克文字母的標準字體見表1。
表1哈薩克文字母
目前,關(guān)于哈薩克文字母識別的研究還處在萌芽階段,雖有一些初步研究,但由于特征提取不完善以及算法效率不高,離實際應用還有一定的距離。由于哈薩克文和阿拉伯文字符集上的相似性,因此可以借鑒阿拉伯文在這方面的一些研究成果[5]。本文用深度卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建了一種手寫哈薩克文字母識別模型DCNN-KLR。
使用深度卷積神經(jīng)網(wǎng)絡(luò)進行字母識別之前需要對原圖像進行預處理。預處理的目的是除去圖像中的噪音等信息,以便從字符圖像中提取準確有效的結(jié)構(gòu)特征。一般彩色圖像包含紅,綠,藍三個不同的顏色分量,叫做三通道圖像。在對彩色圖像進行卷積操作時,需要對三個通道依次進行處理,這樣計算量很大,會增加卷積神經(jīng)網(wǎng)絡(luò)模型的訓練時間。因此,為了提升整個模型的計算速度,把有三通道數(shù)據(jù)的彩色圖像變換為單通道灰度圖像。再對圖像進行反相處理,即:255減去每一個點的像素值,再將結(jié)果賦予其點?,F(xiàn)實中的圖像在數(shù)字化和傳輸過程中常受到成像設(shè)備與外部環(huán)境噪聲干擾等影響減弱了有用信息,需要進行去噪處理來增強圖像的特征。圖像預處理步驟如圖1,預處理前后的效果如圖2。
圖1 圖像預處理步驟
(a)處理前 (b)處理后
深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)是一種包含多個卷積層的卷積神經(jīng)網(wǎng)絡(luò)(CNN)即:將人工神經(jīng)網(wǎng)絡(luò)與圖像處理中的二維離散卷積運算相結(jié)合。 這個技術(shù)已經(jīng)成為現(xiàn)在語音分析和圖像識別領(lǐng)域最好的工具。 DCNN采用了基于局部感知區(qū)域、共享權(quán)值和空間下采樣等技術(shù)[6],對輸入信號的平移、比例縮放、傾斜等變形具有高度不變性。其次,其多層次的濾波結(jié)構(gòu)和分類器的緊密結(jié)合,能夠?qū)斎胄盘栠M行“端到端”的處理,避免了傳統(tǒng)識別算法中復雜的特征提取和數(shù)據(jù)重建過程。
DCNN模型輸入層一般采用二維像素點矩陣表示原始圖像。 如果圖像是彩色圖像,對應的三個顏色通道,分解為三個二維像素點矩陣。對于灰度圖像,則只需一個二維像素點矩陣表示。 模型的隱含層一般包括兩種類型,第一種類型的層由一對互連的卷積層(Cn)和池化層(Pn)雙層網(wǎng)絡(luò)構(gòu)成(也可以是一個單獨的卷積層),一般來說第一類隱含層可以有多層;第二類隱含層是靠近輸出層的那一層,它實際上是CNN模型中的全連接層。 在模型的輸出層中,每個神經(jīng)元對應著不同的圖像類別。 模型DCNN-KLR的網(wǎng)絡(luò)結(jié)構(gòu)如圖3。
圖3 DCNN-KLR網(wǎng)絡(luò)結(jié)構(gòu)
本深度網(wǎng)絡(luò)將28×28像素的灰度圖作為輸入。 首先對圖像重復地做一些卷積和采樣操作生成整個圖像的特征映射,卷積層都將ReLU作為激活函數(shù),下采樣層都把sigmoid作為激活函數(shù),到Flatten層將前一層輸出的2維矩陣展平為1維的向量,到全連接層(激活函數(shù)為ReLU)進行分類。 因33個哈薩克字母一共有106(常用100)個不同的字符形,分類結(jié)果也是33種和100種,圖3網(wǎng)絡(luò)結(jié)構(gòu)為以33類為例,最后輸出層(激活函數(shù)為softmax)有33個神經(jīng)元,輸出一個總長度為33的一維向量。
一般來說,人對外界的認識是從局部到全局的,圖像的空間關(guān)系也使局部像素之間的聯(lián)系更加緊密,遠處像素的聯(lián)系就相對較弱。 因此,每個神經(jīng)元不需要感知整個圖像的所有像素點,只需要感知圖像的部分區(qū)域,然后在更高的層次將部分信息相結(jié)合來獲得總體信息[7]。 因此在卷積網(wǎng)絡(luò)中,層之間的神經(jīng)元節(jié)點不再處于完全連接的狀態(tài),而是使用局部連接模式,在相鄰兩層中利用圖像的局部特性。m層的神經(jīng)元僅僅連接m-1層的神經(jīng)元的局部區(qū)域,m-1層的這些局部區(qū)域被稱為空間上連續(xù)的接受域,如圖4。 卷積神經(jīng)網(wǎng)絡(luò)使用這樣的連接方式可以大大降低網(wǎng)絡(luò)的參數(shù)規(guī)模,解決了CNN全連接方式時,由于網(wǎng)絡(luò)參數(shù)數(shù)目過多導致的神經(jīng)網(wǎng)絡(luò)模型學習速率慢的問題。 可以看到,第m層的每一個神經(jīng)元節(jié)點只與第m-1層的3個神經(jīng)元相連接,早期的感知器就是使用這種局部連接的方式,并且和Hubel與Wiesel從貓科動物的視覺系統(tǒng)中發(fā)現(xiàn)的具有局部感知和方向選擇性的神經(jīng)元相一致[7]。 多個這樣的層疊加起來,可以使過濾器覆蓋更多的圖像區(qū)域,如圖4。
圖4 局部連接示意圖
權(quán)值共享的原理是:圖像的統(tǒng)計分布特征是均勻的,也就是說圖像的某一部分的統(tǒng)計特性與其他部分的統(tǒng)計特征是一樣的。這里可以把在圖像某一部分學習到的特征用在其它的位置上,因此可以使用相同的特征來對圖像的所有的位置進行學習。 例如,當從原28×28大小的圖像中選取一小塊(這塊的大小由卷積核的大小來確定),3×3作為一個樣本,并且神經(jīng)網(wǎng)絡(luò)從這個3×3的樣本中學習到了某些特征,這個時候就可以把從這個3×3大小的樣本中學習到的特征應用到這個圖像的所有的位置中去。最重要的是,可以用這個特征跟原本的大尺寸圖像作卷積運算,這樣對于不同的特征,都可以在這個大尺寸圖像的每一位置獲得一個激活值,將這些激活值放在一起就組成了這一層的特征映射m+1。 第m+1層的3個神經(jīng)元的輸出組成一個特征圖像如圖5,顏色相同的連接線表示相連的神經(jīng)元之間的權(quán)值相同。第m+1層的3個神經(jīng)元使用相同的權(quán)值對第m層的全局進行學習。 共享權(quán)值的好處是在神經(jīng)網(wǎng)絡(luò)對圖像進行特征提取時不需要考慮圖像局部特征的位置,而且權(quán)值共享為減少卷積神經(jīng)網(wǎng)絡(luò)的學習參數(shù)提供了一種很有效的方式。
圖5 權(quán)值共享示意圖
卷積層是對圖像的一個鄰域進行卷積得到圖像的鄰域特征,池化層就是使用pooling技術(shù)將小鄰域內(nèi)的特征點整合得到新的特征,這是一種非線性的降采樣方法[8],通常是將輸入特征圖中每一個不同的 區(qū)域的元素作聚合操作,目前最常用的是最大值聚合,平均值聚合以及隨機聚合等幾種。 由于通過卷積運算得到的圖像特征比較多,會產(chǎn)生很大的計算量,因此在獲取到圖像的卷積特征后,需要用空間下采樣的方法來對卷積特征進行降維處理。 這里,使用最大值聚合來對卷積特征降維。 池化層的每一個神經(jīng)元節(jié)點對應卷積層2×2的感受野,如圖6。它的值為對應的感受野中最大的那個值,通過最大值聚合可以使統(tǒng)計特征具有非常低的維度(與使用所有的卷積特征進行計算相比),這樣做同時可以改善結(jié)果(用來防止卷積神經(jīng)網(wǎng)絡(luò)出現(xiàn)過擬合現(xiàn)象)。
圖6 最大值池化示意圖
深度卷積神經(jīng)網(wǎng)絡(luò)與全連接深度網(wǎng)絡(luò)一樣訓練也用梯度下降算法來進行訓練,利用改進的隨機梯度下降算法(Adadelta)訓練網(wǎng)絡(luò)。 因為深度卷積網(wǎng)絡(luò)應用了局部連接,權(quán)值共享,下采樣等技術(shù)比全連接神經(jīng)網(wǎng)絡(luò)計算量減少了很多,卷積層用ReLU做激活函數(shù)提升了網(wǎng)絡(luò)訓練的效率,明顯提高了網(wǎng)絡(luò)的訓練速度。本系統(tǒng)使用的樣本一共有5708張手寫哈薩克文字母圖像,收集完整的33個字母的單立式手寫字符,以及67種變形字體。先將樣本分為兩部分——訓練集和驗證集(訓練集占總數(shù)據(jù)的9/10,驗證集占總數(shù)據(jù)的1/10),再進行網(wǎng)絡(luò)的訓練和驗證。訓練數(shù)據(jù)分別分為33類和100類,以增強網(wǎng)絡(luò)的識別能力。 模型中的batch_size大小設(shè)定為33,在每一批的集合中,網(wǎng)絡(luò)在樣本參與訓練結(jié)束后才會對參數(shù)進行更新,當所有批次的數(shù)據(jù)都訓練完成后,將學習到的模型保存為h5文件,然后把模型應用在測試集上進行測試。
本系統(tǒng)中主要的步驟是先將原始數(shù)據(jù)進行處理,使每個樣本為28×28大小的灰度圖片再用卷積神經(jīng)網(wǎng)絡(luò)來對圖像進行特征提取,然后再根據(jù)提取到的特征對所有的字符進行分類。 所以該系統(tǒng)必須要提取到較好的特征才能保證系統(tǒng)正確地識別出每一個字符。 為了能讓網(wǎng)絡(luò)提取到較好的特征,使用兩種不同深度的卷積神經(jīng)網(wǎng)絡(luò)來訓練樣本,并且通過在卷積層后添加Dropout層以防止過擬合。 首先使用6層的卷積神經(jīng)網(wǎng)絡(luò)來訓練,將數(shù)據(jù)分為33類,結(jié)果見表2。
表2 6層33類深度網(wǎng)絡(luò)的實驗結(jié)果
從表2可以看出,在不使用Dropout層時,卷積神經(jīng)網(wǎng)絡(luò)明顯過擬合,訓練集的識別率高出驗證集的識別率16%左右,在加了Dropout層后驗證集的識別率明顯提高,但網(wǎng)絡(luò)并沒有很好地學習到圖像的特征。這里增加了卷積神經(jīng)網(wǎng)絡(luò)的深度,以學習到更深層的特征,即使用9層的卷積神經(jīng)網(wǎng)絡(luò)來訓練,同樣將數(shù)據(jù)分為33類,結(jié)果見表3。
表3 9層33類深度網(wǎng)絡(luò)的實驗結(jié)果
從表3可以看出,在增加了卷積層后,識別率有了明顯的提高。通過以上兩個表,可以知道,想要卷積神經(jīng)網(wǎng)絡(luò)能較好地識別圖像,需要一定深度的網(wǎng)絡(luò),并且需要加上Dropout層來防止網(wǎng)絡(luò)過擬合,以提高驗證集的識別率。接下來本文使用這個9層的神經(jīng)網(wǎng)絡(luò)將數(shù)據(jù)分為100類,結(jié)果見表4。
表4 9層100類深度網(wǎng)絡(luò)的實驗結(jié)果
從表4可以看到,本文的神經(jīng)網(wǎng)絡(luò)將數(shù)據(jù)分為100類也可以得到不錯的識別率,這證明該神經(jīng)網(wǎng)絡(luò)有很好的識別能力.在這之后,為了得到神經(jīng)網(wǎng)絡(luò)對每一類的識別精度,從33類中每一類選取20個樣本作為驗證集,其他的數(shù)據(jù)作為訓練集,使用表3中第三個網(wǎng)絡(luò)結(jié)構(gòu)來訓練,將數(shù)據(jù)分為33類,得到一個訓練集識別率為96.91%,驗證集的識別率為93.33%的網(wǎng)絡(luò)模型,然后使用這個模型來測試每一個類別的識別率,結(jié)果見表5。
表5 測試每一類的識別率
從表5可以看出該網(wǎng)絡(luò)對一些字母的識別率較低,第25個字母的識別率只達到75%,造成這些字母的識別率不高的原因是多方面的,比如由于掃描得到的圖像有較大的噪聲干擾,因此限制了單字識別率的提升,所以如何提取更有效的特征以及優(yōu)化圖像來提升識別率是需要繼續(xù)改進的地方。最后,本文基于DCNN-KLR的數(shù)據(jù)集提取HOG特征向量,使用目前比較流行的機器學習方法支持向量機(SVM)來對手寫哈薩克字符的識別,分別使用兩種算法將數(shù)據(jù)分為33類,識別結(jié)果見表6。
表6 對比DCNN-KLR算法和SVM+HOG算法
從表6可以看出,本文提出的DCNN-KLR算法在相同的手寫字符數(shù)據(jù)集上的識別率遠高于支持向量機算法的識別率,可以提取到圖片更深層的特征,因此可以獲得更好的識別率。
本文提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的手寫哈薩克文字母的識別方法,并且介紹了圖像預處理的方法以及神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與一些特性。深度卷積神經(jīng)網(wǎng)絡(luò)用ReLU為激活函數(shù)提高了訓練效率。通過強有能力的正則化技術(shù)Dropout提升了網(wǎng)絡(luò)的識別率。 以上的實驗結(jié)果可以看出該模型要比傳統(tǒng)的方法對手寫哈薩克文手寫字母有更高的識別正確率。
[1] 達吾勒·阿布都哈依爾,古孵拉·阿冬別克.基于ANN的哈薩克文手寫文字識別系統(tǒng)的研究[J].計算機工程與應用,2008,44(1):225-228.
[2] 達吾勒·阿布都哈依爾,古麗拉·阿東別克.基于HMM的聯(lián)機手寫哈薩克文字的識別研究[J].計算機工程與應用,2014,50(1):145-148.[3] 達吾勒·阿布都哈依爾,海拉提·克孜爾別克.哈薩克文脫機手寫字符識別系統(tǒng)的研究與實現(xiàn)[J].計算機工程,2011,37(8):186-191.
[4] 莊園. 手寫體字符識別的特征提取和分類器研究[D]. 南京: 南京理工大學, 2012.
[5] 郭鵬.深度卷積神經(jīng)網(wǎng)絡(luò)及其在手寫體漢字識別中的應用研究[D].成都:四川師范大學,2016.
[6] 張重生. 深度學習原理與應用實戰(zhàn) [M] .北京: 電子工業(yè)出版社, 2016.
[7] 常歡.基于卷積神經(jīng)網(wǎng)絡(luò)的孤立手寫體漢字識別研究[D].合肥:安徽大學,2015.
[8] 陳先昌.基于卷積神經(jīng)網(wǎng)絡(luò)的深度學習算法與應用研究[D].杭州:浙江工商大學,2013.
(責任編輯 王楠楠)
AHandwrittenKazakhLetterRecognitionMethodBasedonDeepConvolutionalNeuralNetwork
ZHANGJing,WULei,HEJian-jun,LIUWen-peng
(School of Information and Communication Engineering, Dalian Minzu University,Dalian Liaoning 116605, China)
TP391
A
2017-06-05;
2017-07-23
國家自然科學基金項目(61503058);遼寧省自然科學基金項目(201602190, 2015020099);大連市青年科技之星項目(2016RQ072); 中央高校基本科研業(yè)務(wù)費專項資金資助項目(DC201501055,DC201501060401)。
張晶(1993-),女,內(nèi)蒙古包頭人,大連民族大學信息與通信工程學院碩士研究生,主要從事圖像處理、智能信息處理研究。
劉文鵬(1982-) ,男,黑龍江大慶人, 講師,博士,主要從事神經(jīng)網(wǎng)絡(luò)、軟件技術(shù)的研究。
2096-1383(2017)05-0503-06