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

从EWA Splatting到3DGS:一阶泰勒展开如何保住高斯的“椭圆”形状?

从EWA Splatting到3DGS一阶泰勒展开如何保住高斯的“椭圆”形状在计算机图形学的演进历程中三维高斯分布3D Gaussian的投影问题一直是个既基础又关键的挑战。想象一下当你试图将一个完美的三维椭球投影到二维屏幕上时如果处理不当这个椭球可能会扭曲变形失去原有的优雅形状。这正是3D高斯泼溅3D Gaussian Splatting, 3DGS技术需要解决的核心问题之一。传统方法中EWA Volume Splatting提出了一种精妙的解决方案——局部仿射近似。这种思想后来被3DGS借鉴并发展通过一阶泰勒展开来近似非线性的投影变换从而在二维平面上保持高斯的椭圆特性。本文将深入探讨这一技术背后的数学原理和实现细节特别聚焦于雅可比矩阵如何扮演关键角色以及为什么这种线性近似能够如此有效地维持高斯的几何特性。1. 视图变换与投影变换的基础在三维图形渲染中将一个物体从世界坐标系转换到屏幕坐标系需要经过两个主要的变换步骤视图变换和投影变换。视图变换负责将物体从世界坐标系转换到相机坐标系而投影变换则负责将三维空间中的点映射到二维图像平面上。视图变换通常由相机的外参矩阵决定包括旋转和平移两部分。由于视图变换是仿射变换它不会改变三维高斯的本质特性——一个经过旋转或平移的椭球仍然是椭球。数学上这可以表示为\mu W \mu \Sigma W \Sigma W^T其中W是视图变换矩阵μ和Σ分别是原始高斯分布的均值和协方差矩阵。投影变换则更为复杂。在针孔相机模型中投影变换将三维点(x,y,z)映射到二维图像坐标(u,v)u f_x \frac{x}{z} c_x v f_y \frac{y}{z} c_y这种变换是非线性的直接应用会破坏高斯分布的性质。具体来说经过非线性变换后原本的椭球可能不再保持椭圆形状这就引出了我们需要解决的核心问题。2. 非线性问题的线性近似面对投影变换的非线性挑战EWA Splatting提出的局部仿射近似提供了一种巧妙的解决方案。其核心思想是在三维高斯分布的均值点附近用一阶泰勒展开来近似这个非线性变换。让我们将投影变换表示为函数FF\left(\begin{bmatrix}x\\y\\z\end{bmatrix}\right) \begin{bmatrix}f_x x/z c_x\\f_y y/z c_y\end{bmatrix}在点μ₀[x₀,y₀,z₀]ᵀ附近进行一阶泰勒展开F(μ) ≈ F(μ₀) J(μ - μ₀)其中J是雅可比矩阵包含了F在各个方向上的偏导数J \begin{bmatrix} \frac{∂F₁}{∂x} \frac{∂F₁}{∂y} \frac{∂F₁}{∂z}\\ \frac{∂F₂}{∂x} \frac{∂F₂}{∂y} \frac{∂F₂}{∂z} \end{bmatrix} \begin{bmatrix} f_x/z 0 -f_x x/z²\\ 0 f_y/z -f_y y/z² \end{bmatrix}这种近似的物理意义在于在三维高斯分布的均值点附近的小范围内我们可以把非线性的投影变换看作一个线性变换。这正是保持高斯形状不变的关键所在。3. 协方差矩阵的变换通过一阶泰勒近似我们得到了投影变换的线性表示。接下来需要计算变换后的二维协方差矩阵Σ。根据概率论知识线性变换后的协方差矩阵可以表示为Σ J Σ J^T这个结果的推导过程如下设变换后的点为F(μ) ≈ F(μ₀) J(μ - μ₀)变换后的协方差是E[(F(μ)-E[F(μ)])(F(μ)-E[F(μ)])ᵀ]代入线性近似后可以得到Σ J Σ Jᵀ在实际的3DGS实现中这个过程分为几个步骤应用视图变换Σ_view W Σ Wᵀ应用投影变换的线性近似Σ J Σ_view Jᵀ J W Σ Wᵀ Jᵀ以下是3DGS源码中计算2D协方差矩阵的关键部分// 应用视图变换 float3 t transformPoint4x3(mean, viewmatrix); // 计算雅可比矩阵 glm::mat3 J glm::mat3( focal_x / t.z, 0.0f, -(focal_x * t.x) / (t.z * t.z), 0.0f, focal_y / t.z, -(focal_y * t.y) / (t.z * t.z), 0, 0, 0 ); // 提取视图变换中的旋转部分 glm::mat3 W glm::mat3( viewmatrix[0], viewmatrix[4], viewmatrix[8], viewmatrix[1], viewmatrix[5], viewmatrix[9], viewmatrix[2], viewmatrix[6], viewmatrix[10] ); // 组合变换 glm::mat3 T W * J; // 原始3D协方差矩阵 glm::mat3 Vrk glm::mat3( cov3D[0], cov3D[1], cov3D[2], cov3D[1], cov3D[3], cov3D[4], cov3D[2], cov3D[4], cov3D[5] ); // 最终2D协方差 glm::mat3 cov glm::transpose(T) * glm::transpose(Vrk) * T;4. 实现细节与优化在实际的3DGS实现中有几个关键细节值得注意视锥体裁剪在投影前需要确保三维点位于相机视锥体内。代码中使用tan(HFOV/2)和tan(VFOV/2)来定义视锥边界并允许一定程度的超出乘以1.3系数const float limx 1.3f * tan_fovx; const float limy 1.3f * tan_fovy; const float txtz t.x / t.z; const float tytz t.y / t.z; t.x min(limx, max(-limx, txtz)) * t.z; t.y min(limy, max(-limy, tytz)) * t.z;GLM的列主序存储3DGS使用GLM数学库它采用列主序存储矩阵。这与常见的行主序习惯不同需要在代码中特别注意// GLM中矩阵构造是按列填充的 glm::mat3 A glm::mat3( 1.0f, 2.0f, 3.0f, // 第一列 4.0f, 5.0f, 6.0f, // 第二列 7.0f, 8.0f, 9.0f // 第三列 ); // 实际内存布局1,2,3,4,5,6,7,8,9协方差矩阵的对称性三维高斯的协方差矩阵是对称的因此只需要存储上三角部分的6个元素即可这在内存优化上很有价值。5. 数学验证与实例分析为了验证一阶泰勒近似的有效性我们可以通过一个具体例子来说明。考虑一个位于z2处的三维高斯球其协方差矩阵为Σ \begin{bmatrix} 0.1 0 0\\ 0 0.1 0\\ 0 0 0.1 \end{bmatrix}假设相机参数为f_xf_y1计算投影后的二维协方差计算雅可比矩阵在(0,0,2)处的值J \begin{bmatrix} 0.5 0 0\\ 0 0.5 0 \end{bmatrix}投影后的协方差Σ J Σ J^T \begin{bmatrix} 0.025 0\\ 0 0.025 \end{bmatrix}这个结果仍然是一个圆形各向同性的二维高斯分布验证了我们的方法能够保持高斯的形状特性。对于更一般的椭球情况这种方法同样能保持椭圆的形状只是会根据视角和位置进行适当的缩放和变形。6. 性能考量与工程实践在实际的3DGS系统中投影变换的高效实现至关重要。以下是几个关键的工程优化点并行计算每个高斯点的投影可以独立计算非常适合GPU并行处理。内存访问协方差矩阵的对称性减少了内存占用和访问次数。近似精度一阶泰勒展开在小范围内精度足够对于远离均值点的区域可以通过高斯分布的快速衰减自然忽略。在3DGS的原始实现中这些优化使得系统能够实时渲染数十万个高斯点实现了高质量的实时神经渲染效果。

