Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

三篇论文,纵览深度学习在表格识别中的最新应用

本文从三篇表格识别领域的精选论文出发,深入分析了深度学习在表格识别任务中的应用。

表格识别是文档分析与识别领域的一个重要分支,其具体目标是从表格中获取和访问数据及其它有效信息。众所周知,本质上表格是信息表达的一种重要形式,它能将数据组织成标准的结构,便于信息检索和比较。通常我们现阶段针对表格的处理方式是:人工使用 Excel 等工具打开表格,之后提取、操作和处理表格中的内容。人工处理表格的方式存在很多问题,一是,由于表格数量大,编辑过程中经常更新,不同的表格中可能写入了相同的内容,对这些表格进行手动交叉检查的时间有限,这种人工处理方法经常会出现表格处理错误、不一致等问题,这种错误和不一致可能会给公司带来巨大的声誉风险,甚至是经济损失。二是,手工提取表格信息往往是一个繁琐而耗时的过程。三是,在金融业和许多其他领域,表格往往是以非结构化的数字文件(如可移植文档格式(PDF)和图片格式)公开的,这些文件难以直接进行人工提取和处理。

因此,高效地从文档中找到表格,同时有效提取表格中的数据与结构信息即表格识别,成为了一个亟待解决的问题。表格识别具体是指,将表格以图片的形式发送到电脑上,自动提取表格图片中的各类信息,同时将这些信息重新堆叠为新的文档,也称为表格文档重建。应用表格识别技术能够大大节省表格内容处理的时间,同时能够减少由人为因素产生的错误。

近年来,国内外专家、学者针对这一问题进行了大量研究,引入图卷积神经网络(Graph convolutional network ,GCN)、快速 R-CNN (Fast R-CNN),全卷积神经网络(Fully Convolutional Networks,FCN)、条件生成式对抗网络(Conditional Generative Adversarial Networks,CGAN)等深度学习方法和模型进行自动化的表格识别。表格识别也逐渐演变成了多个分支研究领域,包括:专门的数据集构建、表格检测、表格结构识别、表格检测与结构识别等。

本文从近两年公开发表的文章中,包括国际文档分析与识别会议(International Conference on Document Analysis and Recognition,ICDAR)和arXiv平台的论文中精选了三篇,深入分析深度学习在表格识别任务中的应用。其中,第一篇文章重点关注表格识别任务的数据集构建,第二篇文章聚焦的是表格检测与结构识别任务,第三篇文章重点研究表格结构识别任务

一、GFTE: Graph-based Financial Table Extraction


论文地址:https://arxiv.org/abs/2003.07560

本文为 2020 年最新公布在 arxiv 上的一篇文章。本文的工作聚焦的是金融类的、中文表格数识别。此文的贡献主要包括两部分。第一,为了便于从非结构化数字文件中进行基于深度学习的表格抽取,本文发布了一个标准的中文数据集 FinTab,它包含了 1600 多个不同类型的财务表格及其相应的 JSON 结构表示。第二,本文提出了一种新的基于图卷积神经网络(Graph Convolutional Network ,GCN)的模型 GFTE 作为该表格识别数据集中的基线方法。GFTE 通过融合图像特征、位置特征和文本特征,能够对表格进行精确的边缘预测,取得了较好的效果。FinTab 数据集和 GFTE 方法都已经公布在 GitHub 中:https://github.com/Irene323/GFTE。

首先,作者给出了一个经典的表格识别问题示例。图 1 给出了两个已有的表格内容提取方法的效果,即 Adobe Acrobat DC 和 Tabby[1]。在示例中的表格应用这两种方法都无法正确提取表格内容。同时,不难发现在跨单元格的情况下,由于这些单元格很可能携带表头的信息,表格识别经常会出现问题。因此,表格抽取方法的性能仍有待提高,尤其是在复杂的情况下对于表格的提取和理解至关重要。

图 1. 包含跨单元格的表格和使用现有方法恢复的表格结构示例

1、经典表格识别数据集及表格识别方法回顾

首先,作者回顾了以前发布的用于表格识别任务的数据集,然后介绍了表格识别的不同方法。

1.1、数据集

(1)Marmot[2]。Marmot 数据集由中英文两部分组成。中文网页是从方正阿帕比图书馆(Founder Apabi library)提供的超过 120 本不同学科领域的电子书中收集的,而英文网页则来自 Citeseer 网站。该数据集是基于 PDF 格式文件的,存储了所有文档布局的树结构,其中的叶子是字符、图像和路径,根是整个页面。内部节点包括文本行、段落、表格等。

(2)UW3 和 UNLV 。UW3 数据集 [3] 是从 1600 页倾斜校正的英文文档中收集的,其中 120 页包含至少一个标记的表格区域。UNLV 数据集来自 2889 页扫描文档图像,其中 427 幅图像包括表格。

