一种报销发票识别方法与流程

文档序号:32305154发布日期:2022-11-23 09:44阅读:142来源:国知局
一种报销发票识别方法与流程

1.本发明涉及发票识别技术领域,尤其涉及一种报销发票识别方法。


背景技术:

2.财务管理面临的难题是大量的数据采集和信息处理工作,不管是个人还是企业的经济活动,开具发票意识、凭票才能进行报销的认识越发普及,在报销的流程中,由于消费类别的不同,通常会在一张报销单上粘贴多张不同类型的发票,由于发票的形状不同,为了节省纸张的幅面空间,有的发票会竖着粘贴或倒着粘贴,结果是发票多样且位置不固定,现有的报销发票识别常常出现漏识别或者识别失败的情况,从而降低公司对财务发票的精细化管理水平。
3.为此,推出了发票自动识别解决方案,通过利用发票识别技术,批量采集增值税发票等票据上的信息,并输出结构化的数据,与传统的人工录入数据相比,大大的减少了财务人员的工作量,提升了其工作效率。
4.然而,现有报销发票识别技术中存在以下几个弊端:
5.(1)现有的报销发票识别匹配默认输入图片质量较高,且图片中默认一张发票,且图片中的文字均在发票内,当发票背景较为复杂上难以处理或者容易匹配错误;
6.(2)现有部分报销发票识别匹配并不对发票角度进行矫正,这种情况导致文本检测识别准确率比较低,常常出现漏识别或者识别失败的问题,然而,部分对发票进行角度矫正,也是基于发票表格的角点,难以矫正没有表格的发票角度;
7.(3)现有的报销发票识别匹配通常针对某一类报销发票构建模板,再进行检测识别,且由于图片质量要求高,难以适应多种报销发票的识别。


技术实现要素:

