目录

简介

Pipeline

细节讲解

结果


简介

什么是NeRF?NeRF翻译为神经辐射场。

下面两句话取自于Neural Fields in Visual Computing and Beyond。

A field is a quantity defined for all spatial and/or temporal coordinates.

场是为所有空间和/或时间坐标定义的量。

A neural field is a field that is parameterized fully or in part by a neural network.

神经场是完全或部分由神经网络参数化的场。

他要解决的问题是给定一些角度的拍摄视图,如何生成新视图下的图。

Pipeline

总体的Pipeline如下图所示:

首先输入已知相机位置(已知视角)的图片,通过SFM技术提取点的3D坐标和2D观察角度。Structure from Motion(SfM)是一个估计相机参数及三维点位置的问题。之后通过hierarchical asmpling 和 positional encoding操作后,输入进NeRF中,得到对应的体素密度和RGB颜色,最后通过渲染得到相应的视图。

细节讲解

对于在空间中的每个点。我们有:

1、RGB颜色

2、不透明度

如上图所示,本文的体渲染技术使用的是ray matching。ray marching 算法的思想是首先有一个3D的体纹理,然后从相机发射n条射线,射线有一个采样的步长,当涉嫌在体纹理中时,每个步长采一次样,获得纹理值,计算光照,然后和该条射线当前积累的颜色值进行混合。具体的颜色计算公式在下文中会有介绍。

有一个问题值得思考,为什么这种方法是有效的呢,为什么就可以选染成正确的颜色,正确的图案呢?这个道理很简单,因为光路是可逆的,从光源射出的光线经过散射,最终进入摄像机的效果等同于从摄像机发出的射线进行着色和采样。

Rendering model for ray r(t) = o + td

r(t) 是射线公式,其中的o是原点,是相机的位置,d是射线的方向,而t是步长,t是有范围的,如图中的t1和tN。

对于颜色计算,公式如下:

其中T是权重,表示的是某个点之前被遮挡的多少,或者说是,现在的这个点对于该方向颜色还可以贡献多少。

α表示某点对该条射线上的颜色所做的贡献:

想要得到空间中某个点的颜色和透明度。输入空间中的这个点它的坐标,输出是一个点它的颜色是多少,透明度是多少。本质上需要维护一个映射的关系,把空间的坐标映射成这个rgb的值,为了实现这个映射,最简单的方法就是在计算机里存一个大的tensor,覆盖这个物体的范围,如右上图所示,需要很大的空间。本文提出用一个网络来替代之前的tensor.

NeRF的框架如下:

该图的总体流程为首先输入体素的三维坐标,通过八个全连接层后,得到Volume density体素密度和深度特征,由于尚未输入2D的观察角度,所以空间中某点的不透明度是跟观察角度无关。之后输入2D观察角度,与深度特征一并进入全连接层得到最后的颜色RGB,所以可以得出结论,颜色是与观察角度有关系的。关于颜色跟观察角度有关系是很容易想象到的,就像我们现实生活中,由于光线角度的问题会有颜色差异,如下图所示:

我们可以到,两个不同的视角View1和View2,对于图中的观测点,颜色是不一样的。

NeRF结构的其他表示:

该图与上面的所给的结构是同一个意思,黄色是输入,红色是输出。不同的是,可以到,黄色框里的数字改成了60和24。这是因为加入了位置信息。Rahaman等人提出将输入传递到网络之前,使用高频函数将输入映射到高维空间,可以更好的拟合包含高频变化的数据。因此通过Positional encoding 将5D信号变成高维度信号。公式如下:

加入了位置信号后,其结果也是比较明显的。效果图如下所示:

 Hierarchical sampling strategy

Volume Rendering中是在每条相机光线上的N个查询点密集地评估神经辐射场网络,这是低效的(仍然重复采样与渲染图像无关的自由空间和遮挡区域),于是提出一种分层体积采样的做法,同时优化一个“粗糙”的网络和一个“精细”的网络。 做法是:首先使用分层抽样对第一组Nc位置进行采样,并在这些位置评估“粗糙”网络。给出这个“粗糙”网络的输出,然后我们对每条射线上的点进行更明智的采样,即利用反变换采样从这个分布中采样第二组Nf位置,然后将Nc+Nf采样得到的数据输入“精细”网络,并计算最终渲染的光线颜色C。 核心操作即先通过第一次采样把大概的分布采出来,然后第二次采样利用反变换采样(用的是概率论中的拒绝采样),对第一次采到的大概的分布再采一次,达到了重要性采样的目的。新的合成颜色函数:

