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

news2024/12/27 11:49:37

NeRF使用神经网络来表示场景。给定一个场景,输入该场景稀疏的视角图片,NeRF可以合成该场景新的视角的图片。
在这里插入图片描述

神经辐射场

神经辐射场(neural radiance field,NeRF)使用5D的向量值函数表示一个场景。
输入是连续的5D坐标(包括位置 x = ( x , y , z ) \mathbf x = (x,y,z) x=(x,y,z)和视角方向 d = ( θ , ϕ ) \mathbf d = (\theta, \phi) d=(θ,ϕ)),输出是发光颜色 c = ( r , g , b ) \mathbf c = (r, g, b) c=(r,g,b)和体积密度 σ \sigma σ
具体地,用一个全连接网络近似这个场景,也就是学习 F Θ : ( x , d ) → ( c , σ ) F_{\Theta}:(\mathbf x, \mathbf d) \rightarrow (\mathbf c, \sigma) FΘ:(x,d)(c,σ)
作者鼓励让体积密度只依赖于位置。所以网络结构是先输入位置 x \mathbf x x,输出 σ \sigma σ和一个特征向量。之后将特征向量和视角方向拼接,最后映射到 c \mathbf c c颜色。
注意对每一个场景需要训练一个NeRF。

位置编码

在将输入传递到网络之前,使用高频函数将输入映射到更高维空间可以更好地拟合包含高频变化的数据。类似Transformer,作者提出将 x , d \mathbf x, \mathbf d x,d用三角函数映射到高维空间中,再输入网络:
在这里插入图片描述

使用辐射场进行立体渲染

为了配合辐射场,作者采用立体渲染(volume rendering)方法渲染图像。
关于立体渲染可以参考 https://zhuanlan.zhihu.com/p/595117334
体积密度 σ ( x ) \sigma(\mathbf x) σ(x)可以解释为光线在位置 x \mathbf x x处终止于无穷小粒子的微分概率。
立体渲染中,相机光线 r ( t ) = o + t d \mathbf r(t) = \mathbf o + t\mathbf d r(t)=o+td在范围 [ t n , t f ] [t_n, t_f] [tn,tf]的期望颜色 C ( r ) C(\mathbf r) C(r)如下计算:
C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r ( t ) , d ) d t w h e r e    T ( t ) = exp ⁡ ( − ∫ t n t σ ( r ( s ) ) d s ) C(\mathbf r) = \int_{t_n}^{t_f} T(t) \sigma(\mathbf r(t)) \mathbf c(\mathbf r(t), \mathbf d) dt \\ where~~ T(t) = \exp(-\int_{t_n}^t \sigma(\mathbf r(s))ds) C(r)=tntfT(t)σ(r(t))c(r(t),d)dtwhere  T(t)=exp(tntσ(r(s))ds)从连续的神经辐射场渲染一个视角,需要追踪所需虚拟相机的相机光线上的每个像素,来估计积分 C ( r ) C(\mathbf r) C(r)

上面公式的积分实际中用数值方法计算。如果固定在某些点采样计算积分,会限制表示的分辨率。为了解决这个问题,作者提出使用分层采样(stratified sampling)的方法。首先将 [ t n , t f ] [t_n, t_f] [tn,tf]平分成N个大小一样的桶,然后在每个桶中采样一个样本:
t i ∼ U [ t n + i − 1 N ( t f − t n ) , t n + i N ( t f − t n ) ] t_i \sim \mathcal U [t_n + \frac{i-1}{N}(t_f - t_n), t_n + \frac{i}{N}(t_f - t_n)] tiU[tn+Ni1(tftn),tn+Ni(tftn)]虽然采样的样本还是离散的,但是优化过程是循环的,需要进行多次采样,每次采样可以采样到不同的位置,所以相当于在连续的位置优化。用采样的样本估计 C ( r ) C(\mathbf r) C(r)的方法如下:
C ^ ( r ) = ∑ i N T i ( 1 − exp ⁡ ( − σ i δ i ) ) c i w h e r e    T i = exp ⁡ ( − ∑ j = 1 i − 1 σ j δ j ) \hat C(\mathbf r) = \sum_{i}^{N} T_i (1-\exp(-\sigma_i \delta_i)) \mathbf c_i \\ where~~ T_i = \exp(- \sum_{j=1}^{i-1} \sigma_j \delta_j) C^(r)=iNTi(1exp(σiδi))ciwhere  Ti=exp(j=1i1σjδj)其中 δ i = t i + 1 − t i \delta_i = t_{i+1} - t_i δi=ti+1ti。另外,估计 C ( r ) C(\mathbf r) C(r)的方法是可导的,所以可以方便的优化参数。

