一种增强文本合成图像的生成方法和系统与流程

文档序号:29065634发布日期:2022-03-01 18:54阅读:135来源:国知局
一种增强文本合成图像的生成方法和系统与流程

1.本发明涉及文本图像合成技术领域,尤其是涉及一种增强文本合成图像的生成方法和系统。


背景技术:

2.在ocr领域中,大部分的任务都需要复杂且不重复但相似的图像数据,来训练模型,一般认为,数据越多,模型识别的鲁棒性和准确性越高。由于人工标记图像费时费力,所以诞生了许多合成图像的方法,最常见的就是基于生成对抗网络的图像合成方式以及传统的synthtext类的文字图像合成方式,前者可以保留文本图像的风格,后者简单易用。虽然上述两种方式可以完成大部分图像合成任务,但仍然存在一些缺点。比如:现有的大部分基于gan的图片合成方式会提取背景,保留文字风格,但在遇到阴影,发光,粗体等复杂风格时,合成的新字符与原图的风格,尤其是在字形上相差甚远,同时在合成的语料长度与原图不一致时,也无法获得很好的合成结果,导致训练时效果很好,但是在实际应用中不尽如人意;而传统的synthtext类的方法使用将文字写入背景图的方式,使用的噪声比较规则,无法模拟真实场景,图像的复杂度不够,容易导致过拟合。
3.另外,在真实场景的测试中,经常可以发现:由于ocr检测阶段文本框边缘距文字中心距离的不合理,导致文本识别时对文本边缘的检测经常出错;同时仅使用合成数据进行训练,无法得到很好的识别效果,合理利用小样本的真实数据与大量的合成数据,是提升识别效果的关键。


技术实现要素:

4.本发明的目的就是为了克服上述现有技术存在仅使用合成数据进行训练,无法得到很好的识别效果的缺陷而提供一种合理利用小样本的真实数据与大量的合成数据的增强文本合成图像的生成方法和系统。
5.本发明的目的可以通过以下技术方案来实现:
6.一种增强文本合成图像的生成方法,包括以下步骤:
7.文本信息收集步骤:获取目标场景和真实数据,根据目标场景收集目标字体、背景和语料,对所述真实数据进行字符标注,切割为单个字符,构成单字符图像库;
8.文本图像合成步骤:获取字体配置,根据收集的语料进行语料筛选,从收集的目标字体和单字符图像库中,根据筛选出的语料选取字符,拼接为字符串,生成字符图像;基于所述真实数据中的场景图片,生成背景图片;根据所述字体配置和字符图像生成位置区域,并与所述背景图片拼接,得到文本图像。
9.进一步地,所述拼接为字符串的过程具体为:
10.根据获取的字符,构建不同字符类型的列表,将筛选出的语料作为模板字符串;
11.将模板字符串中不同类型的字符给予不同的标记,每个标记对应不同的字符类型的列表;
12.遍历所述模板字符串,遇到每个标记,则从对应字符类型的列表中选取字符,最终拼接为字符串,并重复进行预设的第一次数,得到第一次数的字符串结果。
13.进一步地,生成的所述位置区域包括生成字符图像的左上角横坐标和左上角纵坐标,所述字符图像的左上角横坐标和左上角纵坐标的计算表达式为:
14.wordx=(bgwidth-wordwidth)/2
15.wordy=(bgheight-wordheight)/2
16.式中,wordx为字符图像的左上角横坐标,wordy为字符图像的左上角纵坐标,bgwidth为文本图像中背景图的宽度,bgheight为文本图像中背景图的高度,wordwidth为字符图像的宽度,wordheight为字符图像的高度。
17.进一步地,所述增强文本合成图像的生成方法还包括字符边缘处理步骤:对合成的文本图像的边缘进行字符笔画的消除,得到新的文本图像。
18.进一步地,所述对合成的文本图像的边缘进行字符笔画的消除包括确定删除边缘部分的高度、宽度和左上角坐标,从而对合成的文本图像的边缘进行字符笔画的消除;
19.删除边缘部分的高度和宽度的计算表达式为:
20.patchwidth=random(minwratio,maxwratio
×
charwidth
21.patchheight=random(minhratio,maxhratio
×
charheight
22.式中,patchwidth为删除边缘部分的宽度,patchheight为删除边缘部分的高度,minwratio为删除边缘部分的宽度比例最小值,maxwratio为删除边缘部分的宽度比例最大值,minhratio为删除边缘部分的高度比例最小值,maxhratio为删除边缘部分的高度比例最大值,random为随机函数,charwidth为单个字符宽度,charheight为单个字符高度。
23.进一步地,删除边缘部分的左上角坐标的计算表达式为:
[0024][0025][0026]
式中,patchx为删除边缘部分的左上角横坐标,patchy为删除边缘部分的左上角纵坐标,bgx为文本图像中背景图的左上角横坐标,bgy为文本图像中背景图的左上角纵坐标,bgwidth为文本图像中背景图的宽度,bgheight为文本图像中背景图的高度,loc为删除边缘部分本身的位置,right为背景图的右侧,left为背景图的左侧,up为背景图的顶部,bottom为背景图的底部。
[0027]
进一步地,所述增强文本合成图像的生成方法还包括对获取的文本图像增加噪声、增加透视变化、增加颜色、画线、使字符发光和/或增加文字阴影。
[0028]
进一步地,基于所述真实数据中的场景图片,生成背景图片具体为:
[0029]
从真实数据中的场景图片中截取部分区域,采用平铺的方式进行扩展,得到背景图片。
[0030]
进一步地,所述字体配置包括字体类型、字号、间距和颜色配置。
[0031]
本发明还提供一种增强文本合成图像的生成系统,包括:
[0032]
文本信息收集模块,被配置为,获取目标场景和真实数据,根据目标场景收集目标字体、背景和语料,对所述真实数据进行字符标注,切割为单个字符,构成单字符图像库;
[0033]
文本图像合成模块,被配置为,获取字体配置,根据收集的语料进行语料筛选,从收集的目标字体和单字符图像库中,根据筛选出的语料选取字符,拼接为字符串,生成字符图像;基于所述真实数据中的场景图片,生成背景图片;根据所述字体配置和字符图像生成位置区域,并与所述背景图片拼接,得到文本图像;
[0034]
文本图像后处理模块,被配置为,对合成的文本图像的边缘进行字符笔画的消除,得到新的文本图像。
[0035]
与现有技术相比,本发明具有以下优点:
[0036]
(1)本发明针对现实场景中样本数据较小这一问题,为了更充分利用真实数据的特征,将文本图片分割成一个一个单个字符图片,在合成数据时,与合成数据进行拼接,让合成数据更加真实,同时可以更充分利用小样本的真实数据。
[0037]
(2)本发明在生成文本图像时,随机剔除数字或字母笔画的某一部分,用来解决由于文本检测不准确导致的边缘字符识别差的问题,同时增强模型识别的鲁棒性。
[0038]
(3)本发明考虑到从搜集整理的语料中随机采样容易获取到连续重复的字符串,同时,可能很难搜集到符合特定格式的语料,为此通过根据字符类型构建对应的列表和标记,从而在语料中根据标记从列表中选取字符构成字符串,能使得字符串符合特定格式,适用性更强。
附图说明
[0039]
图1为本发明实施例中提供的一种增强文本合成图像的生成方法的框图;
[0040]
图2为本发明实施例中提供的一种增强文本合成图像的生成方法的流程示意图;
[0041]
图3为本发明实施例中提供的一种背景图片生成过程示意图;
[0042]
图4为本发明实施例中提供的一种字符边缘消除处理结果示意图;
[0043]
图5为本发明实施例中提供的一种背景图左上角坐标,文本左上角坐标以及patch删除区域左上角坐标示意图。
具体实施方式
[0044]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0045]
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0047]
实施例1
[0048]
本实施例提供一种增强文本合成图像的生成方法,包括以下步骤:
[0049]
文本信息收集步骤:获取目标场景和真实数据,根据目标场景收集目标字体、背景
和语料,对所述真实数据进行字符标注,切割为单个字符,构成单字符图像库;
[0050]
文本图像合成步骤:获取字体配置,根据收集的语料进行语料筛选,从收集的目标字体和单字符图像库中,根据筛选出的语料选取字符,拼接为字符串,生成字符图像;基于所述真实数据中的场景图片,生成背景图片;根据所述字体配置和字符图像生成位置区域,并与所述背景图片拼接,得到文本图像;
[0051]
其中,字体配置包括字体类型、字号、间距和颜色配置;基于所述真实数据中的场景图片,生成背景图片具体为:从真实数据中的场景图片中截取部分区域,采用平铺的方式进行扩展,得到背景图片,更好的模拟真实场景。
[0052]
本实施例中,将位置区域设置在背景图中央,具体地,生成的所述位置区域包括生成字符图像的左上角横坐标和左上角纵坐标,所述字符图像的左上角横坐标和左上角纵坐标的计算表达式为:
[0053]
wordx=(bgwidth-wordwidth)/2
[0054]
wordy=(bgheight-wordheight)/2
[0055]
式中,wordx为字符图像的左上角横坐标,wordy为字符图像的左上角纵坐标,bgwidth为文本图像中背景图的宽度,bgheight为文本图像中背景图的高度,wordwidth为字符图像的宽度,wordheight为字符图像的高度。
[0056]
作为一种优选的实施方式,从搜集整理的语料中随机采样容易获取到连续重复的字符串,同时,可能很难搜集到符合特定格式的语料,为此本实施例中所述拼接为字符串的过程具体为:
[0057]
根据获取的字符,构建不同字符类型的列表,将筛选出的语料作为模板字符串;
[0058]
将模板字符串中不同类型的字符给予不同的标记,每个标记对应不同的字符类型的列表;
[0059]
遍历所述模板字符串,遇到每个标记,则从对应字符类型的列表中选取字符,最终拼接为字符串,并重复进行预设的第一次数,得到第一次数的字符串结果。
[0060]
作为一种优选的实施方式,为了解决两阶段文本识别时,即文本检测阶段产生的标记框不准确,尤其是会漏掉一部分边缘的文字这一问题,在生成合成数据时,就模拟了这一情况。随机对生成的文字区域的边缘部分进行字符笔划的消除,这样可以进一步提高识别模型的鲁棒性。
[0061]
所述增强文本合成图像的生成方法还包括字符边缘处理步骤:对合成的文本图像的边缘进行字符笔画的消除,得到新的文本图像。
[0062]
所述对合成的文本图像的边缘进行字符笔画的消除包括确定删除边缘部分的高度、宽度和左上角坐标,从而对合成的文本图像的边缘进行字符笔画的消除;
[0063]
删除边缘部分的高度和宽度的计算表达式为:
[0064]
patchwidth=random(minwratio,maxwratio
×
charwidth
[0065]
patchheight=random(minhratio,maxhratio
×
charheight
[0066]
式中,patchwidth为删除边缘部分的宽度,patchheight为删除边缘部分的高度,minwratio为删除边缘部分的宽度比例最小值,maxwratio为删除边缘部分的宽度比例最大值,minhratio为删除边缘部分的高度比例最小值,maxhratio为删除边缘部分的高度比例最大值,random为随机函数,charwidth为单个字符宽度,charheight为单个字符高度。
[0067]
删除边缘部分的左上角坐标的计算表达式为:
[0068][0069][0070]
式中,patchx为删除边缘部分的左上角横坐标,patchy为删除边缘部分的左上角纵坐标,bgx为文本图像中背景图的左上角横坐标,bgy为文本图像中背景图的左上角纵坐标,bgwidth为文本图像中背景图的宽度,bgheight为文本图像中背景图的高度,loc为删除边缘部分本身的位置,right为背景图的右侧,left为背景图的左侧,up为背景图的顶部,bottom为背景图的底部。
[0071]
作为一种优选的实施方式,所述增强文本合成图像的生成方法还包括对获取的文本图像增加噪声、增加透视变化、增加颜色、画线、使字符发光和/或增加文字阴影。
[0072]
将上述优选的实施方式进行任意组合可以得到更优的实施方式,下面对一种最优的实施方式进行具体描述。
[0073]
如图1和图2所示,一种增强文本合成图像的生成方法,包括以下步骤:
[0074]
1、文本信息收集步骤s1,负责收集合成图片所要使用的资源;
[0075]
a)根据目标场景搜集目标字体,可以包含多种相似的字体,通常也会把常用的类似楷体、宋体、times new roman等字体加入。
[0076]
b)搜集与目标场景类似的背景,背景图片的清晰度尽量与实际场景一致,同时背景图片可以大一些,以保证可以放下比较长的文本。
[0077]
c)搜集整理语料,可以从网络上爬取有意义的文本,也可以创造一个常见字符的词典,从中随机生成语料。
[0078]
d)对于场景中少量的真实数据,进行标注,切割成单个字符,形成单字符图像库。
[0079]
2、文本图像合成步骤s2,负责合成初步的文字区域图像。主要包括以下五个步骤:
[0080]
a)确定字体,包括字体类型的确定,以及字号,间距,颜色等配置的读取,一般从字体库中随机选择字体;
[0081]
b)确定语料,从搜集整理的语料中随机采样容易获取到连续重复的字符串,同时,可能很难搜集到符合特定格式的语料。为此,额外采用一种基于有限字符词典合成字符串的方式,步骤如下:
[0082]
输入:数字列表digitlist,字母列表letterlist,其他字符列表charlist,模板字符串templatestr,输出的字符串数量outnum;
[0083]
输出:符合模板格式的字符串列表outlist;
[0084]
过程:遍历template,对不同类型的字符给予不同标记,如果某个字符是数字,标记为0,字母,标记为1,其他字符,标记为2,得到模板列表templatelist。
[0085]
遍历templatelist,遇到0就从digitlist中随机选择一个字符,1就从letterlist中随机选择一个字符,2就从charlist中随机选择一个字符,拼接输出一个字符串,遍历outnum次,输出outlist最终结果。
[0086]
c)确定背景,由于搜集到的背景图的质量无法控制,所以进一步采用利用真实场景图片生成背景的方式。步骤如下:
[0087]
手动截取小区域文字背景,采用平铺方式扩大背景尺寸,对于每张真实图片,截取不同的小区域文字背景,来生成更加丰富的背景图,更好的模拟真实场景。示意图如图3所示:左侧是场景的真实图像,中间是从场景真实图像中提取的小区域,右侧是将小区域进行平铺生成的完整背景图。
[0088]
d)选择字符图像,为了充分利用小样本的真实数据,同时增加合成数据的复杂性,需要在合成的数据中混入真实数据。在c步骤之后,采取如下方式:
[0089]
对生成字符串没有格式要求的场景,可以随机从真实字符库图像中选择一个字符图像;对生成字符串有要求的场景,则要从b步骤中产生的语料中进行选择和替换,保证符合规则。
[0090]
e)生成文字区域,根据所选语料的字体,字号,字体间隔等进行计算,保证写入背景时文字区域位于背景中央。当对生成的字符串没有要求时,直接将选择的字符图像随机放在生成的语料内容的附近的位置;如果是对生成的字符串格式有要求,则所选择的单个字符图像的内容会符合规则,比如:当要求某个位置是数字时,则必须选择数字类的单个字符图像。这里注意:会保留所选择字符图像的背景。
[0091]
3、文本图像后处理步骤s3,负责对文本区域合成模块的结果进行处理,主要是进行字符边缘处理和其他文字特效的处理。
[0092]
a)为了解决两阶段文本识别时,即文本检测阶段产生的标记框不准确,尤其是会漏掉一部分边缘的文字这一问题,在生成合成数据时,就模拟了这一情况。随机对生成的文字区域的边缘部分进行字符笔划的消除,这样可以进一步提高识别模型的鲁棒性。
[0093]
示意图如图4所示,第一行是直接使用文本检测结果得到的结果,可以看到,会出现标记框没有将文字完全包含,而是将文字的部分边缘排除在外,为此,在进行数据合成时,就选择对文字区域的边缘进行随机的消除,来更好的拟合真实场景的应用。第二行和第三行图像是进行文字区域边缘随机消除后的效果。
[0094]
字符边缘处理的步骤如下:
[0095]
首先根据以下公式计算出删除边缘部分的高度patchheight,宽度patchwidth以及左上角坐标(patchx,patchy),其中,wordx和wordy表示文本语料在背景图像中左上角的位置,bg_前缀开头的表示背景图相关的信息,word_前缀开头的表示文本语料相关的信息,patch_前缀开头的表示删除边缘区域相关的信息。另外,patchwidth通过单个字符宽度乘以一个随机比例来获得,patchheight同理。
[0096]
patchwidth=random(minwratio,maxwratio
×
charwidth
[0097]
patchheight=random(minhratio,maxhratio
×
charheight
[0098]
式中,patchwidth为删除边缘部分的宽度,patchheight为删除边缘部分的高度,minwratio为删除边缘部分的宽度比例最小值,maxwratio为删除边缘部分的宽度比例最大值,minhratio为删除边缘部分的高度比例最小值,maxhratio为删除边缘部分的高度比例最大值,random为随机函数,charwidth为单个字符宽度,charheight为单个字符高度。
[0099]
关于删除区域左上角位置的坐标,与删除区域本身的位置loc相关,当位于背景区域的上下左右部分时,其计算也不完全相同,计算方式如下:
[0100]
[0101][0102]
式中,patchx为删除边缘部分的左上角横坐标,patchy为删除边缘部分的左上角纵坐标,bgx为文本图像中背景图的左上角横坐标,bgy为文本图像中背景图的左上角纵坐标,bgwidth为文本图像中背景图的宽度,bgheight为文本图像中背景图的高度,loc为删除边缘部分本身的位置,right为背景图的右侧,left为背景图的左侧,up为背景图的顶部,bottom为背景图的底部。
[0103]
背景图左上角坐标,文本左上角坐标以及patch删除区域左上角坐标示意图如图5所示。
[0104]
其中,wordx为字符图像的左上角横坐标,wordy为字符图像的左上角纵坐标,生成的所述位置区域包括生成字符图像的左上角横坐标和左上角纵坐标,所述字符图像的左上角横坐标和左上角纵坐标的计算表达式为:
[0105]
wordx=(bgwidth-wordwidth)/2
[0106]
wordy=(bgheight-wordheight)/2
[0107]
式中,bgwidth为文本图像中背景图的宽度,bgheight为文本图像中背景图的高度,wordwidth为字符图像的宽度,wordheight为字符图像的高度。
[0108]
b)常见的用于文字合成领域的特效包括:加入噪声,包括高斯噪声,随机噪声,椒盐噪声等;透视变化;加入颜色;画线,比如模拟表格的边框或者下划线,删除线等;文字发光;文字阴影等,可以在配置文件中进行配置,包括是否启用该特效,以及使用的概率等。
[0109]
本实施例还提供一种增强文本合成图像的生成系统,包括:
[0110]
文本信息收集模块,被配置为,获取目标场景和真实数据,根据目标场景收集目标字体、背景和语料,对所述真实数据进行字符标注,切割为单个字符,构成单字符图像库,具体为执行上述文本信息收集步骤;
[0111]
文本图像合成模块,被配置为,获取字体配置,根据收集的语料进行语料筛选,从收集的目标字体和单字符图像库中,根据筛选出的语料选取字符,拼接为字符串,生成字符图像;基于所述真实数据中的场景图片,生成背景图片;根据所述字体配置和字符图像生成位置区域,并与所述背景图片拼接,得到文本图像,具体为执行上述文本图像合成步骤;
[0112]
文本图像后处理模块,被配置为,对合成的文本图像的边缘进行字符笔画的消除,得到新的文本图像,具体为执行上述字符边缘处理步骤以及对获取的文本图像增加噪声、增加透视变化、增加颜色、画线、使字符发光、增加文字阴影等。
[0113]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1