APP下载

增值税发票信息结构化识别①

2022-01-05军,

计算机系统应用 2021年12期
关键词:关键点结构化发票

唐 军, 唐 潮

(四川虹微技术有限公司, 成都 610041)

1 引言

在财务共享中心的日常业务中对纸质发票尤其是国内增值税发票的处理具有重要意义. 大型企业常常因为需要及时处理海量增值税发票而投入大量人力成本, 并且在资金风险管控、报税纳税管理等财务管理中还需维持一定程度的日常资源或管理措施等来强化监督[1].

目前, 大型的财务共享中心都集成了一定程度的自动化处理技术. 一个简化的集成自动化处理技术的系统如图1所示.

图1 简化的集成自动化处理技术的财务共享中心

在实际的财务报销系统票据中, 增值税发票录入工作占据了大部分时间, 因此开发增值税发票识别系统并提高其识别率, 具有重要意义[2]. 当前已有一些研究人员进行了和增值税发票识别相关的研究[3-13], 但都没有涉及增值税发票全票面元素的识别.

增值税发票识别, 主要由两大任务组成, 一个是光学字符识别(Optical Character Recognition, OCR), 即,在图像的什么位置有什么文字, 一个是信息结构化抽取(Structural Information Extraction, SIE), 可理解为票据版面分析、票面结构化元素识别. 目前, OCR识别技术相对已比较成熟, 主要可分三大研究方向: 一是文字检测技术, 二是文本识别技术, 三是端到端检测识别技术. 三大研究方向中典型的技术可见表1.

表1 OCR识别技术三大研究方向典型工作

通过国内外研究可知, 增值税发票识别虽然可分为两大任务, 但是由于版面较为复杂, 因此在综合OCR和结构化元素处理两方面时, 研究思路也多种多样, 但大体上可分为3类, 第一类是先进行常规OCR,然后进行版面分析; 第二类是先进行版面分析, 再进行OCR; 最后一类是直接端到端, OCR和版面分析同时进行. 典型研究工作见表2.

表2 增值税发票识别

表2中所列各种方法均只识别增值税中的部分字段, 并未识别增值税发票全票面要素, 且流程上都比较复杂, 不容易推广至其它发票的结构化识别, 且通过表2中的相关研究工作可知, 由于增值税版面复杂, 且真实采集的业务数据通常伴有阴影、污染、褶皱、印章、LOGO等噪声干扰, 因此开发实际针对业务场景的增值税发票识别系统, 应尽量减少人为规则的介入.针对已有研究在扩展性、易用性等方面的缺点, 在考虑开发算法效率、准确性的前提下, 本文提出采用业内广泛用于目标检测的YOLO系列[54-57]算法中兼具检测速度和检测精度的YOLOv4[57]来实现增值税发票的结构化信息抽取.

2 算法概述

本文采用如图2所示各子流程进行增值税发票的结构化信息抽取.

从图2至图9中可知, 增值税发票结构化信息抽取主要包括以下几个步骤: S1: 关键点检测并进行模板对齐(图2为原图, 图3为关键点检测结果, 图4为对齐模板, 图5为利用检测的关键点进行对模板齐后的结果); S2: 票据结构化元素检测(图6为元素结构化检测结果); S3: 结构化元素识别(图7为结构化元素识别结果); S4: 后处理形成结构化数据(图8为后处理示意图, 图9为最终处理结果). 下面分别介绍各个步骤的实现原理.

图2 待处理增值税发票原图

图3 HRNet关键点检测示意图

图4 增值税发票模板图

图5 增值税发票模板对齐图

图6 增值税发票元素YOLOv4检测结果示意图

图8 识别结果后处理示意图

图9 增值税发票结构化信息抽取框架

2.1 基于HRNet的增值税发票模板对齐

因纸质发票从开具到最终采集到系统, 中间会受到各种噪声干扰的影响, 且用户在进行报销的时候, 通常将增值税发票贴于A4纸(或其它背景纸张)上, 通过扫描仪或高拍仪成像为图像, 然后进行识别处理, 因此通常增值税发票的处理可能面临背景杂乱、摆放角度倾斜、阴影等干扰. 针对该问题, 现行典型解决方案通常是先进行票据对齐, 先将票据对齐, 然后进行票据主体裁剪得到待处理的增值税发票.

High-Resolution Net (HRNet)[58]为微软亚洲研究院和中国科学技术大学提出, 其主要特点是在整个过程中特征图始终保持高分辨率, 这与之前主流方法思路上有很大不同. 在HRNet之前, 2D人体姿态估计算法是采用(Hourglass[59]/CPN[60]/MSPN[61]等)将高分辨率特征图下采样至低分辨率, 再从低分辨率特征图恢复至高分辨率的思路(单次或重复多次), 以此过程实现了多尺度特征提取的一个过程. 具体结构见图10.

图10 HRNet网络结构示意图

