NERF论文笔记(1/2)

NeRF:Representing Scene as Neural Radiance Fields for View Synthesis 笔记

摘要

实现了一个任意视角视图生成算法:输入稀疏的场景图像,通过优化连续的Volumetric场景函数实现;用全连接深度网络表达场景,输入是一个连续的5维坐标,3D坐标+2D角度(航向、俯仰角),输出Volume density和依赖于视图的emitted radiance,查询5维坐标并用经典的Volume Rendering把输出的颜色与强度投影到图像。

介绍

a. march camera rays,我理解为从焦点投射射线到场景,获取3D坐标点。
b. 用3D点 x \bold{x} x与对应的2D角度(用单位向量 d \bold{d} d)输入,输出颜色 c \bold{c} c和强度 σ \sigma σ
c. 合成图像。

Neural Radiance Field场景表达

F θ : ( x , d ) → ( c , σ ) F_{\theta}:(\bold{x},\bold{d})\rarr(\bold{c},\sigma) Fθ:(x,d)(c,σ)
输出 σ \sigma σ只与输入位置坐标 x \bold{x} x有关, c \bold{c} c则与 x \bold{x} x d \bold{d} d有关。

网络结构,输入 x \bold{x} x的8层全连接层,均为256通道,各层带ReLU激活,输出 σ \sigma σ、256维特征,此特征再与 d \bold{d} d聚合,输入一层带ReLU的全连接层,输出 c \bold{c} c

Volume Rendering

位置坐标 x \bold{x} x表达为相机射线 r \bold{r} r r ( t ) = o + t d \bold{r}(t)=\bold{o}+t\bold{d} r(t)=o+td,t是从焦点 o o o出发的长度,积分上下界是远端、近端。
C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r , d ) d t T ( t ) = e x p ( − ∫ t n t σ ( r ( s ) ) d s ) C(\bold{r})=\int_{t_{n}}^{t_{f}} T(t)\sigma(\bold{r}(t))\bold{c}(\bold{r},d)dt\\T(t)=exp(-\int_{t_{n}}^t\sigma(\bold{r}(s))ds) C(r)=tntfT(t)σ(r(t))c(r,d)dtT(t)=exp(tntσ(r(s))ds)

T ( t ) T(t) T(t)的含义从 t n t_n tn t t t累积的transmittance,“the accumulated transmittance along the ray”,是射线从 t n t_n tn t t t未遇到其他粒子的概率。
求该积分的数值方法,Deterministic quadrature,笔者初步理解是一种数值计算方法,离散化近似:将区间分为N段,从每一段随机取样。
t i ∼ U [ t n + i − 1 N ( t f − t n ) , t n + i N ( t f − t n ) ] t_i\sim 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)]
参考Volume Rendering综述,
C ^ ( r ) = ∑ i = 1 N T i ( 1 − e x p ( − σ i δ i ) ) c i T i = e x p ( − ∑ j = 1 i − 1 σ j δ j ) δ j = t j + 1 − t j \hat C(\bold{r})=\sum_{i=1}^NT_i(1-exp(-\sigma_i\delta_i))\bold{c}_i\\ T_i=exp(-\sum_{j=1}^{i-1}\sigma_j\delta_j)\\ \delta_j=t_{j+1}-t_j C^(r)=i=1NTi(1exp(σiδi))ciTi=exp(j=1i1σjδj)δj=tj+1tj

两项技术改进

