当前位置: 首页 > news >正文

【三维重建NeRF(三)】Mip-NeRF论文解读

本文结合深蓝学院课程学习和本人的理解,欢迎交流指正

文章目录

    • Mip-NeRF流程简述
    • 混叠问题与MipMap
    • Mip-NeRF提出的解决办法
    • 圆锥台近似计算与集成位置编码(IPE)

Mip-NeRF流程简述

Mip-NeRF的大体流程和NeRF基本是一样的,NeRF介绍
创新的部分就是针对NeRF出现的混叠问题,提出了用圆锥体来取代光线,NeRF一条射线对应Mip-NeRF一个圆锥体,NeRF一个采样点对应Mip-NeRF一个圆锥截台。利用三维高斯逼近圆锥截台(后面简称截台),得到高斯球内所有三维点位置编码的期望值,叫做集成位置编码(IPE)。然后将集成位置编码输入MLP,根据MLP的输出结果进行体渲染,后面的流程和NeRF没有大的区别。另外,Mip-NeRF简化了网络,不同于NeRF有一个粗网络和一个细网络,Mip-NERF只需要一个网络完成重建。

混叠问题与MipMap

奈奎斯特准则
要了解混叠问题首先需要知道奈奎斯特准则:在采样的过程中如果要让原始信号不丢失,那采样频率f必须大于2B,B是信号的最大频率。当f < 2B的时候,原本的高频信号会被混叠成低频信号,跟原有的低频信号产生了混合,导致产生锯齿、伪影等现象。由f > 2B有B < f / 2,所以产生混叠现象的一种解决方案就是在采样之前使用低通滤波器去除高于采样频率一半的频率分量。
低通滤波器
低通滤波器去噪的基本思想就是把噪声和周围的像素加权求和,达到一种平滑的效果。高斯滤波器就是一种常用的低通滤波器。
在这里插入图片描述
上面5*5的权重值,叫做滤波核,权重值是将滤波核坐标(x,y)和σ值带入上面公式计算得出的。σ的值越大,像素去除噪声能力越强,也越容易对有效信号产生干扰。图像上处于滤波核中间位置的值就是根据周围像素颜色乘权值的和得来的。
但图像越大滤波的时间越长,如果每次采样之前都要先进行滤波会降低系统性能,所以提出了一种策略叫做MipMap。
MipMap
MipMap(也称为金字塔纹理或多级渐进纹理)。它由一系列逐渐降低分辨率的纹理图像组成,每个级别都是上一个级别的一半大小。基本思想是:随着观察角度的增大,物体表面的细节应该相应减少,这样可以提高渲染效率并减少视觉伪影。
就是指根据一张大图平滑采样生成一系列小图,摄像机拉到某一个尺度,就用对应尺度分辨率的图片采样。预先计算各种分辨率的图像,这样在拉动摄像机的时候,就可以直接找到对应分辨率的图像进行细微的处理,减少计算量。

Mip-NeRF提出的解决办法

对于原始NeRF中已经训练好的模型,当摄像机往远离物体方向移动时,渲染结果就会存在混叠问题,因为NeRF是在固定尺度下进行训练的,当图片分辨率变化时没有自适应性。

那么在训练数据中增加摄像机远离物体方向的样本,可以解决这个问题吗?答案是不能。
在神经网络不变的情况下,对于同一个物体,摄像机往远离物体方向移动后体渲染得到的像素颜色C‘和原来体渲染得到的C是不同的。这样在训练的过程中,由于摄像机远近的不同,对于同一个图像我们希望神经网络输出的值是C’或C,是不统一的,在这种情况下,神经网络就会输出介于C’和C之间的值,导致增加远离物体的样本以后,模型在两种情况上的效果都不理想,可以参考下图(b)的效果。
在这里插入图片描述出现混叠的原因主要是采样频率过低,那么用超采样可以解决问题吗?可以抗混叠,但计算量太大,因此这种方法也不理想。
所以mip-NeRF提出的就是用低通滤波器来解决问题,用圆锥体取代光线。
在这里插入图片描述把每个圆锥截台里所有的像素做加权平均,这样考虑了邻域的像素,结果会更加平滑,再进行体渲染,就可以去除混叠。
但是如果计算神经网络中输出的截台上每一个像素点的σ和C值,再求平均,那计算量就太大了。
所以我们首先计算每个圆锥截台上所有点位置编码的平均值,然后送入神经网络,得到输出σ和C值。这样对于每一个圆锥截台,都会得到一个平滑后的σ和C值,再根据这些σ和C值实现体渲染,因此说NeRF的一个采样点对应Mip-NeRF一个圆锥截台。

圆锥台近似计算与集成位置编码(IPE)

首先我们要判断哪些点位于圆锥截台内,给出了一个公式,如果把三维点代入F(x,▪)=1的话,点x就是圆锥截台内的点。F(x,▪)是一个指示函数,通常表示为 1{⋅},具体来说,如果括号中的条件为真,则函数值为1;如果条件为假,则函数值为0。
关于期望的计算,F()可以理解为截台内点的个数,乘以每个点的位置编码γ(x),再除以点的个数得到位置编码,这个位置编码也叫集成位置编码。
在这里插入图片描述该公式括号内包含的两个条件需要同时满足,它们意义分别是:

  1. 点x处于t_0和t_1的中间。
  2. 点x处于图示圆锥体夹角范围内。

这两条就确定了点x的位置是处于截台内的。
但是截台位置编码期望的计算是比较困难的,因此我们要利用3D高斯逼近圆台,3D高斯是一个球,使x服从μ和σ的一个分布。为了找到这个合适的高斯球,定义了t_μ和t_σ,r是一个固定的值,这是根据圆半径计算公式得到的。
在这里插入图片描述将其转换到世界坐标系下,这样我们就能得到高斯球内位置坐标x的期望,但我们需要的是位置编码γ(x)的期望值。
为了便于表达,我们将位置编码写成矩阵的形式,很多网络中会将π直接去掉,这不会对性能产生很大的影响。
在这里插入图片描述要计算γ(x)的期望值,可以先计算sin( p)和cos( p)的期望,p服从是高斯分布,计算公式如上图。
得到了sin§和cos§的计算公式,那我们要求的E(γ(x))就是要求得[Esin(px), Ecos(px)]。
X ~ (μ , Σ)的均值分布,那么Px服从的分布如下图公式,继而可以得到集成位置编码的期望计算公式。
在这里插入图片描述这样我们就可以得到最终的集成位置编码计算公式,将其输入神经网络得到对应的颜色和体密度,再进行渲染。
mip-nerf采用集成位置编码,摄像机距离物体较近时,就会学习到高频信息。当摄像机距离变远时,高频位置信息就会被平滑,避免出现伪影,这样就实现了自适应。
NeRF有两套网络。一个均匀采样的粗网络和一个在均匀采样的基础上在体密度分布较多的地方多采样的细网络。Mip-NeRF由于圆锥截台的存在,所有的领域信息都会被考虑上,因此只需要一个网络。

相关文章:

【三维重建NeRF(三)】Mip-NeRF论文解读

本文结合深蓝学院课程学习和本人的理解&#xff0c;欢迎交流指正 文章目录 Mip-NeRF流程简述混叠问题与MipMapMip-NeRF提出的解决办法圆锥台近似计算与集成位置编码(IPE) Mip-NeRF流程简述 Mip-NeRF的大体流程和NeRF基本是一样的&#xff0c;NeRF介绍 创新的部分就是针对NeRF…...

安卓SystemServer进程详解

目录 一、概述二、源码分析2.1 SystemServer fork流程分析2.1.1 [ZygoteInit.java] main()2.1.2 [ZygoteInit.java] forkSystemServer()2.1.3 [Zygote.java] forkSystemServer()2.1.4 [com_android_internal_os_Zygote.cpp]2.1.5 [com_android_internal_os_Zygote.cpp] ForkCom…...

Android studio 连接 adb传输文件到电脑

前提是已经连接到adb window R&#xff1a; 打开控制台adb devices&#xff1a;可以查看已经连接的设备adb pull /storage/emulated/0/Download/aa.png C:\Users\Administrator\Desktop&#xff1a;拉取连接设备的文件 aa.png 到电脑桌面上 (在电脑控制台进行拉取操作) 如果…...

Web学习篇(二)

命令执行漏洞 一、常用的函数 1、eval() 例: eval(string $code) 把字符串code作为PHP代码执行 2、assert() assert( mixed $assertion [, string $description ]) 检查一个断言是否为 FALSE,如果 assertion 是字符串,它将会被 assert()当做 PHP 代码来执行。 3、p…...

在Linux/Ubuntu/Debian系统中使用 `tar` 压缩文件

在Linux/Ubuntu/Debian系统中使用 tar 压缩文件 tar 命令是用于在类 Unix 操作系统中创建文件和目录存档的强大实用程序。 基本存档创建 要创建文件夹的简单存档&#xff0c;请使用以下命令&#xff1a; tar -cf ./my-archive.tar ./my-folder/此命令将创建一个名为 my-arc…...

Idea-Linux远程开发部署

第一步&#xff1a;File->Remote Development 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a;在Host位置填写Linux虚拟机的IP地址&#xff0c;在Username、Password填写对应的账号密码后点击Test Connection测试连接。 第五步&#xff1a; 第六步&#xff1a;在…...

智能硬件会是下一个风口行业吗?

“风口行业”一直是人们热捧的择业目标&#xff0c;曾经红极一时房地产行业&#xff0c;此时已成沉舟侧畔之势&#xff0c;也意味着一个又一个行业时代的更迭。 随着5G时代的到来&#xff0c;“智能化”成了人们热议的话题&#xff0c;因为大家都懂&#xff1a;顺势而为才是王…...

mysql like 查询优化

1.如果我们查询的时候用like 模糊查询%a%&#xff0c;数据量大了会查询全局&#xff0c;效率很低 SELECT * FROM Customers WHERE CustomerName LIKE %a%; 优化&#xff1a; 不会破坏索引 -步骤-:创建适合Like查询的索引ALTER TABLE users ADD INDEX idx_username (usernam…...

