一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

字体生成模型训练方法、字库建立方法、装置及设备与流程

2021-12-14 23:25:00 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,具体涉及计算机视觉和深度学习技术领域,可应用于ocr(optical character recognition,光学字符识别)等场景。


背景技术:

2.字体生成一直是国内外许多研究者着重研究的课题,在字体设计行业有着广泛的应用价值。因此,如何满足风格多样性的字体生成需求,成为字体生成领域重点关注的问题。


技术实现要素:

3.本公开实施例提供了一种字体生成模型训练方法、字库建立方法、装置及设备,能够提高字体生成模型学习字体特征的能力,进而提高字体生成模型生成字体级别字体的能力。
4.第一方面,本公开实施例提供了一种字体生成模型训练方法,包括:
5.将源域样本字输入到字体生成模型,得到第一目标域生成字;
6.将所述第一目标域生成字和预设的目标域样本字输入到字符分类模型,得到所述字体生成模型的第一特征损失;
7.将所述第一目标域生成字和所述目标域样本字输入到字体分类模型,得到所述字体生成模型的第二特征损失;
8.根据所述第一特征损失和/或所述第二特征损失确定目标特征损失;
9.根据所述目标特征损失更新所述字体生成模型的模型参数。
10.第二方面,本公开实施例提供了一种字库建立方法,包括:
11.将目标源域输入字输入到字体生成模型,得到目标域新字;
12.基于所述目标域新字建立字库;
13.其中,所述字体生成模型通过第一方面所述的字体生成模型训练方法训练得到。
14.第三方面,本公开实施例提供了一种字体生成模型训练装置,包括:
15.第一目标域生成字获取模块,用于将源域样本字输入到字体生成模型,得到第一目标域生成字;
16.第一特征损失获取模块,用于将所述第一目标域生成字和预设的目标域样本字输入到字符分类模型,得到所述字体生成模型的第一特征损失;
17.第二特征损失获取模块,用于将所述第一目标域生成字和所述目标域样本字输入到字体分类模型,得到所述字体生成模型的第二特征损失;
18.目标特征损失获取模块,用于根据所述第一特征损失和/或所述第二特征损失确定目标特征损失;
19.第一模型参数更新模块,用于根据所述目标特征损失更新所述字体生成模型的模型参数。
20.第四方面,本公开实施例提供了一种字库建立装置,包括:
21.目标域新字获取模块,用于将目标源域输入字输入到字体生成模型,得到目标域新字;
22.字库建立模块,用于基于所述目标域新字建立字库;
23.其中,所述字体生成模型通过第一方面所述的字体生成模型训练装置训练得到。
24.第五方面,本公开实施例提供了一种电子设备,包括:
25.至少一个处理器;以及
26.与所述至少一个处理器通信连接的存储器;其中,
27.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所提供的字体生成模型训练方法或第二方面实施例所提供的字库建立方法。
28.第六方面,本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面实施例所提供的字体生成模型训练方法或第二方面实施例所提供的字库建立方法。
29.第七方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面实施例所提供的字体生成模型训练方法或第二方面实施例所提供的字库建立方法。
30.本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字和预设的目标域样本字分别输入到字符分类模型和字体分类模型,得到字体生成模型的第一特征损失和第一特征损失,从而根据第一特征损失和/或第二特征损失确定的目标特征损失更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将目标源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,进而提高字体生成模型生成字体级别字体的能力。
31.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
32.附图用于更好地理解本方案,不构成对本公开的限定。其中:
33.图1是本公开实施例提供的一种字体生成模型训练方法的流程图;
34.图2是本公开实施例提供的一种字体生成模型训练方法的流程图;
35.图3是本公开实施例提供的一种字体生成模型的网络结构原理图;
36.图4是本公开实施例提供的一种字体生成模型的网络结构原理图;
37.图5是本公开实施例提供的一种第一特征损失的可视化效果示意图;
38.图6是本公开实施例提供的一种第二特征损失的可视化效果示意图;
39.图7是本公开实施例提供的一种第二特征损失的可视化效果示意图;
40.图8是本公开实施例提供的一种字体生成模型训练方法的原理图;
41.图9是本公开实施例提供的一种使用字符损失训练得到的字体生成模型的效果对
比示意图;
42.图10是本公开实施例提供的一种使用第一特征损失训练得到的字体生成模型的效果对比示意图;
43.图11是本公开实施例提供的一种使用第二特征损失训练得到的字体生成模型的效果对比示意图;
44.图12是本公开实施例提供的一种字库建立方法的流程图;
45.图13是本公开实施例提供的一种字体生成模型训练装置的结构图;
46.图14是本公开实施例提供的一种字库建立装置的结构图;
47.图15是用来实现本公开实施例的字体生成模型训练方法或字库建立方法的电子设备的结构示意图。
具体实施方式
48.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
49.字体生成是图像风格迁移领域中的一项新兴任务,图像风格迁移是将一张图像在保持内容不变的情况下转换成另外一种风格,是深度学习应用的热门研究方向。
50.目前可以采用gan(generative adversarial networks,生成式对抗网络)模型来实现字体生成。但是在基于gan模型的字体生成方案中,利用偏小数据量训练的网络,只能学习出一些相对较弱的特征,类似倾斜、大小、部分笔画的特征,无法学习出最具有用户风格的特征。也可以使用较大数据量训练的网络,虽然在风格上较强,但在训练集之外的汉字易产生错字。这些主流的研究成果,都很难达到字体级别的效果。
51.在一个示例中,图1是本公开实施例提供的一种字体生成模型训练方法的流程图,本实施例可适用于根据多种类型的特征损失训练优化字体生成模型的情况,该方法可以由字体生成模型训练装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是终端设备或服务器设备等,本公开实施例并不对执行字体生成模型训练方法的电子设备的类型进行限定。相应的,如图1所示,该方法包括如下操作:
52.s110、将源域样本字输入到字体生成模型,得到第一目标域生成字。
53.在本公开的一个可选实施例中,源域样本字可以是具有目标源域字体风格的图像。目标源域可以是某一种源域字体风格,源域字体风格例如可以是楷体、宋体或黑体等常规真实字体。也即,目标源域可以是楷体、宋体或黑体等常规真实字体等任意一种真实字体风格。第一目标域生成字可以是具有目标域字体风格的图像,目标域字体风格可以是用户手写字体或者其他艺术字字体等需要生成的风格类型。字体生成模型能够生成具有目标域字体风格的字体。
54.在本公开实施例中,在训练字体生成模型时,可以首先将一种类型的源域样本字输入到字体生成模型中。字体生成模型可以根据输入的源域样本字输出该源域样本字对应的第一目标域生成字。
55.示例性的,可以将包含楷体字“做”的图像作为源域样本字输入到字体生成模型,字体生成模型可以输出包含用户手写字“做”的图像。
56.s120、将所述第一目标域生成字和预设的目标域样本字输入到字符分类模型,得到所述字体生成模型的第一特征损失。
57.在本公开的一个可选实施例中,所述目标域样本字可以为具有目标域字体风格的图像。示例性的,第一目标域生成字是字体生成模型生成的包含手写字“做”的图像,目标域样本字是真实的包含手写字“做”字的图像,该真实的包含手写字“做”的图像可以是用户真实手写的字所生成图像。该用户真实手写的字所生成图像的获取可以来自于公开数据集,或者是经过了用户的授权。
58.其中,字符分类模型可以是从字符方面对第一目标域生成字的准确率进行精修的模型。可选的,字符分类模型可以是采用vgg19网络训练得到的。字符分类模型的训练样本可以是包含多种字体的图像,例如训练样本可以是包含了80多种字体和6700多个字的约45万张的图像。第一特征损失可以是字符分类模型根据第一目标域生成字和目标域样本字计算得到的差别特征,可以监督字体生成模型学习出更多的字体细节。
59.为了进一步提高字体生成模型对第一目标域生成字的字体特征学习能力,在训练字体生成模型的过程中,当字体生成模型生成第一目标域生成字之后,可以将第一目标域生成字输入至字符分类模型,以通过字符分类模型根据第一目标域生成字和预设的目标域样本字计算字体生成模型的第一特征损失。
60.s130、将所述第一目标域生成字和所述目标域样本字输入到字体分类模型,得到所述字体生成模型的第二特征损失。
61.其中,字体分类模型可以是从字体方面对第一目标域生成字的准确率进行精修的模型。可选的,字体分类模型同样可以是采用vgg19网络训练得到的。字体分类模型的训练样本可以是包含多种字体的图像,例如训练样本可以是包含了80多种字体和6700多个字的约45万张的图像。第二特征损失可以是字体分类模型根据第一目标域生成字和目标域样本字计算得到的差别特征,可以监督字体生成模型学习出更多的字体细节。
62.需要说明的是,字符分类模型与字体分类模型的模型结构虽然相同,但模型参数和模型功能不同。这是因为用于训练字符分类模型与字体分类模型的样本数据不同。具体的,训练字符分类模型的样本数据中,需要对样本字的字符类型进行标记,而训练字体分类模型的样本数据中,需要对样本字的字体类型进行标记。也即,字符分类模型用于区别字符,而字体分类模型用于区分字体。因此,字符分类模型计算得到的第一特征损失可以衡量字体生成模型在字符方面字体细节学习能力,如判断第一目标域生成字的字符特征是否与用户手写字的字符特征相匹配。而字体分类模型计算得到的第二特征损失可以衡量字体生成模型在字体方面字体细节学习能力,如判断第一目标域生成字的字体类型是否符合用户手写字的字体类型。由此可见,第一特征损失和第二特征损失可以从字符和字体两个方面来衡量字体生成模型学习字体细节的能力。
63.需要说明的是,图1仅是一种实现方式的效果示意图,本公开实施例并不对步骤s120和步骤s130之间的执行顺序进行限定。也即,可以先执行步骤s120,再执行步骤s130。或者,还可以先执行步骤s130,再执行步骤s120。或者,也还可以同时执行步骤s120和步骤s130。
64.s140、根据所述第一特征损失和/或所述第二特征损失确定目标特征损失。
65.其中,目标特征损失可以是用于简单训练字体生成模型的特征损失。
66.在本公开实施例中,在得到第一特征值和第二特征损失之后,可以进一步根据第一特征损失和/或第二特征损失确定目标特征损失。
67.示例性的,可以将第一特征损失确定为目标特征损失,也可以将第二特征损失确定为目标特征损失,或者,也还可以同时将第一特征值和第二特征损失确定为目标特征损失,本公开实施例并不对目标特征损失的确定方式进行限定。
68.s150、根据所述目标特征损失更新所述字体生成模型的模型参数。
69.其中,模型参数例如可以是权重或偏置等字体生成模型的相关参数,本公开实施例并不对模型参数的类型进行限制。
70.相应的,在确定目标特征损失之后,即可根据目标特征损失更新字体生成模型的模型参数,实现对字体生成模型的监督训练过程。由于目标特征损失可以考虑多种不同类型的特征损失,因此,根据目标特征损失更新字体生成模型的模型参数,可以使得字体生成模型不断优化字体细节的学习能力,从而提高字体生成模型生成字体级别字体的能力。
71.本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字和预设的目标域样本字分别输入到字符分类模型和字体分类模型,得到字体生成模型的第一特征损失和第一特征损失,从而根据第一特征损失和/或第二特征损失确定的目标特征损失更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将目标源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,进而提高字体生成模型生成字体级别字体的能力。
72.在一个示例中,图2是本公开实施例提供的一种字体生成模型训练方法的流程图,本公开实施例在上述各实施例的技术方案的基础上,进行了优化改进,给出了将源域样本字输入到字体生成模型,得到第一目标域生成字、获取第一特征损失和第二特征损失,以及更新字体生成模型的模型参数多种具体可选的实现方式。
73.如图2所示的一种字体生成模型训练方法,包括:
74.s210、将所述源域样本字输入到第一生成模型,得到所述第一目标域生成字和第一源域生成字。
75.其中,字体生成模型为循环网络生成模型,包括第一生成模型和第二生成模型。第一源域生成字可以是字体生成模型根据源域样本字生成的具有源域字体风格的图像。
76.s220、将目标域样本字输入到所述第二生成模型,得到第二目标域生成字和第二源域生成字。
77.其中,第二目标域生成字可以是字体生成模型生成的具有目标域字体风格的图像。第二源域生成字可以是字体生成模型根据目标域样本字生成的具有源域字体风格的图像。
78.s230、根据所述源域样本字、所述第一目标域生成字、所述第一源域生成字、所述目标域样本字、所述第二目标域生成字和所述第二源域生成字,计算所述字体生成模型的生成损失。
79.其中,生成损失可以是字体生成模型中生成模型的损失。
80.s240、根据所述生成损失更新所述第一生成模型的模型参数。
81.在本公开实施例中,可选的,字体生成模型可以包括第一生成模型、第二生成模型、第一判别模型和第二判别模型。
82.s250、将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失。
83.其中,字符损失可以是字符分类模型对第一目标域生成字计算得到的错字损失,可以约束循环生成网络模型输出的第一目标域生成字的错字率。
84.为了降低字体生成模型的错字率,除了利用字体生成模型的生成损失训练字体生成模型,在字体生成模型完成自训练之后,还可以采用预训练的字符分类模型来监督字体生成模型的训练过程。具体的,可以将字体生成模型生成的第一目标域生成字输入到预训练的字符分类模型,得到字体生成模型的字符损失。
85.在本公开的一个可选实施例中,所述将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失,可以包括:将所述第一目标域生成字输入到所述字符分类模型,得到所述第一目标域生成字的生成字符向量;根据所述生成字符向量与预设的标准字符向量之间的差异,计算所述字符损失。
86.将第一目标域生成字输入到上述字符分类模型,上述字符分类模型可以输出针对该第一目标域生成字的生成字符向量针对上述第一目标域生成字,预设有标准字符向量x
i
表示生成字符向量中下标为i的元素,y
i
表示标准字符向量中下标为i的元素,i为大于等于0并且小于等于n的整数,n表示生成字符向量和标准字符向量中的元素个数。
87.根据第一目标域生成字的生成字符向量和标准字符向量之间的差异,可以确定字体生成模型的字符损失。
88.具体的,将第一目标域生成字输入到字符分类模型,可以得到该第一目标域生成字的生成字符向量其中,向量中每个元素可以表示训练样本中的一个字符,则n表示训练样本中的字符个数,例如,训练样本具有6761个字,则n可以等于6760。
89.针对上述第一目标域生成字,预设有标准字符向量其中,向量中每个元素可以表示训练样本中的一个字符,则n表示训练样本中的字符个数,例如,训练样本具有6761个字,则n可以等于6760。
90.标准字符向量表示将第一目标域生成字输入到上述字符分类模型,上述字符分类模型应该输出的向量。例如,第一目标域生成字是“做”字,“做”字在训练样本中的n个字中位于第一个,则“做”字的标准字符向量可以表示为
91.在本公开的一个可选实施例中,所述计算所述字符损失,可以包括:根据以下公式计算所述字符损失:
[0092][0093]
其中,l
c
表示字符损失,x
i
表示生成字符向量中下标为i的元素,y
i
表示标准字符向量中下标为i的元素,i为大于等于0并且小于等于n的整数,n表示所述生成字符向量和所述标准字符向量中的元素个数。
[0094]
上述技术方案,通过计算字体生成模型的字符损失可以约束字体生成模型输出的第一目标域生成字的错字率,从而减少字体生成模型生成错字的概率,提高字体生成模型的准确率。
[0095]
s260、将所述第一目标域生成字和预设的目标域样本字输入到字符分类模型,得到所述字体生成模型的第一特征损失。
[0096]
在本公开的一个可选实施例中,所述字符分类模型包括多个特征层;所述将所述第一目标域生成字和预设的目标域样本字输入到字符分类模型,得到所述字体生成模型的第一特征损失,可以包括:将所述第一目标域生成字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的第一生成字特征图;将所述目标域样本字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的第一样本字特征图;计算目标特征层的第一生成字特征图和第一样本字特征图之间的差异,得到所述第一特征损失。
[0097]
在本公开的一个可选实施例中,所述计算目标特征层的第一生成字特征图和第一样本字特征图之间的差异,可以包括:计算所述目标特征层的第一生成字特征图和第一样本字特征图之间的像素差异,得到所述目标特征层的第一像素损失;根据所述目标特征层的第一像素损失计算所述第一特征损失。
[0098]
其中,第一生成字特征图可以是字符分类模型的每个特征层输出的生成字的特征图。第一样本字特征图可以是字符分类模型的每个特征层输出的样本字字的特征图。
[0099]
在本公开实施例中,字符分类模型可以包括多个特征层(例如90个特征层),将第一目标域生成字输入到字符分类模型,可以得到每一层输出的第一生成字特征图。将目标域样本字输入到字符分类模型,可以得到每一层输出的第一样本字特征图。
[0100]
针对每一层特征层输出的第一生成字特征图和第一样本字特征图之间的差异,可以确定该层的第一特征损失。例如,在每一特征层,将该特征层输出的第一生成字特征图和第一样本字特征图这两张图像的每个对应像素点的像素值作差,并求绝对值,得到每个像素点的差异,将所有像素点的差异求和得到该特征层的像素损失。
[0101]
可选的,可以选取多层特征层中的至少一个(例如第45层和第46层)作为目标特征层,并将各目标特征层的特征损失之和作为总体的第一特征损失。
[0102]
上述总体的特征损失可以用来表示字体生成模型学习第一目标域生成字和目标域样本字之间差别较大的特征,从而使字体生成模型学习出字符方面更多的字体细节,提高字体生成模型学习字体特征的能力。
[0103]
在本公开的一个可选实施例中,所述计算所述目标特征层的第一生成字特征图和第一样本字特征图之间的像素差异,可以包括:计算所述第一生成字特征图中的每个位置的像素点的像素值与所述第一样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;根据多个位置的像素点的差异,确定所述第一生成字特征图和第一样本字特征图之间的像素差异。
[0104]
s270、将所述第一目标域生成字和所述目标域样本字输入到字体分类模型,得到所述字体生成模型的第二特征损失。
[0105]
在本公开的一个可选实施例中,所述字体分类模型包括多个特征层;所述将所述第一目标域生成字和所述目标域样本字输入到字体分类模型,得到所述字体生成模型的第二特征损失,可以包括:将所述第一目标域生成字输入到所述字体分类模型,得到所述字体
分类模型的每个特征层输出的第二生成字特征图;将所述目标域样本字输入到所述字体分类模型,得到所述字体分类模型的每个特征层输出的第二样本字特征图;计算目标特征层的第二生成字特征图和第二样本字特征图之间的差异,得到所述第二特征损失。
[0106]
在本公开的一个可选实施例中,所述计算目标特征层的第二生成字特征图和第二样本字特征图之间的差异,可以包括:计算所述目标特征层的第二生成字特征图和第二样本字特征图之间的像素差异,得到所述目标特征层的第二像素损失;根据所述目标特征层的第二像素损失计算所述第二特征损失。
[0107]
其中,第二生成字特征图可以是字体分类模型的每个特征层输出的生成字的特征图。第二样本字特征图可以是字体分类模型的每个特征层输出的样本字字的特征图。
[0108]
在本公开实施例中,字体分类模型统一可以包括多个特征层(例如90个特征层),将第一目标域生成字输入到字体分类模型,可以得到每一层输出的第二生成字特征图。将目标域样本字输入到字体分类模型,可以得到每一层输出的第二样本字特征图。
[0109]
针对每一层特征层输出的第二生成字特征图和第二样本字特征图之间的差异,可以确定该层的第二特征损失。例如,在每一特征层,将该特征层输出的第二生成字特征图和第二样本字特征图这两张图像的每个对应像素点的像素值作差,并求绝对值,得到每个像素点的差异,将所有像素点的差异求和得到该特征层的像素损失。
[0110]
可选的,可以选取多层特征层中的至少一个(例如第45层和第46层)作为目标特征层,并将各目标特征层的特征损失之和作为总体的第二特征损失。
[0111]
上述总体的特征损失可以用来表示字体生成模型学习第一目标域生成字和目标域样本字之间差别较大的特征,从而使字体生成模型学习出字体方面更多的字体细节,提高字体生成模型学习字体特征的能力。
[0112]
在本公开的一个可选实施例中,所述计算所述目标特征层的第二生成字特征图和第二样本字特征图之间的像素差异,可以包括:计算所述第二生成字特征图中的每个位置的像素点的像素值与所述第二样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;根据多个位置的像素点的差异,确定所述第二生成字特征图和第二样本字特征图之间的像素差异。
[0113]
s280、根据所述第一特征损失和/或所述第二特征损失确定目标特征损失。
[0114]
s290、根据所述字符损失和所述目标特征损失更新所述第一生成模型的模型参数。
[0115]
在本公开实施例中,在字体生成模型利用生成损失完成自训练之后,可以进一步采用字符分类模型分别计算字体生成模型的字符损失和第一特征损失,并采用字体分类模型计算字体生成模型的第二特征损失,从而根据第一特征损失和/或第二特征损失确定目标特征损失。最终,根据字符损失和目标特征损失更新字体生成模型中第一生成模型的模型参数,从而继续监督训练字体生成模型。可选的,根据字符损失和目标特征损失更新字体生成模型中第一生成模型的模型参数,可以是根据字符损失和目标特征损失的总和来更新字体生成模型中第一生成模型的模型参数。
[0116]
需要说明的是,图2仅是一种实现方式的示意图,步骤s250与步骤s260

s280之间并没有先后执行顺序,可以先执行步骤s250,再执行步骤s260

s280。也可以先执行步骤s260

s280,再执行步骤s250。或者,也还可以同时执行上述操作。其中,s260与s270之间也
没有先后执行顺序。
[0117]
图3和图4是本公开实施例提供的一种字体生成模型的网络结构原理图。在一个具体的例子中,如图3和图4所示,在本公开实施例中,字体生成模型可以包括第一生成模型、第二生成模型、第一判别模型和第二判别模型。第一生成模型用于将源域字体风格的图像转换为目标域字体风格的图像,第二生成模型用于将目标域字体风格的图像转换为源域字体风格的图像。第一判别模型用于判别转换后的图像是否是属于源域字体风格的图像,第二判别模型用于判别转换后的图像是否是属于目标域字体风格的图像。
[0118]
基于上述字体生成模型的结构,字体生成模型可以包括两个循环工作过程。图3所示为字体生成模型的第一个循环工作过程:将源域样本字输入到第一生成模型,得到第一目标域生成字,并将第一目标域生成字输入到第二生成模型,得到第一源域生成字。图4所示为字体生成模型的第二个循环工作过程:将目标域样本字输入到第二生成模型,得到第二源域生成字,并将第二源域生成字输入到第一生成模型,得到第二目标域生成字。从而字体生成模型的样本可以是未配对的图像,无须建立训练数据间的一对一映射。
[0119]
在本公开实施例中,字体生成模型的损失包括生成损失和判别损失。下面以用户手写字作为目标域字体风格为例,具体说明字体生成模型生成损失和判别损失的计算方式。
[0120]
如图3所示,为字体生成模型的第一个循环工作过程:将源域样本字(例如包含楷体字的图像,简称楷体字图像)输入到第一生成模型,得到第一目标域生成字(例如包含手写字的图像,简称手写字图像)。将第一目标域生成字(手写字图像)输入到第二生成模型,得到第一源域生成字(楷体字图像)。
[0121]
在第一个循环工作过程中,源域样本字是真实的楷体字图像,而第一源域生成字是模型生成的楷体字图像,可以称为假的楷体字图像。第一目标域生成字是模型生成的手写字图像,可以称为假的手写字图像。在训练过程中,可以标注源域样本字为真real(例如值为1),标注第一目标域生成字为假fake(例如值为0)。
[0122]
将源域样本字输入到第一判别模型,对于第一判别模型来说,预期输出应为1。如果第一判别模型实际输出为x,使用均方差计算第一判别模型的损失,则第一判别模型的一部分损失可以表示为(x

1)2。
[0123]
将第一目标域生成字输入到第二判别模型,对于第二判别模型来说,预期输出应为0。如果第二判别模型实际输出为y*(为便于区分,可以使用带*的参数表示该参数与模型生成的图像相关,不带*的参数表示该参数与真实的图像相关),使用均方差计算第二判别模型的损失,则第二判别模型的一部分损失可以表示为(y
*

0)2。
[0124]
将第一目标域生成字输入到第二判别模型,对于第一生成模型来说,期望第二判别模型输出为1。如果第二判别模型实际输出为y*,使用均方差计算第一生成模型的损失,则第一生成模型的一部分损失可以表示为(y
*

1)2,该损失可以为第一生成模型的对抗损失。
[0125]
为了保证将源域样本字输入到第一生成模型得到的第一源域生成字仅仅是风格转换,内容保持不变,可以针对第一生成模型增加一个cycle

