关于彩塑的三维表面重建
三种神经表面方法:
- UniSurf
- VolSDF
- NeuS
不同点:
- 在射线上的点是如何采样的
- SDF在体渲染阶段是如何应用的
现有的实验:
三种基础网络:
-
UniSurf:
UniSurf首先找到表面和表面周围的样本点的交集。采样范围从大范围开始,在训练期间逐渐缩小到小范围。当没有发现射线表面时,UniSurf会根据射线的近距离和远值均匀采样。要训练UniSurf模型。 -
VolSDF:
VolSDF使用错误绑定采样器[详见论文],将SDF值转换为密度值,然后像NeRF一样使用常规卷渲染。要训练VolSDF模型,请运行以下命令: -
NeuS:
NeuS使用多个步骤的分层采样,并根据乙状函数将SDF值转换为α值[详见论文] -
MonoSDF:
MonoSDF建立在VolSDF的基础上,并建议使用单眼深度和正常线索作为额外的监督。这在稀疏的环境中(小视图)和室内场景中特别有帮助。 -
Mono-UniSurf:
与MonoSDF类似,Mono-UniSurf使用单眼深度和正常线索作为对UniSurf的额外监督。要训练Mono-UniSurf模型 -
Mono-Neus:
与MonoSDF类似,Mono-NeuS使用单眼深度和正常线索作为对NeuS的额外监督。要训练Mono-NeuS模型 -
Geo-NeuS
与MonoSDF类似,Mono-UniSurf使用单眼深度和正常线索作为对UniSurf的额外监督。要训练Mono-UniSurf模型 -
Geo-UniSurf
Geo-NeuS的想法也可以应用于UniSurf,我们称之为Geo-UniSurf -
Geo-VolSDF
同样,我们可以将Geo-NeuS的想法应用于VolSDF,我们称之为Geo-VolSDF。要在DTU数据集上训练Geo-VolSDF模型 -
NeuS-acc
NeuS-acc维护一个占用网格,以便在沿光线采样点时跳过空空间。这大大减少了训练期间所需的样本数量,从而加快了培训速度。在DTU数据集上训练NeuS-acc模型 -
nerfS facto
NeuS-facto的灵感来自nerfstudio中的nerfacto,其中mip-NeRF360的提案网络用于沿射线采样点。我们将这个想法应用于NeuS,以加快采样过程,并减少每条射线的样本数量。在DTU数据集上训练NeuS-facto模型
表示:
该表示存储几何和外观。几何映射以3D位置作为输入,并输出SDF值、法向量和几何feautre向量。颜色映射(作为MLP实现)将3D位置和视图方向与来自几何映射的法向量和几何特征矢量一起作为输入,并输出RGB颜色矢量。
我们支持几何映射的三种表示形式:MLP、多分辨率。iNGP的功能网格,以及ConvONet或EG3D的三平面。我们现在更详细地解释这些陈述:
-
MLPs
3D位置使用NeRF中的位置编码进行编码,并传递给多层感知器(MLP)网络,以预测SDF值、法线和几何特征。要使用8层和512个隐藏维度的MLP训练VolSDF -
多分辨率特征网格
3D位置首先映射到多分辨率特征网格,使用三线性插值来恢复相应的特征向量。然后,该特征向量用作MLP的输入,以预测SDF、法向量和几何特征。要训练具有2层和256个隐藏维度的多分辨率功能网格表示的VolSDF模型 -
三平面
3D位置首先映射到三个正交平面,使用双线性插值来复复每个平面的特征向量,该特征向量作为MLP的输入串联。在VolSDF上使用三平面表示 -
几何优化
正确的初始化对于获得良好的结果非常重要。默认情况下,SDF Studio将SDF初始化为球体。例如,对于DTU数据集,您可以使用以下命令初始化网络:
请注意,对于室内场景,相机在球体内,因此我们将内外设置为True,以便球体内的点将具有正SDF值,球体外的点将具有负SDF值。 -
颜色网络
颜色网络是一个MLP,类似于几何MLP。它可以使用以下命令进行配置:
监督
-
颜色损失
我们使用RGB损耗的L1损耗来监督每条光线的体积渲染颜色。这是所有型号的默认值 -
掩膜损失
(可选)掩码丢失可能有助于将前景对象与背景分开。然而,它需要额外的遮罩作为输入。例如,在NeuralReconW中,分割网络可用于预测天空区域,天空分割可以用作掩码丢失的标签。如果数据集中提供了掩码,则默认情况下使用掩码丢失。您可以通过以下方式更改口罩损失的重量: -
Eikonal损失
Eikonal损失用于所有基于SDF的方法,以规范SDF字段,以正确表示SDF。它不用于使用占用字段的UniSurf。您可以使用以下命令更改eikonal损失的重量: -
光滑度损失
光滑度损失鼓励表面光滑。这种损失用于UniSurf,并鼓励表面点的法线和在其邻域中采样的点的法线相似。平滑度损失的重量可以通过以下命令更改: -
单眼深度一致性损失
MonoSDF中提出了单眼深度一致性损失,并使用预训练的单目深度网络预测的深度作为每张图像的额外约束。这在稀疏的环境中(小视图)和室内场景中特别有帮助。单眼深度一致性损失的重量可以通过以下命令更改: -
单眼正态一致性损失
MonoSDF提出了单眼正态一致性损失,并使用预训练单目正常网络预测的法线作为训练期间的额外约束。这在稀疏的环境中(小视图)和室内场景中特别有帮助。单眼正常一致性损失的重量可以通过以下命令更改: -
多视图光度一致性
Geo-NeuS中建议鼓励多视图光度一致性。对于每条射线,我们寻找与曲面的交集,并使用相应的同源学将补丁从源视图扭曲到目标视图,并使用归一化交叉相关(NCC)比较这些补丁。多视图光度一致性损失的权重可以通过以下命令更改: -
高级深度损失
RGBD数据可用于高质量的表面重建。神经RGB-D表面重建提出了两种不同的损耗函数:自由空间损耗和sdf损耗。自由空间损失迫使网络预测相机原点和观测表面截断区域之间的大SDF值。SDF损失迫使网络预测从深度观测转换的近似SDF值。我们进一步支持L1损失,这加强了体积渲染深度和传感器深度之间的一致性。可以通过以下命令更改传感器深度损失的截断值和权重: