【精华】表格结构识别模型研究进展

表格结构识别模型研究进展

合合信息:表格识别与内容提炼技术理解及研发趋势

OCR之表格结构识别综述

表格识别技术综述

用于表检测和结构识别的深度学习:综述

(1)PP-Structure

速度提升11倍,一键PDF转Word

PP-Structure工具包:PDF图片表格一键提取解决方案 - 飞桨AI Studio (baidu.com)

OCR表格识别

(2)TableMaster(PSENet + Master)

论文解读丨表格识别模型TableMaster

​ 此解决方案中把表格识别分成了四个部分:表格结构序列识别、文字检测、文字识别、单元格和文字框对齐。其中表格结构序列识别用到的模型是基于Master修改的,文字检测模型用到的是PSENet,文字识别用到的是Master模型。

在表格识别中,模型一般先回归出单元格的坐标,然后再根据单元格的坐标得到表格的行列信息。

  • 对于有表格线的场景,模型可以比较准确地获取单元格坐标,进而可以利用单元格坐标后处理得到行列信息。

  • 对于无表格线情况,通常难以直接得到单元格位置或表格线信息,这时通常需要利用模型训练的方式获取文字块的空间布局。

    例如在图模型中,常见的识别流程是先由OCR模型获取文字框的坐标和文字内容,然后结合视觉、位置、语义等多模态信息,并利用图网络来预测文字节点的行列属性,进而恢复出表格的结构。

  • 表格识别模型TableMaster中,提出了另外一种解决思路,即同时训练得到单元格内的文字块位置和表格结构。这里涉及到表格的另一种表达形式,这种形式在网页中经常被用到,也即用超文本标记语言来定义表格(如图1)。

​ TableMaster基于Master[2]模型进行了修改。Master是平安自研的文本识别模型, 其网络结构分为编码和解码两个部分。编码的网络结构借鉴ResNet的残差连接结构。和ResNet不同的是,Master的编码网络在每一个残差连接块之后接了一个多头通道注意力模块(Multi-Aspect GCAttention)

​ 编码阶段是整个Master网络的关键,其把一张图片转换成序列,使得可以用Transformer进行解码。在编码阶段输入的图片维度为:48*160*1,输出的维度为6*40*512,其中512就是模型的序列长度。编码阶段输出的序列特征再经过位置编码,输入到解码阶段。解码部分是由三个常规的Transformer 解码层组成

​ TableMaster特征提取模型也即编码结构和Master一致,和Master结构不同的地方在解码部分。TableMaster的解码部分相对于Master增加了一个分支:在经过一个Transformer层之后,TableMaster的解码部分分成两个分支。之后每个分支再接两个Transformer层,分别对应两个学习任务:单元格文字框的回归以及表格结构序列的预测。

​ TableMaster特征提取阶段输入图片的维度为480*480*3,输出的维度为7*7*500,然后把输出的序列特征reshape到49*500,输入到解码阶段。其中500是模型的序列长度,49为每个位置序列特征的维度。表格的类别标签有38个(如图5),再加上开始和结束两个标签,模型中用到的类别标签一共是41个。

1> 文字框定位和识别

在文字检测和识别阶段用到的文字检测模型为经典的PSENet[3]。文字识别用到的模型就是上文提到的Master。利用PSENet+Master模型组合,文字端到端的识别精度可以达到0.9885。

2> 还原完整的html

TableMaster网络输出的表格结构序列并不是最终的html序列。为了得到表格最终的html序列还需要在表格结构标记符中填充对应的文字内容,其流程如下:

img

​ 其中重要的一步就是单元格的匹配:根据单元格坐标和文字框坐标,把文字框坐标和单元格坐标进行对齐,然后就可以把对应文字框的识别内容填充到对应单元格的标记符序列中,从而得到最终的html文本。

文字框的对齐主要基于三个规则:

1、中心点规则,如果文字框的中心点在单元格框内,则把文字框相应的文字内容填充到对应的中;

2、IOU规则,在第一点不满足的情况下,计算和文字框具有最大IOU的单元格框作为匹配项;

3、距离原则,如果以上两点都不满足,则计算所有单元格和文字框的距离,选取距离最小的单元格框作为匹配项。

​ 通过序列化模型来进行表格结构的还原是一种有效的表格结构识别方法,类似的还有百度的RARE。和TableMaster不同的是,RARE把TableMaster中的Transformer换成了GRU。另外,该方法只利用了图像的视觉信息,后续工作中可以结合多模态特征得到更好效果。

(3)TableBank

