NeurIPS 2022 | 利用多光照信息的单视角NeRF算法S^3-NeRF,可恢复场景几何与材质信息

简介: NeurIPS 2022 | 利用多光照信息的单视角NeRF算法S^3-NeRF,可恢复场景几何与材质信息


作者:杨雯琦

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 场景的工作。



与现有基于法线贴图或深度图的单视图方法不同,S3-NeRF 基于神经场景表征(neural scene representation),同时利用场景中的 shading 和 shadow 信息来重建整个 3D 场景(包括可见 / 不可见区域)。神经场景表征方法使用多层感知器 (MLP)对 连续 3D 空间进行建模,将 3D 点映射到如密度、颜色等的场景属性。尽管神经场景表征在多视图重建和新视图合成方面取得了重大进展,但其在单视图场景建模中的探索较少。与现有依赖多视图照片一致性的基于神经场景表征的方法不同,S3-NeRF 主要通过利用单视图下的 shading 和 shadow 信息来优化神经场。

我们发现简单的在 NeRF 中直接引入光源位置信息作为输入无法重建场景的几何和外观。为了更好地利用捕获的光度立体图像,我们使用反射场(reflectance field)对表面几何和 BRDF 进行显式建模,并采用基于物理的渲染来计算场景 3D 点的颜色,并通过立体渲染得到该光线(ray)对应的二维像素的颜色。同时,我们对场景的可见度(visibility)进行可微建模,通过追踪 3D 点到光源之间的光线,计算该点的可见度。然而,考虑一条光线上所有采样点的可见性计算成本较大,因此我们通过计算光线追踪得到的表面点的可见性来优化阴影建模。


基于神经反射场的场景表征

我们采用类似 UNISURF 的 occupancy field 来表征场景几何。UNISURF 通过 MLP 将 3D 点坐标及视线方向映射到该点的 occupancy 值和颜色,并通过立体渲染得到像素的颜色,


Nv为每条射线上采样点的数量。

为了有效利用光度立体图像中的 shading 信息,S3-NeRF 显式地对场景的 BRDF 进行了建模,并使用基于物理的渲染得到 3D 点的颜色。同时我们对场景 3D 点的光可见性进行建模以利用图像中丰富的阴影线索,并通过下式得到最后的像素值。



基于物理的渲染模型


我们的方法考虑了非朗伯表面和空间变化的 BRDF。点 x 在近场点光源(pl, Le)下从视线方向 d 观测得到的值可以表示为


其中,我们考虑到点光源的光线衰减问题,通过光源 - 点之间的距离计算入射该点处的光照强度。我们采用考虑漫反射和镜面反射的 BRDF 模型


通过球形高斯(Sphere Gaussian)基的加权组合来表示镜面反射率


阴影建模

阴影在场景几何重建中是至关重要的其中一个线索。图中的三个物体在正视图中具有相同的形状和外观,但其背面却是形状各异。通过不同光照下产生的阴影,我们可以观察到其阴影的形状各不相同,这些反应了正视图中不可见区域的几何信息。光线通过映射在背景中的阴影对物体的背面轮廓产生了一定的约束。


我们通过计算 3D 点 - 光源之间的 occupancy 值来反映该点的光可见度


其中,NL是该点 - 光源线段上采样的点的数量。
由于计算像素点沿光线采样的所有 Nv 点的可见度计算成本较大(O (NvNL)),现有的方法有的采用 MLP 直接回归点的可见度(O (Nv)),或是得到场景几何后预先提取表面点(O (NL))。S3-NeRF 则通过 root-finding 定位的表面点以在线方式计算该像素的光可见度,并通过下式表示像素值。



场景优化

我们的方法不需要对阴影进行监督,而是依靠图像的重建 loss 来进行优化。考虑到单视角下没有其他视角带来的额外约束,如果采用类似 UNISURF 逐渐缩小采样范围的采样策略,将会导致模型在采样间隔减小后开始退化。因此,我们采用联合立体渲染和表面渲染的策略,利用 root-finding 定位得到的表面点渲染颜色并计算 L1 loss。


实验结果

与神经辐射场方法的比较

我们首先与基于神经辐射场的两个 baseline 方法进行比较(由于任务不同,我们在其颜色 MLP 中引入光源信息)。可以看到它们无法重建场景几何,也无法准确生成新光照下的阴影。


与单视角形状估计方法的比较
在与现有单视图法线 / 深度估计的方法比较中可以看到,我们的方法在法线估计和深度估计上都取得了最好的结果,并且能够同时重建场景中可见与不可见的区域。


不同背景的场景重建
我们的方法适用于各种不同背景条件的场景。


