表格识别TableMaster

192 阅读5分钟

论文:PingAn-VCGroup’s Solution for ICDAR 2021Competition on Scientific Literature Parsing Task B:Table Recognition to HTML

arxiv: arxiv.org/pdf/2105.01…

代码: github.com/JiaquanYe/T…

TableMaster在2021年ICDAR比赛中荣获亚军,其表格识别方法将任务分为预测单元格结构和单元格内容两个关键部分。首先,让我们深入了解一下什么是单元格结构。实际上,表格结构可以通过HTML来表示,其中的

等标签描述了表格的层次结构。按照超文本标记语言的语法规则,表格由 标签定义,每个表格包含多行(由 标签定义),每行又被分割为多个单元格(由 ,一个表示空单元格,一个表示非空单元格。标记符中有、、、等表示表格开始和行的标记符以及空单元格的标记符。这些标记符没有对应的单元格坐标。因此标记符序列长度比实际的单元格序列长。为了使得单元格坐标序列和标记符序列一样长,在单元格序列中,对应于、、、标记的位置会填充为0。而这些位置的坐标在回归单元格坐标时不用于参数的更新,会被一个Mask过滤掉,不计入bbox回归损失。

表格的类别标签

对于序列预测,使用标准的交叉熵损失。对于框回归,采用L1损失来回归[x,y,w,h]的坐标。坐标被归一化为[0,1]。如下图,可以看到,模型能够准确地预测出框的坐标。

表结构预测示例,预测的边界框用绿色标记

文本行检测

文本行检测使用PSENet,它能够定位任意形状的文本。其次,该模型提出了一种渐进尺度扩展网络,可以成功识别相邻的文本实例。PSENet不仅适应任意角度的文本检测,而且在相邻文本分割方面表现更好,下图是文本行检测的可视化图。

文本行检测的可视化

文本行识别

文本行识别算法使用了Master网络。在一个混合了单行文本图像和多行文本图像的数据库上进行训练,但在测试阶段,只输入单行文本图像。通过文本行识别,我们可以获取文本行图像的相应文本内容。这些文本内容将合并到HTML序列中非空的

项中。

框匹配过程

至此,我们获取了表格结构以及每个单元格的坐标,以及每个文本行的坐标和相应的文本内容。为了生成完整的HTML序列,我们需要将每个文本行的边框分配到其相应的表格结构单元格中。在这个小节中,我们将详细介绍我们使用的匹配规则。我们的方法中使用了三种匹配规则,分别称为中心点规则、IOU规则和距离规则。详细内容将在下文讨论。

中心点规则

在这个匹配规则中,我们首先计算由PSENet获得的每个框的中心坐标。如果坐标位于由结构预测获得的回归框的矩形区域内,我们称它们为匹配对。文本行的内容将填充到

中。重要的是要注意,一个单元格可以与多个PSENet框相关联,因为一个单元格可能有多个文本行。

IOU规则

如果中心点规则未能匹配,我们将计算所选文本行的框与所有单元格之间的IOU。将选择具有最大IOU值的单元格。文本内容将填充到所选的单元格中。

距离规则

最后,如果以上两条规则都没有匹配到。我们将计算所选文本行的框与所有单元格之间的欧几里得距离。与IOU规则类似,选择具有最小欧几里得距离的单元格。

最后的匹配流程如下:

对于每一个文本行,将上述三条规则按顺序应用。首先,大多数文本行框将根据中心点规则分配到对应的单元格中。然后,在中心点规则下未匹配的一些文本行框在IOU规则下匹配。最后应用距离规则。直至将所有文本行分配到对应的单元格中。在下图中显示了匹配结果的可视化示例。

Box分配可视化示例。左侧由PSENet检测到的一些框以不同颜色标记。右侧标记了由结构预测生成的框。

参考链接

华为云开发者联盟:论文解读丨表格识别模型TableMaster

标签定义)。

从下面的图中可以清晰看出,一个表格被表示成了一段文本字符序列,这种序列化的表示方式使得可以运用序列模型(如seq2seq或transformer)来进行表格结构的预测。而Month、February等描述了表格的内容。

TableMaster巧妙地将表格识别任务划分为表格结构预测和表格内容两个部分。整体模型分为四个关键部分:

  1. 表格结构检测
  2. 表格文本行检测
  3. 表格文本行识别
  4. 将文本行与表格结构序列(包括单元格坐标和文本行坐标)进行匹配。

下面对这四部分分别进行介绍:

表格结构预测

整个TableMaster模型主要分为分为两个分支,一个分支预测【表格结构序列】,另一个分支预测【单元格位置】,模型使用了TableMaster结构,主要由Transformer结构组成,它没有在最后一层将模型分成两个分支,而是在第一个transformer解码层之后解耦了序列预测和框回归。

TableMaster结构

知道了模型的结构了,那么模型的输入输出是什么呢?TableMaster输入就是表格图片,输出的维度为77500,然后把输出的序列特征reshape到49*500,输入到解码阶段。其中500是模型的序列长度,49为每个位置序列特征的维度。表格的类别标签有38个(如下图),再加上开始和结束两个标签,模型中用到的类别标签一共是41个。其中有两个