唐 軍, 唐 潮
(四川虹微技術(shù)有限公司, 成都 610041)
在財務(wù)共享中心的日常業(yè)務(wù)中對紙質(zhì)發(fā)票尤其是國內(nèi)增值稅發(fā)票的處理具有重要意義. 大型企業(yè)常常因?yàn)樾枰皶r處理海量增值稅發(fā)票而投入大量人力成本, 并且在資金風(fēng)險管控、報稅納稅管理等財務(wù)管理中還需維持一定程度的日常資源或管理措施等來強(qiáng)化監(jiān)督[1].
目前, 大型的財務(wù)共享中心都集成了一定程度的自動化處理技術(shù). 一個簡化的集成自動化處理技術(shù)的系統(tǒng)如圖1所示.

圖1 簡化的集成自動化處理技術(shù)的財務(wù)共享中心
在實(shí)際的財務(wù)報銷系統(tǒng)票據(jù)中, 增值稅發(fā)票錄入工作占據(jù)了大部分時間, 因此開發(fā)增值稅發(fā)票識別系統(tǒng)并提高其識別率, 具有重要意義[2]. 當(dāng)前已有一些研究人員進(jìn)行了和增值稅發(fā)票識別相關(guān)的研究[3-13], 但都沒有涉及增值稅發(fā)票全票面元素的識別.
增值稅發(fā)票識別, 主要由兩大任務(wù)組成, 一個是光學(xué)字符識別(Optical Character Recognition, OCR), 即,在圖像的什么位置有什么文字, 一個是信息結(jié)構(gòu)化抽取(Structural Information Extraction, SIE), 可理解為票據(jù)版面分析、票面結(jié)構(gòu)化元素識別. 目前, OCR識別技術(shù)相對已比較成熟, 主要可分三大研究方向: 一是文字檢測技術(shù), 二是文本識別技術(shù), 三是端到端檢測識別技術(shù). 三大研究方向中典型的技術(shù)可見表1.

表1 OCR識別技術(shù)三大研究方向典型工作
通過國內(nèi)外研究可知, 增值稅發(fā)票識別雖然可分為兩大任務(wù), 但是由于版面較為復(fù)雜, 因此在綜合OCR和結(jié)構(gòu)化元素處理兩方面時, 研究思路也多種多樣, 但大體上可分為3類, 第一類是先進(jìn)行常規(guī)OCR,然后進(jìn)行版面分析; 第二類是先進(jìn)行版面分析, 再進(jìn)行OCR; 最后一類是直接端到端, OCR和版面分析同時進(jìn)行. 典型研究工作見表2.

表2 增值稅發(fā)票識別
表2中所列各種方法均只識別增值稅中的部分字段, 并未識別增值稅發(fā)票全票面要素, 且流程上都比較復(fù)雜, 不容易推廣至其它發(fā)票的結(jié)構(gòu)化識別, 且通過表2中的相關(guān)研究工作可知, 由于增值稅版面復(fù)雜, 且真實(shí)采集的業(yè)務(wù)數(shù)據(jù)通常伴有陰影、污染、褶皺、印章、LOGO等噪聲干擾, 因此開發(fā)實(shí)際針對業(yè)務(wù)場景的增值稅發(fā)票識別系統(tǒng), 應(yīng)盡量減少人為規(guī)則的介入.針對已有研究在擴(kuò)展性、易用性等方面的缺點(diǎn), 在考慮開發(fā)算法效率、準(zhǔn)確性的前提下, 本文提出采用業(yè)內(nèi)廣泛用于目標(biāo)檢測的YOLO系列[54-57]算法中兼具檢測速度和檢測精度的YOLOv4[57]來實(shí)現(xiàn)增值稅發(fā)票的結(jié)構(gòu)化信息抽取.
本文采用如圖2所示各子流程進(jìn)行增值稅發(fā)票的結(jié)構(gòu)化信息抽取.
從圖2至圖9中可知, 增值稅發(fā)票結(jié)構(gòu)化信息抽取主要包括以下幾個步驟: S1: 關(guān)鍵點(diǎn)檢測并進(jìn)行模板對齊(圖2為原圖, 圖3為關(guān)鍵點(diǎn)檢測結(jié)果, 圖4為對齊模板, 圖5為利用檢測的關(guān)鍵點(diǎn)進(jìn)行對模板齊后的結(jié)果); S2: 票據(jù)結(jié)構(gòu)化元素檢測(圖6為元素結(jié)構(gòu)化檢測結(jié)果); S3: 結(jié)構(gòu)化元素識別(圖7為結(jié)構(gòu)化元素識別結(jié)果); S4: 后處理形成結(jié)構(gòu)化數(shù)據(jù)(圖8為后處理示意圖, 圖9為最終處理結(jié)果). 下面分別介紹各個步驟的實(shí)現(xiàn)原理.

圖2 待處理增值稅發(fā)票原圖

圖3 HRNet關(guān)鍵點(diǎn)檢測示意圖

圖4 增值稅發(fā)票模板圖

圖5 增值稅發(fā)票模板對齊圖

圖6 增值稅發(fā)票元素YOLOv4檢測結(jié)果示意圖

圖8 識別結(jié)果后處理示意圖

圖9 增值稅發(fā)票結(jié)構(gòu)化信息抽取框架
因紙質(zhì)發(fā)票從開具到最終采集到系統(tǒng), 中間會受到各種噪聲干擾的影響, 且用戶在進(jìn)行報銷的時候, 通常將增值稅發(fā)票貼于A4紙(或其它背景紙張)上, 通過掃描儀或高拍儀成像為圖像, 然后進(jìn)行識別處理, 因此通常增值稅發(fā)票的處理可能面臨背景雜亂、擺放角度傾斜、陰影等干擾. 針對該問題, 現(xiàn)行典型解決方案通常是先進(jìn)行票據(jù)對齊, 先將票據(jù)對齊, 然后進(jìn)行票據(jù)主體裁剪得到待處理的增值稅發(fā)票.
High-Resolution Net (HRNet)[58]為微軟亞洲研究院和中國科學(xué)技術(shù)大學(xué)提出, 其主要特點(diǎn)是在整個過程中特征圖始終保持高分辨率, 這與之前主流方法思路上有很大不同. 在HRNet之前, 2D人體姿態(tài)估計算法是采用(Hourglass[59]/CPN[60]/MSPN[61]等)將高分辨率特征圖下采樣至低分辨率, 再從低分辨率特征圖恢復(fù)至高分辨率的思路(單次或重復(fù)多次), 以此過程實(shí)現(xiàn)了多尺度特征提取的一個過程. 具體結(jié)構(gòu)見圖10.

圖10 HRNet網(wǎng)絡(luò)結(jié)構(gòu)示意圖
HRNet在整個過程中均保持特征圖的高分辨率,并通過在高分辨率特征圖主網(wǎng)絡(luò)逐漸并行加入低分辨率特征圖子網(wǎng)絡(luò), 不同網(wǎng)絡(luò)實(shí)現(xiàn)多尺度融合與特征提取. 最終所估計的關(guān)鍵點(diǎn)是在高分辨率主干網(wǎng)絡(luò)輸出.
原HRNet論文[58]實(shí)驗(yàn)結(jié)果表明, 此網(wǎng)絡(luò)架構(gòu)能有效提升關(guān)鍵點(diǎn)檢測的準(zhǔn)確性. 本文采用HRNet來進(jìn)行增值稅表格關(guān)鍵點(diǎn)的檢測. 為兼顧標(biāo)注數(shù)據(jù)的標(biāo)注成本, 定義表格關(guān)鍵點(diǎn)為如圖11所示的18個關(guān)鍵點(diǎn)(例如, 其中“3-4”表示為第3行線和第4列線的交叉點(diǎn)).

圖11 增值稅18個關(guān)鍵點(diǎn)示意圖
通過HRNet訓(xùn)練得到關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò), 對常規(guī)輸入增值稅圖片I, 首先進(jìn)行關(guān)鍵點(diǎn)檢測, 然后與標(biāo)準(zhǔn)模板中的對應(yīng)基準(zhǔn)關(guān)鍵點(diǎn)對齊, 通過檢測關(guān)鍵點(diǎn)和基準(zhǔn)關(guān)鍵點(diǎn)的對應(yīng)關(guān)系找到透視變換矩陣H[62], 最后將輸入的增值稅圖片I, 變換到與標(biāo)準(zhǔn)模板對應(yīng)的平面上,得到I′.I′即為模板對齊后的增值稅發(fā)票.
目前, 工業(yè)界常用目標(biāo)檢測算法, 有Faster-RCNN系列[63,64], SSD系列[65,66], YOLO系列[54-57]等. 其中,YOLO系列在兼顧準(zhǔn)確性的同時, 極大考慮了檢測的實(shí)時性, 成為工業(yè)應(yīng)用的首選方案. YOLOv4為YOLO系列最新研究, 其網(wǎng)絡(luò)結(jié)構(gòu)的backbone、neck、head集成了最新的深度學(xué)習(xí)技巧, 并對數(shù)據(jù)增強(qiáng)模塊、BN模塊、SAM模塊等進(jìn)行了必要的改進(jìn), 使整個YOLOv4目標(biāo)檢測方案達(dá)到較好的性能.
通過YOLOv4進(jìn)行結(jié)構(gòu)化元素檢測, 即通過YOLOv4對增值稅發(fā)票中的元素進(jìn)行檢測, 得到目標(biāo)框位置. 本文定義增值稅發(fā)票元素如圖12所示.

