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

3d gaussian splatting公式推导

1. 离散公式推导

nerf中连续的积分渲染公式是:

C(r)=\int_{0}^{t_i}T(t)\sigma(r(t))c(r(t), d)dt

其中被遮挡率:

T(t)=exp(-\int_{0}^{t_i}\sigma(r(s))ds)

那么转换为离散公式后有:

T_i=T(t_i) =exp(-\sum_{j=0}^{j=i-1}\int_{t_j}^{t_{j+1}}\sigma(t)dt) =exp(-\sum_{j=0}^{j=i-1}\sigma_j\delta_j)

其中,\delta_j代表j时刻的时间差,将其带入渲染公式:

C(i)=\sum_{j=0}^{j=i-1}\int_{t_j}^{t_{j+1}}T(t)\sigma(t)c(t)dt \\=\sum_{j=0}^{j=i-1}\int_{t_j}^{t_{j+1}}exp(-\int_{0}^{t}\sigma(s)ds)\sigma_jc_jdt \\=\sum_{j=0}^{j={i-1}}\int_{t_j}^{t_{j+1}}exp(-\int_{0}^{t_j}\sigma(s)ds)exp(-\int_{t_j}^{t}\sigma(s)ds)\sigma_jc_jdt \\=\sum_{j=0}^{j=i-1}\int_{t_j}^{t_{j+1}}T_jexp(-\int_{t_j}^{t}\sigma(s)ds)\sigma_jc_jdt \\=\sum_{j=0}^{j=i-1}T_j\sigma_jc_j\int_{t_j}^{t_{j+1}}exp(-\sigma_j(t-t_j)dt \\=\sum_{j=0}^{j=i-1}T_j\sigma_jc_j(-\frac{1}{\sigma_j})(exp(-\sigma_j\delta_j)-1) \\=\sum_{j=0}^{j=i-1}T_jc_j(1-exp(-\sigma_j\delta_j))

设透明度    \alpha_i=(1-exp(-\sigma_i\delta_i))

则被遮挡率   T_i =\prod_{j=1}^{j=i-1}(1-\alpha_i)

有   C(i)=\sum_{j=0}^{j=i-1}c_j\alpha_j\prod_{j=1}^{j=i-1}(1-\alpha_j)

而gaussian-splating的公式与nerf不一样的点在于,透明度\alpha_i的计算是根据像素点处于2D高斯球的概率求得的:

\alpha_i=\frac{1}{2\pi\sqrt{\left | \Omega \right |}}exp(-0.5(x-\mu)\Omega ^{-1}(x-\mu))

其中\mu是3D高斯球溅射到屏幕上形成的2D高斯球的均值,\Omega是2D高斯球的协方差

2. 正向渲染公式推导

正向渲染是指从3D高斯球渲染到2D屏幕中某个像素值的颜色的过程。

2.1 3D高斯到2D高斯

首先,3D高斯参数有高斯球的中心即均值\omega,协方差\Sigma,透明度\sigma,颜色c,2D高斯参数有高斯球的中心即均值\mu,协方差\Omega

对于均值\mu来说,其值就是将\omega转换到屏幕坐标系上就可以了

p_{c}=T_{w2c}\omegap_c\omega从世界坐标系转换到相机坐标系下,

\mu=\left\{\begin{matrix}p_c[0]/p_c[2] \\ p_c[1]/p_c[2] \\ \left \| p_c \right \| \end{matrix}\right.

这里3D高斯球的表示是通过一个旋转R和一个缩放矩阵S的乘积表示的,即\Sigma=RS\Lambda S^TR^T=RSS^TR^T,这么表示的原理是协方差是一个椭球,标准正态分布是一个圆,椭球就是将这个圆进行旋转缩放变成的。\Lambda是标准正态分布的协方差,它是一个单位矩阵,所以可以省略。

3. 反向传播公式推导

参考:

【CV】Nerf中体素渲染的离散公式推导 - Edlinf - 博客园

https://zhuanlan.zhihu.com/p/633106694

相关文章:

3d gaussian splatting公式推导

1. 离散公式推导 nerf中连续的积分渲染公式是: 其中被遮挡率: 那么转换为离散公式后有: 其中,代表j时刻的时间差,将其带入渲染公式: 设透明度 则被遮挡率 有 而gaussian-splating的公式与ner…...

金属增材制造咋突破?纳米纹理粉末如何助力金属增材制造?

大家好,今天我们来了解一篇金属增材制造文章——《High absorptivity nanotextured powders for additive manufacturing》发表于《Science Advances》。金属增材制造在医疗、航空航天等领域,它潜力巨大,但目前可打印的金属材料有限&#xff…...

openpnp - 为了防止物料操作混乱,做一张物料分布位置图清晰一些

文章目录 openpnp - 为了防止物料操作混乱,做一张物料分布位置图清晰一些概述笔记做子装配图做总装配图备注END openpnp - 为了防止物料操作混乱,做一张物料分布位置图清晰一些 概述 看网上资料,当openpnp贴片机上料后,为了防止…...

懒人帮美食系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,配送员管理,菜品分类管理,菜品信息管理,订单信息管理,订单配送管理 微信端账号功能包括:系统首页…...

David律所代理Jose Martin幽默水果版权首发维权,尚未TRO

案件基本情况:起诉时间:2024/9/18案件号:2024-cv-08484原告:Jose Martin原告律所:David起诉地:伊利诺伊州北部法院涉案商标/版权:原告品牌简介:西班牙的卓越艺术家Jose Martin以他非…...

读构建可扩展分布式系统:方法与实践15可扩展系统的基本要素

1. 可扩展系统的基本要素 1.1. 分布式系统在本质上就是复杂的,你必须考虑多种故障模式,并设计应对所有可能发生的情况的处理方式 1.2. 大规模应用程序需要协调大量的硬件和软件组件,共同实现低延迟和高吞吐量的能力 1.3. 面临的挑战是将所…...

解决VisualStudio msvsmon.exe远程调试器未启动问题

原本好好的用本地调试器编译运行程序,结果VisualStudio不知道哪根筋抽风了,死活就是无法运行程序。 心想是不是程序问题,结果直接运行程序没问题。 心想是不是msvsmon.exe是个后台服务,结果死活找不到这个服务,然后再…...

如果淘汰是注定的,那么读书还有意义吗?

哪吒说:“我命由我不由天,是魔是仙我自己说了算。”; 而且书中自有颜如玉,书中自有黄金屋; 抛开以上说法,有一句话说的也特别好:“人这一辈子,赚不到自己认知以外的钱,没…...

Python 中 三种常用的绘图方式 ! ! !

一 Matplotlib可视化 在Python中,Matplotlib是一个功能强大的绘图库,特别是其Pyplot模块,提供了类似于MATLAB的绘图接口,使得用户可以轻松绘制各种2D图表。下面我们将详细介绍使用Matplotlib进行可视化的基本步骤以及常用图形的…...

统一回复OneAPI:failed to get gpt-3.5-turbo token encoder的解决办法

源码方式安装后启动OneAPI时提示failed to get gpt-3.5-turbo token encode,缺少编码文件的解决办法。 1、编辑encoding.go文件 vim /root/go/pkg/mod/github.com/pkoukk/tiktoken-gov0.1.7/encoding.go 注意:tiktoken-gov0.1.7要根据实际情况&#x…...

Flash Attention是怎么做到又快又省显存的?

Flash Attention 并没有减少 Attention 的计算量,也不影响精度,但是却比标准的Attention运算快 2~4 倍的运行速度,减少了 5~20 倍的内存使用量。究竟是怎么实现的呢? Attention 为什么慢? 此处的“快慢”是相对而言的…...

CAN报文ID过滤

在CAN通信中,CAN_FILTERMODE_LIST和CAN_FILTERMODE_MASK是用于CAN过滤器配置的两种不同过滤模式。 1. CAN_FILTERMODE_LIST: - 当CAN过滤器使用CAN_FILTERMODE_LIST模式时,过滤器将匹配通过滤器的标识符列表中的任何一个标识符。换句话说…...

ELK-05-skywalking监控SpringCloud服务日志

文章目录 前言一、引入依赖二、增加日志配置文件三、打印日志四、skywalking网页查询链路五、日志收集5.1 修改logback-spring.xml5.2 重启SpringCloud服务并请求test接口5.3 查看skywalking网页的Log 总结 前言 基于上一章节,现在使用skywalkin监控SpringCloud服务…...

17年数据结构考研真题解析

第一题&#xff1a; 解析&#xff1a; 我们说递归要找出口&#xff0c;这道题的出口是sum<n&#xff0c;经过观察可以得知&#xff1a;sum123。。。k 设第k次循环跳出&#xff0c;则有sum123。。。k<n k<,很显然答案选B 第二题&#xff1a; 解析&#xff1a; 第一句&a…...

nginx 安装(Centos)

nginx 安装-适用于 Centos 7.x [rootiZhp35weqb4z7gvuh357fbZ ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.9.2009 (Core) Release: 7.9.2009 Codename: Core# 创建文件…...

异步编程利器:深入解析 Python 异步并发库 Gevent

在现代 Python 应用开发中&#xff0c;并发编程 是提高程序性能、处理多个任务的关键手段之一。虽然 Python 有原生的多线程、多进程模块&#xff0c;但这些模块存在一些限制&#xff0c;比如全局解释器锁&#xff08;GIL&#xff09;会影响多线程程序的执行效率。此外&#xf…...

Python pyusb 使用指南【windows+linux】

前言&#xff1a;USB(通用串行总线)作为一种高度通用性的硬件接口&#xff0c;在诸多领域均有应用。在C中可以直接使用libusb库即可完成USB设备信息查询、USB设备监听、与USB设备控制端点、数据&#xff08;同步、批量、中断&#xff09;端点进行指令、数据交互等功能。python中…...

Xcode报错:The request was denied by service delegate (SBMainWorkspace)

Xcode报错&#xff1a;The request was denied by service delegate (SBMainWorkspace) 造成的原因: &#xff08;1&#xff09;新的M2芯片的Mac电脑 (2) 此电脑首次安装启动Xcode的应用程序 (3&#xff09;此电脑未安装Rosetta 解决方法: &#xff08;1&#xff09;打开终端…...

面试系列-携程暑期实习一面

Java 基础 1、Java 中有哪些常见的数据结构&#xff1f; 图片来源于&#xff1a;JavaGuide Java集合框架图 Java 中常见的数据结构包含了 List、Set、Map、Queue&#xff0c;在回答的时候&#xff0c;只要把经常使用的数据结构给说出来即可&#xff0c;不需要全部记住 如下&…...

你以为建站很复杂?Baklib 5分钟解决你的痛点

你以为建站很复杂&#xff1f;Baklib 5分钟解决你的痛点&#xff01; 在这个“快节奏”的互联网时代&#xff0c;想要快速搭建一个网站是很多人的刚需。今天我要介绍的&#xff0c;就是如何利用Baklib的CMS/Wiki模板&#xff0c;五分钟内让你的网站“横空出世”。废话不多说&am…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...