只有上述设计不能达到SOTA,为此添加了两项重要改进,其中第二项是为了高效地实现第一项。

  1. 位置编码

    直接输入上述5维做渲染,在场景中颜色和几何的高频变化的条件下表现较差,有参考证明深度网络偏向于学习低频函数,并发现在输入网络前用高频函数将数据映射到更高维,网络能更好拟合含有高频变化的数据。5维输入的各个元素 p p p被映射为长为2L的向量
    γ ( p ) = ( s i n ( 2 0 π p ) , c o s ( 2 0 π p ) , . . . , s i n ( 2 L − 1 π p ) , c o s ( 2 L − 1 π p ) ) \gamma(p)=(sin(2^0{\pi}p),cos(2^0{\pi}p),...,sin(2^{L-1}{\pi}p),cos(2^{L-1}{\pi}p)) γ(p)=(sin(20πp),cos(20πp),...,sin(2L1πp),cos(2L1πp))
    其中,位置元素L=10,方向元素L=4;各维元素均归一化到 [ − 1 , 1 ] [-1,1] [1,1]
    Transformer有相似处理,但它的目的是给序列提供位置标签,因为Transformer结构不能标记顺序;NERF中的位置编码则是为了将输入升维以使得它的MLP能拟合更高频函数;从投影重建蛋白质3D结构的模型方法也使用了该思路。

  2. 多层采样
    采用两个网络,一个粗略,一个精细。首先用第一个网络生成颜色,每条射线输入 N c N_c Nc个位置,然后用其结果引导重新采样,使得 N f N_f Nf个采样点集中到体元附近,提高有效信息位置的样本权重,使用两次的采样来渲染。

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

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

相关文章

[Android] MediaPlayer SDK API glance

参考: https://developer.android.com/reference/android/media/MediaPlayer 概述: 音视频的 playback。创建 MediaPlayer 的线程必须和调用 SDK 接口的线程是同一个。注册 callback 给 MediaPlayer SDK 的 thread 必须自带一个 running Looper&#x…

Unity3D 阴影的计算原理详解

前言 阴影是游戏中的重要特效之一,可以增加游戏的真实感和立体感。在Unity3D中,阴影的计算原理主要包括阴影的产生、投影和渲染。 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀! 首…

面试经典150题——逆波兰表达式求值

Man cannot live like a beast, he should pursue knowledge and virtue. -- Dante 1. 题目描述 2. 题目分析与解析 2.1 思路一 这个波兰式我记得在之前上编译原理的时候学过,是对输入的代码进行解析用的。可能有一部分读者对于波兰表达式并不太熟悉,…

对接华泰极速行情丨DolphinDB INSIGHT 插件使用教程

