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