3D 生成重建005-NeRF席卷3D的表达形式

3D生成重建005-NeRF席卷3D的表达形式


文章目录

    • 0 论文工作
    • 1 论文方法
      • 1.1 体渲染
      • 1.2 离散积分
      • 1.3位置编码
      • 1.4分层采样
      • 1.5 影响
    • 2 效果

0 论文工作

NeRF(神经辐射场技术)最早2020年提出用于新视图合成任务,并在这个领域取得了优秀的效果。如下图所示,受到体渲染的启发,论文通过已知的一组相机参数对物体进行图像采集,然后通过这组图像去训练一个MLP,MLP训练好之后能合成新视图的图像,且合成质量很高。
在这里插入图片描述

参考
NeRF: Representing Scenes as Neural Radiance Fields for View Synthes

1 论文方法

虽然我们的输入是图像,但是实际上nerf的基本原理是在射线的层次进行。下图是相机成像的简化原理,主要包括相机光心(小孔),物体,图像平面和虚平面。nerf的相关原理都是在光心,虚平面和3d物体之间展开。
在这里插入图片描述

通过若干已知相机参数对一个物体进行多角度的图像采集后,得到物体环绕一周的密集视图。借助相机将图像拆分成若干条射线进行训练。如下图,以相机中心O通过虚平面想某一像素位置发出的光线为例。训练一个MLP,输入空间点的位置(x,y,z)和相机信息 ( θ 和 ϕ ) (\theta 和\phi) (θϕ)去预测他的密度和颜色 ( σ , R G B ) (\sigma,RGB) (σ,RGB),通过积分的形式用光线上点的 ( σ , R G B ) (\sigma,RGB) (σ,RGB)预预测虚平面上该位置的RGB,然后通过对比损失去优化MLP。简化成 F θ ( X , d ) = ( c , σ ) F_{\theta}(X,d)=(c,\sigma) Fθ(X,d)=(c,σ)输入体空间中任意一点的位置和光线的方向,去预测他的颜色c和密度 σ \sigma σ
在这里插入图片描述

1.1 体渲染

