孟彩霞 王騰飛 王 鑫
(西安郵電大學(xué) 西安 710000)
科學(xué)技術(shù)的飛速發(fā)展,給現(xiàn)代人的生活帶來了翻天覆地的改變。房產(chǎn)證、名片等作為公民不動產(chǎn)、個人信息管理的有效工具,其識別與管理涉及到社會的很多方面。目前其信息的錄入大多是靠人工實現(xiàn)的。而這種錄入方法存在了諸多不足,因此如何利用現(xiàn)有的科技實現(xiàn)通過計算機進行自動錄入,而人工只做一些簡單的輔助操作成為一個急需解決的問題。
近些年來,圖像處理技術(shù)與模式識別理論的發(fā)展,尤其是深度學(xué)習(xí)的發(fā)展為基于數(shù)字圖像實現(xiàn)的漢字識別行業(yè)奠定了理論基礎(chǔ),而電子技術(shù)的迅猛發(fā)展帶來的成本低、體積小、清晰度高的攝像頭在移動終端的普遍應(yīng)用為快速、便捷、低成本的漢字識別提供了技術(shù)平臺。20 世紀六七十年代涌現(xiàn)出了第一批光學(xué)字符識別(Optical Character Recognition,OCR)系統(tǒng)[1~2],它們的功能有限,識別量小。這批OCR系統(tǒng)中最具典型意義的是Farrington3010[3]。目前,基于光學(xué)攝像頭圖像處理以及模式識別理論的OCR 在社會的各個行業(yè)得到廣泛的應(yīng)用。在光學(xué)字符識別的基礎(chǔ)上發(fā)展起來的漢字識別作為一種新型的技術(shù)也在社會生活的各個方面得到了應(yīng)用。隨著國家信息化建設(shè)的發(fā)展,基于深度學(xué)習(xí)的文字識別技術(shù)備受關(guān)注。隨著網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫技術(shù)的發(fā)展,漢字識別的結(jié)果可以給很多行業(yè)帶來極大地便利。
雖然光學(xué)字符識別技術(shù)已經(jīng)是一個比較成熟的領(lǐng)域,但是由于中文字符種類繁多,其識別精度仍然有待進一步提高。為了提高識別精度,本文以一級漢字為研究對象,通過建立一級漢字訓(xùn)練數(shù)據(jù)庫,在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入深度殘差網(wǎng)絡(luò)模型結(jié)構(gòu),提出了一種基于深度殘差網(wǎng)絡(luò)的文字識別方法。
中國的常用漢字有3500 個左右,參照GB2312-80 ,一級漢字有3755 個。由于漢字種類多,對應(yīng)的訓(xùn)練數(shù)據(jù)相對較少,并且有多種書寫的形式(如:隸書、仿宋、行書等),因此漢字的識別在機器學(xué)習(xí)中是一個非常棘手的問題。如何通過機器學(xué)習(xí)將中文漢字進行快速準確的識別是國內(nèi)眾多專家與學(xué)者一個急需解決的問題。Jun Du 等提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)特征提取的在線手寫漢字的識別方法[4],通過卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,然后對特征進行線性變化,利用正則化優(yōu)化網(wǎng)路參數(shù)進行在線手寫漢字識別;Lu Liu 等提出了一種基于二次分類函數(shù)與深度信念網(wǎng)絡(luò)模型相結(jié)合的手寫漢字識別方法[5];Zhuoyao Zhong等提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的多種漢字字體多次池化的印刷漢字識別方法[6],在卷積神經(jīng)網(wǎng)絡(luò)的卷積層上提出一個多層池化層,顯著地提高了識別正確率;Weixin Yang 等提出基于指定特征的卷積神經(jīng)網(wǎng)絡(luò)進行手寫漢字的識別方法[7],通過對手寫字體進行形變、非線性歸一化、方向特征等的提取進行網(wǎng)絡(luò)模型識別效果的提升;Yejun Tang 等提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)與轉(zhuǎn)移學(xué)習(xí)的方法[8],通過印刷漢字對一個卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,將訓(xùn)練之后的網(wǎng)絡(luò)模型的參數(shù)作為初始化權(quán)重,通過手寫字體和繁體字等對網(wǎng)絡(luò)模型進行再次訓(xùn)練得到最終的網(wǎng)絡(luò)模型,最后將訓(xùn)練的模型用于漢字的識別;Xuchen Song等通過對圖像進行旋轉(zhuǎn)、尺度變換等對訓(xùn)練數(shù)據(jù)進行擴充,提出了基于卷積神經(jīng)網(wǎng)絡(luò)的形近字識別方法[9]。姚超等提出了一種基于級聯(lián)分類器的手寫相似漢字對別方法,在得到特征向量之后先利用二次判別函數(shù)進行分類,然后在利用支持向量機進行分類,得到最后的識別結(jié)果[10]。
讓機器以類人的方式進行快速的學(xué)習(xí)與準確的認知,是科學(xué)家們長期探索與追求的一大科學(xué)夢想,人工神經(jīng)網(wǎng)絡(luò)正是在這種背景下被提出的。傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練的一般步驟是先進行特征的提取,然后將提取的特征輸入到網(wǎng)絡(luò)中進行網(wǎng)絡(luò)模型權(quán)重的訓(xùn)練。隨著科技的不斷發(fā)展,數(shù)據(jù)的數(shù)量與復(fù)雜度在不斷增加,給傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)帶來了一系列的挑戰(zhàn)。如何提高網(wǎng)絡(luò)模型的魯棒性成為了一個新的問題。一個解決方案是提高網(wǎng)絡(luò)模型的復(fù)雜度,將這個思想轉(zhuǎn)移到人工神經(jīng)網(wǎng)絡(luò)上就是對人工神經(jīng)網(wǎng)絡(luò)的層數(shù)進行加深,因此深度神經(jīng)網(wǎng)絡(luò)應(yīng)運而生。深度神經(jīng)網(wǎng)絡(luò)在圖像分類領(lǐng)域帶來了一系列的突破。它可以從原始數(shù)據(jù)中提取由低層到高層、由具體到抽象的、由一般到特定語義的特征,來實現(xiàn)對復(fù)雜數(shù)據(jù)的分析[11]。其中最著名的網(wǎng)絡(luò)是深度卷積神經(jīng)網(wǎng)絡(luò)。
網(wǎng)絡(luò)模型的深度在圖像分類領(lǐng)域發(fā)揮著非常重要的作用,許多視覺任務(wù)也都得益于非常深的網(wǎng)絡(luò)模型。但是在對網(wǎng)絡(luò)深度進行加深的同時又會導(dǎo)致網(wǎng)絡(luò)模型的訓(xùn)練難度增加(網(wǎng)絡(luò)模型損失函數(shù)出現(xiàn)震蕩、過擬合等現(xiàn)象),因此對網(wǎng)絡(luò)層次比較深的神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練是非常困難的,而使用殘差網(wǎng)絡(luò)可以很好地減輕深層網(wǎng)絡(luò)訓(xùn)練的負擔(dān),提高網(wǎng)絡(luò)的深度[12]。
深度殘差網(wǎng)絡(luò)(ResNet,Residual Neural Network)[13],是微軟亞洲研究院何凱明等四名華人提出的一種深度卷積網(wǎng)絡(luò)模型。ResNet 最初的想法是在訓(xùn)練集上,深層網(wǎng)絡(luò)不應(yīng)該比淺層網(wǎng)絡(luò)差。因為只需要深層網(wǎng)絡(luò)多的那些層做恒等映射就簡化為了前層網(wǎng)絡(luò)。所以從學(xué)習(xí)恒等映射這點出發(fā),考慮到一個網(wǎng)絡(luò)要學(xué)習(xí)一個F(x)=x的映射比學(xué)習(xí)F(x)= 0 的映射更難,所以可以把網(wǎng)絡(luò)設(shè)計成H(x)=F(x)+x,這樣就完成了恒等映射的學(xué)習(xí),又降低了學(xué)習(xí)難度。這里的x 是殘差結(jié)構(gòu)的輸入,F(xiàn)是該層網(wǎng)絡(luò)的輸出,H是整個殘差結(jié)構(gòu)的輸出。

