常用的表格检测识别方法——表格结构识别方法(上)

news2024/12/23 17:25:42

第三章 常用的表格检测识别方法

3.2表格结构识别方法

 表格结构识别是表格区域检测之后的任务,其目标是识别出表格的布局结构、层次结构等,将表格视觉信息转换成可重建表格的结构描述信息。这些表格结构描述信息包括:单元格的具体位置、单元格之间的关系、单元格的行列位置等。

在当前的研究中,表格结构信息主要包括以下两类描述形式:1)单元格的列表(包含每个单元格的位置、单元格 的行列信息、单元格的内容);2)HTML代码或Latex代码(包含单元格的位置信息,有些也会包含单元格的内容)。

 与表格区域检测任务类似,在早期的表格结构识别方法中,研究者们通常会根据数据集特点,设计启发式算法或者使用机器学习方法来完成表格结构识别任务。

Itonori(1993)根据表格中单元格的二维布局的 规律性,使用连通体分析抽取其中的文本块,然后 对每个文本块进行扩展对齐形成单元格,从而得到 每个单元格的物理坐标和行列位置。

Rahgozar等人 (1994)则根据行列来进行表格结构的识别,其先 识别出图片中的文本块,然后按照文本块的位置以及两个单元格中间的空白区域做行的聚类和列的聚类,之后通过行和列的交叉得到每个单元格的位 置和表格的结构。

Hirayama等人(1995)则从表格线出发,通过平行、垂直等几何分析得到表格的行和列,并使用动态规划匹配的方法对各个内容块进 行逻辑关系识别,来恢复表格的结构。

Zuyev(1997) 使用视觉特征进行表格的识别,使用行线和列线以及空白区域进行单元格分割。该算法已经应用到FineReader OCR产品之中。

Kieninger等人(1998) 提出了T-Recs(Table RECognition System)系统,以 词语区域的框作为输入,并通过聚类和列分解等启 发式方法,输出各个文本框对应的信息,恢复表格 的结构。随后,其又在此基础上提出了T-Recs++系 统(Kieninger等,2001),进一步提升了识别效果。

Amano等人(2001)创新性地引入了文本的语义信息,首先将文档分解为一组框,并将它们半自动地 分为四种类型:空白、插入、指示和解释。然后根据 文档结构语法中定义的语义和几何知识,分析表示 框与其关联条目之间的框关系。

Wang等人(2004) 将表格结构定义为一棵树,提出了一种基于优化方 法设计的表结构理解算法。该算法通过对训练集中 的几何分布进行学习来优化参数,得到表格的结构。 同样使用树结构定义表格结构的还有Ishitani等人 (2005),其使用了DOM(Document Object Model) 树来表示表格,从表格的输入图像中提取单元格特 征。然后对每个单元格进行分类,识别出不规则的 表格,并对其进行修改以形成规则的单元格排布。

Hassan(2007)、Shigarov(2016)等人则以PDF文档为表格识别的载体,从PDF文档中反解出表格视 觉信息。后者还提出了一种可配置的启发式方法框架。

国内的表格结构识别研究起步较晚,因此传统的启发式方法和机器学习方法较少。

在早期,Liu等 人(1995)提出了表格框线模板方法,使用表格的 框架线构成框架模板,可以从拓扑上或几何上反映 表格的结构。然后提出相应的项遍历算法来定位和 标记表格中的项。之后Li等人(2012)使用OCR引擎抽取表单中的文本内容和文本位置,使用关键词 来定位表头,然后将表头信息和表的投影信息结合 起来,得到列分隔符和行分隔符来得到表格结构。

总体来说,表格结构识别的传统方法可以归纳为以下四种:基于行和列的分割与后处理,基于文本的检测、扩展与后处理,基于文本块的分类和后处理,以及几类方法的融合。

随着神经网络的兴起,研究人员开始将它们应用于文档布局分析任务中。后来,随着更复杂的架构的发展,更多的工作被放到表列和整体结构识别中。

  A Zucker提出了一种有效的方法CluSTi,是一种用于识别发票扫描图像中的表格结构的聚类方法。CluSTi有三个贡献。首先,它使用了一种聚类方法来消除表格图片中的高噪声。其次,它使用最先进的文本识别技术来提取所有的文本框。最后,CluSTi使用具有最优参数的水平和垂直聚类技术将文本框组织成正确的行和列。Z Zhang提出的分割、嵌入和合并(SEM)是一个准确的表结构识别器。M Namysl提出了一种通用的、模块化的表提取方法。

