票据内容识别方法、装置、介质及电子设备
技术领域
本公开涉及人工智能和图像识别技术领域,特别涉及一种票据内容识别方法、装置、介质及电子设备。
背景技术
NSTR(自然场景字符识别, nature scene text recognition)是一种特殊场景下的OCR识别(光学字符识别技术,optical character recognition)。一般场景下的OCR识别是针对特定文档的扫描图片所进行的识别,这些扫描图片的格式,背景,大小,颜色,光线方面通常都有确定的稳定性,可以很容易进行较为准确地识别;目前,NSTR场景下的识别需求越来越多,利用数码相机和手机等工具可以随意拍摄的带有文字的图片,对此类图片中内容的识别就属于NSTR场景下的识别。NSTR场景下的票据内容识别就是一种NSTR场景下的实际识别需求。然而,由于光线、拍摄角度、拍摄目标的运动等因素的存在,常导致拍摄到的票据图片存在扭曲,此时采用仅采用传统OCR识别技术无法高效完成对这些票据图片的识别,存在识别准确率不高、无法精确有效地提取信息的问题。
发明内容
在人工智能和图像识别技术领域,为了解决上述技术问题,本公开的目的在于提供一种票据内容识别方法、装置、介质及电子设备。
根据本公开的一方面,提供了一种票据内容识别方法,所述方法包括:
获取基准票据图片,其中,所述基准票据图片中标注了至少预定数目个基准特征字段区域和至少一个内容选定区域,每一所述基准特征字段区域记录了一个基准特征字段,各所述基准特征字段在所述基准票据图片中是唯一的;
确定各基准特征字段区域在所述基准票据图片中的位置信息和各基准特征字段区域中记录的基准特征字段;
获取与所述基准票据图片的版面格式一致的待识别票据图片;
对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息,其中,对于每一所述基准特征字段,所述多个特征字段中仅包括一个与该基准特征字段一致的特征字段,与所述基准特征字段一致的特征字段为目标特征字段;
基于各所述基准特征字段区域的位置信息和各所述目标特征字段的位置信息,计算透视变换矩阵;
对所述待识别票据图片进行缩放,使缩放后的所述待识别票据图片的大小与所述基准票据图片的大小一致;
利用所述透视变换矩阵对缩放后的所述待识别票据图片进行透视变换,得到变换后的待识别票据图片;
根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
根据本公开的另一方面,提供了一种票据内容识别装置,所述装置包括:
第一获取模块,被配置为获取基准票据图片,其中,所述基准票据图片中标注了至少预定数目个基准特征字段区域和至少一个内容选定区域,每一所述基准特征字段区域记录了一个基准特征字段,各所述基准特征字段在所述基准票据图片中是唯一的;
确定模块,被配置为确定各基准特征字段区域在所述基准票据图片中的位置信息和各基准特征字段区域中记录的基准特征字段;
第二获取模块,被配置为获取与所述基准票据图片的版面格式一致的待识别票据图片;
第一识别模块,被配置为对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息,其中,对于每一所述基准特征字段,所述多个特征字段中仅包括一个与该基准特征字段一致的特征字段,与所述基准特征字段一致的特征字段为目标特征字段;
计算模块,被配置为基于各所述基准特征字段区域的位置信息和各所述目标特征字段的位置信息,计算透视变换矩阵;
缩放模块,被配置为对所述待识别票据图片进行缩放,使缩放后的所述待识别票据图片的大小与所述基准票据图片的大小一致;
透视变换模块,被配置为利用所述透视变换矩阵对缩放后的所述待识别票据图片进行透视变换,得到变换后的待识别票据图片;
第二识别模块,被配置为根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
根据本公开的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开所提供的票据内容识别方法包括如下步骤:获取基准票据图片,其中,所述基准票据图片中标注了至少预定数目个基准特征字段区域和至少一个内容选定区域,每一所述基准特征字段区域记录了一个基准特征字段,各所述基准特征字段在所述基准票据图片中是唯一的;确定各基准特征字段区域在所述基准票据图片中的位置信息和各基准特征字段区域中记录的基准特征字段; 获取与所述基准票据图片的版面格式一致的待识别票据图片;对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息,其中,对于每一所述基准特征字段,所述多个特征字段中仅包括一个与该基准特征字段一致的特征字段,与所述基准特征字段一致的特征字段为目标特征字段;基于各所述基准特征字段区域的位置信息和各所述目标特征字段的位置信息,计算透视变换矩阵;对所述待识别票据图片进行缩放,使缩放后的所述待识别票据图片的大小与所述基准票据图片的大小一致;利用所述透视变换矩阵对缩放后的所述待识别票据图片进行透视变换,得到变换后的待识别票据图片;根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
此方法下,通过获取标注了基准特征字段区域和内容选定区域的基准票据图片,然后利用待识别票据图片和基准票据图片构建透视变换矩阵,最后在利用透视变换矩阵对待识别票据图片进行透视变换后,再对变换后的待识别票据图片进行内容识别,因此,对待识别票据图片中内容的角度进行了校正,从而提高了识别的准确率,能够精确有效地提取票据中的信息。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种票据内容识别方法的系统架构示意图。
图2是根据一示例性实施例示出的一种票据内容识别方法的流程图。
图3是根据一示例性实施例示出的一种可以用来建立基准票据图片的票据图片的示意图。
图4是根据一示例性实施例示出的标注了一个基准特征字段区域的票据图片的示意图。
图5是根据一示例性实施例示出的一种票据内容识别装置的框图。
图6是根据一示例性实施例示出的一种实现上述票据内容识别方法的电子设备示例框图。
图7是根据一示例性实施例示出的一种实现上述票据内容识别方法的程序产品。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种票据内容识别方法。票据内容识别是指识别出支票、汇票、发票、收据等凭证或证件的实体上的信息的过程。要识别的票据可以是纸张等材料制成的物理实体,也可以是能够存储于计算机相关设备中的电子实体,其中,当要识别的票据是由纸张等材料制成的物理实体时,可以通过拍照等方式将其转换为图片形式的电子实体,以便应用本公开提供的票据内容识别方法进行识别。理想情况下,以物理实体形式存在的票据在转换为电子实体的形式后,其应当与直接以为电子实体的形式存在的票据保持对齐,这样就可以对票据内容进行较为准确地识别;然而,在大多数情况下,以物理实体形式存在的票据在转换为电子实体的形式后,其并不能与直接以为电子实体的形式存在的票据保持对齐,比如,纸质发票在拍摄成图片后,发票的内容相对于图片可能会存在倾斜的情况,传统方式下的OCR识别技术就不能无法很好的处理这种情况,往往导致识别失败,而本公开提供的票据内容识别方法便可以在这样的情况下也能实现对票据内容的有效识别。本公开提供的票据内容识别方法可以用于各种电子票据的识别,比如可以应用于发票领域,如增值税专用发票的识别,也可以用于火车票或者汽车票等票据的识别。
本公开的实施终端可以是任何具有运算、处理以及通信功能的设备,该设备可以与外部设备相连,用于接收或者发送数据,具体可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、PDA(Personal Digital Assistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施或者服务器集群。
可选地,本公开的实施终端可以为服务器或者云计算的物理基础设施。
图1是根据一示例性实施例示出的一种票据内容识别方法的系统架构示意图。如图1所示,该系统架构包括服务器110和用户终端120,两者之间通过通信链路相连,使两者在彼此之间可以进行数据的接收和发送,服务器110为本实施例的实施终端,服务器110上安装并运行有服务端,而用户终端120上安装并运行有与该服务端相对应的客户端。当本公开提供的票据内容识别方法应用于图1所示的系统架构中时,一个具体过程可以是这样的:用户通过用户终端120的客户端向服务器110提交标注了基准特征字段区域和内容选定区域的基准票据图片;服务器110的服务端对该基准票据图片进行识别,得到基准特征字段区域的位置信息和基准特征字段区域中记录的基准特征字段;服务器110获取从用户终端120提交的待识别票据图片,该待识别票据图片与基准票据图片的版面格式是一致的;服务器110会识别出待识别票据图片中的特征字段,并得到各特征字段的位置信息;接下来,服务器110会根据各基准特征字段区域的位置信息和各目标特征字段的位置信息,计算透视变换矩阵,并对该待识别票据图片进行缩放;接着,服务器110利用透视变换矩阵对缩放后的待识别票据图片进行透视变换,得到变换后的待识别票据图片,然后根据基准票据图片中内容选定区域的位置,对变换后的待识别票据图片中相应位置对应的区域进行识别,最终得到待识别票据图片的内容。
值得一提的是,图1仅为本公开的一个实施例。虽然在本实施例中的实施终端为服务器,但在其他实施例中,实施终端可以为如前所述的各种终端或设备;虽然本实施例中,基准票据图片和待识别票据图片都是从与本公开的实施终端相对应的用户终端120获得的,但在其他实施例或者具体应用中,基准票据图片和/或待识别票据图片可以从公开的实施终端的本地获得,还可以从公开的实施终端之外的任意终端获得。本公开对此不作任何限定,本公开的保护范围也不应因此而受到任何限制。
图2是根据一示例性实施例示出的一种票据内容识别方法的流程图。本实施例提供的票据内容识别方法可以由服务器执行,如图2所示,包括以下步骤:
步骤210,获取基准票据图片。
其中,所述基准票据图片中标注了至少预定数目个基准特征字段区域和至少一个内容选定区域,每一所述基准特征字段区域记录了一个基准特征字段,各所述基准特征字段在所述基准票据图片中是唯一的。
基准特征字段区域可以是基准票据图片中任何具有一定大小且能够记录一定文本内容的区域,通常是与基准票据图片的版面格式一致的图片中记录的内容或字段和相对位置均相同的区域,也就是说,对于基准票据图片中一个基准特征字段区域而言,若一个图片与该基准票据图片的版面格式一致,则该图片存在这样一个区域:该区域在该图片中的相对位置与该基准特征字段区域在该基准票据图片中的相对位置是相同的;该区域中记录的内容或字段与该基准特征字段区域中记录的内容或字段是一致的。
一个基准特征字段区域可以有对应的内容选定区域,可以不存在对应的内容选定区域。
内容选定区域可以是基准票据图片中任何具有一定大小且能够记录一定文本内容的区域,可以是与基准特征字段区域相对应的区域,也可以是与基准特征字段区域不相对应的区域。比如对于发票而言,一个基准特征字段区域记录的基准特征字段可以是开票日期,与记录了开票日期的基准特征字段区域相对应的区域则是记录了具体日期内容的区域,该记录了具体日期内容的区域可以作为内容选定区域,也可以不作为内容选定区域,比如还可以包括记录了开票人这一项基准特征字段的基准特征字段区域,可以将记录了开票人这一项基准特征字段的基准特征字段区域作为内容选定区域而不将记录了开票日期的基准特征字段区域作为内容选定区域。
当基准特征字段区域与内容选定区域相对应时,基准特征字段区域中的基准特征字段与内容选定区域中可以记录的字段之间的关系相当于键值对的关系,比如,基准特征字段区域可以为开票人,而对应的内容选定区域可以记录的字段则可以为“张三”。之所以说内容选定区域中可以记录字段,是因为基准票据图片的内容选定区域既可以记录字段,也可以是空白区域,即不记录任何内容或字段。
基准特征字段在基准票据图片中是唯一的,也就是说,基准特征字段的内容在基准票据图片中是独一无二的,基准特征字段的内容在基准票据图片中不重复出现。
预定数目为基准票据图片中可以标注的基准特征字段区域的数目的最小值,比如可以为4。
当本公开提供的票据内容识别方法应用于发票增值税专用发票领域时,在基准票据图片中标注的基准特征字段可以为:开票日期、价税合计、收款人、开票人。
在一个实施例中,所述获取基准票据图片,包括:
获取从用户端上传的票据图片;
向所述用户端返回用于显示所述票据图片的页面;
通过所述页面接收来自所述用户端的标注指令,根据所述标注指令对所述票据图片进行基准特征字段区域和内容选定区域的标注,并通过所述页面向所述用户端返回标注后的所述票据图片;
当接收到来自所述用户端的确认指令,将标注后的所述票据图片作为基准票据图片。
在本实施例中,通过允许用户自定义基准票据图片,提高了用户进行票据识别的灵活度,用户可以自主决定进行何种票据的识别,拓展了票据内容识别方法的应用场景。
在一个实施例中,在通过所述页面接收来自所述用户端的标注指令之前,所述方法还包括:
通过所述页面接收来自所述用户端的裁剪和/或旋转指令,以对所述票据图片进行裁剪和/或旋转操作,并在所述页面显示进行了裁剪和/或旋转操作的所述票据图片。
在本实施例中,通过允许用户提交裁剪和/或旋转指令对票据图片进行编辑,使得建立的基准票据图片可以更加规范以满足识别需要,从而进一步提高了识别的可靠性。
在显示票据图片的页面、接收确认指令的页面、接收标注指令的页面这三类页面之中,任意两类及以上的页面可以为同一页面。
用户端可以是各种终端,用户端可以基于浏览器、客户端、App(Application,应用程序)、小程序等各种方式向本公开的执行终端发送票据图片、标注指令及确认指令,其中,当用户端基于浏览器这一方式向本公开的执行终端发送票据图片、标注指令及确认指令时,具体来说,用户端是通过在浏览器上渲染的页面向本公开的执行终端发送票据图片、标注指令及确认指令的,这些页面通常是由本公开的实施终端传至用户端的,可以利用HTML(Hyper Text Markup Language,超级文本标记语言)、 CSS(Cascading Style Sheets,层叠样式表)、JavaScript等Web技术来实现具备这些功能的页面。
用户可以利用鼠标拖曳等方式来在页面输入标注指令,从而标注基准特征字段区域和内容选定区域。
图3是根据一示例性实施例示出的一种可以用来建立基准票据图片的票据图片的示意图。请参照图3,可以看到,这是一种增值税专用发票的图片,该图片未标注任何区域,利用该图片可以制成基准票据图片,具体来说,通过在该图片上标注基准特征字段区域和内容选定区域,便可以将该图片转换为基准票据图片。图3所示的图片中内容是空白的,即图3所示的图片为增值税专用发票的模板,其上的信息属于增值税专用发票的版面格式,包括多个字段、各字段的位置和排布方式以及用于约束这些字段的表格的格式。虽然图3所示的图片是增值税专用发票的模板,不包含发票的使用信息,但实际上,也可以采用包含发票的使用信息的发票图片来制成基准票据图片。
图4是根据一示例性实施例示出的标注了一个基准特征字段区域的票据图片的示意图。图4所示的票据图片与图3所示票据图片的区别在于,图4所示的票据图片中标注了一个基准特征字段区域,该基准特征字段区域中记录的基准特征字段为“开票日期”,这个基准特征字段区域可以是根据用户端的标注指令来进行标注的。可以在图4所示的票据图片的基础上,进行其他基准特征字段区域和内容选定区域的标注,从而得到基准票据图片,可以在记录了“开票日期”这一基准特征字段的基准特征字段区域之后标注一个内容选定区域,该内容选定区域便可以用来对应记录实际的开票日期。
标注得到的基准特征字段区域和内容选定区域可以以各种形状的符号进行限制和确定,比如可以是以矩形或圆角矩形进行限制和确定,图4所示的票据图片中标注的基准特征字段区域便是以圆角矩形进行限制和确定的。
步骤220,确定各基准特征字段区域在所述基准票据图片中的位置信息和各基准特征字段区域中记录的基准特征字段。
基准特征字段区域在基准票据图片中的位置信息可以是基准特征字段区域中的点在基准票据图片中的坐标值。具体来说,可以是一个或多个点的坐标值。
比如,确定出的基准特征字段和基准特征字段区域在基准票据图片中的位置信息可以如表1所示,其中,基准特征字段区域的位置信息以坐标的形式表示。可以看到,在表1中,每一基准特征字段区域的位置信息包括两个坐标,分别是该基准特征字段区域左上角的坐标和右下角的坐标,因此,此处的基准特征字段区域可以是以矩形进行限制和确定的。
步骤230,获取与所述基准票据图片的版面格式一致的待识别票据图片。
待识别票据图片可以在本地存储,也可以从外部设备获取。
版面格式及版式,待识别票据图片与基准票据图片的版面格式一致,是指,待识别票据图片中字段、各字段的位置和排布方式以及用于约束这些字段的表格的格式是与基准票据图片中是一致的,这些字段中包括基准特征字段。具体来说,若基准票据图片是在图3所示的票据图片的基础上建立起来的,那么,与该基准票据图片的版面格式一致的待识别票据图片均包括图3所示的票据图片中所有内容,所有内容在图3所示的票据图片的布局方式也跟与该基准票据图片的版面格式一致的待识别票据图片中的一致。
步骤240,对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息。
其中,对于每一所述基准特征字段,所述多个特征字段中仅包括一个与该基准特征字段一致的特征字段,与所述基准特征字段一致的特征字段为目标特征字段。
比如,识别出的特征字段和各特征字段的位置信息可以如表2所示,其中1-4项为目标特征字段,它们可以分别与表1示出的基准特征字段一致。
通过表2可以看出,即使目标特征字段与基准特征字段一致,目标特征字段在待识别票据图片中的相对位置与基准特征字段在基准票据图片中的相对位置也可能是不同的。
步骤250,基于各所述基准特征字段区域的位置信息和各所述目标特征字段的位置信息,计算透视变换矩阵。
比如,基准票据图片包括五个基准特征字段区域,其位置信息,即坐标分别是(m0,m1),(m2,m3)……(m8,m9),而待识别票据图片也包括五个目标特征字段,坐标分别是(t0,t1),(t2,t3)……(t8,t9),则计算出的透视变换矩阵可以为:
H = f(m0,m1,m2,. . . m9, t0, t1, t2, . . . t9),
其中,f为用于计算透视变换矩阵的函数,可以基于opencv工具库的cv2.findHomography函数实现。
在这个例子中,基准特征字段区域的位置信息和目标特征字段的位置信息均是用一个坐标来表示的,这个坐标可以是基准特征字段区域和目标特征字段中心的坐标,也可以是一个角的顶点的坐标;当然,也可以像表1和表2示出的那样,基准特征字段区域的位置信息和目标特征字段的位置信息均用两个坐标来表示,在这样的情况下,可以针对每一位置信息利用对应的两个坐标构建透视变换矩阵。
步骤260,对所述待识别票据图片进行缩放,使缩放后的所述待识别票据图片的大小与所述基准票据图片的大小一致。
比如,若基准票据图片的分辨率大小为1914x1121,而待识别票据图片的分辨率大小为1428x837,那么经过缩放后,待识别票据图片的分辨率大小将从1428x837变为1914x1121。
步骤270,利用所述透视变换矩阵对缩放后的所述待识别票据图片进行透视变换,得到变换后的待识别票据图片。
具体而言,可以基于opencv工具库的cv2.warpPerspective来实现利用透视变换矩阵对缩放后的待识别票据图片进行透视变换。
步骤280,根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
若内容选定区域的位置是以坐标的方式定义,那么待识别票据图片中相应位置对应的区域可以以该坐标为基准来确定。可以利用各种能够实现OCR (Optical CharacterRecognition,光学字符识别)的算法或模型来对变换后的待识别票据图片中相应位置对应的区域进行识别。
比如,基准票据图片中内容选定区域可以是用于记录实际纳税人识别号的区域,那么对变换后的待识别票据图片中相应位置对应的区域进行识别得到的可以是纳税人识别号。
在一个实施例中,所述通过所述页面接收来自所述用户端的标注指令,根据所述标注指令对所述票据图片进行基准特征字段区域和内容选定区域的标注,并通过所述页面向所述用户端返回标注后的所述票据图片,包括:
通过所述页面接收来自所述用户端的标注指令,根据所述标注指令对所述票据图片进行基准特征字段区域和内容选定区域的标注;
对所述内容选定区域和所述基准特征字段区域进行识别,得到所述内容选定区域中的选定内容和所述基准特征字段区域中的基准特征字段;
向所述用户端返回包含所述选定内容、所述基准特征字段和标注后的所述票据图片的页面;
通过所述页面接收来自所述用户端的对所述选定内容和/或所述基准特征字段的修正指令,获得修正后的所述选定内容和/或所述基准特征字段。
对所述内容选定区域和所述基准特征字段区域进行识别可以采用各种OCR识别模型或算法。
比如,每当在用户端标注了一个基准特征字段区域或者内容选定区域,就向用户端返回并通过页面以可编辑的文本框的方式显示由本端所识别出的识别结果,即选定内容和基准特征字段,用户端对可编辑的文本框中的识别结果进行编辑并提交编辑后的识别结果后,即可实现对识别结果的修正。
在本实施例中,实现了对内容选定区域和基准特征字段区域中内容的识别和校正,有利于后续的识别过程,在一定程度上提高了识别的准确率。
在一个实施例中,在向所述用户端返回包含所述选定内容、所述基准特征字段和标注后的所述票据图片的页面之后,所述方法还包括:
通过所述页面获取与所述选定内容对应的字段类型;
所述根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容,包括:
根据所述基准票据图片中内容选定区域的位置和所述字段类型,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
选定内容通常为字段,因此可以具有相应的字段类型,字段类型是字段的特征或属性,例如,选定内容这一字段可以为2018/1/1,那么,该字段的字段类型可以为日期。
在本实施例中,基准票据图片中选定内容对应的字段类型已经确定,因此在对变换后的待识别票据图片中相应位置对应的区域进行识别时,只需要在该字段类型对应的解空间内识别出内容即可,字段类型还可以对识别内容起到监督和校验的作用。因此,在一定程度上提高了识别的准确率。
在一个实施例中,所述根据所述基准票据图片中内容选定区域的位置和所述字段类型,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容,包括:
根据所述基准票据图片中内容选定区域的位置和所述字段类型,对所述变换后的待识别票据图片中相应位置对应的区域利用与所述字段类型对应的识别模型进行识别,得到所述待识别票据图片的内容。
比如,与选定内容对应的字段类型可以为中文,那么可以利用与中文这一字段类型对应的识别模型进行识别;再比如,与选定内容对应的字段类型可以为数字,那么可以利用与数字这一字段类型对应的识别模型进行识别。
在本实施例中,通过根据与选定内容的字段类型对应的识别模型来对变换后的待识别票据图片中相应位置对应的区域进行针对性地识别,从而在一定程度上提高了识别的准确性。
在一个实施例中,所述获取基准票据图片,包括:
获取基准票据图片和与所述基准票据图片对应的票据类型信息;
所述确定各基准特征字段区域在所述基准票据图片中的位置信息和各基准特征字段区域中记录的基准特征字段,包括:
确定各基准特征字段区域在所述基准票据图片中的位置信息,并根据所述票据类型信息确定各基准特征字段区域中记录的基准特征字段;
所述对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息,包括:
根据所述票据类型信息对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息;
所述根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容,包括:
根据所述基准票据图片中内容选定区域的位置和所述票据类型信息,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
在本实施例中,通过获取票据类型信息,并基于票据类型信息进行各项内容的识别,可以基于票据类型信息进行修正,比如这样对于发票而言,不能识别出与常规发票不符的内容,这样就在一定程度上提高了识别的准确率。
在一个实施例中,所述基准票据图片中的基准特征字段区域和内容选定区域一一对应,在根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容之前,所述方法还包括:
根据所述目标特征字段的位置信息,对所述待识别票据图片中与所述目标特征字段对应的字段内容进行识别,得到第一识别结果;
所述根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容,包括:
根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到第二识别结果;
针对每一所述第一识别结果,确定该第一识别结果与对应的所述第二识别结果之间的相似度;
在各所述相似度均大于预定相似度阈值的情况下,将各所述第二识别结果作为所述待识别票据图片的内容。
在本实施例中,通过事先对待识别票据图片中与目标特征字段对应的字段内容进行识别,得到的第一识别结果,然后将根据基准票据图片中内容选定区域的位置在变换后的待识别票据图片中相应位置对应的区域进行识别得到的第二识别结果进行比对和校验,从而进一步提高了识别的准确率。
综上所述,根据图2实施例提供的票据内容识别方法,通过获取标注了基准特征字段区域和内容选定区域的基准票据图片,然后利用待识别票据图片和基准票据图片构建透视变换矩阵,最后在利用透视变换矩阵对待识别票据图片进行透视变换后,再对变换后的待识别票据图片进行内容识别,因此,对待识别票据图片中内容的角度进行了校正,从而提高了识别的准确率,能够精确有效地提取票据中的信息。
本公开还提供了一种票据内容识别装置,以下是本公开的装置实施例。
图5是根据一示例性实施例示出的一种票据内容识别装置的框图。如图5所示,装置500包括:
第一获取模块510,被配置为获取基准票据图片,其中,所述基准票据图片中标注了至少预定数目个基准特征字段区域和至少一个内容选定区域,每一所述基准特征字段区域记录了一个基准特征字段,各所述基准特征字段在所述基准票据图片中是唯一的;
确定模块520,被配置为确定各基准特征字段区域在所述基准票据图片中的位置信息和各基准特征字段区域中记录的基准特征字段;
第二获取模块530,被配置为获取与所述基准票据图片的版面格式一致的待识别票据图片;
第一识别模块540,被配置为对所述待识别票据图片中的特征字段进行识别,得到多个特征字段和各特征字段的位置信息,其中,对于每一所述基准特征字段,所述多个特征字段中仅包括一个与该基准特征字段一致的特征字段,与所述基准特征字段一致的特征字段为目标特征字段;
计算模块550,被配置为基于各所述基准特征字段区域的位置信息和各所述目标特征字段的位置信息,计算透视变换矩阵;
缩放模块560,被配置为对所述待识别票据图片进行缩放,使缩放后的所述待识别票据图片的大小与所述基准票据图片的大小一致;
透视变换模块570,被配置为利用所述透视变换矩阵对缩放后的所述待识别票据图片进行透视变换,得到变换后的待识别票据图片;
第二识别模块580,被配置为根据所述基准票据图片中内容选定区域的位置,对所述变换后的待识别票据图片中相应位置对应的区域进行识别,得到所述待识别票据图片的内容。
根据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第四方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当计算机程序指令被计算机执行时,使计算机执行如前上述的方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。