Sparse Voxels Rasterization: Real-time High-fidelity Radiance Field Rendering

基本信息

项目 内容
论文标题 Sparse Voxels Rasterization: Real-time High-fidelity Radiance Field Rendering
作者 Cheng Sun, Jaesung Choe, Charles Loop, Wei-Chiu Ma, Yu-Chiang Frank Wang
作者单位 NVIDIA, Cornell University, National Taiwan University
时间 2024年12月 (arXiv预印本,后续更新至2025年2月)
发表会议/期刊 暂未明确 (CVPR 2025的投稿/在审版本)

方法概览

特点 文章性质
输入 多视角RGB图像及其对应的相机位姿
输出 1. 新视角合成图像;2. 场景的网格(Mesh)或点云
所属领域 神经渲染, 三维重建, 新视角合成

image-20251208214935487

1. 核心表示:自适应稀疏体素 (Adaptive Sparse Voxels)

这篇文章提出了一种名为 SVRaster 的新方法,其核心是对三维场景的一种新表示:自适应稀疏体素网格

  • 对比的表示方法
    • 3D高斯泼溅 (3D Gaussian Splatting, 3DGS):用大量椭球高斯函数表示场景。SVRaster与之相比,优势在于解决了3DGS因排序和重叠导致的“ popping artifacts”(视角突变伪影)和体积定义模糊问题;缺点是模型存储所需内存更大。
    • 神经辐射场 (NeRF) 及其网格变体:使用神经网络或网格(如Hash Grid, Tri-plane,Mip-NeRF360、Zip-NeRF)编码场景。SVRaster与之相比,优势是完全不依赖神经网络,渲染速度更快(通过光栅化而非光线投射),且与经典三维处理算法兼容性更好;缺点可能是参数效率较低。
    • 之前的显式体素模型 (如Plenoxels):也使用体素。SVRaster的优势在于引入了自适应多分辨率(体素大小可变)和高效的光栅化渲染,从而在质量和速度上大幅超越。
  • 主要特点
    1. 完全显式:不使用任何神经网络,场景由体素的密度、颜色等显式参数定义。
    2. 自适应稀疏性:体素在八叉树结构下组织,可根据场景细节(如近处、复杂区域)自动细分为更小的体素,在空白区域则保持粗粒度,实现了高达等效 65536365536^3 的分辨率。
    3. 结构化的体积表示:每个体素是一个明确的体积单元,避免了高斯重叠的歧义性,使几何提取更直接。
  • 优势
    1. 无神经网络、无 3D 高斯依赖,避免复杂参数学习
    2. 无弹出伪影(popping artifact),渲染顺序严格正确
    3. 兼容经典 3D 处理算法(Volume Fusion、Voxel Pooling、Marching Cubes)
    4. 渲染速度快(最高 258 FPS),训练效率高(最快 4.5 分钟 / 场景)
    5. 自适应细节层级,可匹配场景不同区域的精细度需求
  • 缺点
    1. 模型大小和 GPU 内存占用高于 3DGS(1.8GB vs 0.7GB)
    2. 对训练视图曝光变化大的场景表现不佳,易产生亮度边界和漂浮物
    3. 体素数量多于 3D 高斯,部分场景渲染 FPS 略低于 3DGS

2. 摘要精简讲解

SVRaster提出了一种高效的光辐射场渲染算法,它结合了3DGS的光栅化速度和网格表示的优点。该方法使用自适应稀疏体素表示场景,无需神经网络或3D高斯。关键贡献有两点:一是自适应分配多分辨率体素以捕捉细节;二是定制了一个光栅化器,通过依赖射线方向的Morton编码排序来确保正确的渲染顺序,消除了“popping”伪影。该方法在渲染质量和速度上达到前沿水平,并且其体素表示能无缝兼容体积融合、移动立方体等经典网格算法,拓展性强。

3. 引言与出发点

出发点是希望融合 3DGS的渲染效率网格表示(体素)的良好数学定义 两者的优势。

  • 3DGS虽然快,但存在渲染顺序错误导致的视角突变伪影,以及多个高斯重叠时体积密度定义不明确的问题,这给表面重建带来了困难。
  • 传统的体素网格表示虽然能避免上述问题,但其基于光线追踪的渲染速度较慢
  • 因此,本文重新审视“体素”这一经典基元,旨在为其配备高效的光栅化渲染能力,从而在保持体素结构化优点的同时,获得与3DGS相媲美的实时渲染速度。

