掌桥专利:专业的专利平台
掌桥专利
首页

表格识别、文档获取方法和存储介质

文献发布时间:2023-06-19 19:27:02


表格识别、文档获取方法和存储介质

技术领域

本发明属于图像处理技术领域,具体提供一种表格识别、文档获取方法和存储介质。

背景技术

随着数字化时代的发展,每天都有通过电子设备所采集的、大量的文档图像数据进行上传,因此从原始文档图像中快速、准确地提取文档信息的需求不断扩大。在文档中,通过表格表示信息是最常用、最有效的方式之一,各种表格结构被广泛地应用于金融、行政、研究等领域。因此,自动识别表格结构和信息是通过图像处理进行文档分析的重要研究方向。

然而,在通过图像识别获取表格信息中面临诸多难题,例如,表格外观结构存在差异,有些表格有表格线,而有些表格完全没有表格线,或者有些表格有少量的表格线。又如,表格区域在图像中的分布区域不尽相同,有些表格在文章段落中,有些整页为一个表格,有些周围有非常多的背景,有效的表格区域仅占很小的位置。这些都给表格识别带来了巨大的挑战。因此,需要一种识别准确、鲁棒性好的日常场景表格图像结构化识别方法。

相应地,本领域需要一种新的方案来解决上述问题。

发明内容

本发明旨在解决上述技术问题,即如何准确地识别图像中不同位置、不同外观结构的表格的问题。

在第一方面,本发明提供一种表格识别方法,所述方法包括:

获取待识别表格图像中的文本行的文本行信息;

获取所述待识别表格图像中的表格区域,所述表格区域包括多框线表格区域、少框线表格区域、无框线表格区域中至少一种;

获取所述待识别表格图像中的表格框线前景图和表格文本前景图;

根据所述表格框线前景图,提取所述表格区域的表格框线结构;

根据所述表格文本前景图,提取所述表格区域的表格文本结构;

根据所述表格框线结构和所述表格文本结构,并结合所述表格区域,得到识别完成的表格。

在上述表格识别方法的一个实施方式中,所述文本行信息至少包括文本行位置、单字内容和单字位置,“获取待识别表格图像中的文本行的文本行信息”的方法包括:

通过文本检测模型获取所述待识别表格图像中的所述文本行的所述文本行位置;

根据所述文本行位置,从所述待识别图像中裁剪出文本行图像;

通过文字识别模型获取所述文本行图像中的每个单字所对应的所述单字内容和所述单字位置。

在上述表格识别方法的一个实施方式中,“获取所述待识别表格图像中的表格区域”的方法包括:

通过训练好的表格区域检测模型获取所述表格区域;

通过已完成区域标注的样本图像训练所述表格区域检测模型,其中,所述区域标注包括表格类别和位置标注,所述表格类别包括多框线表格、少框线表格、无框线表格中至少一种,所述位置标注为包含所述表格区域的外接矩形;

所述表格区域检测模型为YOLO网络、Faster R-CNN网络、SSD网络中的一种。

在上述表格识别方法的一个实施方式中,“根据所述表格框线前景图,提取所述表格区域的表格框线结构”的方法包括:

通过形态学操作获取所述表格框线前景图中的横向轮廓线和纵向轮廓线,其中,所述横向轮廓线和所述纵向轮廓线相交的点为交点,所述横向轮廓线的起始点/终止点和所述纵向轮廓线的起始点/终止点统称为端点;

获取所述交点和所述端点在所述横向轮廓线的方向和所述纵向轮廓线的方向的四向连接索引;

根据所述横向轮廓线、所述纵向轮廓线和所述表格区域,得到表格候选区域;

对所述表格候选区域内的所述横向轮廓线和所述纵向轮廓线进行排序,得到第一横向轮廓线序号和第一纵向轮廓线序号;

根据横向轮廓线偏差阈值和纵向轮廓线偏差阈值,分别对所述第一横向轮廓线序号和所述第一纵向轮廓线序号进行合并和更新,得到第二横向轮廓线序号和第二纵向轮廓线序号;

根据所述横向轮廓线、所述纵向轮廓线、所述第二横向轮廓线序号和所述第二纵向轮廓线序号,得到轮廓点图;

根据所述四向连接索引,连接所述轮廓图中的点,得到所述表格框线结构。

在上述表格识别方法的一个实施方式中,“根据所述表格文本前景图,提取所述表格区域的表格文本结构”的方法包括:

根据所述文本行位置,确定所述表格区域中的表格行;

获取所述表格行中的列切分候选点,所述列切分候选点包括头切点和尾切点;

根据所述列切分候选点,得到虚拟切分线,其中,所述虚拟切分线包括头虚拟切分线和尾虚拟切分线,所述头虚拟切分线根据所述头切点连接得到,所述尾虚拟切分线根据所述尾切点连接得到;

对所述虚拟切分线进行可信度判断,得到可信虚拟切分线;

根据所述可信虚拟切分线,得到虚拟无线表格列线;