E Koci 提出了一种新的方法来识别电子表格中的表格,并在确定每个单元格的布局角色后构建布局区域。他们使用图形模型表示这些区域之间的空间相互关系。在此基础上,他们提出了删除和填充算法(RAC),这是一种基于一组精心选择的标准的表识别算法。

SA Siddiqui利用可变形卷积网络的潜力,提出了一种独特的方法来分析文档图片中的表格模式。P Riba提出了一种基于图的识别文档图片中的表格结构的技术。该方法也使用位置、上下文和内容类型,而不是原始内容(可识别的文本),因此它只是一种结构性感知技术,不依赖于语言或文本阅读的质量。E Koci使用基于遗传的技术进行图划分,以识别与电子表中的表格匹配的图的部分。

SA Siddiqui将结构识别问题描述为语义分割问题。为了分割行和列,作者采用了完全卷积网络。假设表结构的一致性的情况下,该方法引入了预测拼接方法,降低了表格结构识别的复杂性。作者从ImageNet导入预先训练的模型,并使用FCN编码器和解码器的结构模型。当给定图像时,模型创建与原始输入图像大小相同的特征。

SA Khan提出了一个鲁棒的基于深度学习的解决方案,用于从文档图片中已识别的表格中提取行和列。表格图片经过预处理,然后使用门控递归单元(GRU)和具有softmax激活的全连接层发送到双向递归神经网络。SF Rashid提供了一种新的基于学习的方法来识别不同文档图片中的表格内容。SR Qasim提出了一种基于图网络的表识别架构,作为典型神经网络的替代方案。S Raja提出了一种识别表格结构的方法,该方法结合了单元格检测和交互模块来定位单元格,并根据行和列预测它们与其他检测到的单元格的关系。此外,增加了结构限制的损失功能的单元格识别作为额外的差异组件。Y Deng 测试了现有的端到端表识别的问题,他还强调了在这一领域需要一个更大的数据集。

 Y Zou的另一项研究呼吁开发一种利用全卷积网络的基于图像的表格结构识别技术。所示的工作将表格的行、列和单元格划分。所有表格组件的估计边界都通过连接组件分析进行了增强。根据行和列分隔符的位置,然后为每个单元格分配行和列号。此外,还利用特殊的算法优化单元格边界。

为了识别表中的行和列,KA Hashmi [118]提出了一种表结构识别的引导技术。根据本研究,通过使用锚点优化方法,可以更好地实现行和列的定位。在他们提出的工作中,使用掩模R-CNN和优化的锚点来检测行和列的边界。

另一项分割表格结构的努力是由W Xue撰写的ReS2TIM论文,它提出了从表格中对句法结构的重建。回归每个单元格的坐标是这个模型的主要目标。最初使用该新技术构建了一个可以识别表格中每个单元格的邻居的网络。本研究给出了一个基于距离的加权系统,这将有助于网络克服与训练相关的类不平衡问题。

C Tensmeyer提出了SPLERGE(Split and Merge),另一种使用扩展卷积的方法。他们的策略需要使用两种不同的深度学习模型,第一个模型建立了表的网格状布局,第二个模型决定了是否可能在许多行或列上进行进一步的单元格跨度。

Nassar为表格结构提供了一个新的识别模型。在两个重要方面增强了PubTabNet端到端深度学习模型中最新的encoder-dual-decoder。首先,作者提供了一种全新的表格单元目标检测解码器。这使得它们可以轻松地访问编程pdf中的表格单元格的内容,而不必训练任何专有的OCR解码器。作者称,这种体系结构的改进使表格内容的提取更加精确,并使它们能够使用非英语表。第二,基于transformer的解码器取代了LSTM解码器。

S Raja提出了一种新的基于目标检测的深度模型,它被定制用于快速优化并捕获表格内单元格的自然对齐。即使使用精确的单元格检测,密集的表格识别也可能仍然存在问题,因为多行/列跨越单元格使得捕获远程行/列关系变得困难。因此,作者也寻求通过确定一个独特的直线的基于图的公式来增强结构识别。作者从语义的角度强调了表格中空单元格的相关性。作者建议修改一个很受欢迎的评估标准,以考虑到这些单元格。为了促进这个问题的新观点,然后提供一个中等大的进行了人类认知注释后的评估数据集。

X Shen提出了两个模块,分别称为行聚合(RA)和列聚合(CA)。首先,作者应用了特征切片和平铺,对行和列进行粗略的预测,并解决高容错性的问题。其次,计算信道的attention map,进一步获得行和列信息。为了完成行分割和列分割,作者利用RA和CA构建了一个语义分割网络,称为行和列聚合网络(RCANet)。