TableBank: 表格检测和识别基准数据集(A Benchmark Dataset for Table Detection and Recognition)

1> 表格检测

img

2> 表格识别

img

3> 存在问题

无表格内容识别模块

(4)DAVAR-OCR

Paper:LGPMA:Complicated Table Structure Recognition with Local and Global Pyramid Mask Alignment11

GitHub:

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

  • https://github.com/hikopensource/DAVAR-Lab-OCR

表识别框架包含两个主要过程:单元格生成和结构推断:

  • 基于Mask-RCNN检测模型构建表格单元格生成。训练模型学习文本内容区域的行/列对齐的单元格级边界框及其对应的掩码。还引入了金字塔掩码监督,并采用大型骨干网络 HRNet-W48 Cascade Mask RCNN 来获得可靠的 bounding box。使用单行文本检测模型和一个基于注意的文本识别模型来提供OCR信息。这可以通过选择只包含单行文本的实例来实现。还采用了多尺度集成策略上对单元格和单行文本检测模型进一步提高性能。
  • 在结构推断阶段,根据单元格的对齐重叠程度,将单元格的包围盒进行水平/垂直连接。然后通过Maximum Clique Search过程生成行/列信息,在此过程中可以轻松定位空单元格。

(5)TSRFormer

TSRFormer:复杂场景的表格结构识别新利器

(6)Cycle-CenterNet

Cycle-CenterNet|ORC表单表格单元格结构识别 - openAI

(7)数据集

  • 如何把表格做成源代码
  • 《动手学OCR》系列课程之:文档分析实战-表格识别 - 飞桨AI Studio (baidu.com)
  • https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/ppstructure/table/README.md

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【软考备战·希赛网每日一练】2023年4月12日