根据相邻的两个所述表格行,得到虚拟无线表格行线;

根据所述虚拟无线表格列线、所述虚拟无线表格行线和所述文本行信息,得到所述表格文本结构。

在上述表格识别方法的一个实施方式中,“根据所述文本行位置,确定所述表格区域中的表格行”的方法包括:

获取第一文本行和第二文本行在垂直方向上的重叠比例,所述第一文本行和所述第二文本行为所述表格区域中的任意两个所述文本行;

当所述重叠比例大于重叠比例阈值时,则判定所述第一文本行和所述第二文本行属于同一个所述表格行;

将所述表格行内所包含的所述文本行进行排序,并建立文本行索引。

在上述表格识别方法的一个实施方式中,所述头切点又包括文本行端部头切点和文本行中间头切点,所述尾切点又包括文本行端部尾切点和文本行中间尾切点,“获取所述表格行中的列切分候选点”的方法包括:

在所述文本行起始字符的左侧插入所述文本行端部头切点;

在所述文本行结束字符的右侧插入所述文本行端部尾切点;

根据所述单字内容或所述单字位置在所述文本行中的插入所述列切分候选点;

将所述表格行内所包含的所述列切分候选点进行排序,并建立列切分候选点索引;

“根据所述单字内容或所述单字位置在所述文本行中的插入所述列切分候选点”的方法包括:

获取选定单字与该选定单字左侧相邻单字之间的第一单字距离,

获取该选定单字与该选定单字右侧相邻单字之间的第二单字距离,

当所述第一单字间距与所述第二单字间距的比值大于单字间距阈值时,在该选定单字左侧插入所述文本行中间尾切点和所述文本行中间头切点,

当所述第一单字间距与所述第二单字间距的比值小于所述单字间距阈值的倒数时,在该选定单字右侧插入所述文本行中间尾切点和所述文本行中间头切点;

当所述单字内容由数字字符串过渡到文字字符串时,在所述数字字符串和所述文字字符串之间依次插入所述文本行中间尾切点和所述文本行中间头切点。

在上述表格识别方法的一个实施方式中,所述头切点包括第一头切点和第二头切点,所述尾切点包括第一尾切点和第二尾切点,“根据所述列切分候选点,得到虚拟切分线”的方法包括:

获取所述第一头切点和所述第二头切点的头切点水平距离和头切点垂直距离,当所述头切点水平距离小于或等于第一水平距离阈值,并且所述头切点垂直距离小于或等于第一垂直距离阈值时,直线连接所述第一头切点和所述第二头切点得到所述头虚拟切分线;

获取所述第一尾切点和所述第二尾切点的尾切点水平距离和尾切点垂直距离,当所述尾切点水平距离小于或等于第二水平距离阈值,并且所述尾切点垂直距离小于或等于第二垂直距离阈值时,直线连接所述第一尾切点和所述第二尾切点得到所述尾虚拟切分线。

在上述表格识别方法的一个实施方式中,“对所述虚拟切分线进行可信度判断,得到可信虚拟切分线”的方法包括:

对所述虚拟切分线上的所述列切分候选点进行直线拟合,得到虚拟切分拟合直线;

获取所述虚拟切分线上的所述列切分候选点与所述虚拟切分拟合直线的拟合位置偏差;

获取所述拟合位置偏差小于或等于拟合位置偏差阈值的所述列切分候选点在所述虚拟切分线上的全部所述列切分候选点中所占的第一比例;

当所述第一比例大于或等于第一可信判定阈值时,所述虚拟切分线为所述可信虚拟切分线;

当所述第一比例小于第一可信判定阈值时,获取所述文本行端部头切点或所述文本行端部尾切点在所述虚拟切分线上的全部所述列切分候选点中所占的第二比例;

当所述第二比例大于或等于第二可信判定阈值时,所述虚拟切分线为所述可信虚拟切分线。

在上述表格识别方法的一个实施方式中,所述可信虚拟切分线包括可信头虚拟切分线和可信尾虚拟切分线,所述可信头虚拟切分线为所述头虚拟切分线对应的所述可信虚拟切分线,所述可信尾虚拟切分线为所述尾虚拟切分线对应的所述可信虚拟切分线,“根据所述可信虚拟切分线,得到虚拟无线表格列线”的方法包括:

将所述可信虚拟切分线进行排序;

合并序号连续的所述可信头虚拟切分线为表格列起始线;

合并序号连续的所述可信尾虚拟切分线为表格列终止线;

合并相邻的所述表格列终止线和所述表格列起始线,得到所述虚拟无线表格列线,其中,所述表格列终止线位于所述表格列起始线的左侧。

在上述表格识别方法的一个实施方式中,“根据所述虚拟无线表格列线、所述虚拟无线表格行线和所述文本行信息,得到所述表格文本结构”的方法包括:

根据所述虚拟无线表格列线和所述虚拟无线表格行线得到虚拟无线表格;

