掌桥专利:专业的专利平台
掌桥专利
首页

字形生成方法、字形生成模型的训练方法及装置

文献发布时间:2023-06-19 16:08:01



技术领域

本公开涉及人工智能技术领域,具体为深度学习、图像处理、计算机视觉技术领域,可应用于OCR(Optical Character Recognition,光学字符识别)等场景。

背景技术

越来越多的用户倾向于在电子设备中使用个性化字体。例如,用户可以将电子设备的桌面主题或者应用(例如输入法应用、浏览器应用、文档编辑应用等)内的字体设置为其偏好的字体。

在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

发明内容

本公开提供了一种字形生成方法及装置、字形生成模型的训练方法及装置、电子设备、计算机可读存储介质和计算机程序产品。

根据本公开的一方面,提供了一种字形生成方法,包括:获取源字形图像和所述源字形图像对应的参考字形图像集,所述源字形图像包括源字体的源字符,所述参考字形图像集包括目标字体的至少一个参考字符;将所述源字形图像与所述参考字形图像集进行融合,以得到所述源字符的中间字形图像;以及将所述中间字形图像与所述参考字形图像集进行融合,以得到所述源字符的生成字形图像,所述生成字形图像包括所述目标字体的所述源字符。

根据本公开的一方面,提供了一种字形生成模型的训练方法,所述字形生成模型包括级联的多个生成模块,所述多个生成模块中的每个生成模块的输入为源字形图像和相应的参考字形图像集,输出为基于所述相应的参考字形图像集生成的预测字形图像,在相邻的两个生成模块中,前一个生成模块输出的预测字形图像为输入后一个生成模块的源字形图像,所述多个生成模块输入的参考字形图像集相同,所述方法包括:获取样本源字形图像、所述样本源字形图像对应的样本参考字形图像集和所述样本源字形图像对应的目标字形图像,所述样本源字形图像包括源字体的源字符,所述样本参考字形图像集包括目标字体的至少一个参考字符,所述目标字形图像包括所述目标字体的所述源字符;将所述样本源字形图像和所述样本参考字形图像集作为输入,将所述目标字形图像作为标签,训练所述多个生成模块中的至少一个生成模块;以及基于经训练的所述至少一个生成模块,生成所述字形生成模型。

根据本公开的一方面,提供了一种字形生成装置,包括:第一获取单元,被配置为获取源字形图像和所述源字形图像对应的参考字形图像集,所述源字形图像包括源字体的源字符,所述参考字形图像集包括目标字体的至少一个参考字符;第一融合单元,被配置为将所述源字形图像与所述参考字形图像集进行融合,以得到所述源字符的中间字形图像;以及第二融合单元,被配置为将所述中间字形图像与所述参考字形图像集进行融合,以得到所述源字符的生成字形图像,所述生成字形图像包括所述目标字体的所述源字符。

根据本公开的一方面,提供了一种字形生成模型的训练装置,所述字形生成模型包括级联的多个生成模块,所述多个生成模块中的每个生成模块的输入为源字形图像和相应的参考字形图像集,输出为基于所述相应的参考字形图像集生成的预测字形图像,在相邻的两个生成模块中,前一个生成模块输出的预测字形图像为输入后一个生成模块的源字形图像,所述多个生成模块输入的参考字形图像集相同,所述装置包括:获取单元,被配置为获取样本源字形图像、所述样本源字形图像对应的样本参考字形图像集和所述样本源字形图像对应的目标字形图像,所述样本源字形图像包括源字体的源字符,所述样本参考字形图像集包括目标字体的至少一个参考字符,所述目标字形图像包括所述目标字体的所述源字符;训练单元,被配置为将所述样本源字形图像和所述样本参考字形图像集作为输入,将所述目标字形图像作为标签,训练所述多个生成模块中的至少一个生成模块;以及生成单元,被配置为基于经训练的至少一个生成模块,生成所述字形生成模型。

根据本公开的一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器,该存储器存储有可被上述至少一个处理器执行的指令,该指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述任一方面的方法。

根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行上述任一方面的方法。

根据本公开的一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述任一方面的方法。

根据本公开的一个或多个实施例,能够提高字形生成的效率和精细化程度。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。

图1示出了根据本公开的实施例的字形生成方法的流程图;

