Gaussian Splatting中的协方差3维到2维投影公式之详细解析

本文回答两个问题:

Σ 2 D = J W Σ 3 D W T J T \Sigma_{2D}=J W \Sigma_{3D} W^{T} J^{T} Σ2D=JWΣ3DWTJT这个公式是怎么来的?

J J J的公式是如何推导出来的呢?

J = ( f x z 0 − f x ⋅ x z 2 0 f y z − f y ⋅ y z 2 0 0 0 ) J=\left(\begin{matrix} \frac{f_x}{z} & 0 & -\frac{f_x \cdot x}{z^2} \\ 0 & \frac{f_y}{z} & -\frac{f_y \cdot y}{z^2} \\ 0 & 0 & 0 \end{matrix}\right) J= zfx000zfy0z2fxxz2fyy0

射线空间和相机空间
  1. 射线空间坐标系 x = ( x 0 , x 1 , x 2 ) T \mathbf{x}=(x_0, x_1, x_2)^T x=(x0,x1,x2)T:

    • ( x 0 , x 1 ) (x_0, x_1) (x0,x1) 表示投影平面上的一个点
    • x 2 x_2 x2 表示从投影中心到视线上点的欧几里得距离
  2. 相机空间坐标系 u = ( u 0 , u 1 , u 2 ) T = ( x , y , z ) T \mathbf{u}=(u_0, u_1, u_2)^T= (x, y, z)^T u=(u0,u1,u2)T=(x,y,z)T:

    • 原点位于投影中心
    • 投影平面是 z = f z = f z=f 平面

两个坐标系之间的投影变换公式:

从相机空间到射线空间 m ( u ) \mathbf{m}(\mathbf{u}) m(u):
( x 0 x 1 x 2 ) = m ( u ) = ( u 0 / u 2 u 1 / u 2 ∥ ( u 0 , u 1 , u 2 ) T ∥ ) \left(\begin{array}{c} x_0 \\ x_1 \\ x_2 \end{array}\right) =\mathbf{m}(\mathbf{u})= \left(\begin{array}{c} u_0 / u_2 \\ u_1 / u_2 \\ \|(u_0, u_1, u_2)^T\| \end{array}\right) x0x1x2 =m(u)= u0/u2u1/u2(u0,u1,u2)T

从射线空间到相机空间 m − 1 ( x ) \mathbf{m}^{-1}(\mathbf{x}) m1(x):
( u 0 u 1 u 2 ) = m − 1 ( u ) = ( x 0 / l ⋅ x 2 x 1 / l ⋅ x 2 f / l ⋅ x 2 ) \left(\begin{array}{c} u_0 \\ u_1 \\ u_2 \end{array}\right) =\mathbf{m}^{-1}(\mathbf{u})= \left(\begin{array}{c} x_0 / l \cdot x_2 \\ x_1 / l \cdot x_2 \\ f / l \cdot x_2 \end{array}\right) u0u1u2 =m1(u)= x0/lx2x1/lx2f/lx2
其中 l = ∥ ( x 0 , x 1 , f ) T ∥ l = \|(x_0, x_1, f)^T\| l=(x0,x1,f)T
请添加图片描述

这样的话,在射线空间中的 ( x 0 , x 1 , x 2 ) (x_0, x_1, x_2) (x0,x1,x2

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值