NeRF拜读:Representing Scenes as Neural Radiance Fields for View Synthesis
神经辐射场
非显式地将一个复杂的静态场景用神经网络来建模。训练完成后,可以从任意视角渲染出清晰的场景图片。
过程
- 大量已知相机参数的图片作为输入
- 通过输入训练MLP神经网络,隐式地学习静态3D场景
- 利用模型输出任意角度的渲染图像
由上述过程可知,NeRF由一系列2D输入学习3D场景,最后又通过3D模型输出2D图像。那么就有3个核心技术点:
- a.怎么用神经网络表示3D的?
- b.怎么再基于3D渲染出2D的?
- c.这个神经网络的具体训练过程是怎么样的?
a.神经辐射场描述3D场景
NeRF函数:
- 输入为空间点的3D坐标位置,以及2D观察方向。(为啥不是6D呢?因为这种5D神经辐射场将场景表示为空间任意点的体积密度和定向发射辐射,对于射线5D就可以完全描述
- 输出为空间点的反射RGB颜色和密度Density
- RGB预测与3D坐标和2D视角都有关
- Density预测只与3D坐标有关
b.神经辐射场的体素渲染
NeRF函数得到的是一个3D空间点在对应视角的RGB和Density, 但这个对应视角的RGB还不是相机视角下的RGB
- 因为相机成像的像素实际上对应的是投影光线上的所有连续空间点
作者使用了经典的体绘制思路渲染穿过场景的任意光线的颜色
- 为了能够用神经网络来渲染,这个方法必须是可微的
b.1经典的体绘制方法
就是写了一个射线方程(由射线原点和射线朝向描述),通过这个方程可以得到射线上任意点的颜色。
- 理论上可以得到射线上任意点的颜色,那么我们就可以用积分的方式得到整体的渲染颜色(类似透明度累计的感觉
- 但实际上,我们不可能遍历计算一个连续的线上的所有点,因此作者采用了数值近似的方法
b.2基于分段随机采样的离散近似volume rendering方式
数值近似的简单思路就是均匀抽样再积分
- 均匀抽样带来的问题就是把连续的数值离散化了,这样网络很难学习到射线上的连续性信息
所以作者选择先将需要积分的射线线段分为N个线段,然后对每个线段进行随机抽样再积分,以此保证辐射场的连续性
c.NeRF的训练细节
- 1.位置信息编码,直接输入位姿的时候网络很难学,这里采用了正余弦周期函数的形式,这种position encoding让网络更容易学
- 2.多层体素采样,考虑到射线上很多地方都是无用的空白或者遮挡区域,为了减少计算量,采用了一种“coarse to fine" 的形式,同时优化coarse 网络和fine 网络,基于得到的概率密度函数来采样更精细的点。
速度问题
- 1.训练速度,一个场景要用单卡V100 训练1-2天左右
- 2.渲染速度,一帧一分钟
要是能改进到1s 30帧,那就会对许多领域产生翻天覆地的变化!!!
Reference
[1]百度大佬看NeRF
[2] Mildenhall B, Srinivasan P P, Tancik M, et al. Nerf: Representing scenes as neural radiance fields for view synthesis[C]//European Conference on Computer Vision. Springer, Cham, 2020: 405-421.
[3] Kajiya J T, Von Herzen B P. Ray tracing volume densities[J]. ACM SIGGRAPH computer graphics, 1984, 18(3): 165-174
NeRF拜读:Representing Scenes as Neural Radiance Fields for View Synthesis相关推荐
- 读论文12——NeRF:Representing Scenes as Neural Radiance Fields for View Synthesis
目录 Abstract Introduction Related Work Neural Radiance Field Scene Representation Volume Rendering wi ...
- NeRF:Representing Scenes as Neural Radiance Fields for View Synthesis
目录 简介 Pipeline 细节讲解 结果 简介 什么是NeRF?NeRF翻译为神经辐射场. 下面两句话取自于Neural Fields in Visual Computing and Beyond ...
- Nerf(Representing Scenes as Neural Radiance Fields for View Synthesis)代码复现笔记
前言:本文旨在帮助小白快速了解or学习复现出Nerf的代码,整体结构保持不变,不过会针对部分细节为了更好理解进行了修改. 本文会相应更新讲解视频于B站,id 出门吃三碗饭,有问题到b站评论区留言 同步 ...
- [非卷积5D中文翻译及学习笔记] 神经辐射场 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
不使用3D建模,使用静态图片进行训练,用(非卷积)深度网络表示场景的5D连续体表示,再通过ray marching进行渲染. 本中文翻译使用"机器学习+人工校准/注解"的方式完成. ...
- 【论文笔记 - NeRFs - ECCV2020】NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 0背景介绍 用神经辐射场来表征场景,用于新视角图像生成任务 ...
- 论文笔记:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
目录 文章摘要 1 Neural Radiance Field Scene Representation (基于神经辐射场的场景表示) 2 Volume Rendering with Radiance ...
- 文献翻译阅读-NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
目录 信息 简介 相关工作 神经3D表示 视角合成和基于图像的渲染 方法 体渲染技术(用离散形式表示连续积分) 优化神经场的技术 位置编码 分层体积抽样 实施细节 结果 结论 参考 信息 NeRF,即 ...
- 【论文精读】NeRF —— 解读《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》
NeRF的核心点是实现了复杂静态场景的隐式表达,用一个神经网络来建模. Abstract 本文提出了一种新方法,通过使用稀疏的输入视图集优化底层连续的体积场景函数,实现了合成复杂场景的新视图的SOTA ...
- 论文笔记NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
NeRF使用神经网络来表示场景.给定一个场景,输入该场景一些视角的图片,NeRF可以合成该场景新视角的图片. 神经辐射场 神经辐射场(neural radiance field,NeRF)使用5D的向 ...
最新文章
- 我的第一份工作是个小公司
- mysql存储过程分析
- How does Spring @Transactional Really Work?--转
- 23种设计模式C++源码与UML实现--策略模式
- 目标检测特殊层:PSROIPooling详解
- LVS practice
- java输入流读取几行文本_Java基础笔记Day_16
- Maven--资源文件resource的问题
- WildFly 8.0.0.Alpha1的发布和一些历史
- ssh的详细链接过程
- python实现rsa数据加密_python实现RSA与AES混合加密
- 2017《面向对象程序设计》课程作业五
- 安卓期末大作业(AndroidStudio开发),日记本app,代码注释详细,能正常运行
- web前端基础教程实践DIV+CSS网页布局入门指南
- c语言教材衡军山 答案,c语言
- 【解决】Git:hint:Pulling without specifying how to reconclie divergent branches is...
- 千兆网线和百兆网线的区别
- 发光环绕文字特效怎么做?教程来了
- See Conf 悠鹤《蚂蚁庄园背后的技术与思考》笔记
- python学习004-----python中%s的各种用法