NeuS: Learning Neural Implicit Surfaces by Volume Rendering

基本信息

项目 内容
论文标题 NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction
作者 Peng Wang, Lingjie Liu, Yuan Liu, Christian Theobalt, Taku Komura, Wenping Wang
作者单位 香港大学, 马克斯·普朗克信息学研究所, 德州农工大学
时间 2021年
发表会议/期刊 NeurIPS 2021

方法概览

特点 文章性质
输入 多视角RGB图像及其对应的相机位姿
输出 1. 场景的带符号距离函数 (SDF); 2. 通过提取零水平集得到的表面网格 (Mesh)
所属领域 多视角三维重建, 神经隐式表示, 神经渲染

1. 核心表示:神经隐式SDF (Neural Implicit SDF)

这篇文章提出了一种名为 NeuS 的新方法,其核心是对三维场景的一种新表示:由神经网络编码的带符号距离函数 (SDF)

  • 对比的表示方法
    • 表面渲染方法 (如 IDR, DVR):也使用SDF或Occupancy表示表面,但采用表面渲染(每条光线只考虑与表面的单个交点)。与之相比,NeuS的优势在于引入了体绘制 (Volume Rendering),使得梯度可以沿整条射线反向传播,从而能处理严重的自遮挡、深度突变和薄结构,且无需前景掩码 (mask) 作为监督;缺点可能是渲染计算量相对更大。
    • 体绘制方法 (如 NeRF):使用体积密度场 (Density Field) 表示场景。与之相比,NeuS的优势在于其SDF表示能直接、准确地定义表面(零水平集),从中提取的网格质量远高于从密度场提取的结果;缺点是SDF的优化需要更精巧的设计(如本文提出的无偏权重函数)。
    • 同期工作 UNISURF:同样用体绘制学习隐式表面,但使用占位场 (Occupancy Field)。NeuS与之相比,优势在于SDF是真正的有符号距离,其零水平集是表面的自然且精确的表示,实验表明重建精度更高。
  • 主要特点
    1. 隐式连续表示:表面由神经网络的零水平集隐式定义,是连续的,可以达到任意分辨率。
    2. 体绘制训练:通过提出的新颖体绘制方案来优化SDF网络,继承了NeRF优化鲁棒、能处理复杂光路的优点。
    3. 无偏的表面约束:关键创新在于设计了一个新的权重函数 w(t)w(t),确保在SDF的一阶近似下,渲染时对像素颜色贡献最大的点恰好位于表面(SDF零值处),从而得到精确的几何。

2. 摘要精简讲解

现有神经表面重建方法(如IDR)需要掩码监督,且因表面渲染的局部性而难以处理复杂结构。神经辐射场(NeRF)虽然优化鲁棒,但其密度场难以提取高质量表面。NeuS提出用带符号距离函数 (SDF) 表示表面,并开发了一种新的体绘制方法来训练该SDF表示。研究发现,直接将标准体绘制应用于SDF会引入几何偏差。因此,NeuS提出了一个在一阶近似下无偏的权重函数公式,使得即使没有掩码监督,也能实现高精度的表面重建。在DTU和BlendedMVS数据集上的实验表明,NeuS在复杂结构和自遮挡场景的重建质量上超过了现有方法。

3. 引言与出发点

出发点是希望融合 SDF表示的几何准确性体绘制训练的鲁棒性

  • 以IDR为代表的表面渲染方法:渲染时只考虑光线与表面的单点交点,梯度信号过于局部。当图像中存在深度突变(如孔洞、薄结构)时,优化容易陷入错误的局部极小值,且通常依赖前景掩码。
  • 以NeRF为代表的体绘制方法:沿光线采样多点并进行合成,梯度信号更丰富,能优雅地处理遮挡和深度变化。但其学习的密度场缺乏明确的表面定义,提取的等值面通常噪声大、质量低。
  • NeuS的核心思路是:用SDF精确表示几何表面,但借鉴并改进体绘制训练这个SDF网络,从而兼得二者之利。