其中 σ x \sigma_{x} σx表示光线在位置为x的例子处终止的概率,也可以叫密度或者不透明度。光线r的颜色表示为 C r C_r Cr,光线表示为 r ( t ) = O + t d r(t)=O+td r(t)=O+td,O表示相机光心,t表示步长,d表示光线的方向,用 t n 和 t f t_n和t_f tntf表示体渲染的边界。那么这条光线的颜色可以表示为 C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r ( t ) , d ) ) d t C(r)=\int_{t_n}^{t_f}T(t)\sigma(r(t))c(r(t),d))dt C(r)=tntfT(t)σ(r(t)c(r(t),d))dt
上面的公式主要包含了3项其中 σ ( r ( t ) , c ( r ( t ) , d ) \sigma(r(t),c(r(t),d) σ(r(t),c(r(t),d)分别表示位置t处的密度和颜色, T ( t ) = e x p ( − ∫ t n t σ ( r ( s ) ) d s ) T(t)=exp(-\int_{t_n}^t\sigma(r(s))ds) T(t)=exp(tntσ(r(s))ds)表示前面所有点的累计投射率,即光线穿过前面的所有点的概率。
整体的表达就是,光线的颜色等于每一点处累积透射率和终止率和颜色的积分。
显然当点x是连续的时候,这个积分的计算是很困难的,因此下面使用离散积分的情况。

1.2 离散积分

现在把 [ t n , t f ] [t_n,t_f] [tn,tf]N等分那么ti表示一个区间内的点 t i t_i ti~ u [ t n + i − 1 N ( t f − t n ) , t n + i N ( t f − t n ) ] u[t_n+\frac{i-1}{N}(t_f-t_n),t_n+\frac{i}{N}(t_f-t_n)] u[tn+Ni1(tftn),tn+Ni(tftn)]
那么体渲染的积分方程变为 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 ) \hat{C(r)}=\sum_{i=1}^{N}T_i(1-exp(-\sigma_i\delta_i))c_i 其中T_i=exp(-\sum_{j=1}^{i-1}\sigma_j\delta_j) C(r)^=i=1NTi(1exp(σiδi))ci其中Ti=exp(j=1i1σjδj)
上面 的式子中 δ i = t i + 1 − t i \delta_i=t_{i+1}-t_i δi=ti+1ti表示间距。 1 − e x p ( − σ i δ i ) 1-exp(-\sigma_i\delta_i) 1exp(σiδi)等价于原来的 σ \sigma σ
整体上相当于把积分变成每个bin区间的和了。

1.3位置编码

因为MLP在预测xyz这种位置相关的问题时表示高频信息的能力较差,因此通过位置表明的形式将输入转换为高频信息。
γ ( 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))
对于x来说L=10,对于d来说L=4
在这里插入图片描述

1.4分层采样

因为遮挡和空白区域也会产生大量计算,论文使用Hierarchical volume sampling,采用由粗到细的策略,根据粗网络的结果,在细网络中很具重要程度进行采样。改写的公式为
C ( r ) ^ = ∑ i = 1 N c w i c i , 其中 w i = T i ( 1 − e x p ( − σ i δ i ) ) \hat{C(r)}=\sum_{i=1}^{N_c}w_ic_i,其中w_i=T_i(1-exp(-\sigma_i\delta_i)) C(r)^=i=1Ncwici,其中wi=Ti(1exp(σiδi))
重要程度用 w ^ = w i ∑ j = 1 N c w j \hat w=\frac{w_i}{\sum_{j=1}^{N_c}w_j} w^=j=1Ncwjwi表示。

1.5 影响

后续研究者对nerf的渲染速度训练速度和质量进行优化,使得nerf逐渐成为一种很重要的3d表达形式。

2 效果

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

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

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

相关文章

Springcloud笔记(2)-Eureka服务注册

Eureka服务注册 服务注册,发现。 在Spring Cloud框架中,Eureka的核心作用是服务的注册和发现,并实现服务治理。 Eureka包含两个组件:Eureka Server和Eureka Client。 Eureka Server提供服务注册服务,各个节点启动后…

mysql面试题31:一条SQL语句在MySQL中如何执行的

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:一条SQL语句在MySQL中如何执行的 以下是一条SQL语句在MySQL中的详细执行步骤: 语法分析:MySQL首先对SQL语句进行语法分析,检查SQL语句是否符合…

ARM-流水灯

.text .global _start _start: 1、设置GPIOE寄存器的时钟使能 RCC_MP_AHB$ENSETR[4]->1 0x50000a28LDR R0,0X50000A28 LDR R1,[R0] 从R0起始地址的4字节数据取出放在R1 ORR R1,R1,#(0X3<<4) 第4位设置为1 STR R1,[R0] 写回2、设置PE10、PE8、PF10管脚为输出模式 …

elasticSearch7.9数据占用磁盘存储空间情况

最近&#xff0c;在VMware Workstation虚拟机上安装了es7.9&#xff0c;单节点的es&#xff0c;不是集群&#xff0c;然后建了一个索引&#xff08;包含3个分片和一个副本&#xff09;&#xff0c;插入了500万条数据&#xff0c;占据磁盘空间17G。如下图&#xff1a; 索引的字…

在两个有序数组中找整体第k小的数

一、题目 给定两个已经排序的数组&#xff08;假设按照升序排列&#xff09;&#xff0c;然后找出第K小的数。比如数组A {1&#xff0c; 8&#xff0c; 10&#xff0c; 20}&#xff0c; B {5&#xff0c; 9&#xff0c; 22&#xff0c; 110}&#xff0c; 第 3 小的数是 8.。…

基于Springboot实现点餐平台网站管理系统项目【项目源码+论文说明】分享

基于Springboot实现点餐平台网站管理系统演示 摘要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多商家的之中&#xff0c;随之就产生了“点餐平台网站”&#xff0c;这样就让点餐平台网站更加方便简单。 对于本…

解决远程git服务器路径改变导致本地无法push的问题

解决远程git服务器路径改变导致本地无法push的问题 &#xff08;1&#xff09;第一步&#xff1a;查看git配置 git config -l&#xff08;2&#xff09;第二步&#xff1a;删除远程git地址 git remote remove origin&#xff08;3&#xff09;第三步&#xff1a;再次查看git配…

ELK 处理 SpringCloud 日志

在排查线上异常的过程中&#xff0c;查询日志总是必不可缺的一部分。现今大多采用的微服务架构&#xff0c;日志被分散在不同的机器上&#xff0c;使得日志的查询变得异常困难。工欲善其事&#xff0c;必先利其器。如果此时有一个统一的实时日志分析平台&#xff0c;那可谓是雪…

Mall脚手架总结(三) —— MongoDB存储浏览数据

前言 通过Elasticsearch整合章节的学习&#xff0c;我们了解SpringData框架以及相应的衍生查询的方式操作数据读写的语法。MongoDB的相关操作也同样是借助Spring Data框架&#xff0c;因此这篇文章的内容比较简单&#xff0c;重点还是弄清楚MongoDB的使用场景以及如何通过Sprin…

【计算机网络】UDP协议编写群聊天室----附代码

UDP构建服务器 x 预备知识 认识UDP协议 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 传输层协议无连接不可靠传输面向数据报 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的…

扬尘监测:智能化解决方案让生活更美好

随着工业化和城市化的快速发展&#xff0c;扬尘污染问题越来越受到人们的关注。扬尘不仅影响城市环境&#xff0c;还会对人们的健康造成威胁。为了解决这一问题&#xff0c;扬尘监测成为了一个重要的手段。本文将介绍扬尘监测的现状、重要性以及智能化解决方案&#xff0c;帮助…

Python库学习(九):Numpy[续篇三]:数组运算

NumPy是用于数值计算的强大工具&#xff0c;提供了许多数组运算和数学函数&#xff0c;允许你执行各种操作&#xff0c;包括基本运算、统计计算、线性代数、元素级操作等 1.基本运算 1.1 四则运算 NumPy数组支持基本的四则运算&#xff08;加法、减法、乘法和除法&#xff09;…

Flink学习笔记(一):Flink重要概念和原理

文章目录 1、Flink 介绍2、Flink 概述3、Flink 组件介绍3.1、Deploy 物理部署层3.2、Runtime 核心层3.3、API&Libraries 层3.4、扩展库 4、Flink 四大基石4.1、Checkpoint4.2、State4.3、Time4.4、Window 5、Flink 的应用场景5.1、Event-driven Applications【事件驱动】5.…

初识 C语言文件操作

目录 前言&#xff1a; 为什么我们要使用文件&#xff1f; 什么是文件&#xff1f; 程序文件&#xff1a; 数据文件&#xff1a; 文件名&#xff1a; 文件的打开和关闭 文件指针&#xff1a; 流程&#xff1a; 文件路径&#xff1a; 文件的顺序读写&#xff1a; …

【Java 进阶篇】CSS语法格式详解

在前端开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;用于控制网页的样式和布局。了解CSS的语法格式是学习如何设计和美化网页的关键。本文将深入解释CSS的语法格式&#xff0c;包括选择器、属性和值等基本概念&#xff0c;同时提供示例代码以帮助初学者更好地理解。…

首批成员单位 | 聚铭网络受邀加入中国人工智能产业发展联盟数据委员会

近日&#xff0c;中国人工智能产业发展联盟(简称AIIA&#xff09;成立“数据委员会”&#xff0c;**聚铭网络受邀加入&#xff0c;成为首批成员单位&#xff0c;**与其他成员单位协同推动人工智能产业发展。 中国人工智能产业发展联盟是在国家发展和改革委员会、科学技术部、工…

Python Opencv实践 - 车辆识别(1)读取视频,移除背景,做预处理

示例中的图像的腐蚀、膨胀和闭运算等需要根据具体视频进行实验得到最佳效果。代码仅供参考。 import cv2 as cv import numpy as np#读取视频文件 video cv.VideoCapture("../../SampleVideos/Traffic.mp4") FPS 10 DELAY int(1000 / FPS) kernel cv.getStructu…

VSCode Intellij IDEA CE 数据库连接

VSCode & Intellij IDEA CE 数据库连接 大概记一下现在正在用的几个工具/插件 VSCode VSCode 里面的工具我下载了很多&#xff0c;如果只是链接 MySQL 的话&#xff0c;可能用 Jun Han 这位大佬的 MySQL 就好了&#xff1a; 使用这个插件直接打开 .sql 文件单击运行就能…

制作电商页面(Html)

任务 制作一个电商页面&#xff0c;要求所卖物品清晰&#xff0c;页面色调清晰&#xff0c;要有主页和详情页。 网站所买物品&#xff1a;书籍 色调&#xff1a;#FF2400 橙红色 代码 主页HTML代码&#xff1a; <html><head><meta charset"utf-8"…

CentOS Stream9 安装远程桌面服务 Xrdp

1. 安装 XRDP 若服务器本身没有桌面则首先需要安装本地桌面&#xff1a; yum -y groups install "GNOME Desktop" startx配置源&#xff1a; dnf install epel-release安装 xrdp dnf install xrdp 2. 配置 Xrdp Xrdp 配置文件位于 /etc/xrdp 目录中。对于常规 X…