HRNet在整个过程中均保持特征图的高分辨率,并通过在高分辨率特征图主网络逐渐并行加入低分辨率特征图子网络, 不同网络实现多尺度融合与特征提取. 最终所估计的关键点是在高分辨率主干网络输出.

原HRNet论文[58]实验结果表明, 此网络架构能有效提升关键点检测的准确性. 本文采用HRNet来进行增值税表格关键点的检测. 为兼顾标注数据的标注成本, 定义表格关键点为如图11所示的18个关键点(例如, 其中“3-4”表示为第3行线和第4列线的交叉点).

图11 增值税18个关键点示意图

通过HRNet训练得到关键点检测网络, 对常规输入增值税图片I, 首先进行关键点检测, 然后与标准模板中的对应基准关键点对齐, 通过检测关键点和基准关键点的对应关系找到透视变换矩阵H[62], 最后将输入的增值税图片I, 变换到与标准模板对应的平面上,得到I′.I′即为模板对齐后的增值税发票.

2.2 基于YOLOv4的结构化元素检测

目前, 工业界常用目标检测算法, 有Faster-RCNN系列[63,64], SSD系列[65,66], YOLO系列[54-57]等. 其中,YOLO系列在兼顾准确性的同时, 极大考虑了检测的实时性, 成为工业应用的首选方案. YOLOv4为YOLO系列最新研究, 其网络结构的backbone、neck、head集成了最新的深度学习技巧, 并对数据增强模块、BN模块、SAM模块等进行了必要的改进, 使整个YOLOv4目标检测方案达到较好的性能.

通过YOLOv4进行结构化元素检测, 即通过YOLOv4对增值税发票中的元素进行检测, 得到目标框位置. 本文定义增值税发票元素如图12所示.

图12 增值税票据结构化元素定义示意图

2.3 基于CRNN的结构化元素识别

CRNN[20]为业界广泛使用的文本识别算法, 2015年提出后, 迅速成为序列图片OCR识别的首选. CRNN[20]的识别原理如图13所示.

图13 CRNN识别架构

本文采用CRNN识别YOLOv4检测的增值税发票元素.

2.4 后处理形成结构化数据

将CRNN识别后的数据后处理形成结构化的数据. 后处理主要是指删除部分干扰项, 合并明细项的条目, 坐标转换等, 以方便实际业务对接系统使用.

3 实验结果与分析

3.1 数据集

增值税发票涉及数据敏感性问题, 目前已知开源文献或社区中, 并未发现存在大规模真实场景的增值税发票数据集. 大规模的真实标注增值税发票的结构化元素需投入大量人力物力.

(1)关键点检测数据

针对业务增值税发票, 共进行人工核对标注3347张(标注样例见图11所示), 其中2678张作为训练样本, 668张作为验证样本.

(2)结构化元素检测数据

本文首先通过业务结构化数据(已完成记账或报销发票的结构化存档结果, 不含位置标注信息, 只含元素文本信息), 通过人工规则及随机扰动, 合成51 842张增值税发票, 然后训练YOLOv4得到预训练模型, 基于预训练模型, 针对业务增值税发票进行检测, 形成预标注结果, 然后人工核对标注, 共标注500张增值税发票.

合成的51 842张发票, 其中50 000张进行训练,1842张进行验证. 500张业务标注票据, 其中400张作为训练样本, 100张作为验证样本. 为本文后续表述方便, 记合成的51 482张发票(50 000张训练, 1482张验证)为DataA, 500张业务数据(400张训练, 100张验证)记为DataB.

合成增值税发票数据示意图如图14、图15所示.

图14 人工规则合成增值税发票示例1

图15 人工规则合成增值税发票示例2

(3)文本识别

针对文本识别任务, 本文并未进行单独训练, 采用百度开源模型[67]进行发票结构化元素的识别, 若想获得更好的识别结果, 可对业务数据标注, 并对开源模型进行微调训练.

(4)数据增强

真实采集的增值税发票通常会受到各种干扰, 因此针对关键点检测任务的训练数据, 做了裁剪、仿射变换、随机角度旋转、高斯(均值、中值)平滑、运动模糊、锐化、颜色反转、阴影等一系列数据增强[68],真实数据与增强数据的比例为1:4.

因发票元素检测任务, 是在对齐后的图片中进行的, 故YOLOv4中原有数据增强方式并不适合发票元素检测, 所以针对元素结构化检测这一任务, 本文调整原有数据增强为高斯(均值、中值)平滑、运动模糊、锐化、颜色反转、对比度拉伸、灰度化等数据增强[68].

数据增强能有效提升训练模型的泛化性能, 使其更适应真实的业务数据.

3.2 训练策略

针对关键点检测任务, 采用HRNet-W32网络结构, Adam优化器、BatchSize为3进行训练(因增值税发票的关键点检测属于增值税发票结构化识别的上游任务, 因此对其准确性要求较高, 故采用H×W=1152×1536大分辨率图像作为网络输入的样本尺寸), 以JointsMSELoss作为损失函数进行训练. 损失函数如式(1)所示.

