基于条件生成对抗网络的汉字字体的方法与流程

文档序号:18624354发布日期:2019-09-06 22:50阅读:949来源:国知局
基于条件生成对抗网络的汉字字体的方法与流程

本发明涉及一种生成汉字字体的方法,具体说是基于条件生成对抗网络的汉字字体的方法。



背景技术:

随着经济和社会的发展,人们在日常生活中会接触到越来越多的字库,但是这些字库多是由专业团队设计而成,字库的设计是一个非常耗时的工作,与只包含26个字母的英文字体库不同,常用字符集gb2312由6763个汉字组成,此外由于汉字的结构复杂,形状多样,也增加中文字库的制作难度。而目前,中文字库的制作大多依赖于人工经验和设计,即使由专业的字体设计人员来设计一套完整的字库也需要花费2-3年的时间,自动化程度很低,制作周期长,效率底下。

最近有些关于自动生成中文字的尝试,其中最为典型的方法是笔画提取,在这种方法中,字体的生成分为笔画提取以及笔画重组两个部分。字符图像的有效笔划提取对字体生成性能的好坏起着至关重要的作用。然而由于中文的多样性以及复杂性。目前笔画提取的算法不能准确工作。

随着深度学习技术在计算机视觉领域的不断发展,越来越多的研究者将深度神经网络技术用于汉字字体的生成。根据有少量的目标字体生成其他具有目标风格的汉字字体,可以省去大量的人工,缩短字库设计的时间。文献(yuchentian.2016.rewrite:neuralstyletransferforchinesefonts.(2016).retrievednov23,2016fromhttps://github.com/kaonashi-tyc/rewrite)采用卷积神经网络结构来生成中文字体。虽然该方法能够产生标准的打印字体。但是需要用户提供几千个汉字,同时在字体结构复杂时的生成效果也不够好,不能满足实际的应用。文献(pengyuanlyu,xiangbai,congyao,zhenzhu,tengtenghuang,andwenyuliu.2017.auto-encoderguidedganforchinesecalligraphysynthesis)将汉字字体的生成看作是图形的风格转化问题,采用对抗网络训练模式,利用自编码器来监督生成网络的字体生成。但是该方法生成字体的效果不好,而且需要用户提供大量的目标字体。



技术实现要素:

为解决现有技术存在的上述缺点,本申请提供一种基于条件生成对抗网络的汉字字体的方法,构建一种端到端的条件生成对抗神经网络,进行汉字字体的生成;通过少量的目标字体训练生成对抗网络,将完整的标准字体生成其他剩余目标字体图片,从而得到完整的目标字体字库文件。

为实现上述目的,本申请的技术方案为:基于条件生成对抗网络的汉字字体的方法,包括如下步骤:

第一步,进行字体数据准备:将标准字体以及目标字体进行处理,生成标准字体图片、目标字体图片,并归一化到255*255的尺寸;

第二步,采用编码器和解码器结构作为生成器,卷积神经网络作为判别器,构建生成对抗网络;

第三步,利用标准字体图片、目标字体图片数据集对生成对抗网络进行训练,得到训练后的对抗生成网络,并保存训练完成的参数;该网络为一种端到端的神经网络,不需要人工干预,即可对目标字体进行生成;

第四步,依次将完整的标准字体输入到训练后的对抗生成网络的生成器中,由训练后的对抗生成网络的生成器输入相对应的完整的目标字体;

第五步,构建模型评级体系,评级模型的字体生成质量。

进一步的,为了让本申请中的汉字字体生成网络的生成效果更好,根据汉字使用频率,以及汉字的笔画结构,选取最常用的670个汉字,构成目标字体数据集。将标准字库,以及设计师提供的包含670个目标字体汉字的字库转化为图片,并且调整到大小为:255*255。字体的生成采用基于条件生成对抗网络的思想。输入的是参考字体图像,输出的是目标字体的图像,将生成的目标字体图像和设计师提供的目标字体图像输入到判别器中,判断字体的类别。在第四步中,将完整的标准字体图片输入到训练好的神经网络中,即可得到完整的gb2312的6763个字体。

进一步的,在第三步中,采用编码器和解码器架构作为生成器,编码器输入的是字体图像,大小为255*255,所述编码器包含5个向下采样层,每层采用一个卷积核为5×5步长为2的卷积层,批量规范化以及lrelu构成,编码得到向量;将编码得到的向量与字体类别嵌入向量进行连接,字体类别嵌入向量是一个64维的随机向量,使得网络在训练时能够更好的区分每种字体;送到解码器,解码器包含5个向上采样层,每层采用一个卷积核为5×5步长为2的反卷积层,批量规范化以及relu,最终得到输出字体图像。为了减少编码过程中的字体特征损失,编码器与解码器的对应层进行跳跃连接。跳跃连接编码器和解码器的对应层。其中n为生成器网络层数,i为编码器层号,跳跃连接i层和n-i层。

进一步的,在第二步中,判别器采用卷积神经网络结构,判别器输入的是真实的字体图像以及由生成器生成的字体图像;判别器的作用是需要分辨他们。判别器采用3个级联的conv-bn-lrelu网络结构,最后采用两层全连接神经网络。

进一步的,在第五步中,依据中文汉字的结构特征,笔画数量将汉字分为3种类别:简单、中等、困难3个类别,在3个类别中分别随机选择20个生成的字体进行图像质量定量评价:峰值信噪比、结构相似性、笔画完整性,进行模型的评价。

更进一步的,在生成对抗网络的训练中,结合使用对抗损失、字体类别损失、像素匹配损失来衡量生成对抗网络生成的字体与设计师提供的字体y之间的差异,并更新网络参数;其中,如公式1所示,假设参考字体服从pdata分布,通过与判别器d的博弈,生成器将噪声pz生成pdata,在模型的训练阶段,生成器尝试生成真实的结果去欺骗判别器,而判别器的目标是分辨生成结果与真实结果间的区别;ladv代表判别器对于生成图像与真实图像之间的判别损失;

其中,d(x)是判别器的结果,g(z)是生成器输出的结果。pdata表示真实样本分布。pinput表示噪声分布。

更进一步的,为了准确描述生成图像与真实图像的像素空间的相似程度,引入像素匹配损失函数,如公式2所示,其中:采用l1距离来度量生成图像与真实图像在像素空间的匹配程度;

其中,pdata表示真实样本分布。pinput表示噪声分布。gz代表生成器生成结果。

更进一步的,为了生成更高质量汉字字体图像,模型不仅要关心设计师提供的一种类型的字体风格,同时也要考虑其他字体的风格。所以在生成网络的解码器与编码器之间加入随机高斯噪声的类别嵌入,使模型能够同时学习多种字体样式。为了防止模型将样式混合之后生成与提供的标准字体不一样的结果,引入字体类别损失函数,本申请字体类别损失采用sigmoid交叉熵损失函数lcate;

将3种损失函数组合起来,不同的损失函数具有不同的权重,采用加权求和的方式,字体生成对抗网络的损失函数l如公式(3)所示

l=wadvladv+w1l1+wcatelcate(3)

其中,wadv,w1,wcate为权重系数。

本发明由于采用以上技术方案,能够取得如下的技术效果:设计师只需要提供670个左右的字体,就能够生成全部的汉字字体。本申请将极大提高汉字字库的制作效率,减轻了字体设计对于人工的依赖,极大的缩短了字库制作的周期,使得字库的生成变得简单方便。而且为多个行业的应用和推广提供了可靠依据。能够丰富电影、电视、广告等数字媒体和文化行业的字体材料,为其多元化设计提供素材。

附图说明

图1为本申请的流程图;

图2为本申请的网络结构图;

图3为本申请字体生成效果。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施中的技术方案进行清楚、完整的描述,可以理解的是,所描述的实例仅仅是本发明的一部分实例,而不是全部的实施例。基于本发明的实施例,本领域的技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明提供了一种根据少量的设计师提供的汉字字体,通过条件生成对抗网络,自动生成字体的方法。将标准汉字字库,以及设计师提供的包含少数汉字的字库转换为图片。再训练对抗生成网络,获得训练好的神经网络。通过训练完成的神经网络,将设计师提供的少量字体生成全部具有设计师风格的图字体。

本发明流程图如图1所示,以及网络结构图如图2所示,具体实施步骤如下:

将设计师提供的目标字体,以及标准字体,本实施例选择标准字体为黑体,转化为图片格式,并调整大小,统一缩放到255*255尺寸。

构建对抗生成网络,结构如图2所示。在训练神经网络过程中。将标准字体图像输入到生成器中,生成具有目标字体风格的图像,同时将目标字体图像与生成字体图像输入到判别器中,判别真伪,并计算损失函数。如公式(1)所示。对于判别器而言,希望网络生成的字体图像被判别出假的可能性越大越好。而生成网络希望生成的字体图像被判别为真的可能性越大越好。所以生成网络最小化损失函数,而判别网络最大化损失函数,调整网络参数。

计算像素匹配损失函数,计算与目标字体l1距离。

计算字体类别损失函数,通过sigmoid交叉熵损失函数。

最后将3种误差进行加权求和,

l=wadvladv+w1l1+wcatelcate(3)

其中,wadv=1,w1=100,wcate=1为权重系数。

网络训练完成之后,将标准字体图像输入到网络的生成器中,即可生成完整的具有目标字体风格的字体。图3是本发明的字体生成效果图。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1