BillBoard Splatting (BBSplat): Learnable Textured Primitives for Novel View Synthesis¶
会议: ICCV 2025
arXiv: 2411.08508
代码: GitHub (有)
领域: 3D视觉 / 新视角合成 / 3D场景表示
关键词: Gaussian Splatting, 纹理化基元, 新视角合成, 模型压缩, 网格提取
一句话总结¶
提出BBSplat——用可学习的RGB纹理和alpha贴图替代2D Gaussian Splatting中的高斯分布不透明度,使每个平面基元具有任意形状和逐像素颜色控制,在用更少基元的情况下弥补2DGS与3DGS之间的渲染质量差距,同时保留精确网格提取能力并实现最高×17的存储压缩。
背景与动机¶
- 3DGS 使用3D椭球体+高斯分布透明度,渲染质量高但无法精确提取网格
- 2DGS 使用2D扁平椭圆(与物体表面对齐),网格提取更准确,但渲染质量落后于3DGS
- 传统高斯基元(无论2D/3D)每个基元只有一个全局颜色(由球谐函数决定)和高斯分布的透明度,表示高频细节需要大量基元
- Billboard Cloud(经典CG技术,Décoret et al. 2003):用纹理化平面集合简化3D模型,已广泛用于实时森林渲染等场景
核心洞察:如果给2D平面基元加上可学习的纹理(颜色+透明度),每个基元就能表示复杂形状和颜色变化,大幅减少所需基元数量,同时保留2DGS的网格提取优势。
核心问题¶
如何设计一种兼具以下三个优势的3D场景表示: 1. 达到或超越3DGS的渲染质量(弥补2DGS的质量差距) 2. 保留2DGS的精确网格提取能力 3. 显著减少存储空间
方法详解¶
整体框架¶
输入COLMAP点云和相机位姿 → 初始化billboard基元 → 通过光度损失+纹理正则化端到端优化 → MCMC自适应密度控制 → 纹理压缩输出
每个billboard的参数化为:{μᵢ, sᵢ, rᵢ, SHᵢ, Tᵢ^RGB, Tᵢ^α},其中前四项继承自2DGS(位置、2D缩放、旋转四元数、球谐系数),后两项是新增的RGB纹理和alpha贴图(默认16×16大小)。
关键设计¶
- 纹理化平面基元:
- 用 alpha贴图 Tᵢ^α 替代2DGS的全局不透明度oᵢ+高斯分布,每个平面上每个点都有独立的透明度值,因此billboard可以有任意形状(如叶子、建筑边缘等)
- 用 RGB纹理 Tᵢ^RGB 控制逐像素颜色偏移,最终颜色 = 纹理采样值 + 球谐函数计算的视角相关色:cᵢ[u] = Tᵢ^RGB[u] + RGB(SHᵢ, dᵢ)
- 这种加法分解让纹理只需存储与SH基础色的残差(offset),大部分值接近零,有利于压缩
- 通过双线性采样从纹理获取值,基于PyTorch CUDA实现,支持梯度反传到纹理和billboard位置
-
渲染流程:利用2DGS的显式ray-splat求交算法找到射线与平面的(u,v)交点坐标,缩放到[0, S_T]范围后采样纹理
-
基于可见性加权的纹理正则化:
- 问题:纹理参数量大,容易对训练视角过拟合
- 为每个billboard计算影响权重 wᵢ:基于该billboard在渲染图像上的alpha-blending贡献量Iᵢ(所有覆盖像素的alpha混合值之和),设阈值σ=500
- wᵢ = (σ - min(Iᵢ, σ)) / σ,当Iᵢ>0时;否则wᵢ=0
- 对RGB纹理施加L1正则化推向零(鼓励稀疏),对alpha贴图推向高斯分布𝒢
- 不可见billboard(Iᵢ≤0)不被正则化,避免欠表示区域过度正则化
-
贡献大的billboard权重小(更多纹理自由度),贡献小的billboard权重大(更强正则化)
-
改进的MCMC密度控制:
- 采用3DGS-MCMC的采样策略,但修改克隆操作:原始MCMC对高斯做不透明度+协方差调整来保持渲染状态,但协方差调整不适用于任意形状基元
- 改为只调整alpha贴图来保持射线方向透明度一致:T^α_{1,...,N} = 1 - (1 - T^α)^(1/N)
- 比原始MCMC的公式更简洁,无需额外的scale修改
- "死亡"基元判定:比较alpha贴图均值 T̄ᵢ^α < γ(γ=5e-3),而非原始MCMC的全局不透明度阈值
损失函数 / 训练策略¶
- 光度损失:ℒ_image = (1-λ_SSIM)·ℒ₁ + λ_SSIM·ℒ_SSIM(λ_SSIM=0.2)
- 纹理正则化:ℒ_texture = λ_RGB·ℒ_RGB + λ_α·ℒ_α(λ_RGB = λ_α = 1e-4)
- 总损失:ℒ = ℒ_image + ℒ_texture
- 训练30,000步 + 额外2,000步微调球谐系数以适配纹理
- 前500步冻结纹理(T^RGB初始化为0,T^α初始化为2D高斯),先用SfM初始化调整方向和颜色
- 500-25,000步执行MCMC密度控制
- 学习率:lr_RGB=2.5e-3, lr_α=1e-3, lr_SH=5e-3, lr_μ从1.6e-4指数衰减到1.6e-6
- 对于户外场景,可选在包围球面上用Fibonacci算法添加10K均匀分布点表示天空
- 纹理压缩:归一化到[0,1] → 量化为uint8(÷4存储) → 从alpha贴图减去高斯模板增加稀疏性 → ZIP字典压缩,平均总共压缩~7倍
- 硬件:单卡NVIDIA RTX 4090
实验关键数据¶
DTU数据集(与压缩方法对比,Table 3)¶
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | 存储↓ |
|---|---|---|---|---|
| 3DGS | 28.39 | 0.8775 | 0.2850 | 121 MB |
| Reduced-3DGS | 28.31 | 0.8769 | 0.2859 | 30 MB |
| Compact-3DGS | 28.39 | 0.8752 | 0.3000 | 10 MB |
| BBSplat | 29.39 | 0.8830 | 0.2770 | 7 MB |
→ 存储减少×17,PSNR提升+1.0 dB
DTU数据集(网格提取+NVS,Table 4,Full HD 1600×1200)¶
| 方法 | Chamfer Distance↓ | PSNR↑ | 存储↓ |
|---|---|---|---|
| 3DGS | 1.96 | 28.39 | 121 MB |
| SuGaR | 1.33 | 27.95 | 1059 MB |
| 2DGS | 0.80 | 28.04 | 59 MB |
| BBSplat | 0.91 | 29.72 | 32 MB |
→ PSNR达到29.72 SOTA,CD仅比2DGS差0.11但远优于3DGS(1.96)和SuGaR(1.33),存储仅32MB
Tanks&Temples(固定存储空间,Table 1)¶
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | 存储 | 基元数 |
|---|---|---|---|---|---|
| 3DGS | 20.90 | 0.7810 | 0.3130 | 19 MB | 580K |
| 2DGS† | ~20.5 | ~0.77 | ~0.33 | ~18 MB | ~550K |
| BBSplat | ~21.8 | ~0.83 | ~0.22 | 19 MB | ~60K |
→ 相同存储空间下基元数减少约一个数量级,所有指标均优
消融实验要点(Tanks&Temples, 800×600, Table 5)¶
| 配置 | PSNR↑ | SSIM↑ | LPIPS↓ | 存储 |
|---|---|---|---|---|
| w/o alpha纹理 T^α | 25.17 | 0.8684 | 0.1774 | 60 MB |
| w/o RGB纹理 T^RGB | 25.26 | 0.8710 | 0.1858 | 72 MB |
| w/o 正则化 | 25.54 | 0.8791 | 0.1655 | 131 MB |
| w/o 压缩 | 25.71 | 0.8818 | 0.1630 | 662 MB |
| Full | 25.68 | 0.8797 | 0.1649 | 93 MB |
- 去掉T^α对LPIPS影响最大(0.1649→0.1774),说明任意形状对感知质量至关重要
- 去掉T^RGB让PSNR/SSIM明显下降(-0.42/-0.009)
- 正则化几乎不损失质量但显著减少存储(131→93 MB)
- 压缩仅轻微质量损失(25.71→25.68 PSNR)但存储从662 MB降到93 MB(×7倍)
纹理大小选择(Table 7, Truck场景)¶
| 纹理大小 | 基元数 | PSNR | 存储 |
|---|---|---|---|
| 8×8 | 160K | 26.04 | 207 MB |
| 16×16 | 40K | 25.99 | 102 MB |
| 32×32 | 10K | 25.28 | 82 MB |
| 64×64 | 2.5K | 23.34 | 68 MB |
→ 16×16在质量和存储间取得最佳平衡
亮点¶
- 设计极其优雅:纹理作为SH颜色的偏移(offset),一举实现了视角相关效果的保留和纹理稀疏性,利于压缩
- 即插即用:BBSplat基元可直接替换任何GS管线中的高斯基元,复用2DGS的ray-splat求交算法
- 一石三鸟:同时解决渲染质量、网格提取精度、存储压缩三个问题
- ray-tracing支持:billboard的平面性质允许直接在Blender中光栅化,支持光线追踪效果(镜面反射、重打光),无需额外网格提取步骤
- 正则化设计精巧:基于可见性加权——贡献大的billboard保留纹理自由度,贡献小的推向高斯分布,既防过拟合又促进压缩
- 经典CG思想的复兴:Billboard Cloud(2003)在可微渲染时代焕发新生
局限性 / 可改进方向¶
- 大型户外场景表现欠佳:Mip-NeRF-360的户外场景(大量小型单色细节如树叶)纹理化表示不如高斯高效
- 训练速度慢:~40分钟 vs 3DGS的~5分钟(×8),瓶颈在纹理的CUDA双线性采样反向传播
- 基元数量多时过拟合:户外场景使用较多基元反而导致过拟合
- 纹理大小固定16×16:所有基元使用相同分辨率,未根据基元重要性/大小自适应调整
- 与Texture-GS的对比仅限DTU(Texture-GS受限于球面纹理空间定义无法处理大场景)
与相关工作的对比¶
| 方法 | 任意形状 | RGB纹理 | 存储压缩 | 基础框架 |
|---|---|---|---|---|
| 3D Convex Splatting | ✅ | ❌ | ❌ | 3DGS |
| Texture-GS | ❌ | ✅ | ❌ | 3DGS |
| Textured Gaussians | ✅ | ✅ | ✅ | 3DGS |
| SuperGaussians | ✅ | ❌ | ❌ | 2DGS |
| HDGS | ❌ | ✅ | ❌ | 2DGS |
| GSTex | ❌ | ✅ | ❌ | 2DGS |
| Gaussian Billboards | ❌ | ✅ | ❌ | 2DGS |
| BBSplat | ✅ | ✅ | ✅ | 2DGS |
BBSplat是唯一基于2DGS同时支持任意形状、RGB纹理和存储压缩的方法。vs Texture-GS(BBSplat在DTU上PSNR 30.81 vs 30.03),且BBSplat能处理大场景。
启发与关联¶
- 与3DGS压缩方向的互补:BBSplat从表示层面减少基元数量,可与Compact-3DGS等参数压缩方法正交组合
- 纹理作为offset的思路可推广到动态场景——在4D Gaussian中用时间相关的纹理偏移表示动态外观变化
- 可见性加权正则化的思路具有通用性,可应用于其他需要防止过拟合的基于基元的表示
- billboard的显式平面性质天然支持编辑(移动、删除、纹理修改)和物理效果(反射、折射),为交互式场景编辑开辟路径
- 相关idea: 多尺度光照场3DGS — BBSplat的纹理设计可作为照明分解的载体
- 相关idea: 图自回归3DGS编辑 — BBSplat的显式纹理+平面结构特别适合3D编辑任务
- 相关idea: 物理引导透明场景补全 — BBSplat的alpha贴图可更好地处理透明物体的部分遮挡
评分¶
- 新颖性: ⭐⭐⭐⭐ 纹理化billboard概念源于经典CG(2003),但将其与可微渲染管线结合并设计了完整的正则化+压缩流程是新颖的;非从零创新但组合巧妙
- 实验充分度: ⭐⭐⭐⭐ 三个标准数据集27个场景、固定/最大存储两种设置、压缩方法对比、网格提取、消融、逐场景指标、纹理大小搜索;但缺少明确的训练时间对比表
- 写作质量: ⭐⭐⭐⭐⭐ 结构清晰,公式推导完整,图表直观,补充材料详尽(CUDA伪码、逐场景指标、超参数搜索、训练过程可视化)
- 价值: ⭐⭐⭐⭐ 实际解决了2DGS质量不足和GS存储过大两个重要问题;ray-tracing和即插即用能力有实用价值;训练慢(×8)是主要瓶颈