NeRF学习笔记(二):论文阅读与思考
Abstract
Q:如何理解稀疏的输入视图集
A: a sparse set of input views 稀疏的输入视图集。也就是输入视图并不是连续的,可能就是在若干个方向或者角度拍几张照片,就能合成一个连续的360度环绕的场景
Q:如何理解volume density
volume density字面意思是体积密度,实际上理解为不透明度会更好,不透明度对应对光的吸收能力,volume density越大,不透明度越高,对光的吸收能力越强。
这个在后面的公式有所涉及。
Q:为什么要输入这么五个坐标?
A:因为考虑到不同视角上某一点的颜色是不一样的。正因如此,原文用了view-dependent,即某点的颜色是跟视角相关的
Q:如何理解5D坐标(空间位置$(x,y,z)$和观察方向$(θ,φ)$)?
A:作者应该是确定了某个坐标系,空间位置$(x,y,z)$就是被观察物体某个点在这个坐标系中的坐标,而观察方向$(θ,φ)$就是相机指向被观察物体这个点的射线,通过两个角度可以表示三维下的一条射线。
1 Introduction
Q:什么是MLP网络?
A:多层感知器(Multilayer Perceptron,缩写MLP)是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。一种被称为反向传播算法的监督学习方法常被用来训练MLP。
Q:还有什么想说的?
这里是搬运的,目前并不了解PINN
A:这篇论文的思想非常像流体力学的PINN,也是使用一个神经网络拟合某一个对象。PINN是用网络输出尽可能拟合离散点的函数值,而NERF就是用神经网络的输出拟合稀疏的相机拍摄图像。而且,与一般的问题不同,PINN和NERF都是尽可能过拟合标签值,因为它们都是应用于某一个特定的对象,如前者应用于某一个偏微分方程(组),后者应用于某一个场景。但是这引出了另一个问题:网络的泛化性很差,即不能通过微调将网络迁移适应于另一个不同的场景。
另外有很多优点也是PINN和NERF所共通的。比如,流体力学求解方程的数值方法,需要采样大量的点才能逼近真实解,而且天然的时序特征导致了求解效率的低下;NERF以前的存储离散化体网络也需要耗费大量存储成本。
更一般地说,PINN全称是physical-informed neural network,NERF本质上也是一种物理理论与神经网络的融合。流体力学的PINN和NERF有天然的近似性自然也就不奇怪了。
2 Related Work
暂时没有问题
3 Neural Radiance Field Scene Representation
Q:如何理解”We encourage the representation to be multiview consistent by restricting the network to predict the volume density σ as a function of only the location x, while allowing the RGB color c to be predicted as a function of both location and viewing direction. “即,这里为什么要限制体积密度σ作为位置x的函数,而让颜色c作为位置x和观看方向(θ,φ)的函数?观看方向(θ,φ)为什么会影响多视图的一致性?
思考:从论文里面看,它这里的操作是先用8个完全连接层处理输入的3D坐标$(x,y,z)$,得到一个体积密度$σ$和256维的特征向量。然后特征向量和观看方向$(θ,φ)$连接起来,得到一个256+2维的向量,再给到最后的全连接层里面,从而输出与试图相关的颜色$c$。
这样处理虽然是为了限制体积密度σ作为位置x的函数,但会不会也导致颜色$c$和观察方向$(θ,φ)$的关系不是很大了(毕竟只占了两个维度)?这样的话,如何设计并优化针对特定物理问题的网络?
在知乎上看到一个很有趣的探讨:我们直觉理解空间点和颜色是没有任何关系的,在一个空间点放什么东西完全是人为确定。但是这篇文章可以通过MLP硬拟合这种关系,其中一个前提是MLP只用于某一特定场景的渲染,只是学习这种拟合关系而不是学会推理。所以,如果要使得网络具备迁移泛化能力,必须解除坐标与RGB这种不合逻辑的映射关系。
A:TODO
4 Volume Rendering with Radiance Fields
Q:如何理解“The volume density σ(x) can be interpreted as the differential probability of a ray terminating at an infinitesimal particle at location x. ”
A:我认为这里应该和Abstract部分的问题“如何理解volume density”是一样的。这句话翻译过来就是“体积密度$σ(x)$可以解释为一条射线在$x$位置的无穷小粒子处终止的微分概率”,比较拗口,不过很明显关键部分是“射线在某个位置终止的微分概率”。这看起来应该和之前解释的不透明度差不多,光在这里终止(被吸收)的概率越大就说明这里越不透明。而之所以是微分概率,应该是体积密度$σ(x)$表示的只是某个点的不透明率。
Q:前面定义的网络已经计算出了从某个视角看到的某点颜色$c=(r,g,b)$和体积密度$σ$,为什么这里仍然需要通过公式1把预期颜色$C$计算出来?它们有什么区别?为什么不直接拟合?
A:$C$是最终渲染时需要计算的值,$c$是RGB颜色值。拟合的只是空间单点的颜色$c$,只有通过离散积分一条光线上所有采样单点的颜色$c$,才能得到从某个视角看过去的2D图像上某个点的最终渲染颜色。如果硬要拟合整条光线所有点的$C$且使它们一样,那就只是angle-dependent而非view-dependent了,RGB和xyz坐标参数还是有关系的。
PS:这部分公式1到公式3是连续积分离散化的推导,这是最基本的数值方法,需要好好回顾一下!!!另外一个就是,目前没有学习图形学相关的一些知识,这方面知识欠缺比较多。
5 Optimizing a Neural Radiance Field
5.1 Positional encoding
Q:为什么第一段说使用高频函数将输入映射到更高维空间,能够更好地拟合包含高频变化的数据?
思考:这种数据高频变化的思想不仅仅局限在三维重建中。我觉得可以泛化到具有剧烈域变化的数据集,此时可以对输入数据进行高维映射,以获得对数据更好的表征,更好地实现数据域适应。
A:TODO
Q:如何理解此处的编码函数?
A:TODO
5.2 Hierarchical volume sampling
Q:为什么通过同时优化两个网络(粗网络和细网络)可以解决自由空间和遮挡区域被重复采样的问题?
A:TODO
5.3 Implementation details
暂时没有问题