根据所述文本行信息中的所述单字内容和所述单字位置,将所述文本行中的字符逐个放入所述虚拟无线表格的虚拟无线单元格中,得到所述表格文本结构。

在上述表格识别方法的一个实施方式中,“根据所述表格框线结构和所述表格文本结构,并结合所述表格区域,得到识别完成的表格”的方法包括:

当所述表格区域为所述多框线表格区域时,基于所述表格框线结构添加所述文本行;

当所述表格区域为所述少框线表格区域时,获取所述表格文本结构中每个虚拟无线表格行与所述文本行的对应关系,逐行将所述虚拟无线表格行对应的所述文本行填入所述表格框线结构;

当所述表格区域为所述无框线表格区域时,将所述表格文本结构直接添加到所述表格框线结构。

在第二方面,本发明提出了一种文档获取方法,所述方法包括:

获取待处理文档图像;

根据上述任一项方案所述的表格识别方法,获取所述待处理文档图像中的表格和文本行,所述表格的数量为1个或多个;

根据所述表格和表格区域之外的所述文本行,得到识别完成的文档。

在第三方面,本发明提出了一种存储介质,所述存储介质适于存储多条程序代码,所述程序代码适于由处理器加载并运行以执行上述任一项方案所述的表格识别方法,或者上述任一项方案所述的文档获取方法。

在采用上述技术方案的情况下,本发明通过获取待识别表格图像中文本行、表格区域、表格框线前景图和表格文本前景图等信息,并基于表格框线前景图得到表格框线结构,基于表格文本前景图得到表格文本结构,再根据表格框线结构和表格文本结构,同时结合表格区域,得到识别完成的表格。通过本发明的方法,将文本位置辅助表格结构提取,提高了识别方法的鲁棒性;将文本识别信息辅助表格文本结构提取,提高了识别方法的泛化性和准确性;并通过表格框线结构和表格文本结构的两层提取和组合,灵活地实现多种结构表格的提取,不但提高了本发明方法的准确性,还增强了本发明的实用性。

附图说明

下面结合附图来描述本发明的优选实施方式,附图中:

图1是本发明实施例的表格识别方法的主要步骤流程图。

图2是本发明实施例的表格类别的示意图。

图3是本发明实施例的图1中步骤S104的详细步骤流程图。

图4是本发明实施例的图1中步骤S105的详细步骤流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将参照附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。本领域技术人员可以根据需要对其做出调整,以便适应具体的应用场合。

首先阅读图1,图1是本发明实施例的表格识别方法的主要步骤流程图,本发明实施例的表格识别方法包括:

步骤S101:获取待识别表格图像中的文本行的文本行信息;

步骤S102:获取待识别表格图像中的表格区域;

步骤S103:获取待识别表格图像中的表格框线前景图和表格文本前景图;

步骤S104:根据表格框线前景图,提取表格区域的表格框线结构;

步骤S105:根据表格文本前景图,提取表格区域的表格文本结构;

步骤S106:根据表格框线结构和表格文本结构,并结合表格区域,得到识别完成的表格。

在本发明实施例中,通过高拍仪、扫描仪等图像采集设备获取包含有表格的文件、票据等待识别表格图像。

在步骤S101中,获取待识别表格图像中的文本行的文本行信息,其中,文本行信息包括文本行位置、单字内容和单字位置。

首先,通过文本检测模型获取待识别表格图像中的文本行的文本行位置。作为示例,相邻的多个单字构成一个文本行,文本行的数量为一个或多个,文本行位置可用一个四边形表示,并通过该四边形在待识别表格图像中的四个顶点坐标记录每个文本行的文本行位置。

根据文本行位置对待识别表格图像进行裁剪,得到每个文本行所对应的文本行图像。

通过文字识别模型对文本行图像进行文字识别,得到文本行图像所对应的文本行中的每个字的单字内容和单字在文本行图像中的位置,再根据文本行在待识别表格图像中的文本行位置,将单字在文本行图像中的位置通过坐标换算到在待识别表格图像中的位置,得到最终的单字位置。其中,单字位置可用该单字的中心在像素坐标中的坐标表示。

需要说明的是,在本发明中所涉及的坐标,均为像素坐标系中的坐标。作为示例,选取图像的左上顶点位置为像素坐标系的原点,以水平/垂直方向的像素间距作为像素坐标系的水平/垂直方向的单位距离。同时,根据应用习惯,在本说明书中也将水平方向称为横向,垂直方向称为纵向。

需要说明的是,图像中的文本检测的方法,本发明不做限定,作为示例,可选用CTPN模型、SegLink模型等实现,也可依据VGG16网络、RPN网络等网络构建文本检测模型。

图像中文字识别的方法,本发明同样不做限定,作为示例,可采用OCR软件实现,本领域技术人员也可采用其他方法实现。

在本发明中,依据表格横向框线和纵向框线的特点划分表格类别,表格类别包括有框线表格和无框线表格,其中有框线表格又可以进一步划分为多框线表格和少框线表格。