(3)ICDAR 2013[4]。该数据集共包含 150 个表格:欧盟 27 个摘录中的 75 个表格,美国政府 40 个摘录中的 75 个表格,即总共 67 个 PDF 文档,共包含 238 页英文页面。

(4)ICDAR 2019[5]。该数据集用于 ICDAR 2019 年表格检测和识别竞赛。整个数据集划分为训练部分和测试部分。训练数据集包含 600 个现代文档的图像及其表格区域的边框,以及 600 个文档的图像、表格区域和单元格区域的表格结构和边框。在测试数据集中,提供了 199 份档案文献和 240 份现代文献的图像和表格区域。此外,还包括 350 份档案文献的表格结构和单元区域。

(5)PubTabNet[6]。PubTabNet 数据集包含 56.8 万张表格数据的图像,以及图像对应的 html 格式的注释。更具体地说,该数据集提供了表格结构和字符,但缺少边界框。

(6)SciTSR[7]。SciTSR 是一个综合性的数据集,由 15000 个 PDF 格式的表格、表格区域的图像、它们对应的结构标签和每个单元格的边框组成。其中,12000 个文档用于训练,3000 个用于测试。同时,还提供了一个称为 SciTSR-COMP 的复杂表列表。

(7)TableBank 表格库[8]。TableBank 是基于图像的表格检测和识别数据集。由于涉及两个任务,所以它由两个部分组成。对于表格检测任务,包含了表格区域的页面和边框的图像。对于表格结构识别任务,提供了表示行和列的排列以及表格单元类型的页面和 HTML 标记序列的图像。然而,由于这个数据集不涉及文本内容识别任务,因此不包含文本内容及其边界框。

关于上述七个数据集的详细信息见表 1。可以看出,除 Marmot 中包含有部分中文表格外,其它数据集均为英文数据集。

表 1. 用于表格识别的公共数据集

1.2、表格识别方法

表格识别被视为表格理解的一部分,通常包括两个步骤:

1) 表格检测。也就是说,在这个步骤中,将文件中的某个部分标识为表格。

2) 表格结构分解。这一步骤的任务是识别出原始表格的组件,通过对组件的堆叠恢复原始表格。例如,标题元素的正确标识、列和行的结构、数据单元的正确分配等等。

现有的表格识别方法主要包括三大类:1)基于预定义布局的方法,2)基于启发式的方法,3) 基于统计或优化的方法。基于预定义布局的方法为可能的表格结构设计多个模板。如果文档的某些部分对应于某些模板,则它们被标识为表格。基于启发式的方法指定一组规则来进行决策,以便检测出满足特定条件的表。基于统计或优化的方法首先通过离线训练获得统计指标,然后将估计得到的参数用于实际表格识别。

2、FinTab 介绍

作者分析,现有的应用于表格识别任务中的数据集存在下述两个问题:1)从财务文档中提取表格信息的方法和标准数据集很少。2) 表格信息提取的来源缺乏多样性。本次发布的基准数据集 FinTab 旨在解决上述问题。在这个数据集中,总共收集了 19 个 PDF 文件和 1600 多个表格。具体文件分类见表 2。所有文件总计 3329 页,其中 2522 页包含表格。为了保证表格类型的多样性,除了表格的基本形式外,FinTab 中还包括了不同难度的特殊表格形式,如半规则表格、跨页表格、合并单元格表格、多行标题表格等。FinTab 中共有 119021 个单元格,合并单元 2859 个,占 2.4%。

表 2. FinTab 的文档类型分类

FinTab 包含各种类型的表。在这里,我们按难易程度简单介绍其中的一些。

1) 基本单页表格。这是最基本的表格类型,它占用不到一个页面,并且不包括合并单元格。值得一提的是,本数据集中不仅提供了文本的基本事实和结构信息,而且还提供了表格的单位,因为大多数财务表格包含了相当多的数字。

2) 包含合并单元格的表格。

3) 跨页表格。当表格是跨页展开的,则需要将跨页表格合并。如果两页的页眉是重复的,则只需保留一页。页码和其他无用信息也应删除。另一个需要注意的任务难点是,如果一个单元格被两个页面分隔,则应该根据其语义将其合并为一个单元格。

4) 表格线条不完整。在这种情况下,需要根据文本的位置、格式和含义智能地定位分界线。

3、方法介绍

本文提出了一种新的基于图神经网络(GCN)的表格结构识别算法 GFTE(a novel Graph-Neural-Network-based algorithm),GFTE 的完整工作流程如图 2。

图 2. GFTE 完整工作流程

GFTE 可以概括为以下步骤:(a) 构建基本事实,包括表格区域的图像、文本内容、文本位置和结构标签。(b) 基于单元格构造一个无向图 G=<V, R_C>。(c)使用 GFTE 来预测相邻关系,包括垂直关系和水平关系。表 3 给出一个任务示例(表格文字已经转换为英文)。

