发明内容
鉴于上述,本发明提供了一种自动版面文档标注生成方法,其针对文档图像的分析与识别类任务,能够快速生成大量的文档图像,并且带有详细且准确的标注信息,为相关的算法开发提供支持。
一种自动版面文档标注生成方法,包括如下步骤:
(1)根据默认的配置文件以及用户输入信息,随机生成文档的页面布局模板;
所述配置文件是一组参数的集合,包含页面中公式和标题的数量范围、不同类别区域所占的比例、文本的语言、颜色列表、背景与前景的颜色差值、文档的宽和高;所述用户输入信息则用于对这些参数进行更新设置;丰富的版面参数信息能够为文档图像的版式多样性和内容丰富性提供坚实的基础。
所述页面布局模板表示为页面中分布的多个矩形框以及矩形框中的区域属性,区域属性包括内容类别和内容属性,内容类别包括文本、标题、公式、图像、表格,内容属性包括行间距、段落间距、语言、区域名称、区域左上角坐标、区域宽和高、边界空白宽度、阅读方向;阅读方向是指某个区域内正确阅读文本的方向,包含垂直阅读和水平阅读两种,以实现中文、日文等文本的不同阅读形式;页面布局模板基本涵盖了现有文档中所有对象种类及其属性,从而保证了文档版面的通用性。
(2)根据页面布局模板对页面内不同的区域进行渲染并记录相关的标注信息,其中区域渲染的种类包括背景渲染、文本渲染、图像和图形渲染、表格渲染、公式渲染;所述标注信息包括页面中所有逻辑区域的包围框及其中的字符串信息,逻辑区域的包围框包括文本包围框、公式包围框、表格包围框、图像包围框、图形包围框,字符串信息包括文本字符串和LaTex公式代码;
文本包围框分为字符包围框、词包围框、文本行包围框、段落包围框,以便对文本信息进行详细的描述;文本字符串由二维的词字符串组成,第一维是多个文本行记录,第二维是单个文本行内的词字符串列表,可以方便的进行文本行字符串整合以及单个字符的拆分,词、文本行对应的文本图片也可以方便的通过框坐标获取并进行透视变换、扭曲变换、噪声添加等数据增强操作,从而为文本识别训练提供支持。
(3)在文档图像上添加噪声与形变并保存,相应地对标注信息进行更改,生成两份:一份为原文档图像及其标注信息,另一份为添加噪声与形变后的文档图像及其标注信息;
添加的噪声主要为高斯噪声和椒盐噪声,添加的形变包括透视变换和扭曲变换,其中扭曲变换是利用曲线模型实现图像的弯曲效果,曲线模型包括三次曲线、正弦曲线等,用以模拟书籍和杂志的曲面形变。
(4)循环执行上述步骤,直到生成的文档图像数量达到设定值,组成文档图像训练数据集;
(5)根据标注类型对数据集中的标注信息进行合并,并统一保存为特定格式的标注文件。
进一步地,所述步骤(1)中随机生成文档页面布局模板的具体过程为:首先分配页眉页脚等边界文本区域,然后在一定的范围内随机生成页面的分栏数量、标题数量以及公式数量,并按顺序根据标题和公式的数量循环确定它们在页面中的位置和大小,进而依据已确定的区域和分栏数量在剩余的整个页面内随机分配多个区域,并以事先设定好的文本、图像、图形、表格比例为概率随机分配所有区域的类别,使得文档中的内容更加符合真实文档并具有一定随机性;当生成的文档图像为中文、日文等语言的时候,从符合特定条件的文本框区域中分割出垂直标题区域,最后为各个类别的区域添加行间距、阅读方向等其他属性。
进一步地,所述背景渲染即从背景库中随机选取背景图像,作为文档页面的整体背景;背景库由接近纯色或是由少数颜色简单搭配而成的图像组成,当不使用随机背景时,背景默认为白色。
进一步地,所述文本渲染分为段落渲染和标题渲染,其具体实现过程如下:
a.根据语言和文本类型随机从字体库选取一种字体并设置一定大小;
所述文本类型包括标题和段落,以此来区分不同的文本形式,确定字体及其大小等其他文本属性;所述字体库包含不同语言和不同样式的字体文件,并按照语言和样式进行分类以便进行选择。
b.在文本语料库中选取要采样的文本文件;
所述文本语料库包含小说、新闻、文献、百科等不同领域的文本资料,并分为英文、日文、中文等多种不同语言存储。多种形式的文本来源保证文本区域多样性的同时,为文档文本检测和识别提供丰富的可靠数据支撑。
c.如果是段落渲染,则根据整个文本区域的大小进行随机段落分配,分配信息包括段落数量、每段内的行数;如果是标题渲染,则只有一个段落且文本行的数量由区域的大小和行数限值共同决定;
依据分配的段落信息从文本文件中以行为基本单位采样需要放置的文本,同时确保采样的字符数量大于等于最小字符数N,使得区域内无空白出现并保证采样效率;
d.如果设定前景与背景的颜色差值T大于0,则选取一张背景图像作为文本区域的背景,同时从颜色列表中选一种颜色作为文本的颜色,并使得该颜色与背景图像颜色差值D大于等于T;否则,文本默认为黑色;
e.如果是段落渲染,则在其首部添加指定的空格个数,以模仿段落缩进的效果;如果是标题渲染,则根据类型以一定概率填充Figure、Table等格式文本;
f.按照阅读方向和文本顺序渲染每一个字符构成文本段。
进一步地,所述步骤c在段落渲染过程中段落数量以及每段内的行数通过以下公式计算得到;
rh=rh-((nLine-1)×(cSize+lSpace)+cSize+pSpace)
nLine=randint(Lmin,Lmax)
Lmax=(rh-cSize)/(cSize+lSpace)+1
其中:当阅读方向为水平阅读时,rh为文本区域的剩余高度;当阅读方向为垂直阅读时,rh为文本区域的剩余宽度,nLine为段内的文本行数量,cSize为字体大小,lSpace为行间距,pSpace为段落间距,Lmax为当前段最多能够分配的行数,Lmin为一个段落内最少分配的行数,randint()为随机函数;初始的rh为文本区域的高,经过上述公式不断迭代,直到Lmax小于Lmin,此时计算得到新的rh,并根据该rh重新计算Lmax的值,如果当前Lmax为大于0的整数,则根据该Lmax重新计算nLine,从而完成区域的填充,确定段落数量和段内行数。
在标题渲染过程中文本行数量由以下公式计算确定;
mline=min(randint(1,Hmax),lCap)
lCap=(Rh-cSize)/(cSize+lSpace)+1
其中:当阅读方向为水平阅读时,Rh为整个区域的高度;当阅读方向为垂直阅读时,Rh为整个区域的宽度,mLine为文本区域内的文本行数量,Hmax为设定的参数值即表示标题最大行数,lCap为区域最多能够容纳的行数。
文本的段落划分和行数确定是以文本区域空间大小为基础,结合字体大小、行间距、段落间距、阅读方向等特点实现的,不仅实现了文本区域的多样性划分与填充,同时保证了文本填充的完整性和效率。
进一步地,所述步骤c中的最小字符数N由以下公式计算确定;
N=W/cSize*mLine
其中:W为文本区域的宽度,cSize为字体大小,mLine为文本区域内的文本行数量。
进一步地,所述图像和图形渲染的具体实现方式为:首先将填充区域分为标题区域和图片区域,并在标题区域进行文本渲染;然后从图像或图形库里随机选取一张图片,且保证图片的大小符合以下标准,以防止图片出现严重失真;最后利用泊松融合将所选图像融合到页面中的图片区域;
thesh1<wp/wr<thesh2
thesh1<hp/hr<thesh2
其中:wp和hp分别为选取图片的宽和高,wr和hr分别为图片区域的宽和高,thresh1为大于0.5小于1的阈值,thresh2为大于1且小于1.5的阈值;
为了使选取合适的图片的同时保证其效率,若当前选取的图片不符合上述标准,则从图像或图形库中删除该图片,并重新随机选取直到找到符合标准的图片或达到最大选取次数;当达到最大选取次数依然没有找到符合标准的图片,则从所有已遍历过的图片中选择一张最合适的图片,该图片通过以下公式确定;
dis=|wp/wr-1|+λ|hp/hr-1|
其中:dis为图片大小与区域大小的距离,该距离最小则表示对应的图片是最合适填充至图片区域的,λ为权重参数(用来调整宽和高对dis的影响程度)。利用待填充区域的两边长与图片两边长的差值作为评价图像的标准,可以保证图像填充时所选择图像的宽和高尽可能的接近待填充区域的宽和高,减小图像失真,尤其是当所填充的图片为表格图片和公式图片时。
进一步地,所述表格渲染包括表格生成和表格图像融合两种情况,表格图像融合用以丰富表格样式,其实现方式与图像和图形渲染所使用的方式一致;表格生成的实现方式为:首先依据字体大小和自定义单元格间距对表格区域进行均分获得初始的表格行数和列数,进而将列数按随机比例缩小并确保缩小后的列数大于等于2;然后依据列数和行数对表格进行纵向和横向切分,如果行数或者列数大于2,随机对相邻的两行或两列进行融合。
进一步地,所述公式渲染的实现方式与图像和图形渲染方式大体相同,不同之处在于公式图像是由随机获取的LaTex公式代码自动生成的,其具体执行过程为:首先在LaTex源码库中随机选取一个公式代码,然后设置一个固定尺寸的画布和固定大小的字体,然后在画布中居中渲染公式,最后根据渲染的文本范围对画布进行裁剪。此种方式获得的公式图片不仅可以使公式的包围框更加准确,而且可以提供公式的LaTex源码标注信息,用于公式的解析。
进一步地,所述步骤(5)中的标注类型分为两类:一类针对对象检测任务,另一类针对识别任务;对象检测任务的标注信息包括包围框的坐标及其中对象的类别,将这类标注信息保存为XML和JSON两种常见的格式,以适应当前主流的物体检测标注格式,从而可以将所生成的数据方便的应用到实际项目中;识别任务的标注信息主要是包围框内的字符串信息,将其保存为文本文件。
本发明提供了自动版面文档标注生成的一种解决方案,避免了人工标注的复杂性和易错性,同时提供了详细且准确的标注信息;另外本发明可以合成多种语言的文档图像,极大地丰富了文档识别与分析相关的数据集,为多语言的相关算法开发提供统一的数据支持。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
如图1所示,本发明自动版面文档标注生成方法,包括如下步骤:
(1)依据配置文件和用户输入信息,随机生成文档页面布局信息。
本实施方式中具体的参数设置如下:页面中公式和标题的数量范围为1到3,不同类别区域(文本、图像、图形、表格)的出现的比例为4:2:1:2,文本的语言为随机,背景与前景的颜色差值为0,文档的宽和高分别为960和1280。图2所示为页面布局划分的过程,其目的主要是对页面进行分割,并确定各个区域的属性。
图4所示为由在上述参数下生成的一个两栏的布局划分结果,其内容有表格、文本、标题、公式,没有页眉、页脚等边界文本区域,文本语言为日语,所以含有一个垂直阅读的标题。图中首先确定了页脚位置的边界文本区域,然后确定了1个水平的标题和1个公式的位置,接着对剩余区域进行划分得到了5个矩形区域,并依据文本、图像、图形、表格的比例为概率确定每个区域的类别,如文本的概率为4/(4+2+1+2)=4/9。此次合成的文本语言被随机成了日文,则在其中符合特定长度的文本框里分割出了一个垂直标题框,最后设置所有区域的区域属性,特别的垂直标题框的阅读方向属性为垂直阅读,其余属性则为默认。
(2)依据页面布局信息,对页面内不同的区域进行渲染并记录相关的标注信息。
图3所示为整个区域渲染的过程,根据不同的素材分为图片渲染以及文本渲染,其中图片可以是生成的,也可以是从公开数据集或其他文档图像中裁剪而来。本发明中公式以及表格可以是生成的,因为其中包含文档解析时需要识别的重要信息,生成的图片可以记录这些信息;图形主要通过POD、PubLayNet等公开数据集裁剪得到,图像的获取则主要从VOC、COCO等物体识别数据集中获得。
图5所示为渲染后的图像,文字渲染正文字体大小cSize的范围为25到35,参数min、lSpace、pSpace的值分别为3,0.2*cSize,0.5*cSize。右上角的文本以及垂直标题文本的阅读方向为垂直阅读;底部的页脚文字相比于正文中的文字较小,且位置和字数在区域范围内随机,两处作为题目的标题的字体以加粗加大的形式出现,标题的行数限制值设置为3,即两个表格以及两个题目的行数最多为3。
两个表格区域的填充都以表格图片融合实现,且被分成了标题部分和表格部分,上面的两行文字为表格标题,因为表、Table等格式文本是以一定的概率出现的,此处的标题开头部分并没有出现这些关键字。表格图片大小是否符合标准的阈值thresh1和thresh2分别设为0.8和1.2。
图5中的标注信息包含字符、词、文本行、段落、表格、公式的包围框,字符、词、文本行内的字符串以及公式LaTex代码的字符串。图6所示为可视化的显示了所有的包围框信息;在日文及中文中,词表示为以标点为分界点且不含标点的连续字符串。
(3)在文档图像上添加噪声与形变并保存,同时更改对应的标注信息。
图7所示为形变添加后的图像,弯曲形变的模型为三次曲线模型,并进行三维旋转和平移操作,此时的标注信息可以根据需要进行转换,如将标注的矩形框以分割图的形式进行记录,可以通过将形变变换应用到原始分割图上实现,或者用多边形表示矩形框并应用相应的形变变换。
(4)循环执行上述步骤,直到生成的图像数量达到设定值。
(5)依据标注类型对标注信息进行合并,并保存为特定格式的标注文件。
最后将图片的所有标注信息进行归并,包围框信息以JSON文件和XML文件保存,字符串信息以文本文件保存。图8和图9分别所示了JSON以及XML文件中的一部分标注信息,标注信息是图5中左上角的表格包围框。JSON标注中的segmentation是由点集表示的多边形,iscrowd等于0表示当前对象为单个对象且segmentation由多边形表示,反之iscrowd如果等于1则表示当前对象为一组对象且segmentation由RLE(run-length encoding)的格式表示,image_id是文档图像的编号,area是segmentation的面积,bbox是矩形的坐标信息,以左上角坐标、宽和高表示,category_id是所属类别,此处为3代表表格,id是此表格在所有标注中的编号。XML标注中相比于JSON较为简单,其中name是该对象的分类名,bndbox是对象的左上和右下坐标,difficult指明该对象是否较难识别,一般为0表示并非难以识别。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。