图2示出了根据本公开的实施例的字形生成过程的示意图;

图3示出了根据本公开的实施例的字形生成模型的训练方法的流程图;

图4示出了根据本公开的实施例的字形生成模型的结构框图;

图5示出了根据本公开的实施例的样本源字形图像和相应的样本参考字形图像集、目标字形图像的示意图;

图6示出了根据本公开的实施例的字形生成模型的训练过程的示意图;

图7示出了根据本公开的实施例的字形生成装置的结构框图;

图8示出了根据本公开的实施例的字形生成模型的训练装置的结构框图;以及

图9示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。

在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。

在本公开中,术语“多个”指的是两个及以上。

在本公开中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

在介绍本公开的示例性实施例之前,首先对本文中使用的若干术语进行解释。

1、字符(character):文字或类文字符号,例如汉字、英文字母、运算符号、标点符号等,是书写系统的基本单位。字符本身具有一定的结构,并且蕴含语义信息,但不具有外观样式信息。

2、字体(font):字符的外观样式类型,例如黑体、楷体、宋体等。

3、字形(glyph):单个字符的外观形态,是字符和字体叠加的结果。

4、字库(font library):某种字体的所有字符的字形所构成的集合。

越来越多的用户倾向于在电子设备中使用个性化字体。基于用户需求,新的字体不断涌现。

设计新字体是一项复杂的工程。在相关技术中,通常需要设计师手动绘制新字体的每个字符的字形来建立该字体的字库,费时且费力,字形生产的效率较低。并且,字形的设计效果受设计师的主观影响较大,不同字符的字形风格难以统一,精细化程度难以保证。

为此,本公开的实施例提供一种字形生成方法以及字形生成模型的训练方法,能够提高字形生成的效率和精细化程度,从而能够快速建立新字体的字库。

下面将结合附图详细描述本公开的实施例。

图1示出了根据本公开实施例的字形生成方法100的流程图。方法100可以在服务器处执行,也可以在客户端设备处执行。也即,方法100的各个步骤的执行主体可以是服务器,也可以是客户端设备。如图1所示,方法100包括步骤S110-S130。

在步骤S110中,获取源字形图像和源字形图像对应的参考字形图像集,源字形图像包括源字体的源字符,参考字形图像集包括目标字体的至少一个参考字符。

在步骤S120中,将源字形图像与参考字形图像集进行融合,以得到源字符的中间字形图像。

在步骤S130中,将中间字形图像与参考字形图像集进行融合,以得到源字符的生成字形图像,生成字形图像包括目标字体的源字符。

源字体与目标字体越接近,将源字体的字形图像与目标字体的参考字形图像集进行融合所得到的新字形图像中的字体与目标字体也越接近,新字形图像的字形生成效果越好、越精细。

根据本公开的实施例,通过将源字形图像与参考字形图像集进行融合,能够得到源字符的接近目标字体的中间字形图像。进一步地,通过将中间字形图像与目标字体的参考字形图像集进行融合,能够得到源字符在目标字体下的精细化的字形图像。

根据本公开的实施例,设计师仅需设计目标字体的少量字符(即参考字符,例如几十个或几百个)的字形图像,其他大量字符(即源字符,例如几千个)的字形图像可以通过字形生成方法来自动生成,从而大大提高了字形生成效率,能够快速建立目标字体的字库。

根据一些实施例,源字体可以是任意现有的字体,例如黑体、楷体、宋体等。目标字体为待设计的新字体。参考字符为已经具有新字体字形的字符,源字符为尚未具有新字体字形的字符。

根据一些实施例,源字符由至少一个字符成分组成,上述至少一个参考字符包括上述至少一个字符成分。由此,参考字形图像集包含源字符在目标字体下的所有外观样式特征,能够引导字形生成模型更好地将目标字体的外观样式特征与源字符进行融合,使生成字形图像与目标字体的外观样式保持一致,具有良好的视觉效果和精细化程度。

根据一些实施例,上述至少一个参考字符中的每个参考字符包括上述至少一个字符成分中的至少之一,并且每个参考字符所包括的字符成分各不相同。由此,能够减少参考字符的数量(即减少参考字形图像的数量),减少冗余信息,从而能够降低内存占用,并且提高计算效率。

根据一些实施例,源字符与参考字符之间的对应关系可以是预先设置的,每个源字符对应于固定的一组参考字符。

相应地,根据一些实施例,可以基于预设的字符对应关系,确定与源字符对应的至少一个参考字符;以及基于上述至少一个参考字符,确定参考字形图像集,即,将包括目标字体的参考字符的图像作为样本参考字形图像。

根据上述实施例,基于预设的、固定的字符对应关系来确定源字符对应的至少一个参考字符,能够快速确定参考字符,从而提高计算效率,并且能够保证模型生成的字形的一致性。

根据一些实施例,字形生成方法100还包括:获取用户字形图像,用户字形图像包括用户书写的多个字符;以及识别多个字符中的每个字符所在的图像区域,得到多个图像区域。例如,可以通过OCR技术来识别各个字符所在的图像区域。在该实施例中,目标字体即为用户的手写体,步骤S510中的参考字形图像集为上述多个图像区域的集合的子集。

根据上述实施例,能够基于用户手写的包含少量(例如几十或几百个)字符的字形图像,生成大量(例如几千个)其他字符的字形图像,从而建立该用户的个性化的、定制化的手写体字库。

根据一些实施例,字形生成方法100还包括:基于生成字形图像,建立目标字体的字库。由此,能够快速建立目标字体的字库,所建立的字库可以供销售或供用户使用。

根据一些实施例,步骤S120和S130可以通过经训练的字形生成模型来实现。字形生成模型例如可以包括级联的多个生成模块,其中第一个生成模块用于将源字形图像与参考字形图像集进行融合,得到中间字形图像(对应于步骤S120)。第二个至最后一个生成模块中的每一个生成模块用于将上一个生成模块输出的中间字形图像与参考字形图像集进行融合,以得到其自身输出的中间字形图像,其中最后一个生成模块输出的中间字形图像即为源字符的生成字形图像(对应于步骤S130)。

相应地,根据一些实施例,步骤S120包括:将源字形图像和参考字形图像集输入经训练的字形生成模型的第一个生成模块,以便该第一个生成模块将源字形图像和参考字形图像集进行融合,得到源字符的中间字形图像。

根据一些实施例,步骤S130包括:将第一个生成模块输出的中间字形图像和参考字形图像集输入经训练的字形生成模型的第二个生成模块,以便第二个生成模块至最后一个生成模块对中间字形图像和参考字形图像集进行多次融合,以得到源字符的生成字形图像。

字形生成模型例如可以通过下文的字形生成模型的训练方法300训练得到。

图2示出了根据本公开实施例的字形生成过程的示意图。

如图2所示,源字形图像231包括源字体(楷体)的源字符“揞”。参考字形图像集232包括目标字体(新字体)的参考字符“是”、“把”、“亲”。理想的字形图像为图像235,图像235包括新字体的源字符“揞”。

在步骤S210中,将源字形图像231和参考字形图像集232进行第一次融合,得到中间字形图像233。如图2所示,中间字形图像233已经初步具有新字体的外观样式,与理想的字形图像235的视觉效果较为接近。

随后,在步骤S220中,将中间字形图像233和参考字形图像集232进行第二次融合,得到生成字形图像234。如图2所示,生成字形图像234相较于中间字形图像233来说,字形细节方面(例如笔画的端部、弯折处等)的视觉效果得到提升,与理想的字形图像235更为接近。可见,根据本公开实施例的字形生成方法,能够生成目标字体的精细化的字形图像。

图3示出了根据本公开实施例的字形生成模型的训练方法300的流程图。方法300可以在服务器处执行,也可以在客户端设备处执行。也即,方法300的各个步骤的执行主体可以是服务器,也可以是客户端设备。

在本公开的实施例中,字形生成模型包括级联的多个生成模块。多个生成模块中的每个生成模块的输入为源字形图像和相应的参考字形图像集,输出为基于相应的参考字形图像集生成的预测字形图像。在相邻的两个生成模块中,前一个生成模块输出的预测字形图像为输入后一个生成模块的源字形图像。多个生成模块输入的参考字形图像集相同。

如图3所示,方法300包括步骤S310-S320。

在步骤S310中,获取样本源字形图像、样本源字形图像对应的样本参考字形图像集和样本源字形图像对应的目标字形图像。样本源字形图像包括源字体的源字符,样本参考字形图像集包括目标字体的至少一个参考字符,目标字形图像包括目标字体的源字符。

在步骤S320中,将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,训练多个生成模块中的至少一个生成模块。

在步骤S330中,基于经训练的至少一个生成模块,生成字形生成模型。

根据本公开的实施例,字形生成模型用于自动生成源字符在目标字体下的精细化的字形图像。字形生成模型是多阶段模型,其包括级联的多个生成模块。前一个生成模块输出的预测字形图像为输入后一个生成模块的源字形图像,由此可以使输入各生成模块的源字形图像与目标字体的外观样式越来越接近,从而使各生成模块输出的预测字形图像与目标字体的外观样式越来越接近,最终生成源字符在目标字体下的精细化的字形图像。

图4示出了根据本公开实施例的字形生成模型400的结构框图。如图4所示,字形生成模型400包括级联的N(N≥2)个生成模块410-1~410-N。

第一个生成模块410-1的输入为源字形图像和相应的参考字形图像集。源字形图像包括源字体的源字符。参考字形图像集包括目标字体的至少一个参考字符。生成模块410-2~410-N的输入为前一个生成模块输出的预测字形图像和相应的参考字形图像集。

字形生成模型400能够基于参考字形图像集中包含的目标字体的外观样式特征信息,生成源字符在目标字体下的字形图像,即预测字形图像。

在本公开的实施例中,字形生成模型所包括的生成模块可以采用任意神经网络结构。多个生成模块的结构可以相同,也可以不同。

根据一些实施例,生成模块可以实现为生成对抗网络(Generative AdversarialNetwork,GAN)中的生成器(Generator)。在字形生成模型的训练阶段,生成模块的输出端连接有判别器(Discriminator),该判别器与该生成模块(生成器)相互对抗,用于提高生成模块生成的图像的质量。在字形生成模型训练完成后,可以将判别器移除。即,在字形生成模型的应用阶段,生成模块不再连接有判别器。

如上所述,本公开实施例的字形生成模型为多阶段模型。本公开实施例的方法300能够对多阶段的字形生成模型进行训练,以生成经训练的字形生成模型。经训练的字形生成模型可以用于生成新字体的字形。

在本公开的实施例中,基于样本源字形图像、样本源字形图像对应的样本参考字形图像集和样本源字形图像对应的目标字形图像来训练字形生成模型。样本源字形图像包括源字体的源字符,样本参考字形图像集包括目标字体的至少一个参考字符,目标字形图像包括目标字体的源字符。具体地,样本参考字形图像集可以包括至少一个样本参考字形图像,每个样本参考字形图像可以包括一个参考字符。

根据一些实施例,在字形生成模型的训练过程中,源字体和目标字体可以是任意现有的字体,例如黑体、楷体、宋体等。相应地,源字符和参考字符可以是任意字符(因为现有字体的任意字符的字形均可以被获得)。由此能够获得大量的训练样本,从而提高字形生成模型的字形生成效果。在字形生成模型的应用过程中(此时字形生成模型已完成训练),源字体仍然可以是任意现有的字体,目标字体则可以替换为待设计的新字体。

根据另一些实施例,在字形生成模型的训练过程中,源字体可以是任意现有的字体,例如黑体、楷体、宋体等。目标字体可以是待设计的新字体。并且,源字符和参考字符均为已经具有新字体字形的字符。由此,能够训练得到专门用于生成该新字体的字形的字形生成模型。在字形生成模型的应用过程中(此时字形生成模型已完成训练),源字体仍然可以是任意现有的字体,目标字体仍然是该新字体,参考字符仍然是已经具有新字体字形的字符,源字符则可以替换为尚未具有新字体字形的字符。

根据一些实施例,样本源字形图像中的源字符与样本参考字形图像集中的至少一个参考字符可以具有一定的对应关系,从而保证字形生成模型生成的预测字形图像能够与目标字体的外观样式一致,具有良好的视觉效果和精细化程度。

根据一些实施例,可以将源字符拆分成至少一个组成部分,每个组成部分称为该字符的一个“字符成分”。相应地,源字符由至少一个字符成分组成。

根据一些实施例,至少一个参考字符包括源字符的上述至少一个字符成分。即,至少一个参考字符包括源字符的所有字符成分。因此,样本参考字形图像集包含源字符在目标字体下的所有外观样式特征,能够引导字形生成模型更好地学习目标字体的外观样式特征,使生成的字形与目标字体的外观样式保持一致,具有良好的视觉效果和精细化程度。

进一步地,根据一些实施例,至少一个参考字符中的每个参考字符包括源字符的至少一个字符成分中的至少之一,并且每个参考字符所包括的字符成分各不相同。由此,能够减少参考字符的数量(即减少样本参考字形图像的数量),减少冗余信息,从而能够降低内存占用,并且提高计算效率。

图5示出了根据本公开的实施例的样本源字形图像510和相应的样本参考字形图像集520、目标字形图像530的示意图。

如图5所示,样本源字形图像510包括源字体(楷体)的源字符“揞”。源字符“揞”由字符成分511(“扌”)、512(“立”)和513(“日”)组成。

样本参考字形图像集520包括三个样本参考字形图像521、522、523。样本参考字形图像521、522、523分别包括目标字体的参考字符“是”、“把”、“亲”。参考字符“是”的组成部分524(“日”)与源字符“揞”的字符成分513(“日”)相同,参考字符“把”的组成部分525(“扌”)与源字符“揞”的字符成分511(“扌”)相同,参考字符“亲”的组成部分526(“立”)与源字符“揞”的字符成分512(“立”)相同。可见,在图5所示的实施例中,每个参考字符包括源字符的一个字符成分,并且每个参考字符所包括的字符成分各不相同。

目标字形图像530包括目标字体的源字符“揞”。

根据一些实施例,源字符与参考字符之间的对应关系可以是预先设置的,每个源字符对应于固定的一组参考字符。

相应地,根据一些实施例,可以基于预设的字符对应关系,确定与源字符对应的至少一个参考字符;以及基于上述至少一个参考字符,确定样本参考字形图像集,即,将包括目标字体的参考字符的图像作为样本参考字形图像。

根据上述实施例,基于预设的、固定的字符对应关系来确定源字符对应的至少一个参考字符,能够快速确定参考字符,从而提高计算效率,并且能够保证模型生成的字形的一致性。

在获得样本源字形图像、样本参考字形图像集和目标字形图像之后,可以将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,训练多个生成模块中的至少一个生成模块。进一步地,基于经训练的至少一个生成模块,生成字形生成模型。

训练至少一个生成模块以生成字形生成模型的方式有多种。

根据一些实施例,可以采用模块级联训练的方式来训练多个生成模块中的每个生成模块,并生成字形生成模型。具体地,首先,可以将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,训练多个生成模块中的第一个生成模块。随后,将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,基于经训练的至少一个在先生成模块,训练当前生成模块。当前生成模块为多个生成模块中的除第一个生成模块以外的任一生成模块,至少一个在先生成模块为多个生成模块中的位于当前生成模块之前的至少一个生成模块。最后一个生成模块训练完成后,即可得到字形生成模型。

根据上述实施例,后续生成模块(第2,3,…,N个生成模块)在在先生成模块的基础上进行训练,因此能够对在先生成模块没有生成的字形细节进行补充,使得每个后续生成模块输出的字形图像的精细化程度均在上一生成模块输出的基础上有所提升,从而保证模型最终输出高度精细化的字形图像。

图6示出了根据本公开实施例的字形生成模型600的训练过程的示意图。如图6所示,字形生成模型600包括级联的三个生成模块610-630。

首先,在过程660中,训练生成模块610。具体地,将样本源字形图像和样本参考字形图像集输入生成模块610,得到生成模块610输出的预测字形图像。随后,基于预测字形图像(预测值)和目标字形图像(标签,即真实值),计算生成模块610的损失。基于计算得出的损失,采用诸如反向传播等算法来调整生成模块610的参数。过程660可以循环执行多次,直至满足预设的终止条件(例如,损失小于预设阈值、循环次数达到预设的最大循环次数等)时,过程660结束,得到经训练的生成模块610。