8.为了解决上述背景技术中所提到的技术问题,而提出的一种报销发票识别方法。
9.为了实现上述目的,本发明采用了如下技术方案:
10.一种报销发票识别方法,包括以下步骤:
11.s1、待测图片进行发票实例检测和分割;
12.s2、根据分割结果,获得发票目标框和目标框内发票mask,并根据发票目标框坐标,切割单发票图片;
13.s3、对单发票图片进行ocr识别,获得识别结果,并根据识别结果判断发票类型;
14.s4、根据单发票图片以及其对应的mask和发票类型,通过角度矫正算法,获得0度或者180度的发票角度矫正图片;
15.s5、将发票角度矫正图片输入到已训练的方向分类器,输出0度发票图片;
16.s6、将0度发票图片输入到已训练的文本检测模型,获得文本框位置;
17.s7、对文本框位置进行方向分类,转正文本区域;
18.s8、将转正后的文本区域输入到已训练的文本识别模型,获得识别结果;
19.s9、根据文本框位置和识别结果,以及发票类型,通过文本匹配规则,完成文本匹配;
20.s10、根据发票文本匹配结果,通过发票验真接口实现发票验真。
21.作为上述技术方案的进一步描述:
22.所述步骤s4中,角度验证算法步骤包括:
23.s41、获得单发票图片以及其对应的mask二值图;
24.s42、对mask二值图通过opencv中findcontours获得发票目标边缘点;
25.s43、用minarearect方法获得发票边缘的最小外接矩形rect;
26.s44、根据发票类型,分别计算竖票和横票与水平方向所夹角度;
27.s45、使用getrotationmatrix2d()和warpaffine将发票转正至与水平方向夹角为0度。
28.作为上述技术方案的进一步描述:
29.所述步骤s9中,所述文本匹配规则包括:
30.s91、针对不同发票类型的发票预设待识别关键字;
31.s92、根据文本检测结果,若关键字和值出现在同一文本框,则分离关键字和数值,完成文本匹配;
32.s93、若关键字和值未出现在同一文本框,则通过设置参数框延长方向和延长比例来查找是否存在与该关键字文本框相交的其他文本框,若存在相交框,则合并两个文本框内容,分离关键字和值完成文本匹配,若不存在相交框,则文本匹配失败。
33.作为上述技术方案的进一步描述:
34.所述步骤s93中,关键字文本框表示为[center_x,center_y,w,h],其中center_x,center_y为文本框中心坐标,w,h为文本框宽度和高度;
[0035]
设延长比例为ratio,当延长方向为水平向右,则延长后的文本框为[center_x+(ratio-1)*w/2,center_y,w*ratio,h];
[0036]
当延长方向为垂直向下,则延长后的文本框为[center_x,center_y+(ratio-1)*h/2,w,h*ratio];
[0037]
当延长方向为右下方向,则延长后的文本框为[center_x+(ratio-1)*w/2,center_y+(ratio-1)*h/2,w*ratio,h*ratio]
[0038]
作为上述技术方案的进一步描述:
[0039]
所述步骤s1中,通过已训练的maskrcnn网络进行待检测图片的发票实例检测和分割,通过训练数据集对maskrcnn网络的进行训练,训练步骤如下:
[0040]
s11、对maskrcnn网络权重初始化,使用在imagenet数据集预训练好的网络参数对backbone网络进行参数初始化;
[0041]
s12、将训练数据集图片样本按照短边随机缩放,并利用resnet50+fpn网络来提取训练样本图像的整体特征图;
[0042]
s13、将整体特征图输入到rpn网络中,预测出roi候选区域,根据候选区域目标框和标注目标框的重叠比挑选正负样本;
[0043]
s14、对正负样本对应特征图上的roi候选区域进行roialign池化计算,获得固定尺寸的候选特征图;
[0044]
s15、对候选特征图进行分类和目标框的回归计算;
[0045]
s16、计算maskrcnn网络的损失函数,通过随机梯度算法对损失函数进行梯度计算,并更新maskrcnn网络的权重;
[0046]
s17、重复步骤s12-s16,训练至少20轮次迭代后停止训练,保存maskrcnn网络,即获得已训练的maskrcnn网络。
[0047]
作为上述技术方案的进一步描述:
[0048]
所述步骤s14中,在进行roialign池化计算时,首先,将roi区域目标框映射到特征图上,再根据最小外接矩形算法,得到特征图像roi区域,将roi区域划分成m
×
m个网格,每个网格选取特征图上4个点进行双线性差值,最后得到尺寸为m
×
m的特征图。
[0049]
作为上述技术方案的进一步描述:
[0050]
所述步骤s2中,发票目标框和目标框内发票mask的获取步骤如下:
[0051]
s21、对原图进行大小调整,获得待测图片;
[0052]
s22、待测图片输入到通过maskrcnn网络,预测结果插值处理成原图尺寸,获得发票目标框和目标框内发票mask。
[0053]
作为上述技术方案的进一步描述:
[0054]
所述方向分类器采用卷积神经网络模型,模型包括cnn主干网络和流模块,输入数据图像大小resize到224x224,然后输入到cnn主干网络进行卷积提取特征生成特征图(7x7),在流模块中使用步长大于1的深度卷积(dwconv)层进行下采样,然后将特征图(7x7)输出为1维特征向量(1x1024)。
[0055]
作为上述技术方案的进一步描述:
[0056]
所述cnn主干网络包括blocka和blockb,blocka是mobilenetv2中提出的逆残差块,blockb作为模型的下采样模块,blockb左侧辅助分支使用avg pool,在cnn主干网络中。
[0057]
综上所述,由于采用了上述技术方案,本发明的有益效果是:(1)本方法支持报销发票图片中出现多张多类型的处理场景;(2)对报销发票进行角度矫正,提高发票识别准确率,降低误识别与漏识别率;(3)对不少于12种发票进行测试,适用于多类型包括电子发票或者拍摄图片等各种发票识别,也适用于有表格无表格的发票;(4)对报销发票进行接口验真,识别虚假发票。
附图说明
[0058]
图1示出了根据本发明实施例提供的一种报销发票识别方法的工作流程示意图;
[0059]
图2示出了根据本发明实施例提供的一种报销发票识别方法的maskrcnn网络和方向分类器训练流程示意图;
[0060]
图3示出了根据本发明实施例提供的一种报销发票识别方法的maskrcnn网络结构示意图;
[0061]
图4示出了根据本发明实施例提供的一种报销发票识别方法的方向分类器结构示意图;
[0062]
图5示出了根据本发明实施例提供的一种报销发票识别方法的cnn主干网络结构示意图;
[0063]
图6示出了根据本发明实施例提供的一种报销发票识别方法的cnn主干网络结构
模块示意图。
具体实施方式
[0064]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0065]
实施例一
[0066]
请参阅图1-6,本发明提供一种技术方案:一种报销发票识别方法,包括以下步骤:
[0067]
s1、通过已训练的maskrcnn网络进行待检测图片的发票实例检测和分割;
[0068]
具体的,通过训练数据集对maskrcnn网络的进行训练,maskrcnn网络对fasterrcnn进行扩展,添加一个分支对预测的目标检测框进一步预测mask掩膜,训练步骤如下:
[0069]
s11、对maskrcnn网络权重初始化,使用在imagenet数据集预训练好的网络参数对backbone网络进行参数初始化;
[0070]
s12、将训练数据集图片样本按照短边[640,672,704,736,768,800]随机缩放,并利用resnet50+fpn网络来提取训练样本图像的整体特征图;
[0071]
s13、将整体特征图输入到rpn网络中,预测出roi候选区域,根据候选区域目标框和标注目标框的重叠比挑选正负样本;
[0072]
s14、对正负样本对应特征图上的roi候选区域进行roialign池化计算,获得固定尺寸的候选特征图,具体的,roialign池化计算时,首先将roi区域目标框映射到特征图上,再根据最小外接矩形算法,得到特征图像roi区域,将roi区域划分成m
×
m个网格,每个网格选取特征图上4个点进行双线性差值,最后得到尺寸为m
×
m的特征图;
[0073]
s15、对候选特征图进行分类和目标框的回归计算;
[0074]
s16、计算maskrcnn网络的损失函数,通过随机梯度算法对损失函数进行梯度计算,并更新maskrcnn网络的权重;
[0075]
s17、重复步骤s12-s16,训练至少20轮次迭代后停止训练,保存maskrcnn网络,即获得已训练的maskrcnn网络;
[0076]
进一步地,训练数据集包括训练集和验证集:挑选12类常用的报销发票共2132张图片作为发票实例分割训练与验证数据集,进行样本标注,标注出图像中不同发票多边形区域、类别,数据集按照8:2分割成训练集和验证集,处理为coco数据格式;
[0077]
s2、根据分割结果,获得发票目标框和目标框内发票mask,并根据发票目标框坐标,切割单发票图片;
[0078]
具体的,发票目标框和目标框内发票mask的获取步骤如下:
[0079]
s21、对原图进行大小调整,获得待测图片;
[0080]
s22、待测图片输入到通过maskrcnn网络,预测结果插值处理成原图尺寸,获得发票目标框和目标框内发票mask;
[0081]
s3、对单发票图片进行ocr识别,获得识别结果,并根据识别结果判断发票类型;
[0082]
s4、根据单发票图片以及其对应的mask和发票类型,通过角度矫正算法,获得0度
或者180度的发票角度矫正图片;
[0083]
具体的,角度验证算法步骤包括:
[0084]
s41、获得单发票图片以及其对应的mask二值图;
[0085]
s42、对mask二值图通过opencv中findcontours获得发票目标边缘点;
[0086]
s43、用minarearect方法获得发票边缘的最小外接矩形rect,包括矩形中心rect[0],矩形长和宽rect[1],矩形的角度rect[3];
[0087]
s44、根据发票类型,分别计算竖票和横票与水平方向所夹角度;
[0088]
s45、使用getrotationmatrix2d()和warpaffine将发票转正至与水平方向夹角为0度;
[0089]
s5、将发票角度矫正图片输入到已训练的方向分类器,输出0度发票图片;
[0090]
具体的,方向分类器采用卷积神经网络模型做图像分类,其结构图如图4所示;
[0091]
首先,输入数据图像大小resize到224x224,然后输入到主干网络进行卷积提取特征等操作后生成特征图(7x7),其中,cnn主干网络主要由blocka和blockb构建,blocka是mobilenetv2中提出的逆残差块,blockb作为模型的下采样模块,blockb左侧辅助分支使用avg pool,是因为它能够在不同的感受野中嵌入多尺度信息和聚合特征,带来性能的提高;
[0092]
其次,经过cnn主干网络后,为了更好的提取特征图信息,使用了流模块,如图4所示,在流模块中使用步长大于1的深度卷积(dwconv)层进行下采样,然后将其输出为1维特征向量(1x1024),这样可减少全连接层引起的过拟合风险,后用该特征向量计算损失进行预测;
[0093]
最后,主干网络初始阶段采用快速下采样的策略,这能使特征图的尺寸迅速减小,且花费较少参数,可以避免算力有限的慢速下采样过程导致的特征嵌入能力弱和处理时间长的问题;
[0094]
由于单张图片可能包含多张发票,因此要先将原图处理为单张发票来训练深度学习方向分类器,如图1所示,具体的,方向分类器的训练步骤如下:
[0095]
s51、将原发票图片通过已训练完成maskrcnn,获得单发票目标框与其mask;
[0096]
s52、判定单发票类型;
[0097]
s53、矫正单发票角度,获得0或180度的发票图片;
[0098]
s54、数据标注,生成0度图片和180度图片各1831张;
[0099]
s55、以8:2的比例作为方向分类器的训练与验证数据集;
[0100]
s6、将0度发票图片输入到已训练的文本检测模型,获得文本框位置;
[0101]
s7、对文本框位置进行方向分类,转正文本区域;
[0102]
s8、将转正后的文本区域输入已训练的文本识别模型,获得识别结果;
[0103]
s9、根据文本框位置和识别结果,以及发票类型,通过文本匹配规则,完成文本匹配;
[0104]
具体的,文本匹配规则包括:
[0105]
s91、针对不同发票类型的发票预设待识别关键字,比如增值税发票的关键字为['发票代码','发票号码','开票日期','校验码'......];
[0106]
s92、根据文本检测结果,若关键字和值出现在同一文本框,则分离关键字和数值,完成文本匹配;
[0107]
s93、若关键字和值未出现在同一文本框,则通过设置参数框延长方向和延长比例来查找是否存在与该关键字文本框相交的其他文本框,若存在相交框,则合并两个文本框内容,分离关键字和值完成文本匹配,若不存在相交框,则文本匹配失败,其中,为解决文本关键字与值匹配的问题,通过设置不同参数来自定义文本框延长比例,更加有效的实现文本关键信息匹配;
[0108]
步骤s93是用于解决文本关键字及其值的匹配问题,当关键字与值的间隔较大,文本识别模型将从这两个文本对象检测出两个框.为了让这两个文本框匹配起来,我们预先知道,关键字文本框和值文本框是在水平方向上,还是垂直方向上,可以通过寻找与关键字文本框对应方向上的所有文本框位置信息,获得对应的值,因此,本发明提出一种更优秀的方法来找关键字的值,即通过文本框是否相交来匹配关键字和值,设置延长方向为水平向右或者垂直向下或者右下方向,设置延长比例为1.5~5来扩大关键字的文本框,通常这样设置以后会得到一个与关键字文本框相交的框,其文本识别结果为关键字的值;
[0109]
关键字文本框表示为[center_x,center_y,w,h],其中center_x,center_y为文本框中心坐标,w,h为文本框宽度和高度;
[0110]
设延长比例为ratio,当延长方向为水平向右,则延长后的文本框为[center_x+(ratio-1)*w/2,center_y,w*ratio,h];当延长方向为垂直向下,则延长后的文本框为[center_x,center_y+(ratio-1)*h/2,w,h*ratio];当延长方向为右下方向,则延长后的文本框为[center_x+(ratio-1)*w/2,center_y+(ratio-1)*h/2,w*ratio,h*ratio];遍历所有文本框,找到与扩大后的文本框相交的文本框即为其值框,通过调整参数自定义文本框延长比例,参数通常设置为单个,若存在多个,默认取第一个;
[0111]
s10、根据发票文本匹配结果,通过发票验真接口实现发票验真。
[0112]
具体的,与现有公开号为:cn111062262a,名称为“发票识别方法以及发票识别装置”的专利相比较,该专利需要首先识别发票表格的角点,但是部分报销发票不包含表格,因此角点检测不好,其后续文本检测等操作都会失败,本发明则支持包含和不包含表格的报销发票,例如出租车发票,过路费发票,动车票等;
[0113]
与现有公开号为:cn111768565b,名称为“一种增值税发票中发票代码识别后处理方法”的专利相比较,该专利只是对增值税发票代码进行后处理操作,具有一定的局限性;
[0114]
与现有公开号为:cn114004962a,名称为“一种电力营业厅发票ocr识别方法”的专利相比较,该专利运用投影法确定文本角度,不依赖于数据量的多少,缺点是难以识别带噪声的发票,如发票上存在笔迹或者拍摄存在阴影,都会对发票识别结果产生影响,本发明运用深度学习构建发票实例分割模型,更有效地确定发票方向;
[0115]
与现有公开号为:cn109977957a,名称为“一种基于深度学习的发票识别方法及系统”的专利相比较,该专利使用faster-rcnn模型训练发票检测模型,后对发票目标进行ocr识别,但是并未涉及发票ocr识别的精度提升,本发明对发票进行mask实例分割,在检测发票目标的同时,获得发票mask,用于对发票角度矫正,再对矫正后发票进行方向分类和ocr识别,目的是提高发票ocr的识别精度;
[0116]
与现有公开号为:cn111062262a,名称为“发票识别方法以及发票识别装置”的专利相比较,该专利针对不同发票建立角点图模型模板,然后对单元格进行ocr检测识别,是针对表格类发票的一种识别方法,但是,本发明支持多种类型发票识别,包括表格类和不含
表格的发票识别;
[0117]
综上,本发明在报销发票识别上具有以下多个优势:(1)本方法支持报销发票图片中出现多张多类型的处理场景;(2)对报销发票进行角度矫正,提高发票识别准确率,降低误识别与漏识别率;(3)对不少于12种发票进行测试,适用于多类型包括电子发票或者拍摄图片等各种发票识别,也适用于有表格无表格的发票;(4)对报销发票进行接口验真,识别虚假发票。
[0118]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1