VMINer: Versatile Multi-view Inverse Rendering with Near- and Far-field Light Sources 主要提出了一种多视角逆向渲染框架,能够处理近场和远场光源,解决了逆向渲染中固有的模糊性问题。
现有方法的缺点:
传统的逆向渲染方法通常只处理单一光照条件,尤其是远场光照。这导致在不同光照条件下渲染时,几何与材质的分离效果较差,无法准确估计物体的材质和光照对其外观的影响。同时,一些方法为了减少这种模糊性,会增加数据采集的复杂度,比如要求多次改变光照环境,这对数据获取造成了很大的负担。
这篇文章解决了什么问题:
VMINer 框架通过处理多视角图像中存在的近场和远场光源,能够在更少的数据采集条件下准确地分离几何和材质信息。这使得模型能够在多种光照条件下进行更高质量的重建,同时降低了数据采集的复杂度。
创新点:
- 多光源模型:文章提出了一个轻量但包含多种光照条件的模型,能够同时处理近场和远场光源。这使得在捕捉场景时,可以利用当前环境下的任何光照条件。
- 几何和材质分离:通过神经辐射场(NeRF)和基于物理的表面渲染(PBR),文章能够将场景的几何和材质从外部光照中分离出来。
- 多层感知器(MLP)处理光照方向和嵌入:该框架引入了特别设计的MLP,处理光照方向和嵌入,提高了对多种光照条件的处理能力。
实验结果:
实验表明,VMINer在速度和质量上都优于当前的多视角逆向渲染方法。特别是在使用近场光源的场景中,框架的材质估计和重建效果显著优于其他方法,并且实验结果展示了对合成和真实场景的优越表现。
模型输入输出:
- 输入:多视角RGB图像及其前景遮罩,这些图像可能在多种远场和近场光源下拍摄。
- 输出:分离的场景几何和材质信息,以及可以无缝集成到工业渲染软件中的纹理化三角网格。
模型结构:
模型包含三个主要模块:
- 光照模型:处理近场和远场光源,远场光源使用球面高斯表示,近场光源则建模为3D空间中的点光源。
- 几何和材质场:通过隐式场表示几何和材质,使用神经辐射场(NeRF)对形状和材质进行建模。
- 差分渲染器:结合体渲染和基于物理的表面渲染来优化场景的几何和材质。
实现全过程:
- 数据输入与初始化:输入多视角图像,并生成相关的光照条件。初始化光源参数和几何、材质场。
- 几何重建:利用隐式场和多层感知器,计算各个3D点的几何信息(例如,表面法线和体积密度)。
- 材质分离与渲染:通过基于物理的渲染技术,优化材质参数(例如,漫反射、镜面反射、粗糙度等),并利用蒙特卡洛积分计算光线的次次反射和间接照明。
- 损失优化:在训练过程中,使用各种损失函数(如轮廓损失、几何正则化、材质平滑损失等)来优化模型的几何、材质和光照信息。
- 场景输出:最终输出分离的几何、材质场,并转换为纹理化的三角网格,以便于集成到工业软件(如Blender)中。
实现全过程
1. 数据输入与预处理
输入:
- 多视角RGB图像:场景在不同的光照条件下拍摄的多张图像。这些图像可能包含近场(如手电筒)和远场光源(如室外光)。
- 前景遮罩:每张图像需要有对应的前景遮罩,用于分离背景和前景,以确保模型专注于前景物体的几何和材质重建。
预处理:
- 为输入的图像进行光照条件的初始化,并为每张图像标记其对应的远场光源和近场光源的开关状态。
- 使用 COLMAP 等工具进行相机位姿的重建,确保所有图像在同一坐标系下对齐。
2. 光照模型
VMINer 模型采用了多种光照条件的混合模型,具体分为远场光源和近场光源两种:
-
远场光源:远场光源使用球面高斯(SGs)来表示其光照分布。每个远场光源通过方向、锐度、RGB强度等参数进行建模。输入图像的远场光源是固定的,因此只需要对每个方向上的光照强度进行积分。
光照公式如下:
-
近场光源:近场光源采用点光源模型,其位置和光照方向可随不同图像变化。近场光源的光照强度会随着与物体距离的增加而衰减。
近场光源的光照公式:
这里 是近场光源的位置,光照强度以平方反比衰减。
3. 几何与材质场的表示
该模型采用了隐式场(Implicit Field)来表示场景的几何和材质属性,具体包括两个主要部分:
-
几何场(Geometry Field):
- 几何场使用**符号距离函数(SDF)**来表示场景的形状。通过一个多层感知机(MLP)网络对场景中的每个 3D 点进行编码,并计算该点的 SDF 值 。
- 通过计算 SDF 的梯度 来获得每个点的法向量 。
几何 MLP 的公式为:
其中, 表示该点的签名距离, 是该点的局部外观描述符。 -
材质场(Material Field):
- 材质场使用 3D 隐式场来表示场景中的反射属性。使用多分辨率哈希编码对位置进行编码,然后通过材质 MLP 预测场景的各向同性和各向异性 BRDF 参数。
材质 MLP 的公式为:
其中, 是该点的 BRDF 参数。
4. 神经辐射场渲染与基于物理的表面渲染
在模型训练过程中,VMINer 同时采用神经辐射场(NeRF)渲染和**基于物理的表面渲染(PBR)**来进行渲染优化。
-
神经辐射场渲染:
- 对于每个光照条件,使用多层感知机(MLP)网络来预测从场景中每个点发出的光线辐射。
- 对于远场光照,使用蒙特卡洛积分计算光线经过的辐射量:
其中, 表示沿光线的累积透射率, 表示体积的不透明度。
-
基于物理的表面渲染:
- 基于物理的渲染通过二次可见性计算光照反射的间接照明。直接照明通过蒙特卡洛积分计算远场光照的贡献,近场光照通过简单的点乘计算。
- 物理渲染的输出为:
5. 损失函数与优化
为了优化几何和材质场,VMINer 使用了多个损失函数来约束模型的训练过程:
-
辐射场损失:比较神经辐射场渲染结果与真实图像之间的差异。
-
Eikonal 损失:用于几何正则化,约束 SDF 的梯度为单位长度。
-
自一致性损失:确保神经辐射场与基于物理的渲染结果在各个光照条件下保持一致。
6. 模型训练
- 训练阶段一:首先训练几何场和辐射场,以恢复场景的几何信息,并区分不同光照条件下的外观。
- 训练阶段二:冻结几何和辐射场,训练材质场和光照模型,优化场景材质的物理属性。
训练在 GPU 上运行,训练 40,000 步,第一个阶段用时约 20 分钟,第二个阶段用时约 40 分钟。
7. 场景输出
训练完成后,VMINer 的输出包括:
- 纹理化三角网格:从隐式几何场中提取零等值面,使用 Marching Cubes 算法生成三角网格。
- 材质纹理贴图:从材质场中生成的漫反射、法线和粗糙度纹理。
这些输出可以无缝集成到如 Blender 等工业级渲染软件中进行进一步应用【4†source】。