点击领取AI产品100元体验金,助力开发者高效工作解决文档难题:
引言:
表格是各类文档中常见的对象,其结构化的组织形式方便人们进行信息理解和提取。表格的种类根据有无边框可以划分有线表、少线表、无线表。表格样式复杂多样,如存在背景填充、光照阴影、单元格行列合并等情况。大数据时代存在大量电子文档,应用表格识别技术能够减少表格处理时间,因此表格识别是文档理解领域的重要研究课题,也是合合信息这几年的技术突破点方向之一。
表格识别主要包括表格检测和表格结构识别两个子任务。表格检测主要检测表格主体,即样本中表格区域。表格结构识别是对表格区域进行分析,提取表格中的数据与结构信息,得到行列分布与逻辑结构。未经特殊说明,以下表格识别专指表格结构识别。
研究现状与解决方案:
近年来,国内外专家学者对表格识别进行了大量研究,取得了丰富的研究成果。下面主要从传统图像处理方法和深度学习这两个方面做具体阐述。
传统方法:传统的表格识别工作是基于一些启发式的规则和图像处理方法,主要利用表格线或者文本块之间的空白分隔区域来确定单元格区域,通过腐蚀、膨胀,找连通区域,检测线段、直线,求交点,合并猜测框等。有自顶向下的方法(先检测表格区域,再不断对表格区域进行切割拆分得到单元格区域);还有自底向上的方法(先检测文本块,找到可能的表格线以及这些线的交点,确定单元格后还原出表格区域)
1、 OpenCV-检测并提取表格[1]
这是一种自顶向下的方法,先对图像进行二值化,然后使用霍夫变换,检测其中的直线,并在直线中,找到围成的一个矩形区域,最后将这块区域提取出来。作者主要使用了四步操作:1、处理图像,灰度化,二值化。在灰度图的基础上运用adaptiveThreshold来达成自动阈值的二值化,取代Canny,这个算法在提取直线和文字比Canny有更好的效果 2、利用OpenCV里面的形态学函数,腐蚀erode膨胀dilate 3、交叉横纵线条,对点进行定位,通过bitwise_and函数获得横纵线条的交点,通过交点对表格区域进行提取 4、判断区域是否为表格。虽然此方法可以相对完整的识别图片中的表格,但也存在几个问题:1、图片倾斜不易识别 2、图片背景复杂会干扰识别 3、少线表情况,表格只有上下两条线的时候如何判断
2、pdfplumber解析表格[2]
pdfplumber是一款完全用python开发的pdf解析库,对于全线表,pdfminer能够实现较好的抽取效果,但对于少线表和无线表,效果就差了很多。下面介绍pdfplumber中的表格抽取流程,这是一种自底向上的方法,首先找到可见的或猜测出不可见的候选表格线;然后根据候选表格线确定它们的交点;接着根据得到的交点,找到围成它们的最小单元格;最后把连通的单元格进行整合,生成检测出的表格对象。在表格生成的过程中,利用单元格的bbox坐标(四个角的坐标)判断单元格是否属于当前表格;同时对表格的左上角坐标进行排序,过滤掉小表格。
3、camelot表格抽取[3]
camelot是一个可以从可编辑的pdf文档中抽取表格的开源框架,与pdfplumber相比,其功能完备性差了点,除了表格抽取之外,并不能用它从pdf文档中解析出字符、单词、文本、线等较为低层次的对象。camelot支持两种表格抽取模式:
一、lattice线框类表格抽取,步骤如下:1、pdf转图像 2、图像处理算法检测出水平方向和竖直方向可能用于构成表格的直线 3、根据检测出的直线,生成可能表格的bounding box 4、确定表格各行、列的区域 5、根据各行、列的区域,水平、竖直方向的表格线以及页面文本内容,解析出表格结构,填充单元格内容,最终形成表格对象。
二、stream少线框类表格抽取,步骤如下:1、通过pdfminer获取连续字符串 2、通过文本对齐的方式确定可能表格的bounding box 3、确定表格各行、列的区域 4、根据各行、列的区域以及页面上的文本字符串,解析表格结构,填充单元格内容,最终形成表格对象。
4、T-recs[4]
这是一种自底向上的方法,核心思想是对文本块区域进行聚类。步骤如下:1、从文本块中选择种子点 2、在种子点上下各一行分别去找与该种子点文本块之间是否水平方向有重合,如果有重合则将相应文本块和种子点块归到一起,并作为新的种子点 3、重复第1、2步,不断找与之水平方向有重合的文本块,直到所有的文本块都不能再合并下去。此方法也存在诸多局限:1、表头是跨单元格的,表头下面的文本块会被全部合并到一起 2、有时候上下几行文本确确实实是对齐的,但是和左右文本区域比较近,这种本不能分开的区域被错误的分开了 3、孤立的文本块会被切分成单独块。 因此,本方法后面大部分工作是针对这三种局限设定后处理规则,该方法认为表格之所以是表格是由文本块的分布决定的,而与分割带无关。加入后处理规则之后该方法方法具有较好的通用性,无论是对与PDF文档还是OCR的结果,都有比较好的效果。
深度学习方法:近年来人工智能技术飞速发展,研究人员将CV,NLP和图神经等成熟方法应用在表格识别任务中,取得很多不错的成果。深度学习表格识别主流方法包括语义分割,目标检测,序列预测和图神经等,下面我们对这些工作分别进行介绍。
1. 语义分割方法:
1.1 Rethinking Semantic Segmentation for Table Structure Recognition in Documents[5]
本文将表格结构的识别定义为语义分割问题,使用FCN网络框架,对表格的

本文概述了表格识别的最新进展,从传统图像处理方法到深度学习的深度学习方法,如OpenCV、pdfplumber、camelot和深度学习模型(如FCN、Mask-RCNN、Transformer)。着重介绍了深度学习在表格检测、语义分割、目标检测和图神经网络等方面的应用,以及存在的局限性和未来发展方向。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



