用于扫描图像中的表格信息的数据结构生成的制作方法

文档序号:23419930发布日期:2020-12-25 11:42阅读:92来源:国知局
用于扫描图像中的表格信息的数据结构生成的制作方法

本公开总体上涉及用于扫描图像中的表格信息的数据结构生成。提供了用于生成表示这样的表格信息的数据结构的方法,以及实现这样的方法的装置和计算机程序产品。



背景技术:

科学、医学和财务文档通常以表格形式描绘结构化信息。出于共享和存档目的,文档经常被扫描,并且所得到的扫描(光栅)图像被存储用于后续信息检索。扫描图像中的表格的结构是不能容易地由基于计算机的技术读取。在表格的结构、复杂性和可视化表示方面存在巨大的可变性。例如,表格标题可以以多种方式被结构化,以指示数据的行和列与分层的标题之间的对应关系。这种可变性对从扫描图像中自动提取表格信息提出了重大挑战。



技术实现要素:

根据本发明的一个方面,提供了一种用于生成表示扫描图像中的表格信息的数据结构的计算机实现的方法。该方法包括:存储表示表格的扫描图像的图像数据;处理图像数据以识别图像中的字符和线的位置;以及根据所述位置映射信息单元格在图像中的定位,每个信息单元格包含一组字符。该方法包括,对于每个单元格,根据单元格定位来确定用于预定义的单元格属性集的单元格属性值,并将该属性值作为输入提供给机器学习模型,该机器学习模型被训练为根据单元格属性值将单元格预分类为标题单元格或数据单元格。然后,该方法将预定义的规则应用于预分类的单元格以识别角落数据单元格,该角落数据单元格标记图像中包含数据单元格的区域和包含标题单元格的边缘区域之间的过渡。该方法还包括,对于行标题单元格集和列标题单元格集中的每一个,根据图像中这些单元格的相对定位,定义层次树,层次树指示标题单元格的层次结构,并使用层次树来生成将每个数据单元格映射到层次结构中对应的行和列标题单元格的数据结构。所得到的数据结构被存储以提供表格的可查询表示。

本发明的又一方面提供了一种计算机程序产品,该计算机程序产品包括体现程序指令的计算机可读存储介质,该程序指令可由计算装置执行,以使计算装置执行如上所述的用于生成数据结构的方法。

本发明的另一方面提供了一种计算装置,该计算装置包括用于存储表示表格的扫描图像的图像数据的存储器,以及适于实现如上所述的用于生成数据结构的方法的逻辑。

下面将通过说明性和非限制性示例,参照附图更详细地描述本发明的实施例。

附图说明

图1是用于实现体现本发明的方法的计算装置的示意图;

图2a至图2g示出了不同的表格结构的示例;

图3是用于实现体现本发明的方法的计算装置的组件模块的示意图;

图4指示了体现本发明的数据结构生成方法的步骤;

图5指示了体现本发明的方法的附加步骤;

图6a至图6c示出了图4方法中的对象检测步骤;

图7a至图7d示出了图4方法中的单元格检测步骤;

图8示出了数据结构生成方法的优选实施例中的单元格分类过程;

图9a至图9d示出了优选实施例中的单元格分析步骤;

图10a和图10b示出了图4方法中的层次提取操作的步骤;

图11指示了优选实施例中的层次提取过程的步骤;

图12示出了图11过程中的示例性列标题结构的voronoi图的构建;

图13示出了用于示例性行标题结构的类似过程;

图14示出了在优选实施例中的层次树生成中使用的另一过程;

图15示出了由体现本发明的方法生成的数据结构;以及

图16和图17示出了用体现本发明的方法获得的性能结果。

具体实施方式

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本发明的实施例提供了用于生成表示扫描图像中的表格信息的数据结构的计算机实现的方法。这样的方法可以通过包括一个或多个通用或专用计算机的计算装置来实现,每一个通用或专用计算机可以包括一个或多个(真实或虚拟)机器,从而提供用于实现本文所述操作的功能。体现本发明的方法的步骤可以通过程序指令来实现,例如,由装置的处理设备实现的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算装置可以在诸如云计算环境之类的分布式计算环境中实现,在分布式计算环境中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。

图1是用于实现体现本发明的方法的步骤的示例性计算装置的框图。计算装置以通用计算机1的形式示出。计算机1的组件可以包括诸如由处理单元2表示的一个或多个处理器之类的处理装置、系统存储器3以及将包括系统存储器3的各种系统组件耦合到处理单元2的总线4。