随后,在过程670中,训练生成模块620。具体地,将样本源字形图像输入生成模块610,将样本参考字形图像集分别输入生成模块610和620,得到生成模块620输出的预测字形图像。随后,基于预测字形图像(预测值)和目标字形图像(标签,即真实值),计算生成模块620的损失。基于计算得出的损失,采用诸如反向传播等算法来调整生成模块620的参数。过程670可以循环执行多次,直至满足预设的终止条件(例如,损失小于预设阈值、循环次数达到预设的最大循环次数等)时,过程670结束,得到经训练的生成模块620。

随后,在过程680中,训练生成模块630。具体地,将样本源字形图像输入生成模块610,将样本参考字形图像集分别输入生成模块610、620和630,得到生成模块630输出的预测字形图像。随后,基于预测字形图像(预测值)和目标字形图像(标签,即真实值),计算生成模块630的损失。基于计算得出的损失,采用诸如反向传播等算法来调整生成模块630的参数。过程680可以循环执行多次,直至满足预设的终止条件(例如,损失小于预设阈值、循环次数达到预设的最大循环次数等)时,过程680结束,得到经训练的生成模块630。

基于经训练的生成模块610、620和630,即可生成经训练的字形生成模型600。

根据另一些实施例,可以采用模块分别训练的方式来训练多个生成模块中的每个生成模块,并生成字形生成模型。具体地,可以将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,分别训练多个生成模块中的每个生成模块。在该实施例中,各生成模块的训练过程相互独立、没有依赖关系,因此可以并行地训练各个生成模块。相较于上述模块级联训练的实施例来说,该实施例的训练效率更高,速度更快。

应当理解,在上述模块分别训练的实施例中,由于各个生成模块的参数的初始值通常是分别随机生成的,因此各个生成模块的参数的初始值通常各不相同,经过训练后,各个生成模块的参数的数值通常也各不相同。

根据另一些实施例,字形生成模型的多个生成模块结构相同并且共享参数。相应地,可以采用模块单独训练的方式来训练多个生成模块中的一个生成模块,然后基于经训练的该生成模块来生成字形生成模型。具体地,可以将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,训练多个生成模块中的任一生成模块,得到经训练的生成模块。随后,将经训练的生成模块的参数同步至多个生成模块中的其他生成模块,从而生成字形生成模型。该实施例能够进一步提高训练效率,仅需要训练一个生成模块,即可得到字形生成模型。

根据另一些实施例,可以采用模型整体端到端训练的方式来同时训练多个生成模块,即整体训练字形生成模型。具体地,可以将样本源字形图像和样本参考字形图像集输入字形生成模型,以得到字形生成模型输出的所述源字符的预测字形图像;基于预测字形图像和目标字形图像,计算字形生成模型的损失;以及基于损失,调整字形生成模型的参数。该实施例能够同时训练多个生成模块,从而保证各生成模块的匹配性和一致性。

应当理解,上述用于训练至少一个生成模块的任一方式均需要计算损失并基于损失来调整模块参数。具体地,训练多个生成模块中的至少一个生成模块包括:将样本源字形图像和样本参考字形图像集输入至少一个生成模块,以得到至少一个生成模块输出的源字符的预测字形图像;基于预测字形图像和目标字形图像,计算至少一个生成模块的损失;以及基于损失,调整至少一个生成模块的参数。

根据一些实施例,被训练的至少一个生成模块的损失包括像素损失、特征损失和判别损失。由此能够保证预测字形图像具有良好的视觉效果和精细化程度。

像素损失是基于至少一个生成模块输出的预测字形图像与目标字形图像之间的像素差异确定的。

根据一些实施例,像素损失可以是预测字形图像与目标字形图像的相应位置像素的像素值的平均绝对误差(Mean Absolute Error,MAE),又称L1Loss。根据另一些实施例,像素损失也可以是预测字形图像与目标字形图像的相应位置像素的像素值的均方误差(Mean Square Error,MSE),又称L2Loss。

特征损失是基于预测字形图像的特征向量与目标字形图像的特征向量之间的差异确定的。

根据一些实施例,可以分别将预测字形图像和目标字形图像输入预设的特征提取网络(例如VGG卷积神经网络),得到二者各自的特征向量。将二者的特征向量的距离(例如欧氏距离、曼哈顿距离、余弦距离等)作为特征损失。