INSIGHT 是华泰证券依托大数据存储、实时分析等领域的技术积累,整合接入国内多家交易所高频行情数据,为投资者提供集行情接入、推送、回测、计算及分析等功能于一体的行情数据服务解决方案。基于 INSIGHT 官方提供的行情数据服务 C SDK(TCP 版…

题目 1476: 蓝桥杯-龟兔赛跑预测

题目描述: 话说这个世界上有各种各样的兔子和乌龟,但是 研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔 子和乌龟的赛跑。…

【FastChat】用于训练、服务和评估大型语言模型的开放平台

FastChat 用于训练、服务和评估大型语言模型的开放平台。发布 Vicuna 和 Chatbot Arena 的存储库。 隆重推出 Vicuna,一款令人印象深刻的开源聊天机器人 GPT-4! 🚀 根据 GPT-4 的评估,Vicuna 达到了 ChatGPT/Bard 90%* 的质量&…

最短路径Floyd算法

第一题&#xff1a;[USACO08OPEN] Clear And Present Danger S #include<bits/stdc.h> using namespace std; int n,m; int g[105][105]; int arr[100005]; long long sum; int main() {scanf("%d%d",&n,&m);for(int i1;i<m;i){scanf("%d"…

聚观早报 | 2024款腾势D9将发布;岚图汽车2月销量

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 3月2日消息 2024款腾势D9将发布 岚图汽车2月销量 苹果Vision Pro防汗新专利 真我12 Pro正式开售 Redmi K70/Pro…

​LeetCode解法汇总232. 用栈实现队列

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; GitHub - September26/java-algorithms: 算法题汇总&#xff0c;包含牛客&#xff0c;leetCode&#xff0c;lintCode等网站题目的解法和代码&#xff0c;以及完整的mode类&#…

终极排序(快排,归并,库函数)

一、快速排序 1、确定分界点&#xff1a;q [ l ] , q [ ( l r ) / 2 ] , q [ r ] ,或者其它区间之中的随机数。&#xff08;左 l 右 r &#xff09; 2、调整区间&#xff1a;&#xff08;较难理解的部分&#xff09; &#xff08;1&#xff09;、暴力做法 …

Linux 学习笔记(12)

十二、 系统服务 1 、系统服务分类&#xff0c;根据其使用的方法来分&#xff0c;可以被分为三类 a、由 init 控制的服务&#xff1a;基本都是系统级别的服务&#xff0c;运行级别这一章讲的就是这一类的服务 b、由 System V 启动脚本启动的服务&#xff1a;和我们打交道最多…

Spring Security-快速开始(Spring Security 身份认证流程)

文章目录 spring security基本原理springSecurity 拦截器链Spring Security 的核心元素spring security如何进行用户认证(重要)spring security使用流程demo@EnableWebSecurity 注解@EnableGlobalMethodSecurity 注解spring security controller层实现登陆spring security 自定…

爬虫入门到精通_实战篇10(使用Redis+Flask维护动态代理池)

1 目标 为什么要用代理池 许多网站有专门的反爬虫措施&#xff0c;可能遇到封IP等问题。互联网上公开了大量免费代理&#xff0c;利用好资源。通过定时的检测维护同样可以得到多个可用代理。 代理池的要求 多站抓取&#xff0c;异步检测定时筛选&#xff0c;持续更新提供接…

自然语言处理(NLP)

自然语言处理&#xff08;NLP&#xff09;技术是研究和开发使计算机能够理解和处理人类语言的方法。下面是几个例子说明NLP技术的应用&#xff1a; 语音识别&#xff1a;语音识别技术允许计算机将人类的口头语言转换为机器可理解的文本。例如&#xff0c;智能助理如Siri和Alexa…

Linux系统部署Discuz论坛并发布至公网随时随地可远程访问

目录 ​编辑 前言 1.安装基础环境 2.一键部署Discuz 3.安装cpolar工具 4.配置域名访问Discuz 5.固定域名公网地址 6.配置Discuz论坛 结语 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊Linux系统部署Discuz论坛并发布至公网随时随地…

基于Golang客户端实现Nacos服务注册发现和配置管理

基于Golang客户端实现Nacos服务注册发现和配置管理 背景 最近需要把Golang实现的一个web项目集成到基于Spring Cloud Alibaba的微服务体系中&#xff0c;走Spring Cloud Gateway网关路由实现统一的鉴权入口。 软件版本 组件名称组件版本Nacos2.2.0Go1.21.0Ginv1.9.1Nacos-s…

《汇编语言》- 读书笔记 - 第16章-直接定址表

《汇编语言》- 读书笔记 - 第16章-直接定址表 16.1 描述了单元长度的标号&#xff08;数据标号&#xff09;检测点 16.1 16.2 在其他段中使用数据标号assume通过标号取地址检测点 16.2 16.3 直接定址表&#xff08;Direct Addressing Table&#xff09;例1分析代码效果 例2分析…

【奇淫巧计】Unity 如何对齐父容器

给你个parent你敢对齐吗&#xff1f;&#xff1f;&#xff1f; 下面是我多年实战总结出的技巧&#xff0c;一般人我都不告诉&#xff0c;不墨迹&#xff0c;直接上代码 var parentRect parent.GetComponent<RectTransform>();this.rectTransform.pivot parentRect.piv…

NLP_文本数据增强_5(代码示例)

学习目标 了解文本数据增强的作用. 掌握实现常见的文本数据增强的具体方法. 常见的文本数据增强方法: 回译数据增强法 1 回译数据增强法 回译数据增强目前是文本数据增强方面效果较好的增强方法, 一般基于google翻译接口, 将文本数据翻译成另外一种语言(一般选择小语种),之后…

代购集运公司需要什么样的信息化技术服务|集运系统对接主流电商API接口以实现客户丰富的代购体验

代购集运公司可以考虑以下信息化服务&#xff1a; 1、网络平台 代购集运公司可以建立一个在线平台&#xff0c;让客户能够浏览商品、下单、查询订单状态等操作。 平台也可以提供在线支付和快递跟踪等功能&#xff0c;方便客户和公司的沟通和交流。接入主流电商平台API接口&am…