張湛梅 張曉川
(中國移動通信集團 廣東省廣州市 510000)
脫機手寫體漢字識別技術(shù)作為字符識別技術(shù)(OCR)的一個分支,已成為模式識別領(lǐng)域新的研究熱點。由于不同漢字字體結(jié)構(gòu)繁多,存在大量相似漢字,書寫習(xí)慣不同導(dǎo)致手寫漢字結(jié)構(gòu)形體更是因人而異,千差萬別,體現(xiàn)在漢字手寫體識別更加困難。脫機手寫漢字識別是針對靜止的二維圖像中的漢字進行識別,通過票據(jù)合同圖片特征提取文字,故而識別更為復(fù)雜困難,準確度難以提高,脫機識別的手寫漢字識別一直是當前業(yè)界研究的難點熱點。
目前脫機識別手寫漢字的方案主要有兩類:第一類是基于傳統(tǒng)機器學(xué)習(xí)方法,主要有支持向量機(SVM)、線性判別模型(LDA)與修正二次判別函數(shù)(MQDF)等。這類方法在建模前需要對建模數(shù)據(jù)進行數(shù)據(jù)預(yù)處理和復(fù)雜的特征工程建設(shè),由于提取特征復(fù)雜,包括漢字質(zhì)心、筆畫特征處理,難以全面的提取出準確的特征。另一類是基于深度學(xué)習(xí)進行手寫體漢字的識別,目前主流模型有VGGNet、ResNet 等,這類做法存在調(diào)優(yōu)參數(shù)多、網(wǎng)絡(luò)收斂緩慢、存儲模型空間較大等問題。
為了解決現(xiàn)有技術(shù)中存在的上述問題,本文提出了一種基于改進的YOLO‐9000 與DBN 模型的融合模型,主要是根據(jù)應(yīng)用最大熵原理來正則化訓(xùn)練過程,在交叉熵損失中添加一個負熵項,使用最大熵正則化與平均方差相似度函數(shù)聯(lián)合作為損失函數(shù),增加類間變異,減少類內(nèi)變異,融合機器學(xué)習(xí)的融合模型方案進一步解決了識別效率低的問題與重量級網(wǎng)絡(luò)泛化難的問題。
本文通過融合傳統(tǒng)機器學(xué)習(xí)算法,解決傳統(tǒng)機器學(xué)習(xí)識別效果差與深度網(wǎng)絡(luò)泛化能力、速度慢的問題。主要算法步驟如下:
(1)數(shù)據(jù)的采集與輸入。針對票據(jù)合同中的手寫體漢字樣本進行采集,并將采集的圖片匯集成數(shù)據(jù)集。
(2)數(shù)據(jù)加工與圖像增強過程。針對每個漢字進行單獨標注,并將采集的圖片進行圖像增強處理,由于票據(jù)合同中某些常用漢字出現(xiàn)頻率多,用詞要對數(shù)據(jù)集進行數(shù)據(jù)擴增,防止擬合模型時發(fā)生過擬合。
(3)改進YOLO‐9000 模型。YOLO‐9000 是指可以對9000 類物體進行識別。在常見的票據(jù)合同中,每一個漢字均可以認為是一個物體,而票據(jù)合同中的常用的漢字約為500‐1000 個,因此改進YOLO‐9000 模型可以將分類減少到1000 類。
(4)DBN 模型訓(xùn)練。DBN 模型是由一系列疊加的玻爾茲曼機(RBM)和頂層的反向傳播網(wǎng)絡(luò)(BP)組成,在有標簽樣本的訓(xùn)練模型階段,細分類會調(diào)整BP 網(wǎng)絡(luò)的權(quán)值,將實際輸出與預(yù)期數(shù)據(jù)的誤差逐層反向傳播。通過RBM 層進行無監(jiān)督的機器學(xué)習(xí)訓(xùn)練,將下層RBM 作為上一層的輸出。再對輸出結(jié)果使用BP 神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,將實際輸出與預(yù)期輸出的誤差逐層反向傳播,調(diào)增網(wǎng)絡(luò)的權(quán)重,最終得到DBN 模型。
(5)模型融合,步驟4 與步驟5 的兩個模型都可以手寫體漢字識別,并應(yīng)用各自的網(wǎng)絡(luò)進行特征提取。由于YOLO 和DBN 模型建模本質(zhì)有區(qū)別,其提取特征的手段各有優(yōu)勢,融合的YOLO 和DBN 的融合模型,在效果上會超過單一模型的識別能力。
(6)結(jié)果輸出。通過步驟五模型融合的結(jié)構(gòu),對于一個新輸入的樣本x,將x 所屬分類的最大概率值進行輸出,并進行結(jié)果的可視化展示。
1.2.1 漢字識別流程圖
票據(jù)合同中手寫體漢字的識別系統(tǒng)主要由數(shù)據(jù)采集、數(shù)據(jù)清洗、模型融合、輸出結(jié)果四部分組成。其中數(shù)據(jù)采集與數(shù)據(jù)清洗分別負責(zé)原始手寫體漢字的樣本采集與標注。最終通過結(jié)果輸出部分,針對一個新輸入的樣本,輸出它預(yù)測最大概率所屬的分類。如圖1 所示。
圖1:票據(jù)合同的手寫體漢字識別系統(tǒng)流程圖
1.2.2 改進YOLO‐9000 結(jié)構(gòu)
YOLO‐9000 使用最大熵正則化項加平均方差相似度函數(shù)作為損失函數(shù),增加類間變異,減少類內(nèi)變異,如圖2 所示。一般來說,手寫漢字識別中預(yù)測的類內(nèi)方差同樣很大,即熵很大,我們將輸出的熵進行正則化,使模型更加一般化,減輕過擬合,表達式如下,
圖2:改進的YOLO-9000 結(jié)構(gòu)
熵是一個熱向量時達到最小值,在p 是均勻分布時達到最大值。前者是通過普通的交叉熵損失自動實現(xiàn)的,而后者則有望促進正則化。因此,我們將負熵作為最大熵正則化項,它直接作用于一般的交叉熵損失函數(shù)上,
其中λ 是決定MER 影響的超參數(shù)。從直觀上看,MER降低了交叉熵損失造成的極端置信值??紤]正則化損失對輸出分數(shù)的導(dǎo)數(shù),它與模型直接相關(guān),對概率分布的導(dǎo)數(shù)為:
其中梯度并不總是正的或負的,所以在更多分布的分數(shù)下,概率不會下降到0 或增加到1。至此就完成了損失函數(shù)的構(gòu)建。
改進模型共又15 層卷積層,通過減少瓶頸結(jié)構(gòu)的卷積的構(gòu)造,刪除了兩層1×1 卷積及瓶頸卷積,原本的檢測頭從9 個卷積層減少到6 個,同時在每個最大池化層后接入dropout 層,以防止過擬合,使得體量更加輕便適合票據(jù)合同中手寫體漢字識別的需求。在損失函數(shù)的選擇上,本文對以往的YOLO 模型改造,使用交叉熵損失函數(shù)加平均差相似度函數(shù)作為損失函數(shù),這種做法可以增加類間變異,減少類內(nèi)變異,從而獲得更好的分類性能。
1.2.3 改進的YOLO9000 與DBN 模型構(gòu)成的融合模型
(1)改進的YOLO9000 模型。如圖3 所示,本文給出了DBN 模型的構(gòu)成。DBN 是一個具有層次特征的概率生成模型,通過訓(xùn)練神經(jīng)元之間的權(quán)重。本文中的DBN 模型是由一系列的受限玻爾茲曼機(RBM)和頂層的反向傳播網(wǎng)絡(luò)(BP)組成。RBM 層共有三層,由可視層輸入數(shù)據(jù),隱藏層做特征檢測,兩層之間全連接。通過RBM 層進行無監(jiān)督的機器學(xué)習(xí)訓(xùn)練,將下層RBM 作為上一層的輸出。再對輸出結(jié)果使用BP 神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,將實際輸出與預(yù)期輸出的誤差逐層反向傳播,調(diào)增網(wǎng)絡(luò)的權(quán)重,最終得到適用手寫體識別的三層DBN 模型。
圖3:DBN 模型結(jié)構(gòu)
(2)融合模型。如圖4 所示,將改進的YOLO9000 與DBN 模型構(gòu)成的融合模型,首先單獨訓(xùn)練YOLO 模型和DBN 模型,并得到訓(xùn)練好的識別模型;然后在樣本集上統(tǒng)計兩個模型對不同字符的識別能力,通過下式定義pi為模型對第i 個字的識別能力;ci表示第i 種漢字被識別正確的此申訴,ni代表第i 種漢字在樣本集中出現(xiàn)的總次數(shù)。N 為漢字種類總數(shù)。
圖4:改進的YOLO-9000 和DBN 的融合模型
YOLO 對N 種字符的識別能力向量表示如下:
同樣的DBN 模型對N 種字符的識別能力向量表示如下:
其中涉及的融合模型算法的主要步驟如下:
將YOLO 模型的識別分數(shù)與模型的能力向量進行點乘的結(jié)果作為模型最后的識別得分:
首先來說說我自己,我是一個生來性格內(nèi)向的人,我認為這和從小的家庭教育、家庭環(huán)境以及接觸的人、事物都有著很大的關(guān)系,所以我很害怕與人溝通,不愿意多說話,寧愿自己多干點就是不愿張嘴去與人溝通。其次我還是一個害怕產(chǎn)生人際沖突的人,就是俗話中的老好人,當別人的意見與我相悖時,我總是因為害怕發(fā)生人際沖突造成同事間的關(guān)系緊張,所以總是無條件的按照其他人的意見進行事情的處理。
將DBN 模型的識別分數(shù)與模型的能力向量進行點乘的結(jié)果作為模型最后的識別得分:
(3)將YOLO 模型得分的分量從大到小排序,選取最的大兩個分量并記錄,
(4)將DBN 模型得分的分量從大到小排序,選取最的大兩個分量并記錄,
(5)融合YOLO 和DBN 兩模型的結(jié)果,輸出最后分類識別結(jié)果class,采用線性可信度累積(LCA),引入α,β作為加權(quán)因子,融合兩模型的識別得分,其中α,β 的相加和等于1,通過調(diào)節(jié)α,β 的值權(quán)衡兩個模型之間的比重,識別得分的計算公式如下,
最后得到O 中概率最大的分量,記為class 并輸出:
為了讓網(wǎng)絡(luò)模型快速、簡單、易懂地進行分類判別,對選擇的手寫漢字庫批量構(gòu)造了對應(yīng)標簽;為了讓待識別圖片與數(shù)據(jù)集圖片具有一致性,再對選擇的手寫漢字庫實行批量預(yù)處理。采用中科院自動化模式識別國家實驗室2010 年05月發(fā)布的 HCL200 脫機手寫漢字數(shù)據(jù)集,此數(shù)據(jù)集是現(xiàn)今最大的手寫漢字圖片庫,它包含國家規(guī)定的GB2312‐80 里日常生活中使用的3755 個漢字。
文中的卷積神經(jīng)網(wǎng)絡(luò)具有15 層卷積層,通過改進卷積層,減少瓶頸結(jié)構(gòu)的卷積的構(gòu)造減輕了網(wǎng)絡(luò)的量級,刪除了兩層1×1 卷積,原本的檢測頭從9 個卷積層減少到6 個,每個最大池層之后都應(yīng)用dropout 層以防止過擬合。
對比現(xiàn)有識別手寫體漢字使用傳統(tǒng)的機器學(xué)習(xí)模型的做法,改進的YOLO‐9000 通過改進損失函數(shù),重構(gòu)主干網(wǎng)絡(luò)的做法融合DBN 模型,使得模型在保證識別時長的情況下,提升了識別率。對比深度學(xué)習(xí)模型,融合模型通過調(diào)節(jié)加權(quán)因子,使得識別率強于單一模型,模型泛化性能比單一的深度學(xué)習(xí)模型好防止過擬合。由于對YOLO‐9000 主干網(wǎng)絡(luò)的卷積層修改,使得運算識別速度強于一般深度學(xué)習(xí)模型識別手寫體漢字。
表1:本文改進的YOLO 和DBN 的融合模型與傳統(tǒng)的識別算法對比分析結(jié)果
本文主要針對票據(jù)合同中的手寫體漢字識別問題。
(1)本文定義了基于機器學(xué)習(xí)算法的手寫體文字識別的系統(tǒng),其特征在于識別系統(tǒng)包括數(shù)據(jù)采集、數(shù)據(jù)加工、融合模型建模及結(jié)果輸出部分。
(2)與傳統(tǒng)機器學(xué)習(xí)算法相比,本文提出的融合模型在程序上識別效果更好,泛化能力更強,其特征在于使用了融合模型,結(jié)合兩種不同的神經(jīng)網(wǎng)絡(luò)通過引入加權(quán)因子融合兩模型分類能力,得到最終分類結(jié)果。
(3)與復(fù)雜深度學(xué)習(xí)網(wǎng)絡(luò)相比,本文具有識別速度更快、對算力要求低,減少識別時長的優(yōu)勢,其特征在于通過改進的YOLO‐9000 來完成網(wǎng)絡(luò)的構(gòu)建,在保證準確率高的情況下相比VGGNet、AlexNet 等模型識別速度更快,且適合手寫體漢字的識別。
(4)本文的改進的YOLO‐9000 算法,通過改進損失函數(shù)和調(diào)整卷積層,使得CNN 模型更加適應(yīng)手寫體漢字識別分類。