StarVector:從圖像與文本生成 SVG 代碼的多模態模型
什麼是 StarVector?
StarVector 是一款專門為 Scalable Vector Graphics (SVG) 生成而設計的多模態視覺語言模型(VLM)。它可以透過 圖像轉 SVG(Image-to-SVG) 和 文本轉 SVG(Text-to-SVG) 兩種方式生成高精度、語義豐富的 SVG 代碼。與傳統的曲線向量化方法不同,StarVector 直接在 SVG 代碼層面 運作,使其能夠準確使用 SVG 原語(如 橢圓、矩形、多邊形、文本 等),避免傳統方法常見的失真與偽影。
StarVector 的核心技術
1. 多模態架構
StarVector 採用 多模態架構,能夠處理 圖像 與 文本 兩種輸入:
- Image-to-SVG:將圖像轉換為視覺標記(visual tokens),然後生成 SVG 代碼。
- Text-to-SVG:僅根據文本指令(無需圖像)創建新的 SVG。
模型核心基於 StarCoder,使其能夠將編碼能力遷移到 SVG 生成領域,確保代碼精簡且語法正確。
SVG 生成的挑戰與 StarVector 的優勢
1. 避免傳統方法的缺陷
傳統 SVG 生成方法,如 AutoTrace、Potrace、VTracer 等,主要依賴於 曲線擬合,無法準確理解圖像的語義,經常產生 扭曲或冗長的路徑數據,且難以處理 複雜的 SVG 元素。
StarVector 的優勢:
- 語義理解:模型能夠分析圖像內容,並正確選擇適當的 SVG 原語(如 圓形、矩形、折線 等)。
- 代碼精簡:直接輸出 結構清晰、緊湊 的 SVG 代碼,而非複雜的路徑數據(
<path>
)。 - 支援多種 SVG 生成場景:如 標誌(logo)、技術圖表(technical diagrams)、圖示(icons) 等。
2. 更準確的評估標準
過去,許多 SVG 生成方法依賴於 像素級評估指標(如 MSE),但這些方法無法真正衡量 SVG 的語義準確性。因此,StarVector 團隊開發了 SVG-Bench,這是一個專門用於測試 SVG 生成質量 的基準測試,涵蓋 10 個數據集與 3 種 SVG 生成任務:
- Image-to-SVG
- Text-to-SVG
- Diagram-to-SVG
StarVector 模型與評測結果
目前,StarVector 提供 兩個模型版本,並在 Hugging Face 上開放下載:
- 💫 StarVector-8B
- 💫 StarVector-1B
在 SVG-Bench 測試中,StarVector 在 DinoScore 指標上的表現超越了所有基準模型:
方法 | SVG-Stack | SVG-Fonts | SVG-Icons | SVG-Emoji | SVG-Diagrams |
---|---|---|---|---|---|
AutoTrace | 0.942 | 0.954 | 0.946 | 0.975 | 0.874 |
Potrace | 0.898 | 0.967 | 0.972 | 0.882 | 0.875 |
VTracer | 0.954 | 0.964 | 0.940 | 0.981 | 0.882 |
Im2Vec | 0.692 | 0.733 | 0.754 | 0.732 | - |
LIVE | 0.934 | 0.956 | 0.959 | 0.969 | 0.870 |
DiffVG | 0.810 | 0.821 | 0.952 | 0.814 | 0.822 |
GPT-4-V | 0.852 | 0.842 | 0.848 | 0.850 | - |
💫 StarVector-1B | 0.926 | 0.978 | 0.975 | 0.929 | 0.943 |
💫 StarVector-8B | 0.966 | 0.982 | 0.984 | 0.981 | 0.959 |
注意: StarVector 不適用於自然圖像或插畫,因為模型的訓練數據主要來自 圖標、技術圖表、圖表(charts)、標誌等矢量圖形。
SVG-Bench 數據集詳解
StarVector 的訓練數據來自 SVG-Bench,這是一個專門為 SVG 生成模型設計的數據集,涵蓋 10 個子數據集,每個數據集針對不同的 SVG 生成場景:
數據集 | 訓練集 | 驗證集 | 測試集 | 平均 Token 長度 | 支援的 SVG 原語 | 註釋類型 |
---|---|---|---|---|---|---|
SVG-Stack | 2.1M | 108k | 5.7k | 1,822 ± 1,808 | 所有 SVG 原語 | 圖像標註 |
SVG-Stack_sim | 601k | 30.1k | 1.5k | 2,000 ± 918 | Vector path | - |
SVG-Diagrams | - | - | 472 | 3,486 ± 1,918 | 所有 SVG 原語 | - |
SVG-Fonts | 1.8M | 91.5k | 4.8k | 2,121 ± 1,868 | Vector path | 字體標註 |
SVG-Fonts_sim | 1.4M | 71.7k | 3.7k | 1,722 ± 723 | Vector path | 字體標註 |
SVG-Emoji | 8.7k | 667 | 668 | 2,551 ± 1,805 | 所有 SVG 原語 | - |
SVG-Emoji_sim | 580 | 57 | 96 | 2,448 ± 1,026 | Vector path | - |
SVG-Icons | 80.4k | 6.2k | 2.4k | 2,449 ± 1,543 | Vector path | - |
SVG-Icons_sim | 80.4k | 2.8k | 1.2k | 2,005 ± 824 | Vector path | - |
SVG-FIGR | 270k | 27k | 3k | 5,342 ± 2,345 | Vector path | 圖像分類 & 標註 |
總結:StarVector 為何重要?
SVG 在 圖標、商標、技術圖表、地圖設計 等領域至關重要,而 StarVector 是目前最先進的 Image-to-SVG 與 Text-to-SVG 生成模型。與傳統曲線擬合方法相比,它提供:
✅ 語義理解,能正確識別圖像結構
✅ 精簡代碼,生成更高效的 SVG
✅ 更準確的評測標準,解決像素級評估的局限性
✅ 支援 Hugging Face 訓練與測試,可供開發者使用
StarVector 讓 AI 生成 SVG 變得更加精確、可靠,並為未來的向量圖形應用開啟了更多可能性。💡
👉 相關資源: