NeRF学习笔记

news/2024/11/28 15:19:49/文章来源:https://www.cnblogs.com/yujiesun-818/p/18574357

NeRF 学习笔记参考资料十分钟带你快速入门NeRF原理_哔哩哔哩_bilibili

任务概述

网络结构:

输入

1. 采样点位置

数据集是五维数据。theta phi决定了射线的方向,xyz是相机位置。

但是感觉x,y,z,theta phi为什么不直接用xyz表示?感觉剩下两个信息是冗余的。因为可能和射线有关,所以需要表示出射线的方向

实际上输入网络的数据,xyz是采样点的位置。采样点位置的计算方式是:采样点位置=相机原点+采样距离*相机观测方向(估计是通过解析几何中的向量来表达计算)

2.位置编码

如果不涉及位置编码,则图像会比较平滑,也就是像素点和像素点之间的差距不大。但是设计了Positional Encoding之后,可以看出并不是图像像素点之间高维信息变多了,更接近真实图像,

一个说的不错的位置编码的设计原因:[NeRF坑浮沉记]思考Positional Encoding - 知乎

总结一下,就是采样点位置就是三维,其秩最高就是三,经过线性变换左乘W之后r(Wx)<=3,并且激活函数引入的非线性不会让其表达能力进行大幅度提高。故需设计一个映射将输入的秩尽可能的拉高,从而让输入矩阵的表达能力更大的提高,映射为————将原始输入映射为傅里叶特征。而映射完的向量叫做Positional Encoding。(具体为啥叫这个不晓得)

但是其中的数学原理还需要深究,即傅里叶特征细节的细节。说不定可以参考的部分如下:NeRF(Neural Radiance Fields)基础知识点和研究方向 - 知乎,但是和图形学方向比较靠近,可能理论难度比较大

在工程上的体现就是经过变换之后,维度由5维扩展到了60维,并将3维的数据在concate到Position E上,这个综合之后就是输入矩阵了

MLP

由图可知,刚开始进入的是1024×63×64的数据,先把feature扩充到256,即1024 256 64。之后concate采样点的shortcut(1024 63 64)

在最后一层加入观测角度和位置编码的concate,在倒数第二层输出密度值(因为作者解释密度值和视角无关),再降维到128,再到3

最后就是(1024,4,64),也就是一张图片的1024个像素点(射线),每个像素点对应的64个采样点,每个采样点上的四个颜色维度。

输出处理

采样点的选择

像素点值的计算

之前输出的是所有采样点的RGBA数据,可以看到c图就是在射线上不同采样点的不透明度。可以看出,上图在第一个波峰的时候从视角看出了有一个面的产生。下图在第一个波峰才是视角碰到的第一个面,第二个波峰是后面那个面,是不会被显现的。

实际上通过一个相机角度看到的一个射线方向只有一个像素点,所以要对体积雾渲染进行积分(具体原理没看)

第一个公式是理论情况下的像素点的值,第二个公式位置(猜测可能是像素点的位置选取),第三个公式是实际情况下像素点的值。

\(T(t)\)是用来控制只有第一个波峰有效的小工具,即随着不透明度(的波峰)在后面的增加,他对像素点的贡献度会产生指数级下降。

\(\sigma(r(t))\)是不透明度函数,\(c(r(t),d)\)是RGB值。

积分长生的就是像素点的值,下面就是积分的近似。

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

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

相关文章

考研打卡(29)

开局(29) 开始时间 2024-11-28 14:45:31 结束时间 2024-11-28 15:17:32 明天是1125今天去学冠领了几份资料数据结构具有5层节点的AVL树至少有_______个节点。(南昌大学 2015年) A 10 B 12 C 15 D 17B 答案设Nh表示深度为h的平衡二叉树中含有的最少节点数…

解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统