4. 相关工作对比

  • NeRF与基于网格的加速方法:参考了将大型MLP分解为网格(如Hash Grid [34], TensoRF [5], DVGO [45])以加速NeRF的思路,借鉴体绘制的 alpha 合成原理,优化渲染效率的思路但SVRaster完全移除了神经网络。
  • 稀疏体素表示:参考了稀疏体素八叉树[SVO]和VDB等管理稀疏体素的数据结构,但SVRaster采用更简单的1D数组存储,依靠排序而非树结构来保证渲染顺序无需复杂数据结构(如 Octree 指针)。
  • 3D高斯泼溅 (3DGS):对比对象:3DGS、StopThePop、3DGRT、EVER。借鉴了3DGS使用光栅化进行高效渲染的核心思想,但用体素基元替代了高斯基元,从根本上解决了排序和重叠问题。差异:SVRaster 通过方向相关 Morton 排序解决弹出伪影,无需高斯排序 / 光线追踪优化;体素表示避免高斯重叠导致的密度模糊
  • 完全显式的体素模型:与Plenoxels [11]最为相关,都是非神经的体素辐射场。但SVRaster通过自适应多分辨率体素光栅化渲染,在质量和速度上实现了巨大飞跃(提升>4dB PSNR和>10倍FPS)。
  • 表面重建方法:参考了从辐射场(如NeuS [50], VolSDF [56])或正则化后的3DGS(如2DGS [16])提取网格的工作。SVRaster的体素表示天生适合通过移动立方体提取网格。
  • 蒸馏 / 转换类工作:对比对象:SMERF、BakedSDF、RadSplat参考探索高效表示对高质量模型的蒸馏思路。差异:SVRaster 无需教师模型蒸馏,直接从多视图图像训练生成

5. 表示细节、渲染与几何重建

  • 场景重建流程

    1. 初始化:无先验知识,体素原始密度设为负值(接近零激活),球谐系数初始化为灰色,八叉树初始层级为 6(64³ 体素)
      • 有界场景:初始化密集网格,移除无观测体素
      • 无界场景:划分主区域(相机中心附近)和背景壳层,分别初始化网格
    2. 渐进式优化:每 1000 次迭代执行剪枝与细分
      • 剪枝:移除混合权重低于阈值的体素
      • 细分:基于训练损失梯度优先级,细分高优先级体素(保留叶节点,移除父体素)
    3. 参数更新:优化体素角点密度和球谐系数,最小化 photometric 损失
  • 存储格式:体素以一维数组形式存储在内存中,每个体素元素包含:

    • 在八叉树中的层级 l索引 (i, j, k) ,用于计算其世界空间中的大小和中心。
    • 几何参数 v_geo:定义该体素8个角点的密度值,通过三线性插值形成体素内部连续的密度场。
    • 外观参数 v_sh:球谐函数系数,用于计算视角相关的颜色。
  • 渲染方式

    1. 投影与分配:将体素的8个角点投影到屏幕,根据其2D包围盒将其分配到对应的图像块(Tile)。
    2. 排序:对每个Tile内的体素,根据当前相机射线方向,计算其方向相关的Morton编码作为排序键,确保从近到远的正确渲染顺序。
    3. 像素合成:对于每条像素射线,按序与其路径上的体素求交。在每个相交的体素段内均匀采样 K 个点,计算体素的透明度 lpha 和颜色 c,最后按体绘制公式进行 alpha 合成:

      C = \sum_{i=1}^{N} T_i lpha_i c_i, \quad 其中\ T_i = \prod_{j=1}^{i-1}(1-lpha_j)

    4. 抗锯齿:超分辨率渲染后下采样,应用抗锯齿滤镜
  • 几何信息获取

    • 转换为Mesh:首先,可以通过TSDF融合将优化得到的密度场转换为带符号距离场(TSDF)。然后,使用移动立方体Marching Cubes 算法在稀疏体素网格上提取零等值面,得到三角形网格。相邻体素顶点的信息会被合并。
    • 转换为点云:可以通过提取Mesh的顶点直接得到,也可以从高分辨率的密度场中阈值化提取表面点。

6. 训练过程与损失函数

这种表示需要训练。给定多视角图像,通过优化每个体素角点的密度值和球谐系数来重建场景。

  • 训练过程
    1. 初始化:对于有界场景,用一个低分辨率(如 64364^3 )的密集体素网格初始化,并剔除未被任何训练视角观察到的体素。对于无界场景,将空间分为前景(密集网格)和背景(多层包围壳)分别初始化。
    2. 自适应剪枝与细分:在训练过程中迭代进行。
      • 剪枝:剔除对最终像素颜色贡献(混合权重)过小的体素。
      • 细分:根据训练损失的梯度,选择那些“建模能力不足”的体素进行细分(一分为八),从而在细节区域增加分辨率。
  • 损失函数 L\mathcal{L}:包含多个项:

    L=Lextmse+λextssimLextssim+λextTLextT+λextdistLextdist+λextRLextR+λexttvLexttv\mathcal{L} = \mathcal{L}_{ ext{mse}} + \lambda_{ ext{ssim}}\mathcal{L}_{ ext{ssim}} + \lambda_{ ext{T}}\mathcal{L}_{ ext{T}} + \lambda_{ ext{dist}}\mathcal{L}_{ ext{dist}} + \lambda_{ ext{R}}\mathcal{L}_{ ext{R}} + \lambda_{ ext{tv}}\mathcal{L}_{ ext{tv}}

    • Lextmse\mathcal{L}_{ ext{mse}}, Lextssim\mathcal{L}_{ ext{ssim}}:渲染图与真值图之间的光度损失。
    • LextT\mathcal{L}_{ ext{T}}:鼓励光线透射率趋近0或1(即光线被完全阻挡或完全通过)。
    • Lextdist\mathcal{L}_{ ext{dist}}:失真损失,促使沿射线的权重分布集中。
    • LextR\mathcal{L}_{ ext{R}}:逐点颜色损失。
    • Lexttv\mathcal{L}_{ ext{tv}}:密度网格上的总变差损失,鼓励平滑性。
    • 网格重建时,额外增加深度-法向一致性损失 Lextmesh\mathcal{L}_{ ext{mesh}}