其中,M×N代表图片的大小,I(i,j)代 表网络在(i,j)位置的预测输出,I(i,j)代 表在(i,j)位 置的真实标签. #joints代表预测的关键点个数.

针对结构化元素检测任务, 首先在生成的数据中进行预训练. 然后在真实的业务数据中以预训练模型参数为网络初始参数进行微调, 得到最终模型. 预训练时采用SGD优化器、BatchSize为8进行训练, 因为对检测结果精度要求较高, 网络模型采用H×W=1024×1024大分辨率图像作为网络输入的样本尺寸. 其中HRNet-W32的训练在3张Tesla-P100 16 GB显卡上训练完成, YOLOv4在Tesla-P100 16 GB单卡完成.

关于两个任务中, 其余未说明的参数(如网络结构、学习率、迭代次数等)设置均保持同原论文一致,不再赘述.

3.3 实验结果

(1)关键点检测

关键点检测的评价指标, HRNet[58]中人体关键点检测采用PCKh得分(head-normalized Probability of Corrrect Keypoint), 针对增值税发票的关键点检测已不适合. 本文对其进行适当调整为:

其中,p@α表示关键点检测的准确率(α=0.125);#correct表示检测正确的关键点的数量(同HRNet[58]中定义l,l等于关键点1-1到关键点2-1的距离, 当检测点坐标与标签对应点坐标的像素距离小于l时, 认为检测正确);#total_joints表示待检测票据中可见的总的关键点个数. 实验结果见表3.

表3中, 668张测试样本中有13张样本因票据残缺, 标注文件中没有1-1或1-2关键点, 所以以上测试结果为655张测试样本的统计结果. 根据实际经验, 当α小于0.02时, 比较接近人工标注误差; 当α小于等于0.1时, 对发票模板对齐结果不会产生影响.

表3 关键点检测实验结果

(2)元素结构化检测

结构化检测实质上是一个目标检测任务, 故采用Precision、Recall、FPS、mAP等作为评价指标[57,69].结果见表4.

表4 元素结构化检测实验结果

表4中, mAP是在NMS iou-thresh等于0.5情况下测得, FPS是在1024×1024图片下测得.

(3)结构化识别

结构化识别主要目的是对各个字段进行识别, 因财务记账不允许任何的字符识别错误, 因此本文不采用通用OCR采用的字符识别率指标, 而采用元素识别率(element correct ratio,ecr)作为评价指标.

其中, elelemnts表示票面上的结构化数据中的任意一个元素;#correct_elements表示识别正确的元素数量(该元素的所有字符均识别正确, 则该元素识别正确);#total_elements表示总的元素数量. 结果见表5.

表5 元素结构化识别实验结果

因结构化识别元素标注耗时长, 故本次识别率测试样本为从业务系统中随机抽选的39张图片. 从上述结果可以看出, 在未进行识别模型训练的条件下, 元素识别率可以达到69.30%的准确率, 通过对CRNN识别模型进行训练可以达到更好的结果

4 结论与展望

本文主要提出了一种增值税发票结构化信息识别的方法, 为企业财务系统或记账系统提供自动化的发票识别方法, 有效减少企业运营成本.

本文采用基于HRNet关键点检测的方法, 进行发票模板对齐; 采用YOLOv4进行结构化元素的检测;采用CRNN进行结构化元素的识别. 在业务数据集中的实验表明, 检测准确率在0.5mAP下达到75.7, 检测速度达到12.85 fps, 元素识别率ecr达到69.30%, 本文方法在增值税发票结构化信息识别中具有较好效果.整个系统高效简介, 人工规则介入较少, 极易拓展至相关图像结构化信息抽取领域.

本文通过HRNet关键点对齐降低检测难度, 通过YOLOv4检测发票元素, 通过CRNN识别发票元素的一套方法, 确实能有效简化增值税发票的识别流程, 为增值税发票结构化信息抽取提供一种简单的思路. 但本文研究尚存在一定缺陷, 一方面, 本文并未对关键点检测方面的算法进行横向对比, 且目标检测算法又分单阶段、双阶段和多阶段算法, 本文也仅从中选择比较有代表性的单阶段SSD、FCOS系列和双阶段Faster RCNN作为对比, 未能进行广泛的对比实验, 值得进一步拓展研究; 另一方面, 本文的检测在训练过程中损失函数曲线发生多次抖动, 需要进一步从模型层面、模型训练层面进行研究改进; 最后在实用时, 通常面临褶皱、印章、模糊等各种各样的干扰噪声, 如何提升模型的鲁棒性也是进一步研究的重要课题.

猜你喜欢

关键点结构化发票
借助问题情境,让结构化教学真实发生
论建筑工程管理关键点
肉兔育肥抓好七个关键点
改进的非结构化对等网络动态搜索算法
深度学习的单元结构化教学实践与思考
浅谈医院财务报销发票的审核
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
关于发票显示额外费用的分歧
利用定义法破解关键点
全国增值税发票查验平台启用