基于帧插值的字库生成方法、电子设备、存储介质和系统与流程

文档序号:33107423发布日期:2023-02-01 01:38阅读:26来源:国知局
基于帧插值的字库生成方法、电子设备、存储介质和系统与流程

1.本公开涉及字库领域,具体涉及一种基于帧插值的字库生成方法、电子设备、存储介质和系统。


背景技术:

2.文字在我们的生活中随处可见,它是信息传播的主要工具之一,为了保证信息传播的有效,文字在不同的场合,不同的情境,不同的设备上,呈现的方式和形态都不同。多字重字库是为了满足不同的展示效果而出现一个概念,它是一系列风格相同,字重不同的字体。所谓字重就是字体的笔画粗细,国际标准iso规定了字重的9种级别,从w1-w9,依次为特细、非常细、细、稍细、中等、稍粗、粗、非常粗、特粗。多样化的字重能够增加字体的适用性,一种字体可能出现在标题,正文,海报以及嵌入式设备的小尺寸显示器上,如果使用同一种字重,那么就很难达到预期的呈现效果。因此制作不同字重的字体对字体的适用性来说十分的重要。
3.最基本的制作多字重字库的方法是设计师先设计好一套字库,然后通过编辑每个字符的控制点来调整字重,以达到修改字重的同时又不会降低字体的风格特点和字面的美感。然而,这种方法的工作量与字库的字符集大小和需要制作多少个字重有关,通常制作一套风格的九款字重需要至少几个月的时间才能完成。
4.为了减少设计师的工作量,加快多字重字库的制作,常用的方法是对点法,即让设计师设计好最粗和最细的两个字重的字库,然后工程师根据两套字库中相同字符的相同控制点对应起来,然后在对应控制点之间的位置上依次移动控制点,从而实现不同的字重效果。但对点法虽然大幅的减少了设计师的工作量,将工作量从设计9款不同字重缩短到只需要设计2款字重,但是对点法存在很大的局限。因为汉字每个字符的组成结构、部件的空间间隙都不相同,如果机械化按照比例移动控制点的位置会使的整个字形结构看起来不协调,字体的风格也发生变化,而且还没有普适性,需要针对每一种字体调试参数。因此对点法只适用于风格简单的少数字体,应用范围小并且生成的字库美观程度也不够。


技术实现要素:

5.本公开提供一种基于帧插值的字库生成方法、电子设备、存储介质和系统,以至少解决上述背景技术中存在的至少一个技术问题。
6.在本公开的较佳实施方式中,本技术实施例提供了一种基于帧插值的字库生成方法,所述方法包括:
7.获取视频数据并逐帧保存成图片,得到由所述图片组成的视频帧数据集;
8.使用所述视频帧数据集预训练卷积神经网络,得到预训练后的卷积神经网络;
9.使用多字重字体数据集微调预训练后的卷积神经网络的网络参数,得到微调后的卷积神经网络;
10.将同一风格的大字重字体和小字重字体输入微调后的卷积神经网络,得到所述同
一风格的多字重字库。
11.进一步,所述使用所述视频帧数据集预训练卷积神经网络,得到预训练后的卷积神经网络,包括如下步骤:
12.将保存的视频数据的第i帧和第i+2帧的视频帧图片在通道维度上拼接后作为卷积神经网络的输入;
13.将预测的第i+1帧的视频帧图片作为卷积神经网络的输出;
14.根据损失函数来更新卷积神经网络的网络参数;
15.当预训练的卷积神经网络收敛时停止预训练,得到预训练后的卷积神经网络。
16.进一步,所述使用多字重字体数据集微调预训练后的卷积神经网络的网络参数,得到微调后的卷积神经网络,包括如下步骤:
17.获取多字重字体数据集;
18.将所述多字重字体数据集中相隔一个字重的两个字体数据作为预训练后的卷积神经网络的输入,生成中间字重的字体数据;
19.根据损失函数来更新预训练后的卷积神经网络的网络参数;
20.当微调的卷积神经网络收敛时停止微调,得到微调后的卷积神经网络。
21.进一步,所述损失函数同时使用平均绝对误差损失函数和感知损失函数,平均绝对误差损失函数和感知损失函数的计算公式如下:
22.l1_loss=||g(fi,f
i+2
)-f
i+1
||1[0023][0024]
其中,l1_loss表示平均绝对误差损失函数,g表示构建的卷积神经网络g,fi、f
i+1
和f
i+2
分别表示视频数据的第i帧、第i+1帧和第i+2帧的视频帧,lpips_loss表示感知损失函数,weight
l
表示第l层的网络参数的系数,

表示第l层的网络参数的系数与特征的按位点乘运算,和分别表示卷积神经网络g输出的结果与第i+1帧的目标视频帧经过深度卷积神经网络vgg的第l层的特征图,并且特征图的尺寸为h
×
w。
[0025]
进一步,卷积神经网络收敛的条件为:分别计算平均绝对误差损失函数和感知损失函数的值;将计算得到的两个值求和,当两个值的和不再下降时,卷积神经网络收敛。
[0026]
进一步,在使用所述视频帧数据集预训练卷积神经网络之前还包括构建卷积神经网络,所述卷积神经网络由三个模块组成:
[0027]
特征压缩编码模块,所述特征压缩编码模块用于将输入的视频帧编码变成4维张量后进行压缩,从而获得压缩后的4维张量;所述特征压缩编码模块由卷积网络层、特征归一化层、特征激活层和下采样网络层组成,其中,所述卷积网络层用于将视频帧进行线性变换,得到卷积层的特征;所述特征归一化层用于将卷积层得到的特征,进行数值归一化操作,使得特征的范围保持在[-1,1]之间;所述特征激活层用于将归一化的特征进行非线性变换,获得非线性的特征;所述下采样网络层用于将获得的非线性特征,在第2和第3个维度上进行下采样操作,获得更小尺寸的非线性特征;
[0028]
特征转移模块,所述特征转移模块用于将特征压缩编码模块提取的特征进行多次非线性变换,使得经过非线性变换以后的特征更加具有表征能力,通过在残差层中增加自
注意力机制来实现;其中,所述残差层用于加快网络收敛的速度,稳定网络的输出;所述自注意力机制用于提取局部特征,便于网络参数的更新;
[0029]
特征解码模块,所述特征解码模块用于将非线性变换后的特征解码到图像空间并变换成图像输出;所述特征解码模块由二维的反向卷积网络层、特征实例归一化层、特征激活层和上采样网络层组成,所述反向卷积网络层用于特征的解码,所述特征实例归一化层用于特征数值的归一化,保证训练的稳定性;所述特征激活层用于将归一化的特征进行非线性变换,获得非线性的特征;所述上采样网络层用于放大特征的尺寸,补全空间信息。
[0030]
在本公开的较佳实施方式中,本技术实施例还提供了一种基于帧插值的字库生成系统,包括:
[0031]
视频帧数据集生成模块,用于获取视频数据并逐帧保存成图片,得到由所述图片组成的视频帧数据集;
[0032]
预训练模块,用于使用所述视频帧数据集预训练卷积神经网络,得到预训练后的卷积神经网络;
[0033]
微调模块,用于使用多字重字体数据集微调预训练后的卷积神经网络的网络参数,得到微调后的卷积神经网络;
[0034]
多字重字库生成模块,用于将同一风格的大字重字体和小字重字体输入微调后的卷积神经网络,得到所述同一风格的多字重字库。
[0035]
进一步,所述基于帧插值的字库生成系统还包括卷积神经网络构建模块,所述卷积神经网络由三个模块组成:
[0036]
特征压缩编码模块,所述特征压缩编码模块用于将输入的视频帧编码变成4维张量后进行压缩,从而获得压缩后的4维张量;所述特征压缩编码模块由卷积网络层、特征归一化层、特征激活层和下采样网络层组成,其中,所述卷积网络层用于将视频帧进行线性变换,得到卷积层的特征;所述特征归一化层用于将卷积层得到的特征,进行数值归一化操作,使得特征的范围保持在[-1,1]之间;所述特征激活层用于将归一化的特征进行非线性变换,获得非线性的特征;所述下采样网络层用于将获得的非线性特征,在第2和第3个维度上进行下采样操作,获得更小尺寸的非线性特征;
[0037]
特征转移模块,所述特征转移模块用于将特征压缩编码模块提取的特征进行多次非线性变换,使得经过非线性变换以后的特征更加具有表征能力,通过在残差层中增加自注意力机制来实现;其中,所述残差层用于加快网络收敛的速度,稳定网络的输出;所述自注意力机制用于提取局部特征,便于网络参数的更新;
[0038]
特征解码模块,所述特征解码模块用于将非线性变换后的特征解码到图像空间并变换成图像输出;所述特征解码模块由二维的反向卷积网络层、特征实例归一化层、特征激活层和上采样网络层组成,所述反向卷积网络层用于特征的解码,所述特征实例归一化层用于特征数值的归一化,保证训练的稳定性;所述特征激活层用于将归一化的特征进行非线性变换,获得非线性的特征;所述上采样网络层用于放大特征的尺寸,补全空间信息。
[0039]
在本公开的较佳实施方式中,本公开实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的基于帧插值的字库生成方法。
[0040]
在本公开的较佳实施方式中,本公开实施例还提供一种计算机可读存储介质,其
上存储有计算机程序,所述程序被处理器执行时实现上述的基于帧插值的字库生成方法的步骤。
[0041]
本公开的有益效果是:本公开使用视频数据作为预训练数据,将多字重字体的生成问题建模为连续帧插值问题,使用现有的多字重字体数据集微调构建的卷积神经网络的网络参数,从而在最粗字重和最细字重之间生成多种不同的字重。本公开大大缩短了制作其他字重所需要的时间,不仅提高了生成效果,而且生成其他字重的效果比对点法制作出来的字形更加美观合理,风格特征更加明显,更加便于阅读。
附图说明
[0042]
图1为基于帧插值的字库生成方法的流程图;
[0043]
图2为卷积神经网络的模块结构图;
[0044]
图3为基于帧插值的字库生成系统中的各模块组成图;
[0045]
图4为字体字重在45-65之间的多字重生成效果图。
具体实施方式
[0046]
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0047]
实施例1
[0048]
请参阅附图1,根据本公开示例性实施例提出的基于帧插值的字库生成方法,针对背景技术中提到的技术问题,使用视频数据作为预训练数据,将多字重字体的生成问题建模为连续帧插值问题,使用现有的多字重字体数据集微调构建的卷积神经网络的网络参数,从而适应字体域数据的生成,提高生成效果。
[0049]
作为示例的基于帧插值的字库生成方法的实现过程包含以下步骤:
[0050]
收集视频数据,并将视频数据逐帧保存成图片格式,并且以帧序号命名,fi、f
i+1
和f
i+2
分别表示视频数据的第i帧、第i+1帧和第i+2帧的视频帧。
[0051]
构建卷积神经网络,所述卷积神经网络主要由三个模块构成:特征压缩编码模块、特征转移模块和特征解码模块。卷积神经网络的模块结构如图2所示,其中:
[0052]
特征压缩编码模块用于将输入的视频帧编码变成4维张量后进行压缩,从而获得压缩后的4维张量,所述特征压缩编码模块使用的{conv-bn-relu}xn-downsample的网络结构,其中n代表{conv-bn-relu}模块和downsample出现的次数,在本方案中n=[4,8],采用2个特征压缩编码子模块enc构成特征压缩编码模块,其中,conv指卷积网络层,用于将视频帧进行线性变换,得到卷积层的特征;bn指特征归一化层,用于将卷积层得到的特征,进行数值归一化操作,使得特征的范围保持在[-1,1]之间;relu指特征激活层,用于将归一化的特征进行非线性变换,获得非线性的特征;downsample指下采样网络层,用于将获得的非线性特征,在第2和第3个维度上进行下采样操作,获得更小尺寸的非线性特征,比如:(1,1,4,4)维度的非线性特征,经过下采样层可以得到(1,1,2,2)维度的非线性特征;
[0053]
特征转移模块用于将特征压缩编码模块提取的特征进行多次非线性变换,使得经
过非线性变换以后的特征更加具有表征能力;所述特征转移模块使用的是残差结构链接,主要流程部分使用的是自注意力self-attention的结构,残差层使用的1x1的卷积模块链接,本方案中使用4个特征转移子模块res构成特征转移模块,其中,所述残差层用于加快网络收敛的速度,稳定网络的输出;所述自注意力机制用于提取局部特征,便于网络参数的更新;
[0054]
特征解码模块用于将非线性变换后的特征解码到图像空间并变换成图像输出;所述特征解码模块是由{conv2dtranspose-in-relu}xm-upsample构成,其中m代表{conv2dtranspose-in-relu}模块和upsample出现的次数,在本方案中m=[8,4],采用2个特征解码子模块dec构成特征压缩编码模块,其中,conv2dtranspose指二维的反向卷积网络层,用于特征的解码;in指特征实例归一化层,用于特征数值的归一化,保证训练的稳定性;relu指特征激活层,用于将归一化的特征进行非线性变换,获得非线性的特征;upsample指上采样网络层,用于放大特征的尺寸,补全空间信息,比如一个(1,1,2,2)维度的特征,经过上采样层以后,会变为(1,1,4,4)。
[0055]
将第i帧和第i+2帧在通道的维度上拼接在一起作为神经网络的输入。
[0056]
卷积神经网络的功能是预测第i+1帧的内容,由卷积神经网络的输出f_int与第i+1帧计算损失来更新卷积神经网络的网络参数。
[0057]
计算平均绝对误差损失函数l1_loss和感知损失函数lpips_loss的值,使得两个值的和不再下降时停止预训练,l1_loss和lpips_loss的计算公式如下:
[0058]
l1_loss=||g(fi,f
i+2
)-f
i+1
||1[0059][0060]
其中,l1_loss表示平均绝对误差损失函数,g表示构建的卷积神经网络g,fi、f
i+1
和f
i+2
分别表示视频数据的第i帧、第i+1帧和第i+2帧的视频帧,lpips_loss表示感知损失函数,weight
l
表示第l层的网络参数的系数,

表示第l层的网络参数的系数与特征的按位点乘运算,和分别表示卷积神经网络g输出的结果与第i+1帧的目标视频帧经过深度卷积神经网络vgg的第l层的特征图,并且特征图的尺寸为h
×
w,其中深度卷积神经网络vgg是牛津大学科学工程系研发出的经典卷积神经网络,它是一个已经训练完成的卷积神经网络。
[0061]
在使用视频数据预训练卷积神经网络以后,使用多字重字体数据集对预训练后的卷积神经网络进行网络参数的微调,达到数据分布一致的目的。多字重字体数据集主要采用设计师设计完成的多字重字体,比如汉仪旗黑,一共有15个字重。
[0062]
以相隔1个字重的两个字体数据作为输入,生成中间字重的字体数据。使用的两个损失函数与预训练阶段的相同。
[0063]
计算平均绝对误差损失函数l1_loss和感知损失函数lpips_loss的值,使得两个值的和不再下降时,预训练后的卷积神经网络收敛,停止微调,得到微调后的卷积神经网络。
[0064]
将同一风格的大字重字体和小字重字体输入微调后的卷积神经网络,得到所述同一风格的多字重字库,生成的多字重字体的效果图如图4所示,从左到右的字重大小分别为
45、47、49、...、65。
[0065]
实施例2
[0066]
如图3所示,作为示例的基于帧插值的字库生成系统,包括:
[0067]
视频帧数据集生成模块,用于收集视频数据,并将视频数据逐帧保存成图片,并且以帧序号fi、f
i+1
和f
i+2
命名,其中fi、f
i+1
和f
i+2
分别表示视频数据的第i帧、第i+1帧和第i+2帧的视频帧。
[0068]
预训练模块,用于将第i帧和第i+2帧在通道的维度上拼接在一起作为神经网络的输入。卷积神经网络的功能是预测第i+1帧的内容,由卷积神经网络的输出f_int与第i+1帧计算损失来更新卷积神经网络的网络参数,具体为:计算平均绝对误差损失函数l1_loss和感知损失函数lpips_loss的值,使得两个值的和不再下降时,卷积神经网络收敛,停止预训练,得到预训练后的卷积神经网络,l1_loss和lpips_loss的计算公式如下:
[0069]
l1_loss=||g(fi,f
i+2
)-f
i+1
||1[0070][0071]
其中,l1_loss表示平均绝对误差损失函数,g表示构建的卷积神经网络g,fi、f
i+1
和f
i+2
分别表示视频数据的第i帧、第i+1帧和第i+2帧的视频帧,lpips_loss表示感知损失函数,weight
l
表示第l层的网络参数的系数,

