StarVector: Generating Scalable Vector Graphics Code from Images and Text

📄 arXiv: 2312.11556v4 📥 PDF

作者: Juan A. Rodriguez, Abhay Puri, Shubham Agarwal, Issam H. Laradji, Pau Rodriguez, Sai Rajeswar, David Vazquez, Christopher Pal, Marco Pedersoli

分类: cs.CV, cs.AI, cs.CL

发布日期: 2023-12-17 (更新: 2025-05-31)


💡 一句话要点

StarVector:提出一种基于多模态大语言模型的图像和文本生成可缩放矢量图形代码的方法

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 可缩放矢量图形 多模态大语言模型 图像矢量化 SVG生成 SVG代码 SVG数据集 SVG评估 语义理解

📋 核心要点

  1. 现有SVG生成方法依赖曲线矢量化,缺乏语义理解,易产生伪影,且对复杂图元支持不足。
  2. StarVector利用多模态大语言模型,直接在SVG代码空间中操作,结合视觉理解精确应用SVG图元。
  3. 通过SVG-Stack数据集训练,并在SVG-Bench基准测试中,StarVector在图像和文本生成SVG任务上取得SOTA性能。

📝 摘要(中文)

本文介绍了一种名为StarVector的多模态大语言模型,用于生成可缩放矢量图形(SVG)代码。现有SVG生成方法主要集中于基于曲线的矢量化,缺乏语义理解,容易产生伪影,并且难以处理路径曲线之外的SVG图元。为了解决这些问题,StarVector通过理解图像语义并使用SVG图元来实现紧凑、精确的输出,从而执行图像矢量化。与传统方法不同,StarVector直接在SVG代码空间中工作,利用视觉理解来应用精确的SVG图元。为了训练StarVector,我们创建了一个包含200万个样本的SVG-Stack数据集,该数据集支持跨矢量化任务的泛化以及椭圆、多边形和文本等图元的精确使用。我们还解决了SVG评估中的挑战,表明基于像素的指标(如MSE)无法捕捉矢量图形的独特品质。我们引入了SVG-Bench,这是一个包含10个数据集和3个任务(图像到SVG、文本到SVG生成和图表生成)的基准。使用此设置,StarVector实现了最先进的性能,生成了更紧凑和语义丰富的SVG。

🔬 方法详解

问题定义:现有SVG生成方法主要依赖于曲线矢量化,无法充分理解图像的语义信息,导致生成的SVG图像存在伪影,并且难以处理除路径曲线之外的其他SVG图元,例如椭圆、多边形和文本等。这些方法生成的SVG代码通常冗余且难以编辑。

核心思路:StarVector的核心思路是利用多模态大语言模型直接在SVG代码空间中进行操作,通过学习图像和文本的语义信息,并结合对SVG图元的理解,生成紧凑、精确且语义丰富的SVG代码。这种方法避免了传统矢量化方法中先提取特征再进行矢量化的过程,而是直接生成SVG代码。

技术框架:StarVector的技术框架主要包括以下几个部分:1) 一个多模态大语言模型,用于学习图像和文本的语义信息;2) 一个SVG代码生成器,用于根据学习到的语义信息生成SVG代码;3) 一个大规模的SVG数据集(SVG-Stack),用于训练模型;4) 一个SVG评估基准(SVG-Bench),用于评估模型的性能。整个流程是,输入图像或文本,模型理解其语义,然后生成对应的SVG代码。

关键创新:StarVector的关键创新在于:1) 提出了一种基于多模态大语言模型的SVG生成方法,可以直接在SVG代码空间中进行操作;2) 构建了一个大规模的SVG数据集(SVG-Stack),用于训练模型;3) 提出了一个SVG评估基准(SVG-Bench),用于评估模型的性能。与现有方法相比,StarVector能够生成更紧凑、精确且语义丰富的SVG代码。

关键设计:StarVector的关键设计包括:1) 模型架构的选择,可能采用了Transformer或其他适合序列生成的模型;2) 损失函数的设计,可能包括像素级别的损失和代码级别的损失,以保证生成图像的视觉质量和代码的正确性;3) 数据集的构建,SVG-Stack数据集包含了各种类型的SVG图像,以及对应的图像和文本描述,以保证模型的泛化能力;4) 评估指标的选择,SVG-Bench基准测试采用了多种评估指标,包括像素级别的指标和代码级别的指标,以全面评估模型的性能。

📊 实验亮点

StarVector在SVG-Bench基准测试中取得了state-of-the-art的性能,在图像到SVG、文本到SVG生成和图表生成三个任务上均超越了现有方法。实验结果表明,StarVector生成的SVG代码更加紧凑,语义信息更加丰富,并且能够更好地处理各种类型的SVG图元。具体的性能提升数据未知,但论文强调了其在多个数据集上的显著优势。

🎯 应用场景

StarVector具有广泛的应用前景,包括但不限于:图像编辑、矢量图形设计、图表生成、UI设计、以及将位图图像转换为矢量图形等。该技术可以提高矢量图形的生成效率和质量,降低人工成本,并为用户提供更灵活和可定制的矢量图形解决方案。未来,该技术有望应用于自动化设计、内容创作等领域。

📄 摘要(原文)

Scalable Vector Graphics (SVGs) are vital for modern image rendering due to their scalability and versatility. Previous SVG generation methods have focused on curve-based vectorization, lacking semantic understanding, often producing artifacts, and struggling with SVG primitives beyond path curves. To address these issues, we introduce StarVector, a multimodal large language model for SVG generation. It performs image vectorization by understanding image semantics and using SVG primitives for compact, precise outputs. Unlike traditional methods, StarVector works directly in the SVG code space, leveraging visual understanding to apply accurate SVG primitives. To train StarVector, we create SVG-Stack, a diverse dataset of 2M samples that enables generalization across vectorization tasks and precise use of primitives like ellipses, polygons, and text. We address challenges in SVG evaluation, showing that pixel-based metrics like MSE fail to capture the unique qualities of vector graphics. We introduce SVG-Bench, a benchmark across 10 datasets, and 3 tasks: Image-to-SVG, Text-to-SVG generation, and diagram generation. Using this setup, StarVector achieves state-of-the-art performance, producing more compact and semantically rich SVGs.