NeuS笔记

First Post:

Last Update:

Word Count:
1.4k

Read Time:
4 min

NeuS Note

渲染过程

场景表示

要重建的物体场景由两个函数表示:

  • :将空间位置 映射到物体的符号距离
  • :将空间位置 和视图方向 映射为颜色

这两个函数都通过 MLP 实现

物体的表面 由其 SDF(signed distance function) 的零等值面表示,即
Missing or unrecognized delimiter for \left \mathcal{S} = \left{ \mathbf{x} \in \mathbb{R}^3 \mid f(\mathbf{x}) = 0 \right}. \tag{1}

符号距离函数 SDF

具体来说,SDF是一个函数,通常表示为 ,其中 是空间的维度(例如二维或三维)。对于空间中的任意一点 ,SDF 表示从点 到最近表面的距离,并且:

  • 如果 ,则点 在物体内部;
  • 如果 ,则点 在物体表面上;
  • 如果 ,则点 在物体外部。

S-密度

为了将体渲染的方法用于训练 SDF 神经网络,引入概率密度函数 ,称为 S-密度场:

S-密度场是 Sigmoid 函数 的导数

原则上, 可以是任何以 0 为中心的单峰(即钟形)密度分布;这里我们选择逻辑密度分布是因为它的计算方便。

注意, 的标准差由 给出,这也是一个可训练参数,即随着网络训练的收敛, 接近于零。

随着 的增大, 的的峰值高度会增加,宽度会变窄,也就是说随着 s 的增大而变得更加尖锐和集中

fig1.png

NeuS 的主要思想是,在 S-密度场 的帮助下,使用体渲染通过仅以 2D 输入图像作为监督来训练 SDF 网络。在成功最小化基于这种监督的损失函数之后,期望网络编码的 SDF 的零等值面能够准确地表示重建的表面 ,其诱导的 S-密度 在表面附近呈现出显著的高值。

越大 -> 越趋近于0 -> 越趋近于物体表面

渲染

给定一个像素,我们将从该像素发出的射线表示为 ,其中 是相机的中心, 是射线的单位方向向量。我们通过以下方式沿射线累积颜色:

  • 是该像素的输出颜色
  • 是点 的权重函数
  • 是沿视图方向 的点 处的颜色。

对权重函数 的要求

从 2D 图像中学习精确的 SDF 表示的关键是建立输出颜色 和 SDF 之间的适当联系,即基于场景的 SDF 导出沿射线的适当权重函数

权重函数 要满足以下条件:

  1. 无偏性。给定一条相机射线 在表面交点 处取得局部最大值,即 ,也就是说,点 位于 SDF 的零等值面上()。

  2. 遮挡感知。给定任意两个深度值 ,满足 ,且 ,有 。也就是说,当两个点具有相同的 SDF 值(因此具有相同的 SDF 诱导的 S-密度值)时,更靠近视点的点应该对最终输出颜色有更大的贡献。

一个无偏的权重函数 保证了相机射线与 SDF 的零等值面的交点对像素颜色的贡献最大。

遮挡感知属性确保了当一条射线依次穿过多个表面时,渲染过程将正确地使用离相机最近的表面的颜色来计算输出颜色。

NeRF的朴素解

NeRF中的权重函数定义如下:

  • 是NeRF中所谓的体密度,这里将 设置为等于 S-密度值,即
  • 表示沿射线的累积透射率。

尽管由此产生的权重函数具有遮挡感知性,但它是有偏的,因为它在重建的表面中引入了固有的误差。如图所示,权重函数 在射线达到满足 的表面点 之前的某点达到局部最大值

fig2.png

NeuS对权重函数 的解

为了介绍 NeuS 的解决方案,首先介绍一种直接使用归一化 S-密度作为权重来构建无偏权重函数的简单方法:

这种权重函数的构造是无偏的,但不具备遮挡感知性。

例如,如果射线穿透两个表面,SDF 函数 将在射线上有两个零点,这导致权重函数 上有两个峰值,并且由此产生的权重函数将平均混合这两个表面的颜色,而不考虑遮挡。

为了确保权重函数 的遮挡感知属性,我们仍将遵循NeRF 的基本框架,以一种新的方式从 S-密度定义我们的权重函数

  • :不透明密度函数,是标准体积渲染中体积密度 的对应
  • :累积透射率, 区间的不透明度越大 -> 的积分越大 -> 越小,累积透明度越小

不透明密度函数 的推导

首先考虑一个简单的理想情况:表面是一个远离相机的平面,且只有一个交点

此时的符号距离函数 SDF 很明显是:

  • 焦点位置:
  • 是视图方向 和向外表面法线向量 之间的角度

在这种假设下公式 5 确实满足要求,由于 是一个常数,可以得出:

在体积渲染框架内,权重函数由 给出,为了推导 ,有:

  1. 由于 ,很容易验证
  2. 根据 函数的设定:,可知
  3. 由此可得:

朴素解中的偏差

权重函数定义为 ,其中不透明度 。因此,我们有

待定