圖1 殘差網(wǎng)絡(luò)單元結(jié)構(gòu)圖
ResNet 的創(chuàng)新主要在于殘差網(wǎng)絡(luò),這個網(wǎng)絡(luò)的提出本質(zhì)上還是要解決層次比較深的時候無法訓(xùn)練的問題。它的提出,極大地加快了深層網(wǎng)絡(luò)的訓(xùn)練,模型的準確率大幅度提升,并且具有良好的擴展性和推廣性。
根據(jù)文字識別的相關(guān)算法,進行殘差單元的設(shè)計。如圖2 所示,每一個殘差單元包含兩層卷積神經(jīng)網(wǎng)絡(luò),殘差單元第一層卷積層有64 個卷積核,卷積核大小為3×3,然后通過一層雙曲切線的激活函數(shù)實現(xiàn)非線性變換;第二層卷積層有128 個卷積核,大小與第一層一樣,然后將輸入與第二層卷積層的輸出進行疊加作為最終的殘差單元輸出。

圖2 殘差單元內(nèi)部網(wǎng)絡(luò)圖
深度殘差網(wǎng)絡(luò)模型如下圖所示,輸入為(64,64)大小的一級漢字圖像,經(jīng)過第一層卷積層,卷積核個數(shù)為16,大小為(5,5),步長為1;然后進行最大值池化;第三、四、五層為殘差單元;接下來是一層均值池化層;然后是一層Dropout 層[14],隨機將20%的網(wǎng)絡(luò)權(quán)重置為0,提高深度殘差網(wǎng)絡(luò)模型的魯棒性并能在一定程度上防止過擬合。下面是將特征圖變?yōu)橐痪S特征向量的Flatten層,接下來是一層全連接層,神經(jīng)元個數(shù)為3072;最后是Soft Max層進行一級漢字的分類。每層卷積之后都會進行批歸一化[15](Batch Normalization,BN),用于加速訓(xùn)練和優(yōu)化訓(xùn)練結(jié)果。每層卷積層與全連接層之后都會有激活函數(shù),除去全連接層以外,激活函數(shù)全部為Tanh,第一層全連接層的激活函數(shù)為Relu,相比于Tanh,Relu 進行訓(xùn)練速度更快[16],但通過實驗卷積層使用Tanh,網(wǎng)絡(luò)更容易訓(xùn)練。模型的優(yōu)化方法為隨機梯度下降法[17](Stochastic Gradient Descent,SGD)。

圖3 ResNet_OCR網(wǎng)絡(luò)圖

表1 實驗環(huán)境與具體配置
通過構(gòu)建一級漢字數(shù)據(jù)庫進行網(wǎng)絡(luò)模型的訓(xùn)練。共有172730 幅一級漢字圖像,并將其進行傾斜、添加噪聲等變換,選取其中的60%進行訓(xùn)練,40%作為測試樣本,采用隨機梯度下降作為優(yōu)化函數(shù)。每次迭代的數(shù)據(jù)大小為(batch size)為30 幅圖像,共進行50輪訓(xùn)練,其訓(xùn)練結(jié)果如圖4~5所示:圖4為50輪訓(xùn)練中訓(xùn)練正確率與測試正確率變化圖,圖5 是50 輪訓(xùn)練中訓(xùn)練損失函數(shù)與測試損失函數(shù)變化圖。從這兩幅圖可以看出,訓(xùn)練過程中損失函數(shù)是逐漸降低,正確率逐漸提高,過擬合現(xiàn)象不明顯。其中訓(xùn)練正確率最高達到了98.9%,測試正確率最高達到了98.6%。

圖4 訓(xùn)練正確率與測試正確率

圖5 訓(xùn)練損失函數(shù)與測試損失函數(shù)
從實際場景中選取1000 幅單一字符(宋體、隸書等)進行模型魯棒性的測試,測試正確率為94.6%。

圖6 模型測試字符數(shù)據(jù)
本文提出了一種基于深度殘差網(wǎng)絡(luò)模型的文字識別網(wǎng)絡(luò)模型,通過實驗證明此網(wǎng)絡(luò)模型可以很好地完成中文字符識別任務(wù)。但是其對形近字之間的識別魯棒性還有待進一步提高。