结果

NeRF:Representing Scenes as Neural Radiance Fields for View Synthesis相关推荐

  1. 读论文12——NeRF:Representing Scenes as Neural Radiance Fields for View Synthesis

    目录 Abstract Introduction Related Work Neural Radiance Field Scene Representation Volume Rendering wi ...

  2. NeRF拜读:Representing Scenes as Neural Radiance Fields for View Synthesis

    神经辐射场 非显式地将一个复杂的静态场景用神经网络来建模.训练完成后,可以从任意视角渲染出清晰的场景图片. 过程 大量已知相机参数的图片作为输入 通过输入训练MLP神经网络,隐式地学习静态3D场景 利 ...

  3. Nerf(Representing Scenes as Neural Radiance Fields for View Synthesis)代码复现笔记

    前言:本文旨在帮助小白快速了解or学习复现出Nerf的代码,整体结构保持不变,不过会针对部分细节为了更好理解进行了修改. 本文会相应更新讲解视频于B站,id 出门吃三碗饭,有问题到b站评论区留言 同步 ...

  4. 论文笔记:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    目录 文章摘要 1 Neural Radiance Field Scene Representation (基于神经辐射场的场景表示) 2 Volume Rendering with Radiance ...

  5. [非卷积5D中文翻译及学习笔记] 神经辐射场 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    不使用3D建模,使用静态图片进行训练,用(非卷积)深度网络表示场景的5D连续体表示,再通过ray marching进行渲染. 本中文翻译使用"机器学习+人工校准/注解"的方式完成. ...

  6. 【论文笔记 - NeRFs - ECCV2020】NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 0背景介绍 用神经辐射场来表征场景,用于新视角图像生成任务 ...

  7. 文献翻译阅读-NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    目录 信息 简介 相关工作 神经3D表示 视角合成和基于图像的渲染 方法 体渲染技术(用离散形式表示连续积分) 优化神经场的技术 位置编码 分层体积抽样 实施细节 结果 结论 参考 信息 NeRF,即 ...

  8. 【论文精读】NeRF —— 解读《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》

    NeRF的核心点是实现了复杂静态场景的隐式表达,用一个神经网络来建模. Abstract 本文提出了一种新方法,通过使用稀疏的输入视图集优化底层连续的体积场景函数,实现了合成复杂场景的新视图的SOTA ...

  9. 论文笔记NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    NeRF使用神经网络来表示场景.给定一个场景,输入该场景一些视角的图片,NeRF可以合成该场景新视角的图片. 神经辐射场 神经辐射场(neural radiance field,NeRF)使用5D的向 ...

最新文章

  1. 数据库索引背后的数据结构
  2. “团队禁止使用Lombok”,被我狠狠的反驳了!
  3. k近邻回归算法python_K近邻算法用作回归的使用介绍(使用Python代码)
  4. Java里的class对象 - class object
  5. 李宏毅《机器学习》完整版笔记发布
  6. #把函数当作参数传给另一个函数
  7. fastdfs暗转 linux_Linux下安装fastDFS
  8. nginx的upstream实现负载均衡自带坏点自动剔除功能
  9. 嵌入式工程师是青春饭吗?越老越吃香吗?
  10. MATLAB画圆时却显示椭圆?一个命令解决问题!
  11. 关于主机的思维导图_思维导图可以整理哪些东西?
  12. Matlab2017b安装教程及破解失败方法
  13. POJ 3083 dfs + bfs
  14. 盘点那些被AI换脸、一键“脱”衣所滥用的AI模型
  15. App上线后,如何使用二维码进行推广
  16. 树莓派安装FISCO-BCOS
  17. 安装与配置VMware虚拟机 https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
  18. 产品30讲之产品周期
  19. ZZULIOJ 1800: 少水群多刷题
  20. Ambari 自定义服务集成 | quicklinks 快速链接不显示的排查方案

热门文章

  1. NBIOT的SIM卡介绍
  2. 大盘盘口分析和分时解读的奥妙
  3. 永中“闹鬼”,天理不容
  4. Springboot集成beetl模板
  5. RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
  6. 海思鸿蒙系统IPC摄像机,不仅首发鸿蒙系统,荣耀智慧屏还有升降摄像头!?
  7. C++字符串处理函数总结
  8. IMAUOJ——1448: 正反排序
  9. python代码扫描工具_用Python编写一个高效的端口扫描器的方法
  10. 2022-2028年全球与中国闪光对焊系统市场研究及前瞻分析报告