圖12 增值稅票據(jù)結(jié)構(gòu)化元素定義示意圖
CRNN[20]為業(yè)界廣泛使用的文本識別算法, 2015年提出后, 迅速成為序列圖片OCR識別的首選. CRNN[20]的識別原理如圖13所示.

圖13 CRNN識別架構(gòu)
本文采用CRNN識別YOLOv4檢測的增值稅發(fā)票元素.
將CRNN識別后的數(shù)據(jù)后處理形成結(jié)構(gòu)化的數(shù)據(jù). 后處理主要是指刪除部分干擾項(xiàng), 合并明細(xì)項(xiàng)的條目, 坐標(biāo)轉(zhuǎn)換等, 以方便實(shí)際業(yè)務(wù)對接系統(tǒng)使用.
增值稅發(fā)票涉及數(shù)據(jù)敏感性問題, 目前已知開源文獻(xiàn)或社區(qū)中, 并未發(fā)現(xiàn)存在大規(guī)模真實(shí)場景的增值稅發(fā)票數(shù)據(jù)集. 大規(guī)模的真實(shí)標(biāo)注增值稅發(fā)票的結(jié)構(gòu)化元素需投入大量人力物力.
(1)關(guān)鍵點(diǎn)檢測數(shù)據(jù)
針對業(yè)務(wù)增值稅發(fā)票, 共進(jìn)行人工核對標(biāo)注3347張(標(biāo)注樣例見圖11所示), 其中2678張作為訓(xùn)練樣本, 668張作為驗(yàn)證樣本.
(2)結(jié)構(gòu)化元素檢測數(shù)據(jù)
本文首先通過業(yè)務(wù)結(jié)構(gòu)化數(shù)據(jù)(已完成記賬或報銷發(fā)票的結(jié)構(gòu)化存檔結(jié)果, 不含位置標(biāo)注信息, 只含元素文本信息), 通過人工規(guī)則及隨機(jī)擾動, 合成51 842張增值稅發(fā)票, 然后訓(xùn)練YOLOv4得到預(yù)訓(xùn)練模型, 基于預(yù)訓(xùn)練模型, 針對業(yè)務(wù)增值稅發(fā)票進(jìn)行檢測, 形成預(yù)標(biāo)注結(jié)果, 然后人工核對標(biāo)注, 共標(biāo)注500張增值稅發(fā)票.
合成的51 842張發(fā)票, 其中50 000張進(jìn)行訓(xùn)練,1842張進(jìn)行驗(yàn)證. 500張業(yè)務(wù)標(biāo)注票據(jù), 其中400張作為訓(xùn)練樣本, 100張作為驗(yàn)證樣本. 為本文后續(xù)表述方便, 記合成的51 482張發(fā)票(50 000張訓(xùn)練, 1482張驗(yàn)證)為DataA, 500張業(yè)務(wù)數(shù)據(jù)(400張訓(xùn)練, 100張驗(yàn)證)記為DataB.
合成增值稅發(fā)票數(shù)據(jù)示意圖如圖14、圖15所示.

圖14 人工規(guī)則合成增值稅發(fā)票示例1