表示第l层的网络参数的系数与特征的按位点乘运算,和分别表示卷积神经网络g输出的结果与第i+1帧的目标视频帧经过深度卷积神经网络vgg的第l层的特征图,并且特征图的尺寸为h
×
w,其中深度卷积神经网络vgg是牛津大学科学工程系研发出的经典卷积神经网络,它是一个已经训练完成的卷积神经网络。
[0072]
微调模块,用于使用多字重字体数据集对预训练后的卷积神经网络进行网络参数的微调,达到数据分布一致的目的,具体为:将所述多字重字体数据集中相隔1个字重的两个字体数据作为输入,生成中间字重的字体数据,计算平均绝对误差损失函数l1_loss和感知损失函数lpips_loss的值,使得两个值的和不再下降时,预训练后的卷积神经网络收敛,停止微调,得到微调后的卷积神经网络。多字重字体数据集主要采用设计师设计完成的多字重字体,比如汉仪旗黑,一共有15个字重。微调模块使用的两个损失函数与上述预训练模块中的相同。
[0073]
多字重字库生成模块,用于将同一风格的大字重字体和小字重字体输入微调后的卷积神经网络,得到所述同一风格的多字重字库。
[0074]
进一步,基于帧插值的字库生成系统还包括构建卷积神经网络,所述卷积神经网络主要由三个模块构成:特征压缩编码模块、特征转移模块和特征解码模块。卷积神经网络的模块结构如图2所示,其中:
[0075]
特征压缩编码模块用于将输入的视频帧编码变成4维张量后进行压缩,从而获得压缩后的4维张量,所述特征压缩编码模块使用的{conv-bn-relu}xn-downsample的网络结构,其中n代表{conv-bn-relu}模块和downsample出现的次数,在本方案中n=[4,8],采用2个特征压缩编码子模块enc构成特征压缩编码模块,其中,conv指卷积网络层,用于将视频帧进行线性变换,得到卷积层的特征;bn指特征归一化层,用于将卷积层得到的特征,进行
数值归一化操作,使得特征的范围保持在[-1,1]之间;relu指特征激活层,用于将归一化的特征进行非线性变换,获得非线性的特征;downsample指下采样网络层,用于将获得的非线性特征,在第2和第3个维度上进行下采样操作,获得更小尺寸的非线性特征,比如:(1,1,4,4)维度的非线性特征,经过下采样层可以得到(1,1,2,2)维度的非线性特征;
[0076]
特征转移模块用于将特征压缩编码模块提取的特征进行多次非线性变换,使得经过非线性变换以后的特征更加具有表征能力;所述特征转移模块使用的是残差结构链接,主要流程部分使用的是自注意力self-attention的结构,残差层使用的1x1的卷积模块链接,本方案中使用4个特征转移子模块res构成特征转移模块,其中,所述残差层用于加快网络收敛的速度,稳定网络的输出;所述自注意力机制用于提取局部特征,便于网络参数的更新;
[0077]
特征解码模块用于将非线性变换后的特征解码到图像空间并变换成图像输出;所述特征解码模块是由{conv2dtranspose-in-relu}xm-upsample构成,其中m代表{conv2dtranspose-in-relu}模块和upsample出现的次数,在本方案中m=[8,4],采用2个特征解码子模块dec构成特征压缩编码模块,其中,conv2dtranspose指二维的反向卷积网络层,用于特征的解码;in指特征实例归一化层,用于特征数值的归一化,保证训练的稳定性;relu指特征激活层,用于将归一化的特征进行非线性变换,获得非线性的特征;upsample指上采样网络层,用于放大特征的尺寸,补全空间信息,比如一个(1,1,2,2)维度的特征,经过上采样层以后,会变为(1,1,4,4)。
[0078]
实施例3
[0079]
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例1中的基于帧插值的字库生成方法。
[0080]
本公开实施例3仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0081]
电子设备可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备的组件可以包括但不限于:至少一个处理器、至少一个存储器、连接不同系统组件(包括存储器和处理器)的总线。
[0082]
总线包括数据总线、地址总线和控制总线。
[0083]
存储器可以包括易失性存储器,例如随机存取存储器(ram)和/或高速缓存存储器,还可以进一步包括只读存储器(rom)。
[0084]
存储器还可以包括具有一组(至少一个)程序模块的程序工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0085]
处理器通过运行存储在存储器中的计算机程序,从而执行各种功能应用以及数据处理。
[0086]
电子设备也可以与一个或多个外部设备(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其
它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
[0087]
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0088]
实施例4
[0089]
一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述程序被处理器执行时实现实施例1中的基于帧插值的字库生成方法的步骤。
[0090]
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
[0091]
在可能的实施方式中,本公开还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1中所述的基于帧插值的字库生成方法的步骤。
[0092]
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
[0093]
尽管已经示出和描述了本公开的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本公开的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本公开的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1