C Ma提出了一种识别表格的结构并从各种不同的文档图片中检测其边界的新方法。作者建议使用CornerNet作为一种新的区域候选网络,为fasterR-CNN生成更高质量的候选表格,这大大提高了更快的R-CNN对表格识别的定位精度。该方法只利用最小的ResNet-18骨干网络。此外,作者提出了一种全新的split-and-merge方法来识别表格结构。该方法利用一种新的spatial CNN分离线预测模块将每个检测表格划分为一个单元网格,然后使用一个GridCNN单元合并模块来恢复生成单元格。它们的表格结构识别器可以准确地识别具有显著空白区域的表格和几何变形(甚至是弯曲的)表格,因为spatial CNN模块可以有效地向整个表图片传输上下文信息。B Xiao假设一个复杂的表格结构可以用一个图来表示,其中顶点和边代表单个单元格以及它们之间的连接。然后,作者设计了一个conditional attention网络,并将表格结构识别问题描述为一个单元格关联分类问题(CATT-Net)。

Jain建议训练一个深度网络来识别表格图片中包含的各种字符对之间的空间关系,以破译表格的结构。作者提供了一个名为TSR-DSAW的端到端pipeline:TSR,通过深度空间的字符联系,它以像HTML这样的结构化格式生成表格图片的数字表示。该技术首先利用文本检测网络,如CRAFT,来识别输入表图片中的每个字符。接下来,使用动态规划,创建字符配对。这些字符配对在每个单独的图像中加下划线,然后交给DenseNet-121分类器,该分类器被训练来识别同行、同列、同单元格或无单元格等空间相关性。最后,作者将后处理应用于分类器的输出,以生成HTML表格结构。

H Li将这个问题表述为一个单元格关系提取的挑战,并提供了T2,一种前沿的两阶段方法,成功地从数字保存的文本中提取表格结构。T2提供了一个广泛的概念,即基本连接,准确地代表了单元格之间的直接关系。为了找到复杂的表格结构,它还构建了一个对齐图,并使用了一个消息传递网络。

实际场景应用中的表格结构识别,不仅要同时完成表格检测和结构识别,还要对每个单元格的文本进行识别和信息抽取,其流程比以上的研究领域都更为复杂。

参考文献:

Gao L C, Li Y B, Du L, Zhang X P, Zhu Z Y, Lu N, Jin L W, Huang Y S, Tang Z . 2022.A survey on table recognition technology. Journal of Image and Graphics, 27(6): 1898-1917.

M Kasem , A Abdallah, A Berendeyev,E Elkady , M Abdalla, M Mahmouda, M Hamada, D Nurseitovd, I Taj-Eddin.Deep learning for table detection and structure recognition: A survey.arXiv:2211.08469v1 [cs.CV] 15 Nov 2022

S A Siddiqui , M I Malik,S Agne , A Dengel and S Ahmed. DeCNT: Deep Deformable CNN for Table Detection. in IEEE Access, vol.6, pp.74151-74161, [DOI: 10.1109/ACCESS.2018.2880211]

T Shehzadi, K A Hashmi, D Stricker, M Liwicki , and M Z Afzal.Towards End-to-End Semi-Supervised Table Detection with Deformable Transformer.arXiv:2305.02769v2 [cs.CV] 7 May 2023

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

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

相关文章

子网掩码计算方法

子网掩码是用来划分网络的一种方式,它是一个32位的二进制数,用于将IP地址分成网络地址和主机地址两部分。子网掩码中的1表示网络地址,0表示主机地址。计算子网掩码的方式取决于需要划分的网络数量和主机数量。 以下是一些计算子网掩码的示例…

【LeetCode热题100】打卡第2天:两数相加

两数相加 ⛅前言 大家好,我是知识汲取者,欢迎来到我们的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练…

【2】tensorflow基本概念及变量函数

目录 1 tensorflow运行机制 1.1 搭建计算图模型 计算图的概念 计算图的使用 新建计算图 1.2 在会话中执行计算图 会话的启动方式 1.3 指定计算图的运行设备 2 tensorflow数据模型 2.1 认识张量及属性 张量的类型 张量的阶 2.2 张量类型转换和形状变换 张量类型转换 张…

TwinCAT ENI 数据详解

使用倍福TwinCAT工具可以生成ENI,先对ENI的cyclic frame数据进行解释说明 需要提前了解EtherCAT报文格式,可参考下面文章 EtherCAT报文格式详解_ethercat listtype 1_EtherCat技术研究的博客-CSDN博客https://blog.csdn.net/gufuguang/article/details/…

