Redian新闻
>
基于体渲染(NeRF)的多视角三维重建系列工作总结

基于体渲染(NeRF)的多视角三维重建系列工作总结

公众号新闻

©作者 | 孙雨欣
单位 | 佐治亚理工
研究方向 | 机器学习


最近一段时间在做一个基于 NeuS 的三维重建项目,抽空阅读了近两年在各大顶会上关于基于体渲染的多视角三维重建论文,梳理了一下思路给做个总结,也希望能借此机会和大家交流,如有不对的地方欢迎指正。

随着 ECCV 2020 上 NeRF [1] 的火爆,NeurIPS 2021 上出现的两篇工作 NeuS [2] 和 VolSDF [3] 引入了 SDF(Signed Distance Function)作为三维表面的隐式表示并提出了基于 SDF 的体渲染方法,使得基于体渲染的多视角三维重建成为可能。

相比于 NeRF 只关注新视角生成的图片质量,三维重建更强调几何表面的准确性。目前的 cv 和 cg 界共识是更好的 geometry 才会有更好的 rendering quality,所以我认为 novel view synthesis 和 3D reconstruction 的发展是紧密相连的。关于 NeRF,NeuS 和 VolSDF 可以读下面这篇文章,讲解的很棒,在这里不再过多赘述:

https://zhuanlan.zhihu.com/p/614008188

时间来到 2023 年,各大顶会上基于体渲染的三维重建论文数量越来越多,这种端到端的方法逐渐成为多视角三维重建的主流。后续的论文大多使用 NeuS 作为 baseline 进行改进而非 VolSDF,个人猜测原因可能是,NeuS 的推导是以结果为导向,直接构建 SDF 和权重 的关系,实现起来更为简洁直观,采样过程也是和 NeRF 一样采用 Hierarchical Sampling。

VolSDF 也是一篇非常不错的文章,理论推导更加严谨,学习 geometry 也更快。但是其采样过程比较复杂,在此基础上构建新的方法难度比 NeuS 大,因此没有成为主流 baseline。

下面我将按时间顺序逐一梳理这些论文。



NeuralWarp, CVPR 2022 [4]


这篇文章主要借鉴了传统的 MVS 方法,引入了 Warping-based loss。文章声明基于体渲染的三维重建效果不理想的原因是 MLP 很难学习到高频的纹理特征,这也是众所周知的,MLP 中存在 sprectal bias 因此更倾向于学习低频信号,不熟悉的同学可以参考 FFN [5]

我的理解是这样收敛的时候 SDF network 和 radiance network 都是不准确的,如果想要得到更好的 SDF network 需要在一个正确的 radiance field 条件下进行优化。那么如何得到正确的 radiance field 呢,作者就想到了 MVS 方法,可以从别的视角的图片中获得颜色值。作者提出物体表面不是完全的朗伯表面(漫反射,各个视角的颜色值相同),因此不能去直接使用单个像素之间的差值,作者由此提出了使用图像 patch 的 SSIM 差值更为鲁棒。方法的流程如下如图所示。

▲ Approach overview. We combine volumetric rendering with a new patch warping technique. Both approaches aggregate color from points sampled along the camera ray: radiance predicted by the radiance network for volumetric rendering and patch extracted from source views for our patch warping.


该方法是基于 VolSDF 的,我们先复习一下 VolSDF 的体渲染公式:
其中 是渲染的像素, 是 occupany value, 是 radiance value。不同于 VolSDF 通过 radiance network 得到 radiance value,NeuralWarp 将该点的三维坐标投影到另一张 source image上, 获取 source image 上的像素值作为 radiance value。此外该方法一次渲染一个整个 image patch ,patch size 和 colmap 一样选择 11x11。

其中 就是 MVS 里的 homography:

最后 Warping-based loss 是以下形式:

是各 source image 的 SSIM 的差取平均,其中 表示 SSIM 的 L1 差, 是 valid mask。因为存在 occlusion 的情况,并不是所有的点都可以投影到 source image 上,mask 的详细推导请参考原文。

想要有理想的 Warping-based loss 需要有近似合理的 geometry,所以在训练过程的一开始并没有添加 Warping-based loss,而是用标准的 VolSDF 训练过程先训练 100k iterations,再 finetune geometry network 50k iterations。

Warping-based loss 确实很大程度上提升了重建效果,但渲染过程计算开销巨大,计算 valid mask 非常耗时,储存 image patch 很占用内存,此外数据集还需要进行预处理,选取视角重合度低的图片作为 source image,这可能是 Warping-based loss 后续没有广泛应用的原因。