相关文章:

从EWA Splatting到3DGS:一阶泰勒展开如何保住高斯的“椭圆”形状?

从EWA Splatting到3DGS:一阶泰勒展开如何保住高斯的“椭圆”形状? 在计算机图形学的演进历程中,三维高斯分布(3D Gaussian)的投影问题一直是个既基础又关键的挑战。想象一下,当你试图将一个完美的三维椭球投…...

三相不平衡电压下H桥五电平并网逆变器并网控制探究

三相不平衡电压下级连H桥五电平并网逆变器并网控制,SPWM调制,正负序分离控制 1.采用正负序分离锁相环以及正序PI控制,负序PI控制 2.采用中点电位平衡控制-零序电压注入法 3.提供参考文献 提供仿真源文件,电流环参数设计&#xff0…...

浙政钉应用监控埋点参数(bid, sapp_id)到底去哪找?一份给开发者的沟通指南

浙政钉应用监控埋点参数获取实战指南:从沟通到落地的全流程解析 在政务数字化进程中,浙政钉作为重要的政务协同平台,其应用监控埋点数据的准确采集直接影响着后续的数据分析和决策支持。然而,许多开发团队在实际项目中常常陷入参数…...

DeepSeek LintCode 3867 · 范围内的数字计数 public int digitsCount(int d, int low, int high)

LintCode 3867 范围内的数字计数 问题分析 计算在区间 [low, high] 中,数字 d 出现的次数。 核心思想:使用数位DP或前缀和思想 • count(low, high) count(0, high) - count(0, low-1) 方法一:逐位统计法(推荐)AC pu…...