总线4表示若干类型的总线结构中的任何类型中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线体系结构中的任何一种的处理器或本地总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线和外围组件互连(pci)总线。

计算机1通常包括各种计算机可读介质。这样的介质可以是计算机1可访问的任何可用介质,包括易失性和非易失性介质以及可移动和不可移动介质。例如,系统存储器3可以包括易失性存储器形式的计算机可读介质,诸如随机存取存储器(ram)5和/或高速缓存存储器6。计算机1还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,可以提供存储系统7以用于读取和写入不可移动非易失性磁性介质(通常被称为“硬盘驱动器”)。尽管未示出,但是还可以提供用于读取和写入可移动非易失性磁盘(例如“软盘”)的磁盘驱动器,以及用于读取和写入可移动非易失性光盘(诸如cd-rom、dvd-rom或其他光学介质)的光盘驱动器。在这样的情况下,每个介质都可以通过一个或多个数据介质接口被连接到总线4。

存储器3可以包括具有被配置为执行本发明的实施例的功能的一个或多个程序模块的至少一个程序产品。举例来说,具有一组(至少一个)程序模块9的程序/实用程序8以及操作系统、一个或者多个应用程序、其它程序模块以及程序数据可以存储在存储器3中。操作系统、一个或者多个应用程序、其它程序模块以及程序数据中的每一个或其某种组合可以包括网络环境的实现。程序模块9通常执行如本文所述的本发明的实施例的功能和/或方法。

计算机1还可以与以下各项进行通信:一个或多个外部设备10,诸如键盘、指向设备、显示器11等;使用户能够与计算机1交互的一个或多个设备;和/或使计算机1能够与一个或多个其他计算设备进行通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(i/o)接口12进行。并且,计算机1可以经由网络适配器13与一个或多个网络(诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如因特网))进行通信。如图所示,网络适配器13经由总线4与计算机1的其他组件进行通信。应当理解,尽管未示出,但是可以结合计算机1使用其他硬件和/或软件组件。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部盘驱动器阵列、raid系统、带驱动器以及数据备份存储系统等。

将被描述的实施例生成表示扫描的文档图像中的表格的信息内容的数据结构。表格信息在文档中可以被结构化和呈现的方式存在巨大的可变性。在图2a至图2d中示出了一些示例。行标题和列标题可以具有各种结构,范围从图2a中所示的简单结构(数据的每一行/列有一个行/列标题)到复杂的层次结构。图2b示出了具有多个子标题的分层的标题结构的示例。图2c示出了缺少数据行并且在数据行之间嵌入子标题的另一个示例。在一些情况下,所有表格条目(标题和数据)都可能由图2d中所示的线分隔。在其他情况下,表格可能具有一些线(图2e和图2f)或根本没有线(图2g)。可能的表格结构的范围非常多样化,这对从扫描图像中自动提取有用数据提出了重大挑战。

图3是用于实现体现本发明的方法的示例性计算装置中的组件模块的示意图。该装置包括存储器20和总体上在21处指示的处理逻辑。在操作中,存储器20存储表示表格的扫描(光栅)图像的图像数据22,以及定义如在23处所指示的一个或多个(预训练的)机器学习(ml)模型的数据。存储器20还存储在系统操作期间生成的各种操作数据24。这包括对象映射、单元格映射和层次树(全部在下文中详述)以及相关联的元数据。存储器20还存储从图像数据22生成的所得到的数据结构25。处理逻辑21包括图像处理模块27、单元格检测模块28、单元格预分类模块29、单元格分析模块30、层次提取模块31和数据映射模块32。

图像处理模块27包括用于处理图像数据22以生成识别图像中的基本对象(字符和线)的位置的对象映射的功能。单元格检测模块28包括用于处理对象映射以识别结构原语并生成单元格映射的功能,如下详述。模块27和28因此执行图像的基本特征映射操作。

单元格预分类模块29包括用于确定单元格属性值的功能,该属性值由ml模型23用于推理,以将单元格预分类为标题单元格或数据单元格。单元格分析模块30包括用于识别如下详述的角落数据单元格以及定义行和列标题单元格的功能。模块29和30因此对图像中的单元格执行语义标记/分类操作。

模块31和32执行操作以识别表格的结构层次。特别地,层次提取模块31包括用于为行和列标题单元格的层次结构定义层次树的功能。数据映射模块32生成数据结构25,该数据结构25将数据单元格映射到层次中的它们的对应的行和列标题单元格。

