NERF++:Analyzing and Improving Neural Radiance Fields神经辐射场的分析与改进

在这里插入图片描述

ABSTRACT

神经辐射场(NeRF)可以实现各种捕获设置的令人印象深刻的视图合成结果,包括360度捕获有界场景和前向捕获有界和无界场景。NeRF 将代表视图不变不透明度和视图相关颜色体积的多层感知器(MLPs)匹配到一组训练图像中,并基于立体渲染技术对新视图进行采样。在这份技术报告中,我们首先评论了辐射场及其潜在的模糊性,即形状-辐射模糊性,并分析了 NERF 在避免这种模糊性方面的成功。其次,我们解决了一个参数化问题,涉及到应用 NERF 到360度捕捉大规模,无界的3D 场景中的对象。我们的方法在这个具有挑战性的场景中提高了视图综合保真度。

1 introduction

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 Preliminaries在这里插入图片描述

在这里插入图片描述

3 shape-radiance ambiguity形状-辐射模糊

NERF 模拟视图相关外观的能力导致了3D 形状和辐射之间固有的模糊性,这种模糊性可以接受退化解(退化解通常指的是非典型或不符合预期的解),在缺乏正规化/正则化的情况下。对于一个任意的、不正确的形状,我们可以证明存在一系列的辐射场,这些辐射场可以很好地解释训练图像,但是对于新的测试视图来说,这些辐射场的概括性很差。

为了说明这种模糊性,假设对于给定的场景,我们将几何图形表示为一个单位球体。换句话说,让我们把 NERF 的不透明度场修正为单位球面上的1,其他地方的0。然后,对于每个训练图像中的每个像素,我们将穿过该像素的光线与球体相交,并定义相交点(以及沿着光线方向)的亮度值作为该像素的颜色。这个人工构造的解决方案是一个有效的 NERF 重建,完全符合输入图像。然而,这种解决方案合成新视图的能力是非常有限的: 准确地生成这样的视图将涉及在每个表面点重建任意复杂的视图依赖函数。除非训练视图非常密集,因为在传统的光场渲染工程中,否则该模型不太可能准确地插入如此复杂的函数

这种形状-辐射模糊性如图2所示。在这里插入图片描述
图2: 为了演示形状-辐射模糊性,我们在一个合成数据集上预训练 NeRF,其中不透明度场 σ 被优化为模拟一个不正确的3D 形状(一个单位球体,而不是推土机形状) ,而辐射场 c 被优化为映射训练射线与球体的交叉点和视图方向到它们的像素颜色。在这个例子中,我们使用3个 MLP 层来模拟视图依赖性的影响(参见图3中的 MLP 结构) ,并适合于50个视点随机分布在半球上的合成训练图像。结果不正确的解决方案很好地解释了训练图像(左两幅图像) ,但是没有推广到新的测试视图(右两幅图像)。

为什么 NERF 避免这种退化的解决方案?我们假设有两个相关的因素来拯救 NeRF: 1)不正确的几何形状迫使辐射场具有更高的内在复杂性(即,更高的频率) ,而相反2) NeRF 的特定 MLP 结构隐含地在表面反射率之前编码平滑的 BRDF

Factor 1: 当 σ 偏离正确的形状时,c 一般必须成为相对于 d 的高频函数来重建输入图像。对于正确的形状,表面光场通常会更加平滑(事实上,朗伯体材料的光场常数)。不正确形状所需要的更高的复杂性更难以用有限容量的 MLP 来表示。
Factor 2:特别地,NeRF 的特定 MLP 结构编码了一个隐式的优先级偏好光滑表面反射函数,其中在任意给定的表面点 x 上 c 相对于 d 是光滑的。这个 MLP 结构,如图3所示,不对称地处理场景位置 x 和观察方向 d: d 被注入到 MLP 末端附近的网络中,这意味着有更少的 MLP 参数,以及更少的非线性激活,参与创建视图依赖效应。此外,用于编码观察方向的傅里叶特征仅由低频分量组成,即,用于编码 d 和 x 的 γ4(·)和 γ10(·)(参见 Eq3).换句话说,对于一个固定的 x,辐射度 c (x,d)相对于 d 的表达式是有限的。在这里插入图片描述
为了验证这个假设,我们进行了一个实验,我们用一个对称处理 x 和 d 的普通 MLP 来代表 c,也就是说,接受两者作为第一层的输入,并用 γ10(·)来编码,以消除任何涉及网络结构引起的观察方向的隐含先验。如果我们使用 c 的这个替代模型从头开始训练 NeRF,我们观察到与 NeRF 的特殊 MLP 相比,测试图像质量降低,如图4和表1所示。这一结果与我们的假设相一致,即在 NERF 的 MLP 辐射c模型中,反射率的隐式正则化有助于恢复正确的解。
在这里插入图片描述
图4: 在 DTU 场景中(Jensen 等,2014; Riegler & Koltun,2020) ,该图显示了用普通的 MLP 替换 NERF 的辐射场 c 模型的效果(同时保持 σ 的结构相同并从头开始训练两个场)。普通的 MLP (vanilla MLP)损害了 NERF 概括新视图的能力。在这里插入图片描述
表1: 在 DTU 场景中(Jensen et al。 ,2014) ,用普通 MLP 代替 NeRF 的 MLP 显著地减少了对新视图的泛化。我们使用与 Riegler & Koltun (2020)相同的数据分割。左边的数字用于插值,右边的数字用于外推/推断。他们评估的全部图像与背景掩盖。

