北航联合港大发布全新文本引导矢量图形合成方法SVGDreamer

人工智能 新闻
随着 CLIP 和生成式模型的快速发展,文本引导的矢量图合成(Text-to-SVG)在抽象像素风格 和矢量手绘草图等领域都取得了不错的进展。

想了解更多AIGC的内容,请访问:

51CTO AI.x社区

https://www.51cto.com/aigc/

可缩放矢量图形(Scalable Vector Graphics,SVG)是用于描述二维图型和图型应用程序的基本元素;与传统的像素图形不同,SVG 使用数学描述来定义图形,因此可以在任何大小下无损地缩放而不失真。这使得 SVG 成为网站设计领域的理想选择,特别是在需要适应不同分辨率和设备的情况下。但是创作者手工设计 SVG 是高成本并具有挑战的。 

最近,随着 CLIP 和生成式模型的快速发展,文本引导的矢量图合成(Text-to-SVG)在抽象像素风格 [1,2] 和矢量手绘草图 [3,4] 等领域都取得了不错的进展。通过可微分渲染器 [5] 驱动矢量路径基元自动合成对应的矢量图形,成为一个热门的研究方向。

相比于人类设计师,Text-to-SVG 方法可以快速并大量的创建矢量内容,用于扩充矢量资产。 然而,现有的 Text-to-SVG 方法还存在两个限制:1.生成的矢量图缺少编辑性;2. 难以生成高质量和多样性的结果。为了解决这些限制,作者提出了一种新的文本引导矢量图形合成方法:SVGDreamer。

图片

论文题目:

SVGDreamer: Text Guided SVG Generation with Diffusion Model

论文地址:

https://arxiv.org/abs/2312.16476

代码地址:

https://github.com/ximinng/SVGDreamer

项目地址:

https://ximinng.github.io/SVGDreamer-project/

01 实现思路

图片

▲ 图1:SVGDreamer流程图

SVGDreamer 由两部分构成:语义驱动的图像矢量化(Semantic-driven Image Vectorization,SIVE)和基于矢量例子的分数蒸馏(Vectorized Particle-based Score Distillation,VPSD)构成。

其中 SIVE 根据文本提示矢量化图像,VPSD 则通过分数蒸馏从预训练的扩散模型中合成高质量、多样化并具有审美吸引力的矢量图。

1.1 语义驱动的图像矢量化 (SIVE)

SIVE 根据文本提示合成语义层次解耦的矢量图。它包括两个部分:

  1. 矢量基元初始化(Primitive Initialization)
  2. 基于语义级优化(Semantic-aware Optimization)

如图 1 上半部分所示,文本提示中不同的词语对应不同的注意力图,这使得作者可以借助注意力图初始化矢量图控制点(control points)。具体来说,作者对注意力图进行归一化,将它视为一个概率分布图,根据概率加权采样画布上的点作为贝塞尔曲线的控制点。

然后,作者将初始化阶段获得的注意力图转换为可重复使用的掩码,大于等于阈值的部分设为 1,代表目标区域,小于阈值为 0。作者利用掩码定义 SIVE 损失函数从而精确地优化不同的对象。

图片

SIVE 确保了控制点保持在各自的语义对象区域中,从而实现不同对象的解构,最终结果如图 1 右上部分所示。

1.2 基于矢量粒子的分数蒸馏 (VPSD)

之前基于扩散模型的 SVG 生成工作 [2,4],已经探索了使用分数蒸馏采样(SDS)优化 SVG 参数的方式,但这种优化方式往往会带来颜色过饱和、优化得到的 SVG 过于平滑的结果。

受变分分数蒸馏采样的启发,作者提出了基于向量化粒子的分数蒸馏采样(Vectorized Particle-based Score Distillation,VPSD)损失来解决以上问题。相对于 SDS,这种采样方式将 SVG 建模为控制点和色彩的一个分布,VPSD 通过优化这个分布来实现对 SVG 参数的优化:

图片

由于直接优化另一个模型 图片的成本过大,所以引入 Lora 来减少被优化的参数量:

图片

最后,为了改善合成矢量图的美观评价,作者引入了一种奖励反馈学习方法(ReFL),将采样得到的样本输入到使用预训练的 Reward 模型中,共同进行对 LoRA 参数的优化:

图片

最后完整的目标函数即为上述三个函数的加权组合:

图片

通过反向传播更新 SVG 路径参数,经过循环迭代完成优化,得到最终结果。

02 实验结果

2.1 定性结果