7. 实验数据集与结果

在多个标准数据集上进行了测试:

  • MipNeRF-360:新视角合成主要测试集。SVRaster在LPIPS(感知质量)上显著优于3DGS,甚至超过Zip-NeRF;PSNR与3DGS相近或略低;SSIM相近。渲染FPS与3DGS整体相当,在高分辨率下缩放性更好。训练速度更快(15分钟 vs 3DGS的24分钟)。
  • Tanks&Temples 和 Deep Blending:在Deep Blending上质量和速度均优于3DGS;在Tanks&Temples上LPIPS更好,但PSNR和FPS因对训练图像曝光变化敏感而略差。
  • DTU:用于网格重建评估。SVRaster在精度(Chamfer距离)和训练时间上取得了很好的平衡,优于许多NeRF和3DGS变体方法。

测试数据集

Mip-NeRF360、Tanks&Temples、Deep Blending、DTU、Scannet++、Synthetic-NeRF

核心测试结果

数据集 关键指标表现
Mip-NeRF360 最高 258 FPS,训练最快 4.5 分钟;LPIPS 0.185(优于 3DGS 的 0.216),PSNR 27.33(接近 3DGS 的 27.45)
Deep Blending 366 FPS,LPIPS 0.228,PSNR 29.84(均优于 3DGS)
Tanks&Temples LPIPS 0.144(优于 3DGS),PSNR 23.04(略低于 3DGS),FPS 125
DTU Chamfer 距离 0.76,训练时间 5 分钟(平衡精度与效率)
Scannet++ 197 FPS(1752×1168 分辨率),PSNR 24.709,SSIM 0.874
Synthetic-NeRF 质量略低于 3DGS,FPS 111-360,训练时间 3-8 分钟

8. 消融实验

论文进行了广泛的消融实验以验证各个组件的有效性:

  • 自适应体素大小 vs 均匀体素大小:实验表明,自适应细分是达到高质量结果的关键。固定分辨率的均匀体素(如 5123512^3 )效果远差于自适应方法,且无法扩展到更高分辨率。
  • 超级采样抗锯齿 (hssh_{ss}):验证了渲染时采用稍高分辨率再下采样的必要性,能显著提升质量,尤其是LPIPS和SSIM。
  • 损失函数各组件:分别验证了总变差损失 (Ltv\mathcal{L}_{tv})、失真损失 (Ldist\mathcal{L}_{dist})、颜色集中损失 (LR\mathcal{L}_{R}) 对提升渲染质量和平滑几何的重要性。
  • 球谐函数阶数 (NshdN_{shd}):高阶SH(如3阶)能更好建模视角相关外观,但会增加存储开销。
  • 体素内采样点数 (KK):对于新视角合成,K=1已足够;对于需要精确深度的网格重建任务,K=3更有益。
  • 背景区域初始化比例 (hratioh_{ratio}):展示了背景体素数量对最终质量和训练时间的影响。

9. 主要创新点总结

  1. 非神经的、自适应的稀疏体素表示:首次将完全显式的体素表示与高效的光栅化渲染深度结合,并引入了自适应多层次细节,使其既能表达精细细节,又保持了体素的结构化优势。
  2. 方向相关的Morton排序光栅化器:设计了定制化的光栅化流水线,通过依赖射线方向的排序方法,彻底解决了3DGS中存在的视角不一致渲染(popping artifacts)问题,同时保持了高速渲染。
  3. 与经典三维处理算法的无缝兼容性:得益于其纯体素网格的表示,SVRaster可以直接、高效地与体积融合、体素池化、移动立方体等成熟算法结合,轻松实现网格提取和2D特征(如语义)的3D融合,展示了强大的扩展和应用潜力。
  4. 实现了质量、速度与兼容性的新平衡:在保持与前沿方法(3DGS)相媲美的渲染速度和新视角合成质量的同时,提供了更可靠的几何定义和更广阔的算法生态接口。