RegSDF, CVPR 2022 [6]


这篇文章虽然是基于表面渲染 IDR [7] 方法的,但我还是整理在这里了,因为它提出了几种比较重要的  regularizations。首先是使用 MVS 获得额外的点云数据,然后通过 PCA 得到他们的法向,可以获得几何约束:
这种约束是十分有效且广泛使用的,在后续的几篇文章中也会经常看到。第二项约束是 SDF 的二阶导数项约束。在 surface reconstruction 中为了让 implicit function 是一个 signed distance function,我们要约束 implicit function 使得导数处处为 1,常常使用 IGR 中引入的 Eikonal Loss:
但是只约束一阶导数是不够的,因为我们只能在离散的点上加约束,对于这样的锯齿型状 /\/\/\/\ 也是满足条件的,但我们并不希望 implicit function 发生突变。所以引入二阶导数,即 Hessian 也是很有必要的,可以让 surface 更加平滑:
其实约束整个 Hessian 矩阵是没有必要的,DiGS [8] 表明只需要对 Divergence 增加约束即可,即 Hessian 矩阵对角线上的元素。第三项约束是 minimal surface loss。这项约束在 active contour, active surface 方法中非常常见,如ChanVese,Mumfold-Shah,Stereoscopic Segmentation 等模型,可以去除 noise,让轮廓更加平滑,了解 variational method 的同学应该对这项约束非常熟悉。物体内部的体积可以表示为:
其中 即为著名的 Heaviside function,当 SDF 的值小于 0 的时候它的值为 1,当 SDF 的值大于 0 的时候它的值为 0。求导即可获得物体表面的面积,
其中 Dirac function 即为 Heaviside function 的导数。然而这项约束在基于体渲染的方法中很少使用,因为基于体渲染的方法结果往往是 over-smooth 的,我们想要获得更多的细节。第二项第三项约束同时使用可以让 implicit function 有一个很好的形状,效果如下图所示:

▲ Effects of the regularization. The Hessian loss tendsto preserve normals, and the minimal surface constraint closes thesurface as planes. We can achieve a natural interpolation by thecombination of these two regularizations.




NeuS2, ICCV 2023 [9]


这篇文章主要是想要加速 NeuS 的训练过程,因为 NeuS 的训练也挺慢的,训练 DTU 中的一个 shape 在 3090 需要 8 个小时。于是作者想要使用 Instant-NGP [10] 中提出的 multi-resolution hash encodings 来替代 MLP 加速训练。

然而并不是简简单单的替换完就行了,这是因为 SDF 和 density field 的区别。我们在用 NeRF 进行体渲染的时候并不需要求 density 在空间上的梯度,但是在用 SDF 来表示三维表面时我们需要 SDF 在空间上的梯度,计算 Eikonal Loss。

在使用 MLP 的时候用 pytorch 自带的求导很容易就可以得到 analytic gradient,然而使用 hash encodings 不行,因为其在空间上是不连续的。作者由此提出了一个有效计算 SDFNetwork 空间梯度的方法。我觉得这也是这篇文章最大的贡献,使得将 multi-resolution hash encodings 应用到基于 SDF 的体渲染过程成为可能。

▲ NeuS2的流程如图所示,相比于 NeRF 增加了对 SDFNetwork 的求空间梯度


作者还提出了渐进式的学习策略,在学习开始的时候只是用低分辨率的 grids,随着学习的进行逐渐加入更高分辨率的 grids,这样模型会先学习低频信息,之后在低频信息的基础上继续学习高频信息。

个人猜测原因是 MLP 中存在 sprectal bias,所以 MLP 会更容易地学习到低频信息,也就会先到学习低频信息再学习高频信息。当替换成为 hash grid 之后 sprectal bias 减弱了,如果同时输入低频信息和高频信息的话模型很有可能同时学习两种信息,亦或是先学习高频信息,这样就很容易陷入 local minima。

coarse to fine 的学习策略在后续很多工作中都有用到,其实二阶项约束也是起到相似的作用。然而该文章代码至今为止都没有公开,不过没关系,现在 sdfstudio 中已经集成了 Neus-angelo,效果比 NeuS2 更好。



Neural 3D Reconstruction in the Wild, SIGGRAPH 2022 [11]


这篇文章也是工程性很强的文章,follow 的 NeRF in the wild,主要关注建筑物的三维重建。核心贡献就是利用 SFM 得到的 sparse points,提出了新的加速采样策略。作者将 sparse points 和 surface 贮存进 octree 中,采样时只在 sparse points 所在的 voxel 中以及 surface 表面采样,大大增加了采样的有效性。训练的初期仅使用 voxel sampling,待有了一个粗略的 surface 之后再开启surface sampling。流程如下图所示。