Hierarchical立体采样

如果沿每个相机光线的 N 个查询点密集地计算NeRF的值,这样的渲染策略是效率低下的,因为对渲染图像没有贡献的自由空间和遮挡区域会被重复采样。
为了解决这个问题,作者提出训练两个网络,一个是粗粒度(coarse)的,一个细粒度(fine)的。首先对粗粒度网络分层采样 N c N_c Nc个点,然后计算 C ^ c ( r ) \hat{C}_c(\mathbf r) C^c(r)
在这里插入图片描述标准化 w ^ i = w i ∑ j w j \hat{w}_i=\frac{w_i}{\sum_j w_j} w^i=jwjwi,可以得到一个分布的概率密度函数。根据这个分布,采样得到 N f N_f Nf个点。这 N f N_f Nf个点是根据其对渲染的重要性得到的。
然后使用细粒度网络计算这 N c + N f N_c + N_f Nc+Nf个点的颜色 C ^ f ( r ) \hat{C}_f(\mathbf r) C^f(r)。这种Hierarchical的方式可以对可见部分采样更多的点。

损失函数

损失函数是渲染像素和真实像素的平方误差:
在这里插入图片描述
其中 R \mathcal R R是一个batch的光线集合。在训练的每个循环中,从像素中随机采样一个batch的相机光线。
虽然最后渲染的图像由细粒度网络产生,但是粗粒度网络同样需要训练,因为粗粒度网络提供了采样点的位置。

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

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

相关文章

LeetCode 160. 相交链表

原题链接 难度:easy\color{Green}{easy}easy 题目描述 给你两个单链表的头节点 headAheadAheadA 和 headBheadBheadB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 nullnullnull 。 图示两个链表在节点 c1…

分享12款我常用的开源免费软件

嗨,大家好, 我是徐小夕, 在一个劳动力追求高性价的时代, 我们无时无刻不在追寻更高的工作学习效率, 提高工作舒适度,接下来我就和大家分享一下我之前用过的, 能提高工作效率的开源免费工具.1. 修图:Krita 【开源】image.png地址: https://krita.org/zh/Krita 是一款…

CK-GW06-E03与欧姆龙PLC配置指南

CK-GW06-E03与欧姆龙PLC配置指南CK-GW06-E03是一款支持标准工业EtherCAT协议的网关控制器,方便用户集成到PLC等控制系统中。本控制器提供了网络 POE 供电和直流电源供电两种方式,确保用户在使用无POE供电功能的交换机时可采用外接电源供电;系统还集成了六…

Mac环境下安装MongoDB数据库

一、下载安装 1.1 下载MongoDB 首先,从MongoDB官网下载自己想要使用的版本。 解压缩下载的压缩包重命名为mongodb,将mongodb文件夹复制到/usr/local目录下。 brew tap mongodb/brew brew install mongodb-community4.41.2 配置环境变量 打开.zshrc…

python 获取chrome浏览器的安装目录,即chrome的绝对路径

