前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AAAI 2024 | Diffusion扩散模型用于生成任意风格的复杂字的使用配方

AAAI 2024 | Diffusion扩散模型用于生成任意风格的复杂字的使用配方

作者头像
CV君
发布2023-12-26 15:20:30
4810
发布2023-12-26 15:20:30
举报

本文分享 AAAI 2024 论文FontDiffuser: One-Shot Font Generation via Denoising Diffusion with Multi-Scale Content Aggregation and Style Contrastive Learning,Diffusion 扩散模型用于生成任意风格的复杂字的使用配方。

详细信息如下:

  • 作者: 杨振华、彭德智.
  • 单位: 华南理工大学DLVC实验室、阿里巴巴 论文链接: https://arxiv.org/abs/2312.12142
  • 项目链接: https://yeungchenwa.github.io/fontdiffuser-homepage/
  • HuggingFace Demo链接: https://huggingface.co/spaces/yeungchenwa/FontDiffuser-Gradio

图1 FontDiffuser的输出结果 (复杂字+风格跨度大

图2 FontDiffuser与InstructPix2Pix的联合使用效果

文章摘要

字体生成是一项模仿任务,其目的是创建一个字体库,模仿参考图像(风格图像)的风格,同时保留源图像(内容图像)的内容,如下图3所示。虽然现有方法已经取得了令人满意的性能,但它们在处理复杂字符和风格变化较大的字符时仍然很吃力。

为了解决这些问题,我们提出了一种基于扩散的Image-to-Image字体生成方法“FontDiffuser”,它创新性地将字体模仿任务建模为噪声到噪声范式。在我们的方法中,我们引入了多尺度内容聚合(MCA)模块,它有效地结合了不同尺度的全局和局部内容线索,从而增强了对复杂字的复杂笔画的保留。

此外,为了更好地处理具有巨大差异的风格转换,我们提出了风格对比细化(SCR)模块,这是一种新颖的风格表征对比学习策略,它利用风格提取器将风格从图像中分离出来,然后通过精心设计的风格对比损失对扩散模型进行监督。

广泛的实验证明,FontDiffuser 在生成多样化字符和风格方面具有一流的性能。与以前的方法相比,它在复杂字符和大的风格变化方面始终表现出色。

图3 字体生成任务定义

研究动机

图4 其他方法在复杂字和风格跨度大上的生成效果

存在的问题

现有的字体生成方法虽然取得了令人满意的性能,但在处理复杂字风格变化较大的字符(尤其是中文字符)时,仍会出现严重的笔画缺失伪影模糊结构布局错误风格不一致等问题,如上图4所示。

原因分析

  • 大多数方法都采用基于 GAN 的框架,由于其对抗训练的性质,可能会出现训练不稳定的问题。
  • 这些方法大多只通过单一尺度的高维特征来感知内容信息,而忽略了对保留源内容(尤其是复杂字符)的细粒度细节。
  • 许多方法利用先验知识来帮助字体生成,例如字符的笔画或部件组成;然而,对于复杂的字符来说,获取这些细粒度信息的成本很高;
  • 在过去的方法中,目标风格通常由一个简单的分类器或判别器来进行特征表示学习,这种分类器或判别器很难学习到合适的风格,在一定程度上阻碍了在风格变化较大时的风格转换。

采用策略

  • 我们提出了一种基于扩散的图像到图像(Image-to-Image)的字体生成方法,名字叫FontDiffuser,它将字体生成学习建模为加噪到去噪的范式,能够生成未见过的字符和风格。
  • (1) 我们引入了多尺度内容聚合(MCA)模块,它利用了不同尺度的全局和局部内容特征。
  • (2) 我们引入了一种新颖的风格表征对比学习策略,通过利用风格对比细化(SCR)模块来增强生成器模仿风格的能力。

FontDiffuser模型框架

图5 FontDiffuser的模型框架图

FontDiffuser的模型框架如图5所示,其中包括字体生成条件扩散模型风格细化对比模块两部分。在条件扩散字体生成模型部分,我们的目标是,在给定一张源图片(内容图片)和一张参考图片(风格图片),该模型的输出结果能够既与源图片的字符内容相同,也能与参考图片的风格保持一致;在风格细化对比学习模块,起主要目标是在训练的过程中,能够将一组图片的风格分离出来并完成辨别,最后通过风格对比损失函数来为条件扩散模型提供监督信息。

条件扩散字体生成模型

我们的条件扩散模型是预测噪声

\boldsymbol{\epsilon}_{\theta} (\boldsymbol{x}_{t}, t, \boldsymbol{x}_{c}, \boldsymbol{x}_{s})

\boldsymbol{x}_{c}

\boldsymbol{x}_{s}

分别表示源图片(内容图片)和参考图片(风格图片)。具体来说,为了加强对复杂字符的细节保留,我们设计了多尺度内容聚合(MCA)模块,将全局和局部内容线索注入模型的UNet中;同时我们还设计了一个Reference-Structure Interaction交互(RSI)模块,以促进从参考图片(风格图片)的结构形变。

  • 多尺度内容聚合(MCA)模块

生成复杂的字符一直是一项极具挑战性的任务,现有的许多方法仅依赖于单一尺度的内容特征,而忽略了复杂的细节,如笔画和部首。如图 6 所示,大尺度特征保留了大量细节信息,而小尺度特征则缺乏这些信息。

图6 在内容编码器中不同尺度的特征图

因此,我们设计了多尺度内容聚合(MCA)模块,将不同尺度的全局和局部内容特征注入到扩散模型的 UNet 中,如下图7所示。其中包括了一个通道注意力机制来提高自适应通道选择能力和一个Cross-Attention来引入风格特征。

图7 多尺度内容聚合(MCA)模块

  • Reference-Structure Interaction (RSI)交互模块

源图像(内容图像)和目标图像之间存在结构差异(如字体大小),为了解决这个问题,我们提出了Reference-Structure(RSI)交互模块,它采用可变形卷积网络DCN对UNet 的skip-connection部分进行结构变形。具体过程可以使用以下公式表

S_{s}\in \mathbb{R}^{C_{f}^{i}\times H_{i}W_{i}} = flatten(f_{s}^{i}), \notag \\ S_{r}\in \mathbb{R}^{C_{r}^{i}\times H_{i}W_{i}} = flatten(r_{i}), \notag \\ Q = \Phi_{q}(S_{s}),\hspace{5pt} K = \Phi_{k}(S_{r}),\hspace{5pt} V = \Phi_{v}(S_{r}), \notag \\ F_{attn} = softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V,\hspace{6pt} \delta_{offset} = FFN(F_{attn}), \notag \\ I_{R} = DCN(r_{i}, \delta_{offset})

风格细化对比学习模块

不管源图像(内容图像)和参考图像(风格图像)之间的风格差异,字体生成的目的之一是达到预期的风格模仿效果。其中的一种可行的解决方案是找到合适的风格特征表示,并进一步为我们的生成器提供监督信息。因此,我们提出了风格细化对比学习(SCR)模块,这是一个字体风格表示学习模块,它能从一组样本图像中分离出风格,并结合风格对比损失来监督我们的条件扩散模型,能够较好地与扩散模型进行较好的结合,确保生成的风格在全局和局部层面上与目标保持一致,具体的做法如上图5(b)所示,用公式表示如下:

\boldsymbol{V}_{0} = Extrac(\boldsymbol{x}_{0}), \hspace{5pt} \boldsymbol{V}_{p} = Extrac(\boldsymbol{x}_{p}), \hspace{5pt} \boldsymbol{V}_{n} = Extrac(\boldsymbol{x}_{n}) \notag \\ \mathcal{L}_{sc}=-\sum_{l=0}^{N-1}log\frac{exp(v_{0}^{l}\cdot v_{p}^{l}/\tau)}{exp(v_{0}^{l}\cdot v_{p}^{l}/\tau)+\sum_{i=1}^{K}exp(v_{0}^{l}\cdot v_{n_{i}}^{l}/\tau)}

训练损失函数

我们的训练采用了一个从粗到细的两阶段策略,具体包括:

  • Phase 1

我们主要使用标准的 MSE 扩散损耗来优化 FontDiffuser,而不使用 SCR 模块。这确保我们的生成器具备字体重构的基本能力:

\mathcal{L}_{total}^{1} = \mathcal{L}_{MSE}+\lambda_{cp}^{1} \mathcal{L}_{cp}+\lambda_{off}^{1} \mathcal{L}_{offset}

其中,

\mathcal{L}_{MSE} = \left \| \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_{\theta} (\boldsymbol{x}_{t}, t, \boldsymbol{x}_{c}, \boldsymbol{x}_{s}) \right \|^{2}, \\ \mathcal{L}_{cp} = \sum_{l=1}^{L} \left \|\mathcal{VGG}_{l}(\boldsymbol{x}_{0})-\mathcal{VGG}_{l}(\boldsymbol{x}_{target}) \right \|, \\ \mathcal{L}_{offset}=mean(\left \| \delta_{offset} \right \|)
\mathcal{L}_{total}^{1}

表示第一阶段的总损失.

\mathcal{VGG}_{l}(\cdot)

是 VGG 编码的层特征,

L

是选择的层数。

\mathcal{L}_{cp}

用于惩罚

\boldsymbol{x}_{0}

生成的VGG特征与相应的

\boldsymbol{x}_{target}

目标特征之间的内容不对齐。偏移损失

\mathcal{L}_{offset}

用于限制 RSI 模块中的偏移量。

更多可视化结果

更多可视化结果

图8 困难难度字符

中等难度字符 (medium)

图9 中等难度字符

容易难度字符 (easy)

图10 容易难度字符

跨语言生成 (中文到韩文)

图11 跨语言生成 (中文到韩文)

实验

为了验证生成不同复杂度字符的有效性,我们根据中文字符的笔画数将其分为三个复杂度级别(easy, medium, hard),并在每个级别上分别测试我们的方法。不同复杂度的中文字符样例如下:

图12 三种不同复杂度的中文字符样例

定量结果 (Quantitative Results)

图13 在SFUC和UFUC上的定量结果

图14 在UFSC上的定量结果

定性结果 (Qualitative Results)

图15 在SFUC和UFUC上的定性结果

跨语言生成 (中文到韩文)

FontDiffuser还能在仅有中文数据集的训练的情况下,用于韩文的生成,结果如下图11所示:

图16 跨语言生成 (中文到韩文)

结论分析

我们的方法在不同的在三个复杂度级别的字符上,FontDiffuser 的表现优于目前的其他方法。此外,FontDiffuser 还证明了它在跨语言字体生成任务(如中文到韩文)中的适用性,凸显了其良好的跨领域能力。

消融实验

  • 不同模块的有效性

图17 使用不同模块后的性能对比

图18 使用不同模块后的可视化效果对比

  • SCR模块中数据增广的有效性

图19 SCR模块中数据增广的有效性

  • RSI模块中基于cross-attention和CNN的交互方式的性能对比

图20 RSI模块中基于cross-attention和CNN的交互方式的性能对比

总结

在本文中,我们提出了一种基于扩散的图像到图像(Image-to-Image)的字体生成方法,称为FontDiffuser,它在生成复杂字符和处理差异较大的风格转换方面表现出色。

此外,我们还提出了一种新颖的风格特征对比学习策略,该策略提出了一个 SCR 模块,并使用风格对比损失来监督我们的扩散模型。此外,我们还采用了 RSI 模块,利用参考图像的结构特征促进结构变形。

大量实验证明,在三个复杂度级别的字符上,FontDiffuser 的表现优于目前的方法。此外,FontDiffuser 还证明了它在跨语言字体生成任务(如中文到韩文)中的适用性,凸显了其良好的跨领域能力。

demo
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我爱计算机视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章摘要
  • 研究动机
    • 存在的问题
      • 原因分析
        • 采用策略
        • FontDiffuser模型框架
          • 条件扩散字体生成模型
            • 风格细化对比学习模块
              • 训练损失函数
              • 更多可视化结果
                • 更多可视化结果
                  • 中等难度字符 (medium)
                    • 容易难度字符 (easy)
                      • 跨语言生成 (中文到韩文)
                      • 实验
                        • 定量结果 (Quantitative Results)
                          • 定性结果 (Qualitative Results)
                            • 跨语言生成 (中文到韩文)
                              • 结论分析
                                • 消融实验
                                • 总结
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档