一种自动解析增值税发票识别结果的方法与流程

文档序号:13804568阅读:344来源:国知局

本发明涉及计算机图像处理技术领域,特别涉及一种自动解析增值税发票识别结果的方法。



背景技术:

现有的解析增值税发票识别结果的方法自项目上线使用以来,主要存在以下的缺陷:

(1)、解析速度较慢,通常解析一张增值税发票识别结果平均需要1分钟以上;

(2)、解析容错率较低,准确率达不到用户既定目标,订单能成功地由ocr节点到要素纠偏节点的数据较少;

(3)、后台程序采用单线程方式进行,受服务器网络通讯和内存影响,每次仅能解析一张图像的识别结果;

(4)、下载和解析的定时任务轮询时间每分钟执行一次,其中大部分时间处于空闲状态,增加了订单解析的时间,订单很容易超时。

基于以上缺陷的存在,对原有的解析方式做了技术分析,产生以上缺陷的原因如下:

单线程串行处理:目前解析增值税发票识别结果的方式是一次仅处理一个,串行操作,应当进行并行操作

轮询时间过长:目前单次处理的轮询时间以每分钟为单位,在单位轮询时间内仅执行一次单线程操作,使得单位轮询时间内大部分时间为空闲状态

服务器连接未复用:每一张增值税发票识别结果包含很多要素信息,针对每个要素均重复去获取服务器连接进行上传要素图

健壮性低:增值税发票识别结果中可能包含乱码值,针对这些乱码值得异常处理做的不全面,容错率较低,导致订单的解析很容易卡死。



技术实现要素:

本发明要解决的技术问题是:提供一种自动解析增值税发票识别结果的方法,解决现有技术中增值税发票识别结果解析效率低的问题。

为解决上述问题,本发明采用的技术方案是:采用轮询的方式下载和解析远程ai服务器上的增值税发票识别结果,单个轮询时间批量下载多个增值税发票识别结果;单个轮询时间内,以多线程的方式解析增值税发票识别结果;上传源图像要素图集复用远程文件fastdfs服务器连接;针对增值税发票中的要素信息,若要素信息包含明显异常值,则自动解析成正确值,若要素信息包含乱码值,则跳过现有业务使用人原手动纠偏。

进一步的,进入单位轮询时间内,先判断上一个轮询时间是否释放所,如未释放则继续执行上一个轮询时间内的解析任务,如已释放则执行最新的解析任务。

进一步的,轮询的间隔为10s。

进一步的,多线程的解析增值税发票识别结果时,根据服务器当前cpu可用内核数作为多线程个数。

本发明的有益效果是:本发明对于图像识别结果的解析,采用动态多线程技术,批量处理识别结果;ai识别速度较快,定时任务轮询时间大幅降低,以最大限度减少订单累计等待时间,避免订单因累计等待时间而超时;极端情况下,在单位解析轮询时间之内,多线程批量处理票据未全部完成,等下一个解析轮询时间进来后,上一个解析轮询时间之内未完成的线程处理继续执行,本发明通过可重入锁来控制实现;对于图像识别结果xml文件采用dom解析实现,结合opencv技术对图片进行拆分形成要素;日志的记录通过消息队列发送消息的方式来实现。因此,增值税发票图像识别速度显著提升,识别准确率大大的提高。在很短的时间内,均能从识别节点到要素纠偏节点,用户体验感显著提升,获得认可,更易于接受,在使用应用了该技术的项目后心情无比愉悦

附图说明

图1为实施例的流程图。

具体实施方式

1、首先介绍现有的解析增值税发票的流程。通过定时任务轮询访问服务器文件目录的方式实现自动下载和解析任务,下载任务在单位轮询时间内向远程服务器获取已识别的增值税发票结果(以xml文件方式体现),保存至指定目录,解析任务在单位轮询时间内遍历指定的下载目录,开始解析下载文件。单个轮询时间之内仅解析一个,根据解析得到发票要素坐标信息,分割源图像获取要素图像集,并上传到远程fastdfs文件服务器。以上便是整个解析流程,其关键流程如下:

(1)轮询下载增值税发票识别结果至处理服务器指定目录。

(2)轮询访问处理服务器识别结果下载目录,获取文件流。

(3)开始解析文件,输出发票要素坐标信息。

(4)根据要素坐标信息,以长和宽各扩增2倍值(保证要素图局部完整)确定要素局部区域,通过opencv剪切局部区域得到要素图像,并上传。

(5)记录解析日志。

2、在上述关键流程中,经分析有四处地方造成解析速度慢、解析准确度低,分别如下:

a.下载和解析单位轮询时间分别为1分钟,针对单张增值税发票的下载和解析,自动处理时间太长,长达3~5分钟。

b.在解析单位轮询时间内,仅能解析一张票据,绝大部分票据解析耗时稳定在10s以内,超过50s以上的时间处于空闲。

c.上传要素图集时未复用远程文件fastdfs服务器连接,导致每上传一张要素图均获取一次服务器连接,累计耗时太长。

d.对增值税发票识别结果中明显异常的字符串或者乱码,解析未做有效规避,造成准确率低。

针对以上所存在的问题,在不影响原有的解析流程下,分别采取了下面的技术方案来解决:

(1)下载轮询时间缩短至10s,单个轮询时间批量下载多个增值税发票识别结果

(2)通过现有的大量解析案例分析,得出解析单张增值税发票耗时基本稳定在5s左右,缩短解析轮询时间至10s,极端情况下,单个增值税发票解析耗时超过10s,采用可重入锁方式规避,进入单位轮询时间内,先判断上一个轮询时间是否释放所,如未释放则继续执行上一个轮询时间内的解析任务,如已释放则执行最新的解析任务

(3)单个轮询时间内,以多线程的方式解析,采取以空间换时间的做法提升解析性能,使达到高性能解析,动态获取服务器空闲cpu内核数作为单个轮询时间多线程个数,每个单位轮询时间内线程数可能不相同,实现了动态多线程解析技术

(4)上传源图像要素图集复用远程文件fastdfs服务器连接,获取要素图集之前创建fastdfs连接,获取要素图集之后,循环操作图像集用使用初始化的fastdfs连接上传,上传结束关闭连接,避免老方案中每个要素图上传均获取一次fastdfs连接,提升了解析效率。

(5)针对增值税发票中的要素信息,若要素信息包含明显异常值的自动解析成正确之,若要素信息包含乱码值则跳过现有业务使用人原手动纠偏,从而提升了准确率。

3、实施例

实施例提供一种自动解析增值税发票识别结果的方法,该方法在不影响增值税发票识别结果的正确解析流程情况下,能更迅速、更高效、更准确地解析增值税发票识别结果,通过对解析流程的优化,减小单个票据解析耗时、减小系统cpu开销、提升解析结果正确率,达到高性能自动解析学习识别增值税发票的目的。如图1所示,步骤如下:

第一步:将增值税发票识别结果在单位轮询时间批量下载到处理服务器,轮询间隔时间为10s。

第二部:解析任务单位轮询时间内,访问增值税发票识别结果目录,以动态多线程+可重入锁的方式批量解析。

第三步:针对单个线程,共享服务器连接,解析识别结果,得到要素坐标信息。所有线程都执行结束后,关闭服务器连接。

第四步:根据坐标信息分割源图像,获取到要素图集,并批量上传至远程服务器。

第五步:根据执行结果修改并保存票据集对应订单的状态,并记录日志,单次处理结束。

以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1