consistency loss(循环一致性损失)。该损失可以根据源域样本字和第一源域生成字之间的差异计算得到。例如,将源域样本字和第一源域生成字这两张图像的每个对应像素点的像素值作差,并求绝对值,得
到每个像素点的差异,将所有像素点的差异求和得到第一生成模型的循环一致性损失,可以记为l1a2b。
[0126]
因此,第一生成模型的一部分损失为(y
*

1)2,另一部分损失为l1a2b,这两部分损失之和作为第一生成模型的总体损失l
a2b
,第一生成模型的总体损失l
a2b
可以用如下等式(1)表示:
[0127]
l
a2b
=(y
*

1)2 l1
a2b
ꢀꢀ
(1)
[0128]
如图4所示,为字体生成模型的第二个循环工作过程:将目标域样本字(例如包含手写字的图像,简称手写字图像)输入到第二生成模型,得到第二源域生成字(例如包含楷体字的图像,简称楷体字图像)。将第二源域生成字(楷体字图像)输入到第一生成模型,得到第二目标域生成字(手写字图像)。
[0129]
在第二个循环工作过程中,目标域样本字是真实手写字图像,第二目标域生成字是模型生成的手写字图像,可以称为假的手写字图像。第二源域生成字是模型生成的楷体字图像,可以称为假的楷体字图像。在训练过程中,可以标注目标域样本字为真real(例如值为1),标注第二源域生成字为假fake(例如值为0)。
[0130]
将目标域样本字输入到第二判别模型,对于第二判别模型来说,预期输出应为1,如果第二判别模型实际输出为y,使用均方差计算第二判别模型的损失,则第二判别模型的一部分损失可以表示为(y

1)2。
[0131]
将第二源域生成字输入到第一判别模型,对于第一判别模型来说,预期输出应为0。如果第一判别模型实际输出为x*,使用均方差计算第一判别模型的损失,则第一判别模型的一部分损失可以表示为(x
*

0)2。
[0132]
将第二源域生成字输入到第一判别模型,对于第二生成模型来说,期望第一判别模型输出为1。如果第一判别模型实际输出为x*,使用均方差计算第二生成模型的损失,则第二生成模型的一部分损失可以表示为(x
*

1)2。
[0133]
为了保证将目标域样本字输入到第二生成模型得到的第二目标域生成字仅仅是风格转换,内容保持不变,可以针对第二生成模型增加一个cycle