保姆级教程:用 Modelfile 快速部署 ModelScope 的 GGUF 模型到 Ollama(以 DeepSeek 为例)

从零到一:用Modelfile高效部署ModelScope的GGUF模型至Ollama实战指南 在本地运行大语言模型正成为开发者探索AI边界的新常态。不同于直接调用云端API,本地部署能带来数据隐私保障、响应速度提升以及模型深度定制等独特优势。Ollama作为轻量级模型运行框架…...

MMSegmentation项目交付必备:如何生成让客户/导师眼前一亮的可视化报告(附完整脚本)

MMSegmentation项目交付必备:如何生成让客户/导师眼前一亮的可视化报告(附完整脚本) 在计算机视觉项目的最终交付环节,一份专业、直观的可视化报告往往比堆砌技术参数更能打动客户或导师。MMSegmentation作为开源图像分割领域的标…...

Ubuntu 24.04 环境实战:ROS 2 Kilted 实现 SLAM 建图与 Nav2 导航

一、构建地图 1、安装依赖 安装 slam_toolbox 算法库: sudo apt install ros-kilted-slam-toolbox安装 TurtleBot3 全套支持包: sudo apt install ros-kilted-turtlebot3*2、使用清华源 如果apt安装很慢,请先配置清华源: sud…...

vs code 实现source insight中的快捷键功能

1.自定义快捷键连续两组快捷键CtrlK CtrlS打开键盘快捷键定义界面修改向前向后的快捷键。ctrlu删除当前行复制当前行到下面2.增加bookmarks功能扩展部分装插件,定义快捷键ctrlm增加标签可以修改标签3.多行移动多行向上移动,向下移动Windows/Linux 用 Alt…...

CentOS7-IP配置记录

简要说明 本文章主要记录CentOS7系统在桥接网络类型下的IP配置测试,主要分为静态和动态配置,以下部署配置仅作参考,可根据实际情况调整。 相关文章 CentOS7部署参考文章:VMware-CentOS7最小化安装记录 CentOS7指令参考文章&am…...

Android16进阶之MediaPlayer.selectTrack调用流程与实战(二百五十)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...

开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案

开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案 【免费下载链接】vue-vben-admin vbenjs/vue-vben-admin: 是一个基于 Vue.js 和 Element UI 的后台管理系统,支持多种数据源和插件扩展。该项目提供了一个完整的后台管理系统&…...

ESFT-gate-law-lite:法律文本智能分析新工具

ESFT-gate-law-lite:法律文本智能分析新工具 【免费下载链接】ESFT-gate-law-lite ESFT-gate-law-lite是基于HuggingFace的深度学习模型,专为法律领域定制。源自deepseek-ai团队,继承ESFT-vanilla-lite优势,强大而轻量&#xff0c…...

Ollama + DeepSeek + 芋道框架 + SearXNG 本地联网搜索完整教程

1. 环境准备与检查 在开始之前,请确保你的环境满足以下条件: 1.1 硬件要求 内存:建议至少8GB可用内存(运行7B模型需要约4-6GB) 硬盘:DeepSeek模型文件约4-5GB空间 CPU/GPU:如有NVIDIA GPU可加速推理(可选) 1.2 软件要求 操作系统:Windows 10/11、macOS、Linux均可 …...

首款支持AI渗透的WebShell管理工具,聊个天就能实现免杀|实现高隐蔽内网渗透

0x01 工具介绍 金刚狼首款支持 AI 渗透的 WebShell MCP,也是一款支持多层内网级联的 ASPX、ASHX 高级 WebShell 管理工具。工具采用 AES 加密通信,无需代理即可实现内网穿透,支持内存加载各类渗透工具,做到无文件落地隐蔽渗透目标…...

突破限制:BlenderCompat让Windows 7焕发新活力运行Blender 3.x

突破限制:BlenderCompat让Windows 7焕发新活力运行Blender 3.x 【免费下载链接】BlenderCompat Windows 7 support for Blender 3.x and newer 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderCompat 在3D创作领域,Blender的每一次版本迭代…...

带标注的交通工具分类数据集,17334张原始图片,识别率92.4%,可识别汽车,公共汽车,自行车,摩托车,支持yolo,coco json,pascal voc xml格式

带标注的交通工具分类数据集,17334张原始图片,识别率92.4%,可识别汽车,公共汽车,自行车,摩托车,支持yolo,coco json,pascal voc xml格式 模型训练指标参数: …...

语音转换完全上手:Retrieval-based Voice-Conversion-WebUI从入门到精通

语音转换完全上手:Retrieval-based Voice-Conversion-WebUI从入门到精通 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型! 项目地址: https://gitcode.com/GitHub_Trending/re/Retr…...

