1. 引言
设计一个图标是一个漫长而复杂的过程,需要用户和设计者的共同协作来完成。许多用户没有相关的专业背景,特别是对于设计内容没有特定想法的用户,一般通过自身的主观感受来评判设计的好坏,因此设计者需要对自己的设计进行不断地修改以满足用户的各种需求,在进行了多次循环之后,最终匹配了用户的需求。这样的工作流程消耗了双方大量的时间和精力,而且成本较高。因此本文的目标在于使用更加智能的方法帮助设计者和用户更好地来设计出更好的图标,加快图标设计的流程,提升工作效率。用户只需向预设的模型输入相关的特征参数,即可得到所需的图标原型,即使这种图标原型无法完美地满足用户需求,设计师可以通过这种图标原型了解客户的大致想法,在此基础上进行进一步的完善。
要想设计这样一个模型我们需要理解实际中设计图标的工作流程,一般来说,用户首先对设计者提出自己的需求,例如需要一个什么形状和结构的图标,设计者通过这种需求提炼出设计要点,根据设计要点创作出一些设计原型,反馈给用户进行评估,用户提出意见和建议,设计者再进行修改和完善,通过不断地改进最终满足用户的需求。因此,模型的输入是用户的设计需求特征,输出是满足用户需求特征的图标,并且模型需要能够循环地完善和改进以满足用户的需求。另外用户一般需要较多的图标来进行选择,因此模型所生成的图标不能单一化,需要各具特点,根据用户的特定需求而变化,给用户更多的选择空间。
目前,基于神经网络的生成模型正好契合这种图标生成的任务。当前的生成模型主流研究热点集中在变分自编码器(VAE) [1] 和生成对抗网络(GAN) [2] 两种神经网络模型上,这两个模型都可以生成出图像数据,但是变分自编码器对于图像的输出往往较为模糊,因此不适合本任务。而生成对抗网络是由生成器和鉴别器两个神经网络组成,分别对应设计者和用户两个角色,他们以相对的目标以对抗的方式同时进行训练,通过循环的训练最终达到一种平衡,因此这种模型十分契合图标设计的流程。
生成对抗网络是一种由Ian Goodfellow等人于2014年首次提出的神经网络模型,是一种十分流行的生成模型,它在多个领域都有相应的应用,从手写数字生成 [1] 到漫画头像 [3],以及以假乱真的名人头像 [4]。尽管生成对抗网络已经用于生成很多数据,但是对于图标的生成仍未得到深入的研究,而生成对抗网络的训练流程与实际的图标设计流程极为相似,因此不难得出对于图标的生成任务生成对抗网络也能发挥其作用。生成对抗网络分别由生成器和鉴别器两个神经网络模型合并组成,生成器负责通过神经网络模仿真实数据的分布来生成以假乱真的数据,这种假的数据和真实数据一起输入到鉴别器中,鉴别器通过其鉴别神经网络来分别输入数据的真假,两个模型通过轮流训练最终达到一种平衡 [5],生成器能够生成出无法分别真假的图片,鉴别器对于输入数据的真假的可能性相等。
原始的生成对抗网络在遇到较为复杂的数据时,其训练过程会变得很不稳定,因此文献 [6] 在原始生成对抗网络的基础上提出了新的结构体系和训练方法,例如使用深层卷积层和修改其损失函数 [7]。即使是在改进了结构之后,生成对抗网络仍然无法满足较为复杂的任务,对于简单的手写数字的生成或者较低分辨率的图像上,其效果较好,但是对于具有约束条件的情形,这样的模型就无法对应了,因此文献 [8] 提出了条件生成对抗网络(CGAN, Conditional Generative Adversarial Nets),这是一种带有条件约束的生成对抗网络,在模型中引入约束条件变量来控制数据的生成方向,是模型能够像用户所偏好的方向进行训练。文献 [9] 提出的辅助条件生成对抗网络(ACGAN, Auxiliary Classifier Generative Adversarial Nets)在条件生成对抗网络的基础上更进一步,不仅在生成过程中加入约束条件变量,并且在鉴别网络中也加入了对约束条件变量的识别,提升了模型的定向生成与鉴别能力,使得生成出的图像更加有针对性。
对于图标生成的任务,ACGAN这种模型十分具有启发性,因此在ACGAN模型的基础上提出一种新的图标的生成方法,首先用户向模型输入需求信息,解析成模型所需的条件特征,将条件特征与噪声矢量输入到生成器中进行生成训练,其中噪声矢量的作用是保证生成出的图像的多样性,接着将生成出的图标与真实图标混合后输入到鉴别网络中训练,鉴别网络需要鉴别出图像的真假及其条件信息,将鉴别出的条件特征与输入的条件特征比对后得出条件损失,通过神经网络优化器迭代训练降低模型损失最后达到稳定。这种模型所生成的图标具有独特性,同一条件特征不同批次所生成的图标都会不同,其次所生成的图标更加满足用户的需求,模型的训练会不断迭代以满足用户给出的条件,因此这种模型可以更加贴合用户的需要,接着是这样图标生成方法无需像传统图标生成方法要保存庞大的素材库,只需保存生成器所产生的模型,最后本文是将基于形状特征的生成对抗网络应用于图标的生成上,提升了图标生成的效率和效果。
2. 技术细节
2.1. 模型的选择与搭建
图标的生成模型需要根据实际的图标设计流程来选择和搭建,实际中的图标设计流程一般是从用户需求开始,抽象化用户所给出的需求,提炼出设计要点,根据要点结合设计师的创意设计得出图标的草图,用户对草图做出点评和意见,用户根据用户的意见做出修改和完善,经过循环的修改最后的出用户满意的图标,该流程可以用图1表示。
需要将这样的设计流程抽象化成为一个模型来进行设计,首先从用户需求入手,用户的需求一般是文字性的,将文字性需求的提炼出需求条件特征,将这种条件特征与噪声数据输入到生成器中,得出生成的图标,再将图标输入到鉴别器中,鉴别图标是否满足用户的需求,通过循环训练,最终得到可以生成出使用户满意的模型,该模型可以抽象为图2。
根据模型的概要设计,需要对已有的模型进行探索,生成对抗网络是一种十分契合的神经网络模型,生成对抗网络的原理是将一个服从概率分布(Pz)的噪声矢量(z)输入到生成网络(G)中进行数据生成,再将假的数据(G(z))以及真实数据(x)输入到鉴别网络中进行鉴别,二者交替训练,最后到达平衡。生成对抗网络的目标函数定义为,需要使生成网络最小化,鉴别网络最大化,其公式和结构图3如下。
(1)

