©作者 | 周海涛
单位 | 北京航空航天大学
可缩放矢量图形(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/
实现思路
▲ 图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 路径参数,经过循环迭代完成优化,得到最终结果。
实验结果

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制作的矢量海报与位图海报合成方法的比较
总结
在这项工作中,作者介绍了 SVGDreamer,一个用于文本引导矢量图形合成的创新模型。SVGDreamer 结合了两个关键的技术设计: 语义驱动的图像矢量化 (SIVE) 和基于矢量粒子的分数蒸馏 (VPSD),这使得模型能够生成具有高可编辑性、卓越的视觉质量和显著的多样性的矢量图形。
由于SVGDreamer能够生成具有可编辑性的复杂矢量图形,因此,SVGDreamer 有望显著推进文本到 SVG 模型在设计领域的应用。它已经被证实可以用来创建矢量图形资产库,设计师可以根据不同的需求,很容易地将库中的元素重新排列组合,用于创建独特的矢量海报或 Logo,以及其他矢量艺术形式。
矢量图可微渲染库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 相关技术的创新与实践提供帮助。
参考文献
[1] Kevin Frans, Lisa Soros, and Olaf Witkowski. CLIPDraw: Exploring text-to-drawing synthesis through language-image encoders. In Alice H. Oh, Alekh Agarwal, Danielle Belgrave, and Kyunghyun Cho, editors, Advances in Neural Information Processing Systems(NIPS), 2022.
[2] Ajay Jain, Amber Xie, and Pieter Abbeel. Vectorfusion: Text-to-svg by abstracting pixel-based diffusion models. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR), 2023.
[3] Yael Vinker, Ehsan Pajouheshgar, Jessica Y Bo, Roman Christian Bachmann, Amit Haim Bermano, Daniel Cohen-Or, Amir Zamir, and Ariel Shamir. Clipasso: Semantically-aware object sketching. ACM Transactions on Graphics(TOG), 41(4):1–11, 2022.
[4] Xing X, Wang C, Zhou H, et al. Diffsketcher: Text guided vector sketch  synthesis through latent diffusion models[J]. Advances in Neural Information Processing Systems(NIPS), 2023.
[5] Tzu-Mao Li, Michal Lukac, Gharbi Michael and Jonathan Ragan-Kelley. Differentiable vector graphics rasterization for editing and learning. ACM Transactions on Graphics (TOG), 39(6):193:1–193:15, 2020.
[6] Ben Poole, Ajay Jain, Jonathan T. Barron, and Ben Mildenhall. Dreamfusion: Text-to-3d using 2d diffusion. In The Eleventh International Conference on Learning Representations(ICLR), 2023.
更多阅读
#投 稿 通 道#
 让你的文字被更多人看到 
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected] 
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·
·
继续阅读
阅读原文