▲Comparison between sphere-based sampling and our proposed sampling strategy. Sphere-based sampling (a), used in NeuS, generates samples scattered throughout the unit sphere and spanning the whole scene, with the result that most samples lie in empty regions and are hence unnecessary. We propose voxel-guided sampling (b) to avoid unnecessary samples by sampling only within a sparse voxel volume around surfaces estimated from SfM point clouds (only a subset of voxels are shown for clarity). To further increase the sampling density around surfaces, we additionally propose a surface-guided sampling strategy (c), where we store SDF values from previous training iterations in the sparse voxels, and generate samples within a smaller range centered around the estimated surface positions. Note that each successive region of the volume considered by each sampling strategy from (a) to (b) to (c) is progressively smaller as suggested by the 2D blue and red bounding boxes.


nerfw 中使用 transient nerf 来处理 transient object,作者声明这样做效果并不好,于是简单粗暴的用 deeplabv3 生成 mask 将这些物体过滤掉。作者还使用了 sparse points 来约束 SDF,不过采用的的是 depth loss,在文章里没有提到不过在代码里使用了。更好的方法应该是直接用 sparse points 来约束 zero level set,该项约束的讲解详见下面 GeoNeuS 的 ,这是一项十分有效且广泛应用的约束。

然而该方法过于依赖 sparse points 的准确性。对于 HeritageRecon 数据集来说,对每个建筑都拍摄了几千张照片,并且大都从地面角度拍摄,用 colmap 可以得到相对准确的点云。然而当照片数减少,拍摄高度范围增大后 sparse points 的准确性就会降低,该方法效果就不一定那么好了。



MonoSDF, NeurIPS 2022 [12]


这篇文章的核心思想就是添加几何约束, 贡献比较 incremental,所以这篇文章接收的很有争议。基于体渲染的的方法虽然能很好的将渲染结果拟合到输入图像,但是缺乏几何上的约束,因此三维重建的结果不理想。

因此作者利用 monocular estimators 提供的深度和法向信息,添加 Depth Consistency Loss 和 Normal Consistency Loss. Depth Consistency Loss 就是比较 rendered depth 和通过预训练网络得到的 depth 求差,这么做的缺陷在下面呢的 Geo-NeuS 中提到了。值得一提的是 Normal Consistency Loss 是两种向量约束的和:
其中 是网络输出的法向量, 是预先得到的法向量。我也是第一次看见同时引入两种法向约束,之前的文章一般都只使用其中一种,或许有读者知道这样效果更好的原因吗?

引入几何约束确实显著的提升了重建效果,但严重依赖预训练获得的 depth map 和 normal map 质量,因此在后续工作中并没有被过多的使用。



Geo-Neus, NeurIPS 2022 [13]


6.1 体渲染过程中的误差


这篇文章也是提出了增加几何的约束,但比 MonoSDF 设计的更为巧妙。文章先是证明了基于 SDF 的体渲染过程存在误差,体渲染得到的颜色值和 surface 表面点的 radiance 并不是完全一样的,文章通过一系列推导得到差值如下:
其中 是 surface 和 ray 的相交点即 该点的 radiance 值, 是物体的表面点, 是预测的物体表面点的颜色也即提渲染的结果, 是采样点中离 最近的点。误差的来源有两部分,第一部分是采样误差 ,这是由于离散化采样造成的,并不能取到 SDF 值恰好等于零的点。

第二部分是体渲染误差 ,在体渲染过程中并不是只有表面上的点对渲染的颜色值有贡献,ray 上其它的采样点也有贡献。这项误差在训练的初始阶段比较大,后面随着 variance 的减小逐渐降低。渲染误差的存在会导致 geomtry 和 color 间存在 gap,所以文章提出应该引入对 geomtry 的直接约束。这样故事的讲法比 MonoSDF 要巧妙许多,文章在理论上也有一定的贡献,更符合 NeurIPS 这样的理论会议的要求。

6.2 两项几何约束


第一项约束是通过 SFM 得到的 sparse points, 这些离散的点理应都在物体表面,所以约束这些点的 SDF 的值为 0 就可以:
相比于 MonoSDF 通过 monocular estimators 得到 depth map 和 normal map,优点在于 sparse points不需要额外的计算过程。多视角三维重建往往需要通过 SFM 计算得到相机参数,同时也会得到 sparse points。同时在纹理比较复杂的地方 feature 也会更强,sparse points 的密度也会更高,而往往纹理复杂的地方几何也更加复杂,所以 sparse points 更能帮助重建复杂的几何。因此,该项约束在后续的工作中广泛应用。

