S3-NeRF 通过利用不同点光源下捕获的单视图图像学习神经反射场(neural reflectance field)以重建场景的 3D 几何和材质信息。与依赖于视图间照片一致性(photo-consistency)的多视图场景重建(multi-view scene reconstruction)不同,S3-NeRF 主要利用图像中的 shading 和 shadow 信息来推断可见 / 不可见区域的场景几何。
目前图像 3D 重建工作通常采用恒定自然光照条件下从多个视点(multi-view)捕获目标场景的多视图立体重建方法(Multi-view Stereo)。然而,这些方法通常假设朗伯表面,并且难以恢复高频细节。
另一种场景重建方法是利用固定视点但不同点光源下捕获的图像。例如光度立体 (Photometric Stereo) 方法就采用这种设置并利用其 shading 信息来重建非朗伯物体的表面细节。然而,现有的单视图方法通常采用法线贴图(normal map)或深度图(depth map)来表征可见表面,这使得它们无法描述物体背面和被遮挡的区域,只能重建 2.5D 场景几何。此外,法线贴图无法处理深度不连续的情况。在最近的一项研究中,来自香港大学、香港中文大学(深圳)、南洋理工大学、MIT-IBM Waston AI Lab 的研究者们提出了通过利用单视图多光源(single-view,multi-lights)图像,重建完整 3D 场景的工作。![](https://image.jiqizhixin.com/uploads/editor/ef18e509-206a-4c45-a3ba-e592c727ec1b/640.png)
- 论文链接:https://arxiv.org/abs/2210.08936
- 论文主页:https://ywq.github.io/s3nerf/
- 代码链接:https://github.com/ywq/s3nerf
与现有基于法线贴图或深度图的单视图方法不同,S3-NeRF 基于神经场景表征(neural scene representation),同时利用场景中的 shading 和 shadow 信息来重建整个 3D 场景(包括可见 / 不可见区域)。神经场景表征方法使用多层感知器 (MLP)对 连续 3D 空间进行建模,将 3D 点映射到如密度、颜色等的场景属性。尽管神经场景表征在多视图重建和新视图合成方面取得了重大进展,但其在单视图场景建模中的探索较少。与现有依赖多视图照片一致性的基于神经场景表征的方法不同,S3-NeRF 主要通过利用单视图下的 shading 和 shadow 信息来优化神经场。我们发现简单的在 NeRF 中直接引入光源位置信息作为输入无法重建场景的几何和外观。为了更好地利用捕获的光度立体图像,我们使用反射场(reflectance field)对表面几何和 BRDF 进行显式建模,并采用基于物理的渲染来计算场景 3D 点的颜色,并通过立体渲染得到该光线(ray)对应的二维像素的颜色。同时,我们对场景的可见度(visibility)进行可微建模,通过追踪 3D 点到光源之间的光线,计算该点的可见度。然而,考虑一条光线上所有采样点的可见性计算成本较大,因此我们通过计算光线追踪得到的表面点的可见性来优化阴影建模。![](https://image.jiqizhixin.com/uploads/editor/e5a6f410-97c7-4f07-8b48-3bd96765a316/640.png)
我们采用类似 UNISURF 的 occupancy field 来表征场景几何。UNISURF 通过 MLP 将 3D 点坐标及视线方向映射到该点的 occupancy 值和颜色,并通过立体渲染得到像素的颜色,![](https://image.jiqizhixin.com/uploads/editor/6a8aaa66-f349-4985-8d53-e5dbb6f9a291/640.png)
为了有效利用光度立体图像中的 shading 信息,S3-NeRF 显式地对场景的 BRDF 进行了建模,并使用基于物理的渲染得到 3D 点的颜色。同时我们对场景 3D 点的光可见性进行建模以利用图像中丰富的阴影线索,并通过下式得到最后的像素值。![](https://image.jiqizhixin.com/uploads/editor/a0629f6a-1350-4d83-a0ae-bc0bffd0a3d6/640.png)
![](https://image.jiqizhixin.com/uploads/editor/64f0fe4a-501b-4cc0-a0da-ba7c66433dac/640.png)
我们的方法考虑了非朗伯表面和空间变化的 BRDF。点 x 在近场点光源(pl, Le)下从视线方向 d 观测得到的值可以表示为![](https://image.jiqizhixin.com/uploads/editor/7a4922dd-08c2-4715-8ea0-84115d2871a1/640.png)
其中,我们考虑到点光源的光线衰减问题,通过光源 - 点之间的距离计算入射该点处的光照强度。我们采用考虑漫反射和镜面反射的 BRDF 模型![](https://image.jiqizhixin.com/uploads/editor/3ed4743a-0497-4115-a7ef-f9690b194caa/640.png)
通过球形高斯(Sphere Gaussian)基的加权组合来表示镜面反射率![](https://image.jiqizhixin.com/uploads/editor/84bd3b1b-cd3e-44d2-a766-4dab03e2ce5a/640.png)
阴影在场景几何重建中是至关重要的其中一个线索。图中的三个物体在正视图中具有相同的形状和外观,但其背面却是形状各异。通过不同光照下产生的阴影,我们可以观察到其阴影的形状各不相同,这些反应了正视图中不可见区域的几何信息。光线通过映射在背景中的阴影对物体的背面轮廓产生了一定的约束。![](https://image.jiqizhixin.com/uploads/editor/bc2fb177-2e32-4ba2-aea1-dc9435e42810/640.png)
我们通过计算 3D 点 - 光源之间的 occupancy 值来反映该点的光可见度![](https://image.jiqizhixin.com/uploads/editor/ef0ed72f-562b-4a77-897e-7f1e4c94884f/640.png)
由于计算像素点沿光线采样的所有 Nv 点的可见度计算成本较大(O (NvNL)),现有的方法有的采用 MLP 直接回归点的可见度(O (Nv)),或是得到场景几何后预先提取表面点(O (NL))。S3-NeRF 则通过 root-finding 定位的表面点以在线方式计算该像素的光可见度,并通过下式表示像素值。![](https://image.jiqizhixin.com/uploads/editor/9b1915c5-02d7-47f3-bc94-7d56fa3403ed/640.png)
![](https://image.jiqizhixin.com/uploads/editor/b0398160-d398-4601-82ed-825b278ad11a/640.png)
我们的方法不需要对阴影进行监督,而是依靠图像的重建 loss 来进行优化。考虑到单视角下没有其他视角带来的额外约束,如果采用类似 UNISURF 逐渐缩小采样范围的采样策略,将会导致模型在采样间隔减小后开始退化。因此,我们采用联合立体渲染和表面渲染的策略,利用 root-finding 定位得到的表面点渲染颜色并计算 L1 loss。![](https://image.jiqizhixin.com/uploads/editor/1a7ac716-7561-4186-b771-1bff82f8e0af/640.png)
我们首先与基于神经辐射场的两个 baseline 方法进行比较(由于任务不同,我们在其颜色 MLP 中引入光源信息)。可以看到它们无法重建场景几何,也无法准确生成新光照下的阴影。![](https://image.jiqizhixin.com/uploads/editor/87f5fd26-eea1-4d29-98b7-78bb1950725c/640.png)
在与现有单视图法线 / 深度估计的方法比较中可以看到,我们的方法在法线估计和深度估计上都取得了最好的结果,并且能够同时重建场景中可见与不可见的区域。![](https://image.jiqizhixin.com/uploads/editor/5d075bc1-1cf3-4db9-a8cc-08d58f95544b/640.png)
![](https://image.jiqizhixin.com/uploads/editor/6440d0da-5e29-499f-ac18-cd51b5c36249/640.png)
基于神经反射场的场景建模,我们成功解耦了场景的几何 / 材质 / 光照等,因而可以应用于新视图渲染、改变场景光照、材料编辑等应用。![](https://image.jiqizhixin.com/uploads/editor/56a0cbd0-38ce-4aad-a6c3-e2c0deb17c8c/640.png)
我们拍摄了三个真实场景来探索其实用性。我们将相机位置固定,利用手机的手电筒作为点光源(环境光源关闭),手持手电筒随机移动以捕捉不同光源下的图像。该设置无需光源校准,我们应用 SDPS‑Net 得到光源方向的粗略估计,并粗略估计相机 - 物体及光源 - 物体的相对距离来初始化光源位置。光源位置在训练过程中随场景的几何和 BRDF 联合优化。可以看到即便是较为随意的数据捕捉设置(没有对于光源的校准),我们的方法仍能较好的重建 3D 场景几何。![](https://image.jiqizhixin.com/uploads/editor/aaaf69e2-e566-4f1d-a199-676a9ed7a6e3/640.png)
- S3-NeRF 通过利用单视图多个点光源下拍摄的图像来优化神经反射场以重建 3D 场景几何和材质信息。
- 通过利用 shading 和 shadow 线索,S3-NeRF 能有效恢复场景中可见 / 不可见区域的几何形状,实现单目视角下完整场景几何 / BRDF 的重建。
- 各项实验表明我们的方法能够重建各种复杂几何 / 材质的场景,并能应对各种几何 / 材质的背景以及不同的光照数量 / 光源分布。