一种电子发票全票面信息提取方法及系统与流程

文档序号:31770654发布日期:2022-10-12 06:37阅读:157来源:国知局
一种电子发票全票面信息提取方法及系统与流程

1.本发明属于电子发票识别技术领域,特别是关于一种电子发票全票面信息提取方法及系统。


背景技术:

2.随着电子发票的日益普及,电子发票版式文件的使用范围越来越广,很多业务系统在收到电子发票版式文件后都需要提取票面信息,典型的使用场景有两个,一是企业报销系统中,需要采集电子发票信息用于简化人工录入的工作量;二是企业电子会计档案中,通过解析发票数据用于全文检索。由此可见,快速准确地提取发票信息是各业务系统能够有效利用电子发票版式文件的关键技术。
3.电子发票使用范围越来越广。国内第三方电子发票服务平台基本具备pdf电子发票的开具能力,因此目前电子发票绝大部分是pdf格式的。另外,近年来免费的版式文件基础服务采用国标ofd版式格式,因此ofd电子发票也逐渐流行。
4.pdf是由adobe用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式,2008年后的pdf参考1.7版成为了iso 32000:1:2008,从此pdf就成为了正式的国际标准。pdf文件以postscript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即pdf会忠实地再现原稿的每一个字符、颜色以及图象。
5.ofd是我国自主研发的版式文档格式标准open fixed-layout document format的缩写,目前是党政机关电子公文存储、交换、归档的唯一文件格式,同时作为新版电子发票承载格式,另外在电子证照、电子会计档案等领域也都被广泛使用。
6.目前电子发票信息提取的方式是首先通过影像系统将pdf/ofd电子发票版式文件转成图像格式,少量信息可以通过识别票面二维码获取,更多的信息通过表格识别定位表格单元,然后通过ocr技术识别发票其他字段的文字信息。
7.现有技术的缺点首先是pdf/ofd转图像需要转换时间及额外占用磁盘存储空间,如果图像分辨率低,转换时间稍短一些磁盘占用空间稍小一些,但后续ocr识别效果不好,如果图像分辨率高则转换时间长且占用磁盘空间大;其次是ocr训练需要大量的样本数据,测试数据覆盖范围有可能不全面,模型识别效果仍然不理想,同时ocr识别也是个耗时的过程;再次,pdf发票没有严格的排版标准,国内第三方平台和企业自建平台比较多,可以说pdf发票目前的状态是杂乱无章,版面尺寸、使用字体、特殊字符、排版规则差异非常大,总体来说这些问题对于目前走ocr+表格识别路线的技术方案来说都是无法回避的挑战。


技术实现要素:

8.本发明的目的在于提供一种电子发票全票面信息提取方法及系统,其能够解决通过ocr技术识别ofd格式电子发票信息效果差的技术问题。
9.本发明提供了一种电子发票全票面信息提取方法,包括以下步骤:
10.s1,获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区
域划分为多个子区域;
11.s2,搜索电子发票元素信息标签,精确定位坐标范围;
12.s3,解析文本内容,提取文本数据;
13.s4,结合业务含义,清洗文本数据以获取票面信息。
14.优选地,所述s1具体包括:
15.s101,通过对税务总局电子发票版式文件格式规范的分析,将主区域分为a-票头、b-购买方信息和密码区、c-应税明细和合计、d-价税合计、e-销售方信息和备注、f-票尾;
16.s102,对主区域进行拆分得到子区域为a1-机器编号、a2-代码至校验码、b1-购方信息、b2-密码区、c1-项目、c2-合计、d1-价税合计、e1-销方信息、e2-备注、f-收款至开票;
17.s103,进行表格识别与区域识别。
18.优选地,所述s103具体包括:
19.表格识别:枚举并收集所有路线,将路线打散,拆分出线段,采用端点重合及方向一致的方式将线段合并;
20.区域识别:识别票头双线,将左侧识别为a1,右侧识别为a2;表格外围上下2条框线,上边缘以上为a1,a2,下边缘以下为f;表格内中间三条横线,分割b、c、d;表格内位于b区域内的三条竖线将b区域分割为b1、b2;表格内位于c区域内的七条竖线将c1分割为项目名称、规则型号、单位、数量、单价、金额、税率、税额;表格内位于d区域内的一条竖线分割出d1;表格内位于e区域内的三条竖线分割出e1、e2。
21.优选地,所述s2具体包括:针对单条发票元素信息的坐标位置对子区域进行切割,一部分位置可以依靠子区域边框,另一部分需要定位元素的标题位置,通过文本搜索方式定位固定元素名称的坐标。
22.优选地,所述s3具体包括:根据版式文件的语法标准,解析票面文本数据,包括字符的unicode值编码以及排版信息,计算字符的精确矩形坐标,根据元素的定位信息提取文本数据。
23.优选地,所述s4具体包括:根据电子发票元素的业务含义,根据税务总局电子发票版式文件格式规范中数据字段类型的定义,部分元素的纯数字或者是数字、英文字符的组合,部分元素是日期格式,同时处理数据与前置人民币、冒号等符号的粘连。
24.本发明还提供了一种电子发票全票面信息提取系统,所述系统用于实现电子发票全票面信息提取方法的步骤,包括:
25.区域划分模块,用于获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区域划分为多个子区域;
26.区域定位模块,用于搜索电子发票元素信息标签,精确定位坐标范围;
27.文本解析模块,用于解析文本内容,提取文本数据;
28.数据清洗模块,用于结合业务含义,清洗文本数据以获取票面信息。
29.本发明还提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机管理类程序时实现电子发票全票面信息提取方法的步骤。
30.本发明还提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现电子发票全票面信息提取方法的步骤。
31.与现有技术相比,本发明提供了一种电子发票全票面信息提取方法及系统,其中
方法包括:获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区域划分为多个子区域;搜索电子发票元素信息标签,精确定位坐标范围;解析文本内容,提取文本数据结合业务含义,清洗文本数据以获取票面信息。通过获取电子发票板式文件,判断是否已包含文本图形,若是则进行数据解析,对文本图形中的文字图形图像进行检测,搜索标签以进行元素定位后再进行文本提取,最后进行数据清洗。该方案实现了一个基于规则的专家系统,通过最直接的方式分析版式文件中的图形信息,通过打散、分类进行简单的发票表格几何图形检测,通过文字区域信息提取技术结合聚类算法精确提取票面元素信息,最终形成能够快速提取发票全票面信息的技术方案,推动业务系统对于发票版式文件的利用效率提升。
附图说明
32.图1为本发明提供的一种电子发票全票面信息提取方法流程图;
33.图2为本发明提供的一种可能的电子设备的硬件结构示意图;
34.图3为本发明提供的一种可能的计算机可读存储介质的硬件结构示意图;
35.图4为本发明提供的电子发票主区域子区域划分图。
具体实施方式
36.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
37.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
38.如图1和图4所示,根据本发明优选实施方式的一种电子发票全票面信息提取方法及系统,其中方法包括:获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区域划分为多个子区域;搜索电子发票元素信息标签,精确定位坐标范围;解析文本内容,提取文本数据结合业务含义,清洗文本数据以获取票面信息。通过获取电子发票板式文件,判断是否已包含文本图形,若是则进行数据解析,对文本图形中的文字图形图像进行检测,搜索标签以进行元素定位后再进行文本提取,最后进行数据清洗。该方案实现了一个基于规则的专家系统,通过最直接的方式分析版式文件中的图形信息,通过打散、分类进行简单的发票表格几何图形检测,通过文字区域信息提取技术结合聚类算法精确提取票面元素信息,最终形成能够快速提取发票全票面信息的技术方案,推动业务系统对于发票版式文件的利用效率提升。
39.基于电子发票版式文件,解析文字信息、图形信息、图像信息等作为输入数据,结合税务总局电子发票版式文件格式规范以及针对国内主要的第三方电子发票平台开具的发票版式文件进行的票面分析。具体地,首先对电子发票版式样式进行主区域划分,然后通过标签文本精确定位元素内容的坐标区域,解析文本内容,提取文本数据,最后结合业务含义,根据不同元素的数据类型进行数据清洗,从而获得电子发票票面数据。
40.下面就具体实施方法对本发明作进一步详细说明,见图1。
41.s1,检测几何图形,识别表格主区域。通过对税务总局电子发票版式文件格式规范
的分析,主区域清晰明确,分为票头、购买方信息和密码区、应税明细和合计、价税合计、销售方信息和备注、票尾几个部分。同时,各主区域可以根据表格框线自然的拆分成多个子区域。电子发票版式文件几何图形检测的处理难点是主体表格框线的识别,从视觉效果上看似一致的表格在技术层面上有多重实现方式:简单的方式可以采用线段的描边表示一条线段,复杂一点的可以使用矩形填充,甚至是裁剪;表格可以是多条线段组成的,也可以是个多边形或者是某种组合。这就需要对线段进行识别,拆分,重组,从而识别发票的主区域和子区域。具体包括:
42.(1)划分区域(主区域):a-票头、b-购买方信息和密码区、c-应税明细和合计、d-价税合计、e-销售方信息和备注、f-票尾,见图4。
43.(2)主区域拆分:a1-机器编号、a2-代码至校验码、b1-购方信息、b2-密码区、c1-项目、c2-合计、d1-价税合计、e1-销方信息、e2-备注、f-收款至开票,见图4。
44.(3)表格识别:
45.3.1)枚举并收集所有路线;
46.3.2)将路线打散,拆分出线段;
47.3.3)线段合并(合并原则,a.端点重合b.方向一致)。
48.(4)区域识别:
49.4.1)票头双线,左侧a1,右侧a2;
50.4.2)表格外围上下2条框线,上边缘以上a1,a2,下边缘以下为f;
51.4.3)表格内中间三条横线,分割b、c、d三个区域;
52.4.4)b区域分割,表格内位于b区域内的三条竖线将b区域分割为b1、b2;
53.4.5)c区域分割,表格内位于c区域内的七条竖线分割c1的项目名称、规则型号、单位、数量、单价、金额、税率、税额;
54.4.6)d区域分割,表格内位于d区域内的一条竖线分割出d1;
55.4.7)e区域分割,表格内位于e区域内的三条竖线分割出e1、e2。
56.s2,搜索元素标签,精确定位坐标范围。单条发票元素信息的坐标位置需要进一步对子区域进行切割,一部分位置可以依靠子区域边框,另一部分需要定位元素的标题位置,通过文本搜索技术定位固定元素名称的坐标,同时兼容不同平台开具发票的特殊字符,如货币符号、冒号的使用,从而精确定位元素内容的坐标范围。具体包括:
57.判断冒号全角半角,判断区域链发票,搜索“电子支付标识”,区域链发票没有“机器编号:”,非区域链发票搜索“机器编号:”右侧为文本区域,搜索“发票代码:”右侧为发票代码、发票号码、开票日期、校验码的文本区域,搜索“纳税人识别号:”右侧为购买方名称、纳税人识别号、地址电话、开户行及账号(或电子支付标识)的文本区域,搜索“合计”结合金额、税额栏定位合计金额、合计税额的文本区域,搜索“规格型号”、“单位”定位项目条目上边缘;最后进行项目分割;搜索“(小写)”或“(小写)”左右分别为大小写价税合计的文本区域;搜索“纳税人识别号:”右侧为销售方名称、纳税人识别号、地址电话、开户行及账号的文本区域,搜索“(代开机关)”减除标识空间;搜索“收款人:”、“复核人:”、“开票人:”定位对应文本区域;密码区、备注区的文本区域由表格线自然分割。
58.其中,项目分割算法如下:
59.a.选择“数量”为基准行(数量一般不折行,都是数字比较简单);
60.b.筛选“数量”栏字符信息;
61.c.字符信息组成文本行,行数为项目数量;
62.e.项目其他栏信息处理,条目起始纵坐标取“数量”上边缘,条目终止纵坐标取下一条上边缘。
63.s3,解析文本内容,提取文本数据。根据版式文件的语法标准,解析票面文本数据,包括字符的unicode值编码以及排版信息,计算字符的精确矩形坐标,根据元素的定位信息提取文本数据。具体地:
64.(1)版式文件文本数据解析,获得所有字符的unicode编码及排版信息;
65.(2)遍历发票元素,定位提取文本数据。
66.s4,结合业务含义,清洗文本数据。数据清洗是获取票面信息的最后一步,通过数据清洗可以过滤非法数据,避免元素区域定位错误导致提取问题数据,数据清洗的依据是根据电子发票元素的业务含义,根据税务总局电子发票版式文件格式规范中数据字段类型的定义,部分元素的纯数字或者是数字、英文字符的组合,部分元素是日期格式,同时处理数据与前置人民币、冒号等符号的粘连。
67.(1)文本数据清洗,包括首部非法字符过滤,顺序调整(如开票日期),元素数据类型检查;
68.(2)文本数据更新。
69.与现有技术相比,本发明实施例的创新点如下:
70.(1)基于版式文件的内容数据提取电子发票票面信息的主体步骤,包括通过检测几何图形,识别表格主区域;搜索元素标签,精确定位坐标范围;解析文本内容,提取文本数据;结合业务含义,清洗文本数据;
71.(2)主区域、子区域、元素内容区域的划分方式和定位方法;
72.(3)表格线段识别的方法;
73.(4)发票元素切割的步骤和判断方法;
74.(5)票面数据的清洗方法。
75.本发明实施例还提供了一种电子发票全票面信息提取系统,所述系统用于实现电子发票全票面信息提取方法的步骤,包括:
76.区域划分模块,用于获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区域划分为多个子区域;
77.区域定位模块,用于搜索电子发票元素信息标签,精确定位坐标范围;
78.文本解析模块,用于解析文本内容,提取文本数据;
79.数据清洗模块,用于结合业务含义,清洗文本数据以获取票面信息。
80.请参阅图2为本发明实施例提供的电子设备的实施例示意图。如图2所示,本发明实施例提了一种电子设备,包括存储器1310、处理器1320及存储在存储器1310上并可在处理器1320上运行的计算机程序1311,处理器1320执行计算机程序1311时实现以下步骤:s1,获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区域划分为多个子区域;
81.s2,搜索电子发票元素信息标签,精确定位坐标范围;
82.s3,解析文本内容,提取文本数据;
83.s4,结合业务含义,清洗文本数据以获取票面信息。
84.请参阅图3为本发明提供的一种计算机可读存储介质的实施例示意图。如图3所示,本实施例提供了一种计算机可读存储介质1400,其上存储有计算机程序1411,该计算机程序1411被处理器执行时实现如下步骤:s1,获取电子发票,检测几何图形,对电子发票版式样式进行主区划分,再对主区域划分为多个子区域;
85.s2,搜索电子发票元素信息标签,精确定位坐标范围;
86.s3,解析文本内容,提取文本数据;
87.s4,结合业务含义,清洗文本数据以获取票面信息。
88.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
89.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
90.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
91.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
92.前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1