下图展示了 SVGDreamer 生成的 6 种风格类型的 SVG 结果,包括肖像图风格(Iconography)、像素风格(Pixel-Art)、水墨(Ink and Wash)、多边形(Low-poly)、手绘(Sketch)和线条绘画(Painting)风格等。不同颜色的后缀表示不同的 SVG 风格类型,这些风格类型也并不需要在 Prompt 中给出,只需要通过控制矢量图基元实现。

图片

▲ 图2. SVGDreamer结果可视化

SVGDreamer 能够根据文本提示合成语义层次解耦的矢量图,这使得其可以被用于创建大量矢量数据资产,同时这些矢量元素可以被自由地组合,如下图所示:

图片

▲ 图3:SVGDreamer合成的矢量资产示意图

2.2 应用展示

除此之外,作者展示了 SVGDreamer 的应用:制作矢量海报。通过将制定字形转为矢量表示,并且与生成的矢量图结合,即可得到美观的矢量海报。与基于扩散模型的生成式位图海报相比,矢量海报的文字与内容部分同样具有良好的编辑性,并且不会产生错误的文字:

图片

▲ 图4:SVGDreamer制作的矢量海报与位图海报合成方法的比较

03 总结

在这项工作中,作者介绍了 SVGDreamer,一个用于文本引导矢量图形合成的创新模型。SVGDreamer 结合了两个关键的技术设计: 语义驱动的图像矢量化 (SIVE) 和基于矢量粒子的分数蒸馏 (VPSD),这使得模型能够生成具有高可编辑性、卓越的视觉质量和显著的多样性的矢量图形。

由于SVGDreamer能够生成具有可编辑性的复杂矢量图形,因此,SVGDreamer 有望显著推进文本到 SVG 模型在设计领域的应用。它已经被证实可以用来创建矢量图形资产库,设计师可以根据不同的需求,很容易地将库中的元素重新排列组合,用于创建独特的矢量海报或 Logo,以及其他矢量艺术形式。

04 矢量图可微渲染库PyTorch-SVGRender介绍

项目地址:

https://qianyu-lab.github.io/PyTorch-SVGRender-project/

代码地址:

https://github.com/QianYu-Lab/PyTorch-SVGRender

文档地址:

https://pytorch-svgrender.readthedocs.io/en/latest/index.html

Pytorch-SVGRender 是作者团队在 2023.12 发布的一个用于 SVG 生成的可微分渲染方法的 Python 库,使研究人员和开发者们可以通过一个统一的、简化的接口来访问不同的 SVG 生成技术。

Pytorch-SVGRender 包含两大功能:位图到 SVG 的渲染(Img-to-SVG),以及文本到 SVG(Text-to-SVG)的渲染。并且整合了与这些功能有关的研究成果,例如 DiffVG、LIVE、CLIPasso、CLIPDraw、VectorFusion、Word-As-Image、DiffSketcher 和 SVGDreamer 等。

Pytorch-SVGRender 的设计理念是基于模块化和可扩展性的原则,让用户能够无缝集成最新的 SVG 创作技术。通过提供一套清晰的、统一的 API,该库允许开发者轻松地调用底层绘图算法,无需深入了解其底层原理。此外,库中的每一种方法的相关参数都经过精心优化,以确保生成的 SVG 文件在性能和质量上都能满足高标准的要求。

最后,Pytorch-SVGRender 还提供了丰富的文档和示例代码,帮助用户快速入门上手。作者希望这个库可以提高 SVG 研究人员和开发者的工作效率,为未来 SVG 相关技术的创新与实践提供帮助。

想了解更多AIGC的内容,请访问:

51CTO AI.x社区

https://www.51cto.com/aigc/

责任编辑:张燕妮 来源: PaperWeekly
相关推荐

2012-03-18 19:52:47

Web设计

2024-01-26 16:33:00

2021-12-20 10:03:01

自动化人工智能 人脸识别

2023-11-08 11:00:56

Graphite开源

2015-09-09 09:12:28

ios矢量图颜色

2012-02-16 13:36:39

JavaJavaFX

2021-10-22 15:45:32

开发技能React

2015-06-04 10:40:20

VectorDrawaAndroid

2020-10-04 13:12:53

开源技术 数据

2023-06-05 16:00:39

语言模型

2017-06-13 17:17:43

2015-07-13 18:13:47

Xcode矢量图像代码片段

2023-11-07 11:24:18

2022-05-13 15:32:11

GNOME文本编辑器

2021-03-22 10:05:03

算法可视化大数据

2021-05-06 16:06:20

Google AI技术

2012-08-17 09:47:01

施耐德电气人机界面

2023-12-09 14:29:32

AI算法

2024-03-04 00:06:00

位图GIF矢量图

2013-09-09 15:29:50

设计师图标集
点赞
收藏

51CTO技术栈公众号