表格解析 概览
创始人
2024-04-22 01:09:26
0

        表格解析发展至今,仍然是一项很年轻的研究领域,出现了大量解决方案,常用的技术包括:线检测、box检测、分割、多模态融合、GCN、img2seq。以下按我的理解梳理一下表格解析各个流派,从中了解这项任务背后所采用的技术。在实际生产中,往往需要根据场景定制化多个模型进行堆叠以达到预期效果。

注意:以下的流派是按个人理解划分。

目录

流派一:精确定位行列(线定位、行列定位)

2017 DeepDeSRT

2019 UnetTable (腾讯)

2019 TableNet

2019 DeepTabStR

table-ocr/ table-detect

流派二:分割到最小粒度再合并

2019 SPLERGE(庖丁)开源

2021 SEM(icdar2021综合第三名,复杂表格第一名)未开源

流派三:单元格回归

(流派1+3):2020 CascadeTabNet 开源

2021 LGPMA(海康,icdar21top1) 开源

2021 Cycle-CenterNet

2021 CDeCNet (好未来表格大赛第二名)开源

流派四:GCN

方法一:GFTE 开源

TIES 开源

2020 TabStructNet 开源

2021 TGRNet 开源

流派五:img2seq图片描述+单元格回归

2021 TableMASTER(平安产险,icdar21top3,好未来表格大赛第一名)开源

2021.8.3RARE(百度paddlepaddle) 开源

2021 Maskrcnn+img2seq(好未来,icdar21top6)

流派六:端到端

Team: Kaen Context, Kakao Enterprise(韩国)

数据集

大厂技术

赛事

Icdar2021比赛排名

好未来表格识别大赛

评估方法:TEDS树距离


流派一:精确定位行列(线定位、行列定位)

2017 DeepDeSRT

《DeepDeSRT:Deep Learning for Detection and Structure Recognition of Tables in Document Images》

Faster RcNN+FCN对行列分割检测,由行列交叉确定表格结构

评价:类似腾讯UnetTable

2019 UnetTable (腾讯)

分割可见横线、可见竖线、不可见横线、不可见竖线。卷积核用1*5和5*1替代了常见的3*3。

评价:假设行列单元格文本宽高不一致时,不可见线分割效果并不好,对数据要求较高。现在主流的做法也是定位文本位置而不是行列间线位置。

2019 TableNet

分割出表格的mask和列的mask

评价:显而易见,不适用于复杂表格、合并单元格。如果场景不复杂,用定位框的水平重叠占比也能获得整列的区域信息。但如果有倾斜、纸张变形或者两列的文本容易定位到同一个box的情况,列分割还是有意义的。

2019 DeepTabStR

《DeepTabStR: Deep Learning based Table Structure Recognition》

Deepstr(见上)+变形卷积

table-ocr/ table-detect

代码:https://github.com/chineseocr/table-ocr

GitHub - Rid7/Table-OCR: Recognize tables from images and restore them into word.

u-net提取线

流派二:分割到最小粒度再合并

2019 SPLERGE(庖丁)开源

《Deep Splitting and Merging for Table Structure Decomposition》

代码:GitHub - CharlesWu123/SPLERGE: Deep Splitting and Merging for Table Structure Decomposition

Splurge=split+merge

Split网络切分最细粒度单元格,预测横线和竖线的位置

Merge网络将split结果进行合并

Projection pooling 替代n*n池化,提取行列的分隔信息

评价:可处理无线表,不适用于太倾斜的表

2021 SEM(icdar2021综合第三名,复杂表格第一名)未开源

Split, embed and merge: An accurate table structure recognizer

Sem类似splerge思想,先得到最细粒度的单元格,再进行合并

Split分割出整行整列的分隔符获取网格化表格

ROIAlign+BERT获取每个网格的图像+语义特性

GRU预测merge关系进行合并

评价:用了多模态信息,最小粒度再合并

流派三:单元格回归

(流派1+3):2020 CascadeTabNet 开源

code: https://github.com/DevashishPrasad/CascadeTabNet

端到端方法,带分类的检测,同时检测有线表及无线表,两者不同处理流程

有线表:基于膨胀腐蚀检测线

无线表:检测单元格内文本框

评价:分情况处理,有线表线检测,无线表单元格位置

2021 LGPMA(海康,icdar21top1) 开源

海康威视OCR/表格识别开源 - 腾讯云开发者社区-腾讯云

https://github.com/hikopensource/DAVAR-Lab-OCR/tree/main/demo/table_recognition/lgpma

LGPMA=LPMA+GPMA

局部单元格粒度LPMA:分割单元格文本区域、水平对齐、垂直对齐

全局整张图像粒度GPMA:单元格区域和非单元格区域的二分类mask、全局学习整张图上的非空单元格的水平和垂直对齐的soft mask

HRNet-W48 Cascade Mask RCNN

多尺度集成

3*2=6头多任务学习

评价:分别学习了文本和单元格的6头信息,大量分割网络叠加

2021 Cycle-CenterNet

中心点及顶点检测+中心点和顶点配对

评价:关键点检测及匹配

2021 CDeCNet (好未来表格大赛第二名)开源

dewarp+cascade Mask R-CNN+可变形卷积+dbnet

分别分割出表格体和单元格,规则排序单元格,求跨行跨列属性,dbnet检测文本。好未来有个ppt介绍好未来表格识别技术挑战赛,有具体方案介绍

GitHub - mdv3101/CDeCNet: CDeC-Net: Composite Deformable Cascade Network for Table Detection in Document Images

流派四:GCN

方法一:GFTE 开源

GFTE:Graph-based Financial Table Extraction基于图的金融表格提取

技术介绍:GFTE:Graph-based Financial Table Extraction_bigdreamerxz的博客-CSDN博客

GCN常用数据集- SciTSR介绍 - 简书

GFTE:Graph-based Financial Table Extraction | 码农家园

代码

https://github.com/Irene323/GFTE

注意: 虽然下文详细介绍了这个算法,但实际测试效果不佳,可跳过这部分

流程为:

a)获取多模态特征,包括图像、文本、坐标。

基于ocr获取文字的切片,从而获得文本及坐标信息。对整张图像进行卷积,使用F.grid_sample函数在每个切片的中心进行图像特征采样。

坐标信息:归一化坐标、中心点、宽高作为节点坐标特征。节点坐标特征及潜在边位置信息输入2层图卷积,cat后经过线性层

文本信息:文本信息通过词表编码,经过nn.embedding后输入GRU模块,作为节点文本特征。节点文本特征及潜在边位置信息输入2层图卷积,cat后经过线性层

图像信息:3层Conv2d网络获得图像整体特征,单元格中心点采样作为图像特征。节点文本特征及潜在边位置信息输入2层图卷积,cat后经过线性层

b)使用torch_geometric.transforms.KNNGraph函数进行KNN,获得每个节点最邻近的N个节点,从而减少这些节点之间的潜在边,降低计算复杂度。

c)聚合潜在边两端节点的多模态特征,作为边的特征,对这些边进行分类,判断同行、同列、无关。这个算法预测的是同行同列,不是最邻近的节点。同行同列可以分开训练模型。

        定位和文本信息有用,图像微乎其微。个人理解是从32*32的图像特征中采样一个中心点特征作为图像特征,包含信息太少了,用整个区域的均值用处可能还大一点,用kernel加粗的线条也没用到。   

torch_geometric.transforms.KNNGraph介绍

torch-geometric:torch_cluster库knn_graph函数详解_噢啦啦耶的博客-CSDN博客

knn获得的边默认邻居节点位置在前,可使用cosine计算节点距离

缺陷:

1、Knn限制,列间距大的可能不在top中,水平关系检测能力弱于垂直关系检测

2、线信息基本没用上

3、检测的是同行、同列关系,不是邻接关系,还需要后处理筛选

4、从同行、同列关系反推结构复杂

5、准确率很一般,只有90%,非常规整的表格也检测错误,90%只是针对同行同列判断

        复现用了开源代码和数据集后,效果不理想,最奇怪的是经过图卷积后,得到了N维完全一致的数据,N为cell数量。

网上另一个的疑问

“经过对GFTE代码的复现之后,通过GCN进行训练,发现每次训练几乎所有预测都集中在最多分类的边上,比如预测为0的边有10000条,预测为1的边有300条,那么预测值就都是0,这导致了看起来准确率很高,但是完全不可用的情况。”

评价:GCN学习单元格同行同列关系,开源代码效果不好,只能获得局部连接信息,knn下行关系容易丢失

TIES 开源

《Rethinking Table Recognitionusing Graph Neural Networks》

GitHub - shahrukhqasim/TIES-2.0: Code for: S.R. Qasim, H. Mahmood, and F. Shafait, Rethinking Table Recognition using Graph Neural Networks (2019)

基于GCN预测单元格邻接关系(同行、同列、同单元格),采用蒙特卡洛采样

评价:GCN学习邻接关系,同GFTE类似

2020 TabStructNet 开源

GitHub - gds101054108/TabStructNet

Tabstructnet=Maskrcnn+GCN(TIES)

Maskrcnn自顶向下单元格检测

GCN自底向上获取单元格之间的行列关系矩阵(行邻接矩阵+列邻接矩阵),从而得到始末行列信息

评价:单元格检测+GCN学习单元格关系矩阵

2021 TGRNet 开源

https://github.com/xuewenyuan/TGRNet

TGRNet=语义分割+GCN

分割得到单元格区域,得到空间坐标。基于图像和坐标特征构建图,通过2路GCN来分别学习行列特征进行序列分类,得到逻辑坐标(第几行,第几列的意思?)

评价:单元格检测+GCN学习逻辑坐标

流派五:img2seq图片描述+单元格回归

2021 TableMASTER(平安产险,icdar21top3,好未来表格大赛第一名)开源

GitHub代码链接:GitHub - JiaquanYe/TableMASTER-mmocr: 2nd solution of ICDAR 2021 Competition on Scientific Literature Parsing, Task B.

介绍:重磅开源!平安产险提出TableMASTER:表格识别大师 - 腾讯云开发者社区-腾讯云

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

        采用多任务学习的模式,同时进行表格结构序列预测img2seq以及单元格位置回归box regression,最后通过后处理匹配算法,融合表格结构序列和单元格文本内容。

        统计数据集后将模型最大输出序列长度定为500(预测的单元格数量远小于500),并设计了39+2(开始符、结束符)个类别标签。

表格结构识别+单元格回归:基于master识别算法改进的双流结构,“为了使表格序列预测的长度与回归单元格的数目对齐,在训练时会把单元格位置回归分支中非单元格的地方Mask掉,不算入bbox回归损失。”

文本定位:PSENET

文本识别:master

Cell聚合方式:Center Point RuleIOU Rule,以及Distance Rule

评价:整体表格描述+单元格位置,和百度的做法基本一致,区别在于1)rare用了GRU,tableMASTER用了Transformer 2)双分支结构细节差别

2021.8.3RARE(百度paddlepaddle) 开源

GitHub Star 13.9k,顶级项目全新开源表格识别算法_风度78的博客-CSDN博客

    基于yolov2检测技术对文档图片中的文本、表格、图片、标题与列表区域进行分类(即版面分析)。同时还可以利用RARE图像描述技术进行表格识别,完整地提取表格结构信息,使得表格图片变为可编辑的 Excel 文件。具体结构看我的另一篇单独介绍rare的文章。

      Rare最早是做ocr的,和平安tablemaster的master最早做ocr异曲同工

评价:整体表格描述+单元格位置

2021 Maskrcnn+img2seq(好未来,icdar21top6)

分成分割和图片描述2个方案,然后用一套规则,选取最好的结果

Maskrcnn:五个基于Mask RCNN的检测模型,分别检测表头/表体检测,表格行检测,表格列检测,单元格检测,文本行检测。用了不同的优化器。

Img2seq: 按照文本检测的结果来对每个单元格中的内容进行编号,然后采用CNN对图像进行编码,采用transformer来解码得到表格结构。之后将相应的文本行识别的内容填进去。

评价:5头分割+1种比较特殊的img2seq。有点海康+图片描述2条线走的意思。

流派六:端到端

Team: Kaen Context, Kakao Enterprise(韩国)

12层只有解码的线性transformer,输出是HTML序列

将原始输入图像展开成(N,8*8*3)的序列,将图像进行线性映射为512维,目标HTML进行embedding为512维度。将两个512维度的信息拼接起来,并用位置编码进行区分,得到一个‘图像-文本序列’

Inference: The outputs of our model are sampled with beam search (beam=32).

评价:怪怪的,前面像vit,训练输入是图像文本,推理输入是啥。未出现在最终的排名榜上,但出现在了icdar的paper里,资料很少,属于比较稀有的一种方案。

数据集

Marmot、UW3、UNLY、ICDAR 2013、ICDAR 2019、PubTabNet、SciTSR(标注质量较差)、TableBank、FinTab

PubTabNet数据集包含500k训练数据+9k验证数据, https://github.com/ibm-aur-nlp/PubTabNet

大厂技术

百度:表格文字识别,文本全字段识别,快速响应,免费试用-百度AI开放平台

腾讯:文字识别 OCR_ 图片文字识别_图片文字智能识别-腾讯云。

阿里:读光

赛事

Icdar2021比赛排名

ICDAR 2021 Competition on Scientific Literature Parsing

Team Name

TEDS Simple

TEDS Complex

TEDS all

Davar-Lab-OCR

VCGroup
XM
YG

DBJ
TAL

PaodingAI

anyone

LTIAYN

97.88

97.90

97.60

97.38

97.39

97.30

97.35

96.95

97.18

94.78

94.68

94.89

94.79

93.87

93.93

93.79

93.43

92.40

96.36

96.32

96.27

96.11

95.66

95.65

95.61

95.23

94.84

Davar-Lab-OCR团队,来自海康,

VCGroup团队,来自平安,

TAL团队,来自好未来

PaodingAI团队,来自庖丁

百度RARE在代码库中提供的PubTabNet数据集用TEDS评分,得分93.32

好未来表格识别大赛

第一名:tablemaster

第二名:CDeCNet

第三名:ResNext分割表格线及单元格+单元格关系分类(同行左邻、同行右邻、同列左邻、同列右邻)+yolov5s进行单元格分类(插图、手写、空白)+Faster Rcnn检测插图

评估方法:TEDS树距离

Tree edit distance: Robust and memory-efficient. Infor-mation Systems ,2016年

       插入和删除成本为1。用节点ns替代no时,如果两个节点有一个不是td,成本为1;如果都是td,但行列范围不一致,即指向的区域不一致时,成本为1;否则成本为归一化的 Levenshtein 相似度。下式分母||为求叶子结点数量操作。

TEDS(^{T_{a}},^{T_{b}})=1-\frac{EditDist(^{T_{a}},^{T_{b}}))}{max(|^{T_{a}}|,|^{T_{b}}|))}

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...