Figure 3. Generative adversarial networks model
图3. 生成对抗网络模型图
这种原始的生成对抗网络对于具有生成条件限制的图标生成任务显然难以完成,因此条件生成对抗网络(CGAN)就解决了这一问题,在生成对抗网络的基础上加上的条件特征,使得生成方向得到了控制,其原理是在模型中加入了条件信息y,其公式和结构图4如下。
(2)

Figure 4. Conditional generative adversarial networks model
图4. 条件生成对抗网络模型图
辅助条件生成对抗网络(ACGAN)则在条件生成对抗网络的基础上使用了条件特征的信息,其中鉴别网络不仅需要鉴别图像的真假,还需要对图像进行分类,并鉴别图像的类别是否与给出的条件特征一致。在生成网络的输入端输入噪声矢量(z)以及需要服从概率分别的条件类别标签
,鉴别器需要鉴别图像真假以及条件类别标签,因此辅助条件生成对抗网络的目标函数分为两个部分,首先是图像的真假
,以及图像的标签
,生成器需要最大化
,鉴别器需要最大化
,二者的公式和结构图5分别为:
(3)
(4)

Figure 5. Auxiliary classifier generative adversarial networks model
图5. 辅助条件生成对抗网络模型图
图标生成模型的搭建基于实际的图标设计流程结合辅助条件生成对抗网络模型最终形成本文的图标生成模型,整个模型就由特征提取模块、图标生成模块、图标鉴别模块三个模块组成,如图6所示。
用户首先给出需求需要一个五角星,特征提取模型提取出图标条件特征c为五角星,与噪声矢量z一同输入到生成网络G中生成图标G(z),G生成的图标与符合条件c的真实图标X一起输入到鉴别网络D中,鉴别网络鉴别出输入的图标是真实还是生成的,以及所输入的图标是否满足条件特征五角星。通过循环训练最后达到平衡,其中生成模型可以很好的生成满足条件的图标,鉴别网络可以鉴别图标的真假以及类别。
2.2. 模型训练与评估
在选择和搭建了图标生成模型之后,需要确定模型的具体训练方法以及模型评估方法。根据原始的生成对抗网络模型主要有以下训练步骤:首先初始化创建生成网络模型(G)以及对抗网络模型(D),然后将二者合并成联合训练模型,之后开始正式训练模型,先训练对抗模型然后在训练联合模型,然后对生成对抗网络模型模型进行评估,重复训练之后达到终止条件结束训练。
由于文献的WGAN-GP [10] 模型提供了更加稳定的Wasserstein距离损失函数来评估模型的优劣,因此本文也采用WGAN-GP来进行模型的训练,同时也将原始的ACGAN模型的损失函数改为以下函数:
(5)
(6)
(7)
其中,
表示鉴别器的损失函数,
表示生成器的损失函数,
表示鉴别标签类别的损失函数。为了防止训练过程不稳定以及模型崩溃,参考文献 [11],使用Batch normalization正则化,以及输入的噪声变量是服从高斯分布。
3. 实验结果与分析
3.1. 实验细节
实验采用Ubuntu16.04系统,Tensorflow [12] 机器学习框架,编程语言Python3.6,采取了来自互联网采集的10,000张50个形状类别的图标数据作为原始数据,图标的大小为128 * 128像素,进行图标生成实验,数据集被分为训练集和测试集两部分,训练集有7000张图片,测试集有3000张图片。
本文的实验使用了上文提到的图标生成网络模型,网络模型参数如表1所示,实验中为了获得更好更快的训练效果,训练过程的主要实验参数设置为:使用Adam [13] 优化函数,其学习率为0.0002,Adam函数的β参数设为0.5,训练的批参数设置为100,噪声变量的长度设置为100,在鉴别器鉴别图像的真假使用binary cross entropy二分类损失函数,鉴别图像的类别时使用categorical cross entropy多类对数损失函数。

