毛曉波, 程志遠(yuǎn), 周曉東
(1.鄭州大學(xué) 電氣工程學(xué)院 河南 鄭州 450001; 2.鄭州大學(xué) 產(chǎn)業(yè)技術(shù)研究院 河南 鄭州 450001)
手寫漢字識(shí)別作為模式識(shí)別的重要研究領(lǐng)域之一,在文檔數(shù)字化、郵件分揀和支票處理等方面有著廣闊的應(yīng)用前景[1-2].漢字的種類繁多,并且由于書寫者不同的書寫習(xí)慣,手寫體漢字相較于印刷體漢字有很大的隨意性,這些都給手寫漢字識(shí)別帶來(lái)了較大的困難[3-4].傳統(tǒng)的脫機(jī)手寫體漢字識(shí)別方法基本上包含圖像預(yù)處理、特征提取和分類器設(shè)計(jì)三個(gè)過(guò)程.整個(gè)過(guò)程主要依賴人工提取特征和設(shè)計(jì)分類器,識(shí)別效果也往往受制于此,無(wú)法滿足實(shí)際應(yīng)用中的需求,且進(jìn)一步的發(fā)展遇到了較大的瓶頸[5-7].
近年來(lái),深度學(xué)習(xí)在很多傳統(tǒng)的模式識(shí)別任務(wù)上都取得了優(yōu)異的成績(jī),這也為手寫體漢字識(shí)別提供了新的研究方向.瑞士IDSIA團(tuán)隊(duì)首次將卷積神經(jīng)網(wǎng)絡(luò)運(yùn)用到手寫體漢字識(shí)別中,在ICDAR-2011脫機(jī)手寫體漢字識(shí)別競(jìng)賽中獲得冠軍,識(shí)別準(zhǔn)確率達(dá)到92.18%[8].而在ICDAR-2013聯(lián)機(jī)和脫機(jī)手寫體漢字識(shí)別競(jìng)賽中,冠軍隊(duì)伍均采用了基于卷積神經(jīng)網(wǎng)絡(luò)模型的方法,其中脫機(jī)手寫體漢字識(shí)別準(zhǔn)確率達(dá)到94.77%[9].文獻(xiàn) [10]提出了HCCR-Ensemble-GoogLeNet模型,通過(guò)手工提取的特征與卷積神經(jīng)網(wǎng)絡(luò)的結(jié)合將識(shí)別準(zhǔn)確率提高到96.74%.文獻(xiàn) [11]證明漢字的細(xì)微結(jié)構(gòu)特征對(duì)漢字的準(zhǔn)確識(shí)別有很大的作用.文獻(xiàn) [12]指出以往用于漢字識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)的損失函數(shù)只對(duì)類間差別進(jìn)行優(yōu)化而忽略了類內(nèi)差別,因此,為網(wǎng)絡(luò)設(shè)計(jì)了新的損失函數(shù)對(duì)兩方面同時(shí)進(jìn)行了優(yōu)化.然而,以上所提到的深度學(xué)習(xí)模型均采用傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以原始圖像作為圖像輸入,特征信息依次“流經(jīng)”若干卷積層和池化層,每一層都將信息進(jìn)行加工后送入下一層,最后用于分類.在這個(gè)過(guò)程中,要想提升網(wǎng)絡(luò)的表現(xiàn)就要加深網(wǎng)絡(luò)層數(shù),而隨著網(wǎng)絡(luò)層數(shù)的增加又極易發(fā)生梯度彌散和梯度爆炸問(wèn)題[13].更重要的是,在使用傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)處理漢字識(shí)別問(wèn)題時(shí),需要保留的漢字細(xì)微特征信息在網(wǎng)絡(luò)傳遞過(guò)程中也可能被改變甚至丟棄.
ResNet[14]被證明可以很好地克服深層次網(wǎng)絡(luò)訓(xùn)練中出現(xiàn)的梯度彌散問(wèn)題.簡(jiǎn)單來(lái)說(shuō),ResNet是在線性網(wǎng)絡(luò)連接的基礎(chǔ)上引入了一種捷徑連接方式,使得網(wǎng)絡(luò)底層不僅可以與中間層相連接,還可以通過(guò)捷徑繞過(guò)一些層次直接連接到更高層,然后將捷徑的輸出與主路徑的輸出以求和的方式進(jìn)行融合.加入了這樣的一條捷徑后,誤差由高層向底層的反向傳播路徑被縮短,上層梯度可以直接跳過(guò)中間層傳到下層,使網(wǎng)絡(luò)更易優(yōu)化.然而,如果直接應(yīng)用ResNet處理漢字識(shí)別問(wèn)題,其通過(guò)求和來(lái)融合捷徑與主路徑輸出的方式依然具有覆蓋漢字細(xì)微特征信息的風(fēng)險(xiǎn).
通過(guò)綜合考慮ResNet中捷徑連接方式的優(yōu)點(diǎn)和漢字識(shí)別任務(wù)的特殊性,本文提出一種改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在提取“高水平”特征信息的階段,可以將前一卷積層提取到的特征圖保留下來(lái),與當(dāng)前卷積層提取到的特征圖疊加之后共同作為輸入進(jìn)入下一層,由最后的分類層決定是采用保留的特征信息還是經(jīng)過(guò)加工之后的信息.該卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)緩解了梯度消失的問(wèn)題,有效地保留了漢字的細(xì)微結(jié)構(gòu)特征.
設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.輸入64×64的灰度圖像,輸出長(zhǎng)度為3 755的向量.模型總共有8層卷積層、4層最大值池化層、1層全連接層和1層輸出層.
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The architecture of convolutional neural network
圖1中出現(xiàn)的特征圖疊加塊的工作原理如圖2所示.假設(shè)現(xiàn)有卷積層1和卷積層2,輸入經(jīng)過(guò)卷積層1后產(chǎn)生特征圖1,特征圖1再經(jīng)過(guò)卷積層2 的卷積操作之后產(chǎn)生特征圖2.接下來(lái)先不直接對(duì)特征圖2進(jìn)行池化操作,而是先將卷積層2產(chǎn)生的特征圖2與卷積層1產(chǎn)生的特征圖1進(jìn)行疊加,之后再對(duì)所有的特征圖進(jìn)行池化操作.ResNet是對(duì)特征圖1和特征圖2進(jìn)行求和操作,特征圖1和特征圖2將會(huì)相互覆蓋,特征圖數(shù)目保持不變.與ResNet不同,本文方法將會(huì)把特征圖1和特征圖2中所有的特征圖都保留下來(lái),此時(shí)特征圖的數(shù)目是特征圖1的數(shù)目和特征圖2的數(shù)目之和.
圖2 特征圖疊加塊的工作原理Fig.2 The concatenated block principle of feature maps
在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中,第l層的輸出是第(l+ 1)層輸入,轉(zhuǎn)換關(guān)系為
Xl+1=Fl+1(Xl),
(1)
式中:Fl(·)表示特征圖在l層所進(jìn)行的變換;Xl是第l層的輸出.
ResNet引入捷徑連接方式,網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo)是輸入與輸出之間的殘差:
Xl+1=Fl+1(Xl)+Xl.
(2)
在所提出的網(wǎng)絡(luò)結(jié)構(gòu)中,特征提取的初始階段采用式(1)方式提取“基礎(chǔ)”圖像特征,而到兩個(gè)特征圖疊加塊之后的池化層時(shí),層間轉(zhuǎn)換關(guān)系為
Xl+1=Fl+1(Xl,Xl-1),
(3)
式中:Fl+1(Xl,Xl-1)表示將當(dāng)前層和前一層提取到的特征圖排列在一起共同作為輸入進(jìn)入下一層.與ResNet不同,這不是將兩層提取到的特征圖進(jìn)行求和,而是將它們疊加組合成新的一組特征圖.
如此設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)是基于漢字識(shí)別問(wèn)題的特殊性.傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)主要應(yīng)用于普通的物體識(shí)別任務(wù),如對(duì)車、飛機(jī)、花朵等的識(shí)別.在這些識(shí)別任務(wù)中,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在高層提取到的特征已經(jīng)高度輪廓化[15],能否充分提取色彩與物體的整體輪廓特征,對(duì)分類準(zhǔn)確率有很大的影響.漢字識(shí)別與之不同:首先,漢字識(shí)別不基于色彩;其次,相較于整體輪廓,漢字對(duì)細(xì)微結(jié)構(gòu)的變化也十分敏感,如“大”和“犬”二字,恰恰是細(xì)微筆畫的不同決定了二者的不同.因此,細(xì)微筆畫信息與整體輪廓信息對(duì)于漢字分類來(lái)說(shuō)都是必要的.
池化操作是卷積神經(jīng)網(wǎng)絡(luò)中不可缺少的重要步驟,它降低了特征維度從而使得模型可以更有效地訓(xùn)練.然而,池化操作本質(zhì)上是下采樣操作,它將帶來(lái)每張?zhí)卣鲌D尺寸上的變化,不同尺寸的特征圖無(wú)法進(jìn)行疊加進(jìn)入下一層.為了解決這一問(wèn)題,將特征圖的疊加操作限制在兩次池化之間,這就保證了將要排列的特征圖具有相同的尺寸.表1為模型的詳細(xì)參數(shù)設(shè)置,展示了特征圖尺寸隨著卷積與池化操作的變化情況.
表1 模型的詳細(xì)參數(shù)設(shè)置
模型采用誤差反向傳播算法來(lái)訓(xùn)練網(wǎng)絡(luò),由于采用softmax層分類,所以定義網(wǎng)絡(luò)的誤差函數(shù)為交叉熵誤差函數(shù),表示為
(4)
激活函數(shù)使用修正線性單元(ReLu)[16],函數(shù)表達(dá)式為
f(x)=max(x,0).
(5)
使用Adam優(yōu)化算法[17]迭代更新各層的權(quán)值直至收斂,沒(méi)有使用微調(diào)而直接在訓(xùn)練集上進(jìn)行模型訓(xùn)練.整個(gè)數(shù)據(jù)集迭代24 000次,學(xué)習(xí)率固定為0.1,訓(xùn)練過(guò)程中對(duì)訓(xùn)練集進(jìn)行了數(shù)據(jù)增廣.
需要注意的是,在進(jìn)行權(quán)值更新的過(guò)程中,根據(jù)鏈?zhǔn)角髮?dǎo)法則,在誤差從輸出層反向“流”到輸入層的過(guò)程中,與其他層相比,疊加塊的第一個(gè)卷積層的誤差項(xiàng)有兩個(gè)來(lái)源:一是誤差經(jīng)過(guò)前一卷積層 “流”向疊加塊的第一個(gè)卷積層;二是誤差直接從池化層“流”向疊加塊的第一個(gè)卷積層.當(dāng)網(wǎng)絡(luò)隨著層數(shù)增加出現(xiàn)梯度彌散消失現(xiàn)象而變得難以訓(xùn)練時(shí),后者可以使誤差“繞過(guò)”長(zhǎng)路徑而直接使用短路徑訓(xùn)練網(wǎng)絡(luò),緩解梯度消失現(xiàn)象,使網(wǎng)絡(luò)更易優(yōu)化.
實(shí)驗(yàn)采用中國(guó)科學(xué)院自動(dòng)化研究所公開(kāi)提供的HWBDB1.0和HWBDB1.1數(shù)據(jù)集[18].HWBDB1.0數(shù)據(jù)集包含3 866類漢字,420名書寫者,樣本數(shù)為15 556 675;HWBDB1.1數(shù)據(jù)集包含3 755類漢字,300名書寫者,樣本數(shù)為1 121 749.本文采用HWBDB1.1作為訓(xùn)練集,從訓(xùn)練集隨機(jī)抽取20%的數(shù)據(jù)作為驗(yàn)證集.測(cè)試集采用ICDAR-2013脫機(jī)手寫體漢字識(shí)別競(jìng)賽測(cè)試集[9],包含3 755類漢字,60名書寫者,樣本數(shù)為224 419.
訓(xùn)練模型硬件環(huán)境為CPU I7 7700@3.6 GHz,內(nèi)存16G,圖像核心為GTX1070 8G顯存.系統(tǒng)環(huán)境為Ubuntu 16.04LTS,使用CUDA8.0運(yùn)行庫(kù)及cudnn6.0加速方案.圖3展示了訓(xùn)練集和驗(yàn)證集的識(shí)別準(zhǔn)確率隨著迭代次數(shù)的變化.可以發(fā)現(xiàn),本文的網(wǎng)絡(luò)收斂速度很快,迭代5 000次左右驗(yàn)證集就可以達(dá)到很高的準(zhǔn)確率,并且模型沒(méi)有出現(xiàn)過(guò)擬合.
圖3 訓(xùn)練集和驗(yàn)證集的識(shí)別準(zhǔn)確率Fig.3 The recognition accuracy on train and validation dataset
表2為不同方法在ICDAR-2013脫機(jī)手寫體漢字識(shí)別競(jìng)賽測(cè)試集上的結(jié)果.可以發(fā)現(xiàn),本文方法相較于傳統(tǒng)方法在識(shí)別準(zhǔn)確率上有了很大的提高,表明深度學(xué)習(xí)方法處理圖像任務(wù)時(shí)具有傳統(tǒng)方法難以比擬的優(yōu)越性.3次競(jìng)賽最優(yōu)方法的準(zhǔn)確率逐年提升,而本文方法的表現(xiàn)優(yōu)于ICDAR-2013脫機(jī)手寫體漢字識(shí)別競(jìng)賽冠軍隊(duì)伍所用的方法,說(shuō)明通過(guò)考慮漢字識(shí)別問(wèn)題的特殊性從而改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),可以使模型更契合漢字識(shí)別問(wèn)題的處理.雖然本文方法的準(zhǔn)確率低于HCCR-Ensemble-GoogLeNet模型,但是本文的模型參數(shù)較低. 另外,本文采用的卷積神經(jīng)網(wǎng)絡(luò)僅有14層,屬于輕型的網(wǎng)絡(luò)結(jié)構(gòu).如果使用更深、更寬的網(wǎng)絡(luò)結(jié)構(gòu)或者先將模型在大型圖像數(shù)據(jù)庫(kù)上進(jìn)行長(zhǎng)時(shí)間的訓(xùn)練,再在訓(xùn)練集上進(jìn)行微調(diào),那么識(shí)別準(zhǔn)確率將會(huì)得到再次提升.
表2 不同方法在ICDAR-2013脫機(jī)手寫體漢字識(shí)別競(jìng)賽測(cè)試集上的結(jié)果
考慮到脫機(jī)手寫體漢字識(shí)別問(wèn)題的特殊性,提出一種改進(jìn)的深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).新的網(wǎng)絡(luò)結(jié)構(gòu)更容易優(yōu)化,且可以將整體輪廓信息和細(xì)微筆畫信息一起提供給分類層,使之獲得更為全面的分類特征,更適用于漢字識(shí)別問(wèn)題.在今后的研究工作中,可以考慮將更多的先驗(yàn)知識(shí)加入到模型設(shè)計(jì)中.
致謝:特別感謝中國(guó)科學(xué)院自動(dòng)化研究所模式識(shí)別國(guó)家重點(diǎn)實(shí)驗(yàn)室授權(quán)本研究使用完整的脫機(jī)手寫樣本數(shù)據(jù)庫(kù)(CASIA-HWBDB).