- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
NeRF在2020年ECCV上名声大噪,作为bestpaper展示(/nerf)作者在网上收罗了NeRF的相关评说,汇总如下,内容可能杂乱,可作为对NeRF初步认识的资料。
参考链接1:/p/380015071
VanillaNeRF
什么是NeRF?
NeRF所要做的task是NovelViewSynthesis,一般翻译为新视角合成任务
在已知视角下对场景进行一系列的捕获(包括拍摄到的图像,以及每张图像对应的内外参),合成新视角下的图像
NeRF不需要中间三维重建的过程,仅根据位姿内参和图像,直接合成新视角下的图像。
NeRF引入了辐射场的概念,这在图形学中是非常重要的概念。
渲染方程式的定义:
方程表示了空间点$x\inR^3$在方向$d\inR^3$上的辐射$L_o$.
等式右边第一项表示x为光源点时,自身在d方向释放的辐射。
等式右边第二项表示该点折射在方向d上的辐射,其中$\Omega$为入射方向$\omega_i$的半球集合。
$fr(\cdot)$为散射函数,$Li$为从$\omega_i$方向接收到的辐射
辐射和颜色的关系:
光就是电磁辐射,或振荡的电磁场
光又有波长和频率,二者乘积为光速
光的颜色是由频率决定的
大多数光是不可见的,人眼可见的光谱称为可见光谱,对应的频率就是我们认为的颜色?
*NeRF表示3D场为可学习的,连续的辐射场$F_{\theta}$*
PositionalEncoding
deepnetworks更倾向于学习低频的函数,实际场景的神经辐射场基本上都是高频的
作者提出了PositionalEncoding(注意这里的PositionalEncoding和Transformer中的PositionalEncoding很像,但是解决问题是不一样的???
Hierarchicalvolumesampling
使用体渲染积分遇到的问题:
虽然可以离散的近似计算积分,采样点过多开销过大,采样点过少近似误差有太大。
解决办法:最好尽可能的避免在空缺部分以及被遮挡了的部分进行过多的采样,因为这些部分对最好的颜色贡献是很少的
NeRF提出分层采样训练的方式,如下图所示:
使用两个网络同时进行训练(后称coarse和fine网络)
coarse网络输入的点是通过对光线均匀采样得到的
根据coarse网络预测的体密度值,对光线的分布进行估计,然后根据估计出的分布进行第二次重要性采样
然后再把所有的采样点[公式]一起输入到fine网络进行预测。
NeRF存在的问题:
实时性不好
泛化性不强
不能处理动态场景
拍摄方式有限制
NeRF主要功能:使用静态场景下的多个视角的照片(大约几十至上百张),合成出任意新视角的图片。NeRF的算法思路:
Step1:
使用MLP学习该场景的隐式3D模型表达?
MLP模型示意图。输入一个3d点x和观测方向d的高频编码向量,网络预测该点的密度sigma和颜色c
Step2:使用体渲染方程将3D场景渲染成图片
图形上的点P(u,v,1),他的像素值rgb可以通过对该点P发出的射线上的所有的点的c和体密度进行积分得到。
-
Step3:训练
从该点发出的射线在世界坐标系中的表示为?
起始点[公式]的世界坐标也同样可以由相机的内外参求得
然后在该射线上采样n个采样点。
使用MLP预测这n个点的体密度,和c,然后使用体渲染方程的离散公式算出该像素点的预测值rgb。
然后计算预测的颜色值和真实颜色值的L2距离作为loss进行监督训练。?
训练集是几十张或者几百张该场景不同相机位姿拍摄的图片
首先使用SFM算法求出所有图片的相机相对世界坐标系的位姿(R,t)
每张图片的每个像素点都是一个训练样本?(u,v)→rgb
以像素点(u,v)为例:
Step4:观测方向d的作用
一个点的密度密度只能是该点位置x的函数。
但该点的颜色还取决于观测方向(我们观看空间中一个物体的某个点,从光源照射方向观看和从阴影方向观看,它的亮度是不一样的。)
Step5:Positionalencoding
直接让MLP学习映射很难,将x,d编码为高维向量后学习会更加容易。
因此使用如下高频函数进行编码。?
step6:多层级采样策略
均匀采样方式采样射线上64个点
这64点的密度值估计出密度分布函数。
再使用逆采样算法集中对高密度的区域采样128点。
使用该策略可以提高采样的效率,不需要对射线上所有区域都进行密集的采样
NeRF加速
FastNeRF:High-FidelityNeuralRenderingat200FPS?
Insta
文档评论(0)