Table 1. Icon generate network parameters table
表1. 图标生成网络参数表
3.2. 实验结果
通过分析现有的生成对抗网络模型,结合实际的图标设计模式,如图7所示,经过100轮的循环训练结果可以看出,本文所提出的图标生成模型从第50轮已经可以分辨一些图标的形状了,到100轮可以清晰的体现各类图标的形状,与图8所示的真实图标十分相近,并且每一个图标的形状都各有特色,生成的多样性可以得到保证。而传统的模型由于其过于复杂,并且没有根据图标设计的实际来进行设计,想要一步到位的生成彩色的图标,其生成出的图形尽管能够一定程度根据颜色来进行生成,但是却无法分辨图标的形状,也就跟无从判别其图标的用途。
而本文的图标可以很清晰的表达出其功能和用途,并且可以使用训练好的模型生成大批量的图标来进行选择,使得设计者与用户能够有更多的选择和替代空间,并且可以随意的更改生成的类别,根据用户的要求来进行生成。

Figure 7. Icons generate by generate model
图7. 生成模型生成的图标

Figure 8. Real icons sample from dataset
图8. 数据集中真实图标
4. 总结与展望
本文提出了一种新的基于条件生成对抗网络的图标生成模型,能够基于给出的形状类别标签生成出相应的图标。通过实验表明,模型相比于传统的生成对抗网络模型生成的图标更加清晰,图像也更具多样性。本模型未来的工作主要是将所生成的图标加上颜色等多种特征,进一步简化设计者的工作。
基金项目
广东省科技计划项目2017B030307002、2019B101001021;广州市天河区科技计划项目201703YG029。