本發(fā)明涉及一種財(cái)務(wù)報(bào)銷全票據(jù)智能審核系統(tǒng),適用于公司人員的報(bào)銷紙介發(fā)票的電子轉(zhuǎn)換、發(fā)票內(nèi)控驗(yàn)證、報(bào)銷發(fā)票管理。
背景技術(shù):
企業(yè)中的財(cái)務(wù)票據(jù)是會(huì)計(jì)信息的主要的來源,也是會(huì)計(jì)對(duì)企業(yè)財(cái)務(wù)賬目進(jìn)行管理的基礎(chǔ)。同時(shí),也是國家有關(guān)部門管理、監(jiān)督檢查企業(yè)資金運(yùn)作的有效方式和重要依據(jù)。因此企業(yè)的財(cái)務(wù)票據(jù)管理已成為會(huì)計(jì)管理中的一種重要規(guī)范。在市場經(jīng)濟(jì)快速發(fā)展和市場經(jīng)濟(jì)體制逐步完善的今天,企業(yè)的資金來源呈現(xiàn)出多元化。票據(jù)管理作為資金管理的重要環(huán)節(jié),在財(cái)務(wù)管理中起著舉足輕重的作用,是能否使企業(yè)內(nèi)部監(jiān)管得到強(qiáng)化,財(cái)務(wù)制度得到健全的重要保障。隨著各行業(yè)企事業(yè)單位都在爭相建立財(cái)務(wù)數(shù)據(jù)共享中心,以期望通過財(cái)務(wù)數(shù)據(jù)共享完善企業(yè)運(yùn)營管理,加快發(fā)展步伐,企業(yè)與企業(yè)、企業(yè)與管理機(jī)構(gòu)之間,利用電子數(shù)據(jù)、票據(jù)憑證影像來傳遞貿(mào)易信息越來越頻繁,而傳統(tǒng)人工審核發(fā)票、錄入發(fā)票數(shù)據(jù)工作量大,效率低且易出錯(cuò),事后查找困難。
傳統(tǒng)數(shù)據(jù)采集是人工整理原始報(bào)銷票據(jù),然后進(jìn)行掃描影像,再到會(huì)計(jì)人工錄入,再到憑證審核,而智能數(shù)據(jù)采集方式是采用ocr(光學(xué)字符識(shí)別)掃描識(shí)別技術(shù),自動(dòng)采集發(fā)票上的會(huì)計(jì)要素,自動(dòng)對(duì)票據(jù)建立索引并歸檔,提高憑證信息查閱的一致性與準(zhǔn)確性,與傳統(tǒng)的會(huì)計(jì)人工錄入數(shù)據(jù)方案相比,ocr掃描識(shí)別方案可以減少70%的工作量。
目前,常用的ocr系統(tǒng)只能完成部分類型發(fā)票的掃描錄入,且識(shí)別準(zhǔn)確率不高,已不能滿足當(dāng)前財(cái)務(wù)報(bào)銷的需要,更無法為建設(shè)財(cái)務(wù)數(shù)據(jù)共享中心提供有效的、全面的基礎(chǔ)數(shù)據(jù)支撐。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提出了一種財(cái)務(wù)報(bào)銷全票據(jù)智能審核系統(tǒng),不同類型的發(fā)票可統(tǒng)一掃描錄入財(cái)務(wù)報(bào)銷智能審核系統(tǒng),實(shí)現(xiàn)了單位報(bào)銷發(fā)票的電子化集中管理;財(cái)務(wù)工作人員可通過定制化的內(nèi)控規(guī)則驗(yàn)證報(bào)銷發(fā)票信息是否符合內(nèi)控標(biāo)準(zhǔn);提升了財(cái)務(wù)部門處理財(cái)務(wù)報(bào)銷工作效率和準(zhǔn)確性。
本發(fā)明的技術(shù)解決方案是:
一種財(cái)務(wù)報(bào)銷全票據(jù)智能審核系統(tǒng),全票據(jù)智能審核系統(tǒng)包括ocr模塊,通過該ocr模塊對(duì)掃描為圖像的各種類型發(fā)票進(jìn)行識(shí)別和處理。
全票據(jù)智能審核系統(tǒng)還包括掃描儀接口模塊、發(fā)票驗(yàn)證模塊、文件上傳處理模塊、外圍財(cái)務(wù)系統(tǒng)接口模塊、條碼打印控制模塊以及以太網(wǎng)接口模塊;
掃描儀接口模塊實(shí)現(xiàn)驅(qū)動(dòng)掃描儀并將掃描儀掃描的發(fā)票圖片發(fā)送給ocr模塊,ocr模塊將識(shí)別出的發(fā)票圖片上的信息提供給發(fā)票驗(yàn)證模塊,同時(shí),將能識(shí)別和不能識(shí)別的發(fā)票圖片均直接提供給文件上傳處理模塊;
發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行內(nèi)控要求檢驗(yàn),將檢驗(yàn)之后的發(fā)票信息提供給文件上傳處理模塊,將檢驗(yàn)狀態(tài)信息提供給外圍財(cái)務(wù)系統(tǒng)接口模塊;
文件上傳處理模塊對(duì)所有發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息進(jìn)行唯一id編號(hào)和分類處理,再通過以太網(wǎng)接口模塊存儲(chǔ)到文件服務(wù)器中,同時(shí),文件上傳處理模塊將發(fā)票信息在文件服務(wù)器中的存儲(chǔ)位置信息提供給外圍財(cái)務(wù)系統(tǒng)接口模塊,外圍財(cái)務(wù)系統(tǒng)接口模塊通過以太網(wǎng)模塊與外部財(cái)務(wù)報(bào)銷系統(tǒng)進(jìn)行通信,外部財(cái)務(wù)報(bào)銷系統(tǒng)通過所述外圍財(cái)務(wù)系統(tǒng)接口模塊查找定位發(fā)票信息在文件服務(wù)器中的位置;外圍財(cái)務(wù)系統(tǒng)接口模塊將所述檢驗(yàn)狀態(tài)信息通過以太網(wǎng)接口模塊供外部財(cái)務(wù)報(bào)銷系統(tǒng)查詢;
文件上傳處理模塊還將發(fā)票驗(yàn)證模塊檢驗(yàn)通過的發(fā)票信息提供給條碼打印控制模塊,條碼打印控制模塊將所述唯一id編號(hào)轉(zhuǎn)化為條形碼,并通過以太網(wǎng)接口模塊輸出給條碼打印機(jī)進(jìn)行打印。
所述文件上傳處理模塊對(duì)不能識(shí)別的發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息進(jìn)行分類處理,具體為:文件上傳處理模塊將不能識(shí)別的發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息總計(jì)分為5個(gè)類別,分別是:無法識(shí)別的發(fā)票圖片、驗(yàn)證不通過的發(fā)票圖片、驗(yàn)證不通過的發(fā)票圖片上的信息、驗(yàn)證通過發(fā)票圖片、驗(yàn)證通過的發(fā)票圖片上的信息。
所述發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行內(nèi)控要求檢驗(yàn),具體為:
(4.1)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行發(fā)票連號(hào)檢查,如果沒有連號(hào)出現(xiàn),則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,進(jìn)入步驟(4.2),否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證;
(4.2)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行發(fā)票重號(hào)檢查,如果沒有重號(hào)出現(xiàn),則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,進(jìn)入步驟(4.3),否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證;
(4.3)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行單張發(fā)票金額上限檢查,如果超過單張金額上限,則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,進(jìn)入步驟(4.4),否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證;
(4.4)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行關(guān)鍵字檢查,在預(yù)設(shè)關(guān)鍵字庫中進(jìn)行比對(duì),如果沒有出現(xiàn)關(guān)鍵字庫中的字段,則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證。
所述關(guān)鍵字庫中為單位財(cái)務(wù)內(nèi)控要求指定不可報(bào)銷的內(nèi)容信息。
所述檢驗(yàn)狀態(tài)信息包括通過檢驗(yàn)和未通過檢驗(yàn)。
所述所有發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息進(jìn)行唯一id編號(hào),具體為:不能識(shí)別的發(fā)票圖片、能夠識(shí)別的發(fā)票圖片以及檢驗(yàn)之后的發(fā)票信息均進(jìn)行單獨(dú)編號(hào),其中,能夠識(shí)別的發(fā)票圖片編號(hào)以及檢驗(yàn)之后的發(fā)票信息編號(hào)一一對(duì)應(yīng)。
ocr模塊對(duì)發(fā)票圖片進(jìn)行識(shí)別和處理,具體為包括如下步驟:
(8.1)對(duì)掃描后的發(fā)票圖片進(jìn)行色彩預(yù)處理,為圖片輪廓預(yù)處理提供輸入數(shù)據(jù);
(8.2)對(duì)經(jīng)過色彩預(yù)處理的圖片進(jìn)行輪廓檢測,排除發(fā)票紙張范圍外的像素干擾;
(8.3)對(duì)經(jīng)過輪廓檢測的圖片進(jìn)行文字預(yù)處理,識(shí)別發(fā)票上的字符,形成字符集并輸出;
(8.4)對(duì)步驟(8.3)輸出的字符集進(jìn)行圖片識(shí)別處理,將識(shí)別處理結(jié)果按發(fā)票識(shí)別的語義組織為具有語義的結(jié)果對(duì)象,作為最終識(shí)別結(jié)果。
所述步驟(8.1)對(duì)掃描后的發(fā)票圖片進(jìn)行色彩預(yù)處理,包括:
(9.1)將掃描后的發(fā)票圖片進(jìn)行rgb轉(zhuǎn)換,生成rgb顏色空間數(shù)據(jù);
(9.2)對(duì)所述rgb顏色空間數(shù)據(jù)進(jìn)行白化二值處理,即識(shí)別在rgb顏色空間數(shù)據(jù)中色調(diào)為白色的像素,并產(chǎn)生結(jié)果掩碼位圖矩陣,作為圖片輪廓預(yù)處理的輸入數(shù)據(jù)。
將掃描后的發(fā)票圖片進(jìn)行rgb轉(zhuǎn)換,使用png或jpg圖片解析算法解析原始文件,產(chǎn)生內(nèi)存位圖i(m*n),其中,m為位圖i的行數(shù),n為i的列數(shù),從而轉(zhuǎn)換為rgb顏色空間數(shù)據(jù),輸出數(shù)據(jù)為m*n的矩陣,矩陣元素為r3={0-255,0-255,0-255},表示為rgb顏色空間的三元組向量。
所述步驟(8.2)對(duì)經(jīng)過色彩預(yù)處理的圖片進(jìn)行輪廓檢測,排除發(fā)票紙張范圍外的像素干擾,具體為:
(11.1)使用canny邊緣檢測算法對(duì)結(jié)果掩碼位圖矩陣進(jìn)行輪廓檢測,即對(duì)每個(gè)多邊形計(jì)算環(huán)繞矩形,取面積最大者為環(huán)繞紙張的矩形,其矩形邊緣即為輪廓;
(11.2)根據(jù)進(jìn)行輪廓檢測后的數(shù)據(jù),對(duì)結(jié)果掩碼位圖矩陣計(jì)算其長邊和水平線的夾角,并對(duì)rgb顏色空間數(shù)據(jù)以該角度作旋轉(zhuǎn)變換,以校正紙張的偏角;
(11.3)對(duì)所述旋轉(zhuǎn)變換后的數(shù)據(jù)進(jìn)行藍(lán)化二值處理,即識(shí)別在rgb顏色空間數(shù)據(jù)中色調(diào)為藍(lán)色的像素,并產(chǎn)生前景矩陣mtext,作為文字預(yù)處理的輸入數(shù)據(jù)。
所述步驟(11.2)進(jìn)行旋轉(zhuǎn)變換具體為:對(duì)產(chǎn)生的紙張輪廓包圍矩形r取其任意三點(diǎn)p1、p2、p3,求點(diǎn)間距離d12=d(p1,p2),d23=d(p2,p3),取長邊,并求其與水平線夾角ap=|atan(x2-x1,y2-y1)|,如果ap小于5度,則變?yōu)?;將位圖矩陣i,即rgb顏色空間數(shù)據(jù)旋轉(zhuǎn)ap角度,以糾正其偏角;定義旋轉(zhuǎn)后產(chǎn)生的新位圖矩陣為i’。
所述步驟(8.3)對(duì)經(jīng)過輪廓檢測的圖片進(jìn)行文字預(yù)處理,具體為:
(13.1)對(duì)前景矩陣mtext進(jìn)行逐行掃描,確定行的個(gè)數(shù)以及每行的起始和終止位置;
(13.2)進(jìn)行行內(nèi)縱掃描以確定文字范圍,從而得到分離后的文字矩形集合;
(13.3)將分離后的文字矩形集合中的文字矩形按照從上到下,從左到右的順序排序,形成字符集并輸出。
所述步驟(13.1)對(duì)前景矩陣mtext進(jìn)行逐行掃描,確定行的個(gè)數(shù)以及每行的起始和終止位置,具體為:對(duì)掩碼矩陣mtext進(jìn)行間距為1的橫向掃描線reduction操作,根據(jù)每一行為1的像素?cái)?shù)量,得出自變量為行索引的方波曲線,將每一個(gè)方波脈沖的范圍[x0,x1]作為一行的行索引范圍,從而檢測到行的位置。
所述步驟(13.2)進(jìn)行行內(nèi)縱掃描以確定文字范圍,從而得到分離后的文字矩形集合,具體為:對(duì)每一行進(jìn)行列間距為1的縱向掃描線操作,得出列索引為自變量的曲線;將曲線范圍正規(guī)化至[0,1]區(qū)間,并將小于0.05的值設(shè)置為0,根據(jù)方波脈沖波谷的位置確定文字之間的邊界,從而得到分離后的文字矩形集合。
所述步驟(8.4)對(duì)輸出的字符集進(jìn)行圖片識(shí)別處理,將識(shí)別處理結(jié)果按發(fā)票識(shí)別的語義組織為具有語義的結(jié)果對(duì)象,具體為:
(16.1)構(gòu)建文字識(shí)別所用的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu);
(16.2)構(gòu)建訓(xùn)練模型所用的訓(xùn)練集和驗(yàn)證集,訓(xùn)練集用于更新模型的權(quán)重,驗(yàn)證集用于跟蹤訓(xùn)練效果;
(16.3)根據(jù)所述訓(xùn)練集,使用監(jiān)督學(xué)習(xí)方法對(duì)構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并使其驗(yàn)證準(zhǔn)確率達(dá)到預(yù)定標(biāo)準(zhǔn)或訓(xùn)練輪數(shù)達(dá)到預(yù)定最大輪數(shù);
(16.4)將訓(xùn)練后的模型權(quán)重進(jìn)行保存;
(16.5)選用權(quán)重最大的模型,對(duì)所述輸出的字符集進(jìn)行文字識(shí)別,得到在標(biāo)簽空間中的概率分布矩陣;
(16.6)按行循環(huán)訪問概率分布矩陣中的每一行,掃描每一行最大峰值處得到其標(biāo)簽索引,從而轉(zhuǎn)換為相應(yīng)的字符,即識(shí)別結(jié)果;
(16.7)將識(shí)別結(jié)果按發(fā)票識(shí)別的語義組織為具有語義的結(jié)果對(duì)象,作為最終識(shí)別結(jié)果。
所述步驟(16.1)構(gòu)建文字識(shí)別所用的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu),采用深度卷積神經(jīng)網(wǎng)絡(luò)。
所述構(gòu)建訓(xùn)練集具體為:使用繪圖指令以制定的字體在32*32位圖中繪制標(biāo)簽字符;將前景矩陣mtext轉(zhuǎn)換為32*32的布爾掩碼矩陣m’,將所有數(shù)據(jù)進(jìn)行序列化。
本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:
(1)本發(fā)明系統(tǒng)支持各種類型的發(fā)票統(tǒng)一掃描錄入識(shí)別處理,實(shí)現(xiàn)了單位報(bào)銷發(fā)票的電子化集中管理;
(2)本發(fā)明針對(duì)發(fā)票識(shí)別的特定場景做了一些優(yōu)化,擴(kuò)大發(fā)票識(shí)別類型,能識(shí)別所有類型的發(fā)票,并且識(shí)別更準(zhǔn)確、效率更高。與通用ocr相比,特定場景下,本發(fā)明可以根據(jù)圖像特性、文字特性、色彩、清晰度等屬性最大化執(zhí)行效率和準(zhǔn)確度;
(3)本發(fā)明系統(tǒng)在訓(xùn)練模型上采取10種不同的字體對(duì)如下字符繪制訓(xùn)練集:0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz,因此每種字符產(chǎn)生10個(gè)樣本。在訓(xùn)練時(shí)隨機(jī)應(yīng)用如下變化,以減少過擬合,提高神經(jīng)網(wǎng)絡(luò)的測試準(zhǔn)確率,準(zhǔn)確度可以達(dá)到95%以上;
(4)本發(fā)明系統(tǒng)在識(shí)別模型方面采用深度卷積神經(jīng)網(wǎng)絡(luò),其準(zhǔn)確率遠(yuǎn)超過最近鄰分類等傳統(tǒng)統(tǒng)計(jì)分類模型。模型可以很好的緩沖輸入圖形的細(xì)節(jié)差別和移位問題,因此可以很好的解決文字識(shí)別中輸入多變的問題;
(5)本發(fā)明系統(tǒng)基于發(fā)票識(shí)別的場景進(jìn)行建模,在這種模型下,文字分割步驟可以采取相對(duì)固定的方式,而無需采用監(jiān)督學(xué)習(xí)的統(tǒng)計(jì)模型,因此無需準(zhǔn)備人工標(biāo)注的訓(xùn)練集,極大的減少了ocr研發(fā)的前期時(shí)間;
(6)本發(fā)明系統(tǒng)可根據(jù)各種類型的發(fā)票內(nèi)容自動(dòng)進(jìn)行基于語義的文本校正,相對(duì)上下文無關(guān)的ocr算法,可以利用上下文和語境信息最大程度上避免識(shí)別錯(cuò)誤,從而提高準(zhǔn)確率;
(7)本發(fā)明系統(tǒng)支持財(cái)務(wù)工作人員通過定制化的內(nèi)控規(guī)則,實(shí)現(xiàn)驗(yàn)證系統(tǒng)自動(dòng)對(duì)報(bào)銷發(fā)票信息是否符合內(nèi)控標(biāo)準(zhǔn)進(jìn)行檢查,例如:發(fā)票連號(hào)、重號(hào)的檢查,發(fā)票關(guān)鍵字的檢查,有效提升了財(cái)務(wù)部門處理財(cái)務(wù)報(bào)銷工作效率和準(zhǔn)確性。
附圖說明
圖1為本發(fā)明系統(tǒng)架構(gòu)示意圖;
圖2為本發(fā)明發(fā)票驗(yàn)證模塊流程示意圖;
圖3為本發(fā)明ocr模塊流程示意圖;
圖4為本發(fā)明圖片色彩預(yù)處理子模塊流程示意圖;
圖5為本發(fā)明圖片輪廓預(yù)處理子模塊流程示意圖;
圖6為本發(fā)明圖片文字預(yù)處理子模塊流程示意圖;
圖7為本發(fā)明圖片識(shí)別處理子模塊流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行進(jìn)一步的詳細(xì)描述。
如圖1所示,本發(fā)明提出了一種財(cái)務(wù)報(bào)銷全票據(jù)智能審核系統(tǒng),全票據(jù)智能審核系統(tǒng)包括ocr模塊,通過該ocr模塊對(duì)掃描為圖像的各種類型發(fā)票進(jìn)行識(shí)別和處理。
全票據(jù)智能審核系統(tǒng)還包括掃描儀接口模塊、發(fā)票驗(yàn)證模塊、文件上傳處理模塊、外圍財(cái)務(wù)系統(tǒng)接口模塊、條碼打印控制模塊以及以太網(wǎng)接口模塊;
掃描儀接口模塊實(shí)現(xiàn)驅(qū)動(dòng)掃描儀并將掃描儀掃描的發(fā)票圖片發(fā)送給ocr模塊,ocr模塊將識(shí)別出的發(fā)票圖片上的信息提供給發(fā)票驗(yàn)證模塊,同時(shí),將能識(shí)別和不能識(shí)別的發(fā)票圖片均直接提供給文件上傳處理模塊;
發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行內(nèi)控要求檢驗(yàn),將檢驗(yàn)之后的發(fā)票信息提供給文件上傳處理模塊,將檢驗(yàn)狀態(tài)信息提供給外圍財(cái)務(wù)系統(tǒng)接口模塊;
文件上傳處理模塊對(duì)所有發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息進(jìn)行唯一id編號(hào)和分類處理,再通過以太網(wǎng)接口模塊存儲(chǔ)到文件服務(wù)器中,同時(shí),文件上傳處理模塊將發(fā)票信息在文件服務(wù)器中的存儲(chǔ)位置信息提供給外圍財(cái)務(wù)系統(tǒng)接口模塊,外圍財(cái)務(wù)系統(tǒng)接口模塊通過以太網(wǎng)模塊與外部財(cái)務(wù)報(bào)銷系統(tǒng)進(jìn)行通信,外部財(cái)務(wù)報(bào)銷系統(tǒng)通過所述外圍財(cái)務(wù)系統(tǒng)接口模塊查找定位發(fā)票信息在文件服務(wù)器中的位置;外圍財(cái)務(wù)系統(tǒng)接口模塊將所述檢驗(yàn)狀態(tài)信息通過以太網(wǎng)接口模塊供外部財(cái)務(wù)報(bào)銷系統(tǒng)查詢;
文件上傳處理模塊還將發(fā)票驗(yàn)證模塊檢驗(yàn)通過的發(fā)票信息提供給條碼打印控制模塊,條碼打印控制模塊將所述唯一id編號(hào)轉(zhuǎn)化為條形碼,并通過以太網(wǎng)接口模塊輸出給條碼打印機(jī)進(jìn)行打印。
所述文件上傳處理模塊對(duì)不能識(shí)別的發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息進(jìn)行分類處理,具體為:文件上傳處理模塊將不能識(shí)別的發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息總計(jì)分為5個(gè)類別,分別是:無法識(shí)別的發(fā)票圖片、驗(yàn)證不通過的發(fā)票圖片、驗(yàn)證不通過的發(fā)票圖片上的信息、驗(yàn)證通過發(fā)票圖片、驗(yàn)證通過的發(fā)票圖片上的信息。
如圖2所示,所述發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行內(nèi)控要求檢驗(yàn),具體為:
(a)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行發(fā)票連號(hào)檢查,如果沒有連號(hào)出現(xiàn),則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,進(jìn)入步驟(b),否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證;
(b)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行發(fā)票重號(hào)檢查,如果沒有重號(hào)出現(xiàn),則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,進(jìn)入步驟(c),否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證;
(c)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行單張發(fā)票金額上限檢查,如果超過單張金額上限,則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,進(jìn)入步驟(d),否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證;
(d)發(fā)票驗(yàn)證模塊對(duì)ocr模塊提供的信息進(jìn)行關(guān)鍵字檢查,在預(yù)設(shè)關(guān)鍵字庫中進(jìn)行比對(duì),如果沒有出現(xiàn)關(guān)鍵字庫中的字段,則該張發(fā)票的檢驗(yàn)狀態(tài)為通過驗(yàn)證,否則該張發(fā)票的檢驗(yàn)狀態(tài)為未通過驗(yàn)證。
關(guān)鍵字庫中為單位財(cái)務(wù)內(nèi)控要求指定不可報(bào)銷的內(nèi)容信息。
檢驗(yàn)狀態(tài)信息包括通過檢驗(yàn)和未通過檢驗(yàn)。
所有發(fā)票圖片和所述檢驗(yàn)之后的發(fā)票信息進(jìn)行唯一id編號(hào),具體為:不能識(shí)別的發(fā)票圖片、能夠識(shí)別的發(fā)票圖片以及檢驗(yàn)之后的發(fā)票信息均進(jìn)行單獨(dú)編號(hào),其中,能夠識(shí)別的發(fā)票圖片編號(hào)以及檢驗(yàn)之后的發(fā)票信息編號(hào)一一對(duì)應(yīng)。
如圖3所示,ocr模塊對(duì)發(fā)票圖片進(jìn)行識(shí)別和處理,具體為包括如下步驟:
(1)如圖4所示,對(duì)掃描后的發(fā)票圖片進(jìn)行色彩預(yù)處理,為圖片輪廓預(yù)處理提供輸入數(shù)據(jù);
所述步驟(1)對(duì)掃描后的發(fā)票圖片進(jìn)行色彩預(yù)處理,包括:
(1.1)將掃描后的發(fā)票圖片進(jìn)行rgb轉(zhuǎn)換,生成rgb顏色空間數(shù)據(jù);
(1.2)對(duì)所述rgb顏色空間數(shù)據(jù)進(jìn)行白化二值處理,即識(shí)別在rgb顏色空間數(shù)據(jù)中色調(diào)為白色的像素,并產(chǎn)生結(jié)果掩碼位圖矩陣,作為圖片輪廓預(yù)處理的輸入數(shù)據(jù)。
將掃描后的發(fā)票圖片進(jìn)行rgb轉(zhuǎn)換,使用png或jpg圖片解析算法解析原始文件,產(chǎn)生內(nèi)存位圖i(m*n),其中,m為位圖i的行數(shù),n為i的列數(shù),從而轉(zhuǎn)換為rgb顏色空間數(shù)據(jù),輸出數(shù)據(jù)為m*n的矩陣,矩陣元素為r3={0-255,0-255,0-255},表示為rgb顏色空間的三元組向量。
(2)如圖5所示,對(duì)經(jīng)過色彩預(yù)處理的圖片進(jìn)行輪廓檢測,排除發(fā)票紙張范圍外的像素干擾;
所述步驟(2)對(duì)經(jīng)過色彩預(yù)處理的圖片進(jìn)行輪廓檢測,排除發(fā)票紙張范圍外的像素干擾,具體為:
(2.1)使用canny邊緣檢測算法對(duì)結(jié)果掩碼位圖矩陣進(jìn)行輪廓檢測,對(duì)點(diǎn)圖產(chǎn)生強(qiáng)度為k的高斯模糊拷貝,隨后采取dbscan聚類得到離群點(diǎn)。將離群點(diǎn)從原始點(diǎn)圖中刪除,完成去噪處理過程,對(duì)每個(gè)多邊形計(jì)算環(huán)繞矩形,取面積最大者為環(huán)繞紙張的矩形,其矩形邊緣即為輪廓;
(2.2)根據(jù)進(jìn)行輪廓檢測后的數(shù)據(jù),對(duì)結(jié)果掩碼位圖矩陣計(jì)算其長邊和水平線的夾角,并對(duì)rgb顏色空間數(shù)據(jù)以該角度作旋轉(zhuǎn)變換,以校正紙張的偏角;
(2.3)對(duì)所述旋轉(zhuǎn)變換后的數(shù)據(jù)進(jìn)行藍(lán)化二值處理,即識(shí)別在rgb顏色空間數(shù)據(jù)中色調(diào)為藍(lán)色的像素,并產(chǎn)生前景矩陣mtext,作為文字預(yù)處理的輸入數(shù)據(jù)。
所述步驟(2.2)進(jìn)行旋轉(zhuǎn)變換具體為:對(duì)產(chǎn)生的紙張輪廓包圍矩形r取其任意三點(diǎn)p1、p2、p3,求點(diǎn)間距離d12=d(p1,p2),d23=d(p2,p3),取長邊,并求其與水平線夾角ap=|atan(x2-x1,y2-y1)|,如果ap小于5度,則變?yōu)?;將位圖矩陣i,即rgb顏色空間數(shù)據(jù)旋轉(zhuǎn)ap角度,以糾正其偏角;定義旋轉(zhuǎn)后產(chǎn)生的新位圖矩陣為i’。
(3)如圖6所示,對(duì)經(jīng)過輪廓檢測的圖片進(jìn)行文字預(yù)處理,識(shí)別發(fā)票上的字符,形成字符集并輸出;
所述步驟(3)對(duì)經(jīng)過輪廓檢測的圖片進(jìn)行文字預(yù)處理,具體為:
(3.1)對(duì)前景矩陣mtext進(jìn)行逐行掃描,確定行的個(gè)數(shù)以及每行的起始和終止位置;
所述步驟(3.1)對(duì)前景矩陣mtext進(jìn)行逐行掃描,確定行的個(gè)數(shù)以及每行的起始和終止位置,具體為:對(duì)掩碼矩陣mtext進(jìn)行間距為1的橫向掃描線reduction操作,根據(jù)每一行為1的像素?cái)?shù)量,得出自變量為行索引的方波曲線,將每一個(gè)方波脈沖的范圍[x0,x1]作為一行的行索引范圍,從而檢測到行的位置。
(3.2)進(jìn)行行內(nèi)縱掃描以確定文字范圍,從而得到分離后的文字矩形集合;所述步驟(3.2)進(jìn)行行內(nèi)縱掃描以確定文字范圍,從而得到分離后的文字矩形集合,具體為:對(duì)每一行進(jìn)行列間距為1的縱向掃描線操作,得出列索引為自變量的曲線;將曲線范圍正規(guī)化至[0,1]區(qū)間,并將小于0.05的值設(shè)置為0,根據(jù)方波脈沖波谷的位置確定文字之間的邊界,從而得到分離后的文字矩形集合。
(3.3)將分離后的文字矩形集合中的文字矩形按照從上到下,從左到右的順序排序,形成字符集并輸出。文本按照原有順序(即左至右,上至下)進(jìn)行排序?;静襟E為:
(3.3.1)在矩形集合中選出距離左上角最近的矩形,作為新行的首字符;
(3.3.2)搜索距離行尾字符最近的矩形,要求其x坐標(biāo)增加,y坐標(biāo)與行尾矩形相比在某一范圍內(nèi),將其加入行尾;
(3.3.3)當(dāng)無法找到滿足條件的矩形時(shí),該行結(jié)束,進(jìn)入下一行的識(shí)別。
(4)如圖7所示,對(duì)步驟(3)輸出的字符集進(jìn)行圖片識(shí)別處理,將識(shí)別處理結(jié)果按發(fā)票識(shí)別的語義組織為具有語義的結(jié)果對(duì)象,作為最終識(shí)別結(jié)果。
所述步驟(4)對(duì)輸出的字符集進(jìn)行圖片識(shí)別處理,將識(shí)別處理結(jié)果按發(fā)票識(shí)別的語義組織為具有語義的結(jié)果對(duì)象,具體為:
(4.1)構(gòu)建文字識(shí)別所用的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu);采用深度卷積神經(jīng)網(wǎng)絡(luò),其準(zhǔn)確率遠(yuǎn)超過最近鄰分類等傳統(tǒng)統(tǒng)計(jì)分類模型,其效果已得到學(xué)術(shù)界的普遍認(rèn)可。模型可以很好的緩沖輸入圖形的細(xì)節(jié)差別和移位問題,因此可以很好的解決文字識(shí)別中輸入多變的問題。;對(duì)發(fā)票識(shí)別的場景做如下建模:
(4.1.1)文字為打印體,因此相對(duì)工整、清晰;
(4.1.2)文字大小基本近似;
(4.1.3)可較容易的區(qū)分前景文字和背景文字;
在這種模型下,文字分割步驟可以采取相對(duì)固定的方式,而無需采用監(jiān)督學(xué)習(xí)的統(tǒng)計(jì)模型,因此無需準(zhǔn)備人工標(biāo)注的訓(xùn)練集,極大的減少了ocr研發(fā)的前期時(shí)間。
(4.2)構(gòu)建訓(xùn)練模型所用的訓(xùn)練集和驗(yàn)證集,訓(xùn)練集用于更新模型的權(quán)重,驗(yàn)證集用于跟蹤訓(xùn)練效果;
所述構(gòu)建訓(xùn)練集具體為:使用繪圖指令以制定的字體在32*32位圖中繪制標(biāo)簽字符;將前景矩陣mtext轉(zhuǎn)換為32*32的布爾掩碼矩陣m’,將所有數(shù)據(jù)進(jìn)行序列化。在訓(xùn)練模型上采取10種不同的字體對(duì)如下字符繪制訓(xùn)練集:
0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz,因此每種字符產(chǎn)生10個(gè)樣本。在訓(xùn)練時(shí)隨機(jī)應(yīng)用如下變化,以減少過擬合,提高神經(jīng)網(wǎng)絡(luò)的測試準(zhǔn)確率,準(zhǔn)確度可以達(dá)到95%以上。
(4.3)根據(jù)所述訓(xùn)練集,使用監(jiān)督學(xué)習(xí)方法對(duì)構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并使其驗(yàn)證準(zhǔn)確率達(dá)到預(yù)定標(biāo)準(zhǔn)或訓(xùn)練輪數(shù)達(dá)到預(yù)定最大輪數(shù);
(4.4)將訓(xùn)練后的模型權(quán)重進(jìn)行保存;
(4.5)選用權(quán)重最大的模型,對(duì)所述輸出的字符集進(jìn)行文字識(shí)別,得到在標(biāo)簽空間中的概率分布矩陣;
(4.6)按行循環(huán)訪問概率分布矩陣中的每一行,掃描每一行最大峰值處得到其標(biāo)簽索引,從而轉(zhuǎn)換為相應(yīng)的字符,即識(shí)別結(jié)果;
(4.7)將識(shí)別結(jié)果按發(fā)票識(shí)別的語義組織為具有語義的結(jié)果對(duì)象,作為最終識(shí)別結(jié)果。
實(shí)施例:
按照本發(fā)明智能審核系統(tǒng)搭建實(shí)物平臺(tái),以十種不同格式的發(fā)票為例,通過掃描儀掃描成圖片進(jìn)入系統(tǒng),掃描成圖片的發(fā)票經(jīng)過系統(tǒng)識(shí)別處理全部識(shí)別成功,在通過系統(tǒng)內(nèi)控檢查后,符合內(nèi)控要求的發(fā)票,自動(dòng)生成報(bào)銷單二維碼編號(hào)。對(duì)于比如出租車票連號(hào)、重號(hào)等問題,都能夠精確的進(jìn)行識(shí)別和篩選,對(duì)不同格式、紙張大小的發(fā)票,全兼容,識(shí)別率超過現(xiàn)有ocr技術(shù)識(shí)別率,取得良好的效果。