当前位置: 首页 > 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…...

GA/T 1400视图库实战:从零部署Easy1400平台到设备级联全流程解析

1. 初识GA/T 1400与Easy1400平台 第一次接触GA/T 1400标准时&#xff0c;我完全被各种专业术语绕晕了。简单来说&#xff0c;这是一套专门针对视频监控领域的行业标准&#xff0c;规定了视频图像信息在采集、传输、存储等环节的技术要求。而Easy1400就是基于这个标准开发的一套…...

打破平台壁垒:Windows上安装APK文件的完整解决方案

打破平台壁垒&#xff1a;Windows上安装APK文件的完整解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想过在Windows电脑上直接运行安卓应用&#xff…...

告别迷茫!在嵌入式Linux上用libwebsockets v4.0实现WebSocket客户端(含SSL配置避坑)

嵌入式Linux实战&#xff1a;libwebsockets v4.0客户端开发与SSL避坑指南 当树莓派的GPIO引脚需要与云端实时同步数据时&#xff0c;WebSocket往往是嵌入式开发者的首选协议。但面对内存仅512MB的ARMv7开发板&#xff0c;选用一个既支持SSL加密又能兼容C99标准的轻量级库&#…...

Java并发编程:CompletableFuture实战

Java并发编程&#xff1a;CompletableFuture实战 引言 Java 8引入的CompletableFuture是现代异步编程的重要工具&#xff0c;它不仅解决了Future的局限性&#xff0c;还提供了丰富的API用于组合、转换和处理异步结果。相比传统的Future&#xff0c;CompletableFuture支持流式调…...

终极指南:使用Python开源工具破解百度网盘限速,实现高速免费下载

终极指南&#xff1a;使用Python开源工具破解百度网盘限速&#xff0c;实现高速免费下载 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘几十KB的下载速度而烦恼…...

Seraphine:英雄联盟智能BP助手与战绩查询工具完整指南

Seraphine&#xff1a;英雄联盟智能BP助手与战绩查询工具完整指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在英雄联盟的对局中&#xff0c;BP&#xff08;禁选英雄&#xff09;阶段往往是决定胜负的关…...

Aurora框架解析:一体化高性能云原生开发平台的设计与实践

1. 项目概述与核心价值如果你在开源社区里混迹过一段时间&#xff0c;尤其是对现代化、高性能的Web开发框架感兴趣&#xff0c;那么“Aurora”这个名字你大概率不会陌生。它不是一个简单的库或者工具&#xff0c;而是一个由社区驱动的、旨在构建下一代企业级应用开发平台的雄心…...

轻量级工作流引擎pro-workflow:Go语言实现与实战解析

1. 项目概述&#xff1a;一个为专业开发者量身打造的工作流引擎如果你是一名开发者&#xff0c;尤其是经常需要处理复杂业务逻辑、数据流转或自动化任务的后端或全栈工程师&#xff0c;那么你一定对“工作流”这个概念不陌生。从简单的审批流到复杂的微服务编排&#xff0c;工作…...

m4s-converter终极指南:如何无损转换B站缓存视频并保留弹幕

m4s-converter终极指南&#xff1a;如何无损转换B站缓存视频并保留弹幕 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 在数字内容日益丰富的今天…...

AI原生产品管理:多智能体协作如何重塑产品开发工作流

1. 项目概述&#xff1a;当AI成为你的产品经理最近在GitHub上看到一个挺有意思的项目&#xff0c;叫NathanJCW/ai-native-pm-cortex。光看名字&#xff0c;你大概能猜到它想做什么——“AI原生的产品经理大脑”。这可不是一个简单的聊天机器人插件&#xff0c;它试图构建一个完…...