日语零基础每天学习笔记【01-10】

第一天 日语五十音:平假名/片假名发音あア いイ うウ えエ おオaかカ きキ くク けケ こコkaさサ しシ すス せセ そソsaたタ ちチ つツ てテ とトtaなナ にニ ぬヌ ねネ のノnaはハ ひヒ ふフ へヘ ほホhaまマ みミ むム めメ もモmaや…...

密码安全必修课:为什么BCrypt比MD5更适合存储用户密码?

密码安全必修课:为什么BCrypt比MD5更适合存储用户密码? 在数字身份成为第二张身份证的时代,密码安全早已不是技术圈的内部话题。去年某社交平台600万用户数据泄露事件中,令人震惊的不是数据被盗本身,而是其中87%的密码…...

3.23-3.25笔记

这期实现温湿度采集、光照强度监测、智能设备控制(加湿器、PWM 调光 LED、PWM 调速风扇)确定引脚,根据原理图找出可以使用的引脚开关。根据手册信息PWM口GPIO0_D0和GPIO0_C6,把设备树GPIO0_D0做5G的复位disable,再加入…...

2024具身智能技术全景解析:从人形机器人到AGI的硬件与算法协同进化

1. 具身智能:当机器人学会"思考"和"行动" 想象一下,你家的扫地机器人不仅能自动规划路线清洁地板,还能在你做饭时递调料瓶、在你工作疲惫时泡一杯咖啡——这不是科幻电影,而是具身智能技术正在实现的场景。具…...

关于腾讯广告算法大赛2025项目分析1 - dataset.py

把原始 jsonl 用户行为序列,转成模型能直接吃的张量tensor和特征字典 一、整体定位 MyDataset 读取训练数据,产出: 用户序列 seq正样本 pos负样本 negtoken 类型各类特征时间特征相关原始时间戳 MyTestDataset 读取测试/推理数据,产出 用户序…...

5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践

5大核心功能重塑Sketch效率:RenameIt批量命名工具的流程优化实践 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计工作流中&#x…...

【adb端口5555】烽火hg680系列安卓9线刷全攻略:告别强制升级与花屏困扰

1. 烽火HG680系列机顶盒的痛点与解决方案 最近在折腾烽火HG680-GY和HG680-GC这两款机顶盒的朋友应该都深有体会,官方系统用着用着就会弹出强制升级提示,有时候还会莫名其妙出现花屏问题。作为一个折腾过不下20台烽火盒子的老玩家,我太理解这种…...

OpenClaw多模型切换指南:ollama-QwQ-32B与本地小模型协同工作

OpenClaw多模型切换指南:ollama-QwQ-32B与本地小模型协同工作 1. 为什么需要多模型协同 去年冬天,当我第一次尝试用OpenClaw自动整理电脑里堆积如山的论文时,发现一个尴尬的问题:简单的文件分类任务消耗了过多token。每次让大模…...

避免这些坑!Unity2D界面转换中常见的动画事件处理问题及解决方案

避免这些坑!Unity2D界面转换中常见的动画事件处理问题及解决方案 在Unity2D游戏开发中,界面转换是提升用户体验的关键环节。一个流畅的淡入淡出效果能让场景切换更加自然,但很多开发者在实际操作中常会遇到动画事件不触发、协程执行异常等问题…...

终极指南:使用compressorjs实现专业级前端图片压缩与编辑功能

终极指南:使用compressorjs实现专业级前端图片压缩与编辑功能 【免费下载链接】compressorjs compressorjs: 是一个JavaScript图像压缩库,使用浏览器原生的canvas.toBlob API进行图像压缩。 项目地址: https://gitcode.com/gh_mirrors/co/compressorjs…...

5分钟完成Axure RP界面本地化:从英文障碍到高效操作的蜕变指南

5分钟完成Axure RP界面本地化:从英文障碍到高效操作的蜕变指南 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-c…...

从松到深:解析组合导航三大模式的演进路径与实战选型

1. 组合导航的底层逻辑与技术演进 第一次接触组合导航系统时,我被这个看似简单的概念惊艳到了——把两种完全不同的定位技术融合在一起,竟然能产生11>2的效果。这就像做菜时的黄金搭档,比如西红柿和鸡蛋单独吃都不错,但炒在一起…...

CasRel开源大模型部署教程:一键拉取镜像+5分钟完成SPO推理

CasRel开源大模型部署教程:一键拉取镜像5分钟完成SPO推理 1. 什么是CasRel关系抽取模型 如果你需要从大段文字中自动找出"谁做了什么"、"谁是什么"这样的信息,CasRel模型就是你的得力助手。这个模型专门用来从文本中提取主体-谓语…...