consistency loss(循环一致性损失)。该损失可以根据目标域样本字和第二目标域生成字之间的差异计算得到。例如,将目标域样本字和第二目标域生成字这两张图像的每个对应像素点的像素值作差,并求绝对值,得到每个像素点的差异,将所有像素点的差异求和得到第二生成模型的循环一致性损失,可以记为l1b2a。
[0134]
因此,第二生成模型的一部分损失为(x
*

1)2,另一部分损失为l1b2a,这两部分损失之和作为第二生成模型的总体损失l
b2a
,第二生成模型的总体损失l
b2a
可以用如下等式(2)表示:
[0135]
l
b2a
=(x
*

1)2 l1
b2a
ꢀꢀ
(2)
[0136]
第一生成模型的总体损失l
a2b
以及第二生成模型的总体损失l
b2a
之和可以作为字体生成模型的生成损失,生成损失可以用如下等式(3)表示:
[0137]
l
g
=(y
*

1)2 l1
a2b
(x
*

1)2 l1
b2a
ꢀꢀ
(3)
[0138]
其中,l
g
表示字体生成模型的生成损失,可以用于调整第一生成模型和第二生成模型的模型参数。
[0139]
字体生成模型的判别损失包括第一判别模型的判别损失和第二判别模型的判别
损失。
[0140]
根据图3计算出第一判别模型的一部分损失为(x

1)2,并根据图4计算出第一判别模型的另一部分损失为(x
*

0)2,则两部分损失之和可以作为第一判别模型的判别损失,第一判别模型的判别损失l
a
可以用如下等式(4)表示:
[0141]
l
a
=(x

1)2 (x
*

0)2ꢀꢀ
(4)
[0142]
第一判别模型的判别损失l
a
可用于调整第一判别模型的模型参数。
[0143]
类似地,根据图3计算出第二判别模型的一部分损失为(y
*

0)2,并根据图4计算出第二判别模型的另一部分损失为(y

1)2,则两部分损失之和可以作为第二判别模型的判别损失,第二判别模型的判别损失l
b
可以用如下等式(5)表示:
[0144]
l
b
=(y

1)2 (y
*

0)2ꢀꢀ
(5)
[0145]
第二判别模型的判别损失l
b
可用于调整第二判别模型的模型参数。
[0146]
上述技术方案,通过利用字体生成模型的生成损失更新第一生成模型的模型参数,可以实现根据字体生成模型的本身结构对字体生成模型进行优化,提高字体生成模型学习字体特征的能力。
[0147]
图5是本公开实施例提供的一种第一特征损失的可视化效果示意图。在一个具体的例子中,如图5标号为(1)的子图所示,目标域样本字501是真实的包含手写字“神”的图像,即目标域样本字501中的“神”字是用户的真实手写字。第一目标域生成字502为字体生成模型生成的包含手写字“神”的图像,目标域样本字501和第一目标域生成字502的大小均为256*256。目标域样本字501和第一目标域生成字502输入到字符分类模型,在字符分类模型的第一目标特征层分别输出第一样本字特征图和第一生成字特征图,第一样本字特征图和第一生成字特征图的大小均为64*64,将这两张64*64的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图503。热力效果图503也是64*64的图像,热力效果图503中颜色越深的地方表示目标域样本字501和第一目标域生成字502之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图503中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
[0148]
类似地,如图5标号为(2)的子图所示,目标域样本字501和第一目标域生成字502输入到字符分类模型,在字符分类模型的第二目标特征层分别输出第一样本字特征图和第一生成字特征图,第一样本字特征图和第一生成字特征图的大小均为32*32,将这两张32*32的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图504。热力效果图504也是32*32的图像,热力效果图504中颜色越深的地方表示目标域样本字501和第一目标域生成字502之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图504中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
[0149]
可以理解,可以结合热力效果图503和热力效果图504,共同使得字体生成模型学习目标域样本字501和第一目标域生成字502之间的差别较大的特征,来提高字体生成模型学习字体特征的能力。
[0150]
图6是本公开实施例提供的一种第二特征损失的可视化效果示意图。在一个具体的例子中,如图6标号为(1)的子图所示,目标域样本字601是真实的包含手写字“留”的图像,即目标域样本字601中的“留”字是用户的真实手写字。第一目标域生成字602为字体生成模型生成的包含手写字“留”的图像,目标域样本字601和第一目标域生成字602的大小均
为256*256。目标域样本字601和第一目标域生成字602输入到字体分类模型,在字体分类模型的第一目标特征层分别输出第二样本字特征图和第二生成字特征图,第二样本字特征图和第二生成字特征图的大小均为64*64,将这两张64*64的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图603。热力效果图603也是64*64的图像,热力效果图603中颜色越深的地方表示目标域样本字601和第一目标域生成字602之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图603中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
[0151]
类似地,如图6标号为(2)的子图所示,目标域样本字601和第一目标域生成字602输入到字体分类模型,在字体分类模型的第二目标特征层分别输出第二样本字特征图和第二生成字特征图,第二样本字特征图和第二生成字特征图的大小均为32*32,将这两张32*32的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图604。热力效果图604也是32*32的图像,热力效果图604中颜色越深的地方表示目标域样本字601和第一目标域生成字602之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图604中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
[0152]
图7是本公开实施例提供的一种第二特征损失的可视化效果示意图。在另外一个具体的例子中,如图7标号为(1)的子图所示,目标域样本字701是真实的包含手写字“视”的图像,即目标域样本字701中的“视”字是用户的真实手写字。第一目标域生成字702为字体生成模型生成的包含手写字“留”的图像,目标域样本字701和第一目标域生成字702的大小均为256*256。目标域样本字701和第一目标域生成字702输入到字体分类模型,在字体分类模型的第一目标特征层分别输出第二样本字特征图和第二生成字特征图,第二样本字特征图和第二生成字特征图的大小均为64*64,将这两张64*64的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图703。热力效果图703也是64*64的图像,热力效果图703中颜色越深的地方表示目标域样本字701和第一目标域生成字702之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图703中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
[0153]
类似地,如图7标号为(2)的子图所示,目标域样本字701和第一目标域生成字702输入到字体分类模型,在字体分类模型的第二目标特征层分别输出第二样本字特征图和第二生成字特征图,第二样本字特征图和第二生成字特征图的大小均为32*32,将这两张32*32的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图704。热力效果图704也是32*32的图像,热力效果图704中颜色越深的地方表示目标域样本字701和第一目标域生成字702之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图704中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
[0154]
可以理解,可以结合热力效果图603和热力效果图604,共同使得字体生成模型学习目标域样本字601和第一目标域生成字602之间的差别较大的特征,来提高字体生成模型学习字体特征的能力。同理,可以结合热力效果图703和热力效果图704,共同使得字体生成模型学习目标域样本字701和第一目标域生成字702之间的差别较大的特征,来提高字体生成模型学习字体特征的能力。
[0155]
图8是本公开实施例提供的一种字体生成模型训练方法的原理图。如图8所示,对字体生成模型的完整训练过程可以包括下述操作:首先将源域样本字输入到字体生成模型
的第一生成模型,得到第一目标域生成字和第一源域生成字,并将目标域样本字输入到字体生成模型的第二生成模型,得到第二目标域生成字和第二源域生成字。进一步根据源域样本字、第一目标域生成字、第一源域生成字、目标域样本字、第二目标域生成字和第二源域生成字,计算字体生成模型的生成损失,以根据生成损失更新第一生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型第一次训练完成后,将第一目标域生成字输入到预训练的字符分类模型,得到字体生成模型的字符损失;将第一目标域生成字和目标域样本字输入到字符分类模型,得到字体生成模型的第一特征损失。同理,将第一目标域生成字和目标域样本字输入到字体分类模型,得到字体生成模型的第二特征损失。进一步的,可以根据第一特征损失和/或第二特征损失确定目标特征损失,从而根据上述计算得到的字符损失和目标特征损失更新第一生成模型的模型参数,再次实现对字体生成模型的训练。需要说明的是,根据字符损失和目标特征损失对字体生成模型的训练过程可以同步进行,也可以按先后顺序执行,本公开实施例对此并不进行限制。
[0156]
上述技术方案,通过利用字符损失和目标特征损失更新第一生成模型的模型参数,实现对字体生成模型的监督训练,可以减少字体生成模型生成错字的概率,提高字体生成模型生成字体的准确率和学习字体特征的能力。
[0157]
图9是本公开实施例提供的一种使用字符损失训练得到的字体生成模型的效果对比示意图。在一个具体的例子中,如图9所示,标号为(1)的图像是没有使用字符损失约束字体生成模型而生成的包含手写字“伶”的图像。标号为(2)的图像是使用字符损失约束字体生成模型而生成的包含手写字“伶”的图像。标号为(1)的图像中的“伶”字相比于正确的“伶”字少了一点,而标号为(2)的图像中的“伶”字则是正确的“伶”字。因此,使用字符损失约束字体生成模型能够学习到正确的字,降低错字率,提高模型的准确率。
[0158]
图10是本公开实施例提供的一种使用第一特征损失训练得到的字体生成模型的效果对比示意图。在一个具体的例子中,如图10所示,标号为(1)的图像是真实的包含手写字“彤”的图像,即标号为(1)的图像的“彤”字是用户的真实手写字。标号为(2)的图像是没有使用第一特征损失约束字体生成模型而生成的包含手写字“彤”的图像。标号为(3)的图像是使用第一特征损失约束字体生成模型而生成的包含手写字“彤”的图像。相比于标号为(2)的图像中的“彤”字,标号为(3)的图像中的“彤”字学习到了真实用户手写的“彤”字(即标号为(1)的图像中的“彤”字)更多的特征,与真实用户手写的“彤”字更相似。
[0159]
图11是本公开实施例提供的一种使用第二特征损失训练得到的字体生成模型的效果对比示意图。在一个具体的例子中,如图11所示,标号为(1)的图像是真实的包含手写字“做”的图像,即标号为(1)的图像的“做”字是用户的真实手写字。标号为(2)的图像是没有使用第二特征损失约束字体生成模型而生成的包含手写字“做”的图像。标号为(3)的图像是使用第二特征损失约束字体生成模型而生成的包含手写字“做”的图像。相比于标号为(2)的图像中的“做”字,标号为(3)的图像中的“做”字学习到了真实用户手写的“做”字(即标号为(1)的图像中的“做”字)更多的特征,与真实用户手写的“做”字更相似。
[0160]
上述技术方案,通过利用生成损失、字符损失和目标特征损失等多种损失类型训练字体生成模型,可以提高字体生成模型学习字体特征的能力,降低错字生成率,从而提高字体生成模型生成字体的美观度和准确率,进而提高字体生成模型生成字体级别字体的能力。
[0161]
本公开的技术方案中,所涉及用户个人信息(如用户字体信息等)的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0162]
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本公开的保护范围。
[0163]
在一个示例中,图12是本公开实施例提供的一种字库建立方法的流程图,本公开实施例可适用于利用根据多种类型的特征算训练优化的字体生成模型建立字库的情况,该方法可以由字库建立装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是终端设备或服务器设备等,本公开实施例并不对执行字库建立方法的电子设备的类型进行限定。相应的,如图12所示,该方法包括如下操作:
[0164]
s1210、将源域输入字输入到字体生成模型,得到目标域新字。
[0165]
其中,源域输入字可以是某一源域字体的某些字,目标域新字可以是需要生成的具有目标域字体风格的新字。示例性的,源域输入字可以为楷体字图像,新字可以为手写字图像,将楷体字图像输入到字体生成模型,可以得到手写字图像。字体生成模型通过上述任一实施例所述的字体生成模型训练方法训练得到。
[0166]
s1220、基于所述目标域新字建立字库。
[0167]
示例性的,可以将字体生成模型生成的新字进行存储,建立得到具有手写字体风格的字库,该字库可应用于输入法,用户使用基于该字库的输入法可以直接获取具有手写字体风格的字,能够满足了用户多样化的需求,提高了用户体验。
[0168]
在一个示例中,图13是本公开实施例提供的一种字体生成模型训练装置的结构图,本公开实施例可适用于根据多种类型的特征损失训练优化字体生成模型的情况,该装置通过软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是终端设备或服务器设备等,本公开实施例并不对执行字体生成模型训练方法的电子设备的类型进行限定。
[0169]
如图13所示的一种字体生成模型训练装置1300,包括:第一目标域生成字获取模块1310、第一特征损失获取模块1320、第二特征损失获取模块1330、目标特征损失获取模块1340和第一模型参数更新模块1350。其中,
[0170]
第一目标域生成字获取模块1310,用于将源域样本字输入到字体生成模型,得到第一目标域生成字;
[0171]
第一特征损失获取模块1320,用于将所述第一目标域生成字和预设的目标域样本字输入到字符分类模型,得到所述字体生成模型的第一特征损失;
[0172]
第二特征损失获取模块1330,用于将所述第一目标域生成字和所述目标域样本字输入到字体分类模型,得到所述字体生成模型的第二特征损失;
[0173]
目标特征损失获取模块1340,用于根据所述第一特征损失和/或所述第二特征损失确定目标特征损失;
[0174]
第一模型参数更新模块1350,用于根据所述目标特征损失更新所述字体生成模型的模型参数。
[0175]
本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字和预设的目标域样本字分别输入到字符分类模型和字体分类模型,得到字体生成模型的第一特征损失和第一特征损失,从而根据第一特征损失和/或第二特征损失确定的目标特征损失更新字体生成模型的模型参数,实现对字体生成模型的训练。
当字体生成模型训练完成后,可以将目标源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,进而提高字体生成模型生成字体级别字体的能力。
[0176]
可选的,其中,所述字符分类模型包括多个特征层;第一特征损失获取模块1320具体用于:将所述第一目标域生成字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的第一生成字特征图;将所述目标域样本字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的第一样本字特征图;计算目标特征层的第一生成字特征图和第一样本字特征图之间的差异,得到所述第一特征损失。
[0177]
可选的,第一特征损失获取模块1320具体用于:计算所述目标特征层的第一生成字特征图和第一样本字特征图之间的像素差异,得到所述目标特征层的第一像素损失;根据所述目标特征层的第一像素损失计算所述第一特征损失。
[0178]
可选的,第一特征损失获取模块1320具体用于:计算所述第一生成字特征图中的每个位置的像素点的像素值与所述第一样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;根据多个位置的像素点的差异,确定所述第一生成字特征图和第一样本字特征图之间的像素差异。
[0179]
可选的,其中,所述字体分类模型包括多个特征层;第二特征损失获取模块1330具体用于:将所述第一目标域生成字输入到所述字体分类模型,得到所述字体分类模型的每个特征层输出的第二生成字特征图;将所述目标域样本字输入到所述字体分类模型,得到所述字体分类模型的每个特征层输出的第二样本字特征图;计算目标特征层的第二生成字特征图和第二样本字特征图之间的差异,得到所述第二特征损失。
[0180]
可选的,第二特征损失获取模块1330具体用于:计算所述目标特征层的第二生成字特征图和第二样本字特征图之间的像素差异,得到所述目标特征层的第二像素损失;根据所述目标特征层的第二像素损失计算所述第二特征损失。
[0181]
可选的,第二特征损失获取模块1330具体用于:计算所述第二生成字特征图中的每个位置的像素点的像素值与所述第二样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;根据多个位置的像素点的差异,确定所述第二生成字特征图和第二样本字特征图之间的像素差异。
[0182]
可选的,所述字体生成模型为循环网络生成模型,包括第一生成模型和第二生成模型;第一目标域生成字获取模块1310具体用于:将所述源域样本字输入到所述第一生成模型,得到所述第一目标域生成字和第一源域生成字;字体生成模型训练装置还包括:第二目标域生成字获取模块,用于将所述目标域样本字输入到所述第二生成模型,得到第二目标域生成字和第二源域生成字;生成损失计算模块,用于根据所述源域样本字、所述第一目标域生成字、所述第一源域生成字、所述目标域样本字、所述第二目标域生成字和所述第二源域生成字,计算所述字体生成模型的生成损失;第二模型参数更新模块,用于根据所述生成损失更新所述第一生成模型的模型参数。
[0183]
可选的,字体生成模型训练装置还包括:字符损失获取模块,用于将所述第一目标域生成字输入到所述字符分类模型,计算所述字体生成模型的字符损失;第一模型参数更新模块1350具体用于:根据所述字符损失和所述目标特征损失更新所述第一生成模型的模
型参数。
[0184]
可选的,所述字符损失获取模块具体用于:将所述第一目标域生成字输入到所述字符分类模型,得到所述第一目标域生成字的生成字符向量;根据所述生成字符向量与预设的标准字符向量之间的差异,计算所述字符损失。
[0185]
可选的,所述字符损失获取模块具体用于:根据以下公式计算所述字符损失:
[0186][0187]
其中,lc表示字符损失,x
i
表示生成字符向量中下标为i的元素,y
i
表示标准字符向量中下标为i的元素,i为大于等于0并且小于等于n的整数,n表示所述生成字符向量和所述标准字符向量中的元素个数。
[0188]
可选的,所述源域样本字为具有目标源域字体风格的图像,所述目标域样本字为具有目标域字体风格的图像。
[0189]
上述字体生成模型训练装置可执行本公开任意实施例所提供的字体生成模型训练方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的字体生成模型训练方法。
[0190]
在一个示例中,图14是本公开实施例提供的一种字库建立装置的结构图,本公开实施例可适用于利用根据多种类型的特征损失训练优化的字体生成模型建立字库的情况,该装置通过软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是终端设备或服务器设备等。
[0191]
如图14所示的一种字库建立装置1400,包括:目标域新字获取模块1410和字库建立模块1420。其中,
[0192]
目标域新字获取模块1410,用于将源域输入字输入到字体生成模型,得到目标域新字;
[0193]
字库建立模块1420,用于基于所述目标域新字建立字库;
[0194]
其中,所述字体生成模型通过本公开任一项实施例所述的字体生成模型训练装置训练得到。
[0195]
本公开实施例通过字体生成模型生成的新字进行存储,建立得到具有手写字体风格的字库,该字库可应用于输入法,用户使用基于该字库的输入法可以直接获取具有手写字体风格的字,能够满足了用户多样化的需求,提高了用户体验。
[0196]
上述字库建立装置可执行本公开任意实施例所提供的字库建立方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的字库建立方法。
[0197]
在一个示例中,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0198]
图15示出了可以用来实施本公开的实施例的示例电子设备1500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0199]
如图15所示,设备1500包括计算单元,其可以根据存储在只读存储器(rom)1502中的计算机程序或者从存储单元1508加载到随机访问存储器(ram)1503中的计算机程序,来执行各种适当的动作和处理。在ram 1503中,还可存储设备1500操作所需的各种程序和数据。计算单元、rom 1502以及ram 1503通过总线1504彼此相连。输入/输出(i/o)接口1505也连接至总线1504。
[0200]
设备1500中的多个部件连接至i/o接口1505,包括:输入单元1506,例如键盘、鼠标等;输出单元1507,例如各种类型的显示器、扬声器等;存储单元1508,例如磁盘、光盘等;以及通信单元1509,例如网卡、调制解调器、无线通信收发机等。通信单元1509允许设备1500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0201]
计算单元可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元执行上文所描述的各个方法和处理,例如字体生成模型训练方法或字库建立方法。例如,在一些实施例中,字体生成模型训练方法或字库建立方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1508。在一些实施例中,计算机程序的部分或者全部可以经由rom 1502和/或通信单元1509而被载入和/或安装到设备1500上。当计算机程序加载到ram 1503并由计算单元执行时,可以执行上文描述的字体生成模型训练方法或字库建立方法的一个或多个步骤。备选地,在其他实施例中,计算单元可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行字体生成模型训练方法或字库建立方法。
[0202]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0203]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0204]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0205]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0206]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0207]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器还可以分布式系统的服务器,或者是结合了区块链的服务器。
[0208]
本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字和预设的目标域样本字分别输入到字符分类模型和字体分类模型,得到字体生成模型的第一特征损失和第一特征损失,从而根据第一特征损失和/或第二特征损失确定的目标特征损失更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将目标源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,进而提高字体生成模型生成字体级别字体的能力。
[0209]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0210]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献