[发明专利]一种通用表格的OCR训练数据生成方法在审
申请号: | 202210814223.6 | 申请日: | 2022-07-11 |
公开(公告)号: | CN115205871A | 公开(公告)日: | 2022-10-18 |
发明(设计)人: | 蔡志旻;沈峰;魏建刚;李小锐 | 申请(专利权)人: | 南京润和润云科技有限公司 |
主分类号: | G06V30/19 | 分类号: | G06V30/19;G06V30/412 |
代理公司: | 南京行高知识产权代理有限公司 32404 | 代理人: | 李晓 |
地址: | 210000 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 表格 ocr 训练 数据 生成 方法 | ||
1.一种通用表格的OCR训练数据生成方法,其特征在于,包括步骤:
S1:通过各领域的语料库进行语料拆分,生成表格内文本,包括键型、值型、长文本型;
S2:利用随机的表格元类型和表内文本,构成表格的纯文本表示,即生成字符串表格;
S3:将字符串表格转写到空白图片上,同时生成表格图片和标注文本与单元格的位置信息,即生成图片表格;
S4:进行表格图像的后处理,将生成的表格图片和位置信息通过多种后处理器进行变化以模拟真实场景的效果。
2.根据权利要求1所述的通用表格的OCR训练数据生成方法,其特征在于,
步骤S1中,语料拆分的具体步骤如下:
S11:读取各领域语料库,初始化键集、值集、长文本集为空;
S12:遍历语料库中的所有字符串,按行分割得到语句列表;
S13:遍历语句列表,如果语句长度大于阈值,加入长文本集;并将语句拆分成词加入词列表;
S14:剔除词列表中的停用词,并统计各词的出现次数和词性;将高频实词放入键集,其余词放入值集;
S15:语料拆分完成得到各领域的键集、值集和长文本集。
3.根据权利要求1所述的通用表格的OCR训练数据生成方法,其特征在于,
步骤S2中,多种表格元类型,包括单行文字类型T1、多行文字类型T2、单个键值对类型T3、多个键值对类型T4、单键多选项类型T5、多行多列类型T6、跨行跨列类型T7、多级表头类型T8。
4.根据权利要求3所述的通用表格的OCR训练数据生成方法,其特征在于,
各类型字符串表格生成方法如下:
S21:T1型子程序
S211:取字符串text,计算长度为L;
S212:设置左右默认边距(即填充空格数量)lpad=1,rpad=1;
S213:左右边界符为║,上下界符为═,左上界符为╔,右上界符为╗,右下界符为╝,左下界符为╚;
S213:得到T1型的表格多行字符串表示为:第一行为╔+(lpad+L+rpad)×═+╗;第二行为║+”+text+”+║;第三行为╚+(lpad+L+rpad)×═+╝;
S22:T2型子程序
S221:取多个字符串text_list,计算得最大长度为Lmax;
S222:得到T2型的表格多行字符串表示为:第一行╔+(lpad+Lmax+rpad)×═+╗;最后一行为╚+(lpad+Lmax+rpad)×═+╝;
S223:对于text_list中间的各行text,其长度为Li,其字符串表示为║+”+text+''×(Lmax-Li+1)+║;
S224:按顺序连接S222和S223得到T2型的表格字符串表示;
S23:T3型子程序
S231:从键集中取出键型字符串key,利用S21生成key_cell;
S232:从值集中取出值型字符串value,利用S21生成value_cell;
S233:将key_cell和value_cell通过横向合并子程序合并成一个T3型的表格字符串表示;
S24:T4型子程序
S241:取键值对数量为N;
S242:重复N次S23,得到N个T3型的表格字符串表示;
S242:将N个T3型字符串通过横向合并子程序合并成一个T4型字符串表示;
S25:T5型子程序
S251:从键集中取出键型字符串key,利用S21生成key_cell;
S252:从值集中取值型字符串value,在每个value前添加多选框符号,利用S21生成value_cell;
S253:重复N次S252,得到N个value_cell;
S254:将S251的key_cell和S253的N个value_cell通过横向合并子程序合并成一个T5型字符串表示;
S26:T6型子程序
S261:取行数为rows,列数为cols;
S262:从键集中取出rows+cols-1个键型字符串keys;
S263:从值集中取出(rows-1)(cols-1)个值型字符串values;
S264:对于每一列,计算该列的最大字符宽度Lmax;利用S21得到rows个T1型字符串;利用纵向合并子程序合并成Ci;
S265:将S264中得到的cols个Ci通过横向合并子程序合并成一个T6型字符串表示;
S27:T7型子程序
S271:利用S26生成一个T6型字符串;
S272:利用S21生成一个T1型字符串;
S273:随机选择横向合并子程序或纵向合并子程序将T6型和T1型合并得到T7型字符串表示;
S28:T8型子程序
S281:利用S26生成一个cols为2的T6型字符串;
S282:利用S21生成一个T1型字符串;
S283:通过纵向合并子程序合并S282的T1型字符串和S281的T6型字符串得到新的字符串;
S284:重复S283得到2个新的字符串,并通过横向合并子程序合并,得到新字符串;
S285:重复S284得到2个新的字符串,并通过横向合并子程序合并,得到T8型字符串;
S29:综合
S291:随机选择多个T1~T8类型的字符串,放入table_list;每个类型均可选零次至多次;
S292:将table_list随机打乱;
S293:将打乱后的table_list通过纵向合并子程序合并成最后的表格字符串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京润和润云科技有限公司,未经南京润和润云科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210814223.6/1.html,转载请声明来源钻瓜专利网。