42、NeRF for Outdoor Scene Relighting
简介
主页:https://4dqv.mpi-inf.mpg.de/NeRF-OSR/
NeRF-OSR是第一个用于室外场景重照明的神经辐射场方法,学习了场景几何、漫射反照率和光照依赖阴影的神经表示,这些阴影来自一组从不同视角和不同时间捕捉到的相同地点的图像,能同时编辑场景的照明和视角,通过定义一个球面谐波模型,直接控制现场照明
与SoTA的比较表明,NeRF-OSR在更高的质量和真实的自阴影编辑可控的照明和视点编辑
贡献点
- NeRF-OSR,即第一种利用神经辐射场进行室外场景重照明的方法,支持场景光照和摄像机视点的同时且有语义意义的编辑。模型对场景内部有明确的控制,包括局部阴影、阴影甚至反照率。
- 学习了一个神经场景表示,将场景分解为空间占用、照明、阴影和漫反射反射率。它以一种自我监督的方式,从不同视角和不同光照下获取的户外数据进行训练。
- 一个新的、最大的户外场景重照明基准数据集。它包括8座建筑,从3240个视角,在110个不同的时间拍摄。此外,它是第一个包括颜色校准360◦环境地图,这允许准确的数值评估
实现流程
NeRF-OSR将在不同时间和不同视角拍摄的单个场景的多个RGB图像作为输入,然后从任意的观点和各种照明下呈现被检查的场景。可明确地估计场景的内在,并直接访问场景照明,还包括一个用于预测阴影的专用组件,即室外场景照明的基本特征。同时以一种自我监督的方式训练在不受控制的设置中捕获的户外数据,可以呈现逼真的视图
NeRF公式
每条射线中采样 N d e p t h N_{depth} Ndepth个点组成 { X i } i = 1 N d e p t h \{X_i\}^{N_{depth}}_{i=1} {Xi}i=1Ndepth, { t i } i = 1 N d e p t h \{t_i\}^{N_{depth}}_{i=1} {ti}i=1Ndepth为对应的射线深度
NeRF-OSR使用在不受控制的环境中拍摄的场地的户外图像(绿色虚线)来恢复一个可靠的隐式场景模型。它学习了用SH系数表示的场景特征和光照。在这里,一个专门的神经组件学习阴影。在测试过程中,NeRF-OSR可以在任意摄像机视点和场景光照下合成新的图像;用户通过环境地图或通过SH系数直接提供所需的相机姿态和场景照明。
Spherical Harmonics NeRF
NeRF公式学习了一个固定照明下的场景的朗伯模型,具有视图方向依赖性的更一般化模型在固定光照下学习了一个明显的BRDF切片,这种习得的表现仍然没有潜在场景内在的语义意义,也没有直接控制灯光
为了允许重照明,引入了一个显式的二阶球面谐波(SH)照明模型,并重新定义渲染方程
⊙表示elementwise乘法(元素的智能乘积 | 对应元素逐个相乘)(例如: v 1 , v 2 , v 3 T ⊙ w 1 , w 2 , w 3 T = v 1 w 1 , v 2 w 2 , v 3 w 3 T {v_1,v_2,v_3}^T ⊙ {w_1,w_2,w_3}^T = {v_1w_1,v_2w_2,v_3w_3}^T v1,v2,v3T⊙w1,w2,w3T=v1w1,v2w2,v3w3T ).
A(x)∈R3是累积的反照率颜色,其产生方式与(1)相似,即对反照率MLP的输出进行积分
L ∈ R 9 × 3 L∈R^{9×3} L∈R9×3为每个图像可学习的SH系数
b ( n ) ∈ R 9 b(n)∈R^9 b(n)∈R9为SH基
N(x)是由累积射线密度计算的表面法线
为了提取N,首先将射线上点的密度与射线样本的原始x-, y-, z分量进行微分,将它们以权重 T ( t i ) α ( σ ( x i ) δ i ) T (t_i)α(σ(x_i)δ_i) T(ti)α(σ(xi)δi) 累积到射线上的所有 Ndepth 样本上,并将结果向量归一化为一个单位球
在(2)中,使用屏幕空间反照率和神经体积积累的法线在屏幕空间中渲染,这种累积可以减少反照率和表面法向估计的噪声,有助于收敛,即只做一个阴影计算,而不是选择一个样本点和积累阴影颜色
除 SH 基 b(·) 和正常的提取算子 N(·) 是基于固定的显式模型外,(2)的所有项都是可学习的,照明模型允许通过改变 L 来显式照明,虽然它考虑了朗伯的效果,但缺乏直接的阴影生成,而阴影生成对于室外场景的建模和后续重光照至关重要。
Shadow Generation Network
为了在重光照过程中实现明确的阴影控制,引入了一个专用的阴影模型 S ( { X i } i = 1 N d e p t h , L ) S\big( \{ X_i \}^{N_{depth}}_{i=1},L \big) S({Xi}i=1Ndepth,L),渲染公式改为
阴影模型由 MLP s(x, L)∈[0,1] 计算的标量定义,最后的阴影值是通过沿射线累积到 S ( { X i } i = 1 N d e p t h , L ) S\big( \{ X_i \}^{N_{depth}}_{i=1},L \big) S({Xi}i=1Ndepth,L) 来计算的
阴影只依赖于空间光的分布,阴影预测网络以其灰度版本的SH系数( L ∈ R 1 × 9 L∈R^{1×9} L∈R1×9,而不是 L ∈ R 3 × 9 L∈R^{3×9} L∈R3×9)作为输入,阴影模型只通过与反照率和几何形状相同的单一前向传递,阴影估计器操作效率更高,使方法在计算上更具可扩展性,同时仍然允许使用全新的照明条件重新照明
Objective Function
MSE(·,·)为均方误差
第一项是由估计颜色 C 和对应的地面真值 C ( G T ) C^{(GT)} C(GT) 定义的重建损失
第二项规则化阴影,阴影网络 S 吸收了所有不能用SH解释的灰度照明效果,为了限制它只学习阴影,选择不降低重建图像的PSNR的正则化强度 λ 的最大值,去除正则器通常会导致 S 学习除色度之外的所有照明成分,从而使SH照明失效
效果
42、NeRF for Outdoor Scene Relighting相关推荐
- 神经网络辐射场NeRF、实时NeRF Baking、有向距离场SDF、占用网络Occupancy、NeRF 自动驾驶
1 NeRF原理 2 NeRF加速 Plenoxels KiloNeRF Instant NGP TensoRF 3 SDF + NeRF 4 Occupancy + NeRF 5 NeRF应用简介 ...
- Android开发:4-2、不同Activity数据的传递
4-2.不同Activity数据的传递 Activity数据传递的启动方式 不带返回值的启动Activity并传递数据 带返回值启动Activity: Activity数据传递的启动方式 1. 2. ...
- 工业42、57、86、110步进电机
1.57步进电机基本介绍 在实际工业设备中一般使用较大尺寸的步进电机,它们有更大的扭矩.根据电机外尺寸的不同,可以分为42.57.86.110步进电机:另外,同个尺寸电机可以有不同的机身长度,影响转矩 ...
- 35、StylizedNeRF Consistent 3D Scene Stylization as Stylized NeRF via 2D-3D Mutual Learning
简介 主页:http://geometrylearning.com/StylizedNeRF/ 给定一组真实的照片(a)和一个风格图像(b),模型能够生成风格化的新视图©,通过学习风格化的NeRF在3 ...
- 42、使用mmrotate中k3det进行旋转目标检测,并进行mnn部署和ncnn部署
基本思想:仍然是身份证分割,因为上一个篇博客的效果不好,所以操刀改mm系列的框架,并进行ncnn和mnn的c++的部署开发 mmcv_full 1.6.1+mmrotate v0.3.2测试没有问题 ...
- 40、NeRF in the Dark
简介 主页:https://bmild.github.io/rawnerf/index.html 知识点补充:rawRGB与RGB rawRGB 图像采集的过程为:光照在成像物体被反射 -> 镜 ...
- 42、使用存放在存assets文件夹下的SQLite数据库
因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机 ...
- 42、BGP常用命令及注意事项
1.用r标识的路由:IGP和BGP学到同一条路由,但IGP学到的AD较小,该路由就会标识r,r标识的路由不放入路由表,但仍会传给其他邻居.可以通过命令show ip bgp rib-failure查看 ...
- 42、Java服务内存OOM原因分析
1.出现问题的可能原因 对于应用来说内存分配太少 对象创建太多,又没有释放,造成内存泄漏严重,导致内存耗尽 申请太多的系统资源,系统资源耗尽.例如:不断创建线程,不断发起网络连接 2.如何定位问题(可 ...
最新文章
- LeetCode简单题之统计匹配检索规则的物品数量
- 苏州之行的点滴感悟---活动中老师的言论以及火车上遇到的人
- vue cli根据不同的环境打包
- 树莓派3B 安装中文输入法谷歌输入法途中碰到的各种问题
- 计算机网络子网划分路由配置实验报告,完整的子网划分与路由交换实验报告 珍藏版哦...
- python将csv装入mysql_python 从csv读数据到mysql的实例
- 一些社会运行的底层规律,和你的利益息息相关
- 网站数据是怎么存取在mysql_数据是怎么存储在mysql?
- 编程语言通用知识 编程语言的应用
- oracle 完整约束,【oracle】完整性約束
- allegro 16.6 空心焊盘的制作
- python读音播报-用Python写一个语音播放软件
- android开发访问百度搜索,Android开发如何添加搜索功能———大神求救啊
- python1到100偶数求和_python1-100怎样偶数求和?_后端开发
- 数据-第11课-双向链表
- halcon中的面向对象,数据保存(续)
- ISO 12233和SFR
- Eclipse+Wildfly10 创建第一个EJB项目
- 山东大学网络考试的计算机试题及答案,专科 计算机基础 山东大学网络教育考试模拟题及答案.doc...
- N个字符或数字的全排列
热门文章
- android广告拦截原理,android扫描带有广告应用原理
- 继电器带大功率容性负载,启动过程拉弧解决办法
- android 播放器 遥控器,DY的瞎折腾系列 篇八:N1多媒体播放器 手机遥控器
- coreldraw课表设计作品_CorelDRAW强大的平面设计 亿万人都在用
- mysql中毒_2020-10-15 MYSQL中勒索病毒解密 .help 病毒解密恢复 数据库中.help 解密恢复 服务器被加密解密恢复...
- JS-the-good-parts
- 浅谈设计模式-迪米特法则
- 性李 起一个如诗如梦一般的名字 三个字组成
- 万条票房数据看2019春节档各地影院表现(附源码)
- Unity的timeScale影响范围