重点总结
这篇文章介绍了一种名为α-NeuS的新方法,用于从多视角图像中同时重建透明和不透明物体的三维形状。该方法扩展了现有的NeuS方法,证明了NeuS在处理从完全透明到完全不透明的材料时的无偏性,并提出了一种基于DCUDF(Double Covering Unsigned Distance Field)的方法来同时提取透明和不透明表面。文章通过构建包含真实世界和合成场景的基准数据集来验证该方法的有效性。
背景知识
- 传统的三维形状重建技术(如运动恢复结构SfM和多视角立体MVS)在重建透明物体时面临挑战。
- 近年来,基于神经辐射场(NeRF)及其变体的方法在不透明物体的重建中取得了显著进展,但在同时重建透明和不透明物体方面存在困难。
- 一些工作尝试处理透明场景中的折射和反射效应,但这些方法通常专注于重建透明材料内的不透明物体,而不能重建透明物体本身。
研究方法
1. α-NeuS方法
- 无偏性证明:文章证明了NeuS在从完全透明到完全不透明的材料范围内是无偏的。具体来说,透明表面和不透明表面分别对应于NeuS学习到的距离场的非负局部最小值和零等值面。
- 表面提取方法:传统的等值面提取算法(如Marching Cubes)依赖于固定的等值,不适合处理这种混合SDF(Signed Distance Field)和UDF(Unsigned Distance Field)的数据。因此,作者提出了一种基于DCUDF的方法,通过取距离场的绝对值,将无偏表面转换为局部最小值,从而实现透明和不透明表面的同时提取。
2. 实验设置
- 数据集:作者构建了一个包含5个真实世界场景和5个合成场景的基准数据集。合成数据使用Blender渲染,真实数据由作者自行采集。
- 基线方法:与NeuS和NeUDF等方法进行比较。
- 实现细节:使用与NeuS相同的训练结构,并在合成数据集上使用推荐的配置。在表面提取阶段,选择0.005作为合成场景的阈值,真实场景则使用0.002或0.005。
实验结果
1. 合成数据
- 定量评估:使用Chamfer距离(CD)进行评估,结果表明α-NeuS能够有效地重建透明和不透明表面。与从NeuS提取零等值面相比,α-NeuS在重建透明表面时表现出更好的完整性。
- 定性评估:通过可视化重建结果,α-NeuS在透明和不透明表面的重建上均优于NeuS。
2. 真实世界数据
- 定性评估:在5个真实世界场景中,α-NeuS展示了良好的重建质量,尤其是在复杂光照条件下。相比之下,NeuS在提取零等值面时无法获得完整的表面,导致重建结果中出现伪影。
3. 与NeUDF的比较
- 定量和定性评估:α-NeuS在合成和真实世界数据上均优于NeUDF。NeUDF虽然能够重建透明表面和内部结构,但结果过于平滑,缺乏细节。
关键结论
- α-NeuS通过扩展NeuS的理论框架,证明了其在透明和不透明表面重建中的无偏性,并提出了一种基于DCUDF的方法来同时提取这两种表面。
- 通过构建包含真实世界和合成场景的基准数据集,验证了α-NeuS方法的有效性和实用性。
- α-NeuS在透明和不透明物体的重建上优于现有的NeuS和NeUDF方法。
局限性
- α-NeuS在处理复杂光照条件(如强烈的折射或反射)时存在困难。作者建议通过改善光照条件或使用现有的反射去除算法来解决这一问题,或者考虑将NeuS替换为专门处理反射和折射的模型(如Ref-NeuS或ReNeuS)作为未来的研究方向。
详细介绍
这篇论文的核心内容是介绍了一种名为 α-NeuS 的新方法,用于从多视角图像中同时重建透明和不透明物体的三维形状。该方法扩展了现有的 NeuS 方法,并通过理论证明和实验验证,展示了其在处理从完全透明到完全不透明物体时的有效性和优越性。以下是论文的详细介绍:
1. 研究背景与动机
传统的三维形状重建技术(如运动恢复结构SfM和多视角立体MVS)在重建透明物体时面临挑战,因为透明物体的光线路径复杂,涉及折射和反射,导致传统方法难以有效重建。近年来,基于神经辐射场(NeRF)及其变体的方法在不透明物体的重建中取得了显著进展,但在同时重建透明和不透明物体方面存在困难。
现有的方法主要分为两类:
- 仅处理不透明物体:如NeuS、VolSDF等,这些方法在重建不透明物体时表现出色,但无法处理透明物体。
- 仅处理透明物体:一些方法尝试通过神经渲染技术重建透明物体,但忽略了不透明物体,或者在处理透明物体时需要假设已知的容器几何形状和均匀背景光照。
因此,如何同时重建透明和不透明物体成为一个亟待解决的问题。α-NeuS正是为了解决这一挑战而提出的。
2. α-NeuS方法
2.1 无偏性证明
论文的核心贡献之一是证明了NeuS在处理从完全透明到完全不透明的材料时的无偏性。具体来说:
- 透明表面:透明表面在NeuS学习到的距离场中会形成局部最小值,这些最小值是非负的。
- 不透明表面:不透明表面对应于距离场的零等值面。
- 作者通过理论分析证明了NeuS在不同透明度下的无偏性,并提出了一个定理(Theorem 1)来描述这一性质。
2.2 表面提取方法
传统的等值面提取算法(如Marching Cubes)依赖于固定的等值,不适合处理混合SDF和UDF的数据。因此,作者提出了一种基于 DCUDF(Double Covering Unsigned Distance Field) 的方法来同时提取透明和不透明表面:
- 绝对值处理:将距离场取绝对值,使得无偏表面成为局部最小值。
- 优化提取:通过两阶段优化方法,将提取的等值面映射到距离场的局部最小值,从而实现透明和不透明表面的同时提取。
3. 实验验证
为了验证α-NeuS的有效性,作者构建了一个包含5个真实世界场景和5个合成场景的基准数据集。实验结果表明,α-NeuS能够有效地重建透明和不透明物体的三维形状。
3.1 合成数据实验
- 定量评估:使用Chamfer距离(CD)进行评估,结果表明α-NeuS在重建透明和不透明表面时均优于NeuS和NeUDF。
- 定性评估:通过可视化重建结果,α-NeuS能够完整地重建透明和不透明表面,而NeuS在提取零等值面时会丢失大量透明表面。
3.2 真实世界数据实验
- 定性评估:在5个真实世界场景中,α-NeuS展示了良好的重建质量,尤其是在复杂光照条件下。相比之下,NeuS在提取零等值面时无法获得完整的表面,导致重建结果中出现伪影。
3.3 与NeUDF的比较
- 定量和定性评估:α-NeuS在合成和真实世界数据上均优于NeUDF。NeUDF虽然能够重建透明表面和内部结构,但结果过于平滑,缺乏细节。
4. 关键结论
- 理论贡献:α-NeuS通过扩展NeuS的理论框架,证明了其在透明和不透明表面重建中的无偏性。
- 方法贡献:提出了一种基于DCUDF的方法来同时提取透明和不透明表面。
- 实验验证:通过构建包含真实世界和合成场景的基准数据集,验证了α-NeuS方法的有效性和实用性。
- 性能优势:α-NeuS在透明和不透明物体的重建上优于现有的NeuS和NeUDF方法。
5. 局限性与未来工作
尽管α-NeuS在处理透明和不透明物体时表现出色,但在处理复杂光照条件(如强烈的折射或反射)时仍存在困难。作者建议以下改进方向:
- 改善光照条件,减少反射和折射的影响。
- 使用现有的反射去除算法来预处理输入数据。
- 替换NeuS为专门处理反射和折射的模型(如Ref-NeuS或ReNeuS)作为未来的研究方向。
6. 总结
α-NeuS通过扩展NeuS的理论框架和提出一种新的表面提取方法,成功地解决了同时重建透明和不透明物体的挑战。该方法不仅在理论上具有重要意义,而且在实际应用中也表现出色,为三维重建领域带来了新的视角和解决方案。
原文翻译
从透明到不透明:重新思考神经隐式曲面的α-NeuS
作者:张浩然,邓俊凯,陈旭辉,侯飞,王文成,秦宏,钱晨,何英
机构:中国科学院软件研究所,南洋理工大学,纽约州立大学石溪分校,商汤科技
会议:NeurIPS 2024
代码:https://github.com/728388808/alpha-NeuS
摘要
传统的从多视角图像重建三维形状的技术(如运动恢复结构SfM和多视角立体MVS)在重建透明物体时面临挑战。近年来,神经辐射场(NeRF)及其变体主要解决了不透明或透明物体的重建问题,但在同时重建透明和不透明物体时遇到困难。本文介绍了α-NeuS——NeuS的扩展,证明了NeuS对从完全透明到完全不透明的材料都是无偏的。我们发现透明和不透明表面分别对应于NeuS学习到的距离场中的非负局部最小值和零等值面。传统的等值面提取算法(如Marching Cubes)依赖于固定的等值,不适合这种数据。我们开发了一种基于DCUDF的方法,用于同时提取透明和不透明表面。为了验证我们的方法,我们构建了一个包含真实世界和合成场景的基准数据集,展示了其实用性和有效性。我们的数据和代码已公开。
1. 引言
从多视角图像重建表面是数十年来的重要研究领域。传统方法(如SfM和MVS)基于颜色一致性校准图像并重建三维几何形状。近年来,神经辐射场(NeRF)的出现通过体积渲染技术在新视角合成中取得了令人印象深刻的结果。其基于隐式曲面的变体(如NeuS、VolSDF、HF-NeuS和NeuS2)通过学习符号距离场(SDF)进一步推进了这一领域,能够重建高质量的几何形状和外观。然而,这些NeRF家族方法仅限于重建不透明表面,重建透明表面更具挑战性,相关研究较少。
最近,一些工作处理了透明场景中的折射和反射效应。例如,ReNeuS通过假设已知的材料参数,有效重建了透明材料(如玻璃)内的不透明物体。NeuS-HSR通过分离反射效应重建了薄透明物体内的不透明物体。尽管这些方法成功重建了透明材料内的不透明物体,但它们并未扩展到重建透明物体本身。
为了解决上述挑战,我们提出了一个新的方法,称为α-NeuS,用于同时重建薄透明物体和不透明物体。鉴于透明物体较薄,我们可以忽略折射效应。我们的关键观察是,透明表面在NeuS的神经体积渲染过程中会在学习到的距离场中诱导局部极值。NeuS对不透明表面是无偏的,即最大体积渲染权重与物体表面重合[^4^]。我们扩展了NeuS的理论,证明了NeuS对所有透明和不透明表面都是无偏的。在不同的透明度下,无偏表面是NeuS学习到的距离场的非负局部最小值或零水平集。因此,我们能够同时提取透明和不透明表面的无偏表面。然而,这些非负局部最小值的具体值事先未知且可能在空间上变化,因此不适合使用传统的等值面提取算法(如Marching Cubes)进行提取。为了有效提取透明物体的目标几何形状,我们取距离场的绝对值,使无偏表面成为绝对距离场的局部最小值。基于DCUDF[^11^],我们引入了一种优化方法,用于同时提取透明物体和不透明物体的无偏表面。
为了验证我们的方法,我们构建了一个包含5个真实世界场景和5个合成场景的基准数据集。实验结果表明,α-NeuS在所有测试场景中都能有效重建透明和不透明物体。总结我们的主要贡献如下:
- 我们证明了NeuS[^4^]提出的密度函数在从完全透明到完全不透明的材料连续体中都是无偏的,从而完善了NeuS的理论框架。
- 我们展示了透明和不透明表面分别对应于NeuS学习到的距离场的非负局部最小值和零点。
- 我们提出了一种基于DCUDF[^11^]的方法,用于同时从混合SDF和无符号距离场(UDF)中提取透明物体和不透明物体的无偏表面。
- 我们构建了一个包含5个真实世界场景和5个合成场景的基准数据集,用于验证我们的方法。
2. 相关工作
2.1 从多视角图像进行三维重建
从多视角二维图像重建三维物体一直是研究热点,提出了多种方法。传统模型结构恢复方法试图理解图像并推断模型结构。这一类的典型例子包括基于体素的方法[^12^–^16^]和基于点云的方法,如SfM[^1^]和MVS[^2^]。
近年来,随着机器学习的发展,基于体积渲染的方法取得了高保真重建质量。基于3D高斯绘制[^17^],提出了许多模型重建方法,例如SuGaR[^18^]和2D高斯绘制[^19^]。另一种表面重建方法是NeuS[^4^]和VolSDF[^5^],基于NeRF[^3^]。特别是NeuS受到了特别关注,并衍生出多个变体,如GeoNeus[^20^]和HF-NeuS[^6^]。还有一些研究专注于通过扩展NeuS进行非封闭模型重建[^21^–^24^]。然而,这些工作都假设物体是不透明的。
2.2 透明物体的三维重建
由于折射和反射引起的复杂光路[^30^],透明物体的重建是一个重大挑战,这阻碍了多视角立体方法有效解决这一问题[^31^]。传统方法[^32^–^34^]使用额外的设备或假设来重建透明物体。Li等[^26^]使用深度学习进一步提高了重建质量,但往往会产生过度平滑的结果。随着NeRF[^3^]的发展,一些工作探索了如何使用神经渲染来重建透明物体[^25^,^27^,^35^–^37^],以捕捉更多细节。然而,它们都只关注透明物体,忽略了不透明物体。
还有一些工作试图在透明物体引起的反射和折射影响下,捕获不透明物体的正确几何形状[^38^–^39^]。NeRFReN[^38^]和Ref-NeuS[^28^]通过考虑NeRF流程中的反射来重建模型。NeuS-HSR[^9^]使用类似的想法通过分离反射效应来建模透明物体内的不透明物体。ReNeuS[^8^]考虑了反射和折射来建模玻璃内的不透明物体,但需要强有力的假设。这些方法专注于克服反射和折射的干扰来重建不透明模型。
但没有任何一种方法可以同时重建透明和不透明物体。它们都有自己的假设或条件,以减少反射或折射的影响。将这两个任务结合起来并非易事。请参阅表1以了解用例的全面比较。另一项并发工作[^39^]提出了一种基于NeRF的高效渲染方法,用于非不透明场景,采用烘焙的积分场。另一项并发工作,αSurf[^29^],扩展了Plenoxels[^40^],用于建模透明物体和不透明物体,同时忽略了反射和折射的影响。并发工作NU-NeRF[^41^]尝试同时建模透明和不透明物体,同时恢复折射。在本文中,我们提出了一种基于NeuS[^4^]的新算法,用于统一重建薄透明物体和不透明物体。
3. 方法
3.1 NeuS在不同透明度下的无偏密度映射
NeuS[^4^]使用符号距离场进行表面表示,并引入了由这些SDF诱导的密度分布,从而实现了神经体积渲染与SDF学习的结合。NeuS[^4^]证明了对于不透明物体,从SDF到密度的映射是无偏的,确保重建的表面是学习到的SDF的一阶近似。在本节中,我们进一步建立NeuS在从完全透明到完全不透明的材料连续体中都是无偏的。这一验证完善了NeuS的理论框架。
如果一个表面被认为是无偏的,那么渲染权重在表面上达到局部最大值。这是为了最小化表面与期望结果之间的差异。NeuS[^4^]假设表面是不透明的,并证明了零等值面是无偏的。对于透明表面,我们观察到NeuS也可以在透明表面上产生局部最小距离,这启发我们探索这些局部最小值的性质。我们有以下定理:
定理1:假设单条光线与平面相交,如果渲染的透明度$\alpha \leq 0.5$,学习到的距离场达到一个非负的局部最小值,且对应的色彩权重最大值与距离局部最小值对齐。否则,距离局部最小值小于零,且对应的色彩权重最大值与零等值面对齐。
请参阅附录A以了解证明的详细信息。这里我们仅概述证明内容。假设$\alpha$是透明度,光线从点$o$出发,方向为$d$,则光线表示为$r(t) = o + td$,参数为$t$。NeuS和HF-NeuS的密度函数为:
\[\sigma(r(t)) = \max \left( -s (1 - \Phi_s(f(r(t)))) \cos(\theta), 0 \right),\]其中$s$是可学习参数,$\Phi_s(\cdot)$是sigmoid函数,$\theta$是光线方向与距离场梯度之间的夹角。max
操作避免了在穿过距离场局部最小值后出现负的$\sigma$值。假设光线起点到平面的距离为$d_0$,则透明度$\alpha$为:
如果$m = 0$,透明度$\alpha = \frac{1 - e^{-s d_0}}{2} \approx 0.5$,因为$s$和$d_0$相对较大。为了简洁起见,我们在定理中简单地将0.5作为分水岭值。
渲染权重$w(t)$的导数为:
\[w'(t) = T(t) \left[ \sigma'(r(t)) - \sigma^2(r(t)) \right].\]如果局部最大权重出现在$t = t^{}$,则有$\sigma’(r(t^{})) = \sigma^2(r(t^{*}))$。将NeuS的密度函数代入上述方程,可得:
- 如果$m < 0$,则$f(r(t^*)) = 0$,零等值面达到最大渲染权重。
- 如果$m > 0$,则$w’(t) > 0$,渲染权重会持续增加,直到触及距离场的局部最小值。因此,距离场的局部最小值达到最大渲染权重。
- 如果$m = 0$,距离场达到最小值的点也恰好为零距离值,因此渲染权重在距离场局部最小值处达到最大。
定理的解释如下:如图1所示,如果$\alpha \leq 0.5$,距离场的局部最小值为非负值,无偏表面与局部最小值重合。如果$0.5 < \alpha < 1$,局部最小值为负值,无偏表面与前零等值面重合。如果$\alpha \to 1$,局部最小值接近负无穷大,后零等值面接近无穷大。随着透明度$\alpha$的增加,前后表面逐渐从重叠分离到无穷大,密度积分也逐渐增加到无穷大。
注释:在NeuS中,$s$是一个可学习的参数,它在训练过程中逐渐收敛到一个较大的值。较大的$s$值会使重建模型中的边缘和表面更加清晰,从而提升整体质量。然而,在实际应用中,由于数值计算的限制(例如采样点的数量),$s$无法无限增大。这使得$s$被限制在一个相对较高但有限的值,从而允许非零距离值对沿光线的颜色计算产生影响。颜色是通过对光线上的采样点的辐射度进行加权求和得到的,而不同的距离最小值有助于实现不同程度的透明度。
我们相信,较大的$s$值趋势,结合颜色损失以及MLP和数值计算的实际情况下,会达到一种平衡,从而实现最佳结果。
3.2 无偏表面提取
如第3.1节所述,我们的目标是从学习到的距离场中提取无偏表面。无偏表面可能是局部最小值或零等值面,具体取决于局部最小值是否为非负值。因此,NeuS学习到的距离场既不是UDF也不是SDF。如图1所示,当$\alpha \leq 0.5$时,距离场类似于UDF,其两侧的值均为正,无偏表面是局部最小值。由于局部最小值大于或等于零,距离场不是严格的UDF。然而,为了简化起见,我们仍然将这种距离场称为UDF。当$\alpha > 0.5$时,距离场是SDF,其在表面之前的值为正,表面之后的值为负。无偏表面是零等值面,而零并不是极值。因此,无偏表面是一个混合SDF和UDF,不能使用传统的等值面提取方法(如Marching Cubes)进行提取。在图3(a)中,零等值面无法提取透明半球。
为了从混合SDF和UDF中提取无偏表面,我们遵循DCUDF的思想来提取无偏表面。如图2(a)所示,给定NeuS学习到的混合距离场$f$,我们通过Marching Cubes提取一个非零等值面(用户指定等值$r$,$r > m$)的网格$M$(图2(b)和图3(b))。$M$将目标无偏表面包围起来。与DCUDF类似,我们计算一个覆盖映射,将$M$投影回局部最小值。然而,如果$\alpha > 0.5$,无偏表面不是局部最小值,而是零等值面。在图2(b)中,$f$在不透明盒子内部的值小于外部的值。如果我们按照$f$的局部最小值投影$M$,曲线会收缩到盒子内部。图3(c)展示了如果按照$f$的局部最小值投影$M$,不透明表面会收缩。然而,如图2(c)和图3(d)所示,如果我们取$f$的绝对值,记为$f_a$,则$f$的非负局部最小值和零等值面都是$f_a$的局部最小值。因此,$f_a$是一个UDF,其局部最小值是无偏表面。我们能够将$M$映射到局部最小值以提取无偏表面。按照DCUDF的两阶段优化过程,我们首先求解映射$\pi_1$,将$M$投影到$f_a$的局部最小值:
\[\min_{\pi_1} \sum_{p_i \in M \cup C} f_a(\pi_1(p_i)) + \lambda_1 \sum_{p_i \in M} w(p_i) \|\Delta \pi_1(p_i)\|^2,\]其中$\Delta \pi_1(p_i) = \pi_1(p_i) - \frac{1}{\lvert N(p_i)\rvert} \sum_{p_j \in N(p_i)} \pi_1(p_j)$是投影点$\pi_1(p_i)$的拉普拉斯算子,$C$是$M$的三角形质心集合。$f_a(\pi_1(p_i))$驱动点$p_i$投影到$f_a$的局部最小值。$N(p_i)$表示$p_i \in M$的1环邻域顶点,$w(p_i)$是根据$p_i$相邻三角形面的面积自适应调整的权重。第二项是拉普拉斯约束,防止网格在优化过程中折叠和自相交。
DCUDF进一步计算映射$\pi_2$,在第二阶段细化$\pi_1(M)$,进一步减少拟合误差。$-→ n_i$表示$\pi_1(M)$的第$i$个三角形面的法向量,其质心被鼓励沿着法向量$-→ n_i$移动,通过惩罚切向位移来防止网格折叠和自相交。第二阶段的损失函数为:
\[\min_{\pi_2} \sum_{p_i \in M \cup C} f_a(\pi_2 \circ \pi_1(p_i)) + \lambda_2 \sum_{p_i \in C} \|\pi_2 \circ \pi_1(p_i) - \pi_1(p_i)\| \times -→ n_i,\]其中$\times$是向量叉积。经过投影后,初始的$M$收缩到无偏表面,如图3(d)所示。由于表面可能包含非流形结构(例如透明和不透明表面的交点,如图2所示),我们没有应用最小割后处理[^11^]。因此,无偏表面是一个两层网格,在$m \geq 0$(即$\alpha \leq 0.5$)的区域中重合,在$m < 0$(即$\alpha > 0.5$)的区域中为单层网格。
表1:与相关工作在各自用例上的比较。
表2:在合成数据集上的定量评估(×10−3)。“g2d”表示从真实网格到重建网格的Chamfer距离,而“d2g”表示反向距离。“CD”表示“g2d”和“d2g”的平均值。最佳结果以粗体标记。
图1:沿穿过包含单个物体(用垂直线段表示)的场景的光线(黑色水平线)的符号距离的概念性说明。
(a) 当渲染的透明度$\alpha$小于或等于0.5时,物体的前后表面重合,最大权重与距离场的局部最小值对齐。
(b) 当$\alpha$超过0.5但小于1时,未渲染的后表面与前表面分离。后表面越远,渲染的前表面越不透明。在这种情况下,最大权重与零距离值的位置对齐。
(c) 对于完全不透明的表面,后表面位于无穷远处。因此,该场景可以被视为NeuS[^4^]讨论的单条光线与平面的交点。
图2:我们的网格提取过程说明。
(a) 橙色线条表示输入模型,其中虚线表示透明部分,实线表示不透明部分。颜色图表示距离场$f$。
(b) 提取的$r$等值曲线(红色)。
(c) 将等值曲线映射到绝对距离场$f_a$的局部最小值。
图3:在混合SDF和UDF$f$以及绝对场$f_a$上的投影比较。切割平面绘制了距离场。白线表示零等值面,橙线表示0.005等值面。
(a) 提取的零等值面,能够精确获得不透明表面,但透明表面消失。
(b) 提取的0.005等值面。
(c) 直接在原始场$f$上进行映射会导致不透明表面收缩。
(d) 相比之下,取绝对值后,所有无偏表面都能正确提取。
图4:在合成数据上的定性比较。我们的方法使用NeuS进行距离场学习,如法线图所示,原始NeuS实际上能够重建具有透明度的表面。我们的方法与NeuS之间的差异显著,因为NeuS无法使用Marching Cubes提取距离场局部最小值大于零的透明表面,而我们的理论验证并扩展了NeuS的学习能力,能够同时提取非负局部最小值和零等值面。
图5:真实网格上样本点到重建网格的距离小于给定值的百分比。蓝色:我们的方法;橙色:零等值面。
图6:在真实世界数据上的定性比较。
图7:与基于UDF的重建方法NeUDF[^21^]在合成和真实世界数据上的比较。尽管NeUDF能够成功重建透明表面和内部结构,但它无法保留细节,并且在重建复杂结构时存在困难。合成Snowglobe的Chamfer距离(×10−3)显示在下方,Snowglobe以截面视图展示。
图8:输入多视角图像中的反射和折射(左侧)可能导致距离场学习中的歧义(中间),从而阻止我们的方法提取所需的表面(右侧)。这种现象在复杂光照条件下重建圆柱体或球体时尤为明显。
4. 实验
4.1 实验设置
数据集:由于缺乏相关数据集,我们准备了一个包含5个合成场景和5个真实世界场景的数据集。合成数据使用Blender渲染,真实数据由我们自行采集,并借助ArUco标定板进行相机标定。
基线方法:我们与NeuS和NeUDF进行比较,NeUDF从多视角图像中学习UDF。
实现细节:我们的训练结构与NeuS相同。我们还遵循了NeuS作者为合成数据集推荐的配置,没有更改损失函数或其各自的权重。也就是说,我们选择了$\lambda_1 = 1.0$用于色彩损失,$\lambda_2 = 0.1$用于Eikonal损失。所有训练均未使用掩码。
为了通过DCUDF提取无偏表面,我们选择0.005作为合成场景的阈值,真实世界场景则使用0.002或0.005。我们几乎使用了与DCUDF相同的设置进行实验。DCUDF采用两阶段优化过程。我们分别进行了300个周期的第一步和100个周期的第二步,这是DCUDF的默认设置。我们使用了VectorAdam优化器,如DCUDF所建议的。我们设置了权重$\lambda_1 = 500$和$\lambda_2 = 0.5$,这与DCUDF的默认设置不同。
NeuS的训练过程通常需要约9.75小时,而DCUDF收敛仅需几分钟,运行在一个NVIDIA A100 GPU上。
4.2 合成数据
在本节中,我们关注合成Blender数据集,其中每个合成数据集包含100张来自不同视角的训练图像。我们将重建结果与NeuS进行比较,并在阈值为0和0.005时与NeuS的Chamfer距离进行比较。我们在表2中报告了Chamfer距离的结果。结果表明,我们的方法能够有效地重建无偏表面,无论是透明物体还是不透明物体。请参阅图4进行定性比较。
与从NeuS提取的零等值面相比,由于正的最小距离,大量透明表面缺失于重建网格中,因此从真实网格到重建网格的单向Chamfer距离显著增加。图5展示了真实模型样本点距离重建网格小于给定值的百分比。最终比率反映了重建模型的完整性。显然,我们的方法均实现了100%的完整性,表明我们的模型中不存在不必要的孔洞。相比之下,如果提取零等值面,大约有20%到40%的孔洞仍然存在。与从NeuS提取0.005等值面相比,提取的表面并不对应于最大色彩权重,从而导致重建到真实网格的单向Chamfer距离次优。我们的方法保留了透明表面,同时保持无偏性,从而在所有数据上实现了最佳的Chamfer距离。
4.3 真实世界数据
我们还采集了5个真实世界场景进行验证。由于缺乏真实网格数据,我们在真实世界场景上进行了定性比较。结果如图6所示。视觉结果表明,我们的方法在真实世界场景中对透明和不透明表面都表现出良好的重建质量,即使在复杂光照条件下也是如此。相比之下,NeuS的零等值面无法提取完整的表面,导致出现伪影。
4.4 讨论
NeuS的选择:我们选择NeuS作为重建的骨干网络,它学习混合SDF和UDF。然而,在表面提取的投影阶段,我们使用距离场的绝对值。取绝对值后的距离场$f_a$类似于UDF。虽然直接使用UDF学习方法可以避免距离场转换过程,但我们选择NeuS而不是UDF学习方法,因为NeuS是一种简单、稳定且鲁棒的SDF学习方法,也能够重建细节。我们进一步与UDF学习方法NeUDF进行了比较。我们注意到,其他UDF学习方法(包括NeuralUDF和2S-UDF)都利用了不透明表面的假设,引入了指示函数或射线截断策略。这使得NeUDF成为唯一理论上能够在单条射线上渲染多层表面的方法。
图7展示了与NeUDF的比较。由于NeUDF的零距离值会导致不透明表面,透明物体学习到的最小距离值也为正。我们使用DCUDF提取表面,而不是NeUDF默认使用的MeshUDF,因为MeshUDF只能提取零等值面。NeUDF重建的模型过于平滑,缺乏许多复杂结构。合成模型的定性测量也表明,NeUDF导致更大的Chamfer距离。这是由于UDF学习的不稳定性,需要额外的正则化器才能成功收敛,通常以牺牲重建保真度为代价。
局限性:尽管我们的方法在合成和真实世界数据上都得到了有效的验证,但它并不能处理所有用例。我们的方法与αSurf一样,允许同时重建不透明和透明物体。其他工作要么专注于重建不透明物体,要么专注于在某些假设下重建纯玻璃物体(涉及折射和反射)。然而,我们的方法并不是为处理复杂光照条件(如强烈的折射或反射)而设计的。如图8所示,当使用NeuS作为骨干网络时,存在反射和折射的场景可能会产生模糊的距离场,从而无法获得理想的表面。对于这些情况,一方面,可以通过改善光照条件来减少折射和反射的发生。在我们的实验中,我们使用偏振片减少反射,并尽量只建模几乎没有折射的薄透明物体。另一方面,也可以考虑使用现有的反射去除算法[^43^]。此外,将骨干网络替换为专注于不透明物体重建的模型(如Ref-NeuS或ReNeuS,尽管它们并不重建透明物体本身)也可以考虑。这将是我们的未来研究方向之一。
5. 结论
总体而言,α-NeuS为NeuS提供了新的视角。我们证明了NeuS对透明物体的无偏性,并通过提出统一的理论和实践框架,扩展了NeuS在透明和不透明表面重建方面的能力。基于DCUDF,我们同时提取了透明和不透明表面的无偏表面,用于模型重建。我们建立了一个包含5个合成和5个真实世界场景的基准数据集进行验证。我们的实验结果表明,我们提出的方法是有效的,并具有实际应用潜力。
6. 致谢
本研究得到了国家重点研发计划(2023YFB3002901)、中科院软件所基础研究项目(ISCAS-JCMS-202303)、中科院软件所重大项目(ISCAS-ZD-202401)、新加坡教育部学术研究基金(MOE-T2EP20220-0005 & RT19/22)以及RIE2020产业对齐基金——产业合作项目(IAF-ICP)资助计划以及产业合作伙伴的现金和实物贡献的支持。 Kimi: 好的,以下是附录部分的翻译:
附录A:定理1的证明
定理1:假设单条光线与平面相交,如果渲染的透明度$\alpha \leq 0.5$,学习到的距离场达到一个非负的局部最小值,且对应的色彩权重最大值与距离局部最小值对齐。否则,距离局部最小值小于零,且对应的色彩权重最大值与零等值面对齐。
证明:在开始证明之前,我们首先对渲染的透明度$\alpha$进行讨论。我们定义渲染的透明度$\alpha$为沿整个光线$r(t) = o + td$的色彩权重$w(t)$的积分。这一定义与NeuS代码中计算透明度的方式一致,具体如下:
\[\alpha = \int_{0}^{+\infty} w(t) \, dt\]HF-NeuS发现色彩权重$w(t)$与累积透射率$T(t)$之间的关系如下:
\[\frac{dT(t)}{dt} = -T(t) \sigma(r(t)) = -w(t)\]因此,我们可以将色彩权重$w(t)$的积分简化为累积透射率$T(t)$的导数的积分,从而直接将渲染的透明度$\alpha$与$T(t)$联系起来,具体如下:
\[\alpha = \int_{0}^{+\infty} w(t) \, dt = \int_{0}^{+\infty} -\frac{dT(t)}{dt} \, dt = T(0) - \lim_{t \to +\infty} T(t) = 1 - \lim_{t \to +\infty} T(t)\]我们的证明分为两部分。第一部分证明定理中描述的距离场可以导致不同的渲染透明度$\alpha$。第二部分证明定理中声称的无偏性。
第一部分:证明不同透明度$\alpha$的范围
首先回顾NeuS中定义的密度函数。NeuS和HF-NeuS都推导出了相同的密度公式,如下所示:
\[\tilde{\sigma}(r(t)) = -\frac{d}{dt} \Phi_s(f(r(t))) = -s (1 - \Phi_s(f(r(t)))) \cos(\theta)\]其中,$\Phi_s(\cdot)$是参数为$s$的sigmoid函数,$\theta$是光线方向与距离场梯度之间的夹角,且$\cos(\theta) < 0$。NeuS和HF-NeuS进一步将$\tilde{\sigma}$截断为0,以确保密度值非负,如下所示:
\[\sigma(r(t)) = \max(\tilde{\sigma}(r(t)), 0)\]我们考虑光线仅与一个前向平面在$t = t_0$处相交的场景。设距离场的局部最小值为$m$,则符号距离函数$f(r(t))$可以显式表示如下:
\[f(r(t)) = \begin{cases} \frac{|t - t_0| \cdot |\cos(\theta)|}{s} + m, & \text{如果 } m \geq 0 \\ \frac{|t - t_0 - \frac{-m}{|\cos(\theta)|}| \cdot |\cos(\theta)|}{s} + m, & \text{如果 } m < 0 \end{cases}\]图9帮助理解方程(8)中的不同项。
当$m \geq 0$时,直接计算$\alpha$如下:
\[\alpha = 1 - \lim_{t \to +\infty} T(t) = 1 - \exp\left(-\int_{0}^{+\infty} \sigma(r(t)) \, dt\right)\]由于$\sigma(r(t))$在$t < t_0$时为0,因此:
\[\alpha = 1 - \exp\left(-\int_{t_0}^{+\infty} \sigma(r(t)) \, dt\right) = 1 - \exp\left(-\int_{t_0}^{+\infty} -s \frac{e^{-sf(r(t))}}{1 + e^{-sf(r(t))}} \cos(\theta) \, dt\right)\]通过变量替换$sf(r(t))$,我们得到:
\[\alpha = 1 - \exp\left(-\int_{sm}^{+\infty} \frac{e^{-u}}{1 + e^{-u}} \, du\right) = 1 - \frac{e^{-st_0 |\cos(\theta)|}}{1 + e^{sm}}\]由于$m \geq 0$,因此$\alpha \in \left(0, \frac{1 - e^{-st_0 \lvert\cos(\theta)\rvert}}{2}\right]$。如果用$d_0$表示光线起点到表面的距离,则可以将上述结果重写为:
\[\alpha = \frac{1 - e^{-sd_0}}{1 + e^{sm}} \in \left(0, \frac{1 - e^{-sd_0}}{2}\right]\]当$m = 0$时,距离场对应于场景的UDF。2SUDF发现,将NeuS的密度函数应用于UDF会导致渲染表面出现透明效果。我们的理论结果解释了这一现象。
当$m < 0$时,直接计算$\alpha$如下:
\[\alpha = 1 - \lim_{t \to +\infty} T(t) = 1 - \exp\left(-\int_{0}^{+\infty} \sigma(r(t)) \, dt\right)\]由于$\sigma(r(t))$在$t > t_0 + \frac{-m}{\lvert\cos(\theta)\rvert}$时为0,因此:
\[\alpha = 1 - \exp\left(-\int_{0}^{t_0 + \frac{-m}{|\cos(\theta)|}} \sigma(r(t)) \, dt\right) = 1 - \exp\left(-\int_{0}^{t_0 + \frac{-m}{|\cos(\theta)|}} -s \frac{e^{-sf(r(t))}}{1 + e^{-sf(r(t))}} \cos(\theta) \, dt\right)\]通过变量替换$sf(r(t))$,我们得到:
\[\alpha = 1 - \exp\left(-\int_{sm}^{st_0 |\cos(\theta)|} \frac{e^{-u}}{1 + e^{-u}} \, du\right) = 1 - \frac{1 + e^{-st_0 |\cos(\theta)|}}{1 + e^{-sm}}\]由于$m < 0$,因此$\alpha \in \left(\frac{1 - e^{-st_0 \lvert\cos(\theta)\rvert}}{2}, 1\right)$。用$d_0$表示光线起点到表面的距离,则可以将上述结果重写为:
\[\alpha = 1 - \frac{1 + e^{-sd_0}}{1 + e^{-sm}} \in \left(\frac{1 - e^{-sd_0}}{2}, 1\right)\]在这种情况下,每个前向平面的后向平面(由于密度的截断而不被渲染)开始从前向平面分离。$m$越大,后向平面越远。当后向平面无限远时,$m$将趋近于$-\infty$。此时,渲染的透明度$\alpha$将趋近于1,即完全不透明。这种场景可以被视为单条光线与平面的交点,NeuS和HF-NeuS正是基于这种场景推导出密度函数的。
将两种情况结合起来,不同的$m$选择可以覆盖从0到1的所有渲染透明度$\alpha$。两种情况的分水岭$\alpha$为$\frac{1 - e^{-sd_0}}{2}$。由于训练后参数$s$会收敛到一个较大的值,且光线起点通常远离表面(即$d_0$相对较大),因此分水岭$\alpha$约为0.5。
第二部分:证明无偏性
只有在$\cos(\theta) < 0$的区域才会对渲染颜色做出贡献,而色彩权重函数$w(t)$在此区域内连续且光滑。因此,$w(t)$关于$t$的导数如下:
\[w'(t) = [T(t) \sigma(r(t))]' = T'(t) \sigma(r(t)) + T(t) \sigma'(r(t)) = (-T(t) \sigma(r(t))) \sigma(r(t)) + T(t) \sigma'(r(t)) = T(t) \left[\sigma'(r(t)) - \sigma^2(r(t))\right]\]如果局部最大值出现在$t = t^$,则有$w’(t^) = 0$。由于$T(t) > 0$始终成立,因此以下方程必须成立:
\[\sigma'(r(t^*)) = \sigma^2(r(t^*))\]由于
\[\sigma'(r(t^*)) = \left[-s \left(1 - \frac{1}{1 + e^{-sf(r(t^*))}}\right) \cos(\theta)\right]' = s^2 \cos^2(\theta) \frac{e^{-sf(r(t^*))}}{\left(1 + e^{-sf(r(t^*))}\right)^2}\]以及
\[\sigma^2(r(t^*)) = s^2 \cos^2(\theta) \frac{e^{-2sf(r(t^*))}}{\left(1 + e^{-sf(r(t^*))}\right)^2}\]解上述方程,我们得到:
\[1 = e^{-sf(r(t^*))} \Rightarrow f(r(t^*)) = 0\]当$m < 0$时,距离场的零值位置出现在$t^* = t_0$,最大权重位置与距离场零值位置对齐。
当$m = 0$时,距离场最小值的位置也是零值的位置。因此,最大权重出现在零距离位置,该位置也是距离场最小值的位置。
当$m > 0$时,距离场无零值。在这种情况下,对于所有$t < t_0$:
\[m > 0 \Rightarrow \sigma^2(r(t)) = \sigma'(r(t)) \cdot e^{-sf(r(t^*))} < \sigma'(r(t)) \cdot e^{-s \cdot 0} = \sigma'(r(t)) \Rightarrow w'(t) > 0\]这意味着色彩权重在距离场达到最小值之前持续增加,表明最大权重位置与距离场最小值位置对齐。
至此,证明完成。
附录B:更多实验结果
B.1 与NeUDF的更多比较
图10展示了更多NeUDF的结果,其表面通过DCUDF提取。与我们论文中α-NeuS的结果相比,NeuS骨干网络在定量和定性测量方面均优于NeUDF骨干网络。
B.2 空透明物体
我们的数据大多集中在透明和不透明物体比例大致相等的场景中。我们包含了一个合成案例,其中物体的大部分是透明的,且没有折射或反射。结果如图11所示。
B.3 在DTU数据集[^44^]上的实验结果
我们还在DTU数据集上进行了实验,这是一个不透明物体数据集。理论上,当应用于纯不透明数据集时,我们的方法本质上等同于原始NeuS[^4^]。我们在图12中展示了选定数据的结果。尽管NeuS学习到的SDF并不完全干净,可能会在物体内部振荡,但这并不会干扰DCUDF的网格提取过程[^11^],如图12的顶部所示。此外,DCUDF可以比Marching Cubes更准确地解析网格顶点,Marching Cubes依赖于插值来近似网格顶点之间的零值位置,因此在某些情况下,DCUDF提取的网格可以实现比Marching Cubes更低的Chamfer距离。DCUDF的作者也报告了类似的结果[^11^](表3)。
附录C:数据集致谢
感谢活跃的Blender社区提供了多样化的模型,推动了我们的实验。特别感谢Rina Bothma创建瓶子模型,Joachim Bornemann创建案例模型,Rudolf Wohland创建罐子模型,以及Eleanie创建草莓模型并将其放入罐子中。这些模型在https://www.blenderkit.com/docs/licenses/下以免费授权的方式发布。此外,感谢MrSorbias在YouTube上提供了一个适合初学者的Blender制作雪球的教程。
评论