通常,存储器20可以包括一种或多种类型的存储器/存储组件,存储器/存储组件可以与逻辑模块27至32一起被提供在计算系统的一个或多个计算机中。例如,所有组件可以被提供在通用计算机1中。通常,模块可以通过软件(例如,程序模块9)或硬件或其组合来实现。功能可以被不同地分配在体现本发明的计算装置中的组件模块之间,并且一个或多个模块的功能可以被组合。

图4指示由图3的装置执行的数据结构生成方法的基本步骤。在步骤40中,表示表格的扫描图像的图像数据22被存储在存储器20中。(识别和提取描绘表格的扫描文档的部分可以以已知的方式完成,并且所采用的特定技术与本文所描述的操作不相关)。图像数据表示像素网格,并且可以任何方便的图像格式表示。在步骤41中,图像处理模块27处理图像数据22以识别图像中的字符和线的位置。模块27因此检测这些基本对象(如下详述),并生成识别图像中对象的位置的对象映射。对象映射作为操作数据24被存储在存储器20中。在步骤42中,单元格检测模块28根据对象映射中基本对象的检测位置来映射信息单元格在图像中的定位。每个信息单元格包含一组字符,更特别地包含一组(一个或多个)字符串,如下文进一步所述。所得到的单元格映射然后被存储在存储器20中。

在步骤43中,单元格预分类模块29确定单元格映射中的单元格的单元格属性值。该属性值包括先前用于训练存储在存储器20中的ml模型23的预定义单元格属性集的值。该ml模型被训练为根据单元格属性值将单元格预分类为标题单元格或数据单元格。单元格属性值(至少)取决于单元格映射中的单元格定位,并且可以包括其他属性,例如,与字符串格式有关的属性,如下详述。在步骤44中,模块29将单元格属性值作为输入提供给预训练后的模型,以获得将单独的单元格预分类为标题单元格或数据单元格的软标签。这些初步分类标签作为元数据被存储在存储器20中。

在步骤45中,单元格分析模块30将一组预定义规则应用于经预分类的单元格,以识别图像的角落数据单元格。如下所述,优选实施例以概率方式应用这些规则,以识别角落数据单元格。角落数据单元格标记图像中包含数据单元格的区域和包含标题单元格的边缘区域之间的过渡。角落数据单元格的位置然后被用在步骤46中。在此,模块30(至少)根据边缘区域中的单元格定位来定义(标记)图像的行和列标题单元格,如下所述。

在步骤47中,所得到的行标题单元格集和列标题单元格集由层次提取模块31处理,以为每个集定义层次树。这些层次树指示(行或列)标题单元格的层次结构。如以下详细解释的,每个层次树(至少)根据图像中行或列单元格的相对定位来定义。所得到的层次树然后被存储在存储器20中。在步骤48中,数据映射模块32使用层次树来生成将每个数据单元格映射到每个标题单元格集的层次结构中的它对应的行和列标题单元格的数据结构。在步骤49中,所得到的表格数据结构25被存储在存储器20中。

通过上述方法生成的数据结构25提供了原始表格的可查询表示,并且可以用于自动数据提取,如图5所示。在此步骤50表示计算机1接收对于包含在原始表格中的信息的请求。这样的请求可以包括任何方便格式的标准数据库查询,并且可以根据标题从表格中识别所需的数据,例如请求与一个或多个指定标题相对应的所有数据或指定的数据子集。响应于请求的接收,在步骤51中,计算机1从数据结构25中提取与所请求的信息相对应的数据。然后所提取的数据在步骤52中被输出以返回给请求者。

可以看出,图4的方法使用基于规则的方法,以通过ml技术基于对标题/数据单元格的预分类来识别角落数据单元格。角落数据单元格的识别提供了一种优雅地简单而高效的技术来确定表格中的标题和数据之间的过渡,并允许然后可以经由层次树定义的多层级标题单元格。通过以此方式解决标题的层次结构,体现本发明的方法可以适应任何类型的表格结构,从而为从图像中自动提取表格数据提供了一种高效的、通用的技术。

下面更详细地描述图4的方法步骤的示例性实现。图6a至图6c示出了步骤41中的基本对象检测操作(请注意,在这里和其他图中,表格中文本的可读性不是必需的。所有相关的结构信息从所提供的图中是明显的)。图6a示出了单个字符的识别,该单个字符例如为字母、数字、标点符号和其他符号,其在图中由方框标记。可以使用众所周知的光学字符识别(ocr)技术来执行字符检测,包括商业系统,诸如tesseractocr引擎或专门为数据训练的其他字符识别方法。如图6b和图6c中的粗体所示,图像中水平和竖直线的识别也可以使用众所周知的技术来完成。示例包括霍夫变换特征提取和/或对位图图像中的像素进行计数。定义所检测到的字符/线段位置的元数据被存储在对象映射中。

在图7a至图7c中示出了单元格定位过程(图4的步骤42)。从字符映射(图7a)开始,执行水平形态膨胀以识别字符串(连续字符的串,由间隔分开),如图7b所示。然后执行进一步分析以识别构成表中的单个信息单元格的(通常为一个或多个)字符串的集。此过程可以利用以下中的一个或多个:在出现的位置线相对于字符串的定位(例如,以识别封闭矩形内或水平/竖直线对之间的字符串);水平/竖直间隔的字符串之间的间隔大小;以及映射中不同字符串的竖直/水平对齐。所得到的单元格在图7c中用灰色框表示。单元格定义在此阶段可以是临时的,并且可以稍后(例如在结构层次分析期间)被改进。例如,图7d示出了一个特定问题,其中表格中的一些“真”信息单元格包含多于一个竖直偏移的字符串(图中的上面的圆圈)。可能难以将这些部分与其中竖直偏移的字符串未被链接的表格的其他部分(例如,下面的圆圈)区分开。为了解决此问题,优选实施例不将竖直偏移的字符串合并到单元格中。因此,每个信息单元格都包含图像中的一组水平对齐的字符。

在优选实施例中,语义标记过程(图4的步骤43至46)使用随机森林模型对单元格进行预分类。随机森林(rf)技术是一种众所周知的树集成方法,其中生成多个决策树以对训练数据集进行建模。简而言之,为评估训练示例定义了一组属性。为所有训练示例定义对应的“属性值”,“属性值”指示训练示例中每个属性的类型、质量、值或其他表达。还根据分类方案中被指派给该示例的特定分类来标记每个训练示例。然后,rf技术分析训练集以增长决策树的集成(ensemble),其根据随机优化过程将输入属性值映射到分类标签。然后,包括所得到的树集成的训练后的模型可以被应用于推理。新的(看不见的)输入示例的属性值被提供给树集成。每个树都输出对应的分类,并且最频繁的(模式)结果作为输入示例的分类被输出。

在本申请中,具有许多不同结构的10,000个表格的合成数据集被用来训练rf模型。属性集包括取决于图像中的单元格的定位的多个属性。这些属性选自:相邻单元格的数量;右侧相邻单元格的数量;左侧相邻单元格的数量;上方相邻单元格的数量;下方相邻单元格的数量;右侧有一条线;左侧有一条线;上方有一条线;下方有一条线;以及单元格所占的面积。在优选实施例中,属性集还包括取决于单元格中的字符串的属性的子集。这些属性选自:字符加粗;字符为斜体;数字字符的比例(例如,%);字母字符的比例;以及非字母数字字符(特殊字符、符号等)的比例。使用不同的属性集和决策树数量生成rf模型,然后针对推理性能来评估模型。然后识别最佳的rf模型参数,并使用这些参数生成最终的rf模型。此模型包含300棵树,并使用以下属性集:相邻单元格的数量;单元格类型(数字字符、字母字符和非字母数字字符的比例);字符加粗;字符为斜体;右侧相邻单元格的数量;上方相邻单元格的数量;右侧有一条线;左侧有一条线;上方有一条线;下方有一条线;以及单元格所占的面积。

图8示出了此实施例中的语义标记过程。预分类模块29为单元格映射中的所有单元格确定与上述属性中的每一个相对应的属性值。每个单元格的属性值被输入到在60处指示的训练后的rf模型,以获得将单元格预分类为标题或数据单元格的软标签。软标签被提供给单元格分析模块30,该单元格分析模块30实现马尔可夫逻辑网络61(如下面进一步描述的)以识别角落数据单元格。然后所有单元格被分类为行标题单元格、列标题单元格或数据单元格。

马尔可夫逻辑网络61作为ml模型被存储在图3的存储器20中。马尔可夫逻辑网络(mln)是众所周知的网络模型,用于表示以一阶逻辑表示的公式/规则的集合,该公式/规则被指派了相应的权重。公式/规则以表示感兴趣领域中的对象常量以及表示对象的属性或对象之间的关系的谓词来表示。马尔可夫逻辑网络为它被应用于其上的数据导出概率图(马尔可夫随机场)。图的节点表示谓词,并且链接节点的边表示用于构建公式/规则的逻辑连接。概率p与节点相关联,使得如果节点为真,则p=1,如果节点为假,则p=0。概率与规则权重组合以指示规则成立的可能性。规则权重在网络被暴露给训练数据的训练阶段中被学习,并且权重是经由优化过程被学习的。然后所得到的训练后的网络可以被应用于推理,以基于输入数据的已知概率来确定条件概率。

在本申请中,mln模型61表示在与单元格有关的谓词上定义的一组规则。在此实施例中使用的谓词在图9a中示出。在推理操作中,概率(0和1之间的连续数值,其中0表示假,1表示真)基于软预分类标签和单元格映射中单元格的相对定位被指派给谓词。如由图9a中的“查询”所指示的,推理操作涉及找到表格的角落数据单元格(cdc)。如图9b中所示,对于简单表格,cdc标记了包含数据单元格的图像区域与包含(行和列)标题单元格的边缘区域之间的过渡。(尽管此处示出了简单的表格,但表格可能在边缘区域之外包含其他标题单元格,诸如嵌入数据单元格区域中的列标题)。

图9c示出了在此实施例中使用的规则。此处:符号^表示逻辑and;表示not;表示“推出”。规则是通过根据规则所表达的谓词组合经由边来连接表示组成的谓词的节点而在网络中定义的。所得到的mln61的一部分的说明性示例在图9d中示出。规则权重在网络训练阶段被学习,并且指示用于识别cdc的相应规则的重要性。在推理期间,通过应用mln,将规则应用于预分类的单元格,并将概率p指派给每个单元格的谓词,以为表格确定最可能的cdc。特别地,mln将识别与网络的最低“违反规则成本”相关联的单元格。一些规则通常对于所有单元格都将被违反,并且较高的成本与较高的规则权重相关联,其中与最小总成本相关联的单元格最有可能是cdc。

单元格分析模块30使用cdc的定位来识别行和列标题单元格集。特别地,位于cdc上方的标题单元格被标记为列标题单元格。cdc左侧的所有其他标题单元格被标记为行标题单元格。cdc下方(即嵌入在数据区域中的)的任何其他经预分类的标题单元格都被标记为列标题单元格。

所得到的行和列标题单元格集由层次提取模块31处理,以为每个集生成层次树。可以根据存在于一些表格中的特定标题特征,以不同的方式执行此过程,该特定标题特征可以由模块31识别,如下文进一步讨论的。然而,通常,通过加权图技术为行和列标题单元格集中的至少一个(通常至少是列标题)生成层次树。在此过程中,模块31生成加权图,该加权图包括表示图像中的标题单元格、其相邻数据单元格和预定义的根单元格的节点。根单元格是在图像中定义的参考位置处的名义上的单元格。这在图10a中针对示例性表格中的列标题示出。在此,根单元格位置x被定义在图像中列标题上方的中间位置处。根单元格、标题单元格及其相邻数据单元格(即图10a中的第一行数据单元格)的节点通过图中的边相互连接。特别地,每个节点(至少)被连接到表示图像中它的相邻单元格的一组其他节点。图10b中示出了图10a标题单元格的网络图(为清楚起见,仅示出了边的子集)。每对节点之间的边被指派一个权重(图中未示出),该权重取决于这些节点所表示的单元格在图像中的相对定位。较高的权重对应于单元格之间的较大距离。然后,模块31选择在表示数据单元格的每个节点与表示根单元格的节点之间通过图的最佳路径。最佳路径是具有最低累积权重的路径。由图10b中的实线箭头指示的这些最佳路径定义了层次树的分支。所得到的树指示列标题单元格的层次结构,每个标题单元格根据它与根节点(级别0)之间的边数而位于特定的层级,在此为级别1或级别2。

图11指示了优选实施例中的树生成过程的步骤。在步骤70中,模块31为标题单元格、它们的相邻数据单元格和根单元格在图像中的定位定义voronoi图。用于图10a的列标题的voronoi图在图12中被示出。此图的每个区域都对应一个单元格,并且包含图像中比任何其他单元格定位更靠近该单元格定位的所有点。例如,被圈出的区域对应于图10a中的被圈出的单元格。然后在步骤71中,生成加权图,其中边由voronoi图中在与每个数据单元格定位相对应的区域之间的、通过相邻区域的、朝向根单元格定位的路径确定。此过程将图中的边数减少到最小子集,从该最小子集可以更有效地确定最佳路径。在步骤72中,边根据成本函数被加权:

w(a,b)=β1sin(a,b)+β2|ay-by|2