圖15 人工規(guī)則合成增值稅發(fā)票示例2
(3)文本識別
針對文本識別任務(wù), 本文并未進(jìn)行單獨(dú)訓(xùn)練, 采用百度開源模型[67]進(jìn)行發(fā)票結(jié)構(gòu)化元素的識別, 若想獲得更好的識別結(jié)果, 可對業(yè)務(wù)數(shù)據(jù)標(biāo)注, 并對開源模型進(jìn)行微調(diào)訓(xùn)練.
(4)數(shù)據(jù)增強(qiáng)
真實(shí)采集的增值稅發(fā)票通常會受到各種干擾, 因此針對關(guān)鍵點(diǎn)檢測任務(wù)的訓(xùn)練數(shù)據(jù), 做了裁剪、仿射變換、隨機(jī)角度旋轉(zhuǎn)、高斯(均值、中值)平滑、運(yùn)動模糊、銳化、顏色反轉(zhuǎn)、陰影等一系列數(shù)據(jù)增強(qiáng)[68],真實(shí)數(shù)據(jù)與增強(qiáng)數(shù)據(jù)的比例為1:4.
因發(fā)票元素檢測任務(wù), 是在對齊后的圖片中進(jìn)行的, 故YOLOv4中原有數(shù)據(jù)增強(qiáng)方式并不適合發(fā)票元素檢測, 所以針對元素結(jié)構(gòu)化檢測這一任務(wù), 本文調(diào)整原有數(shù)據(jù)增強(qiáng)為高斯(均值、中值)平滑、運(yùn)動模糊、銳化、顏色反轉(zhuǎn)、對比度拉伸、灰度化等數(shù)據(jù)增強(qiáng)[68].
數(shù)據(jù)增強(qiáng)能有效提升訓(xùn)練模型的泛化性能, 使其更適應(yīng)真實(shí)的業(yè)務(wù)數(shù)據(jù).
針對關(guān)鍵點(diǎn)檢測任務(wù), 采用HRNet-W32網(wǎng)絡(luò)結(jié)構(gòu), Adam優(yōu)化器、BatchSize為3進(jìn)行訓(xùn)練(因增值稅發(fā)票的關(guān)鍵點(diǎn)檢測屬于增值稅發(fā)票結(jié)構(gòu)化識別的上游任務(wù), 因此對其準(zhǔn)確性要求較高, 故采用H×W=1152×1536大分辨率圖像作為網(wǎng)絡(luò)輸入的樣本尺寸), 以JointsMSELoss作為損失函數(shù)進(jìn)行訓(xùn)練. 損失函數(shù)如式(1)所示.

其中,M×N代表圖片的大小,I(i,j)代 表網(wǎng)絡(luò)在(i,j)位置的預(yù)測輸出,I(i,j)代 表在(i,j)位 置的真實(shí)標(biāo)簽. #joints代表預(yù)測的關(guān)鍵點(diǎn)個數(shù).
針對結(jié)構(gòu)化元素檢測任務(wù), 首先在生成的數(shù)據(jù)中進(jìn)行預(yù)訓(xùn)練. 然后在真實(shí)的業(yè)務(wù)數(shù)據(jù)中以預(yù)訓(xùn)練模型參數(shù)為網(wǎng)絡(luò)初始參數(shù)進(jìn)行微調(diào), 得到最終模型. 預(yù)訓(xùn)練時采用SGD優(yōu)化器、BatchSize為8進(jìn)行訓(xùn)練, 因?yàn)閷z測結(jié)果精度要求較高, 網(wǎng)絡(luò)模型采用H×W=1024×1024大分辨率圖像作為網(wǎng)絡(luò)輸入的樣本尺寸. 其中HRNet-W32的訓(xùn)練在3張Tesla-P100 16 GB顯卡上訓(xùn)練完成, YOLOv4在Tesla-P100 16 GB單卡完成.
關(guān)于兩個任務(wù)中, 其余未說明的參數(shù)(如網(wǎng)絡(luò)結(jié)構(gòu)、學(xué)習(xí)率、迭代次數(shù)等)設(shè)置均保持同原論文一致,不再贅述.
(1)關(guān)鍵點(diǎn)檢測
關(guān)鍵點(diǎn)檢測的評價指標(biāo), HRNet[58]中人體關(guān)鍵點(diǎn)檢測采用PCKh得分(head-normalized Probability of Corrrect Keypoint), 針對增值稅發(fā)票的關(guān)鍵點(diǎn)檢測已不適合. 本文對其進(jìn)行適當(dāng)調(diào)整為:

其中,p@α表示關(guān)鍵點(diǎn)檢測的準(zhǔn)確率(α=0.125);#correct表示檢測正確的關(guān)鍵點(diǎn)的數(shù)量(同HRNet[58]中定義l,l等于關(guān)鍵點(diǎn)1-1到關(guān)鍵點(diǎn)2-1的距離, 當(dāng)檢測點(diǎn)坐標(biāo)與標(biāo)簽對應(yīng)點(diǎn)坐標(biāo)的像素距離小于l時, 認(rèn)為檢測正確);#total_joints表示待檢測票據(jù)中可見的總的關(guān)鍵點(diǎn)個數(shù). 實(shí)驗(yàn)結(jié)果見表3.
表3中, 668張測試樣本中有13張樣本因票據(jù)殘缺, 標(biāo)注文件中沒有1-1或1-2關(guān)鍵點(diǎn), 所以以上測試結(jié)果為655張測試樣本的統(tǒng)計結(jié)果. 根據(jù)實(shí)際經(jīng)驗(yàn), 當(dāng)α小于0.02時, 比較接近人工標(biāo)注誤差; 當(dāng)α小于等于0.1時, 對發(fā)票模板對齊結(jié)果不會產(chǎn)生影響.

