三维重建是计算机图形学的经典任务,具有很强的使用价值。近年来,诸如神经辐射场的隐式场方法 [1][2][3][4] 正成为重建任务广泛采用的表示。
这些方法能在不需要掩膜等额外输入的情况下,对具有漫反射和光滑反射的场景进行重建。然而,对于具有折射或透明材质的,乃至出现嵌套现象(即透明物体内部还有其他物体,内部物体也可以是透明的)的场景的重建,无论是隐式场方法还是传统方法都难以解决。
诚然,已经有一些工作对透明物体的重建进行探索 [5][6][7],然而这些工作都不能重建嵌套物体,且他们需要额外的输入信息以减少透明物体的二义性,如掩膜或要求场景在特殊的背景下进行拍摄等。
为解决此问题,中科院计算所高林老师团队、加州大学圣芭芭拉分校闫令琪教授、3D 重建公司 KIRI Innovations 合作提出了一种通过对嵌套透明物体进行重建的方法 NU-NERF《NU-NeRF: Neural Reconstruction of Nested Transparent Objects with Uncontrolled Capture Environment》[8]。
项目主页:http://geometrylearning.com/NU-NeRF/
该方法能在不需要额外输入,也不需要特殊捕捉场景的情况下对嵌套透明物体进行重建。该项研究工作已经被 ACM TOG 录用,并将在 SIGGRAPH Asia 2024 报告。
图 1 和图 2 即为 NU-NeRF 对实拍嵌套透明场景的重建效果展示。
图 1. NU-NeRF 对实拍场景的重建和在新场景中的渲染
图 2. NU-NeRF 对实拍场景与合成场景的重建和在新场景中的渲染
塑料、玻璃等透明材质是日常生活中最为常见的材质之一,然而这些材质的重建任务十分具有挑战性。其根本原因是光线在透明材质表面发生折射,从而产生高度不连续的表面颜色,且此颜色十分容易和背景混淆。
为解决此问题,已有工作的基本思路是对问题施加更多约束。早期方法 [9] 施加约束的方法是利用特殊的捕捉设备来捕捉光线的偏振和光程等信息,并利用确定性的算法来进行重建。也有基于计算机视觉和机器学习的方法 [6] 利用预先渲染的大量数据学习从图像中预测透明物体的方法。
近年来基于神经辐射场的方法 [10] 通过在物体后面放置一个具有已知图案的背景来直接得到光线经过折射之后的精确位置,从而利用此先验设计损失函数,进行重建。
然而这些施加约束的方法有两个限制:1)需要额外的捕捉设备、捕捉环境或输入信息(如掩膜等),无法让用户在随机的环境下进行拍摄重建;2)因为在使用先验的过程中假设了光线在物体内部没有遭到遮挡和反射,并只经过两次折射,所以这些方法无法重建嵌套的物体。
针对以上问题,论文作者提出了 NU-NeRF 。它是一种新的嵌套透明物体重建管线。如图 3 所示,NU-NeRF 的输入是以不同视角拍摄同一包含嵌套透明物体的场景的图片,输出则是对该场景内部、外部几何的重建以及一定程度的解耦。重建和解耦结果可以导入渲染软件中(如 Blender 等)进行重新渲染,实现现实物体的数字化。
图 3. NU-NeRF 对不同类型场景的内外重建和重渲染结果
NU-NeRF 的管线由两步组成。第一步的目标是重建外层几何。外层几何的重建是至关重要的一步,因为它直接影响了第二步的内层几何质量。其要解决的首要问题就是上述的折射的二义性。
NU-NeRF 解决此问题的方法十分简单:分开建模透明表面的反射和折射。对于其反射颜色进行准确建模,但对其折射颜色直接利用一个 MLP 网络进行预测。这一策略的底层逻辑是,在重建过程中不需要准确建模折射颜色,只需要提供对折射的一个「平均化」估计即可。
第二步的目标是利用重建得到的显式外层几何,在几何内部进行第二次重建。这一步对外层几何进行了显式的光线追踪,并对不同的外层几何类型(区别在于表面厚度是否可忽略)分别进行了建模。
NU-NeRF 的整体框架如图 4 所示。
图 4. NU-NeRF 方法示意图
外层几何重建和光照模型
如图 4 从左到右第二块所示,在外层几何的重建过程中,NU-NeRF 使用了神经渲染方法进行重建。对于神经渲染过程中的每个采样点,采用了基于物理的渲染方式。具体来说就是将表面反射的颜色分为反射和折射,并分别建模它们。
对于反射,NU-NeRF 参考了 NeRO [4] 的建模方法,利用 Split Sum 近似方法将传统渲染方程的光滑反射分为两个不同的积分 L 和 M:
L 和 M 两个积分分别对应光照和材质本身的性质。其中 M 可以通过预计算得到,L 则通过网络预测得到。
在 NU-NeRF 中,除了神经渲染方法中常见的颜色损失和 eikonal 损失之外,还添加了一个损失函数:ilc(入射光一致性,incident light consistency)损失。
此损失的来源是,NU-NeRF 会用一个神经辐射场来近似重建物体之外的场景(如物体放置的桌子,远景等),而入射光一致性损失鼓励 L 中预测得到的光照和该神经辐射场的颜色一致,这样可以改进重建的质量。
如图 4 所示,对于某个采样点处来自方向 ω 的入射光,通过体渲染计算对应方向上的远景颜色,并利用 L2 损失鼓励两者相等。
图 5. 入射光一致性损失示意
对于折射,相比于此前方法复杂的光线追踪过程,NU-NeRF 采用了一个十分简单的策略:直接利用神经网络进行预测。
此神经网络的输入是采样点的坐标 p 和光线方向 ω,输出是 RGB 颜色。由于神经网络固有的低通滤波性质,其自然输出的就是一个「平均化」的折射颜色。实验结果表明,这个简单的策略能得到较好的结果。
第一步的重建结果样例如图 4 第二块下半部分所示,这一步能重建出准确的外层几何和光照,但由于折射的颜色是由网络直接预测的,所以较为模糊。因此第一步重建结果是无法直接进行新视角合成的。这就是减少二义性的「代价」。
显式光线追踪和内层几何重建
如图 4 从左到右第三块所示,在重建得到外层几何之后,NU-NeRF 进行内层几何的重建。这一步中,将第一步得到的外层几何从隐式场中提取成显式网格并固定。
对于每条神经渲染的采样光线,先对其进行追踪得到和外层几何的交点,并利用折射定律(Snell 定律)计算出其折射到内部的方向。在外层几何内部再进行真正的采样和渲染。请注意,在这个光线追踪过程中,折射率是定义在外层几何上,并且通过网络预测得到的。图 4 中也展示了学习得到的折射率可视化图像,可以看到学习到的折射率的一致性较高。
显式光线追踪过程中对表面的建模
如上节所述,光线追踪过程主要涉及在外层几何表面处的折射计算。然而,Snell 定律只适用于内、外层是两种不同材质的情况。
在现实中,可能出现界面处有三种不同材质的情况,典型的例子就是容器。塑料瓶、玻璃瓶这种容器壁和内、外层材质都不同,且「容器」这种物体在现实生活中十分常见,因此需要对这种情况进行更加细致的考虑。
图 6. NU-NeRF 阳光颜色先验
如图 6 所示,NU-NeRF 在进行表面建模时考虑了多种不同类型的材质。图 6(a)中描绘的就是通常 Snell 定律考虑的界面,其入射角和出射角的正弦比值为折射率比值倒数。
图 6(b)(b2) 中描述的是一种厚度可以忽略的容器材质,其入射和出射点的法线可以视为相同,因此其入射角和出射角的比值仅取决于内、外材质的折射率。
而图 6(c)中的场景为厚度不可忽略的容器,其入射点和出射点法线不同。对于这种材质,NU-NeRF 使用球形来近似入射点和出射点的局部几何,球的半径由物体在此处的曲率决定。
最后,如图 6(d)所示,为了防止在一些角度,这种带有厚度的材质在物体边缘处出现在容器壁内部多次折射的情况,NU-NeRF 用一个掩膜(mask)直接将边缘处的采样舍弃。
为检验所提出的方法的有效性,NU-NeRF 在合成、实拍数据集上均进行了实验,其中合成数据集具有真值(ground truth),实拍数据集有一部分从网络上收集得到,因此没有真值。重建实验的对比方法是 [5] 和 [6] 两种已有方法。
图 7 展示了不同方法重建合成场景的效果,可以看到之前的方法在没有嵌套几何时的表现较好,但在出现嵌套几何以及不透明材质和透明材质混合场景时,会出现较严重的性能下降。图 8 图 9 展示了不同方法重建实拍场景的结果。可以看到,NU-NeRF 在不同类型的场景上都能准确重建出外层几何,并较为准确的重建出内层几何,
图 7. NU-NeRF 在重建合成场景的内外几何上和现有方法对比
图 8. NU-NeRF 在重建实拍场景(无真值)的内外几何上和现有方法对比
图 9. NU-NeRF 在重建实拍场景(有真值)的内外几何上和现有方法对比
总结与展望
NU-NeRF 的核心思想是将复杂的嵌套透明物体重建问题简单化,并分为两步进行重建。针对透明物体固有的二义性问题,NU-NeRF 不选择此前类似方法直接进行光线追踪的方案,而是利用网络直接预测折射的颜色,这样在牺牲新视角合成准确性的前提下,提高了几何重建的准确性。
而有了外层几何的准确重建,就去除了问题中的大部分二义性,并可以利用显式光线追踪来进行内层几何的重建。同时,NU-NeRF 也针对容器类物体提出了一种折射计算的近似方案,能够在不过多降低运行速度的前提下进行较为复杂的物体的重建。
文章来自于“机器之心”,作者“机器之心”。