如图2(a)所示的多框线表格,该类别表格具有真实可辨的横向框线和纵向框线,且表格的每个单元格由实线进行划分。

如图2(b)所示的少框线表格,该类别表格包含横向框线和纵向框线,但是包含横向框线和纵向框线的单元格较少,在不考虑大单元格中的多行文本需要用无框线表格拆成多个单元格的情况时,少框线表格等同于多框线表格。

如图2(c)所示的无框线表格,该类别表格没有完整的横向框线和纵向框线划分,即其单元格不同时包含至少一条横向框线和纵向框线进行划分;其单元格根据其内容排列进行划分,一般一行信息在同一高度左右对齐,一列信息上下对齐。

在步骤S102中,通过表格区域检测模型获取待识别表格图像中的表格区域。表格区域检测模型输出的识别结果包括表格区域的表格位置和表格类别。表格位置可用矩形框进行表示,根据待识别表格图像的不同,识别结果中表格类别包括多框线表格、少框线表格、无框线表格中至少一种。

相应地,根据表格类别,步骤S102中的表格区域包括多框线表格区域、少框线表格区域和无框线表格区域中至少一张,并且多框线表格区域和少框线表格区域又可统称为有框线表格。

作为示例,表格区域检测模型可采用YOLO V3、YOLO V4或YOLO V5等YOLO系列模型,或者采用Faster R-CNN网络、SSD网络等其它神经网络。

需要说明的是,步骤S102中的表格区域检测模型为已经使用表格样本图像训练好的模型。在表格样本图像中,可通过人工的方式对表格样本图像中的表格进行区域标注,标注的内容至少包括表格类别和位置标注,表格类别包括多框线表格、少框线表格、无框线表格中至少一种。位置标注可使用矩形框进行标注,其中矩形框为能包含表格内容的最小外接矩形。

在本发明中,基于学习训练的方式检测表格区域和类别,易于优化,通过对多种类别表格的表格区域的框定可以减少表格外部干扰对后续表格框线结构和表格文本结构提取的干扰。

表格框线前景图指的是,将表格线从待识别表格图像中单独分离出来,表示待识别表格图像中表格线位置的图,表格线前景图只表示表格线是否存在及其位置,并且与表格线的实际粗细与是否断裂等无关。

表格文本前景图指的是,将文本从待识别表格图像中单独分离出来,表示待识别表格图像中文本位置的图,表格文本前景图只表示文本是否存在及其位置,与文本的实际内容无关。

在步骤S103中,获取待识别表格图像中的表格框线前景图和表格文本前景图。获取待识别表格图像中的表格框线前景图和表格文本前景图的方法,本发明同样不做限定,作为示例,可参考中国专利申请公布号为CN112528813A的《表格识别方法、装置以及计算机可读存储介质》说明书第0057段~第0067段中所述的方法实现,其具体步骤包括:采用包括4层下采样卷积层和4层上采样卷积层的Unet神经网络模型所为图像识别模型,并且该图像识别模型是基于表格图像样本以及相应的表格线前景标签图和文本前景标签图进行训练得到的;表格线前景标签图与表格图像样本的尺寸相同,表格线前景标签图中每个像素点的位置存储的标签值取决于表格图像样本中相应位置处是否存在表格线;文本前景标签图与表格图像样本的尺寸相同,文本前景标签图中每个像素点的位置存储的标签值取决于表格图像样本中相应位置处是否存在文本行;例如,若表格图像样本中某个位置处存在表格线,则表格线前景标签图中相应位置存储的标签值为1,否则为0;同样的,若表格图像样本中某个位置处存在文本行,则文本前景标签图中相应位置存储的标签值为1,否则为0。在训练过程中,根据表格图像样本以及相应的表格线前景标签图和文本前景标签图,利用式(1)所示的损失函数L计算所述图像识别模型的损失值。

式(1)中,n表示表格图像样本的数量,n=1、2、3、…、N;h和h分别表示表格图像样本的高度和宽度,h=1、2、3、…、H,w=1、2、3、…、W;

接下来结合图3说明步骤S104。在本实施例中,如图3所示,图3(a)为待识别表格图像中示例表格,图3(b)为经过步骤S103之后得到图3(a)为待识别表格图像中示例表格所对应的表格框线前景图示意图。

首先通过形态学操作获取表格框线前景图中的横向轮廓线和纵向轮廓线。图3(c)为图3(b)所示表格框线前景图对应的横向轮廓线示意图,图3(d)为图3(b)所示表格框线前景图对应的纵向轮廓线示意图。

横向轮廓线和纵向轮廓线相交的点称为交点,如图3(e)中所示的圆形点1的位置。

横向轮廓线的起始点和/或终止点(最左侧和/或最右侧),且不与纵向轮廓线相交的点,并且/或者,纵向轮廓线的起始点和/或终止点(最上方和/或最下方),且不与横向轮廓线相交的点,统称为端点,如图3(e)中所示的交叉线2的位置。

记录每个交点和端点的位置,并根据横向轮廓线和/或纵向轮廓线,记录每个交点和端点的四向索引,即与该点相邻的横向轮廓线的左侧和/或右侧的点的连接关系,并且/或者与该点相邻的纵向轮廓线的上方或下方的点的连接关系。

作为示例,如图3(e)所示,交点p1只存在两向索引(下方、右侧),交点p2存在三向索引(上方、下方、左侧),交点p3存在四向索引(上方、下方、左侧、右侧),端点p4只存在左侧索引。

根据横向轮廓线、纵向轮廓线与步骤S102得到的表格区域的位置关系,将横向轮廓线、纵向轮廓线分配到与其有重叠关系的表格区域内,得到表格候选区域。

也就是说,表格候选区域是包含有横向轮廓线和/或纵向轮廓线的表格区域,接下来将以表格候选区域(也就是表格区域)为单位,对该表格候选区域内的表格结构进行提取。

对表格候选区域内的横向轮廓线按照从左到右的顺序进行编号,得到第一横向轮廓线序号;对表格候选区域内的纵向轮廓线按照从上到下的顺序进行编号得到第一纵向轮廓线序号。此时,每一段不相连的横向轮廓线和/或纵向轮廓线均有不同的序号和/或序号。

在第一横向轮廓线序号和第一纵向轮廓线序号的基础上,对在表格候选区域中实际不相连的,但是连接后近似处于同一直线的两条或者多条横向轮廓线和/或纵向轮廓线,进行序号的合并和更新。

优选地,可以根据横向轮廓线偏差阈值和纵向轮廓线偏差阈值,分别对第一横向轮廓线序号和第一纵向轮廓线序号进行合并和更新,得到第二横向轮廓线序号和第二纵向轮廓线序号。

作为示例,选取横向轮廓线的最左侧位置和最右侧位置的纵向坐标的平均值作为该横向轮廓线的纵向参考坐标,计算两条横向轮廓线的纵向参考坐标的差值,并与横向轮廓线偏差阈值进行比较,如果两条横向轮廓线的纵向参考坐标的差值小于或等于横向轮廓线偏差阈值,则这两条横向轮廓线可以合并赋予相同的序号。全部横向轮廓线均完成检查是否可以合并后,再重新从上到下的顺序依次更新序号,得到第二横向轮廓线序号。

同样方法,选取纵向轮廓线的最上端位置和最下端位置的横向坐标的平均值作为该纵向轮廓线的横向参考坐标,计算两条纵向轮廓线的横向参考坐标的差值,并与纵向轮廓线偏差阈值进行比较,如果两条纵向轮廓线的横向参考坐标的差值小于或等于纵向轮廓线偏差阈值,则这两条纵向轮廓线可以合并赋予相同的序号。全部纵向轮廓线均完成检查是否可以合并后,再重新从左到右的顺序依次更新序号,得到第二纵向轮廓线序号。

作为示例,横向轮廓线偏差阈值和纵向轮廓线偏差阈值均可设置为5个像素,本领域技术人员也可根据实际情况,将横向轮廓线偏差阈值和纵向轮廓线偏差阈值设置为其它相同或不同的数值。

图3(f)为经过合并、序号更新后的第二横向轮廓线序号和第二纵向轮廓线序号的示意图。由图3(f)可知,两条横向轮廓线的第二横向轮廓线序号为H2,两条横向轮廓线的第二横向轮廓线序号H3,两条纵向轮廓线的第二纵向轮廓线序号为V6。

由上述横向轮廓线序号和纵向轮廓线序号的编号、合并、更新的方法可知,第一横向轮廓线序号是在不考虑位置关系的情况下对每一条横向轮廓线进行编号,此时初始横向轮廓个数为hctr_num;第一纵向轮廓线序号同样是在不考虑位置关系的情况下对每一条纵向轮廓线进行编号,此时初始纵向轮廓个数为vctr_num。

在完成合并、更新序号后,第二横向轮廓线序号所对应的横向轮廓个数为sort_hctr_num,并且sort_hctr_num<=hctr_num;第二纵向轮廓线序号所对应的纵向轮廓个数为sort_vctr_num,并且sort_vctr_num<=vctr_num,如图3(f)sort_hctr_num为9,sort_vctr_num为7。

根据横向轮廓线和纵向轮廓线所确定交点和端点、第二横向轮廓线序号和第二纵向轮廓线序号,得到轮廓点图,其中轮廓点图的高为sort_hctr_num+2,宽为sort_vctr_num+2。

需要说明的是,轮廓点图的高和宽分别加2的原因在于,为记录轮廓的两端预留的空间,对于横向轮廓和纵向轮廓均有可能存在当前维度轮廓线的两端边界位置与另一维度轮廓线不相交的情况,即孤立的点(如前所述的端点)。该孤立的点仅有当前轮廓线的序号,而无另一维度轮廓线的序号。如图3(e)中的端点p4在用图3(f)中轮廓线序号表示的轮廓点图中,只有横向轮廓线序号H0,而没有纵向轮廓线。

