论文推荐|[SIGGRAPH 2020]Attribute2Font:从属性创建所需的字体
本文简要介绍SIGGRAPH 2020的论文“Attribute2Font: Creating Fonts You Want From Attributes”的主要工作。该论文针对字体合成任务提出一种基于深度学习的方法,该方法可以根据字体的属性以及属性值来创建对应的字体。具体来说,对本文的模型进行了训练,可以在以其属性值为条件的任何两种字体之间执行字体样式转换。经过训练后,模型可以根据任意一组字体属性值生成字形图像。此外,设计了一个名为“属性注意模块”的模块,以使生成的字形图像更好地体现突出的字体属性。考虑到获得字体属性值的注释非常昂贵,还引入了一种半监督学习方案来利用大量未标记的字体。实验结果表明,本文的模型在许多任务上均取得了不错的性能,例如以新的字体样式创建字形图像,编辑现有字体,在不同字体之间进行插值等。
传统字体设计工作流程为普通用户设置了较高的壁垒,这需要该领域的创造力和专业知识。因此,字体设计仍被认为是专业设计师的专有特权,而他们的创造力是现有软件系统所不具备的。在计算机图形学(CG),计算机视觉(CV)和人工智能(AI)领域,自动字体设计仍然是一个充满挑战的问题。不过实际上大多数商业字体产品都是根据某些字形属性(例如斜体,衬线,草书,宽度,角度等)的特定要求手动设计的。受这一事实的启发,作者提出Attribute2Font模型,通过根据用户指定的属性及其对应的值合成视觉上令人愉悦的字形图像来自动创建字体,提出的模型大大降低了普通用户创建字体的难度。
图2是Attribute2Font的整体网络结构,主要由分层的编码-解码器组成的生成器、视觉样式转换器(Visual Style Transformer, VST),属性注意力模块(Attribute Attention Module, AAM)和判别器四个部分构成。网络的输入有:字体F的一张图作为源内容图,字体F的m张图作为源风格图,另外还有源字体和目标字体的属性值。
视觉样式转换器(VST)旨在根据字体a的字形图像和这两种字体之间的属性差异来估计字体b的样式特征。首先使用基于CNN的样式编码器将选定的字体a的字形图像转换为其样式特征,根据经验,单个字形无法充分体现其所属的字体样式,因此这里将输入的字形图像数量m设置为m> 1来更精确地估计样式特征。然后,将编码特征和源字体和目标字体的属性差值进行拼接,之后再经过N个残差块,并最终获得了估计的目标样式特征。
属性注意模块(AAM)旨在进一步完善属性,以便它们可以在字形图像生成阶段更好地使用。如图3所示是AAM的详细结构,首先将字体a和字体b的属性差值通过复制从大小(Na, 1)变成(Na, Ne),其中Na是属性的类别数,Ne是属性嵌入矩阵的维度,然后按照图中左下角的操作,将这个属性与它的转置相乘,得到一个三维特征,然后经过通道注意力机制(Channel Attention)[2,3],通过利用特征的通道间关系生成通道注意图。具体来说,首先通过平均池化层对特征图进行聚合,然后将其发送到两个卷积层中,并进行通道压缩和拉伸来输出通道注意图。
生成器部分采用分层编码器-解码器框架,其中编码器用来提取输入源图像的内容特征。解码器利用来自内容编码器的多尺度特征来更准确地重构字形的形状,如图2的跳跃连接所示。并且将Softmax分类器附加到编码器输出的内容特征上以预测源图像输入的的字符类别,使用的是分类中常用的Cross-entropy损失函数。在解码器的各个阶段中,除了上采样操作外,还会整合编码器的多尺度特征和AAM输出的多尺度特征,以此来更好的生成想要的图像。生成器部分除了GAN的通用损失函数外,也利用L1来计算输出与GT的损失和高维空间上的损失,另外还对生成图像进行属性预测,使用Smooth L1函数进行监督。
遵循GAN的对抗训练方案,这里使用字形鉴别器来区分生成的图像和GT。通过生成器和鉴别器之间的对抗博弈,可以不断提高生成的字形的质量。采用的损失函数一个是原始GAN的损失函数,另一个是对真实图像的属性值进行预测,同样使用Smooth L1函数作为损失函数。
为了解决有标记的训练数据的不足的问题,作者采用半监督学习的方案。首先对未标记的字体设置一个伪属性值,将所有属性值根据高斯分布归一化到0-1之间。然后在训练过程中,将标记的字体属性值固定,而未标记的字体属性值会用梯度下降法进行优化,不断修改未标记的字体的属性值。
AttrFont-ENG数据集:使用[1]中提出的字体数据集,包含148个有属性标注的字体和968个没有属性标注的字体,每种字体包含52个字符(a-z, A-Z)。其中,每种字体有37类属性,既包含“细”和“角度”之类的具体属性,又包含“友好”和“草率”的模糊概念。作者将前120种字体划分为有监督的训练集,剩下28种字体作为验证集。
作者对源字体的选择对结果的影响进行探究,直观上生成的字形的样式会受模型中源字体的选择影响。令人惊讶的是,如图5的实验结果,在不同的源字体输入下,输出具有几乎相同的形状和细微的差别,发现当选择常规字体作为源字体时,影响很小。这种现象表明,本文的模型设法根据其属性值将不同的字体样式映射到固定的字体样式。
作者对不同模块进行了消融实验,如表1定量结果比较发现,通过利用未标记的字体,提出的半监督学习方案带来了显着的改进,AAM模块也极大地提高了模型的性能。如图5定量结果比较发现,如果没有半监督学习方案或各种跳跃连接或VST模块,模型往往会在合成结果上带来更多的假象;如果没有AMM模块,模型往往会错过一些重要的特征。
作者进行实验研究输入到样式编码器中的字形图像数量m和VST模块中的残存块数量Nrb对模型性能的影响。结果显示在表2和3中,从各项评价指标可以观察到,通常更大的m和Nrb会取得更好的性能。但是,较大的m和Nrb值会增加模型的计算成本。为了在模型尺寸和性能之间取得平衡,本文选择m = 4和Nrb = 16作为模型的默认设置。
图6对不同的两种字体之间进行了插值实验,其中λ是插值系数,结果显示了本文的模型在不同字体之间实现了平滑插值,并生成了视觉上令人愉悦的字形图像,并且,从插值属性值合成的字形图像更易于解释。图7显示了通过修改单个字体属性(例如衬线,草书,斜体,粗,细和宽)的值来合成的字形图像的一些示例,可以看到,当属性值从0.0变为1.0时,模型可以实现平滑且渐变的过渡。图8展示了从几个属性值的随机集合中生成的模型字形图像。在此实验中,第一行中显示的源字体是固定的,然后随机分配每一行每个字符的属性值。如图所示,合成字形图像的字体样式变化很大,并且大多数在视觉上令人愉悦。
该实验通过演示不同字体(包括标记字体和未标记字体)的属性值的分布来说明半监督学习方案是如何工作的。 首先通过PCA(主成分分析)将每种字体的属性值缩小为两个维度,如图9中,绿点对应于未标记的字体,蓝点对应于带有标签的字体。训练开始时(Epoch 10),绿点几乎完全与蓝点分开。在后期,绿点会根据特定分布混入蓝点中,此时未标记字体的属性值从随机状态演变为有意义状态,这验证了半监督学习方案的有效性。在Epoch 400中将某些字体的字符标签添加到它们的对应点。可以观察到,相似的字体位置更近,而属性值相差较大的字体位置更远。因此,半监督学习方案对未标记字体的预测属性是合理的。
将本文的方法与现有的属性可控图像合成方法进行比较,包括AttGAN[4],StarGAN[5],RelGAN[6]和STGAN[7]。在图10中,从验证数据集中选择四种字体,这些字体的属性值设置为模型中的目标属性。因为这些现有的GAN只能接受二进制属性值,所以如果它们接收的属性值小于或大于0.5,则将它们设置为0或1。从结果可以看到,AttGAN和RelGAN倾向于生成非常模糊和低质量的字形,而STGAN所生成的字形要比AttGAN和RelGAN的质量更高,但STGAN仍会在字形图像中带来许多假纹理。表4给出了整个验证数据集上的定量结果,这表明本文模型明显优于其他模型,表5是不同方法的模型大小,本文的模型的参数比STGAN少,但性能却比STGAN好得多。
字体检索模型在字体数据库中搜索,然后返回与查询列表中的属性(或标签)最相似的字体。但是,从现有字体中进行选择会限制模型的灵活性以及可用字体的种类。缺乏灵活性导致检索的字体缺少一些重要的属性特征。增加字体数据库的规模和多样性可以在某种程度上解决该问题,但计算成本也将急剧增加。图11比较了本文的模型的综合结果和之前的检索方法的检索结果,结果表明本文的模型可获得最精确的结果。
为了验证模型的泛化性,作者也在中文字体上做了相关实验。在图12、13和14中,分别展示了模型在通过属性合成字形图像,编辑字体和在字体之间进行插值这三个方面的性能。尽管中文字形比英文字形复杂得多,但是本文的模型仍然可以在通过属性创建中文字体方面取得良好的性能。
本文提出了一个可以根据用户指定的属性及其对应的值生成字形图像,从而创建新的字体的模型。 介绍了属性注意模块和半监督学习方案,以解决该任务中存在的困难。与现有方法相比,进行了广泛的实验以证明模型的有效性和优越性。并且本文的的模型不仅限于生成英文字形,还适用于在任何其他书写系统(例如中文)中合成字体。作者还将进一步研究以下问题:1、将本文的方法扩展到直接处理矢量字体生成的任务;2、构建2D字体流形供用户轻松浏览模型生成的字体;3、改善深度神经网络模型的体系结构,以提高生成字体的质量。
[1] Peter O’Donovan, Janis Lıbeks, Aseem Agarwala, and Aaron Hertzmann. 2014. Exploratory font selection using crowdsourced attributes. ACM Transactions on Graphics (TOG) 33, 4 (2014), 92.
[2] Sanghyun Woo, Jongchan Park, Joon-Young Lee, and In So Kweon. 2018. Cbam: Convolutional block attention module. In Proceedings of the European Conference on Computer Vision (ECCV). 3–19.
[3] Yulun Zhang, Kunpeng Li, Kai Li, Lichen Wang, Bineng Zhong, and Yun Fu. 2018b. Image super-resolution using very deep residual channel attention networks. In Proceedings of the European Conference on Computer Vision (ECCV). 286–301.
[4] Zhenliang He, Wangmeng Zuo, Meina Kan, Shiguang Shan, and Xilin Chen. 2019. Attgan: Facial attribute editing by only changing what you want. IEEE Transactions on Image Processing (2019).
[5] Yunjey Choi, Minje Choi, Munyoung Kim, Jung-Woo Ha, Sunghun Kim, and Jaegul Choo. 2018. Stargan: Unified generative adversarial networks for multi-domain image-to-image translation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 8789–8797.
[6] Po-Wei Wu, Yu-Jing Lin, Che-Han Chang, Edward Y Chang, and Shih-Wei Liao. 2019. Relgan: Multi-domain image-to-image translation via relative attributes. In Proceedings of the IEEE International Conference on Computer Vision. 5914–5922.
[7] Ming Liu, Yukang Ding, Min Xia, Xiao Liu, Errui Ding, Wangmeng Zuo, and Shilei Wen. 2019. STGAN: A Unified Selective Transfer Network for Arbitrary Image Attribute Editing. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 3673–3682.
原文作者:YIZHI WANG∗, YUE GAO∗, ZHOUHUI LIAN†
审校:连宙辉
发布:金连文
演讲录播 | 2020年场景文字那些事 演讲录播| 手写及场景文字分析与识别的一些新尝试 论文推荐| [CVPR 2020] ScrabbleGAN:半监督变长手写文本生成 论文推荐| [CVPR 2020] BEDSR-Net:单张文档图像的阴影去除深度网络 论文推荐丨[ICML2020]用于图像到标记符号生成的树状结构解码器 论文推荐丨[IEEE TIP2020、IEEE T-ITS2020]场景文本检测中的锚点机制探索及改进方法(有源码) 论文推荐丨[CVPR2020]眼见为虚:利用对抗文本图像攻击场景文本识别模型 论文推荐|[TIP2020]基于深度特征相似性融合的少样本文符风格迁移 论文推荐| [CVPR 2020]ContourNet:更准确的任意形状场景文本检测新方法 论文推荐|[IEEE TIFS2020]编码Pathlet与SIFT特征的古籍笔迹鉴别(ICDAR19古籍笔迹识别竞赛冠军方法)
欢迎加入中国图象图形学学会!(附入会攻略)
(扫描识别如上二维码加关注)