表 3. 本文中用来阐述方法的示例性表格的翻译版本

首先,作者解释了任务的具体内容。在表格识别问题中,可以将表格中的每个单元格视为一个节点,节点与它的邻域可以理解为边。如果用 N 表示节点集,用 E_C 表示完全连通的边,则表格结构可以用一个完整的图来表示 G=<V, R_C>,R_C = EC x  {vertical, horizontal, unrelated}。我们可以把这个问题解释为:给定一组节点 N 及其特征,尽可能精确地预测节点对之间的关系 R_C。由于 R_C 描述每个节点(表格的单元)的互相关系,计算量颇大,文中只考虑了单元格周围相邻的格子,也就是利用 K - 最近邻(KNN)方法构造 R_C,它包含每个节点与其 K 个最近邻之间的关系。每个节点包含三种类型的信息,即文本内容、绝对位置和图像,如图 3 所示。然后,利用结构关系来建立基本的图结构,整个结构可以如图 4 所示。为了提高准确度,分别训练水平和垂直关系。对于水平关系,将每条边标记为(1: 在同一行中,或 0: 不在同一行中)。对于垂直关系,将每条边标记为(1: 在同一列中,或 0: 不在同一列中)(图 4)。

图 3. 源数据格式的直观示例

图 4. 基本图结构

图 5 给出了基于图的卷积网络 GFTE 的结构。首先将绝对位置转换为相对位置,然后用这些位置来生成图。同时,将纯文本嵌入到预先定义的特征空间中,然后使用 LSTM 来获取语义特征。将位置特征和文本特征连接在一起,并将它们传送到一个两层图卷积网络(GCN)。同时,作者使用了一个小内核算子对图像进行膨胀,使表格的线条更粗。还将图像调整为 256x256 像素,以便使输入的图片正常化,然后利用三层 CNN 计算图像特征。最后,利用节点的相对位置,计算出流场网格。利用网格中输入的像素位置计算输出,可以得到某个节点在某一点上的图像特征。这三种不同的特征都得到后,将生成的图的一条边上的两个节点配对,即,找到一条边上的两个节点,并将它们的三种不同的特征集合在一起。最后,使用 MLP 来预测两个节点是在同一行还是在同一列中。

图 5. 基于 GCN 的 GFTE 算法的结构

4、实验结果介绍

首先,作者对比了不同 GFTE 模型的效果。第一步,对 GFTE-pos 进行训练,即利用相对位置和 KNN 算法生成图,只利用位置特征训练 GFTE。第二步,利用 LSTM 获取的位置特征和文本特征对网络进行训练,该模型标记为 GFTE pos+text。最后,在网格采样的基础上,进一步加入图像特征,训练得到本文提出的 GFTE。表 4 给出了不同 GFTE 模型在 FinTab 数据集上的性能。当引入更多种类的特征时,准确度总体呈上升趋势。当加入文本特征时,准确度有明显的改善,即水平预测和垂直预测分别提高了 10% 和 5%。进一步加入图像特征仍能继续提高性能,但提高的程度不会太大。

表 4. 不同 GFTE 模型在垂直和水平方向上的准确度结果

表 5 给出了 GFTE 在不同数据集上的准确度结果,即,在 SciTSR 测试数据集上进行验证,在本文提出的 FinTab 数据集上进行测试。可以观察到,本文提出的 GFTE 算法在 SciTSR 验证数据集上达到了相当高的准确度,这意味着 GFTE 在训练数据足够的情况下能够很好地作为基线方法。另外,虽然 FinTab 数据集的数据源和属性与 SciTSR 数据集完全不同,但 GFTE 仍然取得了良好的结果,这表明 GFTE 具有一定的鲁棒性。

表 5. 验证数据集和测试数据集垂直和水平关系的准确度结果

5、小结

本文基于 PDF 文件构建了一个中文金融表格数据集 FinTab,该数据集具有多样性、充分性和全面性等特征。基于 FinTab,后续可以研究并提出更多具有创新性、性能更优的表格识别算法,从而辅助金融类、中文表格识别任务。此外,作者提出了一种基于 GCN 的 GFTE 算法作为该数据集的基线表格识别方法。本文对该基线方法的性能、可能存在的问题进行了分析,为后续的工作打下了基础。

二、TableNet: Deep Learning model for end-to-end Table detection and Tabular data extraction from Scanned Document Images


论文地址:https://arxiv.org/abs/2001.01469