基于轮廓点图,以及每个点(交点或端点)的四向索引,按照从上到下、从左到右的顺序根据连接线围成单元格,全部单元格的集合构成表格框线结构。

在表格框线结构中每个单元的行、列起止轮廓分别对应不同的第二横向轮廓线序号和第二纵向轮廓线序号,因此,每个单元格所对应的第二横向轮廓线序号和第二纵向轮廓线序号也可以称作单元格的行列起止索引。

接下来结合图4,说明步骤S105的实现过程。在步骤S105中,根据步骤S101得到的文本行的文本行位置和步骤S102中得到的表格区域的表格位置,确定属于某一表格区域的文字内容。

在步骤S1051中,计算表格区域内第一文本行和第二文本行在垂直方向上的重叠比例,作为示例,可定义重叠比例为:两个文本行纵向坐标重叠部分的长度与两个文本行所占行高的比值,当重叠比例大于重叠比例阈值(如60%)则判定这两个文本行同属于同一个表格行(一个表格行可以包含多个同行的单元格中的文本行)。第一文本行和第二文本行为表格区域中的任意两个文本行。

根据表格行中所包含的文本行的位置得到表格行的顶部坐标和底部坐标。作为示例,可选取表格行中的全部文本行的位置矩形框在垂直方向的最大值和最小值作为表格行的顶部坐标和底部坐标。

通过引入多个文本行的位置关系辅助确定表格行,可以提升表格结构提取的抗干扰能力,从而使本发明的方法具有很好的鲁棒性。

检查表格区域内的全部文本行,得到表格区域内的全部表格行,每个表格行包含一个或多个文本行。

在步骤S1052中,对表格行从上到下进行排序,得到表格行行号,并对每个表格行内的文本行按照从左到右的顺序建立文本行索引,文本行索引所对应的文本行数据包括:文本行位置、表格行行号等。

根据文本行索引,按照表格行行号从上到下,每一行从左到右的顺序,添加列切分候选点。

列切分候选点分为头切点和尾切点两类,头切点记作headsplit,尾切点记作tailsplit,头切点位于同一表格行中同一表格列中的字符串的起始位置,尾切点位于同一表格行中同一表格列中的字符串的结束位置。

相应地,文本行的起始字符(第一个单字)的左侧生成文本行端部头切点,文本行的结束字符(最后一个单字)的右侧生成文本行端部尾切点。

在一些表格中,由于同一表格行中原本属于不同表格列的多个字符串相邻过近,导致步骤S101中检测出的单个文本行实际为多个属于不同表格列的字符串粘连而成。因此,优选地,根据文本行信息中的单字内容或单字位置检查文本行是否可以进一步区分属于不同表格列的字符串,并添加列切分候选点,此时的列切分候选点可以被称为文本行中间头切点和文本行中间尾切点。

在一个实施例中,不包括文本行的起始字符和终止字符,对于文本行中的其它每个单字,计算单字和与该单字相邻的左侧单字之间的单字距离,得到第一单字间距;计算单字和与该单字相邻的右侧单字之间的单字距离,得到第二单字间距。

当第一单字间距与第二单字间距的比值大于单字间距阈值时,在该单字左侧插入一个文本行中间尾切点和一个文本行中间头切点,其中文本行中间头切点靠近该单字。

当第一单字间距与第二单字间距的比值小于单字间距阈值的倒数时,在该单字右侧插入一个文本行中间尾切点和一个文本行中间头切点,其中文本行中间尾切点靠近该单字。

作为示例,ABC为文本行中的三个连续的单字,分别计算AB之间的第一单字间距D

