040 alphaSurf

Zhangwenniu 于 2023-03-27 发布

$\alpha$Surf: Implicit Surface Reconstruction for Semi-Transparent and Thin Objects with Decoupled Geometry and Opacity

这篇文章是2023年3月17日挂在Arxiv上面的。看到这篇文章,心里一惊。作者所分析的许多内容与我先前想的内容是完全一致的。

1、NeuS/VolSDF都采用实心物体的假设,以及封闭物体假设。在这种假设下,符号距离函数是会在物体两侧发生变号的。并且,由于物体确实是实心的,所以给Sigmoid函数变为指示函数提供距离变化的保证,但是在透明物体、薄表面的情况下,不存在负数SDF函数值情况,这会导致难以重建轻薄物体表面。

2、我的想法是针对物体表面估计透射率(另一个角度就是透光率、遮光率),光是从表面发出来的,而不是从一片雾状的区域、贴近表面的部分缓冲区域共同发光所得的。所以最终呈现在图像中的光,应该是所有发光表面发的光通过一次次透光率相加权的结果。这篇文章也有类似的思想。

因而看到这篇文章的那一刻,心里一惊!一方面印证了我的思想是正确的,而且能够通过实验确实的验证出来,这是好事情,为我自己继续走下去提供了一颗定心丸:确实是能做的。另一方面,由于依靠这个思路,已经有作者发出文章来了,这就说明该思路并非我的原创了,把原创这件事情堵住了,我自己发文章的创新点就被卡住,这是最难受的!下一步只能仔细看看本文是如何利用该思路做出东西的,并且需要让我自己的工作有质的提升。

当时看完NeuS、VolSDF的时候,心里在想,要跟NeuS比较,这已经做的很好了,怎么还能提升呢?心里不停打鼓。很快就发现有Geo-NeuS、HF-NeuS等文章进一步提升重建质量,另有NeuS2提高重建的训练速度,SparseNeuS提高在稀疏数据输入的情况下的重建效果,这就说明一篇工作出来之后,仍然还有很大的提升余地,要保持良好的心态,动手实际去做。尽管这篇文章已经发出来了,但是重建效果并不优美,绝对还有的做。加油!(每天都要给自己喂鸡汤,不然撑不下去呀,心态差点完全崩了)

链接

得,查着这篇文章的Arxiv链接呢,蹦出来另一篇透明物体表面重建的工作,是2023CVPR的工作,注定是锦上添花的工作了,人家的工作做的更好!我直接惊讶的很了。Seeing Through the Glass: Neural 3D Reconstruction of Object Inside a Transparent Container,Arxiv链接:[2303.13805] Seeing Through the Glass: Neural 3D Reconstruction of Object Inside a Transparent Container (arxiv.org); Github链接:hirotong/ReNeuS (github.com)

Arxiv的本论文链接:[2303.10083] $α$Surf: Implicit Surface Reconstruction for Semi-Transparent and Thin Objects with Decoupled Geometry and Opacity (arxiv.org)

本文的网站:αSurf (alphasurf.netlify.app)

作者

Tianhao Wu, University of Cambridge

Hanxue Liang, University of Cambridge

Fangcheng Zhong, University of Cambridge

Gernot Riegler, Unity

Shimon Vainer, Unity

Cengiz Oztireli, Google Research, University of Cambridge

三个主要作者都是剑桥大学的华人,佩服,不服也不行啊。

后面跟着的是两个Unity的公司人员,最后一个剑桥大学、谷歌研究院的通讯作者。

可能搞学术的也是像这样,逐渐卷成大哥。

摘要

简介

给出了SDF的几篇论文,可以读:

[11] Yue Jiang, Dantong Ji, Zhizhong Han, and Matthias Zwicker. Sdfdiff: Differentiable rendering of signed distance fields for 3d shape optimization. In The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 2020. 1, 3, 5, 11

[36] Delio Vicini, S ́ ebastien Speierer, and Wenzel Jakob. Differentiable signed distance function rendering. Transactions on Graphics (Proceedings of SIGGRAPH), 41(4):125:1125:18, July 2022. 1, 5

[44] Kai Zhang, Fujun Luan, Zhengqi Li, and Noah Snavely. Iron: Inverse rendering by optimizing neural sdfs and materials from photometric images. In IEEE Conf. Comput. Vis. Pattern Recog., 2022. 1

张凯发表完NeRF++之后,还在继续做工作。CVPR2022。


文章的思路是,最终呈现物体颜色的点不应该仅仅是单个点,而是多个点。

另一点,文章认为应该将几何空间位置和物体表面材质解耦开。这种解耦合的思想,我在去年开组会的时候,做了一些说明,当时主要是基于NeuMesh论文做的解释说明,既然空间中的几何结构能够与空间中的颜色解除耦合,更进一步的解耦也应该是可能的,尤其是估计物体的透明性材质,也是合理的。


