NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

github:GitHub - yenchenlin/nerf-pytorch: A PyTorch implementation of NeRF (Neural Radiance Fields) that reproduces the results.

0、nerf能做的是什么?

其核心点在于非显式地将一个复杂的静态场景用一个神经网络来建模。在网络训练完成后,可以从任意角度渲染出清晰的场景图片。

1、nerf 有什么特色?

  An approach for representing continuous scenes with complex geometry and
materials as 5D neural radiance elds, parameterized as basic MLP networks.
 

A differentiable rendering procedure based on classical volume rendering tech-
niques, which we use to optimize these representations from standard RGB
images. This includes a hierarchical sampling strategy to allocate the MLP's
capacity towards space with visible scene content.

A positional encoding to map each input 5D coordinate into a higher dimen-
sional space, which enables us to successfully optimize neural radiance elds
to represent high-frequency scene content

简而言之:1、采用一个网络来表示一个3D模型  2、一个可微的渲染过程 3、一个位置编码技术 将其输入到网络中

2、算法概览

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第1张图片

NeRF可以简要概括为用一个MLP神经网络去隐式地学习一个静态3D场景。为了训练网络,针对一个静态场景,需要提供大量相机参数已知的图片。基于这些图片训练好的神经网络,即可以从任意角度渲染出图片结果了。

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第2张图片

需要理解:1、如何用网络表示一个3D场景 2、如何将3D场景渲染到某个视角下的照片  

3、算法细节

3.1 nerf 如何表示一个3D场景

 用神经辐射场来表示场景

Our algorithm represents a scene using a fully-connected (non-convolutional) deep network, whose input is a single continuous 5D coordinate (spatial location (x, y, z) and viewing direction (θ, φ)) and whose output is the volume density and view-dependent emitted radiance at that spatial location.

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第3张图片

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第4张图片

在具体的实现中,  网络是下图

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第5张图片

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第6张图片

3.2 如何从NeRF渲染出图片?基于辐射场的体素渲染算法

NeRF 函数得到的是一个3D空间点的颜色和密度信息,但当用一个相机去对这个场景成像时,所得到的2D 图像上的一个像素实际上对应了一条从相机出发的射线上的所有连续空间点。我们需要通过渲染算法从这条射线上的所有点得到这条射线的最终渲染颜色。同时,为了保证网络可以训练,NeRF中需要采用可微的渲染方法。

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第7张图片

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第8张图片

4、NeRF中的两个重要Trick

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第9张图片

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第10张图片

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第11张图片

作者的话先用粗略的uniform采样, 得到被积函数的大致曲线, 然后在更精细的基于刚刚得出的大致曲线进行重要性采样. 这样最终得出rgb的值.

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis_第12张图片

转自:【NeRF论文笔记】用于视图合成的神经辐射场技术 - 知乎

体素渲染  https://www.youtube.com/watch?v=1PqvwOjnKJw   

你可能感兴趣的:(神经网络,深度学习,机器学习)