本文为发表在 ICDAR 2019 中的一篇文章。与上一篇文章聚焦金融类表格不同,本文关注的是一般用途的表格检测与结构识别。随着配备摄像头等移动设备的激增,越来越多的客户通过这些设备上传文档,使得从这些图像中提取信息的需求更加迫切。通常,这些文档中包含存储在布局和视觉外观上有多种变化的表格数据。因此,从这些文档中提取信息的一个关键组成部分是将这些表格图像中的数据数字化。然而,由于表格结构的多样性,以及用于视觉上分离表格组件的图形元素的变化,使得从这些图像中提取数据成为一个非常具有挑战性的问题。本文提出了一个新的端到端深度学习模型 TableNet,它利用了表格检测和表格结构识别这两个任务之间固有的相互依赖性,利用一个基础网络通过预先训练的 VGG-19 特性进行初始化。接下来是两个解码器分支,用于 1)表格区域的分段和 2)表格区域内列的分段。然后,使用基于规则的行提取来提取表格单元格中的数据。

本文采用多任务方法对深度模型进行训练。该模型接受一个输入图像,并为表格和列分别生成两个不同的语义标记的输出图像。该模型中,表格检测器和列检测器共享 VGG-19 编码层,而两个任务的解码器是分开的。共享的公共层通过从表格检测器和列检测器接收到的梯度进行重复训练,而解码器是独立训练的。然后利用基本数据类型的语义信息进一步提升模型性能。利用 VGG-19 作为基础网络(在 ImageNet 数据集上预先训练)可以有效利用通过在 ImageNet 上进行训练学习的低级特征形式的先验知识。

1、方法介绍

1.1 TableNet

在传统的基于深度学习的表格识别问题中,表格检测和列检测通常被视为两个可以独立解决的单独的问题。然而,如果文档中的所有列都是先验已知的,则可以很容易地确定表格区域。但根据定义,列是垂直对齐的字 / 数字块。因此,独立搜索列会产生大量的误报,而提前判定表格区域可以大大提高列检测的结果(因为表格和列都有公共区域)。因此,使用卷积滤波器来检测表格,进一步应用列检测滤波器来加强,能够大大提高模型的性能。本文所提出的模型就是基于这种思想,同时引入了 Long 等人提出的用于语义分割的编码器模型[9]。模型的编码器在表格检测和列检测任务中都是通用的,但是解码器作为表格和列的两个不同分支出现。具体地说,强制编码层使用文档表格和列的基本结构进行训练。但是,对于表格和列分支,解码层是分开的。因此,需要训练两个图。

文档中表格的检测问题与真实图像中的对象检测问题类似,可以利用表格的视觉特征检测表格 / 列。区别在于,表格 / 列检测中的噪声容忍度比对象检测中的小得多。因此,本文采用了一种逐像素预测表格和列区域的方法,而不是对表格和列的边界进行回归。本文提出的 TableNet 整体结构见图 1。

图 1:(a)来自 Marmot 数据集的训练样本图像,突出显示了文本;(b) TableNet:该模型由 VGG-19 作为基础网络的预训练层,从 conv1 到 pool5 的层用作表格和列图的通用编码器层,编码器层后的两个解码器分支 conv7 column 和 conv7 table 生成单独的表格预测和列预测结果

TableNet 使用编码 - 解码器架构,利用预训练的 VGG-19 层作为基础网络。VGG-19 的全连接层(pool5 之后的层)被两个(1x1)卷积层取代。每个卷积层(conv6)使用 ReLU 激活,然后是一个概率为 0.8 的 dropout 层(conv6+dropout,如图 1 所示)。在这一层之后,附加了解码器网络的两个不同分支。因此,单一编码网络可以同时利用表格区域和列区域的特征,从而更好地找到活动区域。(conv6+dropout)层的输出被分配到两个解码器分支。在每个分支中,通过增加额外的层以过滤出相应的活动区域。在解码器网络的表格分支中,使用额外的(1x1)卷积层 conv7_table,然后使用一系列分数阶跃的卷积层来提升图像。conv7_table 的输出也使用分步卷积进行放大,并附加了相同维度的 pool4 池化层。类似地,再次放大组合特性映射,将 pool3 池化层附加到其中。最后,对最终得到的特征图进行放大,以满足原始图像的维度要求。在另一个检测列的分支中,有一个附加的卷积层(conv7_column),具有 ReLU 激活函数和相同 dropout 概率的 dropout 层。在(1x1)卷积(conv8 列)层之后,使用分步卷积对特征图进行上采样。将上采样的特征映射与 pool4 池化层相结合,上采样的组合特征映射与具有相同维度的 pool3 池化层相结合。在这一层之后,放大特征图至原始图像的大小。在两个分支中,在转置层之前使用多个(1x1)卷积层。最后,计算图的两个分支的输出生成表格和列区域的掩码。

1.2 提取表格行

