何梓源,張仰森,向 尕,成琪昊
(北京信息科技大學 智能信息處理研究所,北京 100192)
目前,對于審計流程數(shù)字化的研究還處于初級階段。有許多的國內外學者對多源、異構、異質的審計信息進行研究[1,2]。Rezae等[3]提出使用數(shù)據(jù)倉庫技術,將數(shù)據(jù)格式進行統(tǒng)一,以應對頻度要求更高的審計工作。審計過程的數(shù)字化階段主要需要用到OCR光學字符識別技術[4-7]。王興等[8]對OCR用于票據(jù)識別的算法進行研究,通過關鍵字匹配與字符大小匹配相結合的算法,可以在自然場景下對火車票據(jù)有很好的識別效果。正如王興的研究所述,OCR識別可將數(shù)據(jù)結構化展示,并利用數(shù)據(jù)分析工具檢索出有價值的信息[9-13]。
本文通過研究審計憑證數(shù)字化及文本分類技術,構建了OAT(optical character recognition attention for text)審計數(shù)字化架構,極大提升了文檔關鍵信息檢索效率。在數(shù)據(jù)獲取階段,首先通過相關審計部門獲得部分高質量審計憑證文檔,用于OCR識別準確率的測試及OCA(optical character with attention)模型調優(yōu),然后通過爬蟲技術獲取網上的審計文本,并構建審計聯(lián)合知識庫。在OCR識別階段,構建OCA多階段光學字符識別模型,對審計憑證紙質文本進行數(shù)字化轉換,并利用模型蒸餾技術,提升OCA模型的處理速度。在文本過濾階段,利用ACPmarked(attention convolution polling marked)架構提取與審計任務相關的語句,形成數(shù)字化的高質量審計文本。實驗結果表明,基于OAT的審計憑證數(shù)字化架構可以極大提升文檔關鍵信息的檢索效率,驗證了本文提出的OCA模型與ACPmarked架構綜合應用的有效性。
目前OCR的應用場景主要分為,自然場景文本檢測與識別、手寫體文本檢測與識別、文檔文本檢測與識別,審計憑證屬于文檔文本檢測與識別。文檔文本的處理方法分為單階段與多階段處理。傳統(tǒng)的單階段文本識別,準確率不高,存在丟失文本內容的現(xiàn)象。傳統(tǒng)的多階段文本識別精準度較好,但檢測時間過長,對于篇幅較長的審計文本識別效果不佳。本文在傳統(tǒng)多階段文本識別模型的基礎上,引入圖像增強算法及注意力機制,提升模型的準確率,并通過模型蒸餾技術優(yōu)化模型參數(shù),降低檢測時長。
紙質文本數(shù)字化的首要任務,是在復雜的場景中定位文字的位置,即文字檢測。CTPN[14](connectionist text proposal network)算法通過改進的vertical anchor方法,只預測文本豎直方向上的位置,將方格的寬度固定,不對水平方向進行預測。其中方格水平長度為16像素??v向長度為11像素至283像素,將此區(qū)間每次除以0.7得到10個anchor,具體數(shù)值為:11,16,23,33,48,68,97,139,198,283。隨后利用循環(huán)網絡對檢測的小尺度文本進行連接,得到文本行。檢測效果如圖1所示。
圖1 CTPN文字檢測
其中,卷積神經網絡使用VGG[15]提取圖像特征;循環(huán)神經網絡使用雙向長短期記憶網絡對特征進行拼接;最終利用全連接神經網絡以及RPN網絡得到CTPN文字檢測結果。
通過1.1節(jié)所描述的CTPN文字檢測算法,可以定位圖像中文字的具體位置,隨后利用CRNN(convolutional recurrent neural network)算法對文字進行識別。CRNN模型主要分為3部分:卷積神經網絡層、循環(huán)神經網絡層、轉錄層。卷積神經網絡層,通過CNN(convolutional neural network)網絡提取圖像特征;循環(huán)神經網絡層,利用雙向長短期記憶網絡提取文本的序列化特征;轉錄層引入CTC[16](connectionist temporal classification)Loss計算方法,對識別內容進行無需對齊的損失值計算;最終經過softmax層得到字符輸出。
1.3.1 引入注意力機制
注意力機制最早廣泛用于計算機視覺領域,傳統(tǒng)無注意力機制的Encoder-Decoder框架將隱含信息統(tǒng)一處理,因此會丟失關鍵信息,使得模型整體水平下降。不同于無注意力機制的模型,帶有注意力機制的模型將輸入語句中的每個單詞,都依據(jù)其語義信息,獲得不同的注意力概率分配。
本文利用Soft Attention機制,構建Context Vector環(huán)境向量,并將其嵌入到模型中與模型共同訓練,其原理公式如式(1)、式(2)所示
(1)
(2)
其中,Q為查詢向量,K與V通常為序列本身。在進行注意力運算時,首先通過向量Q與每個向量K進行相似度計算,并通過SoftMax函數(shù)對結果進行歸一化操作,隨后使用得到的權重和對應的向量V進行加權求和,獲得最終的Attention注意力值。
1.3.2 知識蒸餾
知識蒸餾通常用于模型壓縮,提升模型運算效率,其流程如圖2所示。
圖2 知識蒸餾模型
此方法將參數(shù)龐大的模型知識,轉移到參數(shù)量較小的模型上,極大提升了模型運算效率。因此,針對多階段OCR模型運算時間過長的問題,本文利用知識蒸餾技術,在保證準確率的同時提升模型整體效率。知識蒸餾可考慮成一個廣義的Softmax函數(shù),如式(3)所示。交叉熵損失公式如式(4)所示
(3)
(4)
其中,T為調節(jié)參數(shù),當T無限趨近于0時,結果接近于one-hot向量。當T趨近于無窮時,模型可學習更多的可能性。zj為新模型產生的logits,qi是真實概率,pi為預測概率。
1.3.3 OCA多階段光學字符識別模型
為了在保證模型準確度的基礎上解決模型運算效率問題,本文構建了OCA多階段光學字符識別模型,模型流程如圖3所示。
圖3 OCA模型流程
圖像增強階段主要分為3個步驟:①圖像矯正;②凸顯文字特征;③文字銳化。在圖像矯正階段,首先對圖像進行二值化處理,將文字部分轉換成白色,圖像背景轉換為黑色。其次計算包含全部文字在內的最小旋轉文本邊框,此邊框的旋轉角度與文本的旋轉角度相一致。最終調整圖像角度對其進行仿射變換。過程如圖4所示。
圖4 審計文本圖像矯正
在文字特征凸顯階段,首先對圖像進行對比度增強,隨后利用直方圖正規(guī)化技術對圖片進行細節(jié)效果處理,直方圖正規(guī)化公式為式(5)、式(6)
(5)
(6)
直方圖正規(guī)化是一種線性變換方式。輸入圖像為I,I(r,c) 表示I的第r行第c列的灰度值,將I中出現(xiàn)的最小灰度級記為Imin, 最大灰度級記為Imax。 在文字銳化階段,通過對圖像中文字的銳化操作,有利于提升模型最終的識別準確率,實驗見3.3小節(jié),最終獲得的圖像如圖5所示。
圖5 圖像增強階段效果對比
在文字檢測與文字識別階段,利用Soft Attention機制,構建Context Vector環(huán)境向量,并將其嵌入到模型中共同訓練。使得模型當前輸出的單詞得到不同的注意力概率分配,有助于提升模型識別準確率。
文字檢測知識蒸餾階段,Teacher模型在卷積層并行使用VGG16與ResNet50網絡結構,并將兩者的運算結果進行拼接。在循環(huán)網絡層,使用基于注意力機制的雙向長短期記憶網絡,對序列化特征進行提取。最后,通過全連接層與RPN網絡得到運算結果,并將其進行知識蒸餾得到軟知識。Student模型使用VGG16網絡并增加了dropout機制。在循環(huán)網絡層,使用基于注意力機制的雙向長短期記憶網絡,并通過單個全連接層與RPN網絡得到運算結果。在設計損失函數(shù)時,Student模型同時學習硬知識(hard tag)與軟知識(soft tag)如圖2所示。
文字識別知識蒸餾階段,Teacher模型在卷積層使用VGG16卷積神經網絡提取圖像特征。隨后利用基于注意力機制的雙向長短期記憶網絡,提取文本序列化特征。最后將向量傳入帶有CTC損失函數(shù)的轉錄層得到結果,并將結果進行知識蒸餾得到軟知識。Student模型使用3層CNN卷積單元對圖像特征進行提取。隨后將所得向量通過基于注意力機制的雙向長短期記憶神經網絡。最后利用帶有CTC損失函數(shù)的轉錄層得到向量結果。在設計損失函數(shù)時,Student模型同時學習硬知識(hard tag)與軟知識(soft tag)。
綜上所述,OCA多階段光學字符識別模型首先對輸入圖像進行圖像增強,其次利用Teacher文字檢測模型和Teacher文字識別模型,訓練Student文字檢測模型和Student文字識別模型。最后依次將圖像增強、Student文字檢測模型和Student文字識別模型進行串連,得到OCA多階段光學字符識別模型。
目前,在網絡平臺上通過爬蟲技術獲得的審計報告,存在大量與審計業(yè)務本身無關的信息,例如:公司介紹、渠道廣告等。本文利用ACPmarked多語義融合架構,對數(shù)字化后的文本進行文本分類,有效去除審計業(yè)務無關的信息。ACPmarked架構主要包括3個模塊:Transformer模塊、基于注意力的雙向長短期記憶模塊、卷積與池化模塊。首先將Transformer模塊與基于注意力的雙向長短期記憶模塊并行排布,豐富審計報告的詞向量表達,隨后通過卷積與池化模塊進一步提取文本特征。最終通過全連接層輸出預測結果。
首先,通過爬取百度百科及頭條新聞約28 G的文本作為Transformer模塊的預訓練語料,并利用word2vec模型進行訓練。隨后,引入位置編碼矩陣,得到帶有位置編碼的詞向量。然后,利用多頭自注意力機制,對傳入的文本向量進行編碼,得到詞向量表示。基于注意力的雙向長短期記憶模塊,利用wiki50維預訓練詞向量對文本進行向量化,隨后通過引入注意力機制,對雙向長短期記憶網絡的輸出結果進行注意力強化,提升模型分類準確率。卷積與池化模塊,首先將Transformer模塊與基于注意力的雙向長短期記憶模塊所輸出的結果進行拼接,隨后利用不同尺寸的卷積核提取文本間的關系。通過設置卷積核尺寸為kernel=2、kernel=3、kernel=4進而提取兩個字、3個字以及4個字之間的相互關系,提升模型識別的整體效果。ACPmarked多語義融合架構如圖6所示。
圖6 ACPmarked多語義融合架構
為了獲取真實的實驗數(shù)據(jù),本文通過相關審計部門獲得了高質量的審計文檔,并利用爬蟲技術爬取了百度文庫、百度貼吧的相關審計工作報告。為模擬傳統(tǒng)審計流程,本文對審計文檔及工作報告進行打印,并利用掃描儀對紙質版審計文件進行掃描,構建圖像數(shù)據(jù)資源庫。利用OCA模型對圖像數(shù)據(jù)資源庫中的數(shù)據(jù)進行識別,得到數(shù)字化可編輯的審計工作報告。利用ACPmarked架構對審計工作報告進行文本分類,去除文本中與審計無關的內容。
傳統(tǒng)審計流程是依靠工作人員手工作業(yè)的辦法,對紙質文件進行審計。本文利用掃描儀,對待審計文本進行掃描,獲得圖像。在掃描紙質文件時,不可避免的會出現(xiàn):①曝光過度;②圖像模糊;③圖像旋轉角過大等問題。如圖7所示。
圖7 掃描過程中的問題圖像
其中,曝光過度與圖像模糊會極大影響后續(xù)模型識別的效果,需要對圖像重新進行掃描。圖像旋轉角過大等問題不用重新掃描,可作為后序工作的圖像來源。
3.2.1 OCA圖像增強階段的方法選擇
圖像資源庫中的圖片可能會出現(xiàn)圖像旋轉角度過大、圖片文字不清晰等問題,本文針對5000張問題圖片進行實驗,并利用未引入完整圖像增強階段的OCA模型,對圖像中的文字進行檢測與識別。準確率如式(7)所示,其中,其中TP為正例預測結果也是正例的個數(shù),TN為負例預測結果也是負例的個數(shù),F(xiàn)P是正例預測結果為負例的個數(shù),F(xiàn)N是負例預測結果為正例的個數(shù),分子為所有預測正確的個數(shù),分母為所有數(shù)據(jù)的總個數(shù)。實驗結果見表1~表5
表2 OCA圖像增強階段的方法選擇-凸顯文字特征
表3 OCA圖像增強階段的方法選擇-文字銳化
表4 OCA圖像增強階段的方法選擇-傅里葉變換
表5 OCA圖像增強階段的方法選擇-拉普拉斯算子
(7)
綜上所述,本文在圖像增強階段使用:①圖像矯正;②凸顯文字特征;③文字銳化,其中圖像矯正階段本文使用圖像二值化、計算最小旋轉文本邊框、仿射變換等操作處理圖像數(shù)據(jù)。在凸顯文字特征階段對圖像進行對比度增強及直方圖正規(guī)化處理。在文字銳化階段使用銳化算法對圖像進行銳化操作。最終結果見表6。
表6 OCA圖像增強識別結果
上述結果表明,利用OCA圖像增強技術在審計文本的圖像增強方面取得了很好的結果,并為后續(xù)OCA模型識別做出明顯貢獻。因此本模型使用OCA圖像增強技術對待檢測圖像進行處理。
3.2.2 OCA知識蒸餾參數(shù)選擇
本文通過知識蒸餾的方法,可以在保證模型準確率的情況下,提升模型的運算效率。針對原文本與識別文本間的區(qū)別,通過平均精確率P、平均召回率R與平均F1值(分別如式(8)~式(10)所示)對OCA多階段光學字符識別模型運算結果進行計算
(8)
(9)
(10)
其中,xi表示人工標注標簽個數(shù),yi表示算法獲取的標簽個數(shù),N為審計文本總數(shù)。分別使用不同的溫度T對模型知識進行蒸餾實驗結果見表7。
通過表7可知在溫度T=8時,學生模型平均準確率最高。通過閱讀相關論文中的調參技巧,對學生模型的全連接層引入rulu激活函數(shù)。調節(jié)參數(shù)T與激活函數(shù)所對應的實驗結果見表8,實驗過程準確率變化圖如圖8所示。
表8 調節(jié)參數(shù)T與激活函數(shù)所對應的實驗結果
圖8 測試數(shù)據(jù)集準確率
結合表8與圖8所示,本課題最終選用知識蒸餾溫度T為8,并且對全連接層使用relu激活函數(shù)。
在圖像數(shù)據(jù)資源庫中,隨機選擇20 000張人工掃描的審計工作報告,利用PaddleOCR、tesseract、EasyOCR作為對比模型進行實驗,實驗結果見表9。
表9 圖像識別平均F1值計算結果
數(shù)據(jù)表明,OCA-student模型相比于其它模型在綜合處理效率上取得了最好的成績。此結果的根本原因在于,人工掃描的審計工作報告并非完全水平,其存在人工掃描中不可避免的旋轉角度。以PaddleOCR為例,其識別水平文本的效果很好,但對于人工掃描的審計工作報告則得不到很好的結果,模型結果可視化對比如圖9所示。因此定義OCA-student模型為最終OCA多階段光學字符識別模型。
圖9 模型結果可視化對比
ACPmarked架構主要由Transformer模塊、基于注意力的雙向長短期記憶模塊、卷積與池化模塊所構成。其目的在于,對數(shù)字化后的審計文本,提取文件中與審計任務相關的語義信息。通過總結廣告宣傳語和公司介紹所涉及的關鍵詞,本文進一步構建了基于審計工作報告的停用詞詞典。最終,基于ACPmarked架構與停用詞詞典的共同處理,形成數(shù)字化的高質量審計文本。由于審計工作的時效性要求,需要在短時間內給出審計結果。因此,本文所涉及的審計憑證數(shù)字化流程十分注重模型的效率。這里引入時效比公式,用于衡量模型準確率與其所需時間的效率比,公式如式(11)所示。其中TP為時效比,t為cup計算每條數(shù)據(jù)的平均時間。本文利用Bag-of-word、LSTM、Attention based Bi-LSTM、BERT-Attention作為對比模型進行實驗,結果見表10
表10 文本分類平均F1值計算結果
(11)
由表10可以看出ACPmarked模型在平均F1值上遠超于Bag-of-word、LSTM、Attention based Bi-LSTM模型。在時效比上遠超BERT-Attention模型,且cup計算每條數(shù)據(jù)的平均時間約比BERT-Attention模型減少了一倍。因此,利用ACPmarked多語義融合架構對數(shù)字化后的審計文本進行處理。
本文將傳統(tǒng)審計流程與信息化技術相融合,提出了基于OAT的審計憑證數(shù)字化架構,以實現(xiàn)審計憑證的數(shù)字化。OAT架構主要由OCA多階段光學字符識別模型與ACPmarked多語義融合架構所組成。不同于傳統(tǒng)的OCR識別方法,OCA多階段光學字符識別技術融合圖像增強技術與注意力機制,并利用知識蒸餾技術,在保證準確率的基礎上,提升模型處理速度。隨后利用ACPmarked架構提取與審計任務相關的句子,形成數(shù)字化的高質量審計文本。OAT架構可以有效實現(xiàn)審計憑證的數(shù)字化,減輕審計專業(yè)人員的勞動強度,對提高審計效率和質量具有重要意義。