Bézier Splatting for Fast and Differentiable Vector Graphics Rendering¶
会议: NeurIPS 2025
arXiv: 2503.16424
代码: https://xiliu8006.github.io/Bezier_splatting_project
领域: 矢量图形渲染
关键词: 可微渲染, Bézier曲线, Gaussian Splatting, 矢量化, 图像优化
一句话总结¶
Bézier Splatting 将 Gaussian Splatting 框架与 Bézier 曲线结合,沿曲线均匀采样 2D Gaussian 点,通过 α-blending 渲染实现可微矢量图形,前向 30× / 反向 150× 加速(相比 DiffVG),同时保持或超越 LIVE 等方法的图像质量。
研究背景与动机¶
领域现状:可微矢量图形渲染(如 DiffVG、LIVE)通过优化 Bézier 曲线参数实现图像矢量化。DiffVG 做逐像素颜色累积,LIVE 逐层添加曲线,但它们对高分辨率图像需要数小时优化。
现有痛点:DiffVG 的反向传播需要在每个边界像素上采样,计算量与曲线数和分辨率成正比,极慢。LIVE 逐层优化在 512 条曲线时需 2.6-5.1 小时。缺少能在分钟级完成的高质量矢量化方法。
核心矛盾:传统可微渲染需要精确处理曲线边界的抗锯齿梯度,但这导致计算瓶颈。需要一种绕过逐像素边界采样的渲染方式。
本文目标 在保持矢量图形质量的前提下大幅加速可微渲染,使优化从小时级降到分钟级。
切入角度:Gaussian Splatting 已在 3D 渲染中证明了高效可微渲染的能力。将 Bézier 曲线参数化为沿曲线分布的 2D Gaussian 点,复用 Gaussian Splatting 的高效渲染管线。
核心 idea:沿 Bézier 曲线均匀采样 2D Gaussian 点,用曲线切线方向定义旋转、邻点距离定义尺度,通过 α-blending 渲染和自适应剪枝/密化实现快速可微矢量化。
方法详解¶
整体框架¶
输入图像 → 初始化一组 Bézier 曲线 → 沿每条曲线均匀采样点 → 为每个采样点计算 2D Gaussian 参数(位置=采样点,旋转=切线角,尺度=邻点距离)→ α-blending 渲染 → L2+Xing 损失优化曲线控制点和颜色 → 自适应剪枝低透明度曲线 + 在高误差区域密化新曲线
关键设计¶
-
Bézier 曲线到 2D Gaussian 的参数化:
- 功能:将每条 Bézier 曲线转为一系列 2D Gaussian 点
- 核心思路:位置 = 曲线上的均匀采样点;旋转 \(\theta\) = 该点切线方向角;\(\sigma_x\)(沿曲线)= 相邻采样点距离;\(\sigma_y\)(垂直曲线)= 可学习的宽度参数;对闭合曲线,用"配对 Bézier 曲线"结构在两条边界曲线间线性插值控制点来填充内部
- 设计动机:2D Gaussian 是 Gaussian Splatting 的原生表示,可直接复用其高效渲染管线。通过切线方向和邻点距离自动推导参数,避免额外学习开销
-
α-blending 渲染(非累积):
- 功能:正确处理曲线间遮挡关系
- 核心思路:按深度排序后前向后渲染,\(C = \sum_i T_i \alpha_i c_i\),其中 \(T_i = \prod_{j<i}(1-\alpha_j)\)。与 DiffVG 的逐像素颜色累积不同,α-blending 天然支持遮挡
- 设计动机:DiffVG 的累积渲染导致颜色混叠,而 α-blending 更符合物理遮挡模型
-
自适应剪枝与密化:
- 功能:动态调整曲线数量和分布
- 核心思路:剪枝——移除透明度 < 阈值或面积过小的曲线;密化——在残差误差高的区域随机初始化新曲线;周期性执行
- 设计动机:初始随机曲线可能分布不均,自适应策略让曲线集中在需要细节的区域
损失函数 / 训练策略¶
- \(\mathcal{L} = \lambda_1 \|\hat{I} - I\|_2^2 + \lambda_2 \mathcal{L}_{Xing}\)
- Xing 损失约束 Bézier 曲线不自交(保持凸性)
- 优化 3.2-8.6 分钟(vs LIVE 2.6-5.1 小时)
实验关键数据¶
主实验¶
| 方法 | SSIM↑ | PSNR↑ | LPIPS↓ | 前向加速 | 反向加速 | 优化时间 |
|---|---|---|---|---|---|---|
| DiffVG | — | — | — | 1× | 1× | 数小时 |
| LIVE | 0.601 | 21.70 | 0.521 | — | — | 2.6-5.1h |
| Bézier Splatting | 0.607 | 22.11 | 0.528 | 30× | 150× | 3.2-8.6min |
消融实验¶
| 配置 | SSIM | PSNR |
|---|---|---|
| 无剪枝/密化 | 0.590 | 21.10 |
| 有剪枝/密化 | 0.607 | 22.11 |
| 逐层策略 | 0.613 | — (2× 训练时间) |
关键发现¶
- 反向传播加速最显著(150×),因为完全绕过了 DiffVG 的逐边界采样
- 闭合曲线的配对结构使填充区域也能参与梯度优化
- 在照片级、艺术画、卡通等多种图像类型上有效
- 自适应密化对质量贡献显著(SSIM +0.017,PSNR +1.01)
亮点与洞察¶
- Gaussian Splatting 框架的创造性复用:将矢量图形问题映射到 Gaussian Splatting 的高效渲染管线,巧妙利用了已有的 CUDA 加速实现
- 参数化设计很自然:切线→旋转、邻点距离→尺度,几乎无损地将曲线几何信息编码为 Gaussian 参数
- 150× 反向加速意味着交互式矢量化成为可能:从小时级到分钟级的跨越打开了实时应用的大门
局限与展望¶
- LPIPS 指标与 LIVE 接近甚至略差,感知质量有提升空间
- 闭合曲线的配对结构限制了形状表达能力(只能表示条状区域)
- 未与最新的神经矢量化方法(如 VectorFusion)比较
- Xing 损失约束曲线凸性可能限制复杂形状的表达
相关工作与启发¶
- vs DiffVG: DiffVG 逐像素采样边界梯度,极慢;本文用 Gaussian 替代,绕过边界问题
- vs LIVE: LIVE 逐层添加曲线质量好但慢;本文全局优化 + 自适应策略,速度快 100×+
- vs 3DGS: 3DGS 用于 3D 场景重建,本文将 2D Gaussian 与 Bézier 曲线结合用于矢量图形
评分¶
- 新颖性: ⭐⭐⭐⭐ Gaussian Splatting + Bézier 曲线的结合点新颖
- 实验充分度: ⭐⭐⭐⭐ 多数据集+消融+速度对比
- 写作质量: ⭐⭐⭐⭐ 方法描述清晰
- 价值: ⭐⭐⭐⭐ 大幅推进矢量化渲染效率