文章目录 一、今日成绩二、错题总结第一题 三、知识查缺 题目及解析来源:2023年04月12日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 依据题目画出PERT图如下: 关键路径长度(从起点到终点的路径中最长的一条&…

递归算法_字符串反转_20230412

递归算法-字符串反转 前言 递归算法对解决重复的子问题非常有效,字符串反转也可以用递归算法加以解决,递归算法设计的关键是建立子问题和原问题之间的相关性,同时需要确立递归退出的条件;如果递归退出的条件无法确定&#xff0c…

说过的话就一定要办到 - redo日志

一、什么是redo日志? 如果我们只在内存的 Buffer Pool 中修改了页面,假设在事务提交后突然发生了某个故障,导致内存中的数据都失效了,那么这个已经提交了的事务对数据库中所做的更改也就跟着丢失了,这会导致事务会失去…

4.基于多目标粒子群算法冷热电联供综合能源系统运行优化

4.基于多目标粒子群算法冷热电联供综合能源系统运行优化《文章复现》 相关资源代码:基于多目标粒子群算法冷热电联供综合能源系统运行优化 基于多目标算法的冷热电联供型综合能源系统运行优化 考虑用户舒适度的冷热电多能互补综合能源系统优化调度 仿真平台:matl…

Segment Anything论文翻译,SAM模型,SAM论文,SAM论文翻译;一个用于图像分割的新任务、模型和数据集;SA-1B数据集

【论文翻译】- Segment Anything / Model / SAM论文 论文链接: https://arxiv.org/pdf/2304.02643.pdfhttps://ai.facebook.com/research/publications/segment-anything/ 代码连接:https://github.com/facebookresearch/segment-anything 论文翻译&…

性能测试,python 内存分析工具 -memray

Memray是一个由彭博社开发的、开源内存剖析器;开源一个多月,已经收获了超8.4k的star,是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。 Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配&#xf…

VR全景展示,VR全景平台,助理全景展示新模式

引言: VR全景展示是一种新型的展示方式,它利用虚拟现实技术和全景拍摄技术,使参观者可以身临其境地进入虚拟展览空间。这种展示方式不仅能够提供更加沉浸式的参观体验,还可以解决传统展览所面临的时间和地域限制等问题。 VR全景展…

测试工具之JMH详解

文章目录 1 JMH1.1 引言1.2 简介1.3 DEMO演示1.3.1 测试项目构建1.3.2 编写性能测试1.3.3 执行测试1.3.4 报告结果 1.4 注解介绍1.4.1 BenchmarkMode1.4.2 Warmup1.4.3 Measurement1.4.4 Threads1.4.5 Fork1.4.6 OutputTimeUnit1.4.7 Benchmark1.4.8 Param1.4.9 Setup1.4.10 Te…

leetcode 812. 最大三角形面积

题目 给你一个由 X-Y 平面上的点组成的数组 points ,其中 points[i] [xi, yi] 。从其中取任意三个不同的点组成三角形,返回能组成的最大三角形的面积。与真实值误差在 10-5 内的答案将会视为正确答案。 示例 1: 输入:points [[…

ActiveReportsJS 4.0 FIX ActiveReportsJS 4.0 Crack

JavaScript 报告工具是一组用于数据整合和可视化的 Web 组件。ActiveReportsJS 是前端开发人员用来在 Web 应用程序中嵌入报告的解决方案。报表设计器和查看器组件、强大的数据可视化器和丰富的 API 等主要功能使 ActiveReportsJS 成为行业领导者。 JavaScript 报告引擎 利用强…

Spark SQL join操作详解

一、 数据准备 本文主要介绍 Spark SQL 的多表连接,需要预先准备测试数据。分别创建员工和部门的 Datafame,并注册为临时视图,代码如下: val spark SparkSession.builder().appName("aggregations").master("lo…

Python进阶内容--迭代器和生成器

什么是迭代器 在 Python 中,迭代器(Iterator)是一个访问集合元素的对象,它能够实现遍历集合的所有元素,而无需了解集合底层结构和细节。Python 中所有可迭代的对象(如 列表、元组、字符串、字典、集合等&a…

leetcodeTmp

文章目录 39. 组合总和33. 搜索旋转排序数组153. 寻找旋转排序数组中的最小值49. 字母异位词分组53. 最大子数组和55. 跳跃游戏56. 合并区间62. 不同路径 39. 组合总和 39. 组合总和 DFS排列&#xff1a;每个元素可选0次&#xff0c;1次以及多次 public List<List<Int…

元宇宙:虚拟仿真技术的全面提升

在当今数字化的世界中&#xff0c;我们经常听到虚拟现实、增强现实、混合现实等技术的名词&#xff0c;这些技术的应用越来越成熟。其中&#xff0c;虚拟仿真技术是一种通过计算机技术来模拟实际场景和对象的过程&#xff0c;它为我们提供了更多的可能性。而最近备受瞩目的元宇…

加密的本质:数学的不对称性

文章目录 引言I 预备知识1.1 加密和授权1.2 非对称的特性II 椭圆曲线加密的方法2.1 椭圆曲线2.2 椭圆曲线的性质引言 不对称有时却自有其妙处与美感,比如黄金分割就是不对称的。 可以通过加密和授权,兼顾保护信息不外泄,而且某些得到授权的人还能使用信息。 I 预备知识 …

亚马逊云科技为全球的可持续发展进程做出贡献

可持续发展是一个涉及经济、环境和社会三个方面的复杂问题。经济发展必须在保护环境和社会公正的前提下进行&#xff0c;这样才能实现真正的可持续发展。为了实现这一目标&#xff0c;人们需要借助技术手段&#xff0c;更好地理解和解决环境和社会问题。 亚马逊云科技是全球领…

(大数据开发随笔9)Hadoop 3.3.x分布式环境部署——全分布式模式

索引 完全分布式模式守护进程布局集群搭建准备总纲配置文件格式化集群启动集群 集群控制命令集群启停进程查看启动日志查看集群常见问题 案例演示&#xff1a;WordCount 完全分布式模式 分布式文件系统中&#xff0c;HDFS相关的守护进程也分布在不同的机器上&#xff0c;如&am…

tp5实现导入excel表到数据库

hello&#xff0c;大家好&#xff0c;好长时间没有更新文章了。最近一直在忙着做项目。所以断更了。 那么好&#xff0c;各位老铁是否想要实现导入导出的功能 请关注我&#xff0c;解密如何实现导入导出&#xff0c; 那么今天先来讲一下用thinkphp5.0 如何实现Excel表格导入数据…

js 事件流程

描述 JavaScript 的执行是单线程的&#xff0c;后面的任务需要等待前面的任务完全完成后&#xff0c;再去执行。DOM 事件&#xff08;文件的加载等&#xff09;、定时器、网络请求等事件&#xff0c;并不会消耗 CPU&#xff0c;这些事件无需等候&#xff0c;所以出现了异步。主…

【Unity VR开发】结合VRTK4.0:创建一个按钮(Option Button)

语录&#xff1a; 如同天上降魔主&#xff0c;真是人间太岁神。 前言&#xff1a; 选项按钮是一种提供多项选择选项的方法&#xff0c;其中只有一个按钮可以处于激活状态&#xff0c;激活另一个按钮时将确保组中的所有其他按钮都已停用。我们可以使用嵌套在预制件中的预制件来实…