第二项约束是 Multi-view photometric consistency constraints,思路和 NeuralWarp 的 Warping-based loss 很像,但是计算过程要简单许多。该项约束的思想就是,surface 表面同一片区域投影到不同视角图片上的颜色值应该是相近的。给定一张 reference image,先计算它和各 source image 的 normalization cross correlation:
再取 NCC 最高的 4 张 source image 计算 loss:
实验效果非常惊艳,在 DTU 数据集上 Chamfer Distance 达到了 0.508,这是我目前看到的在 DTU 数据集上结果最好的。Ablation study 表明 photometic loss 的贡献更大,但是在后续的工作中还是 SDF loss 使用的更广泛。个人猜测原因还是计算开销太大,并且野外数据集不像 DTU 数据集采集的视角那么密集,因此效果可能会不好。



HF-NeuS, NeurIPS 2022 [14]


7.1 基于SDF和transparency转换关系的体渲染公式


这是一篇很偏理论的文章,相较于其它文章添加各种 hack,这篇文章通过理论推导,得到了一种新的基于 SDF 的体渲染方法。和 VolSDF 以及 NeuS 的区别在于,VolSDF 构建了 SDF 和 density 的转换关系 ,NeuS 构建 SDF 和 weight 的转换关系 而这篇文章则选择构建 SDF 和 transparency 的转换关系


从 NeuS 的推导有一个无偏性假设(biased),即 weight 的峰值应该落在物体表面。而作者又发现 transparency 的导数 即为 weight 的负值,所以 transparency 的倒数 的谷值也应该落在物体表面。基于该假设作者通过推导得到了 SDF 和 transparency 的转换关系

其中参数 可以控制 sigmoid 方程的坡度。求导得到 density 的表达式

进而求得离散化的颜色权重


优势在于相比于 VolSDF,由于透明度函数是显式的,该方法可以使用与逆 CDF 计算得出的逆分布采样来达到近似的采样效果。因此,不需要像 VolSDF 中使用那样复杂的采样过程。与 NeuS 相比,该方法得到了一个更简单的密度计算公式,作者声称减少了 NeuS 中除法引起的数值问题,但是我并没有在其它地方看到过 NeuS 存在数值问题,有同学了解嘛?

此外,该方法不需要使用 NeuS 中所使用的两组不同的采样点,即截面点和中点(熟悉 NeuS 代码的同学应该知道),这使得更容易满足无偏加权函数。由于不需要为这两组不同的点集分别计算 SDF 和 radiance,与 NeuS 相比,颜色和几何一致性更好。

然而作者在论文中并没有提供单纯使用这种体渲染方法的在整个数据集上的数值结果,在 reviewer 的要求下仅在 supplementary 中提供了一张图片结果。我个人猜测是因为实验结果不好才不放上,因为加了后面两种 tricks 实验结果才比 NeuS 要好一点。

7.2 两组SDF


作者还提出了用两组 SDF 来表示物体表面,作者认为同时学到高频信息和低频信息是很困难的,因此作者提出在 base implicit function 的基础上添加 implicit displacement function,使得更容易学习到高频信息。然而使用两组 SDF 需要更大的内存,训练也会更慢,所以在之后的工作中并没有被广泛使用。

7.3 空间自适应  


作者还提出用梯度的 norm 去加权 (上面 Sigmoid 方程的参数),以达到空间自适应。当沿着射线方向的梯度的 norm 大于 1 时增加 ,因为当梯度的 norm 大于 1 时,implicit function 的变化更加剧烈,这意味着这片区域没有被学习的很好需要改进。增加 会让更多的采样点集中到表面附近,所以会让学习更关注这片区域。由此作者提出了 adaptivate transparency function:
这个理论看上去挺 promising 的,但缺少 ablation study,也不知道效果如何,后续工作也没有采用。



Towards Unbiased Volume Rendering of Neural Implicit Surfaces with Geometry Priors, CVPR 2023 [15]


8.1 无偏性的体渲染公式


在 CVPR 2023 上,关于 NeRF 的论文数量暴涨,大多数论文都是工程性质的,这是一篇从理论上对基于 SDF 体渲染过程进行分析和改进。作者先声明了体渲染过程很难完全消除偏差,即 rendered depth 和 intersection point 并不一致,原因在 Geo-NeuS 中也分析过了。
所以设计一个 unbias 的 SDF 和 density field 间的转换方程极为重要,以减小这种偏差。作者提出了相比于 NeuS 中的无偏性更 relax 的条件,其中第一条就是 NeuS 中的无偏性条件,后两条是作者补充的,以减小转换方程中的偏差:
  • 当 ray 从外向内射入物体表面时, 关于的导数到 t 在交点处等于 0。
  • 当 ray 从外向内接近物体表面时, 关于的导数到 t 大于 0。
  • 当 ray 在物体内部或者从内向外接近物体表面时, 关于的导数到 t 小于 0。