当(D

当(D

在另一个实施例中,文本行中的单字内容由数字字符串向文本字符串过渡时,在数字字符串和文本字符串之间插入一个文本行中间尾切点和一个文本行中间头切点,其中文本行中间尾切点靠近文字字符。

作为示例,文本行内容包括“10,000,00中国银行”,“10,000,00”为数字字符串,“中国银行”为文字字符串,在单字“中”的左侧插入一个文本行中间尾切点和一个文本行中间头切点,其中文本行中间尾切点靠近“中”。

通过文本行中文本行中间尾切点和文本行中间头切点的处理,可以弥补步骤S101中文本行检测模型的不足。例如,表格中数字所在单元格通常被设置为右对齐,当该单元格紧邻的右侧单元格为左对齐的文字内容时;或者相邻两个单元格的文本内容已经充满单元格的同一行,特别是对于无边框表格,有时文本检测模型会将两个或多个单元格中位于同一表格行的不同单元格内容识别为一个文本行。

因此通过本发明的文本识别信息辅助表格文本结构提取的方法(即单字内容和单字位置信息的引入)提升了表格文本结构提取时对无框线表格中距离较近或者近似粘连的表格列的划分能力,从而使本发明的方法具有很好的泛化性,同时进一步提高了表格识别的准确性。

在得到表格区域全部表格行中的列切分候选点后,在步骤S1053中,依据表格行从上到下,表格行内从左到右的顺序为列切分候选点进行排序并编号,从而为每个列切分候选点建立列切分候选点索引。

每个列切分候选点的列切分候选点索引至少包括如下数据:列切分候选点编号、列切分候选点位置、列切分候选点类型、左侧相邻切分候选点编号、右侧相邻切分候选点编号。

需要说明的是,具体列切分候选点进行编号的规则本发明不做限定,作为示例,可采用全部列切分候选点统一编号的形式;或采用两级编号的形式,第一级编号为表格行号,第二级编号为该表格行内的列切分候选点排序后的编号。本领域技术人员也可根据实际情况采用合适的其他编号方法。

按照从上到下的顺序,根据列切分候选点索引,为每个列切分候选点查找同列虚拟切分点,并且,头切点只查找其它头切点,即某一个头切点的同列虚拟切分点只包含头切点;尾切点只查找其它尾切点,即某一个尾切点的同列虚拟切分点只包含尾切点。

需要说明的是,虽然头切点又可细分为文本行端部头切点和文本行中间头切点,尾切点又可分细为文本行端部尾切点和文本行中间尾切点,但是,在查找同列虚拟切分点时,只按照头切点或尾切点进行查找同类切点。

作为示例,获取当前行的第一头切点和当前行的下一行的第二头切点之间的头切点水平距离和头切点垂直距离。当头切点水平距离小于或等于第一水平距离阈值,并且头切点垂直距离小于或等于第一垂直距离阈值时,这两个头切点为同组的同列虚拟切分点。直线连接第一头切点和第二头切点,得到由第一头切点和第二头切点所确定的列虚拟切分线。

同样方法,继续向下查找与上述两个头切点同组的全部同列虚拟切分点,并两两直线连接该组内的同列虚拟切分点,得到该组同列虚拟切分点所对应的列虚拟切分线。由于该组同列虚拟切分点全部为头切点,此类列虚拟切分线可称为头虚拟切分线。

获取当前行的第一尾切点和当前行的下一行的第二尾切点之间的尾切点水平距离和尾切点垂直距离。当尾切点水平距离小于或等于第二水平距离阈值,并且尾切点垂直距离小于或等于第二垂直距离阈值时,这两个尾切点为同组的同列虚拟切分点。直线连接第一尾切点和第二尾切点,得到由第一尾切点和第二尾切点所确定的列虚拟切分线。

同样方法,继续向下查找与上述两个尾切点同组的全部同列虚拟切分点,并两两直线连接该组内的同列虚拟切分点,得到该组同列虚拟切分点所对应的列虚拟切分线。由于该组同列虚拟切分点全部为尾切点,此类列虚拟切分线可称为尾虚拟切分线。

由上述可知,列虚拟切分线由一段或多段相连接的直连组成,并且,列虚拟切分线可进一步细分为头虚拟切分线和尾虚拟切分线,头虚拟切分线由头切点连接而成,表示表格列的左侧起始线;尾虚拟切分线由尾切点连接而成,表示表格列的右侧终止线。

作为示例,第一水平距离阈值和第二水平距离阈值均设置为12个像素,第一垂直距离阈值和第二垂直距离阈值均设置为文本行平均行高的4倍。本领域技术人员也可根据实际情况将第一水平距离阈值和第二水平距离阈值设置为其它相同或不同的数值,将第一垂直距离阈值和第二垂直距离阈值设置为其它相同或不同的数值。

接下来在步骤S1054中检查列虚拟切分线的可信度,以便确定真实存在的表格列线。首先基于列虚拟切分线上的列切分候选点进行直线拟合,得到虚拟切分拟合直线。

计算该列虚拟切分线上的每个列切分候选点到虚拟切分拟合直线的垂直距离,即列切分候选点与虚拟切分拟合直线的拟合位置偏差。

统计拟合位置偏差小于或等于拟合位置偏差阈值的列切分候选点在该列虚拟切分线上的全部列切分候选点中的第一比例。

当第一比例大于或等于第一可信判定阈值时,则判定该列虚拟切分线为可信列虚拟切分线,保留该列虚拟切分线。

当第一比例小于第一可信判定阈值时,继续统计该列虚拟切分线上属于文本行端部头切点或文本行端部尾切点在全部列切分候选点中所占的第二比例。

如果第二比例大于或等于第二可信判定阈值,则判定该列虚拟切分线为可信列虚拟切分线,保留该列虚拟切分线。如果第二比例小于第二可信判定阈值,则判定该列虚拟切分线为不可信列虚拟切分线,删除该列虚拟切分线。

作为示例,拟合位置偏差阈值设置为6个像素,第一可信判定阈值和第二可信判定阈值均设置为60%。本领域技术人员也可根据实际情况设置拟合位置偏差阈值、第一可信判定阈值和第二可信判定阈值的数值,并且第一可信判定阈值和第二可信判定阈值也可设置为不同的数值。

对表格区域内的全部列虚拟切分线进行可信度检查,得到保留下来的可信列虚拟切分线。将表格区域内的全部可信虚拟切分线从左到右进行排序,并且满足在同一个表格行中,右侧的列切分候选点所在的可信虚拟切分线在其左侧的列切分候选点所在的可信虚拟切分线的右侧。

有上述可知,列虚拟切分线包括头虚拟切分线和可信尾虚拟切分线,相应地,可信虚拟切分线可进一步细分为可信头虚拟切分线和可信尾虚拟切分线,可信头虚拟切分线为头虚拟切分线对应的可信虚拟切分线,可信尾虚拟切分线为尾虚拟切分线对应的可信虚拟切分线。

在步骤S1055中,合并的序号连续的可信头虚拟切分线,得到表格列起始线;合并序号连续的可信尾虚拟切分线,得到表格列终止线。全部可信虚拟切分线合并后,得到一组间隔排列的表格列起始线和表格列终止线。

再将相邻的表格列终止线和表格列起始线进行合并,得到虚拟无线表格列线。表格列终止线和表格列起始线合并时需符合表格列终止线位于表格列起始线的左侧的条件。

在步骤S1056中,根据之前得到的表格行,已知相邻两个表格行中靠上位置的表格行的顶部坐标和靠下位置的表格行的底部坐标,将顶部坐标和底部坐标的平均值作为虚拟无线表格行线的位置,根据从上到下或从下到上的顺序遍历全部表格行得到全部虚拟无线表格行线。

在步骤S1057中,由虚拟无线表格列线和虚拟无线表格行线得到表格区域的虚拟无线表格。根据步骤S101得到的文本行信息中的单字位置和单字内容,将表格区域中的文本行中的字符逐个放入对应的虚拟无线表格中的虚拟无线单元格,得到表格文本结构。

继续执行步骤S106,根据表格框线结构和表格文本结构,并结合表格区域,得到识别完成的表格。

当表格区域为多框线表格区域时,将表格文本结构(也可以用文本行)中的单字根据单字位置放入相应的表格框线结构的单元格中,逐字添加到多框线表格的表格框线结构中,得到识别完成的表格。

当表格区域为少框线表格区域时,首先根据步骤S105得到的表格文本结构,建立表格文本结构中的每个虚拟无线表格行(即虚拟无线表格中的表格行)与步骤S101得到的文本行的对应关系,再根据虚拟无线表格行在表格框线结构中的对应位置,将文本行逐行添加到少框线表格的表格框线结构中,得到识别完成的表格。

当表格区域为无框线表格区域时,直接将表格文本结构添加到无框线表格的表格框线结构中,得到识别完成的表格。

需要说明的是,表格框线结构中添加文字后,通常还需要对表格中的文字位置进行微调,如每行文字的上下居中对齐,单元格中每行文字的左、右对齐等。作为示例,多框线表格以单元格的轮廓线作为对齐依据,少框线表格以虚拟无线单元行的上下中间位置作为上下居中对齐的依据。本领域技术可以根据实际情况采取其他文字位置调整的方法。

通过基于表格类别、表格框线结构和表格文本结构相组合的表格识别方法,可以针对不同表格类别的特点,在组合过程中,对表格识别结果进行修正调整,使本发明的方法可以灵活地实现多种类别表格结构的提取,具有实用性高的特点。

需要说明的是,通过图像采集设备得到原始图像后,通常还需要对原始图像进行图像预处理,得到满足文本检测模型、表格区域检测模型等神经网络模型输入的要求待处理表格图像。图像预处理的方法本发明不做限定,本领域技术人员可根据实际情况采用旋转、拉伸、归一化、尺寸变换等中一种或多种。上述图像预处理的方法,均为本领域技术人员所公知的内容,本发明中不再赘述。

进一步,本发明还提供了文档获取方法。通过高拍仪、扫描仪等设备获取待处理文档图像,作为示例,文档为包含有表格和文字内容的文件或票据。

根据上述方法实施例的表格识别方法,得到待处理文档图像中的表格和文本行,其中表格的数量为1个或多个。

对于待处理文档图像中不在表格内的文字,根据文本行的文本信息(文本行位置、单字内容和单字位置),按照从上到下、从左到右的顺序收集每个文字,并与已识别的表格进行组合,生成待处理文档图像所对应的文档,从而实现整张待处理文档图像中的文字信息和表格结构的提取。

进一步,本发明还提供了一种存储介质,该存储介质可以被配置成存储执行上述方法实施例的表格识别方法和文档获取方法的程序,该程序可以由处理器加载并运行来实现上述表格识别方法和文档获取方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该存储介质可以是包括各种电子设备形成的存储装置设备,可选地,本发明实施例中存储介质是非暂时性的可读写存储介质。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等序数词仅用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。应该理解这样使用的数据在适当的情况下可以互换,以便这里描述的本发明实施例能够以除了在这里图示或描述的那些以外的顺序实施。

另外,在本申请的描述中,术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

技术分类

06120115918752