杜訓(xùn)祥
中電鴻信信息科技有限公司
OCR(Optical Character Recognition)是指對文本資料的圖像文件進(jìn)行分析識別處理,獲取文字及版面信息的過程。即將圖像中的文字進(jìn)行識別,并以文本的形式返回。
OCR 技術(shù)可應(yīng)用于財務(wù)票據(jù)、證件、文字資料、檔案卷宗、文案等的錄入和處理領(lǐng)域。在財務(wù)領(lǐng)域,將OCR 識別技術(shù)運用在財務(wù)系統(tǒng)中,通過OCR 技術(shù)自動提取票據(jù)要素,如金額、賬號、日期、證件號等,可代替手工完成票據(jù)信息的錄入;將通過OCR 技術(shù)識別的票據(jù)金額與系統(tǒng)中的金額進(jìn)行比對,從而可替代操作人員完成財務(wù)稽核工作,使專職人員從枯燥的重復(fù)勞動中釋放出來,投入到更高價值的工作中。借助OCR技術(shù),自動提取票據(jù)影像數(shù)據(jù),進(jìn)而推動財務(wù)系統(tǒng)智慧化、自動化轉(zhuǎn)型,從系統(tǒng)優(yōu)化的角度來看,可有效減少人工核算工作量、減少工作差錯、為系統(tǒng)的數(shù)據(jù)安全保駕護航;從企業(yè)發(fā)展的角度來看,可激發(fā)員工的創(chuàng)造性、增強企業(yè)發(fā)展能力。
但由于OCR 的識別率并無法達(dá)到百分之百,一些除錯或輔助更正的功能,也成為OCR 系統(tǒng)中必要的一個模塊。
OCR 對數(shù)字、英文字符的識別效果普遍較好,然而其對中文的識別相對效果較差,這與中文字體的復(fù)雜形狀有直接關(guān)系。傳統(tǒng)的OCR 方法,針對文字噪聲少,設(shè)計高性能的特征向量,使用模版匹配、支持向量機或者淺層神經(jīng)網(wǎng)絡(luò)等得到很高的識別準(zhǔn)確度,但當(dāng)用于大量噪聲或者復(fù)雜的中文文字識別時,識別效果較差。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種深度學(xué)習(xí)網(wǎng)絡(luò),通過卷積運算由淺入深提取圖像不同層次的特征,利用神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程讓整個網(wǎng)絡(luò)自動調(diào)節(jié)卷積核的參數(shù),從而無監(jiān)督地產(chǎn)生最適合的分類特征,對中文這種復(fù)雜的文字,具有較好的識別效果。
CNN 即卷積神經(jīng)網(wǎng)絡(luò)擅長處理圖像分類的問題,具有參數(shù)較少以及平移不變性的優(yōu)點。VGGNet 是CNN 的一種,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示
圖1 VGGNet 各級網(wǎng)絡(luò)結(jié)構(gòu)
在池化核的選擇方面,VGGNet 全部采用2x2 的池化核,池化層用于降維,使得VGGNet 網(wǎng)絡(luò)模型在架構(gòu)上更深更寬的同時,控制了計算量的增加規(guī)模。
VGGNet 共包含A、A-LRN、B、C、D、E 六種網(wǎng)絡(luò)結(jié)構(gòu),因為VGG16 全程使用3x3 卷積核與2x2 池化核,其網(wǎng)絡(luò)結(jié)構(gòu)統(tǒng)一、簡潔優(yōu)美,所以本文在模型選擇上選擇VGG16網(wǎng)絡(luò)模型。如圖2 所示。
圖2 VGG16 網(wǎng)絡(luò)結(jié)構(gòu)
基于VGGNet 的圖像中文OCR 識別糾錯系統(tǒng),首先對OCR 分析業(yè)務(wù)平臺生產(chǎn)中間數(shù)據(jù)進(jìn)行預(yù)處理,然后對預(yù)處理后的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、接著基于Tensorflow 深度學(xué)習(xí)框架,訓(xùn)練VGG 網(wǎng)絡(luò)模型,最后對OCR 結(jié)果進(jìn)行分析,智能糾正錯誤結(jié)果。
在數(shù)據(jù)清洗方面,本文設(shè)計了三步數(shù)據(jù)處理法,包括采用OCR 識別結(jié)果做初步過濾匯總、采用驗證碼服務(wù)進(jìn)行數(shù)據(jù)清洗和通過人工核驗方式進(jìn)行數(shù)據(jù)清洗三個環(huán)節(jié)。
在模型訓(xùn)練方面,基于Tensorflow 深度學(xué)習(xí)框架,訓(xùn)練VGG 網(wǎng)絡(luò)模型,建立字分類器、詞分類器。
在對OCR 的識別結(jié)果進(jìn)行錯誤分析時,對于不在正樣本清單中的詞語,查詢詞語映射表,若在映射表中查到該詞語則通過映射表優(yōu)化OCR 的識別結(jié)果,若其不存在詞語映射表中則通過字、詞分類器對OCR 的識別結(jié)果進(jìn)行優(yōu)化。
壓實膨潤土混合物自由膨脹-收縮、限制膨脹-收縮過程的特征點見表4和表5。其中, 收縮量是指膨脹穩(wěn)定與收縮穩(wěn)定之間體積的變化率差值。
系統(tǒng)運行以數(shù)據(jù)采集開始,經(jīng)過數(shù)據(jù)預(yù)處理、數(shù)據(jù)清洗、模型訓(xùn)練等過程,最終輸出模型,以來優(yōu)化OCR 識別結(jié)果。系統(tǒng)主要提供預(yù)處理、數(shù)據(jù)清洗、模型訓(xùn)練和OCR 識別結(jié)果優(yōu)化四個功能。
基于OCR 分析業(yè)務(wù)平臺生產(chǎn)中間數(shù)據(jù),對圖像中識別的字、詞進(jìn)行積累,并建立字圖像庫、詞語圖像庫。具體步驟如下
首先在OCR 識別引擎模塊中,對要識別的字的局部圖像進(jìn)行保存,并以時間+識別結(jié)果的方式進(jìn)行命名,從而建立字圖像庫;在OCR 字段定位模塊中,對要識別的字段的詞圖像進(jìn)行保存,并以時間+識別結(jié)果的方式進(jìn)行命名,從而建立詞圖像庫。接著開發(fā)“字詞圖像庫匯總工具”,建立字典數(shù)據(jù)庫,開發(fā)匯總服務(wù)、字典與本地庫同步功能。最后開啟字、詞匯總服務(wù),將識別結(jié)果相同的圖匯總在同一文件夾中,如果本地庫數(shù)據(jù)有所變化,點擊同步按鈕實現(xiàn)字典與本地庫同步。
使用三步數(shù)據(jù)處理法,對字、詞庫進(jìn)行數(shù)據(jù)清洗,清除錯誤的數(shù)據(jù),合并相同類別的數(shù)據(jù)。
第一步數(shù)據(jù)清洗,是針對預(yù)處理后的數(shù)據(jù)采用OCR 識別結(jié)果做第一步過濾匯總?;诂F(xiàn)有數(shù)據(jù)量,使用字典數(shù)據(jù)庫,查詢樣本數(shù)據(jù)量>N 的類別,做相應(yīng)篩選或者增加,建立正樣本類別清單,確定全部的正樣本類別、建立負(fù)樣本文件夾。
第二步數(shù)據(jù)清洗,是基于圖像驗證碼服務(wù)做初步數(shù)據(jù)清洗,清除正樣本中的錯誤數(shù)據(jù)。首先建立圖像驗證碼服務(wù)器,服務(wù)器接受請求后輸出驗證碼圖像,并等待接受用戶的驗證值。設(shè)定清洗時間周期,如將時間周期設(shè)置為月,則每個月根據(jù)驗證數(shù)據(jù)表或者本地日志文件,來初步清洗數(shù)據(jù)。
第三步數(shù)據(jù)清洗,是通過人工核驗,完成最終的數(shù)據(jù)清洗。清洗文件夾,將不屬于正樣本類別的數(shù)據(jù),移到負(fù)樣本文件夾;把不屬于該類別的正樣本數(shù)據(jù),移到相應(yīng)類別對應(yīng)的正樣本文件夾,同時將字詞的OCR 識別錯位值與字詞的真實值對應(yīng),建立常錯字詞映射表。通過詞庫更新程序,使本地圖像庫與字典數(shù)據(jù)庫保持一致,將類型名從0 開始標(biāo)注,生成標(biāo)簽文件。如圖3 所示。
圖3 三步數(shù)據(jù)處理法示意圖
基于Tensorflow 深度學(xué)習(xí)框架,訓(xùn)練VGGNet 網(wǎng)絡(luò)模型,建立字分類器和詞分類器。
對OCR 的識別結(jié)果進(jìn)行錯誤分析,在正樣本清單中查詢該識別結(jié)果字符串,如果在正樣本清單中可查詢到該結(jié)果字符串,則直接輸出此結(jié)果;若在正樣本清單中查詢不到該結(jié)果字符串,則通過查詢映射表的方式進(jìn)行結(jié)果優(yōu)化,若映射表中存在該字符串則通過映射表中對應(yīng)的字符串替換該結(jié)果;若映射表中不存在該字符串,則使用字、詞分類器對結(jié)果進(jìn)行分類,將分類預(yù)測值和分類器設(shè)定的閾值進(jìn)行比較,當(dāng)預(yù)測值大于或者等于分類閾值時,使用分類結(jié)果替換原始結(jié)果,否則不做處理。如圖4 所示。
圖4 OCR 識別結(jié)果智能優(yōu)化流程圖
拿增值稅發(fā)票識別結(jié)果舉例,OCR 分析業(yè)務(wù)系統(tǒng)在改進(jìn)前,由于受到票據(jù)質(zhì)量影響,項目名稱和購買方服務(wù)名稱等容易出現(xiàn)識別出錯情況,而其中哪怕一個文字識別出錯,都將導(dǎo)致整個識別結(jié)果不可用。系統(tǒng)運行后,OCR 分析業(yè)務(wù)系統(tǒng)對中文詞語識別準(zhǔn)確度,在原來的基礎(chǔ)上提高了10 個百分點,大部分識別錯誤的結(jié)果被糾正。對錯誤情況進(jìn)行智能糾正,保證了OCR 識別結(jié)果的有效性,提升了數(shù)據(jù)的可用性,為后續(xù)的票據(jù)智能稽核打下堅實的數(shù)據(jù)基礎(chǔ)。
財務(wù)部門每天有大量的票據(jù)影像,多崗位員工需對同一張票據(jù)重復(fù)稽核,不僅耗費人力,且降低了報賬效率。通過圖像OCR 技術(shù)實現(xiàn)票面信息的提取,將提取的票面信息與報賬信息進(jìn)行對比,可實現(xiàn)財務(wù)稽核工作的自動化。
此外,OCR 技術(shù)可應(yīng)用于證件、文字資料、檔案卷宗、文案等的錄入和處理領(lǐng)域,如進(jìn)行證件OCR,實現(xiàn)對身份證、駕駛證、名片等的關(guān)鍵信息的識別和提取。
本文在傳統(tǒng)中文OCR 識別的基礎(chǔ)上,結(jié)合深度學(xué)習(xí)方法來提高中文識別的準(zhǔn)確度,所研究方法充分發(fā)揮了中文OCR 識別引擎的速度優(yōu)勢與深度學(xué)習(xí)分類器的高準(zhǔn)確度優(yōu)勢,使得中文OCR 的準(zhǔn)確度在原來的基礎(chǔ)上提高了10 個百分點。
深度學(xué)習(xí)分類器,對數(shù)據(jù)要求很高,因此數(shù)據(jù)處理工作至關(guān)重要。對于字詞數(shù)據(jù)來說,其總體數(shù)據(jù)量可以達(dá)到上億級別,本文在數(shù)據(jù)處理方面設(shè)計了三步數(shù)據(jù)處理法,首先采用OCR 識別結(jié)果做第一步過濾匯總,然后采用驗證碼服務(wù)進(jìn)行第二步清洗數(shù)據(jù),最后通過人工核驗完成數(shù)據(jù)清洗,本文設(shè)計的三步數(shù)據(jù)處理法使數(shù)據(jù)清洗工作量減少了50%,降低了數(shù)據(jù)清洗的成本。