表示为公式形式就是
其中 ,即是法向量 之间的角度的余弦。当 ray 由外向内接近物体表面时 为负,反之为正,当射线与物体表面相切时为零为 0。如果以上条件都满足,那么 ray 入射物体表面的第一个交点即为 的全局最大值。

作者基于以上假设分析了现有的 NeuS 和 VolSDF 的体渲染公式中存在偏差。对于 VolSDF 的转换方程而言,由于并没有基于无偏性准则设计转换方程,所以上面的三条无偏性条件都不满足。NeuS 虽然遵循了无偏性条件,但在推导过程中有一个假设,即物体表面为平面。当物体表面是 convex 或者 concave 的时候,也不满足无偏性条件。而且即使当物体表面是平面的时候, 的峰值也会随着夹角增大受到抑制,偏差同样也会增大。作者改进了公式以满足无偏性:
这是一个在实现上很小的改动,并且能显著的提升渲染效果,我感觉这种新的体渲染公式会在以后的工作中被经常用到。模拟效果如下图所示,可以看到新的转换方程在各种条件下偏差都比原来显著降低:

8.2 对于表面的几何约束


从上面的图片结果我们可以看到,当训练初始阶段 比较大的时候,渲染得到的深度和真实物体表面深度误差较大,其原因在 Geo-NeuS 的分析中提到过。所以作者提出应该使用 MVS 得到的 sparse points 来约束表面而不是 depth map(如 MonoSDF),这又是一个 sparse points 相比于 depth map 的优势,其它两项优势在上面的 GeoNeuS 中提到过。


作者还提出了一种新的训练策略,即将 pixel 分为两组,一组是 sparse points 可以映射到的,另一组是没有的。作者提出在训练刚开始应该更多的使用带有几何信息的 pixel,这样可以让训练初期网络更加关注几何信息,随着训练的进行逐渐关注没有几何信息的 pixel。

这样做 geometry network 的学习会比 radiance network 要快,先得到正确的几何再优化颜色,作者也没有解释这么做的原因。个人猜测如果 geometry 学习的更快的话,偏差会减小的更快,这样学习到的模型更准确。文章中的 ablation study 并没有展现这种训练策略的结果,效果也就不得而知,很好奇为什么没有 reviewer 指出这点。



Recovering Fine Details for Neural Implicit Surface Reconstruction, CVPR 2023 [16]


写这篇文章的主要原因呢,是因为也提到了 rendered depth 和 intersection points 之间存在偏差,看来体渲染过程中的偏差已经引起了大家的注意。这篇文章的做法简单粗暴,就是直接惩罚 rendered depth 和 intersection points 之间的差,即约束 rendered depthmap 上的点的 SDF 值。然而这样做不仅会增加计算时间,因为需要计算 rendered depthmap 上的点的 SDF 值,而且储存 depth map 还增大了对 GPU 内存的占用,不如上一篇文章的方法好。

此外作者也像 NeuralWarp 和 Geo-NeuS 一样引入了 Multi-view Consistency Loss。区别于之前两篇文章直接比较像素值,作者将空间中点的坐标映射到不同图片上后,对每张图片用 pre-trained 的 CNN 进行特征提取,然后约束特征之间的差值:
缺点也很明显,需要一个额外的 pre-trained 模型,增加计算时间和内存占用,所以感觉并不会被广泛使用。



Neuralangelo, CVPR 2023 [17]


这篇文章和 NeuS2 一样也是使用了 hash grid 来加速 NeuS 的训练,但使用了更多的训练技巧。相较于 NeuS 提出的针对 hash grid 的高效计算 analytical gradient 的方法,Neuralangelo 干脆直接使用 numerical gradient。优势在于 analytical gradient 只关联局部的一个 hash grid,由于线性插值的原因 numerical gradient 的计算引入了更多的 hash grid,所以得到的表面更平滑。下图直观的展示了两种 gradient 的计算过程。

▲ Using numerical gradients for higher-order derivatives distributes the back-propagation updates beyond the local hash grid cell, thus becoming a smoothed version of analytical gradients.