在使用 TableNet 处理文档之后,可以得到表格和列区域的掩码。这些掩码用于从图像中过滤出表格及其列区域。因为文档的所有单词位置都是已知的(使用 Tesseract-OCR),因此只过滤掉了表格和列区域内的单词补丁。基于这些过滤后的单词提取表格行,一行可以被定义为来自多个列的单词的集合。然而,一行不一定只局限于一行,根据列或行的内容划分,一行可以跨越多行。因此,为了涵盖不同的可能性,本文制定了三种行分割规则:

1)在大多数有标线的表格中,直线将每列中的行分段。为了检测可能的行划分,通过 Radon 变换测试列中两个垂直放置的单词之间的每个空格是否存在行。

2)如果一行跨越多行,则表格中具有最大非空项的行被标记为新行的起点。例如,在一个多列表格中,一些列可以只包含一行的条目,而其他的列可以有多行的条目。因此,每列中的所有实体都被填充后,新的一行就开始了。

3)表格中的所有列都被完全填充,并且没有标线,则每一行(级别)都可以看作是一个唯一的行。

1.3 数据集准备

本文使用 Marmot 数据集进行模型训练。Marmot 是用于表格检测的最大的公共可用数据集,但是,Marmot 中没有对表格列或行的注释。因此,作者手动标注数据集以进行表格结构识别。通过在表格区域内每个列周围的边界框上添加标签,手动对数据集进行注释。手动注释的修改数据集以 Marmot Extended 的名称公开发布,用于表格结构识别:https://drive.google.com/drive/folders/1QZiv5RKe3xlOBdTzuTVuYRxixemVIOD。

2、实验分析

本文实验是基于 ICDAR 2013 表格竞赛数据集完成的。作者根据召回率、查准率和 F1 分数对模型性能进行评价,对每个文档计算这些度量值,并在所有文档中取其平均值。本文使用的 Mamot Extended 数据集中共有 1016 份文件,包括中文和英文表格,其中 509 份英文文件附有注释,并用于训练。使用 Tensorflow 实现该深度学习模型,并在一个使用 Intel(R)Xeon(R)Silver CPU(32 核)和 128 GB Tesla V100-PCIE-1 GPU 的 RAM 和 6GB GPU 内存的系统上完成实验。

表 1. 表格检测实验结果

表 2. 表格结构识别和数据提取实验结果

在实验 1 中,作者在所有 Marmot 数据集的正样本中训练 TableNet,并在 ICDAR 2013 表格竞争数据集上测试表格和结构检测任务。有两个计算图需要训练。每个训练样本是文档图像、表格掩码和列掩码的元组。对于每个训练元组,这两个图至少要计算两次。实验结果见表 1 和表 2。

在实验 2 中,使用修改过的 Marmot 数据集,其中每个文档中的单词都被突出显示以提供语义上下文信息。当这些空间、语义信息被附加到图像中时,结果略有改善(见表 1、2 中的比较)。模型的输出如图 2 所示。

图 2.TableNet 生成的样本文档图像及其输出掩码

实验 3 将 TableNet 与基于深度学习的解决方案 DeepDSert[10]进行比较(DeepDSert 为 2017 年 ICDAR 中提出的用于表格检测和结构识别的深度学习方法)。在 DeepDSert 中,分别使用单独的模型进行表格检测和结构识别,这些模型在不同的数据集上进行训练,例如用于表格检测的 Marmot 数据集和用于表格结构识别的 ICDAR 2013 数据集。为了生成可对比的结果,作者在 ICDAR 训练和测试数据集上分别对基于 Marmot 训练得到的 TableNet 模型进行了微调。与 DeepDSert 中所做的工作类似,作者还随机选择了 34 幅图像进行测试,并使用其余的数据图像对 TableNet 模型进行微调。TableNet 经过微调后,使用相同的参数以 1:1 的比例对两个分支进行 3000 次迭代,批量大小为 2。经过微调后,TableNet 的性能进一步提高。产生这一提高的原因可能是由于引入了 ICDAR 文档。实验结果见表 1 和表 2。TableNet 处理每个文档图像所花费的平均时间是 0.3765 秒,由于 DeepDSert 未公布相关数据,这一性能无法进行对比。虽然 TableNet 的最终结果并不比 DeepDSert 好,但 TableNet 是端到端的模型,也就意味着后续可以通过引入更丰富的语义知识的方法,或是增加更多的用于学习基于行的分割的分支来进一步改进模型的效果。

3、小结

