一种基于聚类的表格重构方法及系统与流程

专利检索2022-05-10  32



1.本发明属于信息技术领域,具体涉及一种基于聚类的表格重构方法及系统。


背景技术:

2.随着计算机的普及,电子化数据的需求变得越来越大,于是出现了ocr文字识别技术,能够自动识别文字,解决了人力浪费和效率低下的问题。可是ocr技术却无法有效获取表格中的结构化数据,因此随之出现了表格识别的技术,为结构化数据的快速录入提供了很大的帮助,但也存在一些不足之处,例如难以有效处理不规则表格等复杂表格的识别与重构。


技术实现要素:

3.为了解决背景技术中所提及的不足之处,本发明提供了一种基于聚类的表格重构方法及系统,该方法及系统可从不规则表格图片中有效识别、提取并重构出结构化的表格数据。
4.本发明实施例提供的一种基于聚类的表格重构方法,包括:s100:获取包括表格的pdf图片;s200:提取pdf图片中的横线和竖线,分别生成仅有横线和仅有竖线的图片,分别记为横线图片和竖线图片;s300:基于横线图片和竖线图片提取横线和竖线的交叉点;s400:对交叉点进行基于位置的聚类,基于聚类结果对表格进行分离;s500:提取单个表格所包含的交叉点,对每列和每行设置相应的参考横坐标和参考纵坐标,将各交叉点的横坐标依次与各参考横坐标求距离,将交叉点横坐标更新为与其距离最小的参考横坐标;将各交叉点的纵坐标依次与各参考纵坐标求距离,将交叉点纵坐标更新为与其距离最小的参考纵坐标;参考横坐标应位于所在列所有交叉点的横坐标范围内,参考纵坐标应位于所在行所有交叉点的纵坐标范围内;s600:基于广度遍历思想,在交叉点间进行路径游走,重构表格。
5.可选的,在一些实施例中,在执行步骤s200前,还包括对pdf图片进行去除噪声的预处理。
6.可选的,在一些实施例中,步骤s300具体包括:s310:将横线图片和竖线图片相加得相加图片,将相加图片中横线和竖线无交叉的连通域作为噪声过滤;s320:将横线图片和竖线图片相与,得到交叉点;判断交叉点能否被相加图片所得连通域覆盖,能被覆盖的交叉点保留,否则被丢弃;s330:统计相加图片中各单个连通域所包含的交叉点数量,当其中交叉点数量少于预设的交叉点数量阈值,丢弃此连通域,交叉点数量阈值为经验值。
7.可选的,在一些实施例中,步骤s600进一步包括:
s610:创建矩阵,将步骤s500处理后交叉点按布局与矩阵中各位置元素对应,矩阵对应位置有交叉点,则元素值为1;否则元素值为0;s620:从矩阵的第一个交叉点开始向右向下遍历,交叉点即矩阵中元素值为1的位置,对每个当前的交叉点执行如下:判别当前交叉点的下方和右方的元素值,若下方元素值为1,将该当前交叉点及其下方交叉点加入候选线段集;若当前交叉点右方元素值为1,将该当前交叉点及其右方交叉点加入候选线段集;s630:根据候选线段集重构表格。
8.可选的,在一些实施例中,上述表格重构方法还包括:s700:将表格文字填写到重构表格中。
9.步骤s700进一步包括:s710:从pdf图片中识别表格文字及位置信息;s720:将所识别的表格文字与重构表格中单元格进行基于位置和尺寸的匹配;s730:将表格文字放入匹配的单元格中。
10.相应的,本发明实施例提供的一种基于聚类的表格重构系统,包括:获取模块,用来获取包括表格的pdf图片;直线提取模块,用来提取pdf图片中的横线和竖线,分别生成仅有横线和仅有竖线的图片,分别记为横线图片和竖线图片;点提取模块,用来基于横线图片和竖线图片提取横线和竖线的交叉点;聚类模块,用来对交叉点进行基于位置的聚类,基于聚类结果对表格进行分离;去抖模块,用来提取单个表格所包含的交叉点,对每列和每行设置相应的参考横坐标和参考纵坐标,将各交叉点的横坐标依次与各参考横坐标求距离,将交叉点横坐标更新为与其距离最小的参考横坐标;将各交叉点的纵坐标依次与各参考纵坐标求距离,将交叉点纵坐标更新为与其距离最小的参考纵坐标;参考横坐标应位于所在列所有交叉点的横坐标范围内,参考纵坐标应位于所在行所有交叉点的纵坐标范围内;重构模块,用来基于广度遍历思想,在交叉点间进行路径游走,重构表格。
11.可选的,在一些实施例中,上述表格重构系统还包括表格文字写入模块,用来将表格文字填写到重构表格中;所述表格文字写入模块包括文字识别模块、匹配模块、写入模块;所述文字识别模块,用来从pdf图片中识别表格文字及位置信息;所述匹配模块,用来将所识别的表格文字与重构表格中单元格进行基于位置和尺寸的匹配;所述写入模块,用来将表格文字放入匹配的单元格中。
12.和现有技术相比,本发明具有如下优点和有益效果:能够从包括不规则表格的图片中识别并重构表格,相比于现有的表格重构方法,可提升表格重构精度,并可有效解决图片中可能会出现的表格扭曲问题,对不规则表格的重构尤其适用。
附图说明
13.图1为实施例中表格重构方法的流程示意图;图2为经去抖处理后获得的交叉点;图3为实施例中表格重构系统的结构示意框图。
具体实施方式
14.下面将结合附图对本发明的具体实施方式做详细说明。显然,所描述的具体实施方式仅仅是本发明的一部分实施例,而不是全部的实施例。基于所描述的具体实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他具体实施方式,都属于本发明保护的范围。
15.本发明实施例提供的一种基于聚类的表格重构方法及系统,该方法及系统可以集成于电子设备中,该电子设备可以为智能终端、服务器等,智能终端可以为智能手机、平板电脑、计算机等,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统等。本发明基于聚类的表格重构方法及系统尤其适用于不规则表格的重构。
16.参见图1,所示为实施例中表格重构的具体流程:s100:获取包括表格的pdf图片,本实施例中pdf图片中待识别表格为不规则表格。
17.作为优选,在执行步骤s200前,对pdf图片进行去除噪声的预处理,本实施例采用opencv对所提取的pdf图片进行预处理,包括二值化、膨胀、腐蚀。
18.s200:提取pdf图片中的横线和竖线,分别生成仅有横线和仅有竖线的图片,分别记为横线图片和竖线图片。
19.表格框线的特点是框线为直线且框线方向只有水平和竖直,因此从pdf图片提取pdf图片中的横线和竖线,分别生成仅有横线和仅有竖线的图片,分别记为横线图片和竖线图片。本实施例中,通过霍夫变换法从pdf图片中提取横线和竖线图片。
20.s300:基于横线图片和竖线图片提取横线和竖线的交叉点。
21.本实施例提供提取交叉点的一种具体实施过程,如下:s310:将横线图片和竖线图片相加得相加图片,将相加图片中横线和竖线无交叉的连通域作为噪声过滤。
22.图片的相加是指将两幅图片对应像素的灰度值相加,图片中无线条区域的像素点的灰度值为0。将相加图片中横线和竖线无交叉的连通域作为噪声过滤掉。本实施例所采用的连通域计算方法为:将横线图片、竖线图片和相加图片分别看作三个由像素点灰度值构成的矩阵,分别记为m
h
、m
v
和m
sum
,基于矩阵分别计算连通域,连通域是指临近像素灰度值相同,且在视觉效果上连接在一起的区域。分别在m
h
与m
sum
以及m
v
与m
sum
之间取交集,去掉游离线段,游离线段是指在m
sum
上经过连通域计算后,选择一个覆盖范围最广的连通域作为主干,然后剩下连通域分别在m
h
和m
v
上所对应的部分。
23.s320:将横线图片和竖线图片相与,得到交叉点;判断交叉点能否被相加图片所得连通域覆盖,能被覆盖的交叉点保留,否则被丢弃。
24.s330:统计相加图片中各单个连通域所包含的交叉点数量,当其中交叉点数量少于预设的交叉点数量阈值,丢弃此连通域,交叉点数量阈值为经验值。
25.本子步骤用来对交叉点做进一步过滤。进一步统计矩阵m
sum
中各单个连通域矩阵所包含的交叉点数量,当其中交叉点数量少于预设的交叉点数量阈值,表明难以凑成表格,丢弃此连通域,以达到噪声过滤的效果。交叉点数量阈值的设置需经过大量分析确定,最小可设定为4,代表表格的四个顶点,但这是一种极端情况,通常交叉点阈值会大于4,具体通过分析大量pdf表格确定。
26.s400:对交叉点进行基于位置的聚类,基于聚类结果对表格进行分离。
27.对交叉点进行基于位置的聚类,本实施例采用dbscan聚类法,显然所采用的聚类方法并不限于此,属于同一类的交叉点则属于同一表格,从而将多个表格分离。本步骤通过聚类来解决图片中可能存在多个表格的问题。
28.s500:提取单个表格所包含的交叉点,对每列和每行设置相应的参考横坐标和参考纵坐标,将各交叉点的横坐标依次与各参考横坐标求距离,将交叉点横坐标更新为与其距离最小的参考横坐标;将各交叉点的纵坐标依次与各参考纵坐标求距离,将交叉点纵坐标更新为与其距离最小的参考纵坐标;参考横坐标应位于所在列所有交叉点的横坐标范围内,参考纵坐标应位于所在行所有交叉点的纵坐标范围内。
29.在实际的表格重构中,提取出的交叉点大多并未对齐,存在扭曲,所以需对交叉点进行去抖处理,将交叉点对齐,从而去除表格中存在的扭曲等问题。本步骤基于表格中数据的结构化特点,对各单个表格包括的交叉点进行去抖处理。
30.本发明的去抖处理技术思路为:先基于所提取的交叉点坐标,来设置每行和每列对应的参考横坐标和参考纵坐标。再将各交叉点的横坐标依次与各参考横坐标求距离,将交叉点横坐标更新为与其横向距离最近的参考横坐标,从而实现交叉点在纵向的对齐。再将各交叉点的纵坐标依次与各参考纵坐标求距离,将交叉点纵坐标更新为与其纵向距离最近的参考纵坐标,从而实现交叉点在横向的对齐。
31.本发明中参考横坐标和参考纵坐标的提出只是为了提供交叉点对齐的参考目标,其确定规则不做限制,由人为确定。各列对应的参考横坐标应基于该列所有交叉点的横坐标确定,只要其位于该列所有交叉点的横坐标范围内即可,可以自行规定参考横坐标的取值规则。例如,设定参考横坐标为所在列所有交叉点横坐标的平均值,或者为所在列所有交叉点横坐标的中间值,或者先剔除所在列中横坐标偏差较大的交叉点,再将剩余交叉点的横坐标取平均值得参考横坐标。
32.各行对应的参考纵坐标的确定方法同参考横坐标,其也是基于所在行所有交叉点的纵坐标确定,一般来说,只要其位于该行所有交叉点的纵坐标范围内即可,可以自行规定参考纵坐标的取值规则,取值规则的例举参见参考横坐标的取值规则。图2为经去抖处理后获得的某单一表格中的交叉点,从图中可以看出,交叉点基本对齐。
33.s600:基于广度遍历思想,在交叉点间进行路径游走,重构表格。
34.经过s500的去抖处理,去抖后的交叉点见图2所示,图中黑点即交叉点,从图中可以看出,交叉点基本对齐。基于交叉点重构表格,复杂的表格会出现多次合并单元格的操作,但由于表格的本质是横线与竖线的连接,所以当获取交叉点后,便可将原表格进行复原,具体为:s610:创建矩阵,将步骤s500处理后交叉点按布局与矩阵中各位置元素对应,矩阵
对应位置有交叉点,则元素值为1;否则元素值为0。
35.本实施例中创建与交叉点排列对应的矩阵;分别统计每行交叉点数,取最大值为该矩阵的宽度;分别统计每列交叉点数,取最大值为该矩阵的高度;将所提取交叉点按布局与矩阵对应,矩阵对应处有交叉点,则此处元素值为1;否则元素值为0。基于图2可构建矩阵。
36.s620:从矩阵的第一个交叉点开始向右向下遍历,交叉点即矩阵中元素值为1的位置,本实施例中第一个交叉点即矩阵的(0,0)位置;对每个当前的交叉点执行如下:判别当前交叉点的下方和右方的元素值,若当前交叉点下方元素值为1,说明应存在一纵向边框, 将该当前交叉点及其下方交叉点加入候选线段集;若当前交叉点右方元素值为1,说明应存在一条横向边框,将该当前交叉点及其右方交叉点加入候选线段集。
37.s630:根据候选线段集重构表格。本实施例中,通过候选线段集初步构建单元格。
38.s700:将表格文字填写到重构表格中。
39.目前有诸多成熟技术可将表格文字填写到重构的表格中。本实施例所采用的方法如下:s710:从pdf图片中识别表格文字及其位置。本实施例采用ocr技术识别并检测pdf图片中的文字及位置信息。
40.s720:将所识别的表格文字与重构表格中单元格进行基于位置和尺寸的匹配;s730:将表格文字放入匹配的单元格中。
41.参见图3,所示为实施例中表格重构系统的结构示意框图。本实施例表格重构系统包括获取模块100,用来获取包括表格的pdf图片;直线提取模块200,用来提取pdf图片中的横线和竖线,分别生成仅有横线和仅有竖线的图片,分别记为横线图片和竖线图片;点提取模块300,用来基于横线图片和竖线图片提取横线和竖线的交叉点;聚类模块400,用来对交叉点进行基于位置的聚类,基于聚类结果对表格进行分离;去抖模块500,用来提取单个表格所包含的交叉点,对每列和每行设置相应的参考横坐标和参考纵坐标,将各交叉点的横坐标依次与各参考横坐标求距离,将交叉点横坐标更新为与其距离最小的参考横坐标;将各交叉点的纵坐标依次与各参考纵坐标求距离,将交叉点纵坐标更新为与其距离最小的参考纵坐标;参考横坐标应位于所在列所有交叉点的横坐标范围内,参考纵坐标应位于所在行所有交叉点的纵坐标范围内;重构模块600,用来基于广度遍历思想,在交叉点间进行路径游走,重构表格;表格文字写入模块700,用来将表格文字填写到重构表格中。
42.本实施例中表格文字写入模块700又进一步包括文字识别模块710、匹配模块720、写入模块730。其中,文字识别模块710用来从pdf图片中识别表格文字及位置信息;匹配模块720,用来将所识别的表格文字与重构表格中单元格进行基于位置和尺寸的匹配;写入模块730,用来将表格文字放入匹配的单元格中。
43.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人 员可以理解的其他实施方式。
转载请注明原文地址:https://win.8miu.com/read-150423.html

最新回复(0)