神经辐射场 (NeRF) 是一个完全连接的神经网络,可以基于部分 2D 图像集生成复杂 3D 场景的新视图。它被训练使用渲染损失来重现场景的输入视图。它的工作原理是获取代表场景的输入图像并在它们之间进行插值以渲染一个完整的场景。NeRF 是一种为合成数据生成图像的高效方法。
训练 NeRF 网络直接从观察方向和空间位置(5D 输入)映射到不透明度和颜色(4D 输出),使用体积渲染来渲染新视图。 NeRF 是一种计算密集型算法,处理复杂场景可能需要数小时或数天。但是,可以使用新的算法来显着提高性能。
NeRF 和神经渲染的基本概念
为了理解 NeRF 的工作原理,让我们介绍一些基本概念。
Rendering:渲染是从 3D 模型创建图像的过程。该模型将包含纹理、阴影、阴影、照明和视点等特征,而渲染引擎的作用是处理这些特征以创建逼真的图像。三种常见的渲染算法是(1)光栅化,它根据模型中的信息以几何方式投影对象,没有光学效果;(2)光线投射,它使用反射的基本光学定律从特定角度计算图像;(3)和光线追踪,它使用蒙特卡洛技术在更短的时间内获得逼真的图像。光线追踪用于提高 NVIDIA GPU 的渲染性能。
Volume Rendering:体积渲染使您能够创建 3D 离散采样数据集的 2D 投影。对于给定的摄像机位置,体绘制算法为空间中的每个体素获取 RGBα(红色、绿色、蓝色和 Alpha 通道),来自摄像机的光线通过这些体素投射。 RGBα 颜色转换为 RGB 颜色并记录在 2D 图像的相应像素中。对每个像素重复该过程,直到渲染整个 2D 图像。
ViewSyntheis:视图合成与体渲染相反——它涉及从一系列 2D 图像创建 3D 视图。这可以使用一系列从多个角度显示对象的照片来完成,创建对象的半球平面图,并将每个图像放置在对象周围的适当位置。视图合成函数尝试在给定描述对象不同视角的一系列图像的情况下预测深度。
NeRF如何工作
NeRF 使用一组稀疏的输入视图来优化连续的体积场景函数。这种优化的结果是能够产生复杂场景的新视图。您可以为 NeRF 提供输入作为一组静态图像。连续场景是具有以下特征的 5D 矢量值函数:
它的输入是 3D 位置 x = (x; y; z) 和 2D 观察方向 (θ; Φ)
它的输出是颜色 c = (r; g; b) 和体积密度 (α)。
以下是从特定角度生成 NeRF 的方法:
生成一组采样的 3D 点 — 通过使相机光线穿过场景。
通过将具有相应 2D 观察方向的采样点输入到神经网络中,生成一组密度和颜色的输出。
通过使用经典的体积渲染技术,将密度和颜色累积到 2D 图像中。
审核编辑:汤梓红
-
3D
+关注
关注
9文章
2856浏览量
107284 -
神经网络
+关注
关注
42文章
4759浏览量
100454 -
工作原理
+关注
关注
4文章
274浏览量
37643
原文标题:NeRF简介(1)
文章出处:【微信号:计算机视觉芯片设计,微信公众号:计算机视觉芯片设计】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论