本文提出了一种新的深度学习模型 TableNet,它以端到端的方式训练表格检测和结构识别的双重任务。现有的表格识别方法将表格检测和结构识别视为两个不同的问题,需要独立解决。作者提出,TableNet 是第一个同时处理这两个任务的模型,它利用了表格检测和表格结构识别之间固有的相互依赖性。TableNet 利用以前学习任务中的知识,并将这些知识转移到新的、相关的任务中,这在所得到的训练数据稀疏时特别有用。此外,作者在文中还证明了突出显示文本以提供数据类型信息可以进一步提高模型的性能。作者提出,在后续的工作中考虑引入第三个分支训练 TableNet 来识别行。但是,这项工作需要在现有的数据集中增加手工注释的行信息,而当前的用于表格识别任务的数据集都不提供基于行的注释。此外,作者还提出,后续将进一步思考可以引入哪些其他语义知识来提高模型性能,例如引入更抽象的数据类型,如货币、国家或城市等。

三、Table Structure Extraction with Bi-directional Gated Recurrent Unit Networks


论文地址:https://arxiv.org/abs/2001.02501

本文也是 ICDAR 2019 中的一篇文章,重点研究表格结构识别。表格能够呈现归纳和结构化的信息,这使得表格的结构提取成为文档理解应用的重要组成部分。然而,表格结构识别是一个很难解决的问题,不仅因为表格布局和样式的变化,而且由于页面布局和噪声污染程度的变化。目前对表格结构的识别已经做了大量的研究,其中大部分是基于启发式技术结合光学字符识别(OCR)来手工选取表格的布局特征。由于表格布局的变化和 OCR 产生的误差,这些方法并不能很好地推广。

本文提出了一种鲁棒的基于深度学习的表格结构提取方法,能够从文档图像的表格中高精度地提取行和列。在该方法中,首先对表格图像进行预处理,然后将其输入带有门控递归单元(Gated Recurrent Unit,GRU)的双向递归神经网络,然后通过 softmax 激活实现全连接层。网络从上到下、从左到右扫描图像,并将每个输入分类为行分隔符或列分隔符。该方法的核心就是 GRU 的引入,与传统的基于 CNN、启发式算法的方法相比,基于序列的模型可以有效捕捉表格中重复的行 / 列结构,因此能够大大改进表格结构识别的性能。

1、方法介绍

该方法分为三个模块:图像预处理、行列分类器和后处理。预处理模块将包含文本的表格图像转换为不包含文本特征的自然图像。然后,将这些图像传递给行列分类器模块,行列分类器模块使用行和列作为时间步长对每行和每列进行分类。后处理模块对分类器生成的分割空间进行解析,给出行和列的单行预测结果。

1.1 图像预处理

首先,对表格图像进行预处理,将原始表格图像转换为更简单的形式,从而突出表格的布局或结构。这种转换的目的是通过去除输入图像中不必要的细节来提高分类器的效率。

具体的预处理过程包括:去除掉图像中的划线和其它非文本的前景对象,对清理后的图像进行自适应二值化处理,使像素强度均匀。图像二值化处理后,尺寸调整为 1600x512 以便于后续输入神经网络处理。使用矩形核对调整后的图像进行三次膨胀变换(Dilation Transform)。在列检测的情况下,膨胀核(Dilation Kernel)是维数为 3x5 的垂直膨胀滤波器,在行检测的情况下,它是维数为 5x3 的水平膨胀滤波器。通过这些膨胀变换处理,能够连接表格中相邻的行和列,从而有助于模型获取行和列分隔符的模式。然后,将变换后的图像标准化,使其值介于 0 和 1,以将其输入到后续的递归神经网络。

1.2 分类器

和之前兩篇文章不同,分类器的核心是利用循环神经网络识别行和列间的分割区域。作者首先考虑的是门控递归单元(GRU)和长短期记忆网络(Long Short-Term Memory ,LSTM)这两种循环神经网络。这两种网络都可以在避免梯度消失问题的情况下合并引入上下文信息。作者提出,在行和列分类方面,GRUs 的性能优于 LSTM,且二者在分类器的应用场景中工作过程类似,因此,本文中的具体分析都以 GRU 为例。双向 GRU 以行和列作为基本时间步长,使用利用行 - 列元素的信息来预测未来的行 - 列元素。由于 GRUs 中的存储单元可以有效地学习行间距和列间距的模式以及行 - 列元素的重复顺序,因此该方法比基于 CNN 的模型有了显著的改进。下面,分两个部分分别介绍行和列分类的神经网络结构。

1) 列分类:列分类将图像的每一列分类为列或两列之间的空白。每次输入一个图像,每个图像都被看作是一个类似于随机梯度下降(SGD)的批处理图像。在一个批次中,将尺寸为 1600x512 的预处理输入图像划分成 1600 个序列(列),每个序列由 512 个像素值组成。两层 GRU 初始化为隐藏维度(4 x1x 512),对应于“2 x 层数  x 批次大小 x 隐藏维度大小”。

GRU 将图像处理为 1600 个时间步长,每个时间步长对应一个具有 512 个输入像素值的列。在每个时间步长(timestep),GRU 都考虑了关于当前列的左侧和右侧(如果有)的所有列的信息,以及当前列中包含的正在计算的像素值的信息。使用这些信息,GRU 可以学习识别列之间的空白间隙,因为这些列主要包含白色像素,并且在其左右两侧有两个列区域。

