【学习笔记】Chinagraph 2022 会前课程:神经辐射场(NeRF)基础及进阶
本文是对此视频的内容做一个文本记录,方便后续的查阅。
神经辐射场基础及几何编辑方法
下面是列出的一些目前常用的一些基础工作。
神经辐射场背景及基础
- NeRF
- NeuS
- Instant NGP
一般神经辐射场的几何编辑方法
- EditNeRF
- NeRF-Editing
- NeuMesh
人脸人体神经辐射场的几何编辑方法
- FENeRF
- RigNeRF
- Animatable NeRF
传统渲染管线
- 渲染方程 Lo(p, \omega_0) = L_e(p, \omega_0) + \int{\Omega^{+}}L_i(p, \omega_i)f_r(p, \omega_i, \omega_o)(n \cdot \omega_i)d\omega_i
- 基于表面的渲染方式(Surface Rendering)
- 基于体的渲染方式(Volume Rendering)
可微分渲染概述
- 深度学习 + 渲染 可微分渲染(基于图片学习,无需显式定义场景信息)
- 2D 可微分渲染范式【2D 几何代理 渲染图】
- 3D 可微分渲染范式【基于神经网络的 3D 场景表征 渲染图】
- 2D 可微分渲染工作【2D 光栅化的几何代理/语义图 渲染图】
- 3D 可微分渲染工作【基于神经网络的 3D 场景表征 渲染图】
- 2D 可微分渲染范式【2D 几何代理 渲染图】
- 深度学习 + 渲染 可微分渲染(基于图片学习,无需显式定义场景信息)
然后就介绍了 NeRF 的基础概念,可以推一篇博客园上的文章。
【1】NeRF 就是用一个 MLP 网络去过拟合一个场景,所以他的参数量是非常多的 【2】训练一个神经网络,就是 3D 重建的一个过程,推理一个神经网络,就是渲染的过程
NeuS 基于神经辐射场的几何重建 论文主页:https://lingjie0206.github.io/papers/NeuS/ ArXiv 地址:https://arxiv.org/abs/2106.10689
- 在神经辐射场的框架中引入 SDF 函数,实现更精确的多视角几何重建
- 体渲染权重函数:
- SDF 函数:
- S-density 函数: 【 时, 不是最大值】
- 直接做法:令
- 解决了直接将 SDF 引入体渲染计算中产生的权重有偏问题,提出了同时满足遮挡感知和无偏的权重函数
- 在神经辐射场的框架中引入 SDF 函数,实现更精确的多视角几何重建
神经辐射场的加速 Instant NGP(Siggraph 2022) 论文主页:https://nvlabs.github.io/instant-ngp/
- 哈希表存储稠密空间中的稀疏几何信息
- 多层级多分辨率的格点划分结构避免哈希冲突造成的歧义性
- 利用 CUDA 内核的并行性能,减少带宽损耗和计算开销
- 输入坐标 x,寻找其各个层级下的领域格点,通过哈希表查询邻域格点的特征
- 将不同层级下邻域格点的特征分别进行线性插值,拼接为一维特征
- 将特征输入 MLP,预测颜色和密度
神经辐射场的编辑方法 EditNeRF(ICCV2021) 论文主页:http://editnerf.csail.mit.edu/
- 在一类数据上训练,使用合成数据集,借助模型先验
- 利用不同的网络和隐含向量解耦形状和外观
- 用户在图片上涂抹,网络和隐含向量利用反向传播进行优化,实现编辑
- 针对几何编辑,只能实现增加/删除操作【改变密度】
神经辐射场的几何变形 NeRF-Editing(CVPR2022) 论文主页:https://arxiv.org/abs/2205.04978
上面的 EditNeRF 没有能做到对物体的几何上的变形,即改变某个几何物体的形状,比如把某个动物模型的动作进行修改,因为这样是对修改 MLP 中的参数来达到对几何的更改,是非常困难的。核心方法就是对光线进行改变来达到改变几何形状的效果。【个人理解:就像大质量天体造成的空间扭曲,几何并没有改变,但是光线的渲染结果改变了】
NeRF-Editing 的效果- 允许用户交互式编辑神经辐射场的隐式表征
- 可编辑神经辐射场内物体的几何形状
- 编辑后支持多视角查看高真实感合成结果
- 从预训练好的 NeRF 中提取显式三角网格表示
- 用户在三角网格上进行交互式编辑
- 顶点偏移通过一个两步传播过程被传播到连续空间场
- 渲染光线根据用户编辑被弯曲
- 生成编辑后的自由视角图片结果
神经辐射场编辑方法 NeuMesh(ECCV2022) 论文主页:https://zju3dv.github.io/neumesh/
- 输入:多视角图片;输出:可编辑几何和纹理的 NeRF
- 网格表示几何,顶点存储可学习参数表示几何和纹理;实现几何和纹理解耦编辑
- 变形网格达到 NeRF 几何编辑效果;提供多种纹理编辑方式
人脸 NeRF 编辑 FENeRF(CVPR2022) 论文主页:https://mrtornado24.github.io/FENeRF/
- 基于生成式人脸 NeRF 的编辑
- 使用语义分割图对人脸 NeRF 进行编辑
- 使用生成式 NeRF 网络结构,额外生成语义分割图,在语义分割图上实现对人脸细节的编辑
- 基于生成式人脸 NeRF 的编辑
神经辐射场生成式模型 EG3D(CVPR2022) 论文主页:https://nvlabs.github.io/eg3d/
- 使用神经辐射场生成三维图像
- 提出三平面表示,充分利用 2D StyleGAN 的信息,生成多视角一致的高质量三维图像
- 利用 StyleGAN 生成三平面表示,利用三平面的表示,构建一个体表示
- 从三平面上采样到的特征通过轻量级网络得到 density 和 color
- 引入超分模块实现高分辨率的图像生成,为了保证超分后的一致性,改良了判别器,接收低分和高分的二元输入
人脸 NeRF 编辑 RigNeRF(CVPR2022) 论文主页:https://arxiv.org/abs/2206.06481
- 基于 3DMM 的可控人脸 NeRF
- 输入:单视角动态人脸视频;输出:可控制人脸姿态和表情的人脸 NeRF
- 将 3DMM 作为人脸先验,建模刚性姿态;引入表情参数和姿态参数作为输入,使用 MLP 建模非刚性变形
- 利用 3DMM 建模人脸姿态
- 额外的 MLP 网络预测剩余的非刚性变形
- 修改表情参数和姿态参数实现对人脸表情和姿态的控制
- 基于 3DMM 的可控人脸 NeRF
人体 NeRF 编辑 Animatable NeRF(ICCV2021) 论文主页:https://zju3dv.github.io/animatable_nerf/
- 人体新姿态下的自由视角浏览
- 输入:多视角动态人体,骨架;输出:可编辑姿态的人体 NeRF
- 将 LBS 变形引入到人体 NeRF 重建,通过预测变形权重,增强 NeRF 对新姿态的泛化性,支持新姿态下的自由视角浏览
- 利用 SMPL 估计姿态和初始的变形混合权重,MLP 网络预测初始权重的残差
- 基于权重的一致性损失函数,将当前空间下的采样点变换回标准空间下,两个空间下得到混合权重应该相同
- 新姿态下的隐含向量利用一致性损失函数优化得到
- 人体新姿态下的自由视角浏览
基于计图的 NeRF 研究及 JNeRF 模型库
Recursive-NeRF:基于递归的高效动态生长 NeRF 论文主页:https://arxiv.org/abs/2105.09103
- 研究背景(因为太慢了【确信】)
- 方法介绍
- 研究背景(因为太慢了【确信】)
JNeRF:基于 Jittor 的高效 NeRF 模型库 Github 地址:https://github.com/Jittor/JNeRF
神经辐射场的风格化方法
神经辐射场的风格化 StylizedNeRF(CVPR2022) 论文主页:http://geometrylearning.com/StylizedNeRF/
神经辐射场的风格化 SNeRF(Siggraph2022) 论文主页:https://arxiv.org/abs/2207.02363
神经辐射场的风格化 ARF:Artistic Radiance Fields(ECCV2022) 论文主页:https://www.cs.cornell.edu/projects/arf/
基于神经渲染的商品三维建模技术【阿里的分享】
基于图像建模技术:
建模流程- 问题:
- 拍摄环境
- 弱纹理
- 点云噪声
- 自动材质
- 问题:
NeRF
- 优点:
- 神经网络表示形状、纹理、材质、光照
- 端到端训练,还原度高
- 不足:
- 推理速度慢 & 训练速度慢
- 鲁棒性有瑕疵,同时无法恢复纹理细节
- 光照 & 几何问题,无法融合到现有渲染引擎
- 几何或纹理可编辑性差
- 优点:
视角鲁棒性【Ray Priors through Reprojection】: 论文地址:https://arxiv.org/abs/2205.05922
- RRC
- RA
- RRC
推理速度问题分析 & 方案【Digging into Radiance Grid for Real-Time View Synthesis with Detail Preservation】(ECCV2022)