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