判别损失是通过将预测字形图像输入判别模型而确定的。如上文所述,在模型训练阶段,生成模块可以实现为生成对抗网络中的生成器,其输出端连接有判别器,即判别模型。相应地,判别损失可以基于判别模型的预设的损失函数计算得出。判别模型的损失函数例如可以是交叉熵损失函数。

根据本公开实施例的字形生成模型的训练方法,可以得到经训练的字形生成模型。经训练的字形生成模型可以用于自动生成源字符在目标字体下的精细化的字形图像。

根据本公开的实施例,还提供了一种字形生成装置。图7示出了根据本公开实施例的字形生成装置700的结构框图。如图7所示,装置700包括第一获取单元710、第一融合单元710和第二融合单元730。

第一获取单元710被配置为获取源字形图像和所述源字形图像对应的参考字形图像集。所述源字形图像包括源字体的源字符,所述参考字形图像集包括目标字体的至少一个参考字符。

第一融合单元720被配置为将所述源字形图像与所述参考字形图像集进行融合,以得到所述源字符的中间字形图像;以及

第二融合单元730被配置为将所述中间字形图像与所述参考字形图像集进行融合,以得到所述源字符的生成字形图像,所述生成字形图像包括所述目标字体的所述源字符。

源字体与目标字体越接近,将源字体的字形图像与目标字体的参考字形图像集进行融合所得到的新字形图像中的字体与目标字体也越接近,新字形图像的字形生成效果越好、越精细。

根据本公开的实施例,通过将源字形图像与参考字形图像集进行融合,能够得到源字符的接近目标字体的中间字形图像。进一步地,通过将中间字形图像与目标字体的参考字形图像集进行融合,能够得到源字符在目标字体下的精细化的字形图像。

根据本公开的实施例,设计师仅需设计目标字体的少量字符(即参考字符,例如几十个或几百个)的字形图像,其他大量字符(即源字符,例如几千个)的字形图像可以通过字形生成方法来自动生成,从而大大提高了字形生成效率,能够快速建立目标字体的字库。

根据一些实施例,所述源字符由至少一个字符成分组成,每个参考字符包括所述至少一个字符成分中的至少之一,并且每个参考字符所包括的字符成分各不相同。

根据一些实施例,装置700还包括:第一确定单元,被配置为基于预设的字符对应关系,确定与所述源字符对应的所述至少一个参考字符;以及第二确定单元,被配置为基于所述至少一个参考字符,确定所述参考字形图像集。

根据一些实施例,装置700还包括:第二获取单元,被配置为获取用户字形图像,所述用户字形图像包括用户书写的多个字符;以及识别单元,被配置为识别所述多个字符中的每个字符所在的图像区域,得到多个图像区域,其中,所述目标字体为所述用户的手写体,所述参考字形图像集为所述多个图像区域的集合的子集。

根据一些实施例,装置700还包括:建立单元,被配置为基于所述生成字形图像,建立所述目标字体的字库。

根据本公开的实施例,还提供了一种字形生成模型的训练装置。

在本公开的实施例中,字形生成模型包括级联的多个生成模块。多个生成模块中的每个生成模块的输入为源字形图像和相应的参考字形图像集,输出为基于相应的参考字形图像集生成的预测字形图像。在相邻的两个生成模块中,前一个生成模块输出的预测字形图像为输入后一个生成模块的源字形图像。多个生成模块输入的参考字形图像集相同。

图8示出了根据本公开实施例的字形生成模型的训练装置800的结构框图。如图8所示,装置800包括获取单元810、训练单元820和生成单元830。

获取单元810被配置为获取样本源字形图像、样本源字形图像对应的样本参考字形图像集和样本源字形图像对应的目标字形图像。样本源字形图像包括源字体的源字符,样本参考字形图像集包括目标字体的至少一个参考字符,目标字形图像包括目标字体的源字符。

训练单元820被配置为将样本源字形图像和样本参考字形图像集作为输入,将目标字形图像作为标签,训练多个生成模块中的至少一个生成模块。

生成单元830被配置为基于经训练的至少一个生成模块,生成字形生成模型。

根据本公开的实施例,字形生成模型用于自动生成源字符在目标字体下的精细化的字形图像。字形生成模型是多阶段模型,其包括级联的多个生成模块。前一个生成模块输出的预测字形图像为输入后一个生成模块的源字形图像,由此可以使输入各生成模块的源字形图像与目标字体的外观样式越来越接近,从而使各生成模块输出的预测字形图像与目标字体的外观样式越来越接近,最终生成源字符在目标字体下的精细化的字形图像。