Unlike previous methods, our representation does not require the scalar field to be an SDF subject to the Eikonal constraint. An important advantage of our approach is that the exact intersection points between a ray and all the surfaces, regardless of whether they are solid or transparent, can be determined by analytically solving a cubic polynomial. The closed-form solution allows for full differentiability in our forward rendering process, which simulates the semi-transparency effects via alpha compositing of intersection points.

将这段话拆开来看:

Unlike previous methods, our representation does not require the scalar field to be an SDF subject to the Eikonal constraint.

本文的工作不需要一个满足Eikonal约束的SDF场。这意味着与NeuS、VolSDF的基于MLP方法不从属于同一套架构。

An important advantage of our approach is that the exact intersection points between a ray and all the surfaces, regardless of whether they are solid or transparent, can be determined by analytically solving a cubic polynomial.

通过求解一个三次多项式,能够精确找到射线与所有表面的交点,无论表面是实心表面还是透明表面,都能够通过这种方式找到射线与表面的交点。

The closed-form solution allows for full differentiability in our forward rendering process, which simulates the semi-transparency effects via alpha compositing of intersection points.

闭式解能够让整体的前向渲染过程都是完全可微的,这帮助半透明物体显示出透明的特性,在感兴趣的点上能够使用$\alpha$组合得到最后图像的颜色值。


文章的另一个贡献点是,整体训练时间非常短暂,只需要30分钟就可以训练一个场景。几何初始化操作是通过Plenoxels得到的。


关于数据集。

半透明物体的数据集可以在NeRF synthetic数据集里面找到啊,我也去找找看。

[20] Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi, and Ren Ng. Nerf: Representing scenes as neural radiance fields for view synthesis. In ECCV, 2020. 1, 3, 5, 6

真实场景数据集:

[19] Ben Mildenhall, Pratul P. Srinivasan, Rodrigo Ortiz-Cayon, Nima Khademi Kalantari, Ravi Ramamoorthi, Ren Ng, and Abhishek Kar. Local light field fusion: Practical view synthesis with prescriptive sampling guidelines. ACM Transactions on Graphics (TOG), 2019. 3, 7, 8, 14

自建数据集。这是哪张图片场景?需要看看。


相关工作

神经辐射场(Neural Radiance Field)

注意写作的细节,在写相关工作的时候,看到前文工作的不足之处,写一下自己工作是如何克服前文的缺点的。以及有何异同。 另外,这里要注意,作者使用了分别的隐式场,来解耦合占用。用于处理半透明表面和很薄的表面。

用于多视角三维重建的SDF(SDF for Multi-view 3D Reconstruction)

这篇文章总结的其实很好,不要因为是同行发表的就以敌对的视角来看,其实这篇文章的许多细节都值得体会和学习。


我怎么都没注意到呢?IDR采用了一个球形追踪的算法,并且对表面和一个体BRFD同步进行优化。


他这一回顾让我想起来了,VolSDF采用lapacian cdf, NeuS采用logistic sigmoid函数做SDF与体密度之间的映射函数。

看起来logistic就是sigmoid,都是1/(1+exp(-sx)),但其实并不是。知乎上面有一篇文章专门讲解logit, logistic, sigmoid等函数之间的关联。一篇文章搞懂logit, logistic和sigmoid的区别 - 知乎 (zhihu.com)

总结而言,logit函数表示$f(x) = Log(\frac{x}{1-x})$,定义域(0, 1),值域为($-\infty, +\infty$)

logistic是logit函数的反函数,表示$f(x)=\frac{1}{1+\exp(-x)}$,定义域为($-\infty, +\infty$),值域为(0, 1)

而sigmoid函数实际上是一类表示S型曲线的函数,许多能够将全体区间上的定义域映射到(0, 1)区间的这一类S型函数,都可以称为Sigmoid函数。 \(f(x) = \dfrac{1}{1+e^{-x}} \tag{Logistic function}\)

\[f(x) = \tanh(x)=\dfrac{e^{x}-e^{-x}}{e^{x}+e^{-x}} \tag{Hyperbolic tangent}\\ \text{shifted and scaled version of the logistic function, above}\] \[f(x) = \arctan(x) \tag{Arctangent function}\] \[f(x) = \text{gd}(x)=\int_{0}^{x}\dfrac{1}{\cosh(t)}dt=2\arctan(tanh(\dfrac{x}{2})) \tag{Gudermannian function}\] \[f(x) = \text{erf}(x) = \dfrac{2}{\sqrt{\pi}}\int_{0}^{x}e^{-t^2}dt \tag{Error function}\] \[f(x) = \left(1+e^{-x}\right)^{-\alpha}, \alpha>0 \tag{Generalised logistic function}\] \[f(x) = \begin{cases} \left(\int_0^1\left(1-u^2\right)^N du\right)^{-1}\int_0^x\left(1-u^2\right)^N du, \vert x\vert \leq 1 \\ sgn(x), \vert x\vert\ \geq 1 \end{cases}, N\geq 1 \tag{Smoothstep function}\] \[f(x) = \dfrac{x}{\sqrt{1+x^2}} \tag{Some algebraic functions, e.g.}\]