理解HAL_UARTEx_ReceiveToIdle_IT的工作过程

先只看没错误发生, 没开DMA时候的情况 将会面临3种结局, 收满数据时候IDLE正好发生, 数据发多了, 数据已经收满时候IDLE还没发生IDLE发生了数据没收满, 首先: 接收开始 主要的动作是 1. status UART_Start_Receive_IT(huart, pData, Size); 开始中断接口 2.…

【国产虚拟仪器】基于 ZYNQ 的电能质量系统高速数据采集系统设计

随着电网中非线性负荷用户的不断增加 , 电能质量问题日益严重 。 高精度数据采集系统能够为电能质 量分析提供准确的数据支持 , 是解决电能质量问题的关键依据 。 通过对比现有高速采集系统的设计方案 , 主 控电路多以 ARM 微控制器搭配…

1992-2022年经过矫正的夜间灯光数据

夜间灯光数据是我们在各项研究中经常使用的数据!我们平时使用的夜间灯光数据主要来源于NPP/VIIRS和DMSP/OLS两种渠道,我们之前也分享过这两种来源的夜间灯光数据,包括: 2012-2021年逐年的NPP/VIIRS夜间灯光数据2012-2021年逐月的…

MySQL查询性能优化之索引覆盖、索引下推、索引潜水、索引合并

索引覆盖 什么是索引覆盖 select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。 如何实现索引覆盖? 最常见的方法就是:将被查询的字段,建立到联合索引(如果只有一…

python---变量(2)

此处,首次使用“”对a进行设置值,也就是对a的初始化。 后续位置对a使用“”,实际上是对a赋值。 因此两行代码得到的结果显然是不同的! 变量的种类 1.整数-int-根据数据大小自动扩容 python中的变量类型不需要显示声明&#…

关于 arduino 中的 constrain(x, a, b)函数

当我们需要将一个变量的值限制在某个范围内时,可以使用 constrain(x, a, b) 函数来实现。该函数可以将参数 x 的值限制在区间 [a, b] 之间,如果 x 小于 a,则返回 a,如果 x 大于 b,则返回 b,否则返回 x。下面…

第五篇、基于Arduino uno,获取超声波(HC04)传感器的距离数据——结果导向

0、结果 说明:先来看看串口调试助手显示的结果,显示的是一个距离值,如果是你想要的,可以接着往下看。 1、外观 说明:虽然超声波传感器形态各异,但是原理和代码都是适用的。 2、连线 说明:只…

材料力学-剪力和弯矩方向规定及关系

剪力和弯矩的方向规定方法 对水平梁的某一指定截面来说, 剪力:在它左侧的向上外力,或右侧的向下外力,将产生正的剪力;反之,即产生负的剪力。 自己的记法(可以不按我的来)&#xff1…

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时之网络安全新总结

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时 网络安全新总结 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,是人工智能技术驱动的自…

ChatGPT在数据分析中的应用

最近,机器学习和人工智能技术在数据分析领域中发挥着越来越大的作用。而chatgpt正是这个领域最受欢迎的仿人聊天 AI 。但是,对于许多数据科学家和分析师来说,chatgpt并不是他们首选的工具。相反,pandas、sk-learn是数据科学家的最…

一起来聊聊ERP

聊聊ERP 哈喽,哈喽,大家好!今天开始,我们就来讲ERP了。 什么是ERP ERP是Enterprise Resource Planning 的缩写,中文含义是企业资源计划。它代表了当前在全球范围内应用最广泛、最有效的一种企业管理方法,…

JVM系列-第12章-垃圾回收器

垃圾回收器 GC 分类与性能指标 垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器,…

gym不渲染画面的解决方案(gym版本号0.26.2)

确认gym版本号 我安装了新版gym,版本号是0.26.2,不渲染画面的原因是,新版gym需要在初始化env时新增一个实参render_mode‘human’,并且不需要主动调用render方法,官方文档入门教程如下 import gym import numpy as n…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(第一章——FreeRTOS的基本框架)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。 注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

day15 Servlet-Request-Response

请求对象(request) **请求对象的作用:**封装了所有请求的数据,有服务器实现这个对象,我们直接调用sercive()方法 HttpServletRequest对象的常用方法 request请求方法描述request.getMethod()获得请求方式post\getre…

基于SpringBoot+Uniapp的微信小程序二手购物商城(用户手册+测试报告+详细设计文档)

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 这个微信小程序二手购…