根据一些实施例,训练单元820包括:第一训练单元,被配置为将所述样本源字形图像和所述样本参考字形图像集作为输入,将所述目标字形图像作为标签,训练所述多个生成模块中的第一个生成模块;以及第二训练单元,被配置为将所述样本源字形图像和所述样本参考字形图像集作为输入,将所述目标字形图像作为标签,基于经训练的至少一个在先生成模块,训练当前生成模块,其中,所述当前生成模块为所述多个生成模块中的除所述第一个生成模块以外的任一生成模块,所述至少一个在先生成模块为所述多个生成模块中的位于所述当前生成模块之前的至少一个生成模块。

根据一些实施例,训练单元820包括:第三训练单元,被配置为将所述样本源字形图像和所述样本参考字形图像集作为输入,将所述目标字形图像作为标签,分别训练所述多个生成模块中的每个生成模块。

根据一些实施例,训练单元820包括:第四训练单元,被配置为将所述样本源字形图像和所述样本参考字形图像集作为输入,将所述目标字形图像作为标签,训练所述多个生成模块中的任一生成模块,得到经训练的生成模块;并且其中,生成单元830包括:同步单元,被配置为将所述经训练的生成模块的参数同步至所述多个生成模块中的其他生成模块。

根据一些实施例,训练单元820包括:预测单元,被配置为将所述样本源字形图像和所述样本参考字形图像集输入所述至少一个生成模块,以得到所述至少一个生成模块输出的所述源字符的预测字形图像;计算单元,被配置为基于所述预测字形图像和所述目标字形图像,计算所述至少一个生成模块的损失;以及调整单元,被配置为基于所述损失,调整所述至少一个生成模块的参数。

根据一些实施例,所述损失包括像素损失、特征损失和判别损失,所述至少一个生成模块的输出端连接有判别模型,所述像素损失是基于所述至少一个生成模块输出的预测字形图像与所述目标字形图像之间的像素差异确定的;所述特征损失是基于所述预测字形图像的特征向量与所述目标字形图像的特征向量之间的差异确定的;所述判别损失是通过将所述预测字形图像输入所述判别模型而确定的。

根据一些实施例,所述源字符由至少一个字符成分组成,每个参考字符包括所述至少一个字符成分中的至少之一,并且每个参考字符所包括的字符成分各不相同。

根据一些实施例,装置800还包括:第一确定单元,被配置为基于预设的字符对应关系,确定与所述源字符对应的所述至少一个参考字符;以及第二确定单元,被配置为基于所述至少一个参考字符,确定所述样本参考字形图像集。

应当理解,图7中所示装置700的各个单元可以与参考图1描述的方法100中的各个步骤相对应,图8中所示装置800的各个单元可以与参考图3描述的方法300中的各个步骤相对应。由此,上面针对方法100描述的操作、特征和优点同样适用于装置700及其包括的单元,上面针对方法300描述的操作、特征和优点同样适用于装置800及其包括的单元。为了简洁起见,某些操作、特征和优点在此不再赘述。

虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。

还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图7、图8描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,模块710-830中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。

根据本公开的实施例,还提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器,该存储器存储有可被上述至少一个处理器执行的指令,该指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述字形生成模型的训练方法和/或字形生成方法。

根据本公开的实施例,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行上述字形生成模型的训练方法和/或字形生成方法。

根据本公开的实施例,还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述字形生成模型的训练方法和/或字形生成方法。

参考图9,现将描述可以作为本公开的服务器或客户端的电子设备900的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

电子设备900中的多个部件连接至I/O接口905,包括:输入单元906、输出单元907、存储单元908以及通信单元909。输入单元906可以是能向设备900输入信息的任何类型的设备,输入单元906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元908可以包括但不限于磁盘、光盘。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如方法100、方法300。例如,在一些实施例中,方法100和/或方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM903并由计算单元901执行时,可以执行上文描述的方法100和方法300的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法100和/或方法300。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

相关技术
  • 字形生成方法、字形生成模型的训练方法及装置
  • 图像生成模型的训练方法及装置、图像的生成方法及装置
技术分类

06120114714761