表格识别方法和系统与流程

文档序号:32604317发布日期:2022-12-17 19:08阅读:50来源:国知局
表格识别方法和系统与流程

1.本说明书涉及图像处理技术领域,尤其涉及一种表格识别方法、系统。


背景技术:

2.表格因能有效存储文本和数据而广泛应用于各种领域,如保险理赔、线上办公等领域。在保险理赔中,保险理算作为其非常重要的一环,主要是从显示费用清单表格的纸本打印表格中获取明细金额,并根据明细金额计算需要理赔的金额。鉴于保险理算的人工成本较高,将纸本打印的表格扫描成表格图像,然后再通过自动化方式从该表格图像中提取明细金额的方式成为主流。该自动化提取明细金额的方式首先需要将表格图像中的表格识别并提取出来,生成电子表格。
3.传统的表格识别方法是基于摆正后的表格图像实现的,也即是,表格图像中的表格必须横平竖直,才能准确实现表格识别。然而,很多情况下表格图像中的表格并非横平竖直,而是扭曲的,比如拍摄表格的时候打印表格的纸张是弯曲的、褶皱的或者不够平整,这种情况下就无法准确识别出表格。因此,需要提供一种能够准确识别表格的表格识别方法、系统。


技术实现要素:

4.本说明书提供一种能够准确识别表格图像中扭曲表格的表格识别方法和系统。
5.第一方面,本说明书提供一种表格识别方法,包括:获取包含目标表格的目标表格图像,所述目标表格包括多个文字区域,所述多个文字区域沿所述目标表格的行方向和/或列方向排列,每个文字区域内包括至少一个文字;从所述目标表格图像中,基于所述多个文字区域的位置提取所述目标表格的表格结构,所述表格结构包括所述多个文字区域在第一方向上分布的位置数据和在第二方向上分布的位置数据,所述第一方向是所述行方向和所述列方向中的一个方向,所述第二方向是所述行方向和所述列方向中的另一个方向;以及基于所述表格结构,从所述目标表格图像中提取所述目标表格的内容数据,并将所述目标表格的内容数据依照所述表格结构输出。
6.在一些实施例中,所述获取包含目标表格的目标表格图像包括:获取待处理图像,所述待处理图像为打印在介质上的目标表格的扫描图像,所述待处理图像中的目标表格图像包括扭曲和倾斜的目标表格;对所述待处理图像进行倾斜矫正以矫正所述目标表格的倾斜,得到矫正图像;以及对所述矫正图像进行表格检测,提取所述矫正图像中的表格区域,得到所述包含目标表格的目标表格图像。
7.在一些实施例中,所述基于所述多个文字区域的位置提取所述目标表格的表格结构包括:获取所述目标表格图像的二维的第一特征图,所述第一特征图中包括多个像素点;以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据和在所述第二方向上分布的位置数据;以及结合所述多个文字区域在所述第一方向上分布的位置数据和在所述第二方向上分布的位置数据,提取所述目标表格的所
述表格结构。
8.在一些实施例中,所述以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据和在所述第二方向上分布的位置数据包括:获取所述第一特征图在所述第一方向上的第一投影图;将所述第一投影图作为沿着所述第一方向判断文字区域的参考,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据;以及获取所述第一特征图在所述第二方向上的第二投影图;将所述第二投影图作为沿着所述第二方向判断文字区域的参考,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第二方向上分布的位置数据。
9.在一些实施例中,所述获取所述第一特征图在第一方向上的第一投影图包括:对所述第一特征图在所述第一方向上进行池化处理,获取所述第一投影图;所述获取所述第一特征图在所述第二方向上的第二投影图包括:对所述第一特征图在所述第二方向上进行池化处理,获取所述第二投影图。
10.在一些实施例中,所述将所述第一投影图作为沿着所述第一方向判断文字区域的参考,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据包括:将所述第一投影图和所述第一特征图输入注意力-记忆联合网络模型对所述第一特征图逐像素计算,获取所述多个文字区域在所述第一方向上分布的位置数据;所述将所述第二投影图作为沿着所述第二方向判断文字区域的参考,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第二方向上分布的位置数据包括:将所述第二投影图和所述第一特征图输入注意力和记忆联合模型对所述第一特征图逐像素计算,获取所述多个文字区域在所述第二方向上分布的位置数据。
11.在一些实施例中,所述以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据和在所述第二方向上分布的位置数据包括:将所述第一特征图输入针对所述第一方向分布训练的注意力-记忆联合网络模型对所述第一特征图逐像素计算获得第一目标特征向量,并基于所述第一目标特征向量获取所述多个文字区域在所述第一方向上分布的位置数据;以及将所述第一特征图输入针对所述第二方向分布训练的注意力-记忆联合网络模型对所述第一特征图逐像素计算获得第二目标特征向量,并基于所述第二目标特征向量获取所述多个文字区域在所述第二方向上分布的位置数据。
12.在一些实施例中,所述注意力-记忆联合网络模型包括注意力网络模型、循环记忆网络模型,其中在当前一轮循环中:所述循环记忆网络被配置为输出所述第一特征图的目标特征向量并将所述目标特征向量作为自身下一轮循环的输入;所述注意力网络模型被配置为:接收并基于所述第一特征图和所述循环记忆网络模型在上一轮循环输出的目标特征向量,确定并输出与所述多个像素点一一对应的多个相似度权重,每个相似度权重描述了所述第一特征图中每个像素点与所述上一轮循环输出的目标特征向量之间的相似程度,以及确定并将所述第一特征图的目标增强向量输入到所述循环记忆网络模型中。
13.在一些实施例中,所述针对所述第一方向分布训练的注意力-记忆联合网络模型的初始输入值为第一投影图,所述第一投影图为所述第一特征图在所述第一方向上的投影图,所述针对所述第二方向分布训练的注意力-记忆联合网络模型的初始输入值为第二投
影图,所述第二投影图为所述第一特征图在所述第二方向上的投影图。
14.在一些实施例中,所述获取所述多个文字区域在所述第一方向上分布的位置数据包括:对所述当前一轮循环的目标特征向量进行像素变换处理和像素调整处理,得到所述当前一轮循环的变换特征图;根据所述多个相似度权重对所述第一特征图进行赋权处理,获取赋权特征图;以及将所述变换特征图和所述赋权特征图进行融合处理,获取所述当前一轮循环的第二特征图,所述第二特征图包括所述多个文字区域在所述第一方向上分布的位置数据。
15.在一些实施例中,所述从所述目标表格图像中提取所述目标表格的内容数据包括:对所述目标表格包括的多个文字区域中的每个文字区域进行文字识别,得到每个文字区域内的文字;获取所述每个文字区域对应的行表头和列表头;以及将所述每个文字区域内的文字、所述每个文字区域对应的行表头和列表头,确定为所述目标表格中的内容数据。
16.第二方面,本说明书还提供一种表格识别系统,包括至少一个存储介质以及至少一个处理器,所述至少一个存储介质存储有至少一个指令集用于表格识别;所述至少一个处理器同所述至少一个存储介质通信连接,其中当所述表格识别系统运行时,所述至少一个处理器读取所述至少一个指令集并实施本说明书第一方面所述的表格识别方法。
17.由以上技术方案可知,本说明书提供的表格识别方法和系统,获取包含目标表格的目标表格图像,所述目标表格包括多个文字区域,基于所述多个文字区域的位置从目标表格图像中提取表格结构,表格结构包括多个文字区域在第一方向上分布的位置数据和在第二方向上分布的位置数据,基于表格结构从目标表格图像中提取目标表格的内容数据,并将目标表格的内容数据按照表格结构输出。本技术的表格识别方法取决于文字区域的位置数据,因此无论目标表格是横平竖直的还是扭曲的,都能准确地识别出来,且不限于是有线的表格还是无线的表格。
18.本说明书提供的表格识别方法和系统的其他功能将在以下说明中部分列出。根据描述,以下数字和示例介绍的内容将对那些本领域的普通技术人员显而易见。本说明书提供的表格识别方法和系统的创造性方面可以通过实践或使用下面详细示例中所述的方法、装置和组合得到充分解释。
附图说明
19.为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1示出了根据本说明书的一些实施例提供的一种表格识别系统的应用环境图;
21.图2示出了根据本说明书的一些实施例提供的一种计算设备的硬件结构图;
22.图3示出了根据本说明书的一些实施例提供的一种表格识别方法的架构图;
23.图4示出了根据本说明书的一些实施例提供的一种待处理图像的示意图;
24.图5示出了根据本说明书的一些实施例提供的一种待处理图像的示意图;
25.图6示出了根据本说明书的一些实施例提供的一种待处理图像的示意图;
26.图7示出了根据本说明书的一些实施例提供的一种待处理图像的示意图;
27.图8示出了根据本说明书的一些实施例提供的一种表格识别方法的流程图;
28.图9示出了根据本说明书的一些实施例提供的另一种表格识别方法的流程图;
29.图10示出了根据本说明书的一些实施例提供的另一种表格识别方法的流程图;
30.图11示出了根据本说明书的一些实施例提供的一种将第一投影图和第一特征图输入注意力-记忆联合网络模型获取第一位置数据的示意图;
31.图12示出了根据本说明书的一些实施例提供的一种根据针对第一方向分布训练的注意力-记忆联合网络模型获取第一位置数据的示意图;以及
32.图13示出了根据本说明书的一些实施例提供的一种根据注意力-记忆联合网络模型进行表格识别的示意图。
具体实施方式
33.以下描述提供了本说明书的特定应用场景和要求,目的是使本领域技术人员能够制造和使用本说明书中的内容。对于本领域技术人员来说,对所公开的实施例的各种局部修改是显而易见的,并且在不脱离本说明书的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,本说明书不限于所示的实施例,而是与权利要求一致的最宽范围。
34.这里使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如,除非上下文另有明确说明,这里所使用的,单数形式“一”,“一个”和“该”也可以包括复数形式。当在本说明书中使用时,术语“包括”、“包含”和/或“含有”意思是指所关联的整数,步骤、操作、元素和/或组件存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或组的存在或在该系统/方法中可以添加其他特征、整数、步骤、操作、元素、组件和/或组。
35.考虑到以下描述,本说明书的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本说明书的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本说明书的范围。还应理解,附图未按比例绘制。
36.本说明书中使用的流程图示出了根据本说明书中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
37.图1示出了根据本说明书的实施例提供的一种表格识别系统001的应用环境图。本说明书提供的表格识别方法,可以应用于如图1所示的应用环境中。如图1所示,所述表格识别系统001可以包括客户端100、服务器200、计算设备300、网络400以及数据库500。
38.如图1所示,用户110是客户端100的使用者。客户端100一般是用户110与服务器200建立沟通的连接设备。用户110可以使用客户端100通过网络400与服务器200交互,以接收或发送消息等。客户端100与服务器200通讯连接。在一些实施例中,服务器200可以同时和多个客户端100通讯连接。在一些实施例中,客户端100可以安装有一个或多个应用(app)。所述app能够为用户110提供通过网络400同外界交互的能力以及界面。所述app包括但不限于:网页浏览器类app程序、搜索类app程序、聊天类app程序、购物类app程序、视频类app程序、理财类app程序、即时通信工具、邮箱客户端、社交平台软件等等。在一些实施例
中,客户端100可以包括移动设备、平板电脑、笔记本电脑、扫描仪、机动车辆的内置设备或类似内容,或其任意组合。在一些实施例中,所述移动设备可以包括智能家居设备、智能移动设备、虚拟现实设备、增强现实设备或类似设备,或其任意组合。在一些实施例中,所述智能家居装置可以包括智能电视、台式电脑等,或任意组合。在一些实施例中,所述智能移动设备可以包括智能手机、个人数字辅助、游戏设备、导航设备等,或其任意组合。在一些实施例中,所述虚拟现实设备或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实补丁、增强现实头盔、增强现实眼镜、增强现实补丁或类似内容,或其中的任何组合。例如,所述虚拟现实设备或所述增强现实设备可以包括谷歌眼镜、头戴式显示器、齿轮vr等。在一些实施例中,所述机动车中的内置装置可以包括车载计算机、车载电视等。在一些实施例中,客户端100可以是具有定位技术的设备,用于定位客户端100的位置。
39.服务器200可以是提供各种服务的服务器,例如对客户端100上显示的页面提供支持的后台服务器。在一些实施例中,服务器200可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。在一些实施例中,服务器200可以存储有所述app运行时产生的实时数据,即在线消息队列。
40.计算设备300可以存储有执行本说明书描述的表格识别方法的数据或指令,并可以执行或用于执行所述数据或指令。在一些实施例中,计算设备300可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。计算设备300可以与服务器200通信连接。在一些实施例中,计算设备300可以通过网络400实现与服务器200的通信连接。在一些实施例中,计算设备300可以通过有线连接实现与服务器200的通信连接。在一些实施例中,计算设备300可以集成在服务器200中,作为服务器200的一部分。在一些实施例中,计算设备300可以是独立于服务器200的设备。在一些实施例中,计算设备300可以是分布式计算设备,包括多个分布式计算节点。需要说明的是,本说明书提供的表格识别方法一般由计算设备300执行。
41.应该理解,图1中的客户端100、服务器200、计算设备300、网络400以及数据库500的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端100、服务器200、计算设备300、网络400以及数据库500。
42.网络400用以在客户端100和服务器200之间提供通信连接的介质。在一些实施例中,网络400也可以用以在服务器200、计算设备300和数据库500之间提供通信连接的介质。网络400可以促进信息或数据的交换。如图1所示,客户端100、服务器200、计算设备300、数据库500可以同网络400连接,并且通过网络400互相传输信息或数据。例如,服务器200可以通过网络400从客户端100获取信息。在一些实施例中,网络400可以是任何类型的有线或无线网络,也可以是其组合。比如,网络400可以包括电缆网络,有线网络、光纤网络、电信通信网络、内联网、互联网、局域网(lan)、广域网(wan)、无线局域网(wlan)、大都市市区网(man)、广域网(wan)、公用电话交换网(pstn)、蓝牙网络、zigbee网络、近场通信(nfc)网络或类似网络。在一些实施例中,网络400可以包括一个或多个网络接入点。例如,网络400可以包括有线或无线网络接入点,如基站或互联网交换点,通过该接入点,客户端100、服务器200、计算设备300、数据库500的一个或多个组件可以连接到网络400以交换数据或信息。
43.数据库500可以存储数据或指令。在一些实施例中,数据库500可以存储从服务器200或客户端100获得的数据。在一些实施例中,数据库500可以存储服务器200可以执行或
用于执行本说明书中描述的表格识别方法的数据或指令。在一些实施例中,数据库500可以存储有所述app运行时产生的离线数据。计算设备300、服务器200和客户端100可能具有访问数据库500的权限,计算设备300、服务器200和客户端100可以通过网络400访问存储在数据库500中的数据或指令。在一些实施例中,数据库500可以直接连接到计算设备300、服务器200和客户端100。在一些实施例中,数据库500可以是服务器200的一部分。在一些实施例中,数据库500可以包括大容量存储、可移动存储、易失性读写存储器、只读存储器(rom)或类似内容,或其任意组合。示例性大容量存储可能包括磁盘、光盘、固态驱动器等非暂时性存储介质(non-transitory storage medium)。可移动存储可能包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等。典型的易失性读写内存可能包括随机存取存储器(ram)。ram可能包括动态ram(dram)、双日期速率同步动态ram(ddr sdram)、静态ram(sram)、晶闸管ram(t-ram)和零电容ram(z-ram)等。rom可能包括掩码rom(mrom)、可编程rom(prom)、可虚拟可编程rom(perom)、电子可编程rom(eeprom)、光盘(cd-rom)和数字多功能磁盘rom等。在一些实施例中,数据库500可以在云平台上实现。仅仅作为例子,所述云平台可能包括私有云、公共云、混合云、社区云、分布式云、云间云等形式,或者同上述形式类似的形式,或这上述形式的任意组合。
44.如图1所示,用户110通过客户端100上的app发送表格识别请求,所述表格识别请求通过网络400传输至服务器200;服务器200通过与计算设备300之间的通信连接将所述表格识别请求传输至计算设备300;计算设备300执行存储在计算设备300内的表格识别方法的指令,基于表格识别请求对目标表格图像中的目标表格进行识别并输出。
45.图2示出了根据本说明书的实施例提供的一种计算设备300的硬件结构图。计算设备300可以执行本说明书描述的表格识别方法。所述表格识别方法将在后面的描述中详细介绍。计算设备300可以包括至少一个处理器320和至少一个存储介质330。在一些实施例中,计算设备300还可以包括通信模块350和内部通信总线310。
46.内部通信总线310可以连接不同的系统组件,包括存储介质330、处理器320以及通信模块350。
47.存储介质330可以包括数据存储装置。所述数据存储装置可以是非暂时性存储介质,也可以是暂时性存储介质。比如,所述数据存储装置可以包括磁盘332、只读存储介质(rom)334或随机存取存储介质(ram)336中的一种或多种。存储介质330可以存储至少一个指令集。所述指令集可以是一个或者多个指令的集合。比如,所述指令集可以是多条计算机程序代码,所述计算机程序代码在被处理器320调取和执行时可以指示所述处理器320执行本说明书提供的表格识别方法的程序、例程、对象、组件、数据结构、过程、模块等等。
48.至少一个处理器320可以同至少一个存储介质330通信连接。至少一个处理器320用以读取/调用并执行上述至少一个指令集。当计算设备300运行时,至少一个处理器320读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书提供的表格识别方法。处理器320可以执行表格识别方法包含的所有步骤。处理器320可以是一个或多个处理器的形式,在一些实施例中,处理器320可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(risc),专用集成电路(asic),特定于应用的指令集处理器(asip),中心处理单元(cpu),图形处理单元(gpu),物理处理单元(ppu),微控制器单元,数字信号处理器(dsp),现场可编程门阵列(fpga),高级risc机器(arm),可编程逻辑器件
(pld),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。仅仅为了说明问题,在本说明书中计算设备300中仅描述了一个处理器320。然而,应当注意,本说明书中计算设备300还可以包括多个处理器320,因此,本说明书中披露的操作和/或方法步骤可以如本说明书所述的由一个处理器执行,也可以由多个处理器联合执行。例如,如果在本说明书中计算设备300的处理器320执行步骤a和步骤b,则应该理解,步骤a和步骤b也可以由两个不同处理器320联合或分开执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同执行步骤a和b)。
49.当然,本说明书中公开的执行本说明书提供的表格识别方法的模块也可以被设计成专门的电路、硬件模块和/或设备,独立地同所述计算设备300通信连接或者作为内部零件存在于所述计算设备300中(图2未标出)。
50.通信模块350可以与处理器320连接,用于计算设备300同外界的数据通讯,比如服务器200和数据库500。通信模块350可以包括有线通信模块和无线通信模块中的至少一种。
51.图3示出了根据本说明书的实施例提供的一种表格识别方法流程的架构图3000。如图3所示,表格识别流程的架构图3000包括输入模块3100、预处理模块3200、结构识别模块3300、文字识别模块3400、结构认知模块3500以及输出模块3600。所述模块可以是存储在所述存储介质330中的一个或者多个执行对应指令的指令集,并且由计算设备300中的处理器320来执行。所述模块也可以是计算设备300中的一部分电路、硬件设备或者模组。比如输入模块3100可以是计算设备300中接收待处理图像的硬件设备/模组,预处理模块3200可以是计算设备300中预处理所述待处理图像的硬件设备/模组,等等。
52.所述输入模块3100可以接收待处理图像,将所述待处理图像输出至预处理模块3200。
53.所述待处理图像是对打印在介质上的目标表格进行扫描得到的扫描图像,所述扫描包括通过扫描仪扫描的方式或者通过手机拍照的方式。在对打印在介质上的目标表格进行扫描时,扫描设备(扫描仪或手机)的扫描窗口覆盖的区域除了包括目标表格所在的区域之外还可能包括周边的背景区域,因此,为了区分待处理图像中目标表格所在的区域和背景区域,可将待处理图像中目标表格所在的图像区域称作目标表格图像。其中,所述打印在介质上可以包括打印在纸张上,也可以包括打印在其他介质上,比如印在胶片上或者显示在屏幕上等等可以以视觉的方式呈现表格内容的媒介上,本说明书的实施例对此不作限定。
54.以纸张为例,打印在纸张上的目标表格通常为矩形,如图4所示,其示出了一种包含打印在纸张上的矩形目标表格的待处理图像的示意图。目标表格包括若干个文字区域,文字区域是指目标表格中能够填充文字的区域,每个文字区域可填充一个或多个文字。填充的文字可以是任意国家的文字,比如汉字、英文、俄文等,也可以是阿拉伯数字或者任意的符号,本说明书实施例对填充的文字不做具体限定。在图4中,文字“操作类型”所占的区域是一个文字区域,阿拉伯数字“1”所占的区域是一个文字区域,符号“—”所占的区域也是一个文字区域。
55.目标表格分行方向和列方向,所述若干个文字区域沿行方向和/或列方向排列,有线的目标表格通过分隔线将若干个文字区域沿着行方向和/或列方向分隔开来,该分隔线可以是虚线或者实线,无线的目标表格则通过空白区域使若干个文字区域沿行方向和/或
列方向自然显现。而所述若干个文字区域沿着所述行方向和/或列方向的排列方式便组成了目标表格的表格结构。也就是说,所述目标表格可以包括表格结构以及按照所述表格结构排布的内容。内容可以以可视化的形式显示在显示屏幕上,内容数据是以数据的形式将所述内容存储在存储介质中。因此,所述待处理图像中包括目标表格图像,所述目标表格图像显示有所述目标表格的表格结构和内容,在表格识别时,需要提取目标表格的表格结构和内容数据。
56.其中,目标表格的内容数据包括每个文字区域内的文字、每个文字区域对应的行表头和列表头。行表头包括多个文字区域沿行方向排列时的第一个文字区域中的文字,即行表头包括第一列文字区域中的文字,比如图4中的行表头包括“1”、“2”、
……
、“17”。对于每个文字区域而言,其对应的行表头是该文字区域所在行的第一个文字区域中的文字。比如,在图4中,目标表格第二行的每个文字区域对应的行表头为文字“1”。同样,列表头包括多个文字区域沿列方向排列时的第一个文字区域中的文字,即列表头包括第一行文字区域中的文字,比如图4中的列表头包括“操作类型”、“参数信息”、“输入数据维度”以及“输出数据维度”。对于每个文字区域而言,其对应的列表头是该文字区域所在列的第一个文字区域中的文字。比如,在图4中,目标表格第二列的每个文字区域对应的列表头为文字“操作类型”。
57.需要说明的是,所述目标表格的行方向和列方向随着所述目标表格图像在待处理图像中的位置的变化而变化。当所述目标表格图像在待处理图像中的位置比较端正,即目标表格是横平竖直时,文字区域所在的所有行方向都是水平方向,文字区域所在的所有列方向都是竖直方向,也就是说在待处理图像中,所述目标表格的行方向同待处理图像像素排列的行方向一致,目标表格的列方向同待处理图像像素排列的列方向一致。
58.但有时候所述待处理图像中的目标表格也可能是倾斜的。比如,如果所述打印有目标表格的纸张在被扫描转化成电子图像时没有被摆正,则所述目标表格在所述待处理图像中的位置就是倾斜的,如图5所示,图5示出了一种待处理图像中的目标表格是倾斜的示意图。这时候,所述目标表格的行方向和列方向分别同待处理图像像素排列的行方向和列方向便具有一定的非零夹角。有时候所述待处理图像中的目标表格还可能是扭曲的。比如所述打印有目标表格的纸张发生褶皱、折叠或者在被扫描的时候翘曲(比如将书本翻开并对书页拍照时书页就时翘曲的),这时反映在目标表格图像中的目标表格就是扭曲的,其行方向和列方向都不是直线而是曲线或者折线。如图6所示,图6示出了一种待处理图像中的目标表格是扭曲的示意图。再比如,扫描设备的扫描窗口的平面与纸张平面不平行,这时反映在目标表格图像中的目标表格也是扭曲的。如果打印有目标表格的纸张在被扫描时是摆正的,但扫描窗口的平面与纸张平面不平行时,反映在目标表格图像中的目标表格呈梯形的形状。有时候还可能出现待处理图像中的目标表格既是倾斜的,还是扭曲的情况。比如,打印有目标表格的纸张被扫描时没有摆正且发生了折叠,此时反映在目标表格图像中的目标表格是既倾斜又扭曲。如图7所示,图7示出了一种待处理图像中的目标表格既倾斜又扭曲的示意图。另外,所述待处理图像中的目标表格也可以是密集的或者稀疏的,本说明书的实施例对此不作限定。
59.所述预处理模块3200可以对所述待处理图像进行预处理,得到包含了目标表格的目标表格图像,然后将所述目标表格图像输出至所述结构识别模块3300。具体地,所述目标
表格在待处理图像中可能为倾斜的状态,也可能很端正。当需要对所述目标表格的倾斜程度进行识别和处理时,所述预处理模块3200可以包括方向模型3201,当不需要对所述目标表格的倾斜程度进行识别和处理时,所述预处理模块3200可以不包括方向模型3201。当需要提取所述待处理图像中的表格区域时,所述预处理模块3200可以包括表格检测模型3202,当不需要提取所述待处理图像中的表格区域时,所述预处理模块3200可以不包括表格检测模型3202。所述方向模型3201可以对所述待处理图像进行倾斜矫正以矫正所述待处理图像中目标表格的倾斜,得到矫正图像,将所述矫正图像输出至所述表格检测模型3202。所述表格检测模型3202可以对所述矫正图像进行表格检测,提取所述矫正图像中的表格区域,得到包含目标表格的目标表格图像,然后将所述目标表格图像输出至所述结构识别模块3300。
60.所述结构识别模块3300可以从所述目标表格图像中基于多个文字区域的位置提取所述目标表格的表格结构,将所述表格结构输出至所述文字识别模块3400。具体地,所述结构识别模块3300可以包括列模型3301、行模型3302以及合并模型3303。所述列模型3301可以获取所述目标表格图像的二维的第一特征图,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在列方向上分布的位置数据,将所述多个文字区域在所述列方向上分布的位置数据输出至所述合并模型3303。所述行模型3302可以获取所述目标表格图像的二维的第一特征图,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在行方向上分布的位置数据,将所述多个文字区域在所述行方向上分布的位置数据输出至所述合并模型3303。所述合并模型3303可以结合所述多个文字区域在所述列方向上分布的位置数据和在所述行方向上分布的位置数据,提取所述目标表格的所述表格结构,将所述表格结构输出至所述文字识别模块3400。所述结构识别模块3300从所述目标表格图像中基于多个文字区域的位置提取所述目标表格的表格结构的方法将在后文详细介绍。
61.所述文字识别模块3400和所述结构认知模块3500可以基于所述表格结构,从所述目标表格图像中提取所述目标表格的内容数据,所述内容数据包括每个文字区域内的文字、所述每个文字区域对应的行表头和列表头,所述结构认知模块3500可以将所述目标表格的内容数据依照所述表格结构通过输出模块3600输出。
62.所述文字识别模块3400可以对所述目标表格包括的多个文字区域中的每个文字区域进行文字识别,得到每个文字区域内的文字,将所述每个文字区域内的文字输出至所述结构认知模块3500。所述文字识别模块3400可以只包括文字识别模型3401,也可以包括文字识别模型3401和后处理模型3402。在所述文字识别模块3400只包括文字识别模型3401时,所述文字识别模型3401可以对位于所述目标表格图像中的每个文字区域内的文字进行识别,得到每个文字区域内的文字,并将所述每个文字区域内的文字输出至所述结构认知模块3500。在所述文字识别模块3400同时包括文字识别模型3401和后处理模型3402时,所述文字识别模型3401可以对位于所述目标表格图像中的每个文字区域内的文字进行识别,得到每个文字区域内的初始文字,然后将所述初始文字输出至所述后处理模型3402。所述后处理模型3402可以对所述初始文字进行后处理,得到每个文字区域内的文字,并将所述每个文字区域内的文字输出至所述结构认知模块3500。其中,后处理包括对所述文字识别模型3401无法识别的文字进一步进行处理,比如根据该无法识别的文字的上下文确认该文
字。
63.所述结构认知模块3500可以包括行列表头模型3501和结构认知模型3502。所述行列表头模型3501可以获取每个文字区域对应的行表头和列表头;所述结构认知模型3502可以将所述每个文字区域内的文字、所述每个文字区域对应的行表头以及所述每个文字区域对应的列表头,认知为(确定为)所述目标表格中的内容数据,将所述目标表格的内容数据依照所述表格结构通过输出模块3600输出。
64.所述输出模块3600可以将所述目标表格的内容数据依照所述表格结构输出,例如所述输出模块3600将所述内容数据以表格结构化json的形式输出,其中,json是一种数据组织方式,是以结构化的形式描述数据。
65.图8示出了根据本说明书的实施例提供的一种表格识别方法p100的流程图。如前所述,计算设备300可以执行本说明书所述的表格识别方法p100。具体地,处理器320可以读取存储在其本地存储介质中的指令集,然后根据所述指令集的规定,执行本说明书所述的表格识别方法p100。如图8所示,所述方法p100可以包括:
66.s110:获取包含目标表格的目标表格图像。
67.如图9所示,步骤s110可以进一步包括步骤s111-s113:
68.s111:获取待处理图像,所述待处理图像为打印在介质上的目标表格的扫描图像,所述待处理图像中的目标表格图像包括扭曲和倾斜的目标表格。
69.客户端100可以采集待处理图像,通过服务器200将所述待处理图像发送给计算设备300,计算设备300从而获取到待处理图像。
70.如前所述,待处理图像中的目标表格可能是倾斜的,可能是扭曲的,也可能是既倾斜又扭曲的。如果所述待处理图像中的目标表格不倾斜,可以不执行s112中倾斜矫正的过程,直接执行s113中表格检测的过程。
71.s112:对所述待处理图像进行倾斜矫正以矫正所述目标表格的倾斜,得到矫正图像。
72.为了提高表格识别的准确性,处理器320需要对所述待处理图像进行倾斜矫正以矫正所述目标表格的倾斜。处理器320可以采用基于cnn(convolutional neural networks,卷积神经网络)的分类模型对所述待处理图像进行倾斜矫正。当然还可以采用其他的倾斜矫正方法对所述待处理图像进行倾斜矫正,例如,基于hough(霍夫)变换的方法、基于投影的方法以及k-近邻聚类法,本说明书的实施例对此不作限定。
73.s113:对所述矫正图像进行表格检测,提取所述矫正图像中的表格区域,得到所述包含目标表格的目标表格图像。
74.处理器320提取所述矫正图像中的表格区域,得到包含目标表格的目标表格图像,即去除所述矫正图像中除了表格区域之外的其他区域,这样,通过对所述矫正图像进行表格检测进而将表格区域与其他区域割裂开,只保留包含目标表格的目标表格图像,提高了表格识别的效率。
75.处理器320可以采用rfcos模型对所述矫正图像进行表格检测,当然也可以采用其他方法对所述矫正图像进行表格检测,本说明书的实施例对此不作限定。
76.在获取到所述目标表格图像后,所述方法p100还可以包括:
77.s120:从所述目标表格图像中基于多个文字区域的位置提取所述目标表格的表格
结构。
78.为了便于描述,本说明书采用如下定义:将目标表格的行方向和列方向分成第一方向和第二方向。也即是,如果所述第一方向是行方向,则所述第二方向是列方向,如果所述第一方向是列方向,则所述第二方向是行方向。相应地,所述表格结构包括所述多个文字区域在第一方向上分布的位置数据和在第二方向上分布的位置数据。为了便于描述,在后续对步骤进行详细解释时将所述多个文字区域在第一方向上分布的位置数据称为第一位置数据,将所述多个文字区域在第二方向上分布的位置数据称为第二位置数据。
79.第一位置数据可以为所述多个文字区域在第一方向上的顺序值。以第一方向为列方向为例,所述第一位置数据可以包括第1列、第2列、第3列、第4列。第二位置数据可以为所述多个文字区域在第二方向上的顺序值。以第二方向为行方向为例,第二位置数据可以为第1行、第2行、第3行。第一位置数据还可以为每个文字区域覆盖的像素点中每个像素点在第一方向上的像素坐标值,也可以从所述覆盖的像素点中选取任意像素点,将所述任意像素点在第一方向上的像素坐标值作为第一位置数据。第二位置数据还可以为每个文字区域覆盖的像素点中每个像素点在第二方向上的像素坐标值,也可以从所述覆盖的像素点中选取任意像素点,将所述任意像素点在第二方向上的像素坐标值作为第二位置数据。本说明书的实施例对第一位置数据和第二位置数据具体的内容不作限定。
80.具体地,如图10所示,步骤s120可以包括步骤s121-s123:
81.s121:获取所述目标表格图像的二维的第一特征图,所述第一特征图中包括多个像素点。
82.处理器320可以采用cnn模型对所述目标表格图像进行下采样和特征提取,获得所述目标表格图像的二维的第一特征图。比如,可以采用hrnet(high-resolution network,高分辨率网络)模型进行上述下采样和特征提取。在获得所述第一特征图时,可以先对所述目标表格图像的尺寸进行调整,然后采用hrnet模型对调整后的目标表格图像进行下采样和特征提取,获得所述第一特征图。调整后的目标表格图像的尺寸例如可以为320*320,所述第一特征图的尺寸例如可以为80*80,本说明书的实施例对调整后的目标表格图像的尺寸和第一特征图的尺寸不作限定。当然还可以采用其他方法对所述目标表格图像进行特征提取,进而获取所述第一特征图,比如采用vgg-net(visual geometry group network,视觉几何组网络)模型、googlenet模型等,本说明书的实施例对获取所述第一特征图的方法不作限定。
83.s122:以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据和在所述第二方向上分布的位置数据。
84.如前所述,表格结构包括所述第一位置数据和所述第二位置数据。在本步骤中,处理器320需要判断获取第一位置数据的时机和获取第二位置数据的时机,即需要判断什么时候获取的是第一位置数据,什么时候获取的是第二位置数据。判断获取第一位置数据的时机和获取第二位置数据的时机可以有以下两种可能的实现方式:
85.第一种可能的实现方式:首先,处理器320获取所述第一特征图在所述第一方向上的第一投影图;以及获取所述第一特征图在所述第二方向上的第二投影图。比如,处理器320可以对所述第一特征图在所述第一方向上进行池化处理,从而获取所述第一投影图。同样地,处理器320可以对所述第一特征图在所述第二方向上进行池化处理,获取所述第二投
影图。其中,所述池化处理可以是平均池化,也可以是最大池化。对于二维的特征图来说,池化后的投影图为一维的数组,其数值的大小体现的是在对应池化方向上特征图像素值的累加,也就是在某位置上沿着池化方向存在的特征图对应的文字的多少。比如,如果是沿着列方向进行池化的话,池化的结果就是所有文字特征图沿着列方向上投影。该列方向上的投影可以为后续处理器320识别列方向的文字区域提供参考。
86.需要说明的是,对第一特征图在所述第一方向上进行池化处理之后,还可以将池化处理后的图像输入到时序模型中进行相互感知处理,使得所述池化处理后的图像中的每个文字区域都包含其他文字区域的信息,从而输出文字区域在所述第二方向上相互感知的第一投影图。比如,所述时序模型可以为blstm(bidirectional long short-term memory,双向的长短期记忆)网络模型或者convlstm(convolutional long short-term memory,卷积长短期记忆)网络模型等。
87.例如,假设第一方向为列方向,经过池化处理后的图像高度为1、宽度为w,且池化处理后的图像中包括左右排列的4个文字区域,则将池化处理后的图像输入到blstm时序模型后,这4个文字区域左右相互感知,即在行方向上相互感知,每个文字区域都包括其他3个文字区域的信息,从而输出文字区域在所述第二方向上相互感知的第一投影图。类似地,对第一特征图在所述第二方向上进行池化处理之后,还可以将池化处理后的图像输入到时序模型中进行相互感知处理,使得所述池化处理后的图像中的每个文字区域都包含其他文字区域的信息,从而输出文字区域在所述第一方向上相互感知的第二投影图。
88.还需要说明的是,第一投影图显示了第一特征图中的文字区域在所述第一方向上的阴影分布。以第一方向为列方向为例,对于包含横平竖直的目标表格的目标表格图像而言,一列文字区域在列方向上会投影到同一个投影区域,一列空白区域在列方向上也会投影在同一个投影区域。一列文字区域对应的投影区域中每个像素点的投影值都大于一列空白区域对应的投影区域中每个像素点的投影值。第一方向为行方向时同理。因此,根据包含横平竖直的目标表格的目标表格图像的投影图可以确定目标表格中文字区域的列数和行数,也可以明确地区分出文字区域和空白区域。
89.仍以第一方向为列方向举例,对于包含扭曲的目标表格的目标表格图像,一列文字区域在列方向上会投影到不同的投影区域中,这些投影区域之间可能会有部分重叠,出现重叠区域,也可能不会重叠。也即是,包含扭曲的目标表格的目标表格图像的投影图中可以包括文字区域的重叠区域、文字区域的非重叠区域以及空白区域。重叠区域中的像素点更可能是文字区域的中间部分,非重叠区域中的像素点更可能是文字区域的边界部分,重叠区域中每个像素点的投影值大于非重叠区域中每个像素点的投影值,非重叠区域中每个像素点的投影值大于空白区域中每个像素点的投影值。第一方向为行方向时同理。因此,根据包含扭曲的目标表格的目标表格图像的投影图可以得到文字区域大致的列数和行数,也可以知道投影图中的每个像素点更可能是文字区域的中间部分的像素点,还是文字区域的边界部分的像素点,还是空白区域的像素点。
90.可以看出,无论是横平竖直的目标表格,还是扭曲的目标表格,根据目标表格图像的投影图都能得到文字区域的行数信息、列数信息、文字区域的像素信息以及空白区域的像素信息。因此,获取第一特征图在第一方向上的第一投影图后,可以将所述第一投影图作为沿着所述第一方向判断文字区域的参考,以获取第一位置数据。获取到第一特征图在第
二方向上的第二投影图后,可以将所述第二投影图作为沿着所述第二方向判断文字区域的参考,以获取第二置数据。
91.需要说明的是,如果第一方向是列方向,第一投影图包括列数信息、文字区域的像素信息以及空白区域的像素信息,根据第一投影图就可以知道目前要获取的是多个文字区域在列方向上分布的位置数据。如果第一方向是行方向,第一投影图包括行数信息、文字区域的像素信息以及空白区域的像素信息,根据第一投影图就可以知道目前要获取的是多个文字区域在行方向上分布的位置数据。这样,根据第一投影图就能确定获取第一位置数据的时机。类似地,根据第二投影图能确定获取第二位置数据的时机。
92.在获取所述第一特征图在所述第一方向上的第一投影图后,处理器320将所述第一投影图作为沿着所述第一方向判断文字区域的参考,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第一方向上分布的位置数据。具体地,处理器320可以将所述第一投影图和所述第一特征图输入注意力-记忆联合网络模型对所述第一特征图逐像素计算,获取所述多个文字区域在所述第一方向上分布的位置数据。
93.举例说明,图11示出了根据本说明书的实施例提供的一种将第一投影图和第一特征图输入注意力-记忆联合网络模型获取第一位置数据的示意图。如图11所示,目标表格图像中包括扭曲的目标表格;而目标表格包括4列文字区域,以3个黑色方框表示第1列文字区域,以4个填充左斜线的方框表示第2列文字区域,以3个填充右斜线的方框表示第3列文字区域,以3个填充黑点的方框表示第4列文字区域。目标表格图像中的3条斜线不是真实存在的,只是为了示意目标表格的扭曲。目标表格图像经过cnn得到宽w个像素高h个像素的第一特征图,第一特征图经过池化处理得到宽w个像素高为1个像素的图像,池化处理后的图像经过blstm的处理输出第一投影图。将第一投影图和第一特征图输入注意力-记忆联合网络模型z对所述第一特征图逐像素计算,从而获取第一位置数据。
94.同样地,在获取所述第一特征图在所述第二方向上的第二投影图后,处理器320可以将所述第二投影图作为沿着所述第二方向判断文字区域的参考,以像素为单位对所述第一特征图进行二维扫描,获取所述多个文字区域在所述第二方向上分布的位置数据。具体地,处理器320可以将所述第二投影图和所述第一特征图输入注意力和记忆联合模型对所述第一特征图逐像素计算,获取所述多个文字区域在所述第二方向上分布的位置数据。获取第二位置数据和获取第一位置数据的过程类似,在此不再赘述。
95.需要说明的是,本说明书的实施例以像素为单位对所述第一特征图进行二维扫描,二维扫描是指对图像的像素按行和按列扫描,通过注意力和记忆联合模型对所述第一特征图逐像素计算,因此,可以比较细粒度地识别表格,即使目标表格图像是比较密集的图像,也能够准确地识别出目标表格。
96.第二种可能的实现方式:将所述第一特征图输入针对所述第一方向分布训练的注意力-记忆联合网络模型对所述第一特征图逐像素计算获得第一目标特征向量,并基于所述第一目标特征向量获取所述多个文字区域在所述第一方向上分布的位置数据;以及将所述第一特征图输入针对所述第二方向分布训练的注意力-记忆联合网络模型对所述第一特征图逐像素计算获得第二目标特征向量,并基于所述第二目标特征向量获取所述多个文字区域在所述第二方向上分布的位置数据。
97.其中,第一目标特征向量包含了第一位置数据的信息,第二目标特征向量包含了
第二位置数据的信息。
98.在所述第二种可能的实现方式中,基于专门训练的注意力-记忆联合网络模型获取第一位置数据和在第二位置数据。如果对注意力-记忆联合网络模型针对第一方向分布训练,可以基于训练后的注意力-记忆联合网络模型获取第一位置数据。如果对注意力-记忆联合网络模型针对第二方向分布训练,可以基于训练后的注意力-记忆联合网络模型获取第二位置数据。
99.举例说明,图12示出了根据本说明书的实施例提供的一种根据针对所述第一方向分布训练的注意力-记忆联合网络模型获取第一位置数据的示意图。如图12所示,y为针对所述第一方向分布训练的注意力-记忆联合网络模型,将第一特征图输入y对第一特征图逐像素计算获得第一目标特征向量h
t
,并基于h
t
获取第一位置数据。
100.在一些实施例中,所述针对所述第一方向分布训练的注意力-记忆联合网络模型的初始输入值为第一投影图,所述第一投影图为所述第一特征图在所述第一方向上的投影图,所述针对所述第二方向分布训练的注意力-记忆联合网络模型的初始输入值为第二投影图,所述第二投影图为所述第一特征图在所述第二方向上的投影图。
101.需要说明的是,作为初始输入值的第一投影图可以是所述第一种可能的实现方式中的第一投影图,作为初始输入值的第二投影图可以是所述第一种可能的实现方式中的第二投影图,本说明书的实施例对此处的第一投影图和第二投影图不再赘述。由于第一投影图和第二投影图本身就包含了目标表格图像的信息,因此,将第一投影图和第二投影图作为初始输入值,能够提高表格识别的效果。当然,针对所述第一方向分布训练的注意力-记忆联合网络模型和针对所述第二方向分布训练的注意力-记忆联合网络模型的初始输入值还可以为其他,例如为0,本说明书的实施例对此不作限定。
102.还需要说明的是,如果注意力-记忆联合网络模型是针对第一方向分布训练的模型,则可以确定目前要获取的是第一位置数据。如果注意力-记忆联合网络模型是针对第二方向分布训练的模型,则可以确定目前要获取的是第二位置数据。这样,根据专门训练的注意力-记忆联合网络模型即可确定获取第一位置数据的时机和获取第二位置数据的时机。
103.处理器320可以采用所述第一种可能的实现方式判断获取第一位置数据的时机和获取第二位置数据的时机,即基于第一投影图和第二投影图的方式判断;也可以采用所述第二种可能的实现方式判断获取第一位置数据的时机和获取第二位置数据的时机,即基于专门训练的注意力-记忆联合网络模型判断,也可以同时采用所述第一种可能的实现方式和所述第二种可能的实现方式判断,本说明书的实施例对此不作限定。
104.需要说明的是,有线的目标表格的多个文字区域之间存在分隔线,所述分隔线通常位于相邻两个文字区域之间,因此,本说明实施例也可以结合所述分隔线来辅助获取所述多个文字区域的位置。比如,对于横平竖直的目标表格或者扭曲的目标表格,处理器320可以获取所述分隔线的投影区域,结合分隔线的投影区域辅助确定文字区域的位置。另外,本说明书实施例在获取文字区域的位置之前还可以通过文字识别器来进行文字识别,利用文字识别器来辅助获取文字区域的位置。但需要明确的是,本说明书实施例完全可以独立识别和提取文字区域,也即是,上述方法在识别和提取文字区域的时候并不依赖所述多个文字区域之间是否存在分隔线,无论所述分隔线是否存在都可以确定目标表格的文字区域。同时,上述方法也可以完全不依赖文字识别来辅助识别多个文字区域,即上述方法在识
别文字区域的时候完全可以不经过对所述目标表格中文字的识别。
105.s123:结合所述多个文字区域在所述第一方向上分布的位置数据和在所述第二方向上分布的位置数据,提取所述目标表格的所述表格结构。
106.处理器320获取了第一位置数据和第二位置数据,即获取了所述多个文字区域在列方向上分布的位置数据和在行方向上分布的位置数据,也就确定了所述多个文字区域在目标表格中的位置数据,例如,某个文字区域在目标表格中的位置数据为(第几行,第几列),也就提取了目标表格的表格结构。
107.如前所述,识别和提取文字区域的过程中可以结合分隔线和/或文字识别器的辅助,也即是,提取表格结构的过程可以参考所述分隔线,也可以参考对目标表格中文字的识别。但是,处理器320在识别和提取文字区域的时候也可以完全不依靠目标表格的分隔线来标定多个文字区域,也可以不经过对所述目标表格中文字的识别,而是通过注意力-记忆联合网络模型对目标表格图像以像素为单位逐个判断相关性来识别多个文字区域。因此在整个提取表格结构的时候,便能够实现既不依赖所述目标表格是否依靠分隔线,也不经过对所述目标表格中文字的识别,而是单独通过文字区域的位置提取表格结构。
108.如图8所示,在提取了目标表格的表格结构后,所述方法p100还可以包括步骤s130:基于所述表格结构,从所述目标表格图像中提取所述目标表格的内容数据,并将所述目标表格的内容数据依照所述表格结构输出。
109.在这一步中,处理器320可以按照每个文字区域的第一位置数据和第二位置数据提取所述每个文字区域的内容数据。例如,处理器320可以提取第1列第1行的文字区域的内容数据、提取第1列第2行的文字区域的内容数据。所述内容数据包括所述每个文字区域内的文字以及所述每个文字区域对应的行表头和列表头。
110.比如,处理器320可以对所述目标表格包括的多个文字区域中的每个文字区域进行文字识别,得到每个文字区域内的文字;获取每个文字区域对应的行表头和列表头;以及将所述每个文字区域内的文字、所述每个文字区域对应的行表头和列表头,确定为所述目标表格中的内容数据。
111.需要说明的是,如前所述,行表头通常包括第一列文字区域中的文字,列表头通常包括第一行文字区域中的文字,每个文字区域对应的行表头是该文字区域所在行的第一个文字区域中的文字,每个文字区域对应的列表头是该文字区域所在列的第一个文字区域中的文字。那么,对于除了行表头和列表头之外的任意一个文字区域内的文字,处理器320都可以将该文字区域对应的行表头和列表头与该文字区域内的文字以双键-值对的形式存储在存储介质中,其中,“双键”包括该文字区域对应的行表头和列表头,“值”是该文字区域内的文字。也即是,处理器320可以用该文字区域对应的行表头和列表头共同解释该文字区域内的文字。比如,在图4中,“卷积操作”的行表头为“1”,列表头为“操作类型”,则处理器320能够确定“卷积操作”是第1个操作类型。
112.另外,可以采用ocr(optical character recognition,光学字符识别)技术对每个文字区域内的文字进行识别。
113.需要说明的是,处理器320可以通过不同的方法获取每个文字区域对应的行表头和列表头。在一些实施例中,处理器320可以直接提取所述多个文字区域沿所述目标表格的行方向排列时的第一个文字区域中的文字,作为所述多个文字区域沿所述目标表格的行方
向排列时每个文字区域的行表头;处理器320可以直接提取所述多个文字区域沿所述目标表格的列方向排列时的第一个文字区域中的文字,作为所述多个文字区域沿所述目标表格的列方向排列时每个文字区域的列表头。在一些实施例中,处理器320可以将所述目标表格的表格结构、多个文字区域内的文字输入图网络模型中,获取所述图网络模型输出的每个文字区域对应的行表头和列表头。
114.在一些实施例中,处理器320可以将所述目标表格的内容数据依照所述表格结构输出到目标介质。所述目标介质可以包括存储介质或者显示屏,比如处理器320可以将所述目标表格的表格结构和内容数据以矩阵的形式或者json的形式存储到存储介质中;或者,将所述目标表格的表格结构和内容数据以电子表格图像的方式显示在显示屏上。当然,目标介质还可以为其他设备,例如服务器等,本说明书的实施例对此不作限定。
115.在步骤s122中,所述第一种可能的实现方式和所述第二种可能的实现方式中都涉及到了注意力-记忆联合网络模型,基于注意力-记忆联合网络模型获取第一位置数据和第二位置数据,以下具体介绍根据注意力-记忆联合网络模型进行表格识别的方法。
116.根据本技术的一些实施例,所述注意力-记忆联合网络模型可以包括注意力网络模型连接循环记忆网络模型,并且以循环迭代加反馈的方式运行。其中在当前一轮循环中:所述循环记忆网络被配置为输出所述第一特征图的目标特征向量并将所述目标特征向量作为自身下一轮循环的输入;所述注意力网络模型被配置为:接收并基于所述第一特征图和所述循环记忆网络模型在上一轮循环输出的目标特征向量,确定并输出与所述多个像素点一一对应的多个相似度权重,每个相似度权重描述了所述第一特征图中每个像素点与所述上一轮循环输出的目标特征向量之间的相似程度,以及确定并将所述第一特征图的目标增强向量输入到所述循环记忆网络模型中。
117.需要说明的是,如果步骤s122采用了所述第二种可能的实现方式,所述循环记忆网络b输出的目标特征向量,可以是基于针对所述第一方向分布训练的注意力-记忆联合网络模型获得的第一目标特征向量,也可以是基于针对所述第二方向分布训练的注意力-记忆联合网络模型获得第二目标特征向量。
118.在一些实施例中,注意力网络模型a采用二维的注意力(2d attention)机制,注意力机制的作用是对图像中不同的区域给予不同的权重,找到感兴趣的区域,加强感兴趣的区域、抑制不感兴趣的区域,输出一张注意力的概率图或概率矩阵,概率图中感兴趣的区域被高亮,概率矩阵中感兴趣的区域对应的概率值大。注意力机制包括hard attention机制和softattention机制,hard attention机制在当前时刻只能加强一个区域,而softattention机制在当前时刻可以感知并加强多个区域。本技术的二维注意力机制采用的是softattention机制。另外,循环记忆网络模型b可以为lstm(long short-term memory,长短期记忆网络)模型。
119.举例说明,图13示出了根据本说明书的实施例提供的一种根据注意力-记忆联合网络模型进行表格识别的示意图。如图13所示,注意力-记忆联合网络模型包括注意力网络模型a和循环记忆网络模型b,注意力网络模型a采用2d attention模型,循环记忆网络模型b采用lstm模型,lstm模型中包括多个lstm,图13中以三个lstm为例进行说明,每个lstm都对应一个2d attention模型,也即是,三个lstm实际对应三个2d attention模型,图13中只示意性地示出了一个在当前一轮循环的2d attention模型进行说明。另外,图13沿用了图
11中将第一投影图输入注意力-记忆联合网络模型的示意过程。
120.参考图13,以第二个lstm为当前一轮循环的lstm为例,在当前一轮循环中(即在当前时刻t),lstm输出目标特征向量h
t
,并将h
t
输入到下一个lstm中。2d attention模型接收第一特征图f和第一个lstm输出的目标特征向量h
t-1
,基于f和h
t-1
输出α
t
和目标增强向量g
t
,α
t
由与所述多个像素点一一对应的多个相似度权重组成,并将g
t
输入到lstm中。
121.需要说明的是,本说明书的实施例示例性地对注意力网络模型a和循环记忆网络模型b在当前一轮循环的过程进行了描述,注意力网络模型a和循环记忆网络模型b的其他轮循环的过程与所述当前一轮循环的过程相同,本说明书的实施例在此不再赘述。
122.在一些实施例中,所述注意力网络模型a可以通过公式一和公式二输出α
ij

