CN113792850B - 字体生成模型训练方法、字库建立方法、装置及设备 - Google Patents
字体生成模型训练方法、字库建立方法、装置及设备 Download PDFInfo
- Publication number
- CN113792850B CN113792850B CN202111056558.8A CN202111056558A CN113792850B CN 113792850 B CN113792850 B CN 113792850B CN 202111056558 A CN202111056558 A CN 202111056558A CN 113792850 B CN113792850 B CN 113792850B
- Authority
- CN
- China
- Prior art keywords
- word
- model
- font
- generation
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000013145 classification model Methods 0.000 claims description 73
- 239000013598 vector Substances 0.000 claims description 32
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 239000004973 liquid crystal related substance Substances 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000006641 stabilisation Effects 0.000 claims description 4
- 238000011105 stabilization Methods 0.000 claims description 4
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 27
- 230000000694 effects Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013256 Gubra-Amylin NASH model Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000008485 antagonism Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/242—Division of the character sequences into groups prior to recognition; Selection of dictionaries
- G06V30/244—Division of the character sequences into groups prior to recognition; Selection of dictionaries using graphical properties, e.g. alphabet type or font
- G06V30/245—Font recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G06T3/04—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19127—Extracting features by transforming the feature space, e.g. multidimensional scaling; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/1916—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19173—Classification techniques
Abstract
本公开提供了一种字体生成模型训练方法、字库建立方法、装置及设备,涉及人工智能技术领域,具体涉及计算机视觉和深度学习技术领域,可应用于OCR等场景,包括:将源域样本字输入到字体生成模型,得到第一目标域生成字;将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失;根据所述目标对抗损失更新所述字体生成模型的模型参数。本公开实施例能够提高字体生成模型学习字体特征的能力,从而提高字体生成模型生成字体的美观度,进而提高字体生成模型生成字体级别字体的能力。
Description
技术领域
本公开涉及人工智能技术领域,具体涉及计算机视觉和深度学习技术领域,可应用于OCR(Optical Character Recognition,光学字符识别)等场景。
背景技术
字体生成一直是国内外许多研究者着重研究的课题,在字体设计行业有着广泛的应用价值。因此,如何满足风格多样性的字体生成需求,成为字体生成领域重点关注的问题。
发明内容
本公开实施例提供了一种字体生成模型训练方法、字库建立方法、装置及设备,能够提高字体生成模型学习字体特征的能力,从而提高字体生成模型生成字体的美观度,进而提高字体生成模型生成字体级别字体的能力。
第一方面,本公开实施例提供了一种字体生成模型训练方法,包括:
将源域样本字输入到字体生成模型,得到第一目标域生成字;
将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失;
根据所述目标对抗损失更新所述字体生成模型的模型参数。
第二方面,本公开实施例提供了一种字库建立方法,包括:
将源域输入字输入到字体生成模型,得到目标域新字;
基于所述目标域新字建立字库;
其中,所述字体生成模型通过第一方面所述的字体生成模型训练方法训练得到。
第三方面,本公开实施例提供了一种字体生成模型训练装置,包括:
第一目标域生成字获取模块,用于将源域样本字输入到字体生成模型,得到第一目标域生成字;
目标对抗损失获取模块,用于将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失;
模型参数更新模块,用于根据所述目标对抗损失更新所述字体生成模型的模型参数。
第四方面,本公开实施例提供了一种字库建立装置,包括:
目标域新字获取模块,用于将源域输入字输入到字体生成模型,得到目标域新字;
字库建立模块,用于基于所述目标域新字建立字库;
其中,所述字体生成模型通过第一方面所述的字体生成模型训练装置训练得到。
第五方面,本公开实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所提供的字体生成模型训练方法或第二方面实施例所提供的字库建立方法。
第六方面,本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面实施例所提供的字体生成模型训练方法或第二方面实施例所提供的字库建立方法。
第七方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面实施例所提供的字体生成模型训练方法或第二方面实施例所提供的字库建立方法。
本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字输入到字体鉴别模型,得到字体生成模型的目标对抗损失,从而根据目标对抗损失更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,从而提高字体生成模型生成字体的美观度,进而提高字体生成模型生成字体级别字体的能力满足了用户多样化的需求,提高了用户体验。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种字体生成模型训练方法的流程图;
图2是本公开实施例提供的一种字体生成模型训练方法的流程图;
图3是本公开实施例提供的一种字体生成模型的网络结构原理图;
图4是本公开实施例提供的一种字体生成模型的网络结构原理图;
图5是本公开实施例提供的一种特征损失的可视化效果示意图;
图6是本公开实施例提供的一种字体生成模型训练方法的原理图;
图7是本公开实施例提供的一种使用字符损失训练得到的字体生成模型的效果对比示意图;
图8是本公开实施例提供的一种使用特征损失训练得到的字体生成模型的效果对比示意图;
图9是本公开实施例提供的一种使用目标对抗损失训练得到的字体生成模型的效果对比示意图;
图10是本公开实施例提供的一种字库建立方法的流程图;
图11是本公开实施例提供的一种字体生成模型训练装置的结构图;
图12是本公开实施例提供的一种字库建立装置的结构图;
图13是用来实现本公开实施例的字体生成模型训练方法或字库建立方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
字体生成是图像风格迁移领域中的一项新兴任务,图像风格迁移是将一张图像在保持内容不变的情况下转换成另外一种风格,是深度学习应用的热门研究方向。
目前可以采用GAN(Generative Adversarial Networks,生成式对抗网络)模型来实现字体生成。但是在基于GAN模型的字体生成方案中,利用偏小数据量训练的网络,只能学习出一些相对较弱的特征,类似倾斜、大小、部分笔画的特征,无法学习出最具有用户风格的特征。也可以使用较大数据量训练的网络,虽然在风格上较强,但在训练集之外的汉字易产生错字。部分GAN模型虽然能够生成形状正确的字体,但仅仅形状正确并不能满足专业级字体的要求。由此可见,这些主流的字体生成的研究成果,都很难达到字体级别的效果。
在一个示例中,图1是本公开实施例提供的一种字体生成模型训练方法的流程图,本实施例可适用于根据对抗损失训练优化字体生成模型的情况,该方法可以由字体生成模型训练装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是终端设备或服务器设备等,本公开实施例并不对执行字体生成模型训练方法的电子设备的类型进行限定。相应的,如图1所示,该方法包括如下操作:
S110、将源域样本字输入到字体生成模型,得到第一目标域生成字。
在本公开的一个可选实施例中,源域样本字可以是具有目标源域字体风格的图像。目标源域可以是某一种源域字体风格,源域字体风格例如可以是楷体、宋体或黑体等常规真实字体。也即,目标源域可以是楷体、宋体或黑体等常规真实字体等任意一种真实字体风格。第一目标域生成字可以是具有目标域字体风格的图像,目标域字体风格可以是用户手写字体或者其他艺术字字体等需要生成的风格类型。字体生成模型能够生成具有目标域字体风格的字体。
在本公开实施例中,在训练字体生成模型时,可以首先将一种类型的源域样本字输入到字体生成模型中。字体生成模型可以根据输入的源域样本字输出该源域样本字对应的第一目标域生成字。
示例性的,可以将包含楷体字“做”的图像作为源域样本字输入到字体生成模型,字体生成模型可以输出包含用户手写字“做”的图像。
S120、将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失。
其中,字体鉴别模型可以是对第一目标域生成字的字体美观度进行精修的模型。目标对抗损失可以是字体鉴别模型对第一目标域生成字计算得到的对抗损失,可以用于衡量第一目标域生成字与真实字体的相似程度。可选的,字体鉴别模型可以是一种判别器模型。
目前已有的一些基于深度学习的字体生成方案,尤其是基于GAN网络的字体生成方案,可以生成形状正确的汉字。但仅仅形状正确并不能满足专业级别字体的要求。专业字体在保持字形风格满足要求的同时,需要控制笔画的抖动稳定在一个小范围内,使得生成的字体更符合字体的要求。
本公开实施例通过引入字体鉴别模型对字体生成模型进行监督,在字体生成模型根据源域样本字生成对应的第一目标域生成字之后,利用字体鉴别模型对第一目标域生成字计算目标对抗损失,用以衡量第一目标域生成字与真实字体之间的相似度,从而协助字体生成模型的训练过程,能够使得字体生成模型生成的字体级别的字体。
示例性的,通过字体鉴别模型监督字体生成模型的训练过程,可以使得字体生成模型生成的字体最大程度避免笔画连接规律错误和笔画抖动,保持生成字体的美观度。
S130、根据所述目标对抗损失更新所述字体生成模型的模型参数。
其中,模型参数例如可以是权重或偏置等字体生成模型的相关参数,本公开实施例并不对模型参数的类型进行限制。
可选的,在训练字体生成模型之前,可以将所有用于训练字体生成模型的源域样本字统一存储在字符表中。可以理解的是,字符表中所有的源域样本字可以为一种真实类型的字体。也即,每一种类型的字体生成模型可以将一种真实字体生成具有目标域字体风格的字体。相应的,在训练字体生成模型的过程中,字体生成模型每根据字符表中的一个源域样本字生成第一目标域生成字时,都可以通过字体鉴别模型计算第一目标域生成字的目标对抗损失,以利用计算得到的目标对抗损失对生成的第一目标域生成字进行优化,具体是调整更新字体生成模型的参数,得到更新的循环生成网络模型。针对下一个源域样本字,使用更新的字体生成返回执行将源域样本字输入到字体生成模型,得到第一目标域生成字的操作,以在字体鉴别模型的监督作用下对字体生成模型进行重复训练。
在本公开实施例中,字体鉴别模型将字符表中所有源域样本字均优化完成可以作为对字体生成模型的一轮优化。通过字体鉴别模型通过多轮优化更新字体生成模型的模型参数,不断更新字体生成模型,实现对字体生成模型训练的监督作用,使得字体生成模型生成字体级别的字体,提高字体生成模型生成字体的美观度。
本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字输入到字体鉴别模型,得到字体生成模型的目标对抗损失,从而根据目标对抗损失多轮更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,从而提高字体生成模型生成字体的美观度,进而提高字体生成模型生成字体级别字体的能力。
在一个示例中,图2是本公开实施例提供的一种字体生成模型训练方法的流程图,本公开实施例在上述各实施例的技术方案的基础上,进行了优化改进,给出了将源域样本字输入到字体生成模型,得到第一目标域生成字、训练字体鉴别模型和字体生成模型,以及更新字体生成模型的模型参数多种具体可选的实现方式。
如图2所示的一种字体生成模型训练方法,包括:
S210、将所述源域样本字输入到所述第一生成模型,得到所述第一目标域生成字和第一源域生成字。
其中,字体生成模型可以为循环网络生成模型,包括第一生成模型和第二生成模型。第一源域生成字可以是字体生成模型根据源域样本字生成的具有源域字体风格的图像。
S220、将目标域样本字输入到所述第二生成模型,得到第二目标域生成字和第二源域生成字。
其中,目标域样本字可以为具有目标域字体风格的图像。示例性的,第一目标域生成字是字体生成模型生成的包含手写字“做”的图像,目标域样本字是真实的包含手写字“做”字的图像,该真实的包含手写字“做”的图像可以是用户真实手写的字所生成图像。该用户真实手写的字所生成图像的获取可以来自于公开数据集,或者是经过了用户的授权。第二目标域生成字可以是字体生成模型生成的具有目标域字体风格的图像。第二源域生成字可以是字体生成模型根据目标域样本字生成的具有源域字体风格的图像。
S230、根据所述源域样本字、所述第一目标域生成字、所述第一源域生成字、所述目标域样本字、所述第二目标域生成字和所述第二源域生成字,计算所述字体生成模型的生成损失。
其中,生成损失可以是字体生成模型中生成模型的损失。
S240、根据所述生成损失更新所述第一生成模型的模型参数。在本公开实施例中,可选的,字体生成模型可以包括第一生成模型、第二生成模型、第一判别模型和第二判别模型。
S250、将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失。
其中,字符分类模型可以是对第一目标域生成字的准确率进行精修的模型。字符损失可以是字符分类模型对第一目标域生成字计算得到的错字损失,可以约束循环生成网络模型输出的第一目标域生成字的错字率。可选的,字符分类模型可以是采用VGG19网络训练得到的。字符分类模型的训练样本可以是包含多种字体的图像,例如训练样本可以是包含了80多种字体和6700多个字的约45万张的图像。
为了降低字体生成模型的错字率,除了利用字体生成模型的生成损失训练字体生成模型,在字体生成模型完成自训练之后,还可以采用预训练的字符分类模型来监督字体生成模型的训练过程。具体的,可以将字体生成模型生成的第一目标域生成字输入到预训练的字符分类模型,得到字体生成模型的字符损失。
在本公开的一个可选实施例中,所述将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失,可以包括:将所述第一目标域生成字输入到所述字符分类模型,得到所述第一目标域生成字的生成字符向量;根据所述生成字符向量与预设的标准字符向量之间的差异,计算所述字符损失。
将第一目标域生成字输入到上述字符分类模型,上述字符分类模型可以输出针对该第一目标域生成字的生成字符向量针对上述第一目标域生成字,预设有标准字符向量/>xi表示生成字符向量中下标为i的元素,yi表示标准字符向量中下标为i的元素,i为大于等于0并且小于等于n的整数,n表示生成字符向量/>和标准字符向量/>中的元素个数。
根据第一目标域生成字的生成字符向量和标准字符向量/>之间的差异,可以确定字体生成模型的字符损失。
具体的,将第一目标域生成字输入到字符分类模型,可以得到该第一目标域生成字的生成字符向量其中,向量/>中每个元素可以表示训练样本中的一个字符,则n表示训练样本中的字符个数,例如,训练样本具有6761个字,则n可以等于6760。
针对上述第一目标域生成字,预设有标准字符向量其中,向量/>中每个元素可以表示训练样本中的一个字符,则n表示训练样本中的字符个数,例如,训练样本具有6761个字,则n可以等于6760。
标准字符向量表示将第一目标域生成字输入到上述字符分类模型,上述字符分类模型应该输出的向量。例如,第一目标域生成字是“做”字,“做”字在训练样本中的n个字中位于第一个,则“做”字的标准字符向量可以表示为/>
在本公开的一个可选实施例中,所述计算所述字符损失,可以包括:根据以下公式计算所述字符损失:
其中,LC表示字符损失,xi表示生成字符向量中下标为i的元素,yi表示标准字符向量中下标为i的元素,i为大于等于0并且小于等于n的整数,n表示所述生成字符向量和所述标准字符向量中的元素个数。
上述技术方案,通过计算字体生成模型的字符损失可以约束字体生成模型输出的第一目标域生成字的错字率,从而减少字体生成模型生成错字的概率,提高字体生成模型的准确率。
S260、将所述第一目标域生成字和目标域样本字输入到所述字符分类模型,得到所述字体生成模型的特征损失。
其中,特征损失可以是字符分类模型根据第一目标域生成字和目标域样本字计算得到的差别特征,可以监督字体生成模型学习出更多的字体细节。
为了进一步提高字体生成模型学习字体特征的能力,除了利用字体生成模型的生成损失和字符损失训练字体生成模型,在字体生成模型完成自训练之后,还可以采用预训练的字符分类模型来监督字体生成模型的训练过程。具体的,可以将字体生成模型生成的第一目标域生成字输入到预训练的字符分类模型,得到字体生成模型的特征损失。
在本公开的一个可选实施例中,所述字符分类模型包括多个特征层;所述将所述第一目标域生成字和目标域样本字输入到所述字符分类模型,得到所述字体生成模型的特征损失,可以包括:将所述第一目标域生成字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的生成字特征图;将所述目标域样本字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的样本字特征图;计算目标特征层的生成字特征图和样本字特征图之间的差异,得到所述特征损失。
其中,生成字特征图可以是字符分类模型的每个特征层输出的生成字的特征图。样本字特征图可以是字符分类模型的每个特征层输出的样本字字的特征图。目标特征层可以是字符分类模型的某一个或多个特征层。
字符分类模型可以包括多个特征层(例如90个特征层),将第一目标域生成字输入到字符分类模型,可以得到每一层输出的生成字特征图。将目标域样本字输入到字符分类模型,可以得到每一层输出的样本字特征图。
针对每一层特征层输出的生成字特征图和样本字特征图之间的差异,可以确定该层的特征损失。例如,在每一特征层,将该特征层输出的生成字特征图和样本字特征图这两张图像的每个对应像素点的像素值作差,并求绝对值,得到每个像素点的差异,将所有像素点的差异求和得到该特征层的像素损失。
可选的,可以选取多层特征层中的至少一个(例如第45层和第46层)作为目标特征层,并将各目标特征层的特征损失之和作为总体的特征损失。
上述总体的特征损失可以用来表示字体生成模型学习第一目标域生成字和目标域样本字之间差别较大的特征,从而使字体生成模型学习出更多的字体细节,提高字体生成模型学习字体特征的能力。
在本公开的一个可选实施例中,所述计算目标特征层的生成字特征图和样本字特征图之间的差异,可以包括:计算所述生成字特征图中的每个位置的像素点的像素值与所述样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;根据多个位置的像素点的差异,确定所述生成字特征图和样本字特征图之间的像素差异。
S270、根据所述字符损失和所述特征损失更新所述第一生成模型的模型参数。
在本公开实施例中,在字体生成模型利用生成损失完成自训练之后,可以进一步采用字符分类模型分别计算字体生成模型的字符损失和特征损失,以根据字符损失和特征损失更新字体生成模型中第一生成模型的模型参数,从而继续监督训练字体生成模型。
上述技术方案,通过利用字符损失和特征损失更新第一生成模型的模型参数,实现对字体生成模型的监督训练,可以减少字体生成模型生成错字的概率,提高字体生成模型生成字体的准确率和学习字体特征的能力。
S280、将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失。
在本公开的一个可选实施例中,在将所述第一目标域生成字输入到字体鉴别模型之前,还可以包括:获取多种类型的源域样本字作为真实样本字;将所述第一目标域生成字作为虚假样本字;根据所述真实样本字和所述虚假样本字训练二分类模型,得到所述字体鉴别模型。
其中,二分类模型可以对输入的样本的真假类别进行判别。
在利用字体鉴别模型计算字体生成模型的目标对抗损失之前,需要首先预训练字体鉴别模型。可以首先收集一系列源域样本字的真实字体作为真实样本字,并将字体生成模型生成的第一目标域生成字作为虚假样本字。可以理解的是,可以采集不同字体生成模型生成的第一目标域生成字作为各个系列源域样本字对应的虚假样本字。得到真实样本字和虚假样本字之后,即可将真实样本字和虚假样本字作为训练样本训练二分类模型,训练成功的二分类模型即可作为字体鉴别模型。
可选的,字体鉴别模型在训练的过程中可以通过模型本身的判别损失作为损失函数。相应的,字体鉴别模型生成的目标对抗损失的表达式可以表示为(Y0 *-1)2。其中,Y0可以表示第一目标域生成字经过字体鉴别模型后得到的输出。
通过利用真实样本字和虚假样本字作为训练样本训练二分类模型,可以使得二分类模型能够具备判别字体生成模型生成的第一目标域生成字的字体是否接近真实字体的能力。
S290、根据所述目标对抗损失更新所述字体生成模型的模型参数。
需要说明的是,图2仅是一种实现方式的示意图,步骤S250-S260与步骤S280之间并没有先后执行顺序,可以先执行步骤S250-S260,再执行步骤S280。也可以先执行步骤S280,再执行步骤S250-S260。或者,也还可以同时执行上述操作。其中,S250与S260之间也没有先后执行顺序。同理,S270与S290之间也没有先后执行顺序,可以先执行步骤S270,再执行步骤S290。也可以先执行步骤S290,再执行步骤S270。或者,也还可以同时执行上述操作。
在本公开的一个可选实施例中,所述根据所述目标对抗损失更新所述字体生成模型的模型参数,可以包括:根据所述目标对抗损失多轮更新所述第一生成模型的模型参数,直至确定所述第一生成模型满足模型稳定条件;其中,所述模型稳定条件包括:所述第一生成模型的当前更新次数达到设定次数。
其中,设定次数可以根据模型训练需求设定,如5次或8次等,本公开实施例并不对设定次数的具体数值进行限定。
可选的,可以根据目标对抗损失多轮更新字体生成模型中第一生成模型的模型参数,直至确定达到设定的更新次数。
图3和图4是本公开实施例提供的一种字体生成模型的网络结构原理图。在一个具体的例子中,如图3和图4所示,在本公开实施例中,字体生成模型可以包括第一生成模型、第二生成模型、第一判别模型和第二判别模型。第一生成模型用于将源域字体风格的图像转换为目标域字体风格的图像,第二生成模型用于将目标域字体风格的图像转换为源域字体风格的图像。第一判别模型用于判别转换后的图像是否是属于源域字体风格的图像,第二判别模型用于判别转换后的图像是否是属于目标域字体风格的图像。
基于上述字体生成模型的结构,字体生成模型可以包括两个循环工作过程。图3所示为字体生成模型的第一个循环工作过程:将源域样本字输入到第一生成模型,得到第一目标域生成字,并将第一目标域生成字输入到第二生成模型,得到第一源域生成字。图4所示为字体生成模型的第二个循环工作过程:将目标域样本字输入到第二生成模型,得到第二源域生成字,并将第二源域生成字输入到第一生成模型,得到第二目标域生成字。从而字体生成模型的样本可以是未配对的图像,无须建立训练数据间的一对一映射。
在本公开实施例中,字体生成模型的损失包括生成损失和判别损失。下面以用户手写字作为目标域字体风格为例,具体说明字体生成模型生成损失和判别损失的计算方式。
如图3所示,为字体生成模型的第一个循环工作过程:将源域样本字(例如包含楷体字的图像,简称楷体字图像)输入到第一生成模型,得到第一目标域生成字(例如包含手写字的图像,简称手写字图像)。将第一目标域生成字(手写字图像)输入到第二生成模型,得到第一源域生成字(楷体字图像)。
在第一个循环工作过程中,源域样本字是真实的楷体字图像,而第一源域生成字是模型生成的楷体字图像,可以称为假的楷体字图像。第一目标域生成字是模型生成的手写字图像,可以称为假的手写字图像。在训练过程中,可以标注源域样本字为真Real(例如值为1),标注第一目标域生成字为假Fake(例如值为0)。
将源域样本字输入到第一判别模型,对于第一判别模型来说,预期输出应为1。如果第一判别模型实际输出为X,使用均方差计算第一判别模型的损失,则第一判别模型的一部分损失可以表示为(X-1)2。
将第一目标域生成字输入到第二判别模型,对于第二判别模型来说,预期输出应为0。如果第二判别模型实际输出为Y*(为便于区分,可以使用带*的参数表示该参数与模型生成的图像相关,不带*的参数表示该参数与真实的图像相关),使用均方差计算第二判别模型的损失,则第二判别模型的一部分损失可以表示为(Y*-0)2。
将第一目标域生成字输入到第二判别模型,对于第一生成模型来说,期望第二判别模型输出为1。如果第二判别模型实际输出为Y*,使用均方差计算第一生成模型的损失,则第一生成模型的一部分损失可以表示为(Y*-1)2,该损失可以为第一生成模型的对抗损失。
为了保证将源域样本字输入到第一生成模型得到的第一源域生成字仅仅是风格转换,内容保持不变,可以针对第一生成模型增加一个cycle-consistency loss(循环一致性损失)。该损失可以根据源域样本字和第一源域生成字之间的差异计算得到。例如,将源域样本字和第一源域生成字这两张图像的每个对应像素点的像素值作差,并求绝对值,得到每个像素点的差异,将所有像素点的差异求和得到第一生成模型的循环一致性损失,可以记为L1A2B。
因此,第一生成模型的一部分损失为(Y*-1)2,另一部分损失为L1A2B,这两部分损失之和作为第一生成模型的总体损失LA2B,第一生成模型的总体损失LA2B可以用如下等式(1)表示:
LA2B=(Y*-1)2+L1A2B (1)
如图4所示,为字体生成模型的第二个循环工作过程:将目标域样本字(例如包含手写字的图像,简称手写字图像)输入到第二生成模型,得到第二源域生成字(例如包含楷体字的图像,简称楷体字图像)。将第二源域生成字(楷体字图像)输入到第一生成模型,得到第二目标域生成字(手写字图像)。
在第二个循环工作过程中,目标域样本字是真实手写字图像,第二目标域生成字是模型生成的手写字图像,可以称为假的手写字图像。第二源域生成字是模型生成的楷体字图像,可以称为假的楷体字图像。在训练过程中,可以标注目标域样本字为真Real(例如值为1),标注第二源域生成字为假Fake(例如值为0)。
将目标域样本字输入到第二判别模型,对于第二判别模型来说,预期输出应为1,如果第二判别模型实际输出为Y,使用均方差计算第二判别模型的损失,则第二判别模型的一部分损失可以表示为(Y-1)2。
将第二源域生成字输入到第一判别模型,对于第一判别模型来说,预期输出应为0。如果第一判别模型实际输出为X*,使用均方差计算第一判别模型的损失,则第一判别模型的一部分损失可以表示为(X*-0)2。
将第二源域生成字输入到第一判别模型,对于第二生成模型来说,期望第一判别模型输出为1。如果第一判别模型实际输出为X*,使用均方差计算第二生成模型的损失,则第二生成模型的一部分损失可以表示为(X*-1)2。
为了保证将目标域样本字输入到第二生成模型得到的第二目标域生成字仅仅是风格转换,内容保持不变,可以针对第二生成模型增加一个cycle-consistency loss(循环一致性损失)。该损失可以根据目标域样本字和第二目标域生成字之间的差异计算得到。例如,将目标域样本字和第二目标域生成字这两张图像的每个对应像素点的像素值作差,并求绝对值,得到每个像素点的差异,将所有像素点的差异求和得到第二生成模型的循环一致性损失,可以记为L1B2A。
因此,第二生成模型的一部分损失为(X*-1)2,另一部分损失为L1B2A,这两部分损失之和作为第二生成模型的总体损失LB2A,第二生成模型的总体损失LB2A可以用如下等式(2)表示:
LB2A=(X*-1)2+L1B2A (2)
第一生成模型的总体损失LA2B以及第二生成模型的总体损失LB2A之和可以作为字体生成模型的生成损失,生成损失可以用如下等式(3)表示:
LG=(Y*-1)2+L1A2B+(X*-1)2+L1B2A (3)
其中,LG表示字体生成模型的生成损失,可以用于调整第一生成模型和第二生成模型的模型参数。
字体生成模型的判别损失包括第一判别模型的判别损失和第二判别模型的判别损失。
根据图3计算出第一判别模型的一部分损失为(X-1)2,并根据图4计算出第一判别模型的另一部分损失为(X*-0)2,则两部分损失之和可以作为第一判别模型的判别损失,第一判别模型的判别损失LA可以用如下等式(4)表示:
LA=(X-1)2+(X*-0)2 (4)
第一判别模型的判别损失LA可用于调整第一判别模型的模型参数。
类似地,根据图3计算出第二判别模型的一部分损失为(Y*-0)2,并根据图4计算出第二判别模型的另一部分损失为(Y-1)2,则两部分损失之和可以作为第二判别模型的判别损失,第二判别模型的判别损失LB可以用如下等式(5)表示:
LB=(Y-1)2+(Y*-0)2 (5)
第二判别模型的判别损失LB可用于调整第二判别模型的模型参数。
上述技术方案,通过利用字体生成模型的生成损失更新第一生成模型的模型参数,可以实现根据字体生成模型的本身结构对字体生成模型进行优化,提高字体生成模型学习字体特征的能力。
图5是本公开实施例提供的一种特征损失的可视化效果示意图。在一个具体的例子中,如图5标号为(1)的子图所示,目标域样本字501是真实的包含手写字“神”的图像,即目标域样本字501中的“神”字是用户的真实手写字。第一目标域生成字502为字体生成模型生成的包含手写字“神”的图像,目标域样本字501和第一目标域生成字502的大小均为256*256。目标域样本字501和第一目标域生成字502输入到字符分类模型,在字符分类模型的第一目标特征层分别输出样本字特征图和生成字特征图,样本字特征图和生成字特征图的大小均为64*64,将这两张64*64的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图503。热力效果图503也是64*64的图像,热力效果图503中颜色越深的地方表示目标域样本字501和第一目标域生成字502之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图503中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
类似地,如图5标号为(2)的子图所示,目标域样本字501和第一目标域生成字502输入到字符分类模型,在字符分类模型的第二目标特征层分别输出样本字特征图和生成字特征图,样本字特征图和生成字特征图的大小均为32*32,将这两张32*32的图像进行像素差异计算后,得到表示该两张图像之间差异的热力效果图504。热力效果图504也是32*32的图像,热力效果图504中颜色越深的地方表示目标域样本字501和第一目标域生成字502之间的差别越大,可以使得字体生成模型更加专注于学习热力效果图504中颜色较深的部位的特征,来提高字体生成模型学习字体特征的能力。
可以理解,可以结合热力效果图503和热力效果图504,共同使得字体生成模型学习目标域样本字501和第一目标域生成字502之间的差别较大的特征,来提高字体生成模型学习字体特征的能力。
图6是本公开实施例提供的一种字体生成模型训练方法的原理图。如图6所示,对字体生成模型的完整训练过程可以包括下述操作:首先将源域样本字输入到字体生成模型的第一生成模型,得到第一目标域生成字和第一源域生成字,并将目标域样本字输入到字体生成模型的第二生成模型,得到第二目标域生成字和第二源域生成字。进一步根据源域样本字、第一目标域生成字、第一源域生成字、目标域样本字、第二目标域生成字和第二源域生成字,计算字体生成模型的生成损失,以根据生成损失更新第一生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型第一次训练完成后,将第一目标域生成字输入到预训练的字符分类模型,得到字体生成模型的字符损失;将第一目标域生成字和目标域样本字输入到字符分类模型,得到字体生成模型的特征损失,从而根据字符分类模型计算得到的字符损失和特征损失更新第一生成模型的模型参数,再次实现对字体生成模型的训练。也还可以将第一目标域生成字输入到字体鉴别模型,以计算得到字体生成模型的目标对抗损失,从而根据目标对抗损失多轮更新字体生成模型的模型参数。需要说明的是,根据字符损失、特征损失和目标对抗损失对字体生成模型的训练过程可以同步进行,也可以按先后顺序执行,本公开实施例对此并不进行限制。
图7是本公开实施例提供的一种使用字符损失训练得到的字体生成模型的效果对比示意图。在一个具体的例子中,如图7所示,标号为(1)的图像是没有使用字符损失约束字体生成模型而生成的包含手写字“伶”的图像。标号为(2)的图像是使用字符损失约束字体生成模型而生成的包含手写字“伶”的图像。标号为(1)的图像中的“伶”字相比于正确的“伶”字少了一点,而标号为(2)的图像中的“伶”字则是正确的“伶”字。因此,使用字符损失约束字体生成模型能够学习到正确的字,降低错字率,提高模型的准确率。
图8是本公开实施例提供的一种使用特征损失训练得到的字体生成模型的效果对比示意图。在一个具体的例子中,如图8所示,标号为(1)的图像是真实的包含手写字“彤”的图像,即标号为(1)的图像的“彤”字是用户的真实手写字。标号为(2)的图像是没有使用特征损失约束字体生成模型而生成的包含手写字“彤”的图像。标号为(3)的图像是使用特征损失约束字体生成模型而生成的包含手写字“彤”的图像。相比于标号为(2)的图像中的“彤”字,标号为(3)的图像中的“彤”字学习到了真实用户手写的“彤”字(即标号为(1)的图像中的“彤”字)更多的特征,与真实用户手写的“彤”字更相似。
图9是本公开实施例提供的一种使用目标对抗损失训练得到的字体生成模型的效果对比示意图。在一个具体的例子中,如图9所示,标号为(1)的图像是真实的包含手写字“久”的图像,即标号为(1)的图像的“久”字是用户的真实手写字。标号为(2)的图像是没有使用目标对抗损失约束字体生成模型而生成的包含手写字“久”的图像。标号为(3)的图像是使用目标对抗损失约束字体生成模型而生成的包含手写字“久”的图像。相比于标号为(2)的图像中的“久”字,标号为(3)的图像中的“久”字的笔画更平稳,笔画连接更规律。
上述技术方案,通过利用生成损失、字符损失、特征损失和目标对抗损失等多种损失类型训练字体生成模型,可以提高字体生成模型学习字体特征的能力,降低错字生成率,从而提高字体生成模型生成字体的美观度和准确率,进而提高字体生成模型生成字体级别字体的能力。
本公开的技术方案中,所涉及用户个人信息(如用户字体信息等)的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本公开的保护范围。
在一个示例中,图10是本公开实施例提供的一种字库建立方法的流程图,本公开实施例可适用于利用根据对抗损失训练优化的字体生成模型建立字库的情况,该方法可以由字库建立装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是终端设备或服务器设备等,本公开实施例并不对执行字库建立方法的电子设备的类型进行限定。相应的,如图10所示,该方法包括如下操作:
S1010、将源域输入字输入到字体生成模型,得到目标域新字。
其中,源域输入字可以是某一源域字体的某些字,目标域新字可以是需要生成的具有目标域字体风格的新字。示例性的,源域输入字可以为楷体字图像,新字可以为手写字图像,将楷体字图像输入到字体生成模型,可以得到手写字图像。字体生成模型通过上述任一实施例所述的字体生成模型训练方法训练得到。
S1020、基于所述目标域新字建立字库。
示例性的,可以将字体生成模型生成的新字进行存储,建立得到具有手写字体风格的字库,该字库可应用于输入法,用户使用基于该字库的输入法可以直接获取具有手写字体风格的字,能够满足了用户多样化的需求,提高了用户体验。
在一个示例中,图11是本公开实施例提供的一种字体生成模型训练装置的结构图,本公开实施例可适用于根据对抗损失训练优化字体生成模型的情况,该装置通过软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是终端设备或服务器设备等。
如图11所示的一种字体生成模型训练装置1100,包括:第一目标域生成字获取模块1110、目标对抗损失获取模块1120和模型参数更新模块1130。其中,
第一目标域生成字获取模块1110,用于将源域样本字输入到字体生成模型,得到第一目标域生成字;
目标对抗损失获取模块1120,用于将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失;
第一模型参数更新模块1130,用于根据所述目标对抗损失更新所述字体生成模型的模型参数。
本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字输入到字体鉴别模型,得到字体生成模型的目标对抗损失,从而根据目标对抗损失多轮更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,从而提高字体生成模型生成字体的美观度,进而提高字体生成模型生成字体级别字体的能力。
可选的,字体生成模型训练装置还包括:真实样本字获取模块,用于获取多种类型的源域样本字作为真实样本字;虚假样本字获取模块,用于将所述第一目标域生成字作为虚假样本字;字体鉴别模型训练模块,用于根据所述真实样本字和所述虚假样本字训练二分类模型,得到所述字体鉴别模型。
可选的,所述字体生成模型为循环网络生成模型,包括第一生成模型和第二生成模型;第一模型参数更新模块1130具体用于:根据所述目标对抗损失多轮更新所述第一生成模型的模型参数,直至确定所述第一生成模型满足模型稳定条件;其中,所述模型稳定条件包括:所述第一生成模型的当前更新次数达到设定次数。
可选的,第一目标域生成字获取模块1110具体用于:将所述源域样本字输入到所述第一生成模型,得到所述第一目标域生成字和第一源域生成字;字体生成模型训练装置还包括:第二目标域生成字获取模块,用于将目标域样本字输入到所述第二生成模型,得到第二目标域生成字和第二源域生成字;生成损失计算模块,用于根据所述源域样本字、所述第一目标域生成字、所述第一源域生成字、所述目标域样本字、所述第二目标域生成字和所述第二源域生成字,计算所述字体生成模型的生成损失;第二模型参数更新模块,用于根据所述生成损失更新所述第一生成模型的模型参数。
可选的,字体生成模型训练装置还包括:字符损失获取模块,用于将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失;特征损失获取模块,用于将所述第一目标域生成字和目标域样本字输入到所述字符分类模型,得到所述字体生成模型的特征损失;第三模型参数更新模块,用于根据所述字符损失和所述特征损失更新所述第一生成模型的模型参数。
可选的,所述字符损失获取模块具体用于:将所述第一目标域生成字输入到所述字符分类模型,得到所述第一目标域生成字的生成字符向量;根据所述生成字符向量与预设的标准字符向量之间的差异,计算所述字符损失。
可选的,所述字符损失获取模块具体用于:根据以下公式计算所述字符损失:
其中,LC表示字符损失,xi表示生成字符向量中下标为i的元素,yi表示标准字符向量中下标为i的元素,i为大于等于0并且小于等于n的整数,n表示所述生成字符向量和所述标准字符向量中的元素个数。
可选的,所述字符分类模型包括多个特征层;所述特征损失获取模块具体用于:将所述第一目标域生成字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的生成字特征图;将所述目标域样本字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的样本字特征图;计算目标特征层的生成字特征图和样本字特征图之间的差异,得到所述特征损失。
可选的,所述特征损失获取模块具体用于:计算所述生成字特征图中的每个位置的像素点的像素值与所述样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;根据多个位置的像素点的差异,确定所述生成字特征图和样本字特征图之间的像素差异。
可选的,所述源域样本字为具有目标源域字体风格的图像。
上述字体生成模型训练装置可执行本公开任意实施例所提供的字体生成模型训练方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的字体生成模型训练方法。
在一个示例中,图12是本公开实施例提供的一种字库建立装置的结构图,本公开实施例可适用于利用根据对抗损失训练优化的字体生成模型建立字库的情况,该装置通过软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是终端设备或服务器设备等。
如图12所示的一种字库建立装置1200,包括:目标域新字获取模块1210和字库建立模块1220。其中,
目标域新字获取模块1210,用于将源域输入字输入到字体生成模型,得到目标域新字;
字库建立模块1220,用于基于所述目标域新字建立字库;
其中,所述字体生成模型通过本公开任一项实施例所述的字体生成模型训练装置训练得到。
上述字库建立装置可执行本公开任意实施例所提供的字库建立方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的字库建立方法。
在一个示例中,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图13示出了可以用来实施本公开的实施例的示例电子设备1300的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图13所示,设备1300包括计算单元1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序,来执行各种适当的动作和处理。在RAM 1303中,还可存储设备1300操作所需的各种程序和数据。计算单元1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1301执行上文所描述的各个方法和处理,例如字体生成模型训练方法或字库建立方法。例如,在一些实施例中,字体生成模型训练方法或字库建立方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1302和/或通信单元1309而被载入和/或安装到设备1300上。当计算机程序加载到RAM 1303并由计算单元1301执行时,可以执行上文描述的字体生成模型训练方法或字库建立方法的一个或多个步骤。备选地,在其他实施例中,计算单元1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行字体生成模型训练方法或字库建立方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器还可以分布式系统的服务器,或者是结合了区块链的服务器。
本公开实施例通过将源域样本字输入到字体生成模型,得到第一目标域生成字,以将第一目标域生成字输入到字体鉴别模型,得到字体生成模型的目标对抗损失,从而根据目标对抗损失多轮更新字体生成模型的模型参数,实现对字体生成模型的训练。当字体生成模型训练完成后,可以将源域输入字输入到字体生成模型,得到目标域新字,从而基于目标域新字建立字库,解决现有字体生成模型难以生成字体级别的字体的问题,能够提高字体生成模型学习字体特征的能力,从而提高字体生成模型生成字体的美观度,进而提高字体生成模型生成字体级别字体的能力,满足了用户多样化的需求,提高了用户体验。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种字体生成模型训练方法,包括:
将源域样本字输入到第一生成模型,得到第一目标域生成字和第一源域生成字;
将目标域样本字输入到第二生成模型,得到第二目标域生成字和第二源域生成字;
根据所述源域样本字、所述第一目标域生成字、所述第一源域生成字、所述目标域样本字、所述第二目标域生成字和所述第二源域生成字,计算所述字体生成模型的生成损失;其中,所述字体生成模型为循环网络生成模型,包括第一生成模型和第二生成模型;
根据所述生成损失更新所述第一生成模型的模型参数;
将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失;
根据所述目标对抗损失多轮更新所述第一生成模型的模型参数,直至确定所述第一生成模型满足模型稳定条件;
其中,所述模型稳定条件包括:所述第一生成模型的当前更新次数达到设定次数。
2.根据权利要求1所述的方法,还包括:
获取多种类型的源域样本字作为真实样本字;
将所述第一目标域生成字作为虚假样本字;
根据所述真实样本字和所述虚假样本字训练二分类模型,得到所述字体鉴别模型。
3.根据权利要求1所述的方法,还包括:
将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失;
将所述第一目标域生成字和目标域样本字输入到所述字符分类模型,得到所述字体生成模型的特征损失;
根据所述字符损失和所述特征损失更新所述第一生成模型的模型参数。
4.根据权利要求3所述的方法,其中,所述将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失,包括:
将所述第一目标域生成字输入到所述字符分类模型,得到所述第一目标域生成字的生成字符向量;
根据所述生成字符向量与预设的标准字符向量之间的差异,计算所述字符损失。
5.根据权利要求3所述的方法,其中,所述字符分类模型包括多个特征层;
所述将所述第一目标域生成字和目标域样本字输入到所述字符分类模型,得到所述字体生成模型的特征损失,包括:
将所述第一目标域生成字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的生成字特征图;
将所述目标域样本字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的样本字特征图;
计算目标特征层的生成字特征图和样本字特征图之间的差异,得到所述特征损失。
6.根据权利要求5所述的方法,其中,所述计算目标特征层的生成字特征图和样本字特征图之间的差异,包括:
计算所述生成字特征图中的每个位置的像素点的像素值与所述样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;
根据多个位置的像素点的差异,确定所述生成字特征图和样本字特征图之间的像素差异。
7.根据权利要求1至6中任一项所述的方法,其中,所述源域样本字为具有目标源域字体风格的图像。
8.一种字库建立方法,包括:
将源域输入字输入到字体生成模型,得到目标域新字;
基于所述目标域新字建立字库;
其中,所述字体生成模型通过权利要求1至7中任一项所述的字体生成模型训练方法训练得到。
9.一种字体生成模型训练装置,包括:
第一目标域生成字获取模块,用于将源域样本字输入到第一生成模型,得到第一目标域生成字和第一源域生成字;
第二目标域生成字获取模块,用于将目标域样本字输入到第二生成模型,得到第二目标域生成字和第二源域生成字;
生成损失计算模块,用于根据所述源域样本字、所述第一目标域生成字、所述第一源域生成字、所述目标域样本字、所述第二目标域生成字和所述第二源域生成字,计算所述字体生成模型的生成损失;其中,所述字体生成模型为循环网络生成模型,包括第一生成模型和第二生成模型;
第二模型参数更新模块,用于根据所述生成损失更新所述第一生成模型的模型参数;
目标对抗损失获取模块,用于将所述第一目标域生成字输入到字体鉴别模型,得到所述字体生成模型的目标对抗损失;
第一模型参数更新模块,用于根据所述目标对抗损失多轮更新所述第一生成模型的模型参数,直至确定所述第一生成模型满足模型稳定条件;其中,所述模型稳定条件包括:所述第一生成模型的当前更新次数达到设定次数。
10.根据权利要求9所述的装置,还包括:
真实样本字获取模块,用于获取多种类型的源域样本字作为真实样本字;
虚假样本字获取模块,用于将所述第一目标域生成字作为虚假样本字;
字体鉴别模型训练模块,用于根据所述真实样本字和所述虚假样本字训练二分类模型,得到所述字体鉴别模型。
11.根据权利要求9所述的装置,还包括:
字符损失获取模块,用于将所述第一目标域生成字输入到预训练的字符分类模型,得到所述字体生成模型的字符损失;
特征损失获取模块,用于将所述第一目标域生成字和目标域样本字输入到所述字符分类模型,得到所述字体生成模型的特征损失;
第三模型参数更新模块,用于根据所述字符损失和所述特征损失更新所述第一生成模型的模型参数。
12.根据权利要求11所述的装置,其中,所述字符损失获取模块具体用于:
将所述第一目标域生成字输入到所述字符分类模型,得到所述第一目标域生成字的生成字符向量;
根据所述生成字符向量与预设的标准字符向量之间的差异,计算所述字符损失。
13.根据权利要求11所述的装置,其中,所述字符分类模型包括多个特征层;所述特征损失获取模块具体用于:
将所述第一目标域生成字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的生成字特征图;
将所述目标域样本字输入到所述字符分类模型,得到所述字符分类模型的每个特征层输出的样本字特征图;
计算目标特征层的生成字特征图和样本字特征图之间的差异,得到所述特征损失。
14.根据权利要求13所述的装置,其中,所述特征损失获取模块具体用于:
计算所述生成字特征图中的每个位置的像素点的像素值与所述样本字特征图中对应位置的像素点的像素值之间的差值的绝对值,得到每个位置的像素点的差异;
根据多个位置的像素点的差异,确定所述生成字特征图和样本字特征图之间的像素差异。
15.根据权利要求9-14中任一项所述的装置,其中,所述源域样本字为具有目标源域字体风格的图像。
16.一种字库建立装置,包括:
目标域新字获取模块,用于将源域输入字输入到字体生成模型,得到目标域新字;
字库建立模块,用于基于所述目标域新字建立字库;
其中,所述字体生成模型通过权利要求9至15中任一项所述的字体生成模型训练装置训练得到。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的字体生成模型训练方法或权利要求8所述的字库建立方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的字体生成模型训练方法或权利要求8所述的字库建立方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111056558.8A CN113792850B (zh) | 2021-09-09 | 2021-09-09 | 字体生成模型训练方法、字库建立方法、装置及设备 |
JP2022007116A JP7289942B2 (ja) | 2021-09-09 | 2022-01-20 | フォント生成モデルトレーニング方法、フォントライブラリ作成方法、フォント生成モデルトレーニング装置、フォントライブラリ作成装置、電子機器、コンピュータ可読記憶媒体、及び、コンピュータプログラム |
EP22158661.3A EP4047562A1 (en) | 2021-09-09 | 2022-02-24 | Method and apparatus for training a font generation model |
KR1020220025544A KR20220032537A (ko) | 2021-09-09 | 2022-02-25 | 폰트 생성 모델 트레이닝 방법, 폰트 라이브러리 구축 방법, 장치 및 설비 |
US17/682,131 US11875584B2 (en) | 2021-09-09 | 2022-02-28 | Method for training a font generation model, method for establishing a font library, and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111056558.8A CN113792850B (zh) | 2021-09-09 | 2021-09-09 | 字体生成模型训练方法、字库建立方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113792850A CN113792850A (zh) | 2021-12-14 |
CN113792850B true CN113792850B (zh) | 2023-09-01 |
Family
ID=78879758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111056558.8A Active CN113792850B (zh) | 2021-09-09 | 2021-09-09 | 字体生成模型训练方法、字库建立方法、装置及设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11875584B2 (zh) |
EP (1) | EP4047562A1 (zh) |
JP (1) | JP7289942B2 (zh) |
KR (1) | KR20220032537A (zh) |
CN (1) | CN113792850B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230282015A1 (en) * | 2022-03-02 | 2023-09-07 | Capital One Services, Llc | Techniques for generation of synthetic data with simulated handwriting |
US11947896B2 (en) | 2022-06-24 | 2024-04-02 | Adobe Inc. | Font recommendation |
US11886809B1 (en) * | 2022-10-31 | 2024-01-30 | Adobe Inc. | Identifying templates based on fonts |
CN117649672B (zh) * | 2024-01-30 | 2024-04-26 | 湖南大学 | 基于主动学习与迁移学习的字体类别视觉检测方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110503598A (zh) * | 2019-07-30 | 2019-11-26 | 西安理工大学 | 基于条件循环一致性生成对抗网络的字体风格迁移方法 |
CN110516577A (zh) * | 2019-08-20 | 2019-11-29 | Oppo广东移动通信有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN112633430A (zh) * | 2020-12-25 | 2021-04-09 | 同济大学 | 一种中文字体风格迁移方法 |
CN112861806A (zh) * | 2021-03-17 | 2021-05-28 | 网易(杭州)网络有限公司 | 基于生成对抗网络的字体数据处理方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678410B1 (en) * | 1999-02-17 | 2004-01-13 | Adobe Systems Incorporated | Generating a glyph |
EP1793672A2 (en) * | 2004-09-16 | 2007-06-13 | Virogenomics, Inc. | Treatment of ischemia |
US7724957B2 (en) * | 2006-07-31 | 2010-05-25 | Microsoft Corporation | Two tiered text recognition |
US9317777B2 (en) * | 2013-10-04 | 2016-04-19 | Monotype Imaging Inc. | Analyzing font similarity for presentation |
US10515296B2 (en) * | 2017-11-14 | 2019-12-24 | Adobe Inc. | Font recognition by dynamically weighting multiple deep learning neural networks |
JP2021026191A (ja) * | 2019-08-08 | 2021-02-22 | ブラザー工業株式会社 | 学習済みの機械学習モデル、画像データ生成装置、および、方法 |
CN113140018B (zh) * | 2021-04-30 | 2023-06-20 | 北京百度网讯科技有限公司 | 训练对抗网络模型的方法、建立字库的方法、装置和设备 |
-
2021
- 2021-09-09 CN CN202111056558.8A patent/CN113792850B/zh active Active
-
2022
- 2022-01-20 JP JP2022007116A patent/JP7289942B2/ja active Active
- 2022-02-24 EP EP22158661.3A patent/EP4047562A1/en not_active Withdrawn
- 2022-02-25 KR KR1020220025544A patent/KR20220032537A/ko unknown
- 2022-02-28 US US17/682,131 patent/US11875584B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110503598A (zh) * | 2019-07-30 | 2019-11-26 | 西安理工大学 | 基于条件循环一致性生成对抗网络的字体风格迁移方法 |
CN110516577A (zh) * | 2019-08-20 | 2019-11-29 | Oppo广东移动通信有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN112633430A (zh) * | 2020-12-25 | 2021-04-09 | 同济大学 | 一种中文字体风格迁移方法 |
CN112861806A (zh) * | 2021-03-17 | 2021-05-28 | 网易(杭州)网络有限公司 | 基于生成对抗网络的字体数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
FontGAN: A Unified Generative Framework for Chinese Character Stylization and De-stylization;Xiyan Liu et al.;《arXiv》;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
US20230114293A1 (en) | 2023-04-13 |
EP4047562A1 (en) | 2022-08-24 |
CN113792850A (zh) | 2021-12-14 |
KR20220032537A (ko) | 2022-03-15 |
JP7289942B2 (ja) | 2023-06-12 |
US11875584B2 (en) | 2024-01-16 |
JP2023039886A (ja) | 2023-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113792850B (zh) | 字体生成模型训练方法、字库建立方法、装置及设备 | |
CN113792851B (zh) | 字体生成模型训练方法、字库建立方法、装置及设备 | |
CN113657397B (zh) | 循环生成网络模型的训练方法、建立字库的方法和装置 | |
CN113792854B (zh) | 一种模型训练及字库建立方法、装置、设备及存储介质 | |
CN113140017B (zh) | 训练对抗网络模型的方法、建立字库的方法、装置和设备 | |
CN113792855B (zh) | 一种模型训练及字库建立方法、装置、设备和存储介质 | |
JP7384943B2 (ja) | 文字生成モデルのトレーニング方法、文字生成方法、装置、機器及び媒体 | |
CN113205041B (zh) | 结构化信息提取方法、装置、设备和存储介质 | |
CN113792853B (zh) | 字符生成模型的训练方法、字符生成方法、装置和设备 | |
CN113095421B (zh) | 生成字体数据库的方法、神经网络模型的训练方法和装置 | |
CN114820871A (zh) | 字体生成方法、模型的训练方法、装置、设备和介质 | |
US20230154077A1 (en) | Training method for character generation model, character generation method, apparatus and storage medium | |
CN115131453B (zh) | 颜色填充模型训练、颜色填充方法及装置、电子设备 | |
CN114973279B (zh) | 手写文本图像生成模型的训练方法、装置和存储介质 | |
CN112580803B (zh) | 模型获取方法、装置、电子设备、存储介质和程序产品 | |
CN116884025A (zh) | 表格结构识别及模型训练方法、装置、设备和介质 | |
CN116486144A (zh) | 噪声标签检测器的生成方法、噪声标签检测方法和装置 | |
CN117454161A (zh) | 网络模型训练方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |