(仅为个人记录,若有错误,请指正)
Nerf:因为缺乏曲面约束,导致从学习到的隐式表示中提取到高质量的曲面较为困难。
In NeuS, they represents a surface as the zero-level set of a signed distance function (SDF) and develops a new volume rendering method to train a neural SDF representation.(Neus将曲面表示为有符号距离函数sdf的0水平集(小于大于0均在表面外),并开发一种新的体积绘制方达来训练神经SDF表示。)
SDF:给定空间中一个点,输出为该点到某个曲面的最近距离(不准确)。当sdf(x)=0,则该点在物体表面;小于0,点在物体内部;大于0.点在物体外部。
现有的可微的表面渲染方法,如idr(只使用单个图像重建),只考虑每个光线与单个曲面交点。若产生空洞,则会误判表面。
而基于nerf的体积渲染方法:通过考虑一条射线的多个点,当近表面与输入图像不一致,体积渲染方法可以找到远表面。
Given a set of posed images {Ik} of a 3D object, the goal is to reconstruct the surface S of it .
The surface is represented by the zero-level set of a neural implicit SDF.
为了学习神经网络的权值,开发一种新的体积渲染方法训练SDF描述,可以从隐式SDF中渲染图像,最小化渲染图象和输入图像之间的差异。
The scene of an object to be reconstructed is represented by two functions:
为了应用体积绘制方法训练SDF网络,提出S-density,即概率密度函数。 S-density :probability density function:
s函数为令人熟知的logistic density distribution:
其函数标准差1/s。
在最小化损失函数后,网络编码的SDF零集可以代表一个精确重建的表面s,诱导s-density在表面附近有显著的高值。且标准差趋向于0,则网络的训练收敛。
To learn the parameters of the neural SDF and color field, we advise a volume rendering scheme to render images from the proposed SDF representation.
给定某像素,从该像素出发的射线为:
沿着光线进行积分积累颜色:
以上为NeuS的渲染公式,文章中其他内容为公式推理步骤。
其权重函数作用为从二维图像中学习SDF的关键为输出颜色和SDF之间建立适当的连接,即基于场景的SDF 在光线上推导出适当的权重。
公式推导过程中,对权重有两个要求:
#Unbiased (无偏),若给定光线p,则w在表面交点处获得局部最大值。
#Occlusion-aware(遮挡感知),若两点具有相同的SDF值时,更靠近视点的点对最终的输出颜色输出权重更大。
可由以下两个图表示:
(此处,有一个定理设一个光滑的表面S定义的SDF f(x)=0和射线Ray,则与物体表面的交点为P(t*), 则存在一个区间 ,使得SDF函数递减。当t = t*时,SDF最小,w最大值。)
为获得点对应的不透明度和权重函数,对于一条射线采样n个点,计算其颜色:
离散累计透过率:
离散不透明度值:
NeuS与Nerf一样采用分层采样策略。
监督信息:1)最小化图像像素渲染颜色和GT像素颜色;2)masks information
随机选取真实空间中的一些点和射线:
Ck:像素颜色,Mk:可选mask值{0,1},可用可不用,但用了效果好,应该是提供了形状信息?
该loss为训练sdf网络。