123.公式一:e
ij
=tanh(wff
ij
+wfh
t-1
)
124.其中,f
ij
为所述第一特征图f中第i行第j列的像素点,第一特征图f包括多个通道,f
ij
是由每个像素点在多个通道的像素值组成的一维向量,e
ij
为第一特征图f中第i行第j列的像素点对应的初始权重,tanh()为相似度函数,wf为固定权重,h
t-1
为所述循环记忆网络模型b在上一轮循环输出的目标特征向量。
125.公式二:
126.其中,α
ij
为第一特征图f中第i行第j列的像素点对应的相似度权重,α
ij
的取值范围为[0,1],softmax()为归一化函数,为固定权重。
[0127]
在一些实施例中,所述注意力网络模型a可以通过公式三输出目标增强向量g
t

[0128]
公式三:g
t
=∑
ij
α
ijfij
,i=1,l,h;j=1,l w.
[0129]
其中,g
t
为目标增强向量,是一个一维向量,∑
ij
α
ijfij
,i=1,l,h;j=1,l w.是指对每一个相似度权重α
ij
和第一特征图f中的每个像素点f
ij
特征进行相乘,并将多个相乘的结果相加,第一特征图f的宽度为h,高度为w。
[0130]
在一些实施例中,所述循环记忆网络b可以通过公式四输出所述第一特征图的目标特征向量h
t