3389连接器,3389连接器如何进行安全设置

在计算机网络领域&#xff0c;3389端口作为Windows系统默认的远程桌面协议&#xff08;RDP&#xff09;端口&#xff0c;在远程办公、技术支持等场景中发挥着重要作用。然而&#xff0c;由于其广泛的使用和直接暴露在互联网上的特性&#xff0c;3389端口也极易成为黑客攻击的目…...

代码随想录训练营Day56:Leetcode647、516

Leetcode647&#xff1a; 问题描述&#xff1a; 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 示例 1&#xff1a; 输入&#xff1a;s &q…...

LLM主要类别架构

LLM主要类别架构介绍 LLM主要类别 LLM本身基于transformer架构。自2017年&#xff0c;attention is all you need诞生起&#xff0c;transformer模型为不同领域的模型提供了灵感和启发。基于原始的Transformer框架&#xff0c;衍生出了一系列模型&#xff0c;一些模型仅仅使用e…...

试比较GD32E230系列与L233/235芯片在IIC上使用温度传感器SHT40的异同

不说废话&#xff0c;上代码&#xff0c;不同之处直接用宏 展开 1. 首先是i2c 时钟配置 函数有些出入 void sensirion_i2c_attribute_config(){#ifdef GD32E230/* I2C clock configure */i2c_clock_config(I2C1, 100000, I2C_DTCY_2);/* I2C address configure */i2c_mode_a…...

超强算力 Orange Pi Kunpeng Pro 开发板基础测评与体验

目录 开箱体验资源简介系统启动连接网络登录系统通过桌面登录通过串口登录通过 SSH 登录配置散热风扇 算力测试MNIST示例MBNET示例 体验总结 大家好&#xff0c;我是 Hello 阿尔法&#xff0c;有幸接到 CSDN 的邀请参与 Orange Pi Kunpeng Pro 开发板的测评活动&#xff0c;本文…...

vs - ms官方查看pdb文件内容的例子工程

文章目录 vs - ms官方查看pdb文件内容的例子工程概述笔记END vs - ms官方查看pdb文件内容的例子工程 概述 不管哪个版本的VS&#xff0c;生成debug版工程时&#xff0c;除了工程自己的.pdb还会有vc*.pdb. e.g. vc.pdb, vc70.pdb, vc90.pdb, vc120.pdb, vc140.pdb, vc142.pdb,…...

【excel】设置二级可变联动菜单

文章目录 【需求】在一级菜单选定后&#xff0c;二级菜单联动显示一级菜单下的可选项【步骤】step1 制作辅助列1.列转行2.在辅助列中匹配班级成员 step2 名称管理器step3 制作二级下拉菜单step4 消除二级菜单中的空白 【总结】 之前做完了 【excel】设置可变下拉菜单&#xff…...

8月1-3日西安国际储能产业博览会

同期举办&#xff1a;2024西部国际氢能源及燃料电池产业博览会 2024年12月5-7日 西安国际会展中心 一、展会概况&#xff1a; 在能源转型和“双碳”目标的推动下&#xff0c;风电、太阳能、氢能等能源产业得到快速的发展&#xff0c;新型储能日益成为我国建设新型能源体…...

MySQL事务处理:ACID属性基础与实现概览

前言 ​ 本文核心思想就是介绍一下 Mysql ACID 的实现&#xff0c;至于事务、锁、redo 的底层结构及实现原理&#xff0c;后面会单独出文章介绍。之所以这样是不希望一篇文章过长&#xff0c;在闲暇时间就可轻易掌握一个知识点。 ACID 介绍 ​ ACID 是数据库管理系统&#x…...

PostgreSQL 修改表结构卡住不动

目录 1 问题2 实现 1 问题 今天遇到的一个问题记录一下&#xff0c;因为系统上的一个改动需要同步脚本至测试库上&#xff0c;具体的脚本内容也很简单,就是修改了某张表的一个字段。但是无论怎么操作都是一直卡住&#xff0c;表的数据量很小就十几条数据所以初步怀疑是表被锁了…...

wvp-gb28181-pro搭建流媒体服务器,内存占用过高问题

直接给出解决办法,端口暴露的太多了,暴露了500个端口导致从3g---->11g 遇到的问题,直接使用镜像《648540858/wvp_pro:latest》在宿主机上运行,如我下面的博客 https://blog.csdn.net/weixin_41012767/article/details/137112338?spm=1001.2014.3001.5502 docker run …...

项目-双人五子棋对战: websocket的讲解与使用 (1)

项目介绍 接下来, 我们将制作一个关于双人五子棋的项目, 话不多说先来理清一下需求. 1.用户模块 用户的注册和登录 管理用户的天梯分数, 比赛场数, 获胜场数等信息. 2.匹配模块 依据用户的天梯积分, 实现匹配机制. 3.对战模块 把两个匹配到的玩家放到同一个游戏房间中, 双方通…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...