Java教程

Nerf原始论文

本文主要是介绍Nerf原始论文,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

什么是Nerf

  • nerf是一种通过隐式表达做新视角合成任务 (novel view synthesis task) 的工具, 隐式表达指的是在渲染过程中不对目标物体或者场景进行显示的建模
  • 其输入是某个视角下发射的视角方向d=(θ, Φ), 以及对应的坐标x,y,z, 通过神经辐射场\(F\theta\), 得到体密度和颜色. 最后通过体渲染 (volumetric rendering) 渲染得到最终的图像.
    image

流程具象化

image

  • 我理解为在需要渲染的图片上每个像素点按特定方向发出一条光线, 然后每条光线根据不同的t(可以理解为深度)采样得到一些点, 如蓝色球. 最后输入神经辐射场\(F\theta\) 的内容就是经过位置编码\(\gamma\)的蓝色球的坐标x,y,z以及视角方向d.
  • 经过神经辐射场\(F_{\theta}\)的处理,我们得到了每一个小球的颜色c和密度σ(颜色已经不一样了~),那么根据体渲染(Volume Rendering)的机制,就可以进行渲染了。

image

何为体渲染

定义

  • 依据三维体数据,将所有体细节同时展现在二维图片上的技术,称之为体绘制技术。利用体绘制技术,可以在一幅图像中显示多种物质的综合分布情况,并且可以通过不透明度的控制,反应等值面的情况。(类似安检时的检测图, 光线从某个方向出发, 穿过整个物体.)
  • 体渲染的可视化效果如下
    image

体数据

  • 只要是包含了体细节的数据,都可以称之为体数据。举个例子,有一堆混凝土,其中包含了碳物质( C )若干,水分子( H20 )若干,还有不明化学成分的胶状物,你用这种混凝土建造了块方砖,如果存在一个三维数组,将方砖 X 、 Y 、 Z 方向上的物质分布表示出来,则该数组可以被称为体数据。

体素( Voxel )

  • 体素,是组成体数据的最小单元,一个体素表示体数据中三维空间某部分的值。体素相当于二维空间中像素的概念
  • 体素不存在绝对空间位置的概念,只有在体空间中的相对位置,这一点和像素是一样的。

通常我们看到的体数据都会有一个体素分布的描述,即,该数据由 nmt 个体素组成,表示该体数据在 X 、 Y 、 Z 方向上分别有 n 、 m 、 t 个体素。在数据表达上,体素代表三维数组中的一个单元。假设一个体数据在三维空间上 256*256*256 个体素组成,则,如果用三维数组表示,就必须在每一维上分配 256 个空间。

在实际的仪器采样中,会给出体素相邻间隔的数据描述,单位是毫米( mm ),例如 0.412mm 表示该体数据中相邻体素的间隔为 0.412 毫米 。

image

体纹理( Volume Texture )

这篇关于Nerf原始论文的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!