[0131]
公式四:h
t
=lstm(g
t
,h
t-1
)
[0132]
其中,h
t
为所述目标特征向量,是一个一维向量,lstm()为循环记忆网络b的函数,g
t
为所述第一特征图的目标增强向量。
[0133]
需要说明的是,通过注意力网络模型a和循环记忆网络模型b获取第一位置数据的方式与获取第二位置数据的方式类似,以下只对如何通过注意力网络模型a和循环记忆网络模型b获取第一位置数据的方式进行详细介绍:
[0134]
所述获取所述多个文字区域在所述第一方向上分布的位置数据(第一位置数据)包括:对所述当前一轮循环的目标特征向量进行像素变换处理和像素调整处理,得到所述当前一轮循环的变换特征图;根据所述多个相似度权重对所述第一特征图进行赋权处理,获取赋权特征图;以及将所述变换特征图和所述赋权特征图进行融合处理,获取所述当前一轮循环的第二特征图,所述第二特征图包括所述多个文字区域在所述第一方向上分布的位置数据。
[0135]
在一些实施例中,可以通过公式五获取所述当前一轮循环的第二特征图:
[0136]
公式五:y
t
=α*f+nn.linear(h
t
).reshape(h,w)
[0137]
其中,y
t
为所述第二特征图,α*f为赋权特征图,nn.linear(h
t
)为对所述当前一轮循环的目标特征向量h
t
进行像素变换处理,reshape(h,w)为对nn.linear(h
t
)进行像素调整处理,即对nn.linear(h
t
)中的像素特征进行重新排序,使其变成宽度为h,高度为w的变换特征图。
[0138]
需要说明的是,当第一方向为列方向时,所述当前一轮循环的第二特征图为某一列文字区域被高亮的图像。假设目标表格图像包含n列文字区域,注意力-记忆联合网络模型会循环n+1次,前n次循环按照所述n列文字区域从左到右的顺序逐列输出文字区域被高亮的图像,直到第n+1次输出一张空白图像时循环停止。例如,参考图13,目标表格图像包含4列文字区域,注意力-记忆联合网络模型循环5次,第1次循环(t=1时)输出第一列文字区域被高亮的图像,第2次循环(t=2时)输出第二列文字区域被高亮的图像,第3次循环(t=3时)输出第三列文字区域被高亮的图像,第4次循环(t=4时)输出第四列文字区域被高亮的图像,直到第5次循环输出一张空白图像停止。
[0139]
类似地,当第一方向为行方向时,所述当前一轮循环的第二特征图为某一行文字区域被高亮的图像。假设目标表格图像包含m行文字区域,注意力-记忆联合网络模型会循环m+1次,前m次循环按照所述m行文字区域从上到下的顺序逐行输出文字区域被高亮的图像,直到第m+1次输出一张空白图像时循环停止。例如,目标表格图像包含3行文字区域,注意力-记忆联合网络模型循环4次,第1次循环输出第一行文字区域被高亮的图像,第2次循环输出第二行文字区域被高亮的图像,第3次循环输出第三行文字区域被高亮的图像,直到第4次循环输出一张空白图像停止。
[0140]
还需要说明的是,赋权特征图α*f(参见图13中的加粗黑线)是将所述第一特征图中所有文字区域都高亮的图像,将赋权特征图作为获取第二特征图的参考,能够显著提高表格识别的识别能力和准确性。也即是,通过在提取表格结构的过程中增加赋权特征图α*f,增强了表格识别的效果。
[0141]
综上所述,本说明书提供的表格识别方法p100、系统001,获取包含目标表格的目标表格图像,所述目标表格包括多个文字区域,基于所述多个文字区域的位置从目标表格图像中提取表格结构,表格结构包括多个文字区域在第一方向上分布的位置数据和在第二方向上分布的位置数据,基于表格结构从目标表格图像中提取目标表格的内容数据,并将目标表格的内容数据按照表格结构输出。本技术的表格识别方法取决于文字区域的位置数据,可以不依赖多个文字区域之间是否存在分隔线,因此无论目标表格图像是横平竖直的还是扭曲的,都能准确地识别出来,且不限于是有线的表格图像还是无线的表格图像。而且,提取目标表格的表格结构的过程中也可以不经过对目标表格中文字的识别,即不需要文字识别器的辅助,直接从目标表格图像还原出表格结构,更加端到端,因此表格识别方法更加简单。
[0142]
本说明书另一方面提供一种非暂时性存储介质,存储有至少一组用来进行数据处理的可执行指令。当所述可执行指令被处理器执行时,所述可执行指令指导所述处理器实施本说明书所述的数据处理方法p100的步骤。在一些可能的实施方式中,本说明书的各个方面还可以实现为一种程序产品的形式,其包括程序代码。当所述程序产品在计算设备300上运行时,所述程序代码用于使计算设备300执行本说明书描述的数据处理方法p100的步骤。用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)包括程序代
码,并可以在计算设备300上运行。然而,本说明书的程序产品不限于此,在本说明书中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在计算设备300上执行、部分地在计算设备300上执行、作为一个独立的软件包执行、部分在计算设备300上部分在远程计算设备上执行、或者完全在远程计算设备上执行。
[0143]
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者是可能有利的。
[0144]
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本说明书需求囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本说明书提出,并且在本说明书的示例性实施例的精神和范围内。
[0145]
此外,本说明书中的某些术语已被用于描述本说明书的实施例。例如,“一个实施例”,“实施例”和/或“一些实施例”意味着结合该实施例描述的特定特征,结构或特性可以包括在本说明书的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对“实施例”或“一个实施例”或“替代实施例”的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本说明书的一个或多个实施例中适当地组合。
[0146]
应当理解,在本说明书的实施例的前述描述中,为了帮助理解一个特征,出于简化本说明书的目的,本说明书将各种特征组合在单个实施例、附图或其描述中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本说明书的时候完全有可能将其中一部分设备标注出来作为单独的实施例来理解。也就是说,本说明书中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所
有特征的时候也是成立的。
[0147]
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
[0148]
最后,应理解,本文公开的申请的实施方案是对本说明书的实施方案的原理的说明。其他修改后的实施例也在本说明书的范围内。因此,本说明书披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本说明书中的实施例采取替代配置来实现本说明书中的申请。因此,本说明书的实施例不限于申请中被精确地描述过的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1