SVRecon

SVRecon: Sparse Voxel Rasterization for Surface Reconstruction

基本信息

项目 内容
论文标题 SVRecon: Sparse Voxel Rasterization for Surface Reconstruction
作者 Seunghun Oh, Jaesung Choe, Dongjae Lee, Daeun Lee, Seunghoon Jeong, Yu-Chiang Frank Wang, Jaesik Park
作者单位 首尔国立大学, NVIDIA
时间 2025
发表会议/期刊 CVPR 2025

方法概览

特点 文章性质
输入 多视角RGB图像及其对应的相机位姿
输出 表面网格 (Mesh) 或 符号距离函数 (SDF) 场
所属领域 多视角三维表面重建

1. 摘要精简

本文提出了 SVRecon,将符号距离函数 (SDF) 集成到稀疏体素栅格化框架中,用于实现快速、高保真的3D表面重建。针对稀疏体素独立参数化导致SDF在体素边界不连续、优化易陷入局部极小值的问题,本文提出了两个关键解决方案:1)利用视觉几何模型(PI3)进行鲁棒的几何初始化;2)设计了一种空间平滑损失,在父子体素和兄弟体素组之间强制执行一致性关系。实验表明,该方法在保持快速收敛(DTU 5分钟,Tanks-and-Temples 15分钟)的同时,实现了高质量的重建。

2. 引言与出发点

神经渲染的显式表示(如3D高斯)虽高效,但基于密度的原始稀疏体素栅格化(SVRaster)方法在捕捉尖锐表面和精确几何方面存在不足。SDF是一种更自然的表面表示,但其连续、平滑的特性与稀疏体素独立、离散的参数化方式存在根本矛盾。直接将SDF与SVRaster结合(存储SDF值而非密度值)会导致优化不稳定,产生高频噪声和碎片化表面。核心问题在于稀疏体素之间缺乏空间连续性约束。因此,本文的出发点是:在稀疏体素框架内,如何有效保持SDF的空间一致性,以实现稳定、高质量的表面重建。

3. 创新点

  1. 将SDF引入稀疏体素栅格化:首次将符号距离函数作为几何表示整合进SVRaster框架,为高精度表面重建提供了基础。
  2. 基于视觉几何模型的体素初始化:使用PI3模型从图像预测3D点云,并将其对齐到真实相机坐标系,为体素角点提供准确的初始SDF值,极大地减少了优化初期的模糊性,并为复杂场景(如室外)提供了关键的先验。
  3. 层级空间平滑损失:设计了一种新颖的体素关联机制和数据结构,能够在多分辨率稀疏体素上高效地计算并施加平滑约束。具体包括:
    • 父子体素平滑:在粗分辨率(如 L=9L=9)的“父级”体素上计算拉普拉斯平滑损失,并将其传播给细分的“子级”体素,保证了跨分辨率级别的连续性。
    • 局部Eikonal损失:在分辨率过高(L9L \ge 9)而无法进行全局邻居查找时,在单个体素中心施加局部Eikonal约束,稳定高分辨率优化。
  4. 渐进式锐度调度:动态调整NeuS中用于SDF转alpha的逻辑CDF的参数 ss,使得表面学习带宽 ll(s) 与当前最小体素尺寸 hLh_L 保持大致比例。训练初期使用较厚的带宽保证稳定,后期逐步提高锐度以恢复细节。

4. 网络架构与流程

SVRecon 基于 SVRaster 的稀疏体素表示框架进行扩展。

  1. 表示:每个体素 vv 在其8个角点存储SDF值 geovR2imes2imes2geo_v \in \mathbb{R}^{2 imes2 imes2},而非原始SVRaster中的密度值。
  2. 查询:体素内任意点 p\mathbf{p} 的SDF值通过三线性插值获得:

    f(p)=extinterp(geov,q)f(\mathbf{p}) = ext{interp}(geo_v, \mathbf{q})

    其中 q=(pvmin)/vl\mathbf{q} = (\mathbf{p} - v_{\min}) / v_l 是局部坐标。
  3. 渲染:采用 NeuS 的SDF-based lpha 混合公式将SDF转换为不透明度进行体渲染:

    lpha_i = \max\left( rac{\Phi_s(f(t_i)) - \Phi_s(f(t_{i+1}))}{\Phi_s(f(t_i))}, 0 ight)

    其中 Φs(f)=1/(1+esf)\Phi_s(f) = 1 / (1 + e^{-sf})

三维模型生成流程

  1. 初始化:使用PI3模型从输入图像生成点云,对齐到真实坐标系。在粗分辨率体素网格(如 L=6L=6)上,根据点到最近点云的距离初始化SDF值,并通过可见性判断确定符号。
  2. 优化与渐进细化
    a. 在粗分辨率下,使用渲染损失、Eikonal损失、平滑损失等进行优化。
    b. 定期(如每250次迭代)对可能包含表面的体素进行细分,增加几何细节。
    c. 定期(如每1000次迭代)剪枝掉远离表面(SDF值同号且超出学习带宽)的体素。
    d. 同时,根据当前最细体素尺寸,调度增加 ss 参数,使学习表面逐渐锐利。
    e. 当细分超过某个层级(如 L=9L=9),启用基于父级体素的平滑损失和局部Eikonal损失来保持连续性。
  3. 网格提取:优化结束后,从最终的SDF场通过Marching Cubes算法提取三角形网格。