实现目标需要使用到(引包|倒包) 2 个 python 模块, import win32api import win32con 引言(扉页): 也适用于查找安装在Windows中的应用程序的绝对路径, 譬如:微信(WeChat…

APP自动化(1)-Appium中adb常用命令

1.建立Appium与手机模拟器的连接环境 首先确定的是Appium已经打开和手机模拟器已经打开并且appium点击了开始的按钮,然后用cmd进去win的dos系统, 输入tasklist找到这个进程号,每台电脑都是不一样的进程号要按照你自己的来 查询pid地址netst…

Git 构建分布式版本控制系统

版本控制概念Gitlab部署1.版本控制概念 1.1分类 (一)1 本地版本控制系统(传统模式) (二)2 集中化的版本控制系统 CVS、Subversion(SVN) (三)3 分布式…

linux程序分析工具

嵌入式调试工具1. nm2. addr2line3. readelf3.1 ELF 文件分类3.2 ELF文件组成3.3使用1. nm nm源于name,是linux下一个文本分析工具,可以罗列指定文件中的符号(函数名、变量,以及符号类型)。 nm命令参数如下: 用法:nm …

深入理解MySQLⅢ -- 锁与InnoDB引擎

文章目录锁概述全局锁表级锁表锁元数据锁意向锁行级锁行锁间隙锁&临键锁InnoDB引擎逻辑存储结构架构内存结构磁盘结构后台线程事务原理redo logundo logMVCC锁 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源&#x…

Fiddler安装教程、工具图解

目录 一、Fiddler是什么? 二、Fiddler原理 三、Fiddler安装 Fiddler界面介绍 四、常用的工具图解 4.1会话列表 4.2状态栏 4.3内容显示区 一、Fiddler是什么? Fiddler是客户端与服务器之间的HTTP代理,是当前最常用的HTTP协议抓包工具。 …

谈谈 《 JavaScript - DOM编程艺术 》这本书

前言 好吧,现在已经2023年了,对于这本书(第二版)来说可能有点老了,这本书不是很难理解,但也不是很适合新手读,当然,这本书并不是百宝书 📕 ,它更注重于编程的…

格式化字符串你都懂了吗

文章目录前言一、什么是格式化字符串?二、使用 % 格式化字符串三、使用 format() 格式化字符串总结前言 今天跟大家聊聊字符串的格式化这部分内容。乍一听“格式化”这三个字,有的初学者可能会懵:难道这是要清空字符串的节奏? 其…

网络管理之设备上线技术的发展现状和趋势

网络和网络设备无处不在 随着社会的发展和技术的进步,人类文明开始向信息时代演进,网络逐渐变成现代社会不可或缺的一部分,极大程度影响了人类的认知形式、思维方式与生活模式。从家庭网,到企业网;从无线网&#xff0…

Mysql MHA搭建

. 目录 机器配置 安装Docker Docker安装和启动Mysql8.0.26 搭建Mysql一主二从 设置三台机器免密访问 安装MHA 搭建问题记录 问题1 MHA验证主从复制报错Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation 问题2 MHA验证…

doris - 数仓 拉链表 按天全量打宽表性能优化

数仓 拉链表 按天全量打宽性能优化现状描述优化现状描述 1、业务历史数据可以变更 2、拉链表按天打宽 3、拉链表模型分区字段设计不合理,通用的过滤字段没有作为分区分桶字段 4、拉链表表数据量略大、模型数据分区不合理和服务器资源限制,计算任务执行超…

安装JupyterLab失败的解决方案

由于本人电脑安装的Python版本3.6比较低,所以可能存在下面两种方法都安装失败,最后给出一个简单省事的方法。Jupyter lab比Jupyter Notebook要好用,试了之后感觉跟VSCode一样的存在,所以还是值得安装来代替Jupyter Notebook使用。…

Ae:解释素材

所谓解释素材 Interpret Footage,就是通过修改素材的某些属性(像素长宽比、帧速率、颜色配置文件及 Alpha 通道类型等),让它能更好地参与到合成中去。Ae菜单:文件/解释素材快捷键:Ctrl Alt G在项目面板里…

【C语言】编程初学者入门训练(13)

文章目录121. 小乐乐算最高分122. 小乐乐计算求和123. 小乐乐计算函数124. 小乐乐查找数字125. kiki学程序设计基础126. kiki算期末成绩127. kiki说祝福语128. kiki的最高分129. 求质数的个数130. kiki去重整数并排序121. 小乐乐算最高分 问题描述:小乐乐的老师BoB…

4.2 双点双向路由重发布

1. 实验目的 熟悉双点双向路由重发布的应用场景掌握双点双向路由重发布的配置方法2. 实验拓扑 双点双向路由重发布如图4-6所示: 图4-6:双点双向路由重发布 3. 实验步骤 IP地址的配置R1的配置 <Huawei>system-v…

关键路径、工期、总时差和自由时差精讲

关键路径法是在进度模型中&#xff0c;估算项目最短工期&#xff0c;确定逻辑网络路径进度灵活性大小的一种方法。①计算原理a.计算ES、EF&#xff1a;从网络计划起点节点开始&#xff0c;沿箭线方向依次向前推算&#xff0c;数值取大。b.计算LS、LF&#xff1a;从网络计划终点…