本文摘要(由AI生成):
本文讨论了NeRF(神经辐射场)技术的多个方面,包括其网络结构、性质,以及如何通过添加Fourier特征来解决MLP(多层感知器)的频谱偏差问题,使得NeRF能够学习高频信息从而改善渲染效果。文章还指出了NeRF成功克服形状与辐射场歧义性的原因,并介绍了NeRF研究的多个方向,如拍摄方式的改进(如360 Inward-facing拍摄)、Mip-NeRF解决抗锯齿问题的方法,以及IRON和ARF等新技术在场景编辑方面的应用。这些研究不仅展示了NeRF技术的潜力和挑战,也为初学者提供了NeRF研究的方向和灵感。
第一讲讲座涉及的内容比较多, 包含了以下几篇工作:
Papers and resources
Mildenhall et al.ECCV 2020. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
Zhang et al.ArXiv 2020. NeRF : Analyzing and Improving Neural Radiance Fields
Barron et al.CVPR 2021.Mip-NeRF: A Multiscale Representation for Anti Aliasing Neural Radiance Fields
Zhang et al.CVPR 2022.IRON: Inverse Rendering by Optimizing Neural SDFs and Materials from Photometric lmages
Zhang et al. ECCV 2022.ARF: Artistic Radiance Fields
Awesome NeRF: https://github.com/y /awesome-NeRF
若能做好三维内容生成,我们可以做许多酷炫很有意义的事情,具体可以观看公开课的demo。
那么如何产生这些三维内容呢?
以往的方会需要一些专业人员通过专业软件进行一系列的创作,比如 Blender,这个软件非常强大,在创作好3d内容之后,可以对给定视角进行渲染,当然缺点就是创作耗时且复杂。
所以能不能把这样的过程做的尽可能的自动化,减少开销,并且做到尽可能的真实?这是我们想要解决的主要问题。
基于图像的三维内容生成就是致力于此。
(图1 逆渲染过程)
可以看到,逆渲染的过程就是从图像获取三维内容的过程。在有了三维内容之后,我们就可以渲染其他视角的图像,甚至可以对三维内容进行编辑。这是非常 promising 的。
NeRF的诞生,给了我们足够大的想象空间去做这件事。
关于 NeRF 的介绍和教程已经有很多很多了,初学者我们建议大家将 NeRF 原文和 NeRF 一起看,这里我们只分析 NeRF 为什么会如此成功:
1、Soft Geometry
当你训练好一个 NeRF 时,你会发现你只是知道场景或者物体大概的几何信息,而不是传统意义上十分精确的几何信息。这个几何信息是随着训练过程,一点一点得到的,相比传统的渲染方法,在几何复杂的场景相对容易失效,NeRF 并不依赖于精确的几何信息,这给了我们很大的想象空间。如果你接触多一些 NeRF 相关的文章后你会发现,有些工作甚至想用 NeRF 来取代点云地图。当然你也要区别一些概念,什么是几何信息以及什么是显示表达,在基础部分我们不细致探讨这些概念。
2、Fourier features fixes the spectral bias of MLPs
很早就有相关内容的文章,神经网络更倾向于学习信号中低频的内容,这使得没有 Fourier features 的 NeRF 的渲染结果十分模糊,在这方面有两篇经典的文章几乎同时提出,用来学习高频信息,分别是 SIREN 和 Fourier features. 后续也有许多改进但是不离本质,只是对同一问题的不同方法而已。
3、NeRF 独特的网络结构以及很多特有的性质。
首先说性质,因为是函数,所以连续。因为是用网络参数来编码场景,所以紧致。NeRF 也提出了一个很有意思的问题,就是为什么 NeRF 能克服 SHAPE-RADIANCE AMBIGUITY。这个问题的意思是,为什么 NeRF 可以很好的泛化到新的视角,理论上存在这样的解使得 NeRF 得到的模型只对训练视角表现好,在新视角上的表现很差,即过拟合,这样的解就存在形状和辐射场的奇异性。当然解释是 NeRF 特有的网络结构具有一定正则化能力,使其避免收敛到更为复杂的解空间上面。
(图2)
至此,我们就对 NeRF 有了一个概括性的分析。
另外一个方面许多同学问的比较多的就是,怎样做 NeRF 相关的 research,接着张博的报告,简单为大家分析一下。
其实 NeRF 并不难学,但是需要大家有一定 3D 视觉的基础。其次就是发现问题的洞察力,你会发现公开课的几讲嘉宾都是找到了一个清晰的问题,从而发了很好的文章。NeRF 一方面分析了 NeRF 为什么成功,另一方面找到了一个 NeRF 没有解决的问题,那就是拍摄方式的问题。
初学者做 NeRF 一定要搞清楚我们说的拍摄方式是指什么:
(图3 拍摄方式)
图3为 Peter Hedman 博士论文插图。原版 NeRF 只用了 Forward-facing 和 360 outward-facing 两种方式拍摄,因此留给张博的机会来了。张博在剩下两种拍摄方式种选择了 360 Inward-facing 做了自己的研究课题,于是诞生了 NeRF 。
其实就是一种很简单的参数化方式,将“无限远”的点变成 computable 的点,如果你熟悉 NeRF 的话你会发现这是和 NDC 坐标参数化类似的方法,但是他非常有效。重点在于这是一个明确的问题。
另一个问题我们用 Mip-NeRF 来介绍。Mip-NeRF 是 ICCV 2021 Best Paper Honorable Mention 获得者,解决的是一个 Anti-Aliasing,也就是我们常说的抗锯齿问题。
举个例子就是,你把一张图像一直放大就会发现大部分边缘和纹理丰富的地方会出现锯齿状,对于NeRF 而言,训练的分辨率都是一样的,测试也是一样的,如果不一样呢?此时NeRF 渲染的结果会出现严重的锯齿。
(图4 不同分辨率测试结果对比)
比如这张图第一行,用相同分辨率训练和测试,NeRF 的效果不会有任何异常。但是到了第二行就出现问题了,如果测试的分辨率降低,会出现明显的锯齿。
一个简单的方法是使用多分辨率图像进行训练,其实就是对空间进行不同频率的采样,但是结果还是不够好,并且单分辨率的结果会下降,这样的取舍显然是不划算的。那么问题就来了,是否可以使用单分辨率训练,在任意分辨率下推理都能得到理想的结果呢。Mip-NeRF 就是解决这一问题的。
Mip-NeRF 其实对于新手来说并不是很友好,方法可能不是那么好懂,但是我们希望借这篇文章为大家来介绍如何找问题,如何定义问题。至少在我接触 NeRF 是时候,我没想过用其他分辨率去合成新视角下的图像。
对 Mip-NeRF 能看懂的同学,建议立刻追 Mip-NeRF 360 (CVPR 2022). 就像追小说电视剧一样,你会发现许多有意思的故事。
张博在最后讲解了 IRON 和 ARF,ARF 是刚刚中的 ECCV 2022,目前 arxiv 已经可以看到,Meta 也在近期发表了一篇非常类似的工作(SNeRF: Stylized Neural Implicit Representations for 3D Scenes),感兴趣的大家可以自行浏览。可以看到,editing 是兵家必争之地了。