5. 特征提取

本文方法没有使用传统的深度网络进行特征提取。其核心的可学习参数就是每个稀疏体素角点上存储的SDF值。几何和外观信息通过优化这些SDF值以及体素颜色属性,直接与输入的多视图图像相匹配。空间连续性通过上述的平滑损失函数来约束,而不是通过网络结构隐式获得。

6. 生成模型细节

  • 细节质量:通过渐进式细分和锐度调度,方法能够重建出具有精细几何细节的表面,如图4、5所示,其重建结果比基线方法更平滑、完整且噪声更少。
  • 是否带材质。本文方法主要专注于几何表面(Mesh) 的重建。虽然渲染过程中会优化体素的颜色(ci\mathbf{c}_i)以进行光度的监督,但最终输出是无纹理的几何网格。贴图材质不是本文的重点。

7. 基于与对比的工作

  • 基于的工作
    • SVRaster [25]:作为基础框架,提供了稀疏体素的表示、层级结构及可微栅格化流程。
    • NeuS [28]:提供了将SDF融入体渲染的 lpha 转换公式(公式2)和Eikonal损失。
    • PI3 [30]:作为视觉几何模型,用于提供高质量的初始几何先验。
  • 对比的工作
    • 隐式表示:VolSDF, NeuS, Neuralangelo, GeoNeuS, MonoSDF。
    • 显式高斯表示:2DGS, GOF, GS2Mesh, VCR-GauS, MonoGSDF, PGSR。
    • 显式稀疏体素表示:SVRaster(原始版本)。
  • 评价指标
    • DTU数据集:Chamfer Distance (CD) ,越低越好。
    • Tanks-and-Temples数据集:F1-Score (基于精度和召回率) ,越高越好。

8. 损失函数

总损失函数为多项加权和:

Lexttotal=Lextphoto+λnLextnormal+λeLexteik+λsLextsmooth+λmLextmask+λleLle+...L_{ ext{total}} = L_{ ext{photo}} + \lambda_n L_{ ext{normal}} + \lambda_e L_{ ext{eik}} + \lambda_s L_{ ext{smooth}} + \lambda_m L_{ ext{mask}} + \lambda_{le} L_{le} + ...

其中:

  1. LextphotoL_{ ext{photo}}:光度重建损失(RGB L2损失 + SSIM损失)。
  2. LextnormalL_{ ext{normal}}:法向先验损失。使用PI3预测的法向图与渲染法向图之间的余弦距离损失,并在训练后期退火至零。
  3. LexteikL_{ ext{eik}}:全局Eikonal损失。在密集网格的随机采样点上强制SDF梯度模长为1,计算方式为:

    Lexteik=(ablaxf(pi)21)2\mathcal{L}_{ ext{eik}} = \sum (\| abla_{\mathbf{x}} f(\mathbf{p}_i‘) \|_2 - 1)^2

  4. LextsmoothL_{ ext{smooth}}:二阶平滑(拉普拉斯)损失。鼓励SDF场平滑,计算近似拉普拉斯算子的L1范数。

    Lextsmooth=abla2f(pi)1\mathcal{L}_{ ext{smooth}} = \sum \| abla^2 f(\mathbf{p}_i’) \|_1

  5. LextmaskL_{ ext{mask}}:掩码损失(仅DTU使用),强制背景像素透射率为1。
  6. LleL_{le}:局部Eikonal损失。用于高分辨率(L9L \ge 9)时,在体素中心计算梯度并施加单位约束。

9. 训练与测试数据集

  • 训练集/测试集:均在相同的基准数据集上进行每场景优化(per-scene optimization),没有预训练的统一模型。
    • DTU数据集:用于室内物体重建。输入为多视角图像和真实相机位姿。输出为物体表面网格。
    • Tanks-and-Temples数据集:用于大规模室内外场景重建。输入为多视角图像和真实相机位姿。输出为场景表面网格。
  • 训练细节
    • DTU:训练8000次迭代,最高分辨率 2102^{10}
    • Tanks-and-Temples:训练10000次迭代,最高分辨率 2112^{11}
  • 输入:多视角RGB图像 + 对应相机位姿。
  • 输出:通过Marching Cubes从优化后的SDF场提取的三角网格。

10. 消融实验

论文通过多个变体(V1-V5)系统地验证了各个组件的必要性:

  1. 初始化的重要性 (V1 vs V2):没有PI3初始化(V1,仅用球体初始化)在复杂场景(如TnT)上完全失败。加入PI3初始化(V2)后效果显著提升,尤其在室外场景。
  2. 法向线索的作用 (V2 vs V3):在早期加入法向损失(V3)能为优化提供有用的几何指导,提升DTU的精度。
  3. 连续性损失的核心作用 (V3 vs V4, V5)
    • 仅使用子级连续性到 L=9L=9(V4)能大幅稳定表面。
    • 完整的层级连续性(父级+子级)并训练到最终分辨率(V5)效果最佳,在保持跨体素平滑的同时恢复了最精细的细节。
  4. 特殊场景处理
    • 反射物体:对于DTU中反射强烈的物体(如scan 110),延长法向损失的训练时间能有效约束表面方向,减少因高光过拟合产生的噪声。
    • 室外背景:对于Tanks-and-Temples,对外部背景区域(天空)进行初始化(如使用球形壳)至关重要,否则天空部分可能被错误重建为目标网格的延伸。