4 inverted sphere parametrization(倒球参数化)

方程2中的体绘制公式对欧几里得深度进行了积分。在这里插入图片描述
当真实场景深度的动态范围较小时,可以用有限个样本对积分进行数值逼近。然而,对于户外,360度捕捉以附近物体为中心,同时观察周围环境,动态深度范围可以非常大,因为背景(建筑物、山脉、云层等)可以任意远离。如此高的动态深度范围导致了 NERF体积场景表示中严重的分辨率问题,因为要合成逼真的图像,Eq2中的积分需要在前景和背景区域有足够的分辨率,这很难通过简单的采样点根据欧几里得三维空间参量化来实现。图5展示了场景覆盖和捕捉细节之间的折衷。在一个更受限制的场景中,所有的摄像机都面向一个将摄像机与场景内容分隔开的平面,NeRF 通过投影映射欧几里德空间的一个子集,即参考摄像机的视图平台到标准化设备坐标(NDC)(McReynolds & Blythe,2005)来解决这个分辨率问题,并在这个 NDC 空间中集成。然而,这个NDC参数化也从根本上限制了可能的视点,因为它没有覆盖参考视图平台外的空间。
在这里插入图片描述
图5: 对于无界场景的360度捕捉,NeRF 的空间参量化要么只模拟场景的一部分,导致背景元素(a)中出现重要的伪影,要么模拟整个场景,由于有限的采样分辨率(b)而导致整体细节的丢失。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
图9:我们定性地比较了两个T&T场景(卡车、游乐场)和两个LF场景(非洲、火炬)上的NeRF++和NeRF。NeRF++比NeRF产生更清晰的图像,能够更好地表示前景和背景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nestjs版若依全栈管理后台完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续和大家分享一下我们小伙伴开源的基于 nestjs 的若依全栈管理系统。 相信前端小伙伴对若依管理系统并不陌生,它的后端采用…

股票退市的最新要求!

五一假期一过,多家上市公司都进入退市名单,不知道有没有您的股票?很多朋友直呼现在炒股越来越难,一步小心就买到了退市个股,加上新改革,我们一起来结合退市政策来了解下怎么挑选个股? 2024年最新…

JAVA队列相关习题4

1. 用队列实现栈。 225. 用队列实现栈 - 力扣(LeetCode) 一个队列无法实现栈 尝试使用两个队列 1)push元素的时候应当放在那里?哪个队列不为空就放在哪里 2)出栈的时候,出不为空的队列size-1元素,剩余元…

01-new SpringApplication