4. 相关工作对比

  • 传统多视角重建:分为基于点/表面的方法(如COLMAP)和体绘制方法。前者依赖特征匹配,在弱纹理区域效果差;后者受限于体素分辨率。
  • 神经隐式表示:广泛应用于形状表示、新视角合成和多视角重建。
  • 基于表面渲染的神经重建:如IDR, DVR。它们需要掩码,且对深度突变场景重建困难。
  • 基于体绘制的神经渲染:如NeRF及其变体。擅长新视角合成,但表面提取质量不佳。
  • 同期工作 UNISURF:同样旨在用体绘制学习隐式表面,但使用占位场 (Occupancy) 而非SDF。NeuS的SDF表示能产生更准确的表面。

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

  • 表示:场景由两个MLP表示:
    1. SDF网络 f:R3ightarrowRf: \mathbb{R}^3 ightarrow \mathbb{R}:输入3D点坐标 x\mathbf{x},输出该点到表面的带符号距离。
    2. 颜色网络 c:R3imesS2ightarrowR3c: \mathbb{R}^3 imes \mathbb{S}^2 ightarrow \mathbb{R}^3:输入3D点坐标 x\mathbf{x} 和观察方向 v\mathbf{v},输出该点的颜色。
      表面 S\mathcal{S} 定义为SDF的零水平集:S={xR3f(x)=0}\mathcal{S} = \{\mathbf{x} \in \mathbb{R}^3 | f(\mathbf{x}) = 0\}
  • 渲染与权重函数:这是NeuS的核心创新。为了用体绘制训练SDF,需要将SDF转换为沿射线的权重分布 w(t)w(t)
    1. S-density:引入逻辑斯谛密度分布 ϕs(x)=sesx/(1+esx)2\phi_s(x) = se^{-sx}/(1+e^{-sx})^2,其中 x=f(p(t))x=f(\mathbf{p}(t))ϕs\phi_s 是一个以SDF零值为中心、标准差为 1/s1/s(可学习)的单峰分布。
    2. 权重函数要求w(t)w(t) 需要满足 (a) 无偏性:在表面交点处取局部最大值;(b) 遮挡感知:更近的点权重更大。
    3. 朴素方案:直接设体积密度 σ(t)=ϕs(f(p(t)))\sigma(t) = \phi_s(f(\mathbf{p}(t))),按NeRF公式 w(t)=T(t)σ(t)w(t)=T(t)\sigma(t) 计算权重。该方案有遮挡感知,但有偏,峰值会偏离表面。
    4. NeuS方案:通过数学推导,定义了一个新的不透明密度 (opaque density) ho(t) ho(t)

      ho(t) = \max\left( rac{- rac{d\Phi_s}{dt}(f(\mathbf{p}(t)))}{\Phi_s(f(\mathbf{p}(t)))}, 0 ight)

      其中 Φs(x)=(1+esx)1\Phi_s(x) = (1+e^{-sx})^{-1} 是Sigmoid函数(即 ϕs\phi_s 的CDF)。然后通过标准体绘制公式计算权重:w(t) = T(t) ho(t), \quad T(t)=xp(-\int_0^t ho(u)du)
      定理1 证明了该方案得到的 w(t)w(t) 在SDF的一阶近似下是无偏的。
  • 离散渲染:沿射线采样 nn 个点 {ti}\{t_i\},像素颜色通过离散alpha合成计算:

    \hat{C} = \sum_{i=1}^n T_i lpha_i c_i

    其中,T_i = \prod_{j=1}^{i-1}(1-lpha_j),而离散不透明度 lpha_i 由推导出的闭合形式给出:

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

  • 几何信息获取:训练收敛后,SDF网络 f(x)f(\mathbf{x}) 即代表了场景的几何。表面网格可以通过对SDF的零水平集进行移动立方体 (Marching Cubes) 算法直接提取,过程直接且准确。

6. 训练过程与损失函数

这种表示需要训练。给定多视角图像,通过优化SDF网络和颜色网络的参数来重建场景。

  • 损失函数 L\mathcal{L}

    \mathcal{L} = \mathcal{L}_{color} + \lambda \mathcal{L}_{reg} + eta \mathcal{L}_{mask}

    • Lcolor\mathcal{L}_{color}:渲染颜色 C^k\hat{C}_k 与真实颜色 CkC_k 之间的L1损失
    • Lreg\mathcal{L}_{reg}Eikonal正则项,强制SDF的梯度范数接近1: rac{1}{nm}\sum_{k,i}(|| abla f(\hat{\mathbf{p}}_{k,i})||_2 - 1)^2。这对学习到正确的SDF至关重要。
    • Lmask\mathcal{L}_{mask}可选的掩码损失,使用二元交叉熵,其中预测的掩码值为沿射线的权重和 \hat{O}_k = \sum_i T_{k,i}lpha_{k,i}
  • 分层采样:采用与NeRF类似的分层采样策略,先均匀采样进行粗估计,再根据S-density ϕs(f(x))\phi_s(f(\mathbf{x})) 进行重要性采样。

7. 实验数据集与结果

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

  • DTU数据集:在有掩码无掩码两种设置下进行评估。定量指标(倒角距离)表明,NeuS在两种设置下的平均重建误差均低于IDR、NeRF、COLMAP和UNISURF。
  • BlendedMVS数据集:定性比较显示,NeuS能成功重建具有复杂遮挡和薄结构的场景,而IDR在深度突变处失败,NeRF提取的表面噪声大。
  • 薄结构重建:在自定义的薄物体数据集上,NeuS能够准确重建边缘和薄结构。

8. 消融实验

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

  • 权重函数构造:比较了(a)朴素方案(有偏)、(b)直接归一化方案(无遮挡感知)、©NeuS完整方案。结果表明,完整方案在定量(倒角距离)和定性上都是最好的。
  • Eikonal正则化与几何初始化:实验表明,虽然不使用这两者也能得到看似合理的网格,但网络预测的并非真正的SDF(用预测SDF值与真值的MAE衡量)。加入Eikonal正则化和几何初始化对于学习到准确的SDF表示至关重要。

9. 主要创新点总结

  1. SDF与体绘制的首次有效结合:首次提出并实现了一种用体绘制来优化神经隐式SDF的框架,成功地将SDF的几何精确性与体绘制的优化鲁棒性结合起来。
  2. 无偏的体绘制权重函数:深刻分析了标准体绘制应用于SDF时会引入几何偏差的问题,并通过理论推导提出了一个新的不透明密度函数 ho(t) ho(t) 及相应的权重计算方案,保证了在一阶近似下表面点的权重最大,这是实现高精度表面重建的关键。
  3. 无需掩码监督的鲁棒重建:得益于体绘制的优化特性,NeuS能够处理复杂遮挡、深度突变和薄结构等挑战性场景,并且不需要前景物体掩码作为强监督,拓宽了方法的适用性。
  4. 统一的表面提取:学习到的SDF其零水平集自然就是表面,可通过标准算法(如移动立方体)直接提取高质量网格,避免了从密度场提取表面的困难和噪声。