王庭棟
(西安郵電大學,陜西西安 710121)
信息化社會給人們的生活帶來了翻天覆地的變化,每個人身邊的文字資料也越來越多,但各種證件、單據的錄入工作,目前仍然依賴于人工實現,錄入速率慢的同時也耗費了大量人力物力。因此利用計算機技術實現文字的識別與錄入成為一個急需解決的問題。
近年來,圖像處理技術和計算機視覺技術得到飛速發(fā)展,尤其是神經網絡理論的發(fā)展為文字識別提供了新的方向。二十世紀六十年代,第一個光學字符識別 (Optical Character Recognition ,OCR)系統(tǒng)就已出現,隨著圖像識別技術的發(fā)展,其涉及的應用范圍也在逐步擴大,基于圖像處理以及模式識別理論的OCR 系統(tǒng)在行業(yè)間已得到廣泛應用?;诠鈱W字符識別發(fā)展起來的漢字識別在部分領域也得到了應用。雖然光學字符識別技術發(fā)展已比較成熟,但由于中文漢字種類繁多,識別準確率仍有待提高。為提高識別準確率,本文在卷積神經網絡的基礎上引入了稠密卷積網絡模型結構,提出了一種基于稠密卷積網絡的文字識別方法。
在《現代漢語常用字表》中共有3500 個漢字,國家標準信息交換漢字字符集GB2312-80 收錄了一級漢字3755 個,能夠覆蓋現在主流文本的99.48%,基本滿足人們日常閱讀與交流的需求。但是漢字種類繁多,且包含多種書寫字體如:隸書、楷書、行書等,且可用的漢字訓練數據集數量相對較少,對漢字進行識別成為深度學習中是一個熱點問題。Wu 在通過卷積神經網絡進行文字識別的基礎上,提出了一種多級特征提取模塊,替換卷積神經網絡中的卷積層與池化層[1]。Xu 基于神經網絡和分類器原理,提出了漢字識別二級分類集成策略,基于LDA 特征提取算法,結合K 分類器實現對漢字的識別[2]。Li 提出了基于改進SURF 算法和SPM 方法的細分類算法,通過多特征融合實現了對漢字的直接分類[3]。Ding 針對現有神經網絡特征提取能力差、計算量大等問題,提出了一種添加RMSprop 優(yōu)化器、數據擴增、批標準化等方式優(yōu)化的新的卷積神經網絡架構, 可用于漢字的識別[4]。YU 以隱馬爾可夫模型為基礎,提出了在原筆跡提取得到的筆劃像素點坐標序列中,利用拐點檢測算法提取筆劃的拐點,將筆劃分割為筆段,使用SVM 方法對筆段進行分類,得到漢字的筆段編碼序列;最后,通過隱馬爾可夫模型對漢字進行模型建立、訓練和識別[5]。
在圖像分類領域,網絡模型的深度是一個重要環(huán)節(jié),從一開始LeNet[6]的五層結構,VGG[7]網絡的19 層結構,到152 層的Resnet[8]網絡結構,網絡層數的加深成為卷積神經網絡發(fā)展的主要方向之一。但是隨著網絡模型深度的增加,梯度爆炸、梯度消失、過擬合等現象影響了模型的訓練結果,而Densenet[9]通過對特征的重復利用和減少每層網絡的計算量,降低參數量,減輕了梯度消失帶來的影響,加強了特征的傳播效果[10]。
DenseNet 由Gao Huang 于CVPR2017 提出。它的基本思想是使網絡模型中的任何兩層之間都建立直接的連接,這樣每一層的輸入都是之前所有層輸出的并集,而這一層所學習的特征也會成為后面所有層的輸入。
在Resnet 網絡結構中,第i 層的輸出xi 由前一層的輸出進行非線性變化后相加獲得如式(1)
在Densenet 網絡中,設模型層出為N 層,那么通過推算可以得出模型中共有N(N+1)/2 個連接,將第i 層與前面所有層進行連接,輸出結果會成為第i+1,i+2,…層的輸入。于是將網絡第0 層到第i-1 層輸出特征圖通道的合并用[X0,X1,…,Xi-1]表示,可以得到i 層的輸出:
Densenet 網絡包括稠密模塊和過渡層模塊,稠密模塊首先為歸一化層將圖像進行歸一化處理,然后緊接激活函數層和池化層對圖像進行初次篩選,再通過設計多個卷積層與激活函數層的結構,將多個這樣的不同結構之間互相連接,構成了一個整體的稠密模塊,不同的稠密模塊之間在通過過渡層進行連接,通過過渡層可以使稠密模塊之間的特征圖大小進行統(tǒng)一,設計過渡層中的卷積層大小為1*1,可以用來降低參數量。在稠密模塊中不同的卷積層兩兩互相連接,實現了對已提取特征的重復利用,而隨著網絡層數的不斷增加出現的梯度消失問題,也會因為每一個卷積層都與損失函數進行連接而得到緩解。
本文輸入圖像大小為(64*64)的中文一級漢字,設計了3 個結構相同的密集模塊與2 個過渡層。圖像輸入后首先做一次大小為5*5 步長為2 的卷積,然后以大小為2*2 步長為2 進行池化,隨后進入密集模塊。每個密集模塊包括8 個節(jié)點,其中每個節(jié)點以歸一化層、激活函數層、卷積層和拼接層的方式組成,每個卷積層的卷積核為8,為加速參數運算,減輕過擬合程度,基于Inception[10]網絡結構,結合非對稱卷積,將原網絡中進行一次3*3 卷積操作以兩次3*1 和1*3 的卷積操作代替[11],激活函數層為Relu 函數。過渡層由歸一化層、卷積層和池化層組成,卷積核大小為1*1,數量等同于輸入特征數量圖數量,保證過渡層特征輸入數和輸出數數量相同。網絡最后采用softmax 進行分類,結構為全連接結構。
圖1 DenseNet 網絡圖
表1
圖2 準確率與損失函數
通過人工合成包含多種字體的3755 個一級漢字數據集進行模型訓練。對262850 幅一級漢字圖像進行添加噪聲,角度傾斜等圖像仿真處理后,隨機選取70%作為訓練集進行訓練,剩余30%作為測試數據,采用隨機梯度下降法進行優(yōu)化。每次迭代數據量為64,共進行50 輪訓練,圖2 為50 輪訓練中準確率變化圖與訓練損失函數變化圖。圖2 中可以看出,訓練過程中準確率逐漸提高,損失函數逐漸降低,過擬合現象不明顯。其中準確率最高到達97.1%。
提出了一種基于稠密卷積網絡模型的文字識別算法,實驗證明可以較好的完成文字識別任務,但是識別是建立在單個文字的基礎上進行識別,對一段文本的識別依賴切割算法,并且對形近字之間的魯棒性仍有待提高。