昙花一现的神经网络:从 NeRF 到 3DGS
前言
The Ephemeral Neural Network: From NeRF to 3DGS
这篇文章是我在组内学术分享报告内容,原应该辅以我的口头报告,但是会议忘记录屏了,就只能添加少量备注以供参考了。另外我也不是CV和图形学专业的,可能也有一些理解不够充分的地方。
开创一个方向的Nerf
学术引用:
Nerf: Representing scenes as neural radiance fields for view synthesis
ECCV 2020 Oral - Best Paper Honorable Mention
6448 citations by 2024.4.11 .
3D Gaussian Splatting for Real-Time Radiance Field Rendering
SIGGRAPH 2023 best paper
502 citations by 2024.4.11 .
在知乎上也有很高的讨论度:
Overview
View synthesis (Image-based rendering)
故事开始于这样一个任务:我们有若干一个场景下不同视角对图片,现在需要得到这个场景中一个新视角的图片。
基本思路
基本思路总体上是固定的,要得到一个新视角的图片,首先需要从现有数据中还原一个物体的3D表示,然后在新的视角下渲染出来,具体的渲染方法取决于3D表示的数据建模。
常见的三维物体表示(以及它们的局限性):
- Mesh (+texture):Require highly-constrained geometry
- 体素(Voxel): Limit the resolution of the object
- 其他:点云(Point Cloud)、深度图
NeRF (Neural Radiance Fields)
NeRF不同于常见的三维物体表示,其基于隐式三维物体表示,即神经辐射场。
这个隐式表示本质上就是个函数: F ( x , y , z , θ , ϕ ) → ( R , G , B , σ ) F(x,y,z,\theta,\phi)\rightarrow(R,G,B,\sigma) F(x,y,z,θ,ϕ)→(R,G,B,σ) ,即给定一个点(x,y,z),以及相机观察的角度(theta和phi),函数会返回这个点在这个角度下(因为不同角度下的光影会有所变化)的RGB值以及密度。
有了这个函数,就可以设计一个渲染方法来渲染任意视角的图片了。
体积渲染(Volume Rendering)
具体细节就不介绍了,大致过程就是根据射线上各个点的RGB值以及密度做积分,这个积分同时也考虑了方向性,也就是说前面的物体(密度大的点)会挡住后面的物体。
最重要的是,这个积分是可微分的,这就给优化提供了条件。
Key: differentiable rendering
Tricks & Optimizations
位置编码:
这个就类似与Transformer中的正弦位置编码,就不多做介绍了。
Hierarchical sampling
大小模型合作:使用小模型快速得到密度曲线,然后根据密度在大模型上采样。类似的技术在LLM中也有应用:Speculative Sampling。
Results & Demos
https://www.zhihu.com/video/1776299835601571840https://www.zhihu.com/video/1776299906313150465https://www.zhihu.com/video/1776299966455275520## The Era of NeRF
简单介绍一下NeRF发展的重要工作。
NeRF的发展主要分为两个大的方向,一种是基于NeRF问题的改进,一种是基于NeRF的应用。
基于NeRF问题的改进,主要包括:
* 速度慢
* 只针对静态场景
* 泛化性差
* 需要大量视角
* 其他
基于NeRF(或者神经场)的应用,我做了一些简要的分类和总结,主要包括:
* 逆渲染
* 可控编辑
* 数字化人体
* 多模态
* 图像处理
* 视频处理
* 特殊领域
Quality方面的改进
Mip-NeRF [4]
NeRF仅考虑了穿过像素中心的光线上离散的样本点在频率空间上的投影。而Mip-NeRF则考虑了穿过像素的视锥在样本点所在的截断视锥在频率空间上的投影分布。而为了更好的表示这一分布,Mip-NeRF 采用了多元高斯(所以采用圆的视锥)进行近似。
Mip-NeRF 准确描述(进行了合理的建模)了像素包含区域随物体远近变化的关系(近大远小)。NeRF 则没有这个概念(可以理解为相比 Mip-NeRF,NeRF 对深度没有那么敏感)。
https://www.zhihu.com/video/1776301120685748224https://www.zhihu.com/video/1776301179083087872Mip-NeRF 360 [5]
Mip-NeRF 360 致力于解决 Unbound Processing
NeRF 和 mipNeRF 在处理无界场景时会遇到挑战,无界场景中的相机可能面向任何方向并且场景内容可能位于任何位置。
unbounded scenes: images are captured by a free-moving camera, and objects exist at any distance from the camera.
- 参数化问题。mip-NeRF 要求将 3D 场景坐标映射到有界域,所以无界的 360 度的场景会占据无穷大的欧式空间区域。Mip-NeRF 360 将周围的空间(蓝色之外的部分)压缩(变换)到一个有限的空间中(橙色部分)。需要为橙色部分的非欧空间求解相应的渲染公式。
- 效率问题。巨大且细节化的场景需要巨大的网络容量,所以在训练期间,频繁地沿每条射线去查询巨大的 MLP 网络会产生巨大的消耗 。
相当于小网络只算密度,个人认为这一点的改进不算特别本质。
在质量上,Mip-NeRF 360可以认为是NeRF的sota方法。
https://www.zhihu.com/video/1776302610062192641### Speed方面的改进
Instant-NGP [6]
通过hash table存储feature,而hash table的容量是远小于编码空间的,因此会产生冲突,整个空间中点会被均衡地分配到hash table存储的feature上;但是另一方面,场景中的物体也是稀疏的。因此hash table存储的feature获得的梯度则大部分来自于场景中的实体部分,而场景中的空气部分则几乎不产生梯度,这样一来,整个hash table就非常高效地建模了场景中的实体部分。
Ever wanted to train a NeRF model of a fox in under 5 seconds? Or fly around a scene captured from photos of a factory robot? Of course you have!
渲染速度非常快:
https://www.zhihu.com/video/1776304982117523457https://www.zhihu.com/video/1776305068578930688## 3D Gaussian Splatting
3DGS使用另一种形式的三维建模表示:3D Gaussian
可以理解为椭球
Mesh | Radiance Fields | 3D Gaussian | |
---|---|---|---|
3D Reconstruction | Not differentiable | Differentiable | Differentiable |
Rendering | Fast(光栅化渲染) | Slow(Ray marching / Ray tracing) | Fast(光栅化渲染) |
3D Gaussian Optimization
基于梯度自适应改变分布(以及创建新的高斯)
使用球谐函数建模颜色
Optimization最关键的一点仍然是differentiable,这一点从NeRF到3DGS都没有变。
Splatting
Splatting指的是将3D Gaussian渲染为图片(就像把椭球拍扁到屏幕上)
这里也有很多数学上的变换什么的:
Splatting的优势在于可以充分利用光栅化管线继续渲染,这一点可以从速度上吊打NeRF。
在质量上媲美Mip-NeRF 360,在质量上超越Instant-NGP:
https://www.zhihu.com/video/1776307026052218881https://www.zhihu.com/video/1776307239705866240## Review and summary
Key: differentiable rendering (虽然神经网络没了,但是differentiable optimization还是作为核心在发挥作用)
- Model as Embedding (神经网络可以视为一个场景的embedding)
- Why 3DGS defeats NN (更好的3D representation发挥了作用)
Nerf in NLP
和NLP结合的一些相关的应用,总的来说NeRF直接用于NLP还是比较少的,相关工作主要集中在通过文本对场景进行控制的方向上。
**Manipulation NeRF with text:**CLIP-NeRF: Text-and-Image Driven Manipulation of Neural Radiance Fields
Vox-E: Text-Guided Voxel Editing of 3D Objects
Instruct-NeRF2NeRF: Editing 3D Scenes with Instructions
TANGO: Text-driven Photorealistic and Robust 3D Stylization via Lighting Decomposition
Text-to-3d using gaussian splatting
Generative AI meets 3D: A Survey on Text-to-3D in AIGC Era
ShapeTalk: A language dataset and framework for 3d shape edits and deformations
3ddesigner: Towards photorealistic 3d object generation and editing with text-guided diffusion models
...
**Visual language task:**3D Concept Learning and Reasoning From Multi-View Images
Unit3d: A unified transformer for 3d dense captioning and visual grounding
参考文献
- 【NeRF 论文解读】如何带着 3 个问题,吃透 1 篇机器学习专业论文?| 科研干货 | ECCV 2020 Papers(https://www.bilibili.com/video/BV12B4y1q7rz)
- NeRF及其发展(https://zhuanlan.zhihu.com/p/512538748)
- NeRF系列工作个人总结 (https://zhuanlan.zhihu.com/p/614008188)
- Barron J T, Mildenhall B, Tancik M, et al. Mip-nerf: A multiscale representation for anti-aliasing neural radiance fields[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021: 5855-5864.
- Barron J T, Mildenhall B, Verbin D, et al. Mip-nerf 360: Unbounded anti-aliased neural radiance fields[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 5470-5479.
- Müller T, Evans A, Schied C, et al. Instant neural graphics primitives with a multiresolution hash encoding[J]. ACM Transactions on Graphics (ToG), 2022, 41(4): 1-15.
r Vision and Pattern Recognition. 2022: 5470-5479. - Müller T, Evans A, Schied C, et al. Instant neural graphics primitives with a multiresolution hash encoding[J]. ACM Transactions on Graphics (ToG), 2022, 41(4): 1-15.