[发明专利]基于tesseract-ocr的pdf文件解析方法有效
申请号: | 201910436587.3 | 申请日: | 2019-05-23 |
公开(公告)号: | CN110188649B | 公开(公告)日: | 2021-11-23 |
发明(设计)人: | 金霞 | 申请(专利权)人: | 成都火石创造科技有限公司 |
主分类号: | G06K9/00 | 分类号: | G06K9/00 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静;邱启旺 |
地址: | 610200 四川省成都市天*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 tesseract ocr pdf 文件 解析 方法 | ||
1.一种基于tesseract-ocr的pdf文件解析方法,其特征在于,该方法包括以下步骤:
(1)用fitz工具包把pdf文件转换为图片序列;
(2)针对图片序列的每一个图片,用TableBank工具得到表格的多个区域位置TableArea[1,…n],n为该图片中的表格总数;
(3)利用tesseract-ocr进行图片中的图提取、表格单元格的提取和识别:
(3.1)形态学预处理和连通域分析:得到线条、图像区域和文字块blob;
(3.2)文本行结束位置tab-stop检测:得到每一行文本的开始和结束位置;
(3.3)发现列排版column layout:得到文本的顺序;
(3.4)得到各个块block,块block有多种类型,包括文本块、图像块、表格块,每个块有多个文本行;
(3.5)表格的处理:用步骤2得到的表格区域TableArea代替步骤3.4中的表格块;利用在TableArea[i]区域中的线条,把在TableArea[i]中的文本行分隔到各个单元格中,完成表格单元格的识别;包括以下子步骤:
(3.5.1)修正TableArea[i]区域:用TableArea[i]区域附近的横竖线条对区域进行修正,寻找TableArea[i]区域上下左右四面的线条,如果有一面在阈值距离内存在线条,则把TableArea[i]这一面的位置移动到该线条的位置;
(3.5.2)有线条表格的分隔:如果有一个文本行的位置包含在第i、i+1个横线中间,第j、j+1个竖线中间,那么它将被放置到第i行、第j列的单元格,每个单元格作为一个块block,block包含了单元格中的文本行、所在的表格index、所在的单元格行列index;
(3.5.3)没有线条表格的分隔:将修正后的区域输入到TableBank表格结构识别模型,得到表格的行列结构,以行列结构为指导,得到表格中各文本行分隔间距的阈值,把文本行分隔到各单元格;
(3.6)对各个文本块的每一行、表格每个单元格中的文本行,用lstm模型进行识别,得到每个词的位置和内容,此时表格中的文本带有所在的表格index、所在的单元格行列index。
2.根据权利要求1所述的一种基于tesseract-ocr的pdf文件解析方法,其特征在于,所述步骤(3.5.3)中,把表格中的文字按照tessrect-ocr中的方法组织成行,即以tab-stop开始和结束的文本行,如果TableBank表格结构识别模型识别到表格有3行4列,则要寻找分割表格的最佳分割线的Xj,j∈{1,2}和Yi,i∈{1,2,3},表格边缘的单元格用表格的区域构成矩形框的一边;最佳分割线的寻找通过定义最优化问题来得到:对Xj和Yi每一具体的赋值,得到由此切割后的相邻单元之间的x、y轴上的距离之和Z,计算使得Z最大的Xj,Yi值;用距离变换来计算该最优化问题;得到表格分割线位置后,把文本行放到对应的由分割线构成的单元格中。
3.根据权利要求1所述的一种基于tesseract-ocr的pdf文件解析方法,其特征在于,该方法还包括文本内容的纠错步骤,具体如下:如果pdf带有PDF/A标记,用python-docx得到结果A,则匹配python-docx得到的结果,纠正ocr识别的字符、表格结果B中的错误;如果pdf不带有PDF/A标记,则不纠错。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都火石创造科技有限公司,未经成都火石创造科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910436587.3/1.html,转载请声明来源钻瓜专利网。