023 HF-NeuS, Improved Surface Reconstruction Using High-Frequency Details

Zhangwenniu 于 2023-03-21 发布

HF-NeuS: Improved Surface Reconstruction Using High-Frequency Details

文章的作者与我还有些关系。2022年10月-11月疫情封控期间我读的这篇文章,当时有许多感想。由于封控导致精神失常,那段时间没有认真做科研,也没有更新网站,以此机会重读一遍,补上博客。后半部分的高频分量部分没有能够系统性的搞懂,这次重读,希望能够读懂。

作者

Yiqun Wang KAUST

Ivan Skorokhodov KAUST

Peter Wonka KAUST

阿卜杜拉国王科技大学 - 知乎

KAUST,沙特的一个大学,广收天下科研人员,资金充沛。

摘要



介绍


这篇文章引用了不少NeRF相关的文章。虽然我是希望做NeuS相关的改进工作,但是NeRF的论文读的并不多,需要多读几篇文章。


方差s在NeuS里面是全局设定好的,但是在这篇文章里面,作者将这个s设置为依据不同空间位置进行变换的,尤其对于有问题的区域做特别的适应和变换。


相关工作

多视角三维重建

神经隐式表面

文章花了很大一部分篇幅来叙述神经隐式表面在这段时间内发生了什么。

首先是DVR,接下来是IDR,随后是NeRF。实际上,在IDR发表的过程中,NeRF已经做出来工作,并发表到Arxiv上面,IDR是知道的,还在文中引用了Arxiv上NeRF的工作。也就是说,NeRF先于IDR完成。NeRF是2020ECCV(放榜时间应该晚于NIPS的5月截稿),IDR是2020NIPS(5月截稿)。

NeRF++对NeRF的工作做了改进,但是一直挂在Arxiv上面。

Unisurf发表于2021年的ICCV(截稿时间在2021年的二月、三月左右), NeuS, VolSDF是2021年的NIPS文章(2021年5月截稿)。三篇工作勉强算作是同期的,UNISURF工作稍微靠前一些。

Improving neural implicit surfaces geometry with patch warping(简称为NeuralPatch)发表于2022年的CVPR(截稿2021年的11、12月左右),本文HF-NeuS是2022年的NIPS(截稿2022年的5月左右)。

文章的作者说,由于NeuralPatch是一个基于表面法向量的改进文章,所以不予同期测评。这种说法是否可以接受呢?还要等接下来回顾NeuralPatch之后再看。

高频细节重建

关于隐式置换场,implicit replacement field,下面这篇论文是主要的贡献。

[16] M. Li and H. Zhang. D2im-net: Learning detail disentangled implicit fields from single images. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 1024610255, 2021.

学习基函数和置换函数,base sdf and implicit displacement fields.

[34] W. Yifan, L. Rahmann, and O. Sorkine-hornung. Geometry-consistent neural shape representation with implicit displacement fields. In International Conference on Learning Representations, 2022. ICLR的工作?

方法

将透射率建模为SDF的函数


文章里面用了一个比较宽泛的假设,在射线由接近相机到远离相机的方向上,SDF函数是会从正的一直变为负数;并且透射率函数也会从正1逐渐衰减到0。当然,他这里的透射率是以体密度积分的概念上理解的透射率,是一个逐步衰减的过程,表示的光能够从给定距离的空间位置点上,成功透过来的概率,与我所说的透明物体造成的光路遮挡,使得光的强度变低不完全是同一件事情。我所讲的透射率是基于物体表面而言的,只有表面存在这种透射率,在我的假设中,空气的透光率基本是100%的。而基于体渲染、NeuS的文章,一般是空气中任何地方都存在透射率,这种透射率会随着物体表面的出现迅速衰减为0,这种衰减是由于他们所做的实心物体表面假设所致。

This inverse property results in the Ψ function being a monotonic increasing function from 0 to 1.

说回HF-NeuS这篇文章中的假设,我的评价是,如果持续以这种方式建模的话,会出现比较大的问题,这种问题已经在后续的论文$\alpha Surf$里面体现出来了。

如果SDF是终究要变成负数,而且只有单表面的话,这种考虑倒是可以的,但是一般来说,SDF是会有许多次增加、下降的时候。如果后续全面沿用这个假设,会出大问题的。问题的原因就在于,SDF并不是一个单调递减的函数;而且透射率也不是一个简单的全面单调递减,如果出现透明物体,透射率会先由空气的高透射率下降到玻璃的低透射率,再升高到空气的高透射率,随后穿过非透明物体,透射率再次减低至0。


Therefore, we have our design criteria for Ψ: Ψ should be a monotonic increasing function from 0 to 1, with the steepest slope at 0.

这个也是局限于射线与平面相交的时候,你说\Phi是一个0-1之间的单调递增函数,这里的自变量是符号距离函数;梯度最陡峭产生于物体表面,这个结论讨论于之前Phi对t的求导极大值,由于\Phi对sdf的导数乘以一个常数(梯度与方向的点乘)就是\Phi对t的导数,二者之间只差一个常数,所以梯度的陡峭程度是相同的。


Sigmoid在不同s下的图像如图所示。

s控制的是接近0点的变化速率,如果s值越大,代表接近0点的变化速率越大,导数的峰值也越高。 \(f(x) = \frac{1}{1+\exp(-sx)}\\ f'(x)=s*f(x)*(1-f(x))\\ std(f'(x)) = s\)


没有三维监督的隐式置换场


文章引入另一个置换函数(displacement function),该函数的设计是沿着基函数的表面法向量设计的。原因是MLP难以在一次学习中既学习高频分量,又学习低频分量。

文章提出要学习不同尺度的频率信息,并且由粗到细的逐步提升频率分量。


文章的第6页,公式9前面的一段话,这一段话的表述应该是存在问题的。我去读了HF-NeuS参考的论文,Geometry-Consistent Neural Shape Representation with Implicit Displacement Fields,按照我的理解来重新改写这段话。

HF-NeuS第6页的原文如下:

Suppose $f$ is the combined implicit function that represents the surface we want to obtain. The function $f_b$ is the base implicit funcction that represents the base surface. Following [34] (Geometry-Consistent Neural Shape Representation with Implicit Displacement Fields), the displacement implicit function $f_{d’}$ is used to map the point $x_b$ on the base surface to the surface point $x$ along the normal $n_b$ and vice versa $f_d$ is used to map the point $x$ on the base surface to the surface point $x_b$ along the normal $n_b$, thus $f_{d’}(x_b) = f_{d}(x)$. Because of the nature of implicit functions, the relationship between the two functions can be expressed as follows. , \(f_{b}(x_b) = f(x_b+f_{d'}(x_b)n_b)=0 \tag{9}\)

我认为应该改为:

the displacement implicit function $f_{d’}$ is used to map the point $x_b$ on the base surface to the surface point $x$ along the normal $n_b$ and vise versa. $f_d$ is used to map the point x on the surface to the surface point $x_b$ along the normal $n_b$, thus $f_{d’}(x_b)=f_{d}(x)$

这样就和后面的公式对上号了。

好吧,为了看懂这一个公式,花了3月24日一天的时间读论文 Geometry-Consistent Neural Shape Representation with Implicit Displacement Fields 来寻找答案,也算是大有收获了吧。