文档的文字提取方法和装置的制作方法

文档序号:6603886阅读:255来源:国知局
专利名称:文档的文字提取方法和装置的制作方法
技术领域
本发明属于数据加工领域,涉及一种文档的文字提取方法和装置。
背景技术
在版式文档创建时打包字体的过程中,有些厂商为了防止文档中的文字被复制而采用随机编码对文档进行加工,这类文档在导出时所得的文本则为乱码。目前,这类版式文档的加工过程为将整个文档按页生成版面图片,并采用OCR识别引擎对图片进行识别,经版面校对后对文字进行校对,并导出得到的文本。在此过程当中,一些OCR识别引擎的抗噪性差,特别是在文档版式混乱或者含背景文字当中,OCR识别的准确率不高,而且在版面校对特别是文字校对中,同一个字出现多次的情况下,如果一处的文字识别发生错误,则文档中的多处对应位置都发生错误,如要校正就需要修改多次文本。

发明内容
本发明所要解决的技术问题是提供一种文档的文字提取方法和装置。根据字符的原始编码确定的字模图像,对字模图像OCR识别后,根据着墨位置和基线(base line)的相对位置校正标点字符的编码,并手动修改识别结果,根据校正情况更新字符映射表,从而形成正确的文本。本发明公开了一种文档的文字提取方法和装置,包括以下步骤步骤1 解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表;步骤2 根据字体对应信息得到各字符对应的字模图像;步骤3 将字模图像进行裁剪,得到字模图像对应的着墨区域;步骤4 对着墨区域进行字符识别,得到各字符的识别结果;步骤5 根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。所述步骤1中字体的对应信息包括基线、原始编码、字体名、Ascent、Descent.所述步骤1中的字符映射表包括原始编码和修正编码两属性列,其中分别记录解析文档后得到的字符对应的原始编码。所述步骤2中字模图像为字体对应信息经路径填充算法提取点阵得到的二值图像。所述步骤3中将字模图像逐像素扫描,在字模图像的各边缘方向上的第一个黑色像素点为顶点,分别作出四条边线形成矩形区域,按矩形区域进行裁剪得到着墨区域。所述步骤4中各字符的识别结果包括识别编码和匹配度,并按匹配度大小顺次存储在线性结构的各单元中。所述步骤5的根据识别结果对字符映射表进行更新具体为对识别结果中的标点字符进行自适应基线校正,更新字符映射表中对应的修正编码。所述自适应基线校正为根据标点字符的着墨区域形状与基线的相对位置关系进行校正。所述自适应基线校正后,手动对识别结果进行编码校正。本发明还公开了一种文档的文字提取装置,包括以下模块解析模块解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表;图像模块根据字体对应信息得到各字符对应的字模图像;裁剪模块将字模图像进行裁剪,得到字模图像对应的着墨区域;识别模块对着墨区域进行字符识别,得到各字符的识别结果;更新模块根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。本发明一种文档的文字提取方法和装置,对原始编码进行路径填充得到字模图像,裁剪为着墨区域后经过识别得到识别结果,经过着墨区域与基线相对位置进行自适应基线校正后进行手动校正,然后建立字符映射表,从而对文档提取文本信息,改进了数据加工的流程,也减少了数据的加工工作量,使随机编码的打包字体不会成为数据加工的障碍。 对于特定的版式文档(包含随机编码的打包字体)无需识别整个页面图像,即可获得正确的文本信息,最大限度减少了人工干预,保留了文档的格式和逻辑信息。


图1为本发明文档的文字提取方法的流程图;图2为本发明文档的文字提取方法中字体的对应信息示意图;图3为本发明文档的文字提取方法的基线示意图;图4为本发明文档的文字提取方法的文档字体示意图;图5为本发明文档的文字提取方法的字模图像示意图;图6为本发明文档的文字提取方法的带方向填充算法的示意图;图7为本发明文档的文字提取方法的着墨区域示意图;图8为本发明文档的文字提取方法的字符识别形成的识别编码示意图;图9为本发明文档的文字提取方法的基线校正示意图;图10为本发明文档的文字提取方法的手动进行编码校正示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。本发明公开了一种文档的文字提取方法,如图1所示,包括以下步骤步骤1 解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表;字体的对应信息包括基线、原始编码、字体名、Ascent (上升部)、Descent (下降部)、EM Square。如图2所示,Ascent表示基线之上垂直距离,本实施例中,Ascent为4/5 字符的高。Descent表示基线之下的垂直距离,Descent为1/5字符的高。EM Square指用于显示字符图像的给定面积,表示字体当中轮廓缩放目标的大小(由应用程序决定),EM Square 的大小等于 EM HeightXEMHeight0
4
基线是所有文字对齐的一个特定坐标。如图3所示,横线为字体的基线,基线主要是为了字符输出对齐而设置的一个坐标定义。默认一般是0. 88,意思是上面部分占88%, 下面部分占12%。其基线定义根据字体不同设置也不同。但是不同字体都根据基线对齐, 黑线上面部分叫做Ascent (上升部),下面部分叫Decent (下降部)。字符映射表包括原始编码和修正编码两属性列,在此步骤中,原始编码和修正编码两属性列分别记录解析文档后得到的字符对应的原始编码,在后续步骤中将对修正编码属性列中的对应记录进行更新。本实施例中,基于PDF当中iTruetype字体来进行Unicode编码查找。Truetype中 cmap表本身为映射表的集合。其中,集合中的每个表由一个平台ID和一个编码ID组成。 Unicode对应编码表的平台ID为3,编码ID为1,每个表的每一项是一个子表,每个子表有一个标识字段指定该子表属于什么格式。本实施例中,需要查找字体的字段值为0和4对应的两种格式。在字体的字段值为0的情况下映射表定义一个数组,此数组是一系列的数字,数字指向了字符轮廓的索引值,以0-255的编码作为索引在数组中进行查找,如果对应索引值为非0表示此编码存在,否则不存在,则遍历这个数组可得到各字符在0-255之间的原始编码(即字体本身的编码定义)。在字体的字段值为4的情况下映射表定义一组原始编码段,然后根据每个原始编码段中字符的原始编码从字体当中新建字符映射表中的项,对字符映射表进行填充。由于本步骤还未进行识别,本步骤中的字符映射表,表项的原始编码和修正编码相同。步骤2 根据字体对应信息得到各字符对应的字模图像;字模图像为字体对应信息经路径填充算法提取点阵得到的二值图像。新建大小同 EM Square的位图,在字符映射表中查到对应字符的原始编码,获取对应原始编码的轮廓, 然后采用路径填充算法将轮廓填充到此位图。位图一般采用二值图或者灰度图,大小范围为从 40 X 40pixel 到 200 X 200pixel。本实施例中,输入字符的原始编码,并获取字体中的字符轮廓,一轮廓可包括多个封闭区间(contour),然后新建大小同EM Square字符的位图,并把字符轮廓填充到位图。然后把字符轮廓按基线位置进行平移,再根据EM Square的大小进行缩放。采用路径填充算法中的带方向填充(Winding)算法把调整之后的字符轮廓填充到位图。如图5、6所示,本实施例中,采用带方向填充(Winding)算法,图6中所示的边框为是EM Square,字符的黑色边线是连接字符轮廓各个顶点之后的描边。本实施例的带方向填充算法(Winding Fill)中,将字符的边线设定方向标记,向下为1,向上为-1,使两个方向标识的符号相反,但绝对值相等。填充时,按像素逐行水平扫描,扫描之前设置初始的状态值为0,当有边线与一扫描线相交时,状态值加上此线段的方向标记。加完之后的状态值如果为非0,则边线之后的像素点须进行填充,如果为0,边线之后的像素点不进行填充。竖直方向像素点所有像素扫描完毕之后,填充完毕,得到的字模图像大小为96X96pixel。在其他实施例中,可采用奇偶填充的方法进行标记,按像素逐行水平进行扫描,扫描之前设置初始的状态值为0,每次和边线相交状态值都加1,如果状态值是奇数则填充边线后的像素点,状态值为偶数则不填充边线后的像素点,直至竖直方向所有像素扫描完毕, 填充完毕。步骤3 将字模图像进行裁剪,得到字模图像对应的着墨区域;将步骤2中得到的字模图像逐像素扫描,在字模图像的各边缘方向上的第一个黑色像素点为顶点,分别作出四条边线形成矩形区域,按矩形区域进行裁剪得到着墨区域,这样在着墨区域的每一行和每一列的像素点中都存在黑色像素点,即相当于将字模图像边缘处的“白边”切除,形成的着墨区域表示字符显示的最大区域,为OCR识别提供了良好的条件,如图7所示,本实施例中,对字符“中”对应的字模图像进行裁剪后所得的着墨区域。步骤4 对着墨区域进行字符识别,得到各字符的识别结果;每个字符识别结果包括一组识别编码和该识别结果对应的匹配度。各字符的识别结果包括识别编码和匹配度, 并按匹配度大小顺次存储在线性结构的各单元中。本实施例中,如图8所示,为字符“的” 识别之后的结果,采用线性列表进行存储,每个节点分别存储识别编码(图7中显示的为编码对应的字符)和对应的匹配度,匹配度最高的字符“的”为0. 945,位于链表中的第一个节点ο步骤5 根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。对识别结果中的标点字符进行自适应基线校正,根据标点字符的着墨区域与基线的相对位置关系进行校正,更新字符映射表中标点字符对应的修正编码。自适应基线校正的过程中,首先对识别结果中匹配度相同的字符的高宽比进行判定。本实施例中,字符“日”和“曰”在对应的线性链表中对应的匹配度相同,则可根据字符的字模图像所对应着墨区域宽高比信息判断。对于“日”和“曰”,如果着墨区域的宽高比在区间[1.5,2. 2]之间,则该字符为“日”;如果着墨区域的宽高比在区间
之间,则该字符为“曰”。根据高宽比对字符进行判断后,进行自适应基线校正,继续判断字符的着墨区域与基线的相对位置关系。在字符‘,’和‘’’单纯靠OCR识别引擎很难正确识别,通过该标点字符的字模图像对应的着墨区域在基线之上还是基线之下来判断。如图9所示,本实施例中,‘_,的字模图像对应着墨区域的坐标是(16,60,32,64),而‘-,的字模图像对应着墨区域的坐标是(14,87,47,91)。字体的对应信息中,基线对应的坐标为67,‘_’和基线的相对坐标是-3,‘_’和基线的相对坐标是20。对于识别结果为‘_’或者‘_’的字符,通过其字模图像对应的着墨区域和基线的坐标作计算,如果相对坐标差值在区间
之间, 即在基线下的为字符‘_’ ;如果相对坐标差值在区间[11,30]之间,即在即在基线下的为字符‘_’。同理,在自适应基线校正过程中,可根据字符‘,’和‘’ ’对应的着墨区域与基线的位置关系对两字符分别进行校正。将校正后的字符编码存入字符映射表,对字符映射表进行更新。手动对自适应基线校正所得的识别结果进行编码校正,用户从步骤4中线性链表的节点中选取对应的识别编码,如果目标字符不在待选的识别编码之中,则直接输入正确的目标字符,并将目标字符对应的字符编码更新到字符映射表的修正编码,从而更新字符映射表。字符映射表包括原始编码和识别后的校正之后的修正编码这两个属性。本实施例中,如图10所示,手动对字符“的”对应的识别编码进行编码校正,选择对应的识别编码,得到目标字符,并将目标字符“的”对应的识别编码作为修正编码在字符映射表中进行更新,根据字符映射表对文档提取文本信息。本方法根据字符映射表对文档中的文字进行处理,提取文字的字体信息和原始编码,并根据这个原始编码在字体映射表当中查找,如有匹配项则返回对应的修正编码,并替换原有文字。当文本的所有原始编码替换完成之后,即可得到正确的文本信息。本发明还公开了一种文档的文字提取装置,包括以下模块解析模块解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表;图像模块根据字体对应信息得到各字符对应的字模图像;裁剪模块将字模图像进行裁剪,得到字模图像对应的着墨区域;识别模块对着墨区域进行字符识别,得到各字符的识别结果;更新模块根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。
权利要求
1.一种文档的文字提取方法,其特征在于,包括以下步骤步骤1 解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表; 步骤2 根据字体对应信息得到各字符对应的字模图像; 步骤3 将字模图像进行裁剪,得到字模图像对应的着墨区域; 步骤4 对着墨区域进行字符识别,得到各字符的识别结果;步骤5 根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。
2.根据权利要求1所述的方法,其特征在于所述步骤1中字体的对应信息包括基线、 原始编码、字体名、Ascent、Descent。
3.根据权利要求1所述的方法,其特征在于所述步骤1中的字符映射表包括原始编码和修正编码两属性列,其中分别记录解析文档后得到的字符对应的原始编码。
4.根据权利要求1所述的方法,其特征在于所述步骤2中字模图像为字体对应信息经路径填充算法提取点阵得到的二值图像。
5.根据权利要求1所述的方法,其特征在于所述步骤3中将字模图像逐像素扫描,在字模图像的各边缘方向上的第一个黑色像素点为顶点,分别作出四条边线形成矩形区域, 按矩形区域进行裁剪得到着墨区域。
6.根据权利要求1所述的方法,其特征在于所述步骤4中各字符的识别结果包括识别编码和匹配度,并按匹配度大小顺次存储在线性结构的各单元中。
7.根据权利要求1所述的方法,其特征在于所述步骤5的根据识别结果对字符映射表进行更新具体为对识别结果中的标点字符进行自适应基线校正,更新字符映射表中对应的修正编码。
8.根据权利要求7所述的方法,其特征在于所述自适应基线校正为根据标点字符的着墨区域形状与基线的相对位置关系进行校正。
9.根据权利要求8所述的方法,其特征在于所述自适应基线校正后,手动对识别结果进行编码校正。
10.一种文档的文字提取装置,其特征在于,包括以下模块解析模块解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表; 图像模块根据字体对应信息中得到各字符对应的字模图像; 裁剪模块将字模图像进行裁剪,得到字模图像对应的着墨区域; 识别模块对着墨区域进行字符识别,得到各字符的识别结果; 更新模块根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。
全文摘要
本发明公开了一种文档的文字提取方法和装置,属于数据加工领域。方法包括步骤1解析文档,获取文档中字体的对应信息,根据对应信息得到字符映射表;步骤2根据字体对应信息得到各字符对应的字模图像;步骤3将字模图像进行裁剪,得到字模图像对应的着墨区域;步骤4对着墨区域进行字符识别,得到各字符的识别结果;步骤5根据识别结果对字符映射表进行更新,并根据更新后的字符映射表对文档提取文本信息。本发明改进了数据加工的流程,也减少了数据的加工工作量,使随机编码的打包字体不会成为数据加工的障碍。对于特定的版式文档无需识别页面图像,即可获得正确的文本信息,最大限度减少了人工干预,保留了文档的格式和逻辑信息。
文档编号G06F17/22GK102262619SQ20101019529
公开日2011年11月30日 申请日期2010年5月31日 优先权日2010年5月31日
发明者楼永植, 陈峻峰 申请人:汉王科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1