解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统国内某水库安全监测项目需要监测点分散,且无外接供电。项目年限为4年,不允许使用太阳能电板。因此,我们需要设备具备低功耗且内置电池的功能。为了满足客户的要求,我们的研发团队将采集仪从NLM511T升级到电池…

Android11修改摄像头前后置方法,触觉智能RK3568开发板演示

RK3566/3568安卓Android11系统下,修改摄像头前后置的方法,触觉智能EVB3568开发板演示本文介绍在Android11系统下,修改摄像头前后置属性的方法。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、An…

70%效率提升:开源AI技术在医疗用药咨询中的应用

一、系统概述 在医疗行业中,信息的准确性和实时性至关重要。我们的开源免费软件——思通数科AI多模态能力平台,通过集成先进的语音识别(ASR)技术,为医疗行业提供了一个全新的解决方案。该平台不仅能够理解多人对话中的语音指令,还能提供精准的药物咨询和用药指导,极大地…

Symbolic Discovery of Optimization Algorithms

目录概Lion代码Chen X., Liang C., Huang D., Real E., Wang K., Liu Y., Pham H., Dong X., Luong T., Hsieh C., Lu Y. and Le Q. V. Symbolic discovery of optimization algorithms. NeurIPS, 2024.概 本文搜索出了一个优雅的, 且经验上似乎更好的优化器: Lion. Lion作者通…

RAG实验:块大小分割实验、矢量存储;FAISS 与 Chroma、向量存储和 Top k、向量存储中的距离度量

比较 RAG 第 1 部分:块大小分割实验我探索了 RAG 模型中的各种块大小,并使用专为评估检索器组件而设计的 RAGAS 评估器对其进行了评估。如您所知,检索器部分会生成随后输入到语言模型 (LLM) 中的“上下文”。 在这个实验中,我采用了BGE作为嵌入技术(它在 HuggingFace 的排…

ssh登录出现sign_and_send_pubkey: no mutual signature supported

加上-o PubkeyAcceptedKeyTypes=+ssh-rsa 例如:ssh -i key.txt stinky@172.16.1.143 -o PubkeyAcceptedKeyTypes=+ssh-rsa

win小工具合集(持续更新)

日常、工作使用的win小工具推荐 一、Snipaste(截屏)安静的躺在后台,随时随地F1光速截屏和编辑,贴图也OK。 二、Ditto(剪贴板)安静的躺在后台,随时随地Ctrl + ~查看和粘贴曾经复制过的内容(包括图片),且支持搜索,再也不用频繁Ctrl + c了。 三、PotPlayer(音视频播放…

高性能C++内存映射库mio使用心得

背景 在C++编程中,高效的数据访问至关重要,而内存映射文件(Memory Mapped Files)提供了一种强大的工具,它允许我们直接将文件内容加载到进程地址空间,从而以极高的效率进行读写操作。今天,我们要向大家推荐一个轻量级且易于使用的开源库——mio。 项目介绍 mio是一个头文…

destoon8.0开启根据时间归档

destoon8.0开启根据时间归档,代码如下:<?php define(DT_REWRITE, true); require ../common.inc.php; $EXT[archiver_enable] or dheader(DT_PATH); //$DT_BOT or dheader(DT_PATH); $N = $M = $T = array(); $mid or $mid = 5; $vmid = $list = 0; foreach($MODULE as $…

外委项目进度控制全攻略:产品经理如何实现精准把控

在现代企业的项目管理中,尤其是面对外委项目,产品经理扮演着至关重要的角色。作为项目的核心负责人,产品经理需要不仅要把控产品质量,还要合理安排开发进度、协调各方资源,并确保项目能够按期、按质交付。尤其对于外委项目来说,由于涉及到第三方供应商和多个团队的协作,…

新型大语言模型的预训练与后训练范式,苹果的AFM基础语言模型Aq

前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的、公开权重的大型语言模型。最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内的完整流程。后训练通常涵盖监督指导微调和对齐过程,而这些在ChatGPT的…