其中:w(a,b)是节点a和节点b之间的边的权重;ay-by是节点a和b的相对竖直位移;并且β1和β2是常量。在步骤73中,然后基于边权重计算数据节点与根节点之间的dijkstra最短路径。然后在步骤74中用对应于最短路径的分支定义层次树。

注意,嵌入到图像的数据区域中的标题单元格可以容易地适应上述过程。同样,往回参考图7d,层次树的构建可以导致在适当的情况下合并竖直偏移的标题单元格。特别地,如果层次树的一个分支包含比其它分支多的节点,则节点可以被合并,直到分支在每个层级中包含一个节点。

可以针对行和列标题集执行以上过程。图13示出了用于示例性行标题结构的voronoi图。然而,在此用于对边进行加权的成本函数由以下公式定义:

w(a,b)=β1cos(a,b)+β2|ax-bx|2

其中ax-bx是节点a和b的相对水平位移。然而,一些表格可能包含具有特定格式属性的标题,该特定格式属性可被用于简化或辅助层次树的构建。例如,模块31可以确定集合中的每个单元格是否具有预定的格式属性集中的任何格式属性。此格式属性集可以包括以下中的一项或多项:粗体文本;斜体文字;缩进文本和大写(upper-case、capital)文本。如果集合包括具有不同格式属性的单元格(如可以用来指示标题中的层次结构),则模块31然后可以根据单元格的格式属性来(全部或部分地)定义层次树。图14针对表格中的行标题示出了此过程的特定示例。在此,标题层次由单元格定位、粗体和缩进指示。模块31根据如图中的表格所指示的这些单元格属性的存在(1)或不存在(0),针对属性“缩进”、“粗体”、“斜体”和“全部大写”向每个标题单元格指派属性值0或1。然后基于表格的哪一行定义它们的属性值,将单元格标记为层级1、2或3。然后行层次树相应地被构建。

层次树的构建可以利用上述过程中的一个或组合。例如,一些表格可能具有行标题的多个列,其中一些列中的标题层次由格式指示,而其他则没有格式差异。图14的方法可被应用于确定层次树中与格式化的标题单元格相对应的部分,而图形方法被应用于树的其余部分。

数据映射模块32使用所得到的层次树来将行和列中的数据单元格映射到行和列层次树中的它们的对应的标题单元格。在此实施例中,表格t由有序对(c,datamap)定义,其中c是行和列标题集,并且datamap是从c的层次到单元格中数据项的映射。图15示出了所得到的示例性表格的数据结构t。

上述优选实施例可以提供用于生成表格的可查询数据结构的特别高效的通用过程。该过程可以适应行和列中的多个层级,并且可以检测结构而不必仅仅依赖线的存在或假定任何特定的表格式。mln方法允许将基于推理的规则高效地、概率地应用于cdc检测,其中用于推理的输入数据推动用于最佳解决方案的打破规则的成本。针对由124个表格的图像组成的icdar(国际文档分析和识别会议)2013数据集对性能进行了评估。97.2%的所有单元格被正确检测,并且93.8%的检测到的单元格存在于原始表格中。单元格内容根据将一个字符串转换为另一字符串所需的删除、替换和插入的数量来被评估,达到85.4%的准确率。针对icdar数据集和合成数据集两者评估了语义标记(图3的模块29和30),并且分析结果如图16所示。在此,“精度”指示正确检测到的标题/数据集的比率。“召回率”指示所检测到的正确的(基本事实)集合中的标题/数据单元格的比率;“准确率”指示总体准确率;并且“f1分数”指示“精度”和“召回率”的组合,以在单个度量中反映这两个方面。图17示出了从为合成数据集的1000张图像生成的数据结构中提取的数据(查询结果)的准确率分布。应用如果行和列层次两者均正确,则数据准确率为1,否则应用数据准确率为0的严格度量。使用此严格的准确率标准得到的结果相当出色。

将理解,可以对上述示例性实施例做出各种改变和修改。举例来说,其他机器学习模型,诸如神经网络或支持向量机模型,可被用于单元格的预分类。虽然mln模型对于cdc检测是优选的,但其他基于规则的系统(例如固定规则集或贝叶斯网络/其他概率图模型)也可以被采用。在一些实施例中,全连接图可以被用作层次树生成的基础。当然,除了上述有序对之外的数据结构也可以被用于表格表示。

通常,在本文参考体现本发明的方法描述特征的情况下,可以在体现本发明的计算装置/计算机程序产品中提供对应的特征,反之亦然。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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