徐奇
(安徽工商職業(yè)學院 安徽省合肥市 230001)
隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的進步,手寫漢字識別在各類使用漢字作為信息傳遞的應(yīng)用場景中有非常巨大的潛在需求,因此成為眾多學者研究的熱點之一。從70 年代開始至今,漢字識別研究經(jīng)過了多年研究,從最簡單的印刷體,過渡到手寫體識別、從單機版的脫機識別過渡到連接云端的聯(lián)機識別、從單個漢字的識別過渡到長篇的識別,漢字識別技術(shù)已經(jīng)應(yīng)用在了車牌識別,支票簽字識別等多個領(lǐng)域,明顯提高了工作效率。但由于手寫體漢字的識別率因為難度較大,一直沒有達到實際應(yīng)用的水平。手寫漢字識別之所以被公認為是模式識別的難點,可以歸納為以下幾點:
(1)以目前流傳最廣的英文為例,英文字母數(shù)量不到30 個,而日常生活中大多數(shù)情況下使用的一級字庫中的漢字就有3700 多個,數(shù)量非常龐大.
(2)不像印刷體漢字都是四四方方的,每個人手寫漢字時都有自己的書寫習慣,風格各異,同一個人不同時期所寫的漢字都會有所區(qū)別。
(3)漢字中存在很多字體結(jié)構(gòu)相近的相近字,這些相近字字體相似,只是在細微處有差別,增加了計算機識別和特征提取的難度。
(4)統(tǒng)一,全面的數(shù)據(jù)是設(shè)計和訓練模型的基礎(chǔ),但是目前還缺乏權(quán)威統(tǒng)一的手寫體漢字數(shù)據(jù)庫。
近年來,由于神經(jīng)網(wǎng)絡(luò)非常適合應(yīng)用于手寫體漢字識別,在該方向成果不斷,值得深入研究。 神經(jīng)網(wǎng)絡(luò)是一個含有多個隱層的非線性網(wǎng)絡(luò)模型,通過不斷的大規(guī)模訓練,神經(jīng)網(wǎng)絡(luò)能從原始數(shù)據(jù)中自動提取特征,據(jù)此做出預測或者分類。在圖像識別、行為預測等領(lǐng)域,深度卷積神經(jīng)網(wǎng)絡(luò)( CNN)被認為是最適合的算法之一。 卷積神經(jīng)網(wǎng)絡(luò)利用不同的卷積提取多維特征。相對于BP 神經(jīng)網(wǎng)絡(luò)等傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò),CNN 可以直接針對二維圖像進行處理,避免了將二維圖像轉(zhuǎn)換成一維信號時丟失特征,因而提取的特征更加全面,是當前準確率最高的圖像識別方法之一。近幾年 CNN 在漢字識別領(lǐng)域的研究方向包括結(jié)合基于統(tǒng)計的特征提取、利用遷移學習提高識別率等。 以上方法雖然取得了較好的識別結(jié)果,但還是存在模型結(jié)構(gòu)復雜,參數(shù)調(diào)整難度較大,訓練過程極為耗時等問題。同時,注意力機制也成為了提高分類準確率的方法之一。當大量的二維圖像信息被輸入到卷積神經(jīng)網(wǎng)絡(luò)中時,盡管卷積操作減少了計算量,但網(wǎng)絡(luò)提取特征時對所有的信息賦予同樣的權(quán)重,而沒有考慮到某些局部信息的重要性。而注意力機制可以識別特征的重要性,將較大的權(quán)值賦給較重要的特征,從而提高準確率。為了提高手寫體漢子識別率,本文提出了一種基于雙重注意力機制(CBAM)的卷積神經(jīng)網(wǎng)絡(luò)模型(Convolutional Neural Network Based on Attention, ATT-CNN),用于手寫體漢字識別,關(guān)注圖像關(guān)鍵特征,進而提高分類的準確率。
與傳統(tǒng)的根據(jù)字體結(jié)構(gòu)提取特征的手寫體漢字識別方法相比,卷積神經(jīng)網(wǎng)絡(luò)提取的漢字特征并沒有明顯的含義,但其提取速度,系統(tǒng)自適應(yīng)等方面卻有非常明顯的優(yōu)勢。
CNN 是一種深度學習方法,它能夠通過應(yīng)用可學習的權(quán)重和與對象不同的偏差來提取對象的不同特征。如所述,該方法在圖像分類領(lǐng)域得到了成功的證明。
CNN 模型將圖像作為輸入,處理圖像并將其分類到預定義的類中。CNN 模型首先使用大量不同類別的圖像進行訓練。在此階段,將建立每個類別的通用模型。然后,在測試階段,根據(jù)不同類別的通用模型對圖像進行測試,并確定圖像屬于哪個類別。
對于這種訓練和測試,每個輸入圖像都經(jīng)過一系列具有不同內(nèi)核的卷積層。卷積層還包括BN 層、ReLU 層和最大池層。在卷積層之后,有用于概率分布的全連接層和softmax 層。在卷積層,通過將輸入圖像與不同的核進行卷積,從圖像中提取特征。在這個操作中,內(nèi)核從左到右、從上到下掃描整個圖像,并在輸入圖像的像素值和內(nèi)核之間執(zhí)行點積。每一種核對應(yīng)著每一種特征。該卷積層的最終提取結(jié)果是一個特征向量圖。
在卷積層,卷積核執(zhí)行卷積運算如下式所示:
然后池化層用于對特征映射進行下采樣。這用于二維性縮減,在保持重要信息和像素之間的空間關(guān)系不變的同時,減少了特征圖的空間大小。最后,將特征映射展平并轉(zhuǎn)化為向量的全連通層饋入使用反向傳播算法的傳統(tǒng)前饋網(wǎng)絡(luò)。接下來,softmax 層執(zhí)行基于其對圖像進行分類。
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)采用的大多是較大尺寸的卷積核, 提取的特征較為單一,而Inception 結(jié)構(gòu)并行使用較小的卷積核,,從多維度來提取特征,使得提取后的特征更加的全面和完整,能夠包含更多的輸入信息。本文采用了基于Inception模塊構(gòu)建的GoogLeNet 卷積神經(jīng)網(wǎng)絡(luò),Inception 模塊的結(jié)構(gòu)如圖1 所示。
圖1: Inception 模塊
激活函數(shù)對于深度卷積神經(jīng)網(wǎng)絡(luò)必不可少。應(yīng)用 ReLU激活函數(shù)可能會出現(xiàn)震蕩,不收斂,過擬合等現(xiàn)象,為了提高效率,本文采用 PReLU 激活函數(shù),解決了Relu 函數(shù)在x負半軸為0 的問題,避免了過擬合。
改進后的神經(jīng)網(wǎng)絡(luò)雖然訓練速度較慢,但是收斂性很好,準確率也有所提高。 PReLU 激活函數(shù)定義如下:
其中,y是第i 個通道上的非線性激活輸入, 為控制負數(shù)部分的斜率, 的下標i 表明,允許非線性激活在不同通道有不同取值。
Inception 模塊中引入批量歸一化(Batch Normalization)層,解決在訓練過程中,中間層數(shù)據(jù)分布發(fā)生改變的問題,防止梯度消失或爆炸,加快訓練速度,主要計算方法是:首先求出該批次數(shù)據(jù)的均值,再求出該批次數(shù)據(jù)的方差,對樣本數(shù)據(jù)進行標準化處理,最后引入兩個可學習的參數(shù) β,γ,使網(wǎng)絡(luò)能夠?qū)W習原始網(wǎng)絡(luò)的特征分布。具體操作過程如下式所示:
隨著信息技術(shù)的發(fā)展,我們處在一個需要快速處理大量數(shù)據(jù)的時代。但我們處理信息的能力是有限的,研究發(fā)現(xiàn),人類視覺系統(tǒng)的接收能力是有限的,但它同時具有強大的視覺信息處理能力。在視覺處理的過程中,眼睛接收數(shù)據(jù)后,視覺系統(tǒng)將注意力迅速聚焦于局部重要的區(qū)域,這種篩除機制可以很大程度上降低視覺系統(tǒng)需要處理的數(shù)據(jù)量,使我們在處理復雜視覺信息時可以過濾不重要的信息,把資源更合理 的分配到局部的重要區(qū)域,為后續(xù)的分析和推理提供了更精確的信息。因此,研究人員提出了重點關(guān)注局部關(guān)鍵信息的注意力機制。
對于圖像信息的特征來說,它們的重要性不是平均分配的,這也意味著卷積網(wǎng)絡(luò)中每個特征圖的重要性是各不相同的。注意力機制的核心思想是根據(jù)特征圖重要性的不同分配不同的權(quán)重,讓神經(jīng)網(wǎng)絡(luò)的計算資源更多投入在更關(guān)鍵的特征圖上,使用結(jié)果導向反向指導特征圖的權(quán)重更新,以推高關(guān)鍵信息對于最終分類結(jié)果的影響。
在實際應(yīng)用中,因為計算機的性能有限,導致無法構(gòu)建符合理論參數(shù)的神經(jīng)網(wǎng)絡(luò)去處理和存儲全部的信息,因此需要對信息進行篩選,以提高效率,因此,有研究人員將注意力機制引入到 CNN 中。注意力機制是當前深度學習領(lǐng)域中一個比較流行的方向,其模仿人的視覺注意力模式,每次只關(guān)注與當前任務(wù)最相關(guān)的信息,使得信息的使用更為高效。注意力機制已在語言識別、圖像標注等諸多領(lǐng)域取得了突破性的進展,并且研究人員發(fā)現(xiàn)將注意力機制與 CNN 結(jié)合的可以讓網(wǎng)絡(luò)關(guān)注最重要的特征,提高重要特征的權(quán)重,并抑制不必要的特征,減小不必要特征的權(quán)重,并且緩解了傳統(tǒng)CNN 卷積操作時局部感受野缺乏全局信息的缺點,進一步提升了CNN 的特征提取能力。
CBAM(Convolutional Block Attention Module)雙重注意力機制與只關(guān)注通道特征的SENet 相比,CBAM 是一種結(jié)合了空間和通道的注意力模塊,增強特征圖中的有用特征,抑制無用特征,在實際應(yīng)用當中可以取得更好的效果。圖2 為CBAM 注意力模塊的示意圖,首先通過通道注意機制模塊對輸入特征圖進行處理,在通道注意力模塊當中分別進行全局平均池化,全局最大池化提取更為豐富的高層次特征,接著分別通過 MLP(Multilayer Perceptron),將通道數(shù)壓縮為 C/r,再擴張回 C,其中 C 為通道數(shù),r 為衰減比率,取 r=16,然 后將 MLP 輸出的特征經(jīng)過 sigmoid 激活操作,生成 最終的通道注意力模塊輸出,將該輸出對應(yīng)元素相乘。計算流程如下式:
圖2: CBAM 注意力機制示意圖
式中F 表示輸入特征;σ 表示sigmoid 激活函數(shù)??臻g注意力模塊主要探討在空間
層面特征圖的內(nèi)在關(guān)系,即突出區(qū)域的重要性,與通道注意力模塊 相輔相成??臻g注意力模塊在算法上相對簡單些, 把通道注意力模塊輸出作為空間注意力模塊所需要 的輸入,經(jīng)過卷積核大小為 7×7 的標準卷積層后獲得空間注意力模塊的特征圖。計算流程如下式:
本文在選用模型時,以 GoogleNet 網(wǎng)絡(luò)作為此次實驗的基本網(wǎng)絡(luò),在Inception 模塊后加入了 CBAM 注意力模塊。圖3 為 ATT-CNN 網(wǎng)絡(luò)模型的結(jié)構(gòu)圖。表1 為ATT-CNN 網(wǎng)絡(luò)模型的參數(shù)。
圖3: ATT-CNN 網(wǎng)絡(luò)模型的結(jié)構(gòu)圖
表1: ATT-CNN 網(wǎng)絡(luò)模型的參數(shù)
文中使用的測試數(shù)據(jù)由 3 755 類漢字組成,每一類都有45 個樣本,每個樣本數(shù)據(jù)大小為 56×56。在實驗中,使用90%的漢字進行訓練,剩下的用于測試。實驗將批量大小(batch size)設(shè)置為 56,訓練周期設(shè)置為 30次,學習率為 0.01。在模型訓練的過程中,神經(jīng)網(wǎng)絡(luò)的參數(shù)值都會更新,直到網(wǎng)絡(luò)收斂。將使用本文提出的改進后的卷積神經(jīng)網(wǎng)絡(luò)的測試結(jié)果與其他卷積神經(jīng)網(wǎng)絡(luò)的測試結(jié)果進行比較,結(jié)果如表2 所示。
表2: 不同算法的比較
將本論文提出方法與典型網(wǎng)絡(luò)模型如 AlexNet、GoogleNet 等進行測試結(jié)果比較。AlexNet 模型在測試集上的準確率為 84.2% ,GoogleNet 模型在測試集上的準確率為87. 4%, Xception 在測試集上的準確率為94. 0% 。而本論文中的模型在測試集上的準確率為98.1% ,優(yōu)于其它卷積神經(jīng)網(wǎng)絡(luò)模型。
本文提出了一種基于雙向注意力機制(CBAM)的卷積神經(jīng)網(wǎng)絡(luò)模型的脫機手寫體漢字識別方法,模型中的Inception 模塊可以提取多維度特征,增強了模型的特征提取能力; BN 層提升了模型的收斂速度; CBAM 注意力機制模塊提高了關(guān)鍵信息的權(quán)重。實驗結(jié)果表明,本文算法的檢測精度達到了 98.1%,相比于AlexNet,xinception 等卷積神經(jīng)網(wǎng)絡(luò)模型的識別準確率有明顯的提高。
卷積網(wǎng)絡(luò)中的注意力機制的核心在于以賦予不同權(quán)重的方法來深度挖掘特征圖中所含有的信息,但目前所發(fā)現(xiàn)的注意力獲取渠道相對單一,急需改進。注意力機制已經(jīng)被廣泛證明其針對數(shù)據(jù)量大,計算量大的深度學習任務(wù)來說,不僅具有參數(shù)量小,即插即用的便捷性,還可以較為明顯地提升特征提取的效果,非常值得繼續(xù)深入研究。