GRU 的输出是一个 1600x512 形状的张量,对应的是“序列长度 x 隐藏维度”。然后,这个张量通过一个全连接层,输出一个 1600x 2 形状的张量,再经过一个 softmax 层,得到形状为 1600 x 2 的最终输出,由 1600 列中每个列的二进制类概率组成。

2) 行分类:行分类器的结构是列分类器的转置,它将图像的每一行分类为一行或两行之间的空白。每次输入一个图像,每个图像被视为一个批次。在一个批次中,将尺寸为 1600x512 的预处理输入图像划分成 512 个序列(行),每个序列由 1600 个像素值组成。两层 GRU 初始化为隐藏维度(4 x 1 x 1024),对应于“2 x 层数 x 批次大小 x 隐藏维度大小”。

在行分类的情况下,将图像处理为 512 个时间步长,每个时间步长对应一个具有 1600 个输入像素值的列。在每个时间步长,GRU 都考虑了关于当前行的上下所有行以及当前行内像素值的信息。

GRU 的输出是一个 512 x 1600 形状的张量,对应的是“序列长度 x 隐藏维数”。然后,这个张量通过一个全连接层,输出一个 512 x 2 形状的张量,再经过一个 softmax 层,得到形状为 512 x 2 的输出,由 512 行中每个行的二进制类概率组成。

分类的最后一步是对前面得到的分类器预测的分割空间进行解析。选取分段空间的中点,对于列,应用逻辑来删除最左边和最右边的预测。对于行,去掉顶部和底部的预测。此步骤将输出回归到行和列分隔符的单行预测。图 1 和图 2 分别给出行、列分类器神经网络结构。

图 1. 行分类器神经网络结构

图 2. 列分类器神经网络结构

1.3 后处理

文章中使用 Adam 优化器和二进制交叉熵损失函数来训练模型。典型的表格图像包含的行和列的数量要多于它们之间的空白,为了解决这种类不平衡问题,作者对损失函数进行了加权,使错误预测的行列元素的惩罚仅为错误预测的空白元素的 66%。
本文使用从各种来源下载的免费文档图像作为神经网络的训练数据集。表格、行和列是使用自定义工具手动标记的。固定学习速率为 0.0005。作者训练了 323 幅图像中的 10 次迭代的列分类器和 286 幅图像中的 35 次迭代的行分类器。

2、实验分析

本文实验使用的是 UNLV 数据集。本文重点讨论的是表格识别问题中的表格结构提取,因此作者从 UNLV 库中的真实文件中裁剪得到 557 个表用于实验。作者使用 T-Recs 作为对比方法[11]。T-Recs 是一个用于表格结构提取的非深度学习方法。由表 1 和表 2 的实验结果可知,本文提出方法显著提高了列的检测准确度,准确度从 40.51% 提高到了 55.31%。在行检测的情况下,准确度从 54.98% 提高到了 58.45%。另一方面,与 T-Recs 方法相比,本文方法得到的结果中过分割和欠分割的数量更多,因此出现表格结构部分检测的情况减少了。

表 1. 在 427 个包含表格区域的二进制 300-DPI 扫描 UNLV 数据集文件中的评估结果(列分割) 

表 2. 在 427 个包含表格区域的二进制 300-DPI 扫描 UNLV 数据集文件中的评估结果(行分割)

最后,作者将本文提出的方法与文献 [12] 中提出的基于深度学习(CNN)的表格结构识别方法进行对比。该实验使用 ICDAR 2013 表格竞赛数据集,其中包含 67 个文档,238 页。具体实验结果见表 3。本文提出的方法在计算准确度、召回率和 F1 分数等方面性能都优于 [12] 中的方法。

表 3. ICDAR 2013 数据集中计算准确度、召回率和 F1 分数的实验结果

3、小结

针对表格结构识别任务,本文提出了一种基于 GRU 序列模型的表格结构抽取方法。与启发式算法和基于 CNN 的模型相比,基于序列的模型可以有效捕捉表格中重复的行 / 列结构,因此大大改进了表格结构抽取的性能。作者表示,后续工作将集中于开发一个从表格单元格中提取信息的连贯框架。

四、本文小结

在这篇文章中,我们讨论了表格识别问题。表格是一种非常重要也非常常见的公文格式、文档形式,因此,有效对表格进行分析和识别,从表格中抽取信息,具有非常重要的应用价值。表格中具有复杂的层次结构,除了存在行、列、表头结构外,还存在分割线、合并单元格等元素。这就导致传统的信息抽取、文档分析与识别方法直接应用在表格识别中效果都不好。

