CN114463765A - 一种表格信息提取方法、装置及存储介质 - Google Patents
一种表格信息提取方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114463765A CN114463765A CN202210126160.5A CN202210126160A CN114463765A CN 114463765 A CN114463765 A CN 114463765A CN 202210126160 A CN202210126160 A CN 202210126160A CN 114463765 A CN114463765 A CN 114463765A
- Authority
- CN
- China
- Prior art keywords
- target text
- target
- region
- cell
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Character Input (AREA)
Abstract
本申请实施例涉及计算机技术领域,公开了一种表格信息提取方法、装置及存储介质,该方法包括:获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中各个单元格的对应关系;再在初始表格中确定目标单元格组;若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格;最后基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。采用本申请实施例,可实现对含有非全线表的图像进行表格结构化,从而提取出含有非全线表的图像的表格数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种表格信息提取方法、装置及存储介质。
背景技术
对文本数据图像中的表格进行检测和结构化,即基于图像中的文本数据生成表格,可应用于例如费用清单或者保单等多种业务场景。目前针对于存在完整表格线的表格结构化技术较多,但对于含有非全线表的图像,如何对该图像进行表格结构化是目前亟需解决的技术问题。
发明内容
本申请实施例提供一种表格信息提取方法、装置及存储介质,可实现对含有非全线表的图像进行表格结构化,从而提取出含有非全线表的图像的表格数据。
一方面,本申请实施例提供了一种表格信息提取方法,包括:
获取目标图像的初始表格,以及所述目标图像的各个目标文本区域与所述初始表格中的各个单元格的对应关系,其中所述各个目标文本区域是对所述目标图像进行文本检测处理得到的;
在所述初始表格中确定目标单元格组,所述目标单元格组包括第一单元格和第二单元格,所述第一单元格与所述第二单元格位于同一列,所述第一单元格位于所述初始表格中的第m1行,所述第二单元格位于所述初始表格中的第m2行,m1、m2均为正整数,m1小于m2,所述第一单元格与所述第二单元格均存在对应的目标文本区域;
若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,所述目标表格的第m1行中的各个单元格对应的目标文本区域包括所述初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;
基于所述各个目标文本区域与所述初始表格中各个单元格的对应关系,将所述目标表格中各个单元格对应的目标文本区域中的文本数据填充至所述目标表格中,得到表格数据。
一方面,本申请实施例提供了一种表格信息提取装置,所述表格信息提取装置包括获取单元,确定单元,合并单元以及填充单元,其中:
所述获取单元,用于获取目标图像的初始表格,以及所述目标图像的各个目标文本区域与所述初始表格中的各个单元格的对应关系,其中所述各个目标文本区域是对所述目标图像进行文本检测处理得到的;
所述确定单元,用于在所述初始表格中确定目标单元格组,所述目标单元格组包括第一单元格和第二单元格,所述第一单元格与所述第二单元格位于同一列,所述第一单元格位于所述初始表格中的第m1行,所述第二单元格位于所述初始表格中的第m2行,m1、m2均为正整数,m1小于m2,所述第一单元格与所述第二单元格均存在对应的目标文本区域;
所述合并单元,用于若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,所述目标表格中第m1行中的各个单元格对应的目标文本区域包括所述初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;
所述填充单元,用于基于所述各个目标文本区域与所述初始表格中各个单元格的对应关系,将所述目标表格中各个单元格对应的目标文本区域中的文本数据填充至所述目标表格中,得到表格数据。
一方面,本申请实施例提供了一种电子设备,所述电子设备包括输入接口和输出接口,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述表格信息提取方法。
一方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行上述表格信息提取方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;电子设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,所述计算机指令被处理器执行时,用于执行上述表格信息提取方法。
本申请实施例中,先获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,再在所述初始表格中确定目标单元格组,其中目标单元格组包括第一单元格和第二单元格,第一单元格与所述第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行;然后判断第m2行中的各个单元格对应的目标文本区域的第一数量总和是否满足第一预设条件,若是,则将所述初始表格的第m2行与第m1行合并,得到目标表格;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。本申请实施例中,通过获取到的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,可以确定各个目标文本区域在初始表格中的初始位置;然后,通过确定初始表格中的目标单元格组,以及判断第一数量总和是否满足第一预设条件,来确定出初始表格中应该合并的单元格,从而得到目标表格,其中,目标表格中原本应属于同一单元格但被对应至不同行的两个单元格中的目标文本区域是被合并了的。因此,该方法避免了换行的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种表格信息提取***的结构示意图;
图2是本申请实施例提供的一种表格信息提取方法的流程示意图;
图3是本申请实施例提供的一种合并单元格的示意图;
图4是本申请实施例提供的另一种合并单元格的示意图;
图5是本申请实施例提供的又一种合并单元格的示意图;
图6是本申请实施例提供的又一种合并单元格的示意图;
图7是本申请实施例提供的另一种表格信息提取方法的流程示意图;
图8a是本申请实施例提供的一种初始排列方式的示意图;
图8b是本申请实施例提供的一种再次排列方式的示意图;
图8c是本申请实施例提供的另一种再次排列方式的示意图;
图9是本申请实施例提供的又一种合并单元格的示意图;
图10是本申请实施例提供的又一种表格信息提取方法的流程示意图;
图11是本申请实施例提供的一种像素分布直方图;
图12是本申请实施例提供的一种文本粘连切分的示意图;
图13是本申请实施例提供的又一种表格信息提取方法的流程示意图;
图14是本申请实施例提供的又一种合并单元格的示意图;
图15是本申请实施例提供的又一种表格信息提取方法的流程示意图;
图16是本申请实施例提供的一种表格信息提取装置的结构示意图;
图17是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了做到对含非全线表的图像进行表格结构化,进而可以提取出含非全线表的图像的表格数据,本申请实施例提供了一种表格信息提取方案,先获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系;再在初始表格中确定目标单元格组,其中目标单元格组包括第一单元格和第二单元格,第一单元格与第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行,m1、m2均为正整数,m1小于m2,第一单元格与第二单元格均存在对应的目标文本区域;然后,若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格,其中,目标表格中第m1行中的各个单元格对应的目标文本区域包括初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
此外,含非全线表的图像可以是含半线表的图像,也可以是含无线表的图像,也可以是同时含有全线表、半线表以及无线表的图像,在此不限定。全线表指的是每个单元格的上、下、左、右四条边框均有表格线的表格,半线表指的是每个单元格的上、下、左、右四条边框中仅有至多三边有表格线的表格,无线表指的是每个单元格的上、下、左、右四条边均没有表格线的表格。可选地,本方案是一种通用的表格信息提取方法,除既适用于含非全线表的图像的表格提取,又可以适用于含全线表的图像的表格提取,在此不限定。
在一个实施例中,上述表格信息提取方案可以由终端设备来执行,其中,终端设备可以包括智能手机、平板电脑、笔记本电脑、台式计算机、智能车载以及智能可穿戴设备中的任意一种或多种;终端设备也可以是独立的服务器、云服务器、服务器集群或者分布式***等,在此不限定。所述终端设备可以将用户拍摄的图像作为目标图像,或者从终端设备中的图像数据库中选择一个图像作为目标图像,然后由终端设备获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系;再由终端设备在初始表格中确定目标单元格组;然后,由终端设备判断第m2行中的各个单元格对应的目标文本区域的第一数量总和是否满足第一预设条件,若是,则终端设备将初始表格的第m2行与第m1行合并,得到目标表格;最后,终端设备基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据;此外,终端设备还可以输出表格数据,方便用户对提取出的表格数据进行查看或确认。
基于上述表格信息提取方案,本申请实施例提供了一种表格信息提取***。参见图1,为本申请实施例提供的一种表格信息提取***的结构示意图。图1所示的表格信息提取***可以包括终端设备101以及服务器102。其中,终端设备101可以包括智能手机、平板电脑、笔记本电脑、台式计算机、智能车载以及智能可穿戴设备中的任意一种或多种。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备101以及服务器102之间可以通过有线或无线通信方式进行直接或间接地通信连接,本申请在此不做限制。
在一个实施例中,终端设备101的用户可以将拍摄的图像作为目标图像,或者从终端设备101中的图像数据库中选择一个图像作为目标图像,然后终端设备101将目标图像上传至服务器102。服务器102获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系;再由服务器102在初始表格中确定目标单元格组;然后,由服务器102判断第m2行中的各个单元格对应的目标文本区域的第一数量总和是否满足第一预设条件,若是,则服务器102将初始表格的第m2行与第m1行合并,得到目标表格;最后,服务器102基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据;最后,服务器102将表格数据发送至终端设备101,由终端设备101输出表格数据,以方便用户对提取出的表格数据进行查看和确认。
基于上述表格信息提取方案以及表格信息提取***,本申请实施例提供了一种表格信息提取方法。参见图2,为本申请实施例提供的一种表格信息提取方法的流程示意图。图2所示的表格信息提取方法可由图1所示的服务器或者终端设备执行。图2所示的表格信息提取方法可包括如下步骤:
S201,获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中各个单元格的对应关系。
在本申请实施例中,所述目标图像可以是拍摄到的图像,从图像数据库中的多张图像中所选择的图像、或者是服务器或者终端设备接收到的图像,在此不限定。其中,所述终端设备或者服务器选择图像的方式可以是由用户在多张图像中选择一张或者多张图像作为目标图像,也可以是由终端设备或者服务器从多张图像中任意抽选一张或者多张图像作为目标图像,在此不限定。
在本申请实施例中,所述初始表格可以包括m×n个单元格,m是根据最小纵坐标的目标文本区域和最大纵坐标的目标文本区域在目标图像中的位置信息确定的,n是根据最小横坐标的目标文本区域和最大横坐标的目标文本区域在目标图像中的位置信息确定的,m、n均为正整数,m指的是初始表格的行的数量,n指的是初始表格的列的数量。
具体来说,可以检测在目标图像中处于同一纵坐标范围内的最小横坐标的目标文本区域和最大横坐标的目标文本区域之间,存在的目标文本区域的最大数量,然后在该最大数量的基础上加上2,就可以确定初始表格中的n,即列数。
举例来说,目标图像中纵坐标位于200~300像素的横坐标最小的目标文本区域A1和横坐标最大的目标文本区域A2,在纵坐标为200~300像素之间存在4个目标文本区域,目标图像中纵坐标位于500~600像素的横坐标最小的目标文本区域B1和横坐标最大的目标文本区域B2之间,在纵坐标为500~600像素之间存在3个目标文本区域,那么,就可以确定位于同一纵坐标范围内,最小横坐标的目标文本区域和最大横坐标的目标文本区域之间存在的目标文本区域的最大数量为4,从而确定初始表格中的n为6。可选地,初始表格中的m的确定方式与n的确定方式相似,在此不赘述。
可选地,还可以先确定出目标图像中所有目标文本区域的横坐标,并将纵坐标之间的差值在预设差值内的目标文本区域确定为同一文本区域组,然后统计文本区域组的数量,确定文本区域组为初始表格中的m。
举例来说,设定预设差值为20个像素,目标图像中的目标文本区域1在目标图像中的纵坐标为100~200像素,目标文本区域2在目标图像中的纵坐标为110~210像素,目标文本区域3在目标图像中的纵坐标为300~400像素,目标文本区域4在目标图像中的纵坐标为298~390像素,目标文本区域5在目标图像中的纵坐标为396~550像素,目标文本区域6在目标图像中的纵坐标为700~800像素,目标文本区域7在目标图像中的纵坐标为712~790像素;因此可以确定目标文本区域1和目标文本区域2为一个文本区域组,目标文本区域3和目标文本区域4为一个文本区域组,目标文本区域6和目标文本区域7为一个文本区域组;而目标文本区域5虽然纵坐标与目标文本区域3的横坐标有部分重叠,但是纵坐标之间的差值大于20个像素点,因此目标文本区域5单独为一个文本区域组;最终可以确定初始表格中的m为4。
可选地,初始表格中的n的确定方式与m的确定方式相似,在此不赘述。
在本申请实施例中,所述获取目标图像的各个目标文本区域与初始表格中各个单元格的对应关系的方式指的是:各个目标文本区域应属于初始表格中各个单元格。也就是说,如果目标文本区域P在目标图像中处于第2行第1列的位置,那么目标文本区域P也会对应在初始表格中第2行第1列的单元格。
可选地,所述各个目标文本区域是对目标图像进行文本检测处理得到的。具体来说,可以是通过光学字符识别(Optical Character Recognition,OCR)技术对目标图像进行检测,得到各个目标文本区域;也可以是通过训练后的文本检测模型对目标图像进行文本检测处理,从而得到各个目标文本区域。示例性地,文本检测模型可以是DBNet(一种用于文本检测的可微分二值化分割网络)、CTPN(一种包含卷积神经网络和循环神经网络的用于文本检测的网络)、SegLink(一种能检测有旋转角度的文本的卷积神经网络)等深度学习模型,可以基于不同的需求灵活选择不同的模型,在此不限定。其中,对文本检测模型进行训练的过程为本领域技术人员所惯用的技术手段,在此不赘述。
可选地,在对目标图像进行文本检测处理,得到目标图像中的所有文本区域后,还可以对目标图像进行表格检测处理,确定目标图像的表格区域,然后将目标图像的所有文本区域中属于表格区域的文本区域确定为目标文本区域。具体来说,所述对目标图像进行表格检测处理的方式可以是通过Yolov5(一种实时对象检测模型)等机器学习模型进行训练后,通过该训练后的模型检测出目标图像中无线表、半线表和全线表等表格,得到每个表格的坐标,从而确定表格区域,进而可以判断通过文本检测处理得到的各个文本区域应属于哪个表格内,以区分出不同表格内的文本内容,便于后续进行表格结构化处理。
S202,在初始表格中确定目标单元格组,其中,目标单元格组包括第一单元格和第二单元格,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行。其中,m1、m2均为正整数,m1小于m2。
在本申请实施例中,所述目标单元格组的第一单元格和第二单元格位于同一列,第一单元格与第二单元格均存在对应的目标文本区域。具体来说,目标单元格组的第一单元格和第二单元格可以是初始表格中相邻的两行中位于同一列的两个单元格;目标单元格组的第一单元格和第二单元格也可以是初始表格中不相邻的两行,但位于第一单元格和第二单元格之间的第三单元格不存在对应的目标文本区域;其中,第三单元格指的是与第一单元格位于同一列,且在初始表格中所处的行是在第m1行和第m2行之间的单元格。
举例来说,初始表格中的单元格W1在第5行第4列、单元格W2在第3行第3列、单元格W3在第4行第4列、单元格W4在第2行第3列、单元格W5在第4行第3列、单元格W6在第5行第3列。其中,除单元格W2和单元格W5以外的单元格均存在对应的目标文本区域。由于单元格W1和单元格W3位于相邻的两行,且位于同一列,因此可以确定单元格W1和单元格W3为一个目标单元格组;同时,单元格W4和单元格W6位于同一列,且单元格W4和单元格W6之间的单元格W2和单元格W5不存在对应的目标文本区域,那么,也可以确定单元格W4和单元格W6为一个目标单元格组。
S203,若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格。
S204,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
在本申请实施例中,所述基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据,可以是:将各个目标文本区域中的文本数据写入各个目标文本区域对应各个单元格,得到一个含有文本数据的表格,从而生成表格数据。可选地,所述表格数据的格式可以是Excel等便于查看和使用的表格,也可以是JSON(JavaScript Object Notation,JS对象简谱)等便于后续通过表格数据进行业务开发的表格,在此不限定。
在本申请实施例中,所述第一预设条件可以是:第一数量总和小于第m1行中的各个单元格对应的目标文本区域的第二数量总和。那么确定第一数量总和是否满足第一预设条件的方式可以是:获取第m1行中的各个单元格对应的目标文本区域的第二数量总和;若第二数量总和大于第一数量总和,则确定第一数量总和满足第一预设条件。
举例来说,请参见附图3,图3示出了一种合并单元格的示意图。获取到的目标图像301的初始表格以及初始表格中各个单元格对应的目标文本区域如图3中的初始表格302所示。其中,由于目标图像301中的应属于同一单元格的“111111111111”和“xxxxxxxxxxxx”均出现了换行的情况,所以“111111111111”会被识别为“11111111”和“1111”,“xxxxxxxxxxxx”会被识别为“xxxxxx”和“xxxxxx”,因此获取到的初始表格302中一共有4行单元格。通过初始表格302中各个单元格之间的位置关系,以及各个单元格与目标文本区域的对应关系,可以确定出如图3所示的8个目标单元格组,各个目标单元格组中位置在上方的为第一单元格,位置在下方的为第二单元格。其中,目标单元格组4中的单元格304所在的初始表格302的第3行中一共有3个单元格,其中,第3行的前两个单元格对应的目标文本区域分别为“1111”和“xxxxxx”,而第3行的最后一个单元格没有对应的目标文本区域,因此可以确定目标单元格组4中的单元格304所在的第3行中各个单元格对应的目标文本区域的第一数量总和为2,单元格303所在的初始表格302的第2行中一共有3个单元格,其中,所述3个单元格对应的目标文本区域分别为“1111”、“xxxxxx”和“300.00”,因此可以确定目标单元格组4中的单元格303所在的第2行中各个单元格对应的目标文本区域的第二数量总和为3,由此可以确定第二数量总和大于第一数量总和,从而确定将初始表格302的第3行合并至第2行,最终得到目标表格307,其中,如图3所示的目标表格307中注明了各个单元格对应的目标文本区域。
在一个实施例中,所述第一预设条件可以是:第一数量总和小于或者等于第一预设数值。可选地,所述第一预设数值可以小于或者等于第m1行中的各个单元格对应的目标文本区域的第二数量总和,所述第一预设数值可以是人为设定的,也可以是***设定的,在此不限定。举例来说,第一预设数值可以是1、5、8等。可选地,确定第一数量总和是否满足第一预设条件的方式可以是:若第二数量总和小于或者等于第一预设数值,则确定第一数量总和满足第一预设条件。
示例性地,请参见附图4,图4示出了另一种合并单元格的示意图。设定第一预设数值为1,获取到的初始表格以及初始表格中各个单元格对应的目标文本区域如图4中的初始表格401所示。通过将初始表格401中的各个目标单元格组的第二单元格所在行中的各个单元格对应的目标文本区域的第一数量总和与第一预设数值进行比较,可以确定只有由第4行第2列的单元格和第5行第2列的单元格组成的目标单元格组满足第一预设条件,因此,可以确定将第5行合并至第4行,最终得到目标表格402,其中,如图4所示的目标表格402中标注了各个单元格对应的目标文本区域。
在一个实施例中,所述若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格的方式可以是:1)若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到更新后的表格;2)将更新后的表格作为初始表格,触发执行在初始表格中确定目标单元格组,直至第m2行中的各个单元格对应的目标文本区域的第一数量总和不满足第一预设条件,则将不满足第一预设条件的目标文本区域对应的单元格所属的初始表格确定为目标表格,其中,目标表格包括p×q个单元格,p小于等于m,p、q为正整数,p指的是目标表格中行的数量,q指的是目标表格中列的数量,m指的是初始表格中行的数量,由于在更新表格的过程中,可能会出现行与行合并的情况,因此p小于等于m。
具体来说,当目标单元格组中的第二单元格所在的第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将目标单元格组中的第一单元格所在的第m1行,与目标单元格组中的第二单元格所在的第m2行进行合并;完成第m1行与第m2行的合并后,会得到一个更新后的表格。然后,在更新后的表格中再次确定新的目标单元格组,判断新的目标单元格组中是否存在满足第一预设条件的目标单元格组,若存在,则继续合并,以及对表格进行更新;若不存在,则将该更新后的表格确定为目标表格。
示例性地,请参见附图5,图5示出了又一种合并单元格的示意图。可以设定第一预设条件为各个目标单元组的第一数量总和小于或者等于1。获取到目标图像501的初始表格502,其中,初始表格502表明了各个单元格对应的目标文本区域。初始表格502是一个如表格503所示的7行3列的表格,为了方便叙述,依次对表格503的单元格进行编码,可以得到单元格1~21。通过表格503中各个单元格之间的位置关系,以及各个单元格与目标文本区域的对应关系,可以确定出表格503的目标单元格组包括:{1,4}、{4,7}、{7,10}、{10,13}、{13,19}、{2,5}、{5,14}、{14,17}、{17,20}、{3,6}、{6,15}、{15,21}。可以从表格503的多个目标单元格组中任取一个目标单元格组进行判断,如取出目标单元格组{10,13}后,单元格13所在的第5行的第一数量总和为3,不满足第一预设条件。再次取出表格503的其他目标单元格组,若取出了目标单元格组{14,17},由于单元格17所在的第6行的第一数量总和为1,满足第一预设条件,那么可以确定将表格503中的第6行合并至第5行,从而得到更新后的表格,即表格504。
在得到表格504后,可以确定出表格504的目标单元格组包括:{1,4}、{4,7}、{7,10}、{10,(13,16)}、{(13,16),19}、{2,5}、{5,(14,17)}、{(14,17),20}、{3,6}、{6,(15,18)}、{(15,18),21}。可以从表格504的多个目标单元格组中任取一个目标单元格组进行判断,如取出目标单元格组{1,4}后,单元格4所在的第2行的第一数量总和为3,不满足第一预设条件。再次取出表格504的其他目标单元格组,若取出了目标单元格组{4,7},由于单元格7所在的第3行的第一数量总和为1,满足第一预设条件,那么可以确定将表格504中的第3行合并至第2行,从而得到再次更新后的表格,即表格505。同理,又一次对表格505进行更新后,得到表格506。
在得到表格506后,可以确定出表格506的目标单元格组包括:{1,(4,7,10)}、{(4,7,10),(13,16)}、{(13,16),19}、{2,(5,8,11)}、{(5,8,11),(14,17)}、{(14,17),20}、{3,(6,9,12)}、{(6,9,12),(15,18)}、{(15,18),21}。由于表格506的多个目标单元格组中不存在满足第一预设条件的目标单元格组,因此,可以确定表格506为目标表格。最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,可以得到表格数据507,如表格506的第2行第1列的单元格由原本的单元格4、单元格7和单元格10合并而成,那么,就会将原本的单元格4、单元格7和单元格10对应的目标文本区域中的文本数据均填充至所述第2行第1列的单元格,因此,最后可以确定表格506中第2行第1列的单元格中的文本数据为“11111111222222223333”。
在一个实施例中,所述在初始表格中确定目标单元格组的方式可以是:1)在初始表格中确定至少一个单元格组,各个单元格组包括第一单元格和第二单元格;2)获取各个单元格组中第一单元格对应的目标文本区域,与各个单元格组中第二单元格对应的目标文本区域在目标图像中的距离;3)将距离最小的单元格组确定为目标单元格组。
可选地,所述第一单元格对应的目标文本区域,与第二单元格对应的目标文本区域在目标图像中的距离可以是:第一单元格对应的目标文本区域的区域中心点,与二单元格对应的目标文本区域的区域中心点之间的距离;也可以是第一单元格对应的目标文本区域的区域下边框,与第二单元格对应的目标文本区域的区域上边框之间的距离;可选地,还可以是第一单元格对应的目标文本区域,与第二单元格对应的目标文本区域在目标图像中其他距离,在此不限定。可选地,所述距离可以是像素点,也可以是毫米、厘米等单位长度,在此不限定。示例性地,距离可以是100个像素点,0.8mm等。
具体来说,一般情况下,在初始表格中分别各占一行的两个单元格对应的目标文本区域之间的距离越小,这两个目标文本区域是应属于同一单元格,但由于换行被识别成属于两个单元格的可能性就越大,所以为了进一步提高合并效率,可以将距离最小的单元格组确定为目标单元格组。
可选地,由于费用明细、保险报销等票据在设计的过程中,首行或者首列的文本数据往往为表名或者表头等不会存在换行的情况的文本数据,因此,在确定目标单元格组的过程中,可以排除位于首行或者首列的单元格。
示例性地,请参见附图6,图6示出了又一种合并单元格的示意图。设定第一预设条件为:目标单元格组中第二单元格在初始表格中位于的第m2行中的各个单元格对应的目标文本区域的第一数量总和小于或者等于1。获取到目标图像601的初始表格602,其中,初始表格602表明了各个单元格对应的目标文本区域。初始表格602是一个如表格603所示的5行3列的表格,为了方便叙述,依次对表格603的单元格进行编码,可以得到单元格1~15。通过表格503中各个单元格之间的位置关系,以及各个单元格与目标文本区域的对应关系,可以确定出表格603的单元格组包括:{1,4}、{4,7}、{7,13}、{2,5}、{5,8}、{8,11}、{11,14}、{3,6}、{6,9}、{9,15}。然后,获取各个单元格组中第一单元格对应的目标文本区域和第二单元格对应的目标文本区域在目标图像601中的距离,按照距离从小到大对各个单元格组进行排序,排序后的单元格组为:{8,11}、{11,14}、{1,4}、{2,5}、{3,6}、{4,7}、{5,8}、{6,9}、{7,13}、{9,15}。因此,可以确定出表格603的单元格组中距离最小的单元格组{4,7}为目标单元格组。由于单元格7所在的第3行对应的目标文本区域的第一数量总和满足第一预设条件,那么可以确定将表格603中的第3行合并至第2行,得到目标表格604。最后,将目标表格604中各个单元格对应的目标文本区域中的文本数据填充至单元格中,可以得到表格数据605。
可选地,在通过循环更新初始表格,从而得到目标表格的方式中,每一次得到更新后的表格时,也可以通过比较两个单元格对应的目标文本区域之间的距离的方式去确定更新后的表格中的目标单元格组。
本申请实施例中,先获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,再在所述初始表格中确定目标单元格组,其中目标单元格组包括第一单元格和第二单元格,第一单元格与所述第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行;然后判断第m2行中的各个单元格对应的目标文本区域的第一数量总和是否满足第一预设条件,若是,则将所述初始表格的第m2行与第m1行合并,得到目标表格;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。本申请实施例中,通过获取到的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,可以确定各个目标文本区域在初始表格中的初始位置;然后,通过确定初始表格中的目标单元格组,以及判断第一数量总和是否满足第一预设条件,来确定出初始表格中应该合并的单元格,从而得到目标表格,其中,目标表格中原本应属于同一单元格但被对应至不同行的两个单元格中的目标文本区域是被合并了的。因此,该方法避免了换行的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
基于上述表格信息提取方案以及表格信息提取***,本申请实施例提供了另一种表格信息提取方法。参见图7,为本申请实施例提供的另一种表格信息提取方法的流程示意图。图7所示的表格信息提取方法可由图1所示的服务器或者终端设备执行。图7所示的表格信息提取方法可包括如下步骤:
S701,获取各个目标文本区域在目标图像中的位置信息。其中,所述位置信息可以包括各个目标文本区域在目标图像中的横坐标和纵坐标。
在本申请实施例中,可以在获取各个目标文本区域在目标图像中的位置信息之前,对目标图像进行旋转矫正处理,其中,旋转矫正处理可以包括大角度(90°、180°、270°)和小角度倾斜矫正(45°以内),以便后续方便进行OCR识别时所检测到的应位于同一行或者同一列的目标文本区域的位置信息不会出现较大的误差,如由于目标图像倾斜,使得同一行的3个目标文本区域的纵坐标相差较大,那么后续进行表格结构化时,这3个目标文本区域很容易被认为属于3行不同的单元格。
S702,基于各个目标文本区域的位置信息,确定目标图像的初始表格。
在本申请实施例中,所述基于各个目标文本区域的位置信息,确定目标图像的初始表格的方式可以是:1)基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域;2)基于排列后的目标文本区域,确定初始表格,其中,所述初始表格可以包括m×n个单元格,m是根据所述排列后的目标文本区域中最小纵坐标的目标文本区域和最大纵坐标的目标文本区域确定的,n是根据所述排列后的目标文本区域中最小横坐标的目标文本区域和最大横坐标的目标文本区域确定的。
在一个实施例中,所述基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域的方式可以是:
1)获取各个目标文本区域的区域中心点在目标图像中的位置信息。其中,区域中心点在目标图像中的位置信息指的是:各个目标文本区域的区域中心点在目标图像中的横坐标和纵坐标。
2)基于各个目标文本区域的区域中心点的位置信息,对各个目标文本区域进行排序,得到排序后的目标文本区域,其中,排序后的目标文本区域中第x个目标文本区域的区域中心点的纵坐标小于或等于第x+1个目标文本区域的区域中心点的纵坐标,x为正整数,x小于排序后的目标文本区域中目标文本区域的数量。
具体来说,可以是在获取到各个目标文本区域的区域中心点的位置信息之后,先按照各个目标文本区域的区域中心点的纵坐标从小到大的顺序对各个目标文本区域进行排序;若出现多个目标文本区域的区域中心点的纵坐标相同,或者多个目标文本区域的区域中心点的纵坐标相差很小的情况,那么就按照各个目标文本区域的区域中心点的横坐标从小到大的顺序对所述多个目标文本区域中的各个目标文本区域进行排序,最后得到排序后的目标文本区域。
举例来说,目标图像中一共有8个目标文本区域,其中,目标文本区域1的区域中心点坐标为(100,100)、目标文本区域2的区域中心点坐标为(200,105)、目标文本区域3的区域中心点坐标为(400,98)、目标文本区域4的区域中心点坐标为(300,100)、目标文本区域5的区域中心点坐标为(200,305)、目标文本区域6的区域中心点坐标为(100,302)、目标文本区域7的区域中心点坐标为(300,299)、目标文本区域8的区域中心点坐标为(400,308)。
然后,设定将区域中心点的纵坐标差值小于10像素的目标文本区域确定为纵坐标相同的目标文本区域,那么,可以确定目标文本区域1~4的区域中心点的纵坐标相同,以及目标文本区域5~8的区域中心点的纵坐标相同。再比较目标文本区域1~4的区域中心点的横坐标,以及目标文本区域5~8的区域中心点的横坐标,最后得到的排序后的目标文本区域为:目标文本区域1、目标文本区域2、目标文本区域4、目标文本区域3、目标文本区域6、目标文本区域5、目标文本区域7、目标文本区域8。
3)获取排序后的目标文本区域中第一个目标文本区域的各个区域边框在目标图像中的位置信息;
4)基于第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对排序后的目标文本区域进行排列,得到初始排列后的目标文本区域;
具体来说,所述第一区域边框可以是目标文本区域在目标图像中的最上方的边框,所述第二区域边框可以是目标文本区域在目标图像中的最下方的边框。
此外,所述基于第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对排序后的目标文本区域进行排列的方式可以是:确定第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标与第一区域边框的第一差值,以及与第二区域边框的第二差值,先按照第一差值从小到大的顺序对第一个目标文本区域之后的各个目标文本区域进行排列,若出现多个目标文本区域的第一差值相同,或者多个目标文本区域的第一差值相差很小的情况,那么就按照各个目标文本区域的第二差值从小到大的顺序对所述多个目标文本区域中的各个目标文本区域进行排列,最后得到排列后的目标文本区域。
在一个实施例中,所述基于第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对排序后的目标文本区域进行排列,得到初始排列后的目标文本区域的方式还可以是:
①遍历排序后的目标文本区域中的各个目标文本区域,确定排序后的目标文本区域中区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且小于第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,确定的目标文本区域与第一个目标文本区域在初始排列后的目标文本区域中位于同一行;
②若排序后的目标文本区域中确定的目标文本区域的下一个目标文本区域的区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且大于第一个目标文本区域的第二区域边框的纵坐标,则确定下一个目标文本区域在初始排列后的目标文本区域中位于第一个目标文本区域的下一行;
③将下一个目标文本区域作为第一个目标文本区域,并触发执行确定排序后的目标文本区域中区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且小于第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,以得到初始排列后的目标文本区域。
其中,在初始排列后的目标文本区域中位于同一行的目标文本区域的排序和位于同一行的目标文本区域在排序后的目标文本区域中的排序相同。
举例来说,请参见图8a,图8a示出了一种初始排列方式的示意图。对目标图像801进行文本检测处理后,得到了目标文本区域a~k;然后基于各个目标文本区域的区域中心点的位置信息,对各个目标文本区域进行排序后,得到序后的目标文本区域如图8a的数组G所示。取出数组G中的第一个目标文本区域a,以及第一个目标文本区域a的下一个目标文本区域b,由于目标文本区域b的区域中心点802的纵坐标大于目标文本区域a的第一区域边框803的纵坐标,且小于目标文本区域a的第二区域边框804的纵坐标,因此,可以确定目标文本区域b和目标文本区域a位于同一行。
然后,将目标文本区域b作为第一个目标文本区域,此时,下一个目标文本区域为目标文本区域c,很明显地,目标文本区域c的区域中心点805的纵坐标大于目标文本区域b的第一区域边框806的纵坐标,且大于目标文本区域b的第二区域边框807的纵坐标,因此,可以确定目标文本区域c位于目标文本区域b的下一行。由此,可以确定位于第1行的目标文本区域包括目标文本区域a和目标文本区域b,此外,由于在数组G中,目标文本区域a排在目标文本区域b之前,因此在第1行中,目标文本区域a也排在目标文本区域b之前。
最后,如图8a所示,重复确定并比较第一个目标文本区域和下一个目标文本区域,最终可以确定初始排列后的目标文本区域一共有5行,其中,第1行包括目标文本区域a~b、第2行包括目标文本区域c~d、第3行包括目标文本区域f、第4行包括目标文本区域g~i、第5行包括目标文本区域j~k。
5)基于初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域。
具体来说,所述第三区域边框可以是目标文本区域在目标图像中的最右方的边框,所述第四区域边框可以是目标文本区域在目标图像中的最左方的边框。
此外,所述基于初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域的方式可以是:
①在初始排序后的目标文本区域中确定排列后的目标文本区域中位于同一列的目标文本区域,同一列的目标文本区域的区域中心点的横坐标大于同一列的目标文本区域中位于第一行的目标文本区域的第三区域边框的横坐标,且小于同一列的目标文本区域中位于第一行的目标文本区域的第四区域边框的横坐标;
②基于各列目标文本区域的区域中心点的横坐标,确定各列目标文本区域位于排列后的目标文本区域中的第ni列,以得到所述排列后的目标文本区域。其中,若各个目标文本区域位于初始排列后的目标文本区域中的第mi行,则各个目标文本区域位于排列后的目标文本区域中的第mi行,mi、ni为正整数,mi小于等于m,ni小于等于n。所述第ni列指的是:包括m×n个单元格的初始表格中的任一列,所述第mi行指的是:包括m×n个单元格的初始表格中的任一行。
具体来说,基于各列目标文本区域的区域中心点的横坐标,确定各列目标文本区域位于所述排列后的目标文本区域中的第ni列的方式可以是:按照各列目标文本区域中第一个目标文本区域的区域中心点的横坐标从大到小的顺序确定各列目标文本区域的列数,如将各列目标文本区域中第一个目标文本区域的区域中心点的横坐标最小的一列目标文本区域作为第1列目标文本区域。
可选地,基于各列目标文本区域的区域中心点的横坐标,确定各列目标文本区域位于所述排列后的目标文本区域中的第ni列的方式还可以是:计算出各列目标文本区域中所有目标文本区域的区域中心点的横坐标的平均值,按照横坐标的平均值从大到小的顺序确定各列目标文本区域的列数,如将横坐标的平均值最小的一列目标文本区域作为第1列目标文本区域。
举例来说,请参见图8b,图8b示出了一种再次排列方式的示意图。对目标图像808进行文本检测处理后,可以得到目标文本区域a~k,其中,各个目标文本区域的区域中心点在各个目标文本区域的区域中心以点的形式进行标明,如目标文本区域a的区域中心点为点817。通过目标图像808可见,目标文本区域d、f、h的区域中心点的横坐标大于目标文本区域a的第三区域边框812的横坐标,且小于目标文本区域a的第四区域边框811的横坐标,因此可以确定目标文本区域a、d、f、h位于同一列;同理,可以确定目标文本区域b、e、i、k位于同一列,以及目标文本区域c、g、j位于同一列。
同时,由于3列目标文本区域中位于第1行的目标文本区域中,目标文本区域c的横坐标最小,目标文本区域a次之,目标文本区域b的横坐标最大,因此可以确定目标文本区域c、g、j位于第1列、目标文本区域a、d、f、h位于第2列,以及目标文本区域b、e、i、k位于第3列。然后,如结构815所示,在确定出各个目标文本区域位于第几行第几列之后,可以确定目标图像808中的目标文本区域的行数最大为5、列数的最大为3;最后,可以确定出初始表格816包括5×6个单元格。
在一个实施例中,所述基于初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域的方式,还可以是:
①遍历初始排列后的目标文本区域中位于第一行的目标文本区域,确定初始排列后的目标文本区域中区域中心点的横坐标大于位于第一行的目标文本区域的第三区域边框的横坐标,且小于位于第一行的目标文本区域的第四区域边框的横坐标的目标文本区域,确定的目标文本区域与位于第一行的目标文本区域在排列后的目标文本区域中位于同一列;
②若存在与位于第一行的目标文本区域均不在同一列的目标文本区域,则确定出所述与位于第一行的目标文本区域均不在同一列的目标文本区域中行数与第一行最接近的一行中的目标文本区域,然后,将与位于第一行的目标文本区域均不在同一列的目标文本区域作为初始排序后的目标文本区域,以及将所述最接近一行中剩余的目标文本区域作为初始排列后的目标文本区域中位于第一行的目标文本区域,触发执行遍历初始排列后的目标文本区域中位于第一行的目标文本区域,确定初始排序后的目标文本区域中区域中心点的横坐标大于位于第一行的目标文本区域的第三区域边框的横坐标,且小于位于第一行的目标文本区域的第四区域边框的横坐标的目标文本区域,以得到排列后的目标文本区域。
③基于各列目标文本区域的区域中心点的横坐标,确定各列目标文本区域位于排列后的目标文本区域中的第ni列,以得到排列后的目标文本区域。
举例来说,请参见附图8c,图8c示出了另一种再次排列方式的示意图。由图8a所示,可以确定初始排列后的目标文本区域中位于第一行的目标文本区域为目标文本区域a和目标文本区域b。然后,遍历初始排列后的目标文本区域中位于第二行的目标文本区域c、d、e,由于第二行中只有目标文本区域d的区域中心点的横坐标大于位于第一行的目标文本区域的第三区域边框的横坐标,且小于位于第一行的目标文本区域的第四区域边框的横坐标的目标文本区域,因此,可以确定目标文本区域d与目标文本区域a位于同一列;同理,依次遍历初始排列后的目标文本区域中位于第三行至第五行的目标文本区域,最后可以确定与目标文本区域a位于同一列的目标文本区域包括目标文本区域d、f、h,以及与目标文本区域b位于同一列的目标文本区域包括目标文本区域e、i、k。
在遍历初始排列后的目标文本区域中位于第一行的目标文本区域之后,发现初始排列后的目标文本区域中还有剩余的目标文本区域c和目标文本区域j,也就是说,存在与位于第一行的目标文本区域均不在同一列的目标文本区域。
此时,确定初始排列后的目标文本区域为目标文本区域c、目标文本区域g和目标文本区域j;同时,由于目标文本区域c位于第二行,行数与第一行最接近,故将目标文本区域c确定为位于第一行的目标文本区域。然后,遍历第二行至第五行,可以确定目标文本区域g,以及目标文本区域j与目标文本区域c位于同一列。
此外,由于3列目标文本区域中位于第1行的目标文本区域中,目标文本区域c的横坐标最小,目标文本区域a次之,目标文本区域b的横坐标最大;因此,可以得到结构815,最后通过结构815可以确定出初始表格816包括5×6个单元格。
S703,获取目标图像的各个目标文本区域与初始表格中各个单元格的对应关系。
S704,在初始表格中确定目标单元格组,其中,目标单元格组包括第一单元格和第二单元格,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行。其中,m1、m2均为正整数,m1小于m2,所述目标单元格组的第一单元格和第二单元格位于同一列,第一单元格与第二单元格均存在对应的目标文本区域。
S705,若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格。
S706,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
在本申请实施例中,所述若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格的方式可以是:1)确定第一单元格对应的目标文本区域的文本数据的第一数据长度,以及第二单元格对应的目标文本区域的文本数据的第二数据长度;2)若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且第一数据长度大于第二数据长度,则将初始表格的第m2行与第m1行合并,得到目标表格。可选地,还可以是第一数据长度大于或者等于第二数据长度,或第一数据长度等于第二数据长度。
具体来说,对于存在换行情况的文本数据,一般换到下一行的文本数据是上一行的表格中写不完的文本数据,因此,换到下一行的文本数据的数据长度一般不会比上一行的文本数据的数据长度更长,因此在第一数量总和满足第一预设条件的同时,还可以进一步判断第一数据长度是否大于或者等于第二数据长度,从而提高在确定单元格合并的过程中的准确率。
可选地,所述第一数据长度和第二数据长度可以是目标文本区域的文本数据长度,如200个像素、20mm等,也可以是目标文本区域中文本数据的字符数,如10个字符、8个字符等。
在一个实施例中,所述若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格的方式还可以是:1)对目标图像进行线条检测处理,得到至少一个线条;2)若目标图像中不存在任一线条位于第一单元格对应的目标文本区域和第二单元格对应的目标文本区域之间,则将初始表格的第m2行与第m1行合并,得到目标表格。其中,所述至少一个线条可以是横线,也可以是斜线,在此不限定。可选地,还可以通过线条的位置、长度和角度等因素对步骤1)的至少一个线条进行筛选,去除掉长度过短、倾斜角度较偏等情况的线条,确定出至少一个目标线条;然后判断目标图像中是否存在任一目标线条位于第一单元格对应的目标文本区域和第二单元格对应的目标文本区域之间,若是,则将初始表格的第m2行与第m1行合并,得到目标表格。
可选地,所述对目标图像进行线条检测处理的方式可以是先对目标图像进行二值化处理,然后通过采用OpenCV(基于Apache2.0许可发行的跨平台计算机视觉和机器学习软件库)的横线检测接口(如赫夫曼直线检测接口等)对二值化处理后的目标图像进行检测,从而得到目标图像中的至少一个线条。可选地,还可以通过对区域卷积神经网络(Regionswith CNN features,R-CNN)等深度学习模型进行训练,通过训练后的模型确定出目标图像中的线条。可选地,还可以是其他方式对目标图像进行线条检测处理,在此不限定。
具体来说,在目标图像中,如果目标单元格组的第一单元格对应的目标文本区域,以及第二单元格对应的目标文本区域之间存在着线条的话,那么第一单元格对应的目标文本区域,以及第二单元格对应的目标文本区域不可能是由于换行情况被识别为两行的目标文本区域,所以不应该进行合并。
举例来说,请参见附图9,图9示出了又一种合并单元格的示意图。设定第一预设条件为:目标单元格组中第二单元格在初始表格中位于的第m2行中的各个单元格对应的目标文本区域的第一数量总和小于或者等于1。在对目标图像901进行文本检测处理后,可以得到目标文本区域A~I,并通过步骤701~702可以获取目标图像901的初始表格902,其中,初始表格902中注明了各个单元格对应的目标文本区域。在初始表格902的6个目标单元格组中,满足第一预设条件的目标单元格组包括目标文本区域G和目标文本区域H组成的目标单元格组,以及目标文本区域C和目标文本区域I组成的目标单元格组。
然后,对目标图像901进行线条检测处理,可以得到线条904,通过比较目标文本区域G、目标文本区域H与线条904之间的位置,可以确定线条904位于目标文本区域G和目标文本区域H的上方;同时,比较目标文本区域C、目标文本区域I与线条904之间的位置,可以确定线条904位于目标文本区域C和目标文本区域I之间。因此,只有目标文本区域G对应的单元格,以及目标文本区域H对应的单元格可以合并。最后,可以得到目标表格902,将目标文本区域中的文本数据填充至相应的单元格中,从而可以得到表格数据903。
可选地,所述若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格的方式还可以是:若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件、第一数据长度大于第二数据长度,以及目标图像中不存在任一线条位于第一单元格对应的目标文本区域和第二单元格对应的目标文本区域之间,则将初始表格的第m2行与第m1行合并,得到目标表格。
在本申请实施例中,所述基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据的方式可以参见步骤S204中的具体实施方式,在此不赘述。
本申请实施例中,先获取各个目标文本区域在目标图像中的位置信息,再基于各个目标文本区域的位置信息,确定目标图像的初始表格;然后获取到目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,再在所述初始表格中确定目标单元格组,其中目标单元格组包括第一单元格和第二单元格,第一单元格与所述第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行;然后判断第m2行中的各个单元格对应的目标文本区域的第一数量总和是否满足第一预设条件,若是,则将所述初始表格的第m2行与第m1行合并,得到目标表格;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。本申请实施例中,通过判断各个目标文本区域的区域中心点的横纵坐标是否在上一个目标文本区域的区域边框横纵坐标范围内的方式,可以有效避免由于目标图像倾斜而导致检测到的目标图像中的位于同一列或者同一行的目标文本框区域的坐标信息存在误差,被分配至不同行和不同列,从而使得最终构建出的初始表格的行数和列数出现较大误差的情况。然后,通过判断第一数量总和是否满足第一预设条件,可以来确定出初始表格中应该合并的单元格,从而得到目标表格;因此,该方法避免了换行的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
基于上述表格信息提取方案以及表格信息提取***,本申请实施例提供了又一种表格信息提取方法。参见图10,为本申请实施例提供的又一种表格信息提取方法的流程示意图。图10所示的表格信息提取方法可由图1所示的服务器和终端设备执行。图10所示的表格信息提取方法可包括如下步骤:
S1001,终端设备将目标图像发送至服务器。
在本申请实施例中,所述终端设备将目标图像发送至服务器可以是通过无线通信或者有线通信的方式进行发送,也可以是通过加密后发送,还可以是通过其他进行发送,在此不限定。
S1002,服务器对目标图像进行文本检测处理,得到至少一个初始文本区域。
其中,对目标图像进行文本检测处理,得到至少一个初始文本区域的具体实施方式可以参见步骤S201中对目标图像进行文本检测处理得到各个目标文本区域的具体实施方式,在此不赘述。
S1003,服务器获取各个初始文本区域的切分位置。
在本申请实施例中,所述获取各个初始文本区域的切分位置可以是:先对各个初始文本区域进行字符检测处理,确定出各个初始文本区域中相邻字符之间的距离,若存在两个相邻字符之间的距离大于预设距离,则确定所述两个相邻字符之间的位置为切分位置。可选地,所述预设距离可以是像素点,也可以是毫米、厘米等单位长度,在此不限定。可选地,所述对各个初始文本区域进行字符检测处理的方式可以是通过光学字符识别技术对目标图像进行检测,从而得到各个字符;也可以是通过DBNet、CTPN、SegLink等深度学习模型对目标图像进行检测,从而得到各个字符,在此不限定。其中,对文本检测模型进行训练的过程为本领域技术人员所惯用的技术手段,在此不赘述。
在一个实施例中,获取各个初始文本区域的切分位置的方式可以是:
1)在检测出各个初始文本区域后,提取出各个初始文本区域对应的文本区域图像;
2)对各个文本区域图像进行二值化处理,得到处理后的文本区域图像,比如可以将各个文本区域图像中识别出属于字符的像素点的像素设定为255,将不属于字符的像素点的像素设定为0;
3)将各个处理后的文本区域图像中位于同一列的像素点的像素值进行累加,得到像素分布直方图;其中,横坐标可以为处理后的文本区域图像的像素索引,纵坐标可以为某列像素点的像素累加值;
4)若像素分布直方图中存在连续n列的像素累加值小于预设像素值,则确定文本区域图像中所述连续n列的位置为切分位置。其中,n为正整数,n大于第二预设数值,n和第二预设数值均可以是人为设定,也可以是***设定,如可以是10、20、100等,在此不限定。
举例来说,请参见附图11,图11示出了一种像素分布直方图。其中,横坐标为像素索引,用于指示处理后的文本区域图像的第1列~第20列像素;纵坐标可为每一列的像素累加值。设定第二预设数值为20,n为3,那么通过图11可以确定处理后的文本区域图像中第7列至第11列像素点的位置为切分位置。
S1004,服务器基于切分位置对各个初始文本区域进行切分处理,得到第一初始文本子区域和第二初始文本子区域。其中,第一初始文本子区域在目标图像的横坐标小于第二初始文本子区域在目标图像的横坐标。
S1005,服务器对第一初始文本子区域进行字符识别处理,确定第一初始文本子区域中的第一字符,并对第二初始文本子区域进行字符识别处理,确定第二初始文本子区域中的第二字符。
在本申请实施例中,所述第一初始文本子区域在目标图像的横坐标小于第二初始文本子区域在目标图像的横坐标指的是:在目标图像中,第一初始文本子区域位于第二初始文本子区域的左边。具体来说,因为常用的书写习惯是从左写到右,因此确定第一初始文本子区域在目标图像的横坐标小于第二初始文本子区域在目标图像的横坐标;如果书写习惯变为从右写到左,则确定第一初始文本子区域在目标图像的横坐标大于第二初始文本子区域在目标图像的横坐标。可选地,第一初始文本子区域和第二初始文本子区域之间的位置关系可以随着书写习惯的变化而对应变化,在此不限定。
在本申请实施例中,所述第一字符为第一初始文本子区域的文本数据的最后一个字符,所述第二字符为第二初始文本子区域的文本数据的第一个字符。所述字符识别处理的具体实施方式可以参见步骤S1003中字符识别处理的具体实施方式,在此不赘述。
S1006,若第一字符的字符类型不为预设类型,且第二字符的字符类型不为预设类型,则服务器确定第一初始文本子区域和第二初始文本子区域为不同的目标文本区域。
在本申请实施例中,所述预设类型可以是中文符号字符和英文符号字符。具体来说,一般保险单、消费明细单等票据都是打印出来的,而在字体打印过程中,英文数字字符一般是占一个字符宽度,中文和中文字符是占两个字符宽度,而对于票据中常用的冒号、破折号、点号等符号来说,由于符号实际所占的像素较少,导致“:”、“;”等中文符号字符,以及“.”、“!”等英文符号字符往往前后会有大片空白区域,容易在步骤S1003中被确定为切分位置所以在获取到切分位置之后,可以识别出第一初始文本子区域中的第一字符,以及第二初始文本子区域中的第二字符,然后通过判断第一字符和第二字符的字符类型是否均不为预设类型的方式来确定是否需要按照切分位置对初始文本区域进行切分。在去除掉错误的切分位置后,通过使用正确的切分位置进行切分后所得到的目标文本区域的坐标等位置信息和文本数据,有利于后续对目标图像进行表格化提取。
举例来说,请参见附图12,图12示出了一种文本粘连切分的示意图。对目标图像1201进行图像识别后,可以得到4个初始文本区域。然后,可以获取到初始文本区域1202的切分位置为位置A,初始文本区域1203的切分位置为位置B。通过在位置A对初始文本区域1202进行切分,以及进行字符识别处理后,可以确定初始文本区域1202的第一初始文本子区域的第一字符为“:”,第二初始文本子区域的第二字符为“男”,其中,第一字符“:”为预设类型,因此,初始文本区域1202不需要进行切分,初始文本区域1202即为目标文本区域。
通过在位置B对初始文本区域1203进行切分,以及进行字符识别处理后,可以确定初始文本区域1203的第一初始文本子区域的第一字符为“元”,而第二初始文本子区域的第二字符为“6”,均不属于预设类型;因此,需要在位置B对初始文本区域1203进行切分,最后得到的目标文本区域如目标图像1204所示。
S1007,服务器获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中各个单元格的对应关系。
S1008,服务器在初始表格中确定目标单元格组,其中,目标单元格组包括第一单元格和第二单元格,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行。其中,m1、m2均为正整数,m1小于m2。
S1009,若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则服务器将初始表格的第m2行与第m1行合并,得到目标表格。
S1010,服务器基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
其中,步骤S1007~步骤S1010的具体实施方式可以参见步骤S201~步骤S204的具体实施方式,在此不赘述。
S1011,服务器将表格数据发送至终端设备。
在本申请实施例中,所述除了表格数据之外,也可以向终端设备发送包括表格数据提取成功、表格数据提取失败等提示信息,在此不限定。其中,步骤S1010中将表格数据发送至终端设备的方式为本领域技术人员所惯用的技术手段,在此不赘述。
本申请实施例中,在获取到切分位置后,会基于切分位置对各个初始文本区域进行切分处理,得到第一初始文本子区域和第二初始文本子区域,然后对第一初始文本子区域和第二初始文本子区域进行字符识别处理,确定第一字符和第二字符,最后通过判断第一字符或者第二字符的字符类型是否均不为预设类型,来确定是否需要将初始文本区域切分为第一初始文本子区域和第二初始文本子区域。由于目标图像中距离较近的字符在进行文本检测的过程容易出现不同文本被识别为同一文本区域的情况,而文本区域的识别错误则容易导致后续初始表格构建错误,以及单元格合并错误,因此,通过对初始文本区域进行正确地切分,可以有效提高表格结构化的正确率。此外,通过判断第一数量总和是否满足第一预设条件,来确定出初始表格中应该合并的单元格,从而得到目标表格,可以避免了换行的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
基于上述表格信息提取方案以及表格信息提取***,本申请实施例提供了又一种表格信息提取方法。参见图13,为本申请实施例提供的又一种表格信息提取方法的流程示意图。图13所示的表格信息提取方法可由图1所示的服务器或者终端设备执行。图13所示的表格信息提取方法可包括如下步骤:
S1301,获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中各个单元格的对应关系。其中各个目标文本区域是对目标图像进行文本检测处理得到的。
在本申请实施例中,所述获取目标图像的初始表格的方式可以是:先获取各个目标文本区域在目标图像中的位置信息,其中位置信息可以包括各个目标文本区域在目标图像中的横坐标和纵坐标;然后基于各个目标文本区域的位置信息,确定目标图像的初始表格。
具体来说,所述基于各个目标文本区域的位置信息,确定目标图像的初始表格的方式可以是:1)基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域;2)基于排列后的目标文本区域,确定初始表格。
可选地,基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域的方式可以是:
1)获取各个目标文本区域的区域中心点在目标图像中的位置信息。其中,区域中心点在目标图像中的位置信息指的是:各个目标文本区域的区域中心点在目标图像中的横坐标和纵坐标。
2)基于各个目标文本区域的区域中心点的位置信息,对各个目标文本区域进行排序,得到排序后的目标文本区域,其中,排序后的目标文本区域中第x个目标文本区域的区域中心点的横坐标小于或等于第x+1个目标文本区域的区域中心点的横坐标,x为正整数,x小于排序后的目标文本区域的数量。
具体来说,可以是在获取到各个目标文本区域的区域中心点的位置信息之后,先按照各个目标文本区域的区域中心点的横坐标从小到大的顺序对各个目标文本区域进行排序;若出现多个目标文本区域的区域中心点的横坐标相同,或者多个目标文本区域的区域中心点的横坐标相差很小的情况,那么就按照各个目标文本区域的区域中心点的纵坐标从小到大的顺序对所述多个目标文本区域中的各个目标文本区域进行排序,最后得到排序后的目标文本区域。
3)获取排序后的目标文本区域中第一个目标文本区域的各个区域边框在目标图像中的位置信息;
4)基于第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的横坐标,对排序后的目标文本区域进行排列,得到初始排列后的目标文本区域;
在一个实施例中,所述基于第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的横坐标,对排序后的目标文本区域进行排列,得到初始排列后的目标文本区域的方式还可以是:
①遍历排序后的目标文本区域中的各个目标文本区域,确定排序后的目标文本区域中区域中心点的横坐标大于第一个目标文本区域的第三区域边框的横坐标,且小于第一个目标文本区域的第二区域边框的横坐标的目标文本区域,确定的目标文本区域与第一个目标文本区域在初始排列后的目标文本区域中位于同一列;
②若排序后的目标文本区域中确定的目标文本区域的下一个目标文本区域的区域中心点的横坐标大于第一个目标文本区域的第三区域边框的横坐标,且大于第一个目标文本区域的第四区域边框的横坐标,则确定下一个目标文本区域在初始排列后的目标文本区域中位于第一个目标文本区域的下一列;
③将下一个目标文本区域作为第一个目标文本区域,并触发执行确定排序后的目标文本区域中区域中心点的横坐标大于第一个目标文本区域的第三区域边框的横坐标,且小于第一个目标文本区域的第二区域边框的横坐标的目标文本区域,以得到初始排列后的目标文本区域。
其中,在初始排列后的目标文本区域中位于同一列的目标文本区域的排序和位于同一列的目标文本区域在排序后的目标文本区域中的排序相同。
5)基于初始排列后的目标文本区域的第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的纵坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域。
在一个实施例中,所述基于初始排列后的目标文本区域的第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的纵坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域的方式可以是:
①在初始排序后的目标文本区域中确定排列后的目标文本区域中位于同一行的目标文本区域,同一行的目标文本区域的区域中心点的纵坐标大于同一行的目标文本区域中位于第一列的目标文本区域的第一区域边框的纵坐标,且小于同一行的目标文本区域中位于第一列的目标文本区域的第二区域边框的纵坐标;
②基于各行目标文本区域的区域中心点的纵坐标,确定各行目标文本区域位于排列后的目标文本区域中的第mi行。其中,若各个目标文本区域位于初始排列后的目标文本区域中的第ni列,则各个目标文本区域位于排列后的目标文本区域中的第ni列。
在一个实施例中,所述基于初始排列后的目标文本区域的第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的纵坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域的方式还可以是:
①遍历初始排列后的目标文本区域中位于第一列的目标文本区域,确定初始排列后的目标文本区域中区域中心点的横坐标大于位于第一列的目标文本区域的第一区域边框的纵坐标,且小于位于第一列的目标文本区域的第二区域边框的纵坐标的目标文本区域,确定的目标文本区域与位于第一列的目标文本区域在排列后的目标文本区域中位于同一行;
②若存在与位于第一列的目标文本区域均不在同一行的目标文本区域,则确定出所述与位于第一列的目标文本区域均不在同一行的目标文本区域中列数与第一列最接近的一列中的目标文本区域,然后,将与位于第一列的目标文本区域均不在同一行的目标文本区域作为初始排列后的目标文本区域,以及将所述最接近一行中剩余的目标文本区域作为初始排序后的目标文本区域中位于第一行的目标文本区域,触发执行遍历初始排列后的目标文本区域中位于第一列的目标文本区域,确定初始排列后的目标文本区域中区域中心点的横坐标大于位于第一列的目标文本区域的第一区域边框的纵坐标,且小于位于第一列的目标文本区域的第二区域边框的纵坐标的目标文本区域,确定的目标文本区域与位于第一列的目标文本区域在排列后的目标文本区域中位于同一行。
③基于各行目标文本区域的区域中心点的纵坐标,确定各行目标文本区域位于排列后的目标文本区域中的第mi行,以得到排列后的目标文本区域。
在一个实施例中,所述获取目标图像的各个目标文本区域的方式可以是:1)对目标图像进行文本检测处理,得到至少一个初始文本区域;2)获取各个初始文本区域的切分位置;3)基于切分位置对各个初始文本区域进行切分处理,得到第三初始文本子区域和第四初始文本子区域,第三初始文本子区域在目标图像的纵坐标小于第四初始文本子区域在目标图像的纵坐标;4)对第三初始文本子区域进行字符识别处理,确定第三初始文本子区域中的第三字符,并对第四初始文本子区域进行字符识别处理,确定第四初始文本子区域中的第四字符,第三字符为第三初始文本子区域的文本数据的最后一个字符,第四字符为第四初始文本子区域的文本数据的第一个字符;5)若第三字符的字符类型不为预设类型,且第三字符的字符类型不为预设类型,则确定第三初始文本子区域和第四初始文本子区域为不同的目标文本区域。
其中,步骤S1301的具体实施方式与步骤S201、步骤701以及步骤S1001-步骤S1006的具体实施方式相似,可以参见步骤S201和步骤701的具体实施方式,在此不赘述。
S1302,在初始表格中确定目标单元格组,目标单元格组包括第一单元格和第二单元格,第一单元格位于初始表格中的第n1列,第二单元格位于所述初始表格中的第n2列。
在本申请实施例中,所述第一单元格与所述第二单元格位于同一行,第一单元格与所述第二单元格均存在对应的目标文本区域,n1、n2均为正整数,n1小于n2。具体来说,目标单元格组的第一单元格和第二单元格可以是初始表格中相邻的两列中位于同一行的两个单元格;目标单元格组的第一单元格和第二单元格也可以是初始表格中不相邻的两列,但位于第一单元格和第二单元格之间的第三单元格不存在对应的目标文本区域;其中,第三单元格指的是与第一单元格位于同一行,且在初始表格中所处的列是在第n1列和第n2列之间的单元格。
S1303,若第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将初始表格的第n2列与第n1列合并,得到目标表格。其中,目标表格中第n1列中的各个单元格对应的目标文本区域包括初始表格的第n1列中的相应单元格对应的目标文本区域以及第n2列中的相应单元格对应的目标文本区域。
S1304,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格,得到表格数据。
在本申请实施例中,所述第二预设条件可以是:第三数量总和小于第n1列中的各个单元格对应的目标文本区域的第四数量总和。那么确定第三数量总和是否满足第二预设条件的方式可以是:获取第n1列中的各个单元格对应的目标文本区域的第四数量总和;若第四数量总和大于第三数量总和,则确定第三数量总和满足第二预设条件。
举例来说,请参见附图14,图14示出了又一种合并单元格的示意图。获取到的目标图像1401的初始表格以及初始表格中各个单元格对应的目标文本区域如图14中的初始表格1402所示。其中,由于目标图像1401中的应属于同一单元格的“2246567”和“本学期转学生”均出现了换行的情况,所以“2246567”会被识别为“2246”和“567”,“本学期转学生”会被识别为“本学期”和“转学生”,因此获取到的初始表格1402中一共有5列单元格。通过初始表格1402中各个单元格之间的位置关系,以及各个单元格与目标文本区域的对应关系,可以确定出如图14所示的11个目标单元格组,各个目标单元格组中位置在左方的为第一单元格,位置在右方的为第二单元格。其中,目标单元格组3中的单元格1404所在的初始表格1402的第4列中一共有3个单元格,其中,第4列的第一个单元格对应的目标文本区域为“567”,第4列的第三个单元格对应的目标文本区域为“转学生”,而第4列的第二个单元格没有对应的目标文本区域,因此可以确定目标单元格组3中的单元格1404所在的第4列中各个单元格对应的目标文本区域的第三数量总和为2,单元格1403所在的初始表格1402的第3列中一共有3个单元格,其中,所述3个单元格对应的目标文本区域分别为“2246”、“小白”和“本学期”,因此可以确定目标单元格组3中的单元格1403所在的第3列中各个单元格对应的目标文本区域的第四数量总和为3,由此可以确定第四数量总和大于第三数量总和,从而确定将初始表格1402的第4列合并至第3列,最终得到目标表格1407,其中,如图14所示的目标表格1407中注明了各个单元格对应的目标文本区域。
在一个实施例中,所述第二预设条件可以是:第一数量总和小于或者等于第三预设数值。可选地,所述第三预设数值可以小于或者等于第n1列中的各个单元格对应的目标文本区域的第四数量总和,所述第三预设数值可以是人为设定的,也可以是***设定的,在此不限定。举例来说,第三预设数值可以是1、5、8等。可选地,确定第三数量总和是否满足第二预设条件的方式可以是:若第二数量总和小于或者等于第三预设数值,则确定第三数量总和满足第二预设条件。
在一个实施例中,所述若第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将初始表格的第n2列与第n1列合并,得到目标表格的方式可以是:确定第一单元格对应的目标文本区域的文本数据的第一数据长度,以及第二单元格对应的目标文本区域的文本数据的第二数据长度;若所述第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,且第一数据长度大于第二数据长度,则将初始表格的第n2列与第n1列合并,得到目标表格。
在一个实施例中,所述若第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将初始表格的第n2列与第n1列合并,得到目标表格的方式可以是:对所述目标图像进行线条检测处理,得到至少一个线条;若所述第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,且所述目标图像中不存在任一线条位于所述第一单元格对应的目标文本区域和所述第二单元格对应的目标文本区域之间,则将所述初始表格的第n2列与第n1列合并,得到目标表格。其中,所述至少一个线条可以是竖线,也可以是斜线,在此不限定。
在一个实施例中,在所述初始表格中确定目标单元格组的方式可以是:1)在初始表格中确定至少一个单元格组,各个单元格组包括第一单元格和第二单元格;2)获取各个单元格组中第一单元格对应的目标文本区域,与各个单元格组中第二单元格对应的目标文本区域在目标图像中的距离;3)将距离最小的单元格组确定为目标单元格组。
在一个实施例中,所述若第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将初始表格的第n2列与第n1列合并,得到目标表格的方式还可以是:若第n2列中的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将初始表格的第n2列与第n1列合并,得到更新后的表格;将更新后的表格作为初始表格,触发执行在初始表格中确定目标单元格组,直至第n2列中的各个单元格对应的目标文本区域的第三数量总和不满足第二预设条件,则将不满足第二预设条件的目标文本区域对应的单元格所属的初始表格确定为目标表格,目标表格包括p×q个单元格,p小于等于m,p、q为正整数。
其中,步骤S1302-步骤S1504的具体实施方式与步骤S202-204、步骤702-706以及步骤S1002-S1010的具体实施方式相同或相似,可以参见步骤S202-204、步骤702-706以及步骤S1002-S1010的具体实施方式,在此不赘述。
本申请实施例中,先获取各个目标文本区域在目标图像中的位置信息,再基于各个目标文本区域的位置信息,确定目标图像的初始表格;然后获取到目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,再在所述初始表格中确定目标单元格组,其中目标单元格组包括第一单元格和第二单元格,第一单元格与所述第二单元格位于同一行,第一单元格位于初始表格中的第n1行,第二单元格位于初始表格中的第n2列;然后判断第n2列中的各个单元格对应的目标文本区域的第三数量总和是否满足第二预设条件,若是,则将所述初始表格的第n2行与第n1列合并,得到目标表格;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。本申请实施例中,通过判断第三数量总和是否满足第二预设条件,可以来确定出初始表格中应该合并的单元格,从而得到目标表格;因此,该方法避免了换列的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
基于上述表格信息提取方案以及表格信息提取***,本申请实施例提供了又一种表格信息提取方法。参见图15,为本申请实施例提供的又一种表格信息提取方法的流程示意图。图15所示的表格信息提取方法可由图1所示的服务器或者终端设备执行。图15所示的表格信息提取方法可包括如下步骤:
S1501,获取目标图像的初始表格,目标图像的各个目标文本区域与初始表格中各个单元格的对应关系,以及各个目标文本区域中的文本数据的显示方式。其中,各个目标文本区域是对所述目标图像进行文本检测处理得到的。
S1502,基于各个目标文本区域中的文本数据的显示方式,在初始表格中确定目标单元格组,目标单元格组包括第一单元格和第二单元格,第一单元格和第二单元格在初始表格中的位置关系和显示方式匹配,其中第二单元格位于初始表格中所述第一单元格的下一个单元格。
在本申请实施例中,所述第一单元格和第二单元格在初始表格中的位置关系和显示方式匹配指的是:
1)当各个目标文本区域中的文本数据的显示方式为横向显示时,第一单元格与第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行。第二单元格位于初始表格中第一单元格的下一个单元格指的是:m1小于m2,第一单元格与第二单元格均存在对应的目标文本区域,其中m1、m2均为正整数;
2)当各个目标文本区域中的文本数据的显示方式为纵向显示时,第一单元格与第二单元格位于同一行,第一单元格位于初始表格中的第n1列,第二单元格位于初始表格中的第n2列。第二单元格位于初始表格中第一单元格的下一个单元格指的是:n1小于n2,第一单元格与第二单元格均存在对应的目标文本区域,其中n1、n2均为正整数。
S1503,判断显示方式,若所述显示方式为纵向显示,则执行步骤S1504;若显示方式为横向显示,则执行步骤S1505;
S1504,若第二单元格所处列包括的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将第二单元格所处列与第一单元格所处列合并,得到目标表格;
S1505,第二单元格所处行包括的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将第二单元格所处行与第一单元格所处行合并,得到目标表格。
S1506,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
其中,步骤S1501-S1506的具体实施方式与步骤S201-204、步骤701-706以及步骤S1002-S1010的具体实施方式相同或相似,可以参见步骤S201-204、步骤701-706以及步骤S1002-S1010的具体实施方式,在此不赘述。
本申请实施例中,先获取目标图像的初始表格,目标图像的各个目标文本区域与初始表格中各个单元格的对应关系,以及各个目标文本区域中的文本数据的显示方式,再在初始表格中确定目标单元格组;若显示方式为纵向显示,且第二单元格所处列包括的各个单元格对应的目标文本区域的第三数量总和满足第二预设条件,则将第二单元格所处列与第一单元格所处列合并,得到目标表格;若显示方式为横向显示,且第二单元格所处行包括的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将第二单元格所处行与第一单元格所处行合并,得到目标表格;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。本申请实施例中,通过获取到的各个目标文本区域中的文本数据的显示方式,可以确定应该对初始表格中的单元格进行列合并还是行合并,然后可以根据不同的显示方式确定含有的第一单元格和第二单元格的位置关系不同的目标单元组,并根据第一预设条件或第二预设条件来确定需要进行合并的单元格,从而得到目标表格,其中,目标表格中原本应属于同一单元格但被对应至不同行或列的两个单元格中的目标文本区域是被合并了的。因此,该方法避免了换行或换列的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
基于上表格信息提取方法实施例,本申请实施例提供了一种表格信息提取装置。参见图16,为本申请实施例提供的一种表格信息提取装置的结构示意图,该表格信息提取装置可包括获取单元1601,确定单元1602,合并单元1603以及填充单元1604。图11所示的表格信息提取装置可运行如下单元:
所述获取单元1601,用于获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,其中各个目标文本区域是对目标图像进行文本检测处理得到的;
所述确定单元1602,用于在初始表格中确定目标单元格组,单元格组包括第一单元格和第二单元格,第一单元格与第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行,m1、m2均为正整数,m1小于m2,第一单元格与第二单元格均存在对应的目标文本区域;
所述合并单元1603,用于若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格,目标表格的第m1行中的各个单元格对应的目标文本区域包括初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;
所述填充单元1604,用于基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
在一个实施例中,所述合并单元1603,还用于确定第一单元格对应的目标文本区域的文本数据的第一数据长度,以及第二单元格对应的目标文本区域的文本数据的第二数据长度;若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且第一数据长度大于第二数据长度,则将初始表格的第m2行与第m1行合并,得到目标表格。
在一个实施例中,所述合并单元1603,还用于对目标图像进行线条检测处理,得到至少一个线条;若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且目标图像中不存在任一线条位于第一单元格对应的目标文本区域和第二单元格对应的目标文本区域之间,则将初始表格的第m2行与第m1行合并,得到目标表格。
在一个实施例中,所述获取单元1601,还用于获取各个目标文本区域在目标图像中的位置信息;基于各个目标文本区域的位置信息,确定目标图像的初始表格,位置信息包括横坐标和纵坐标,初始表格包括m×n个单元格,m是根据最小纵坐标的目标文本区域和最大纵坐标的目标文本区域在目标图像中的位置信息确定的,n是根据最小横坐标的目标文本区域和最大横坐标的目标文本区域在目标图像中的位置信息确定的,m、n均为正整数。
在一个实施例中,所述获取单元1601,还用于基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域;基于排列后的目标文本区域,确定初始表格,m是根据排列后的目标文本区域中最小纵坐标的目标文本区域和最大纵坐标的目标文本区域确定的,n是根据排列后的目标文本区域中最小横坐标的目标文本区域和最大横坐标的目标文本区域确定的。
在一个实施例中,所述获取单元1601,还用于获取所述各个目标文本区域的区域中心点在所述目标图像中的位置信息;基于各个目标文本区域的区域中心点的位置信息,对各个目标文本区域进行排序,得到排序后的目标文本区域,排序后的目标文本区域中第x个目标文本区域的区域中心点的横坐标小于或等于第x+1个目标文本区域的区域中心点的横坐标,x为正整数;获取排序后的目标文本区域中第一个目标文本区域的各个区域边框在目标图像中的位置信息;基于第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对排序后的目标文本区域进行排列,得到初始排列后的目标文本区域;基于初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域。
在一个实施例中,所述获取单元1601,还用于遍历排序后的目标文本区域中的各个目标文本区域,确定排序后的目标文本区域中区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且小于第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,确定的目标文本区域与第一个目标文本区域在初始排列后的目标文本区域中位于同一行;若排序后的目标文本区域中确定的目标文本区域的下一个目标文本区域的区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且大于第一个目标文本区域的第二区域边框的纵坐标,则确定下一个目标文本区域在初始排列后的目标文本区域中位于第一个目标文本区域的下一行;将下一个目标文本区域作为第一个目标文本区域,并触发执行确定排序后的目标文本区域中区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且小于第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,以得到初始排列后的目标文本区域;其中,在初始排列后的目标文本区域中位于同一行的目标文本区域的排序和位于同一行的目标文本区域在排序后的目标文本区域中的排序相同。
在一个实施例中,所述获取单元1601,还用于在初始排列后的目标文本区域中确定排列后的目标文本区域中位于同一列的目标文本区域,同一列的目标文本区域的区域中心点的横坐标大于同一列的目标文本区域中位于第一行的目标文本区域的第三区域边框的横坐标,且小于同一列的目标文本区域中位于第一行的目标文本区域的第四区域边框的横坐标;基于各列目标文本区域的区域中心点的横坐标,确定各列目标文本区域位于排列后的目标文本区域中的第ni列,以得到排列后的目标文本区域;其中,若各个目标文本区域位于初始排列后的目标文本区域中的第mi行,则各个目标文本区域位于排列后的目标文本区域中的第mi行,mi、ni为正整数,mi小于等于m,ni小于等于n。
在一个实施例中,所述获取单元1601,还用于对目标图像进行文本检测处理,得到至少一个初始文本区域;获取各个初始文本区域的切分位置;基于切分位置对各个初始文本区域进行切分处理,得到第一初始文本子区域和第二初始文本子区域,第一初始文本子区域在目标图像的横坐标小于第二初始文本子区域在目标图像的横坐标;对第一初始文本子区域进行字符识别处理,确定第一初始文本子区域中的第一字符,并对第二初始文本子区域进行字符识别处理,确定第二初始文本子区域中的第二字符,第一字符为第一初始文本子区域的文本数据的最后一个字符,第二字符为第二初始文本子区域的文本数据的第一个字符;若第一字符的字符类型不为预设类型,且第二字符的字符类型不为预设类型,则确定第一初始文本子区域和第二初始文本子区域为不同的目标文本区域。
在一个实施例中,所述确定单元1602,还用于在初始表格中确定至少一个单元格组,各个单元格组包括第一单元格和第二单元格,第一单元格与第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行,m1、m2均为正整数,m1小于m2,第一单元格与第二单元格均存在对应的目标文本区域;对于各个单元格组,获取各个单元格组中第一单元格对应的目标文本区域,与各个单元格组中第二单元格对应的目标文本区域在目标图像中的距离;将距离最小的单元格组确定为目标单元格组。
在一个实施例中,所述合并单元1603,还用于若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到更新后的表格;将更新后的表格作为初始表格,触发执行在初始表格中确定目标单元格组,直至第m2行中的各个单元格对应的目标文本区域的第一数量总和不满足第一预设条件,则将不满足第一预设条件的目标文本区域对应的单元格所属的初始表格确定为目标表格,所述目标表格包括p×q个单元格,p小于等于m,p、q为正整数。
在一个实施例中,所述获取单元1601,还用于获取第m1行中的各个单元格对应的目标文本区域的第二数量总和;若第二数量总和大于第一数量总和,则确定第一数量总和满足第一预设条件。
根据本申请的一个实施例,图2、图7、图10、图13以及图15所示的表格信息提取方法所涉及的各个步骤可以是由图16所示的表格信息提取装置中的各个单元来执行的。
根据本申请的另一个实施例,图16所示的表格信息提取装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于逻辑功能划分的表格信息提取装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2、图7、图10、图13以及图16所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图16中所示的表格信息提取装置,以及来实现本申请实施例表格信息提取方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,先获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,再在所述初始表格中确定目标单元格组,其中目标单元格组包括第一单元格和第二单元格,第一单元格与所述第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行;然后判断第m2行中的各个单元格对应的目标文本区域的第一数量总和是否满足第一预设条件,若是,则将所述初始表格的第m2行与第m1行合并,得到目标表格;最后,基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。本申请实施例中,通过获取到的初始表格,以及目标图像的各个目标文本区域与初始表格中的各个单元格的对应关系,可以确定各个目标文本区域在初始表格中的初始位置;然后,通过确定初始表格中的目标单元格组,以及判断第一数量总和是否满足第一预设条件,来确定出初始表格中应该合并的单元格,从而得到目标表格,其中,目标表格中原本应属于同一单元格但被对应至不同行的两个单元格中的目标文本区域是被合并了的。因此,该方法避免了换行的文本数据由于没有明确表格线被填充至不同单元格,而导致提取出的表格中出现文本数据混乱的情况,从而可以实现不依赖如全线表等有明确表格线的表格去确定某些目标文本区域位于表格中的哪些单元格,进而实现对含有非全线表的图像进行表格结构化,提取出含有非全线表的图像的表格数据。
基于上述的方法实施例以及装置实施例,本申请还提供了一种电子设备。参见图17,为本申请实施例提供的一种电子设备的结构示意图。图17所示的电子设备可至少包括处理器1701、输入接口1702、输出接口1703以及计算机存储介质1704。其中,处理器1701、输入接口1702、输出接口1703以及计算机存储介质1704可通过总线或其他方式连接。
计算机存储介质1704可以存储在电子设备的存储器中,计算机存储介质1704用于存储计算机程序,计算机程序包括程序指令,处理器1701用于执行计算机存储介质1704存储的程序指令。处理器1701(或称CPU(Central Processing Unit,中央处理器))是电子设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现上述表格信息提取方法流程或相应功能。
本申请实施例还提供了一种计算机存储介质(Memory),计算机存储介质是电子设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作***。并且,在该存储空间中还存放了适于被处理器1701加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速随机存取存储器(random access memory,RAM)存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器1701加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2、图7以及图10的表格信息提取方法实施例中的方法的相应步骤,具体实现中,计算机存储介质中的一条或多条指令由处理器1701加载并执行如下步骤:
处理器1701获取目标图像的初始表格,以及目标图像的各个目标文本区域与初始表格中各个单元格的对应关系,其中各个目标文本区域是对目标图像进行文本检测处理得到的;
处理器1701在初始表格中确定目标单元格组,目标单元格组包括第一单元格和第二单元格,第一单元格与第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行,m1、m2均为正整数,m1小于m2,第一单元格与第二单元格均存在对应的目标文本区域;
处理器1701若判断出第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格,目标表格的第m1行中的各个单元格对应的目标文本区域包括初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;
处理器1701基于各个目标文本区域与初始表格中各个单元格的对应关系,将目标表格中各个单元格对应的目标文本区域中的文本数据填充至目标表格中,得到表格数据。
在一个实施例中,处理器1701若判断第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格,包括:确定第一单元格对应的目标文本区域的文本数据的第一数据长度,以及第二单元格对应的目标文本区域的文本数据的第二数据长度;若判断第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且第一数据长度大于第二数据长度,则将初始表格的第m2行与第m1行合并,得到目标表格。
在一个实施例中,处理器1701若判断第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格,包括:对目标图像进行线条检测处理,得到至少一个线条;若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且目标图像中不存在任一线条位于第一单元格对应的目标文本区域和第二单元格对应的目标文本区域之间,则将初始表格的第m2行与第m1行合并,得到目标表格。
在一个实施例中,处理器1701获取目标图像的初始表格,包括:获取各个目标文本区域在目标图像中的位置信息;基于各个目标文本区域的位置信息,确定目标图像的初始表格,位置信息包括横坐标和纵坐标,初始表格包括m×n个单元格,m是根据最小纵坐标的目标文本区域和最大纵坐标的目标文本区域在目标图像中的位置信息确定的,n是根据最小横坐标的目标文本区域和最大横坐标的目标文本区域在目标图像中的位置信息确定的,m、n均为正整数。
在一个实施例中,处理器1701基于各个目标文本区域的位置信息,确定目标图像的初始表格,包括:基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域;基于排列后的目标文本区域,确定初始表格,m是根据排列后的目标文本区域中最小纵坐标的目标文本区域和最大纵坐标的目标文本区域确定的,n是根据排列后的目标文本区域中最小横坐标的目标文本区域和最大横坐标的目标文本区域确定的。
在一个实施例中,处理器1701基于各个目标文本区域的位置信息,对各个目标文本区域进行排列,得到排列后的目标文本区域,包括:获取各个目标文本区域的区域中心点在目标图像中的位置信息;基于各个目标文本区域的区域中心点的位置信息,对各个目标文本区域进行排序,得到排序后的目标文本区域,排序后的目标文本区域中第x个目标文本区域的区域中心点的横坐标小于或等于第x+1个目标文本区域的区域中心点的横坐标,x为正整数;获取排序后的目标文本区域中第一个目标文本区域的各个区域边框在目标图像中的位置信息;基于第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对排序后的目标文本区域中目标文本区域进行排列,得到初始排列后的目标文本区域;基于初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域。
在一个实施例中,处理器1701基于第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对排序后的目标文本区域中目标文本区域进行排列,得到初始排列后的目标文本区域,包括:遍历排序后的目标文本区域中的各个目标文本区域,确定排序后的目标文本区域中区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且小于第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,确定的目标文本区域与第一个目标文本区域在初始排列后的目标文本区域中位于同一行;若排序后的目标文本区域中确定的目标文本区域的下一个目标文本区域的区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且大于第一个目标文本区域的第二区域边框的纵坐标,则确定下一个目标文本区域在初始排列后的目标文本区域中位于第一个目标文本区域的下一行;将下一个目标文本区域作为第一个目标文本区域,并触发执行确定排序后的目标文本区域中区域中心点的纵坐标大于第一个目标文本区域的第一区域边框的纵坐标,且小于第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,以得到初始排列后的目标文本区域;其中,在初始排列后的目标文本区域中位于同一行的目标文本区域的排序和位于同一行的目标文本区域在排序后的目标文本区域中的排序相同。
在一个实施例中,处理器1701基于初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对初始排列后的目标文本区域进行再次排列,得到排列后的目标文本区域,包括:在初始排列后的目标文本区域中确定排列后的目标文本区域中位于同一列的目标文本区域,同一列的目标文本区域的区域中心点的横坐标大于同一列的目标文本区域中位于第一行的目标文本区域的第三区域边框的横坐标,且小于同一列的目标文本区域中位于第一行的目标文本区域的第四区域边框的横坐标;基于各列目标文本区域的区域中心点的横坐标,确定各列目标文本区域位于排列后的目标文本区域中的第ni列,以得到排列后的目标文本区域;其中,若各个目标文本区域位于初始排列后的目标文本区域中的第mi行,则各个目标文本区域位于排列后的目标文本区域中的第mi行,mi、ni为正整数,mi小于等于m,ni小于等于n。
在一个实施例中,处理器1701还用于对目标图像进行文本检测处理,得到至少一个初始文本区域;获取各个初始文本区域的切分位置;基于切分位置对各个初始文本区域进行切分处理,得到第一初始文本子区域和第二初始文本子区域,第一初始文本子区域在目标图像的横坐标小于第二初始文本子区域在目标图像的横坐标;对第一初始文本子区域进行字符识别处理,确定第一初始文本子区域中的第一字符,并对第二初始文本子区域进行字符识别处理,确定第二初始文本子区域中的第二字符,第一字符为第一初始文本子区域的文本数据的最后一个字符,第二字符为第二初始文本子区域的文本数据的第一个字符;若第一字符的字符类型不为预设类型,且第二字符的字符类型不为预设类型,则确定第一初始文本子区域和第二初始文本子区域为不同的目标文本区域。
在一个实施例中,处理器1701在初始表格中确定目标单元格组,包括:在初始表格中确定至少一个单元格组,各个单元格组包括第一单元格和第二单元格,第一单元格与第二单元格位于同一列,第一单元格位于初始表格中的第m1行,第二单元格位于初始表格中的第m2行,m1、m2均为正整数,m1小于m2,第一单元格与第二单元格均存在对应的目标文本区域;获取各个单元格组中第一单元格对应的目标文本区域,与各个单元格组中第二单元格对应的目标文本区域在目标图像中的距离;将距离最小的单元格组确定为目标单元格组。
在一个实施例中,处理器1701若判断第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到目标表格,包括:若第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将初始表格的第m2行与第m1行合并,得到更新后的表格;将更新后的表格作为初始表格,触发执行在初始表格中确定目标单元格组,直至第m2行中的各个单元格对应的目标文本区域的第一数量总和不满足第一预设条件,则将不满足第一预设条件的目标文本区域对应的单元格所属的初始表格确定为目标表格,目标表格包括p×q个单元格,p小于等于m,p、q为正整数。
在一个实施例中,处理器1701还用于获取第m1行中的各个单元格对应的目标文本区域的第二数量总和;若第二数量总和大于第一数量总和,则确定第一数量总和满足第一预设条件。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述如图2、图7以及图10所示的方法实施例。其中,计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种表格信息提取方法,其特征在于,包括:
获取目标图像的初始表格,以及所述目标图像的各个目标文本区域与所述初始表格中各个单元格的对应关系,其中所述各个目标文本区域是对所述目标图像进行文本检测处理得到的;
在所述初始表格中确定目标单元格组,所述目标单元格组包括第一单元格和第二单元格,所述第一单元格与所述第二单元格位于同一列,所述第一单元格位于所述初始表格中的第m1行,所述第二单元格位于所述初始表格中的第m2行,m1、m2均为正整数,m1小于m2,所述第一单元格与所述第二单元格均存在对应的目标文本区域;
若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,所述目标表格的第m1行中的各个单元格对应的目标文本区域包括所述初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;
基于所述各个目标文本区域与所述初始表格中各个单元格的对应关系,将所述目标表格中各个单元格对应的目标文本区域中的文本数据填充至所述目标表格,得到表格数据。
2.根据权利要求1所述的方法,其特征在于,所述若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,包括:
确定所述第一单元格对应的目标文本区域的文本数据的第一数据长度,以及所述第二单元格对应的目标文本区域的文本数据的第二数据长度;
若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且所述第一数据长度大于所述第二数据长度,则将所述初始表格的第m2行与第m1行合并,得到所述目标表格。
3.根据权利要求1所述的方法,其特征在于,所述若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,包括:
对所述目标图像进行线条检测处理,得到至少一个线条;
若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,且所述目标图像中不存在任一线条位于所述第一单元格对应的目标文本区域和所述第二单元格对应的目标文本区域之间,则将所述初始表格的第m2行与第m1行合并,得到所述目标表格。
4.根据权利要求1所述的方法,其特征在于,所述获取目标图像的初始表格,包括:
获取所述各个目标文本区域在所述目标图像中的位置信息;
基于所述各个目标文本区域的位置信息,确定所述目标图像的初始表格,所述位置信息包括横坐标和纵坐标,所述初始表格包括m×n个单元格,m是根据最小纵坐标的目标文本区域和最大纵坐标的目标文本区域在所述目标图像中的位置信息确定的,n是根据最小横坐标的目标文本区域和最大横坐标的目标文本区域在所述目标图像中的位置信息确定的,m、n均为正整数。
5.根据权利要求4所述的方法,其特征在于,所述基于所述各个目标文本区域的位置信息,确定所述目标图像的初始表格,包括:
基于所述各个目标文本区域的位置信息,对所述各个目标文本区域进行排列,得到排列后的目标文本区域;
基于所述排列后的目标文本区域,确定所述初始表格,m是根据所述排列后的目标文本区域中最小纵坐标的目标文本区域和最大纵坐标的目标文本区域确定的,n是根据所述排列后的目标文本区域中最小横坐标的目标文本区域和最大横坐标的目标文本区域确定的。
6.根据权利要求5所述的方法,其特征在于,所述基于所述各个目标文本区域的位置信息,对所述各个目标文本区域进行排列,得到排列后的目标文本区域,包括:
获取所述各个目标文本区域的区域中心点在所述目标图像中的位置信息;
基于所述各个目标文本区域的区域中心点的位置信息,对所述各个目标文本区域进行排序,得到排序后的目标文本区域,所述排序后的目标文本区域中第x个目标文本区域的区域中心点的横坐标小于或等于第x+1个目标文本区域的区域中心点的横坐标,x为正整数;
获取所述排序后的目标文本区域中第一个目标文本区域的各个区域边框在所述目标图像中的位置信息;
基于所述第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和所述第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对所述排序后的目标文本区域进行排列,得到初始排列后的目标文本区域;
基于所述初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和所述初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对所述初始排列后的目标文本区域进行再次排列,得到所述排列后的目标文本区域。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第一个目标文本区域的第一区域边框以及第二区域边框的纵坐标,和所述第一个目标文本区域之后的各个目标文本区域的区域中心点的纵坐标,对所述排序后的目标文本区域进行排列,得到初始排列后的目标文本区域,包括:
遍历所述排序后的目标文本区域中的各个目标文本区域,确定所述排序后的目标文本区域中区域中心点的纵坐标大于所述第一个目标文本区域的第一区域边框的纵坐标,且小于所述第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,所述确定的目标文本区域与所述第一个目标文本区域在所述初始排列后的目标文本区域中位于同一行;
若所述排序后的目标文本区域中所述确定的目标文本区域的下一个目标文本区域的区域中心点的纵坐标大于所述第一个目标文本区域的第一区域边框的纵坐标,且大于所述第一个目标文本区域的第二区域边框的纵坐标,则确定所述下一个目标文本区域在所述初始排列后的目标文本区域中位于所述第一个目标文本区域的下一行;
将所述下一个目标文本区域作为所述第一个目标文本区域,并触发执行所述确定所述排序后的目标文本区域中区域中心点的纵坐标大于所述第一个目标文本区域的第一区域边框的纵坐标,且小于所述第一个目标文本区域的第二区域边框的纵坐标的目标文本区域,以得到所述初始排列后的目标文本区域;
其中,在所述初始排列后的目标文本区域中位于同一行的目标文本区域的排序和所述位于同一行的目标文本区域在所述排序后的目标文本区域中的排序相同。
8.根据权利要求6所述的方法,其特征在于,所述基于所述初始排列后的目标文本区域的第一个目标文本区域的第三区域边框以及第四区域边框的横坐标,和所述初始排列后的目标文本区域中其他目标文本区域的区域中心点的横坐标,对所述初始排列后的目标文本区域进行再次排列,得到所述排列后的目标文本区域,包括:
在所述初始排列后的目标文本区域中确定所述排列后的目标文本区域中位于同一列的目标文本区域,同一列的目标文本区域的区域中心点的横坐标大于所述同一列的目标文本区域中位于第一行的目标文本区域的第三区域边框的横坐标,且小于所述同一列的目标文本区域中位于第一行的目标文本区域的第四区域边框的横坐标;
基于各列目标文本区域的区域中心点的横坐标,确定所述各列目标文本区域位于所述排列后的目标文本区域中的第ni列,以得到所述排列后的目标文本区域;
其中,若所述各个目标文本区域位于所述初始排列后的目标文本区域中的第mi行,则所述各个目标文本区域位于所述排列后的目标文本区域中的第mi行,mi、ni为正整数,mi小于等于m,ni小于等于n。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述目标图像进行文本检测处理,得到至少一个初始文本区域;
获取各个初始文本区域的切分位置;
基于所述切分位置对所述各个初始文本区域进行切分处理,得到第一初始文本子区域和第二初始文本子区域,所述第一初始文本子区域在所述目标图像的横坐标小于所述第二初始文本子区域在所述目标图像的横坐标;
对所述第一初始文本子区域进行字符识别处理,确定所述第一初始文本子区域中的第一字符,并对所述第二初始文本子区域进行字符识别处理,确定所述第二初始文本子区域中的第二字符,所述第一字符为所述第一初始文本子区域的文本数据的最后一个字符,所述第二字符为所述第二初始文本子区域的文本数据的第一个字符;
若所述第一字符的字符类型不为预设类型,且所述第二字符的字符类型不为预设类型,则确定所述第一初始文本子区域和所述第二初始文本子区域为不同的目标文本区域。
10.根据权利要求1所述的方法,其特征在于,所述在所述初始表格中确定目标单元格组,包括:
在所述初始表格中确定至少一个单元格组,各个单元格组包括第一单元格和第二单元格;
获取所述各个单元格组中第一单元格对应的目标文本区域,与所述各个单元格组中第二单元格对应的目标文本区域在目标图像中的距离;
将距离最小的单元格组确定为所述目标单元格组。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,包括:
若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到更新后的表格;
将所述更新后的表格作为所述初始表格,触发执行所述在所述初始表格中确定目标单元格组,直至所述第m2行中的各个单元格对应的目标文本区域的第一数量总和不满足第一预设条件,则将不满足第一预设条件的目标文本区域对应的单元格所属的初始表格确定为所述目标表格,所述目标表格包括p×q个单元格,p小于等于m,p、q为正整数。
12.根据权利要求1-10任一项所述的方法,其特征在于,所述方法还包括:
获取所述第m1行中的各个单元格对应的目标文本区域的第二数量总和;
若所述第二数量总和大于所述第一数量总和,则确定所述第一数量总和满足第一预设条件。
13.一种表格信息提取装置,其特征在于,所述基于图像的表格提取装置包括获取单元,确定单元,合并单元以及填充单元,其中:
所述获取单元,用于获取目标图像的初始表格,以及所述目标图像的各个目标文本区域与所述初始表格中的各个单元格的对应关系,其中所述各个目标文本区域是对所述目标图像进行文本检测处理得到的;
所述确定单元,用于在所述初始表格中确定目标单元格组,所述单元格组包括第一单元格和第二单元格,所述第一单元格与所述第二单元格位于同一列,所述第一单元格位于所述初始表格中的第m1行,所述第二单元格位于所述初始表格中的第m2行,m1、m2均为正整数,m1小于m2,所述第一单元格与所述第二单元格均存在对应的目标文本区域;
所述合并单元,用于若所述第m2行中的各个单元格对应的目标文本区域的第一数量总和满足第一预设条件,则将所述初始表格的第m2行与第m1行合并,得到目标表格,所述目标表格中第m1行中的各个单元格对应的目标文本区域包括所述初始表格的第m1行中的相应单元格对应的目标文本区域以及第m2行中的相应单元格对应的目标文本区域;
所述填充单元,用于基于所述各个目标文本区域与所述初始表格中各个单元格的对应关系,将所述目标表格中各个单元格对应的目标文本区域中的文本数据填充至所述目标表格中,得到表格数据。
14.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序指令,所述计算机程序指令被处理器执行时,用于执行如权利要求1-12任一项所述的表格信息提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126160.5A CN114463765A (zh) | 2022-02-10 | 2022-02-10 | 一种表格信息提取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126160.5A CN114463765A (zh) | 2022-02-10 | 2022-02-10 | 一种表格信息提取方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114463765A true CN114463765A (zh) | 2022-05-10 |
Family
ID=81412833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210126160.5A Pending CN114463765A (zh) | 2022-02-10 | 2022-02-10 | 一种表格信息提取方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114463765A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114943978A (zh) * | 2022-05-13 | 2022-08-26 | 上海弘玑信息技术有限公司 | 一种表格重建的方法及电子设备 |
CN116127928A (zh) * | 2023-04-17 | 2023-05-16 | 广东粤港澳大湾区国家纳米科技创新研究院 | 表格数据识别方法、装置、存储介质及计算机设备 |
-
2022
- 2022-02-10 CN CN202210126160.5A patent/CN114463765A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114943978A (zh) * | 2022-05-13 | 2022-08-26 | 上海弘玑信息技术有限公司 | 一种表格重建的方法及电子设备 |
CN114943978B (zh) * | 2022-05-13 | 2023-10-03 | 上海弘玑信息技术有限公司 | 一种表格重建的方法及电子设备 |
WO2023216745A1 (zh) * | 2022-05-13 | 2023-11-16 | 上海弘玑信息技术有限公司 | 一种表格重建的方法及电子设备 |
CN116127928A (zh) * | 2023-04-17 | 2023-05-16 | 广东粤港澳大湾区国家纳米科技创新研究院 | 表格数据识别方法、装置、存储介质及计算机设备 |
CN116127928B (zh) * | 2023-04-17 | 2023-07-07 | 广东粤港澳大湾区国家纳米科技创新研究院 | 表格数据识别方法、装置、存储介质及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723807B (zh) | 使用端到端深度学习识别机打字符和手写字符 | |
CN109933756B (zh) | 基于ocr的图像转档方法、装置、设备及可读存储介质 | |
CN114463765A (zh) | 一种表格信息提取方法、装置及存储介质 | |
CN113785305B (zh) | 一种检测倾斜文字的方法、装置及设备 | |
US20210295114A1 (en) | Method and apparatus for extracting structured data from image, and device | |
US7650035B2 (en) | Optical character recognition based on shape clustering and multiple optical character recognition processes | |
US7646921B2 (en) | High resolution replication of document based on shape clustering | |
US11783610B2 (en) | Document structure identification using post-processing error correction | |
US20080063278A1 (en) | Shape clustering and cluster-level manual identification in post optical character recognition processing | |
CN107886082B (zh) | 图像中数学公式检测方法、装置、计算机设备及存储介质 | |
CN108280051B (zh) | 一种文本数据中错误字符的检测方法、装置和设备 | |
CN115618836B (zh) | 无线表格的结构还原方法、装置、计算机设备及存储介质 | |
CN112949476B (zh) | 基于图卷积神经网络的文本关系检测方法、装置及存储介质 | |
CN110490190A (zh) | 一种结构化图像文字识别方法及*** | |
CN111008559B (zh) | 一种面单识别结果的排版方法、***及计算机设备 | |
KR102122561B1 (ko) | 문서 이미지 상에서 글자를 인식하기 위한 방법 | |
CN114730241A (zh) | 触摸式用户界面输入中的手势笔画识别 | |
CN111400497A (zh) | 一种文本识别方法、装置、存储介质及电子设备 | |
CN112560849B (zh) | 基于神经网络算法的文理分割方法及*** | |
EP2074558A1 (en) | Shape clustering in post optical character recognition processing | |
Edan | Cuneiform symbols recognition based on k-means and neural network | |
CN111783869B (zh) | 训练数据筛选方法、装置、电子设备及存储介质 | |
EP3832544A1 (en) | Visually-aware encodings for characters | |
CN113486283B (zh) | 页面合并方法、装置、服务器、介质及产品 | |
CN115880702A (zh) | 数据处理方法、装置、设备、程序产品及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |