表格解析 概览

news2025/1/11 19:56:37

        表格解析发展至今,仍然是一项很年轻的研究领域,出现了大量解决方案,常用的技术包括:线检测、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后经过线性层

图像信息3Conv2d网络获得图像整体特征,单元格中心点采样作为图像特征。节点文本特征及潜在边位置信息输入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计算节点距离

缺陷:

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

2、线信息基本没用上

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

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

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

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

网上另一个的疑问

经过对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

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

评价:单元格检测+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}}|))}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

28130-13-4,Val-Val-Val,H2N-VVV-OH

As trileucine, trivaline self-assembles into monolayers on highly ordered pyrolytic graphite (HOPG).三缬氨酸在高度有序的热解石墨(HOPG)上自组装成单层。 编号: 179127中文名称: 三肽Val-Val-Val英文名: Val-Val-ValCAS号: 28130-13-4单字母: H2N-VVV-OH三字母: H2N-Va…

算法:栈和队列的设计

一 用两个栈实现队列 1.1 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1&a…

1 数据可视化简介

1.1 可视化释义 人眼是一个高带宽的巨量视觉信号输入并行处理器,最高带宽为每秒100MB,具有很强的模式识别能力,对可视符号的感知速度比对数字或文本快多个数量级,且大量的视觉信息的处理发生在潜意识阶段。其中的一个例子是视觉突…

SpringCloud2.0

一、网站架构演变过程 从传统架构(单体应用) 到 分布式架构(以项目进行拆分) 到 SOA架构(面向服务架构) 到 微服务架构 传统架构: 其实就是SSH或者SSM,属于单点应用,把整个业务模块都会在一个项目中进行开发,分为MVC架构&#…

pip install下载报网络错误、pip报错,以及module ‘serial‘ has no attribute ‘Serial‘报错

pip install下载报网络错误 下载pip install serial时报错如图:这是由于下载的pip官网是国外网站,下载速度会比较慢。 解决办法:从国内镜像去下载 ​ pip install serial -i https://pypi.tuna.tsinghua.edu.cn/simple或:sudo p…

虚拟化与云计算的区别

虚拟化和云计算之间的区别对于业务来说是至关重要和必要的。对于许多公司和专业人士来说,两者都是一样的。虽然云计算使用了虚拟化,但是虚拟化和云计算不是一回事。他们处理各种规模的 IT 挑战,并在对业务产生不同程度影响的不同范围内运作。…

工作很迷茫,是继续留在大城市打拼,还是回老家躺平呢?

你有没有面对这样的选择:是回到老家过一眼望到头的舒服简单的日子,还是趁年轻留在大城市拼一把,突破自己的舒适圈,挑战更多的可能性。你做了怎样的选择?你后悔吗? 什么样的人适合去大城市呢? 1、…

人脸表情识别 实战项目

一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion:2022.12.12 Last edited: 2022.12.12 目录 ​编辑 人脸表情识别 实战项目 简介 环境部署 数据准备 项目说明 传统方法 深度方法 网络设…

LeetCode 剑指 Offer 二叉树的最近公共祖先 | 解题思路分享

剑指 Offer 618 - II. 二叉树的最近公共祖先 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且…

基于Android的车位共享系统的设计

一、课题任务与目的 1. 课题背景 随着车辆越来越多,车位紧缺成为当前生活中最严重并且着急去解决的问题之一。本项目制作一款基于Android的车位共享系统用于缓解车位紧缺造成的压力。本次所开发的停车App是基于北京当前的交通状况为出发点的,让用…

Unity人工智能初学者指南

Unity人工智能初学者指南 使用 C# 在 Unity 游戏引擎中为游戏编写非玩家角色的实用指南 课程英文名:The Beginners Guide to Artificial Intelligence Unity 2022 此视频教程共13.5小时,中英双语字幕,画质清晰无水印,源码附件全…

Qt实现全局键盘事件监听器-Windows

Qt实现全局键盘事件监听器-Windows版🍇 文章目录Qt实现全局键盘事件监听器-Windows版🍇1、概述🍈2、实现效果🍉3、实现方式🍊4、关键代码🍋5、源代码🍌更多精彩内容👉个人内容分类汇…

分布式文件存储-FastDFS环境搭建

FastDFS简介 FastDFS是什么?我们这里可以看一下度娘的解释。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了…

grid布局 笔记

这次给大家带来的是grid布局,之前听说过但没接触过,一起来学一下吧,提升一下css认知。 1、开启方式 给父级盒子开启grid布局 display: grid2、gap 间隙 所有盒子的行列间隙为10px gap: 10px行/列 colomn-gap: 20px;row-gap: 15px注意&#…

java计算机毕业设计ssm迎新系统pv83c(附源码、数据库)

java计算机毕业设计ssm迎新系统pv83c(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项…

[MySQL]-压力测试之性能监测指标

[MySQL]-压力测试之性能监测指标 森格 | 2022年12月 本文主要是介绍在数据库的压测过程中,要时刻的一些指标,尤其是当数据库的性能达到瓶颈时,要注意哪个指标已经打满。 一、前文回顾 在前面量两篇文章中,分别介绍了两款压测数据…

数据标注过程中会遇到哪些难题 | 景联文科技

“近年来,⼈⼯智能发展迅速,影响着我们⽣活中的方方面面。随着⼈⼯智能应⽤场景不断增加,作为⼈⼯智能的上游基础⾏业,数据标注行业也快速发展,但许多不成熟的标注团队组织由于管理水平有限,且没有系统的标…

【C++笔试强训】第五天

文章目录选择题编程题选择题 在上下文和头文件均正常情况下,以下程序的输出结果是() int x 1; do{printf("%2d\n",x) }while(x--);A 1 B 无任何输出 C 2 D 陷入死循环 x1,x是后置,先使用,在加…

Python之路200个小例子网页版,真诚奉献,从一而终!

前言 历史两个月,利用所有业余时间,与朋友一起搜集、创作Python小例子,截止目前已超过200个例子: Python之路 1 简洁之美 2 Python绘图 3 Python动画 4 Python数据分析 5 Python机器学习 6 Python-GUI 一、Python基础 1…

Acrel-EIOT免调试抄表系统

安科瑞 华楠 一、远程抄表系统应用场景-互联网用户(能源参与者) 二、远程抄表系统互联网用户的痛点 2.1 数据系统价格偏高 一套系统需要前期勘察、画图、出方案、报价,建设投入服务器、网络布线、交换机,网关、人工施工及调试&…