同时这篇文章还使用了两种 coarse to fine 的训练策略。首先是一开始设置很大的 step size ,这样一开始 surface 会在大尺度上平滑,然后逐渐减小 ,关注局部的区域。另一种是逐渐引入分辨率更高的 hash grid,这项策略 NeuS2 里也使用了。还有就是使用了 SDF 的二阶导数约束项,这个在 RegSDF 还有另一篇论文 DiGS 都使用过,所以感觉这篇文章唯一的亮点就是使用了 numerical gradient,不知道以后是否会取代 analytical gradiant。



NeuDA, CVPR 2023 [18]


这篇文章的思路非常新颖有趣,别的方法都是在 grid 上储存 feature,再通过插值得到采样点的 feature。这篇文章中 grid 上储存的是点的坐标,将 grid 的顶点 map 到新的位置,再对新的坐标 Positional Encoding 之后再插值得到采样点的feature。原来的基于 grid 的方法会有很尖锐的表面细节,作者认为这是 feature 都分布在固定的 grid 顶点导致的,一些很精细的复杂的结构需要更灵活的表达。整个流程如下图所示:

▲ We elaborate on the main differences between the hierarchical deformable anchors representation and some baseline variants. From left to right: (1) Methods such as NeuS, volSDF, and UNISUFR sample points along a single ray; (2, 3) Standard voxel grid approaches store a learnable embedding (or) feature at each vertex. Spatial context could be simply handled through the feature aggregation operation. The multi-resolution (or hierarchical) voxel grid representation can further explore different receptive fields; (4) Our method maintains a 3D position (or anchor point) instead of a feature vector at each vertex. We optimize the anchor points such that different geometry structures can be adaptively represented.


作者还使用了 Hierarchical Positional Encoding,即分辨率越高的 grid 采用更高频率的 encoding。通过实验发现,随着训练的进行映射到的的位置会逐渐向物体表面接近,这样其实也达到了一个 efficient sampling 的效果,和 hiearchical sampling 还有 proposal network 达到的效果相似,不过更加灵活,每个 grid 的 8 个顶点都会有各自的映射。效果如下图所示:

▲ Deformation Process of Anchor Points. The anchorpoints (e.g. orange points) are uniformly distributed in the 3Dbox at beginning and would move to object surfaces as trainingconvergences. Zoom in for better view.




PermutoSDF, CVPR 2023 [19]


这篇文章也是利用 grid 对训练进行加速,但和大多数论文使用立方体的 grid,而这篇论文提出使用三角锥型的 grid。这篇文章的工程量巨大,毕竟是从零实现了一种新的 grid,要写一套新的 CUDA 代码。而且作者还使用了许多 tricks 来加速训练,提供了许多值得思考的点。文章的流程如下图所示。

▲ Overview of our PermutoSDF pipeline. (1) For a batch of pixels from the posed images, we sample rays inside the volume of interest. (2) For each sample, we slice features from a multi-resolution permutohedral lattice. (3) The features from all lattice levels are concatenated. For the color network, we also concatenate additional features regarding normal n of the SDF, view direction v, and learnable features x from the SDF network. (4) Small MLPs decode the SDF and a view-dependent RGB color. (5) The output is rendered volumetrically and supervised only with RGB images. We visualize surface color and a 2D slice of the SDF.


和其它方法的流程的不同点在于,它 color network 输入的 feature 不仅有从 SDF network 输出的 feature,还拼接了坐标直接输入进一组新的 grid 得到的 feature,这不像其它方法只使用一组 grid。作者在文章里也没有对这种方法做出任何解释,这样做确实是可以得到独立于 SDF network 的一组 feature,但目前也不清楚效果如何。三角锥型优势在于速度,因为参与插值的点更少,三维情况下立方体型需要 8 个顶点参与,但是三角锥只需要 4 个顶点参与插值。

作者还提出了两种新的约束。之前的文章中见到了大量的针对 SDF 的二阶导数 Hessian 矩阵的约束,但是作者提出计算 Hessian 太慢了,那如何在避免计算 Hessian 的情况下引入二阶约束呢?

作者提出对于每个采样点我们都已经计算了法向量 ,因为要计算 Eikonal Loss。我们叉乘这个法向量和一个随机单位向量 ,得到这个法向量的切向量 ,并将这个采样点沿着这个向量移动一段距离得到一个新的点 ,计算这个新的点的法向量 。这两个点的法向量应该尽量平行,表面才会更加光滑,于是引入了 loss:
仅仅引入这项 regularization 还不够,因为这会让几何变得平滑。所以这会让 color network 在一个平滑几何的条件下努力学习高频的颜色细节,这样高频的信息都会学习到 color network 里面了,SDF network 无法学习到高频信息,也就无法恢复一些几何细节。很多文章中都使用了二阶约束项,这篇文章中第一次指出了这样做潜在的问题。所以还要引入对颜色的平滑约束,这样颜色和几何之间不会有很大的 gap,关于这项 regularization 细节可以参考原文。