本文结合表格识别数据集构建、表格检测与结构识别任务、表格结构识别任务等三个方面的应用,分析了三篇最新的研究论文,了解了深度学习方法在表格识别任务中的应用。其中,第一篇文章的主要目的是提出一种应用中文语言的、适用于金融领域的表格识别任务数据集,并在此基础上提出了本数据集的基线任务方法。该方法主要解决经典的表格识别问题,即从表格中提取单元格中的内容。作者将表格中的单元格组织成为图结构,利用图神经网络技术实现表格识别。第二篇文章主要目的是同时解决表格检测与表格中的结构识别问题。因此,为了能够同时解决两项任务且有效利用两项任务之间的相关信息,作者使用了编码器 - 解码器结构的深度学习模型,通过共享编码器的方式完成表格检测与结构识别任务。第三篇文章目的是提出一种表格结构抽取方法。由于表格中的行和列具有典型的相互关联、相互影响的特点,本文作者使用了带有门控递归单元的双向递归神经网络。双向递归神经网络可以有效捕捉表格中重复的行 / 列结构,因此大大改进了表格结构抽取的性能。

近年来,针对表格的分析和处理从基本的结构识别、信息抽取,逐渐转向公式提取、交叉内容验证等更高层次的研究和应用。表格是与我们日常生活和工作都紧密相关的一种文档形式,对表格的自动化处理能力的不断提升,也将会给人们的生活和工作带来更大的便利性。

本文参考引用的文献:

[1] A. Shigarov, A. Altaev, A. Mikhailov, V. Paramonov, E. Cherkashin, “TabbyPDF: Web-Based System for PDF Table Extraction,” 2018, 24th International Conference on Information and Software Technologies.

[2] Institute of Computer Science and Techonology of Peking University, Institute of Digital Publishing of Founder R&D Center, “Marmot Dataset,” 2011, China, http://www.icst.pku.edu.cn/cpdp/sjzy/index.htm.

[3] Asif Shahab, “Table Ground Truth for the UW3 and UNLV datasets,” 2013, German Research Center for Artificial Intelligence (DFKI), http://www.iapr-tc11.org/mediawiki/index.php/Table Ground Truth for the UW3 and UNLV datasets.

[4] M. G¨obel , T. Hassan , E. Oro , G. Orsi, “ICDAR 2013 Table Competition,“ 2013, Proceedings of the 2013 12th International Conference on Document Analysis and Recognition, p.1449-1453.

[5] L. Gao, Y. Huang, H. Dejean, J. Meunier, “ICDAR 2019 Competition on Table Detection and Recognition (cTDaR),” 2019, International Conference on Document Analysis and Recognition (ICDAR), pp. 1510-1515, https://github.com/cndplab-founder/ICDAR2019 cTDaR.

[6] X. Zhong, J. Tang, A. J. Yepes, “PubLayNet: largest dataset ever for document layout analysis,” 2019, International Conference on Document Analysis and Recognition (ICDAR), https://github.com/ibm-aur-nlp/PubTabNet.

[7] Z. Chi, H. Huang, H. Xu, H. Yu, W. Yin, X. Mao, “Complicated Table Structure Recognition,” 2019, arXiv preprint arXiv:1908.04729, https://github.com/Academic-Hammer/SciTSR (http://github.com/Academic-Hammer/SciTSR).

[8] M. Li, L. Cui, S. Huang, F. Wei, M. Zhou, Z. Li, “TableBank: Table Benchmark for Image-based Table Detection and Recognition,” 2020, The International Conference on Language Resources and Evaluation, https://github.com/doc-analysis/TableBank (http://github.com/doc-analysis/TableBank).

[9] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” CoRR, vol. abs/1411.4038, 2014. [Online]. Available: http://arxiv.org/abs/1411.4038

[10] S. Schreiber, S. Agne, I. Wolf, A. Dengel, and S. Ahmed, “Deepdesrt: Deep learning for detection and structure recognition of tables in document images,” in Document Analysis and Recognition (ICDAR), 2017 14th IAPR International Conference on, vol. 1. IEEE, 2017, pp.1162–1167.

[11] T. Kieninger and A. Dengel, “The T-Recs table recognition and analysis system,” in Document Analysis Systems: Theory and Practice, pp. 255–270, 1999.

[12] S. Schreiber, S. Agne, I. Wolf, A. Dengel, and S. Ahmed, “Deepdesrt: Deep learning for detection and structure recognition of tables in document images,” in Fourteenth International Conference on Document Analysis and Recognition, vol. 1, pp. 1162–1167, 2017.

机器之心技术分析师专栏
机器之心技术分析师专栏

由来自世界各地的专业分析师为你解读前沿进展,技术热点和经典论文。我们的分析师团队由来自于各大名校的硕士和博士,以及一线研究机构的研究员组成。

理论深度学习
5
暂无评论
暂无评论~