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

【Gaussian splatting系列学习】(二)

3DGS系列(一)
3DGS系列(二)

NeRF中使用的相机模型:

  • 世界坐标系
  • 相机坐标系
  • 归一化坐标系
  • 像素坐标系

CG中更常用的变换:

  1. 观测变换(世界坐标系到相机坐标系)

    “横看成岭侧成峰,远近高低各不同”,实际上是仿射变换 w=Ax+b

  2. 投影变换(从相机坐标系到2D的空间):
    3D到2D,正交投影与z无关,透视投影与z相关

  3. 视口变换

  4. 光栅化
    在这里插入图片描述

可参考《GAMES101-现代计算机图形学入门-闫令琪》
在这里插入图片描述

正交投影:

  • 立方体: [ l , r ] × [ b , t ] × [ f , n ] [l, r]\times [b,t]\times[f,n] [l,r]×[b,t]×[f,n]
  • 平移到原点
  • 立方体缩放到 [ − 1 , 1 ] 3 [-1,1]^3 [1,1]3的正方体
  • 仿射变换

在这里插入图片描述

透视投影:

  • 远小近大
  • 先把锥体压成立方体
  • 再正交投影

在这里插入图片描述
问题:

  • 透视投影是非线性的,即非仿射变换
  • 我们希望高斯椭球一直进行仿射变换

不管是正交投影还是透视投影,最后得到一个单位正方体,下面要把它拉回最开始想要的h,w
进行拉伸:

  • 和z无关
  • [ − 1 , 1 ] 2 [-1,1]^2 [1,1]2的矩阵变换至[0,w] x [0,h]

光栅化:
定义:

  • 把东西画在屏幕上
  • 连续转离散
  • 使用的方法:采样
    在这里插入图片描述

3D高斯的观测变换

物理坐标系(世界坐标系):

  • 高斯核中心 t k = [ t 0 t 1 t 2 ] T t_k=[\ t_0 \ t_1 \ t_2]^T tk=[ t0 t1 t2]T
  • 高斯核: r k ′ ′ ( t ) = G V k ′ ′ ( t − t k ) r^{''}_k(t)=G_{V_k^{''}}(t-t_k) rk′′(t)=GVk′′(ttk)
  • V k ′ ′ V_k^{''} Vk′′是协方差矩阵

相机坐标系:

u = ϕ ( t ) = W t + d u=\phi(t)=Wt+d u=ϕ(t)=Wt+d

  • 高斯核中心 u k = [ u 0 u 1 u 2 ] T u_k=[\ u_0 \ u_1 \ u_2]^T uk=[ u0 u1 u2]T
  • 高斯核: r k ′ ′ ( u ) = G V k ′ ′ ( u − u k ) r^{''}_k(u)=G_{V_k^{''}}(u-u_k) rk′′(u)=GVk′′(uuk)
  • 均值 u k = W t k + d u_k=Wt_k+d uk=Wtk+d
  • 协方差矩阵 V k ′ = W V k ′ ′ W T V_k^{'}=WV_k^{''}W^T Vk=WVk′′WT

投影变换:
投影变换矩阵: x = m ( t ) x=m(t) x=m(t),非线性
在这里插入图片描述

  • 高斯核中心 x k = [ x 0 x 1 x 2 ] T x_k=[\ x_0 \ x_1 \ x_2]^T xk=[ x0 x1 x2]T
  • 高斯核: r k ( x ) = G V k ( x − x k ) r_k(x)=G_{V_k}(x-x_k) rk(x)=GVk(xxk)
  • 均值 x k = m ( u k ) x_k=m(u_k) xk=m(uk)(一个点可以用非线性变换)
  • 协方差矩阵?

为什么要引入雅克比矩阵?

协方差矩阵可以直接使用投影变换吗?

  • 不可以
  • 从透视投影到正交投影
  • 非线性变换,非仿射

怎么办?

  • 引入雅克比近似矩阵。

雅克比矩阵

keywords:

  • 泰勒展开
  • 线性逼近

    坐标变换:
  • f 1 ( x ) = x + s i n ( y ) f_1(x)=x+sin(y) f1(x)=x+sin(y)
  • f 2 ( y ) = y + s i n ( x ) f_2(y)=y+sin(x) f2(y)=y+sin(x)

    雅克比矩阵: J = [ d f 1 d x d f 1 d y d f 2 d x d f 2 d y ] = [ 1 cos ⁡ ( y ) cos ⁡ ( x ) 1 ] J=\left[\begin{array}{ll} \frac{d f_1}{d x} & \frac{d f_1}{d y} \\ \frac{d f_2}{d x} & \frac{d f_2}{d y} \end{array}\right]=\left[\begin{array}{cc} 1 & \cos (y) \\ \cos (x) & 1 \end{array}\right] J=[dxdf1dxdf2dydf1dydf2]=[1cos(x)cos(y)1]

理解:对非线性变换的局部线性近似

协方差矩阵: V k = J V k ′ J T V_k=JV_k^{'}J^T Vk=JVkJT (用雅克比矩阵代替仿射变换矩阵)

再结合观测变换: V k = J V k ′ J T = J W V k ′ ′ W T J T V_k=JV_k^{'}J^T=JWV_k^{''}W^TJ^T Vk=JVkJT=JWVk′′WTJT

J = ∂ m ( u k ) ∂ u J=\frac{\partial m(u_k)}{\partial u} J=um(uk) (求导)

此时均值和协方差在一个坐标系里吗?
均值:在NDC坐标系,范围[-1,1]的立方体内
协方差矩阵:在未缩放的正交坐标系里,不需要再做视口变换,范围是[l,r] x [b,t] x [f,n]

投影变换的雅克比矩阵

在这里插入图片描述

所以通过投影变换,原来的 [ x , y , z ] T [x,y,z]^T [x,y,z]T 变成了 :(n=near, f=far)
求导得到雅可比矩阵。
在这里插入图片描述
视口变换:

像素坐标系

  • 对高斯核中心进行平移+缩放

  • 足迹渲染:离散计算

    距离均值越近,值越大。

    G ( x ^ ) = e x p ( − 1 2 ( x − μ ) T V k − 1 ( x − μ ) ) G(\hat x)=exp(-\frac{1}{2}(x-\mu)^TV_k^{-1}(x-\mu)) G(x^)=exp(21(xμ)TVk1(xμ))

Code:

3D高斯中心的变换:
在这里插入图片描述

3D高斯协方差的变换:
mean:世界坐标系的中心点
在这里插入图片描述
下一步,需要计算雪球的颜色。

A u t h o r : C h i e r Author: Chier Author:Chier

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【一起学Rust | 框架篇 | Tauri2.0框架】tauri中rust和前端的相互调用(rust调用前端)
  • [已解决]mac远程连接windows桌面:parallels client连接遇到的问题
  • repo的patch转换成git am能打的patch
  • 三级_网络技术_43_综合题(报文)
  • USB设备驱动代码分析(鼠标)
  • 如何设置PowerBI报告展示在屏幕的大小?
  • 【AI赋能游戏】《黑神话:悟空》专属黑悟空无限创意生成器!(整合包分享)
  • 选择排序(直接选择排序和堆排序)
  • Go Convey测试框架入门(go convey gomonkey)
  • 特殊类设计和类型转换
  • 进阶SpringBoot之 SpringSecurity(2)用户认证和授权
  • TIM输出比较之PWM驱动直流电机应用案例
  • UEFI启动流程
  • 《黑神话:悟空》到底是用什么语言开发的
  • 从0到1构建视频汇聚生态:EasyCVR视频汇聚平台流媒体协议支持的前瞻性布局
  • codis proxy处理流程
  • es6(二):字符串的扩展
  • IDEA 插件开发入门教程
  • Javascript设计模式学习之Observer(观察者)模式
  • java中具有继承关系的类及其对象初始化顺序
  • Lucene解析 - 基本概念
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • php的插入排序,通过双层for循环
  • React的组件模式
  • vue中实现单选
  • 阿里云购买磁盘后挂载
  • 模型微调
  • 实战|智能家居行业移动应用性能分析
  • 一、python与pycharm的安装
  • 移动端解决方案学习记录
  • scrapy中间件源码分析及常用中间件大全
  • 正则表达式-基础知识Review
  • ​ArcGIS Pro 如何批量删除字段
  • ​你们这样子,耽误我的工作进度怎么办?
  • (day 12)JavaScript学习笔记(数组3)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (WSI分类)WSI分类文献小综述 2024
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)springboot教学评价 毕业设计 641310
  • (七)Flink Watermark
  • (十一)手动添加用户和文件的特殊权限
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***检测工具之RKHunter AIDE
  • .bat文件调用java类的main方法
  • .Net Core和.Net Standard直观理解
  • .Net 应用中使用dot trace进行性能诊断
  • .NET 直连SAP HANA数据库
  • .NET 中的轻量级线程安全
  • .net6使用Sejil可视化日志
  • .net生成的类,跨工程调用显示注释
  • .NET委托:一个关于C#的睡前故事