值得一提的是,作者提出了 NeuS 中的参数标准差 ,不应该用一个网络来自动学习,这也是大多数文章中的做法。作者认为应该手动调节 ,在训练的过程中逐渐减小,就像 VolSDF 里的 那样,这样做可以学习到一些 thin structure。这是一个对 一个比较新的理解,不知道后续工作中会不会采用这种策略。

为了加速训练和推理,作者还引入了 occupany grid 来储存每个空间是否被占据,仅在被占据的 grid 中进行采样。在推理的时候,作者使用了 sphere tracing来找到 ray 和 surface 的交点,直接进行表面渲染,因为这样速度比体渲染要快很多。

这是一个很有价值的想法,推理阶段使用 surface rendering 在理论上完全可行,Geo-NeuS 文章中证明了当模型收敛以后,体渲染得到的颜色和 intersection point 的颜色差距极小,而 surface rendering 的速度比 volume rendering 要快许多,以后训练中采用体渲染、推理时采用表面渲染的实现思路很可能会被大量使用。

可以说,通篇文章的目标就是加速加速,最终实现了快速训练和实时渲染。但对内存的占用会变大,使用了三组 grid,属于是用空间换时间了。




Sphere-Guided Training of Neural Implicit Surfaces, CVPR 2023 [20]


这篇文章的核心思想也是 efficient sampling,不过是用一个个位置可学习的 sphere。之前也有很多文章用到了 efficient sampling,例如上面讲到的 Neural 3D Reconstruction in the Wild,不过它需要 SFM 得到的 sparse points 初始化 voxel,而作者提出的方法是可以 train from scratch 的。

而且之前的方法只改进了 ray-marching,ray-sampling 还是在图片中随机取样,作者提出的方法同时改进了 ray-marching 和 ray-sampling 过程。新的采样流程如下:

▲ Our method works by filtering the samples along the ray that lie outside of the surface region, approximated by a trainable sphere cloud. Such filtering improves the sample efficiency in the optimization process and allows the implicit function to converge to a better optimum.


对于 ray marching 而言,只在 sphere 内部进行采样,大大提高了采样的有效性。对于 ray sampling,为了避免选到和物体表面不相交的射线,作者从sphere包裹的空间中均匀的选取射线的末端点(我也没有读代码,也不太清楚作者是怎么实现的)。合理的 sphere 应该是均匀覆盖在物体表面的,sphere 初始化是均匀分布在空间中的,sphere 的优化过程要遵循两点,第一点是 sphere 的球心尽可能接近物体表面:
另一点是球尽可能均匀分散,所以要惩罚球心之间的距离:
体的半径也是随着训练指数次减小 。球体的运动轨迹如下图所示:

▲ Visualization of the training process. Initially, we assign a large radius to all spheres in the cloud (a) and gradually reduce it during the optimization down to a minimum value (c). Our proposed repulsion loss prevents the clumping of the spheres and encourages exploration, which results in an improved reconstruction of the thin surfaces (d).


作者采用了交替训练的策略来训练球体和网络,不过这样我感觉训练时间会变长。这篇文章提出的方法仅仅是优化采样策略,对 baseline 没有本质的改变,因此 baseline 中存在的一些问题并没有得到解决。



总结


总结了一下这些文章常见的几种改动有:

  • 添加几何约束:MonoSDF, Geo-Neus, RegSDF 等。
  • Coarse to fine 的训练策略:NeuS2,Neuralangelo 等。
  • 体渲染方法理论改进:HF-NeuS,Towards Unbiased Volume Rendering of Neural Implicit Surfaces with Geometry Priors 等。
  • 二阶约束项:RegSDF,Neuralangelo,PermutoSDF 等。
  • 加速采样策略:PermutoSDF,Neural 3D Reconstruction in the Wild,NeuDA,Sphere-Guided Training of Neural Implicit Surfaces 等。


2022 年的文章大多是在 baseline 上增加了一些新的 regularization,到了 2023 年文章就开始偏向工程化了,可能是 low-hanging fruit 都没有了,想要简单的加一些 trick 很难再发文章了,从事这个方向的研究对工程能力要求越来越高。这也是件好事,基于体渲染的多视角三维重建正在逐步落地化。此外大家对体渲染过程的理解也在逐渐加深,也看到了难得的对体渲染过程进行理论分析和改进的文章,希望以后还能看到这样的文章,不要全都去做工程啊。