表3 關(guān)鍵點(diǎn)檢測實(shí)驗(yàn)結(jié)果
(2)元素結(jié)構(gòu)化檢測
結(jié)構(gòu)化檢測實(shí)質(zhì)上是一個目標(biāo)檢測任務(wù), 故采用Precision、Recall、FPS、mAP等作為評價指標(biāo)[57,69].結(jié)果見表4.

表4 元素結(jié)構(gòu)化檢測實(shí)驗(yàn)結(jié)果
表4中, mAP是在NMS iou-thresh等于0.5情況下測得, FPS是在1024×1024圖片下測得.
(3)結(jié)構(gòu)化識別
結(jié)構(gòu)化識別主要目的是對各個字段進(jìn)行識別, 因財務(wù)記賬不允許任何的字符識別錯誤, 因此本文不采用通用OCR采用的字符識別率指標(biāo), 而采用元素識別率(element correct ratio,ecr)作為評價指標(biāo).

其中, elelemnts表示票面上的結(jié)構(gòu)化數(shù)據(jù)中的任意一個元素;#correct_elements表示識別正確的元素數(shù)量(該元素的所有字符均識別正確, 則該元素識別正確);#total_elements表示總的元素數(shù)量. 結(jié)果見表5.

表5 元素結(jié)構(gòu)化識別實(shí)驗(yàn)結(jié)果
因結(jié)構(gòu)化識別元素標(biāo)注耗時長, 故本次識別率測試樣本為從業(yè)務(wù)系統(tǒng)中隨機(jī)抽選的39張圖片. 從上述結(jié)果可以看出, 在未進(jìn)行識別模型訓(xùn)練的條件下, 元素識別率可以達(dá)到69.30%的準(zhǔn)確率, 通過對CRNN識別模型進(jìn)行訓(xùn)練可以達(dá)到更好的結(jié)果
本文主要提出了一種增值稅發(fā)票結(jié)構(gòu)化信息識別的方法, 為企業(yè)財務(wù)系統(tǒng)或記賬系統(tǒng)提供自動化的發(fā)票識別方法, 有效減少企業(yè)運(yùn)營成本.
本文采用基于HRNet關(guān)鍵點(diǎn)檢測的方法, 進(jìn)行發(fā)票模板對齊; 采用YOLOv4進(jìn)行結(jié)構(gòu)化元素的檢測;采用CRNN進(jìn)行結(jié)構(gòu)化元素的識別. 在業(yè)務(wù)數(shù)據(jù)集中的實(shí)驗(yàn)表明, 檢測準(zhǔn)確率在0.5mAP下達(dá)到75.7, 檢測速度達(dá)到12.85 fps, 元素識別率ecr達(dá)到69.30%, 本文方法在增值稅發(fā)票結(jié)構(gòu)化信息識別中具有較好效果.整個系統(tǒng)高效簡介, 人工規(guī)則介入較少, 極易拓展至相關(guān)圖像結(jié)構(gòu)化信息抽取領(lǐng)域.
本文通過HRNet關(guān)鍵點(diǎn)對齊降低檢測難度, 通過YOLOv4檢測發(fā)票元素, 通過CRNN識別發(fā)票元素的一套方法, 確實(shí)能有效簡化增值稅發(fā)票的識別流程, 為增值稅發(fā)票結(jié)構(gòu)化信息抽取提供一種簡單的思路. 但本文研究尚存在一定缺陷, 一方面, 本文并未對關(guān)鍵點(diǎn)檢測方面的算法進(jìn)行橫向?qū)Ρ? 且目標(biāo)檢測算法又分單階段、雙階段和多階段算法, 本文也僅從中選擇比較有代表性的單階段SSD、FCOS系列和雙階段Faster RCNN作為對比, 未能進(jìn)行廣泛的對比實(shí)驗(yàn), 值得進(jìn)一步拓展研究; 另一方面, 本文的檢測在訓(xùn)練過程中損失函數(shù)曲線發(fā)生多次抖動, 需要進(jìn)一步從模型層面、模型訓(xùn)練層面進(jìn)行研究改進(jìn); 最后在實(shí)用時, 通常面臨褶皺、印章、模糊等各種各樣的干擾噪聲, 如何提升模型的魯棒性也是進(jìn)一步研究的重要課題.