新视图渲染、改变光照与材料编辑
基于神经反射场的场景建模,我们成功解耦了场景的几何 / 材质 / 光照等,因而可以应用于新视图渲染、改变场景光照、材料编辑等应用。


真实拍摄场景的重建
我们拍摄了三个真实场景来探索其实用性。我们将相机位置固定,利用手机的手电筒作为点光源(环境光源关闭),手持手电筒随机移动以捕捉不同光源下的图像。该设置无需光源校准,我们应用 SDPS‑Net 得到光源方向的粗略估计,并粗略估计相机 - 物体及光源 - 物体的相对距离来初始化光源位置。光源位置在训练过程中随场景的几何和 BRDF 联合优化。可以看到即便是较为随意的数据捕捉设置(没有对于光源的校准),我们的方法仍能较好的重建 3D 场景几何。


总结

  • S3-NeRF 通过利用单视图多个点光源下拍摄的图像来优化神经反射场以重建 3D 场景几何和材质信息。
  • 通过利用 shading 和 shadow 线索,S3-NeRF 能有效恢复场景中可见 / 不可见区域的几何形状,实现单目视角下完整场景几何 / BRDF 的重建。
  • 各项实验表明我们的方法能够重建各种复杂几何 / 材质的场景,并能应对各种几何 / 材质的背景以及不同的光照数量 / 光源分布。


相关文章
|
17天前
|
机器学习/深度学习 JSON 算法
二叉树遍历算法的应用场景有哪些?
【10月更文挑战第29天】二叉树遍历算法作为一种基础而重要的算法,在许多领域都有着不可或缺的应用,它为解决各种复杂的问题提供了有效的手段和思路。随着计算机科学的不断发展,二叉树遍历算法也在不断地被优化和扩展,以适应新的应用场景和需求。
24 0
|
1月前
|
存储 算法 安全
SM2算法的应用场景有哪些?
【10月更文挑战第5天】SM2算法的应用场景有哪些?
75 1
|
3月前
|
存储 人工智能 自然语言处理
算法、系统和应用,三个视角全面读懂混合专家(MoE)
【8月更文挑战第17天】在AI领域,混合专家(MoE)模型以其独特结构成为推动大型语言模型发展的关键技术。MoE通过动态选择专家网络处理输入,实现条件计算。稀疏型MoE仅激活部分专家以减少计算负担;软MoE则加权合并专家输出提升模型稳定性。系统层面,MoE优化计算、通信与存储,利用并行化策略提高效率。在NLP、CV、推荐系统等领域展现强大应用潜力,但仍面临训练稳定性、可解释性等挑战。[论文链接: https://arxiv.org/pdf/2407.06204]
202 63
|
28天前
|
监控 算法 数据挖掘
HyperLogLog算法有哪些应用场景呢
【10月更文挑战第19天】HyperLogLog算法有哪些应用场景呢
15 0
|
2月前
|
算法 计算机视觉 Python
Python并查集大揭秘:让你在算法界呼风唤雨,秒杀一切复杂场景!
在编程与算法的广袤天地中,总有一些工具如同神兵利器,能够助你一臂之力,在复杂的问题前游刃有余。今天,我们就来深入探讨这样一件神器——Python并查集(Union-Find),看看它是如何让你在算法界呼风唤雨,轻松应对各种复杂场景的。
67 2
|
2月前
|
算法 调度
贪心算法基本概念与应用场景
尽管贪心算法在许多问题中都非常有效,但它并不总是会产生最优解。因此,在应用贪心算法前,重要的是先分析问题是否适合采用贪心策略。一些问题可能需要通过动态规划或回溯等其他算法来解决,以找到确切的全局最优解。
100 1
|
1月前
|
机器学习/深度学习 自然语言处理 算法
神经网络算法以及应用场景和基本语法
神经网络算法以及应用场景和基本语法
45 0
WK
|
2月前
|
机器学习/深度学习 算法 数据挖掘
PSO算法的应用场景有哪些
粒子群优化算法(PSO)因其实现简单、高效灵活,在众多领域广泛应用。其主要场景包括:神经网络训练、工程设计、电力系统经济调度与配电网络重构、数据挖掘中的聚类与分类、控制工程中的参数整定、机器人路径规划、图像处理、生物信息学及物流配送和交通管理等。PSO能处理复杂优化问题,快速找到全局最优解或近似解,展现出强大的应用潜力。
WK
117 1
|
2月前
|
算法 数据安全/隐私保护 C++
超级好用的C++实用库之MD5信息摘要算法
超级好用的C++实用库之MD5信息摘要算法
69 0
|
3月前
|
存储 SQL 算法
B端算法实践问题之Blink在实时业务场景下的优势如何解决
B端算法实践问题之Blink在实时业务场景下的优势如何解决
47 1
下一篇
无影云桌面