参考文献

[1] https://arxiv.org/abs/2003.08934

[2] https://arxiv.org/abs/2106.10689

[3] https://arxiv.org/abs/2106.12052

[4] https://arxiv.org/abs/2112.09648

[5 ]https://arxiv.org/abs/2006.10739

[6] https://arxiv.org/abs/2206.03087

[7] https://arxiv.org/abs/2003.09852

[8] https://arxiv.org/abs/2106.10811

[9] https://arxiv.org/abs/2212.05231

[10] https://arxiv.org/abs/2201.05989

[11] https://arxiv.org/abs/2205.12955

[12] https://arxiv.org/abs/2206.00665

[13] https://arxiv.org/abs/2205.15848

[14] https://arxiv.org/abs/2206.07850

[15] https://openaccess.thecvf.com/content/CVPR2023/papers/Zhang_Towards_Unbiased_Volume_Rendering_of_Neural_Implicit_Surfaces_With_Geometry_CVPR_2023_paper.pdf

[16] https://openaccess.thecvf.com/content/WACV2023/papers/Chen_Recovering_Fine_Details_for_Neural_Implicit_Surface_Reconstruction_WACV_2023_paper.pdf

[17] https://arxiv.org/abs/2306.03092

[18] https://arxiv.org/abs/2303.02375

[19] https://arxiv.org/abs/2211.12562

[20] https://arxiv.org/abs/2209.15511


更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:[email protected] 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



·
·

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
午夜惊魂 冷明【找队友】全美经济学挑战赛(NEC)正在组队,冲全球赛头部排名,有相同目标的来所有卖商品的行业,都值得用服务思维重做一遍[评测]Colorful Colorfire B760M-Meow WiFi D5 评测STTT | 厦门大学夏宁邵/郑子峥/葛胜祥等开发基于纳米颗粒的多价人抗体,提供对奥密克戎亚谱系有效和广泛的中和作用迈微医疗:全球首台纳秒脉冲电场房颤消融(nsPFA)系统顺利完成临床入组NeRF基于线稿生成逼真三维人脸,细节风格随意改,论文已上SIGGRAPH自由编辑人脸打光:基于生成模型的三维重光照系统上线全方位多视角平视世界结婚快十年,我终于体会到甜蜜的“二人世界”~住建系统为保交楼资金开辟新来源过去的几年,制造业是向中西部转移的多还是向越南印度墨西哥转移的多ACL 2023 | 达摩院、NTU提出多视图压缩表示,显著提升预训练语言模型鲁棒性ACL 2023 |信息减加法:基于特征去噪和主题增强的多模态关系抽取《国脉》&《千里共婵娟》急诊排队2小时,和医生聊了15分钟,然后收到5600美金账单!“润”出中国后,他终于体会到了资本主义的温情脉脉!从北京交大到香港理工,人生的意义在于体验与经历【老键曲库】Daniel Lozakovich – Tchaikovsky: Six Pieces, Op. 51, TH 14起售价 899 欧,微软 Surface Laptop Go 3 笔记本渲染图曝光:配酷睿 i5-1235U 处理器泰晤士河滨全新视角|Rockwell 引入伦敦房地产项目Hurlingham Waterfront在野猪笼落下那一刻想到的我家楼下闲置多年的地皮终于用于体育休闲产业5097 血壮山河之武汉会战 浴血田家镇 5有毒(Toxic)的工作环境?美国也有NeurIPS 2023 Spotlight|高质量多视角图像生成,完美复刻场景材质!SFU等提出MVDiffusion加拿大黄刀镇,被美国国家宇航局(NASA)评为全球最适合观测极光的地方闷声干大事!中年老母亲终于体验到了躺平的快乐…以军霸气出击,哈马斯死期到了(多视频)自动驾驶数据不用愁!港中文等发布MagicDrive:日夜、雨晴、多视角全覆盖,人、物位置随意变更重新开放!加拿大黄刀镇,被美国国家宇航局(NASA)评为全球最适合观测极光的地方NeurIPS 2023 | 无惧图像中的文字,TextDiffuser提供更高质量文本渲染SIGGRAPH 2023 | NeRF基于线稿生成逼真三维人脸,细节风格随意改“创多窗”和“解压平”——流媒体的下一代是多视角以及全景视频Am J Hematol | 施均团队通过国内首个前瞻纵向血液病队列(NICHE)揭示再障患者新冠感染后临床转归找工作总是败在英语...华人社区『免费』英语网课,抢报名!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。