准备配置Bean Configuration public class TestSpringApplication {static class Bean1 {}static class Bean2 {}static class Bean3 {}Beanpublic Bean2 bean2() {return new Bean2();}Beanpublic TomcatServletWebServerFactory tomcatServletWebServerFactory() {return ne…

去哪找高清视频素材?哪个网站有视频素材?

在这个视觉表达日益重要的时代,获取高品质的视频素材变得尤为关键。4K和无水印视频素材特别受到创作者的青睐,因为它们能极大地提升视觉作品的吸引力和专业度。接下来,我将介绍几个国内外的优秀视频素材网站,助您在创作旅程上一帆…

解决springboot项目的网站静态页面显示不全问题

在通过springboot搭建项目时,为了能够访问静态的前端页面,我们考虑到访问的优先级问题,通常选择将资源放在recourses/static的目录下,如下: 这时可能会出现类似于下面这种图片无法加载、没有按照指定位置显示的情况&am…

代码随想录算法训练营第六十二天|503.下一个更大元素II、 42. 接雨水

单调栈 文章目录 一、下一个更大元素II二、接雨水总结 一、下一个更大元素II 1.数组扩展一倍计算 2.模拟遍历两边nums&#xff0c;用i % nums.size()来操作 class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {//暴力解法&#x…

第四十节实现主人公的技能释放功能(二)实现技能按钮

看看我们今天要实现的效果是&#xff0c;当我们按下数字1快捷键&#xff0c;我们的技能按钮会进入倒计时&#xff0c;如下图演示&#xff1a; 一、新建场景和根节点设置 新建场景&#xff0c;选择TextureButton作为根节点&#xff0c;重名为SpellButton&#xff0c;保存场景…

程序员的实用神器——高效软件开发的秘诀

目录 前言 一、自动化测试工具 &#xff08;一&#xff09;常用的自动化测试工具 &#xff08;二&#xff09;编写有效的测试用例的建议 &#xff08;三&#xff09;提高代码覆盖率的方法 二、持续集成/持续部署 &#xff08;一&#xff09;持续集成&#xff08;CI&#…

前端面试题 | new 操作符的原理 |(对象的原型 及其用途)

问题&#xff1a;new操作符具体干了什么&#xff1f; 总结&#xff1a; 在JavaScript中&#xff0c;new操作符 用于创建一个新的对象实例。 作用是 ①创建一个空对象 ②将这个新对象的隐式原型指向构造函数的显式原型 ③它将构造函数的this指向这个新对象&#xff0c;并执行构造…

pyinstaller 不是内部或外部命令,也不是可运行的程序或批处理文件的解决办法(详细)

首先我们需要查看是否安装了pyinstaller &#xff0c;可以在命令窗口输入命令pip list检查是否安装成功&#xff0c; 这里我们可以看见已经安装成功了的&#xff0c;如果没有安装可以执行安装命令 pip install pyinstaller 进行安装即可。 下一步我们排查pyinstaller的安装路…

LeetCode 139 —— 单词拆分

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 定义 d p [ i ] dp[i] dp[i] 表示 s [ 0 , i ] s[0, i] s[0,i] 是否可以被字典中出现的单词拼接&#xff0c;那么状态转移方程为&#xff1a; d p [ i ] t r u e &#xff0c;如果存在任意 j ∈ [ 0 , i − 1…

spring源码分析之AOP开启注解

AOP开启注解 在使用注解Aspect来进行AOP操作时&#xff0c;需要在xml中进行配置 <!-- 使Aspect注解生效 --><aop:aspectj-autoproxy/> 创建BeanFactory时obtainFreshBeanFactory()在解析xml加载BeanDefinition中&#xff0c;执行parseBeanDefinitions方法进行解析发…

Springboot+vue项目零食销售商城

摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;零食销售商城当然也不能排除在外。零食销售商城是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff…

Verilog 触发器状态机语言描述

触发器状态机语言描述 触发器状态机语言用于描述映射到 ILA 调试核的高级触发器逻辑的复杂触发条件。触发器状态机具有下列特性 &#xff1a; • 最多 16 种状态。 • 用于复杂状态转换的单向、双向和三向条件分支。 • 4 个内置 16 位计数器 &#xff0c; 用于对事件…

Golang编译优化——稀疏条件常量传播

文章目录 一、概述二、稀疏条件常量传播2.1 初始化worklist2.2 构建def-use链2.3 更新值的lattice2.4 传播constant值2.5 替换no-constant值 一、概述 常量传播&#xff08;constant propagation&#xff09;是一种转换&#xff0c;对于给定的关于某个变量 x x x和一个常量 c …

浙江大学 → PAT 1012:数字分类

【题目来源】https://pintia.cn/problem-sets/994805260223102976/exam/problems/type/7?problemSetProblemId994805311146147840&page0【题目描述】 给定一系列正整数&#xff0c;请按要求对数字进行分类&#xff0c;并输出以下 5 个数字&#xff1a; A1​ 能被 5 整除…

《米小圈上学记》|快乐读书,从身边的人身边的事开始!

时间&#xff0c;抓住了就是黄金&#xff0c;虚度了就是流水;书&#xff0c;看了就是学问&#xff0c;没看就是废纸:抱负&#xff0c;努力了才叫幻想&#xff0c;放弃了那只是妄想。读书&#xff0c;不一定能转变命运&#xff0c;但肯定能让我们安静&#xff0c;安静本身就是一…

js/ts全栈开发 t3 stack

技术栈 React Vite TailwindCSS / Nestjs TRPC Prisma(SQLite) / Docker GitHub: https://github.com/cooderl/react-nestjs-full-web-app t3 stack The T3 Stack is a web development stack made by Theo focused on simplicity, modularity, and full-stack type safet…

红米1s 刷入魔趣 (Mokee)ROM(Android 7.1)

目录 背景准备工具硬件&#xff08;自己准备&#xff09;软件&#xff08;我会在文末提供链接&#xff09; 刷机步骤1. 重启电脑2. 安装驱动3. 刷入TWRP4. 清空数据5. 刷入魔趣6. 开机 结尾下载链接 本文由Jzwalliser原创&#xff0c;发布在CSDN平台上&#xff0c;遵循CC 4.0 B…