文章

Gaussian Splatting-投影矩阵与Jacobian矩阵

投影矩阵

将3D协方差投影到2D, 获得一个2×2的协方差矩阵

\[\Sigma' = J W \Sigma W^T J^T\]

其中变换矩阵$W$应该是将点云从世界坐标系变换到相机坐标系。J是一个Jacobian矩阵, 用来近似投影操作。

与传统的计算机视觉方法相比,可能会有疑惑:为什么不使用相机内参矩阵K来完成投影操作?

投影: K与Jacobian

1
𝐽 is the Jacobian of the affine approximation of the projective transformation.

结论: 点的投影过程是一个非线性变换, 无法直接用于表示分布的协方差矩阵的投影。从物理的角度来说, 3D的信息变为了2D, 其实是损失了一个维度的信息, 我们使用深度图恢复点云的时候, 实际上是使用了每个2D像素点额外的1D深度信息。

假设[A, b]是一个线性变换, 那么空间中的高斯分布$(\mu, \Sigma)$经过变换后变为:

\[\mu_Y = A\mu + \mathbf{b}\] \[\Sigma_Y = A\Sigma A^T\]

线性变换

  1. 加法封闭性
\[T(\mu+\nu)=T(\mu)+T(\nu)\]
  1. 数乘封闭性
\[T(c\mu)=cT(\mu)\]

而使用内参矩阵K进行透视投影这个过程是非线性的,会使表示分布的协方差矩阵信息丢失。

\[\begin{bmatrix} \mu \\ \nu \\ 1 \\ \end{bmatrix} = \frac{1}{Z_c}K \begin{bmatrix} X_c \\ Y_c \\ Z_c \\ \end{bmatrix}\]

因为$\frac{1}{Z_c}$这一非线性项会出现在$\mu$和$\nu$中, 因此使用内参矩阵$K$的投影过程是非线性的。而为了维持分布的特性,我们需要使用线性变换。这就是为什么需要使用Jacobian矩阵来近似线性变换。

Jacobian是如何近似的

我们前面提到了, 如果是线性变换, 那么协方差矩阵的变换形式是:

\[\Sigma_{new}=A\Sigma A^T\]

能够维持分布,也就是说能够维持协方差矩阵的半正定性和对称性。

$f$本身是$\R^n\rightarrow\R^m$进行两个空间之间的映射, Jacobian是对这个映射$f$的拟合。

一般来说, $J$通常由下面的公式定义:

\[\mathbf{J} = \begin{bmatrix} \frac{\partial f}{\partial x_1} & \cdots & \frac{\partial f}{\partial x_n} \end{bmatrix} = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}\]

可以看到是每一维映射结果对变量各个维度分量的偏导数。

关于为什么是这个顺序, 可以参考该视频下的评论。

Q:为什么雅可比矩阵可以线性化非线性函数?

雅可比矩阵可以理解为一阶泰勒展开在向量上的拓展, 因为之前遇到的一阶泰勒展开要么是单变量函数, 要么是多变量函数。

\(f(x) \approx f(x_0)+f'(x_0)(x - x_0)\) 令变量$\mathbf{x}=(a,b), \mathbf{x_0}=(a_0, b_0)$ \(f(a) \approx f(a_0)+\frac{\partial f(a)}{\partial a}(a - a_0)\)

假设 \(f(x, y) = \begin{bmatrix} x^2 + y \\ x + y^2 \end{bmatrix}\)

可以写为

\[f(x, y) = \begin{bmatrix} f_{1}(x, y) \\ f_{2}(x, y) \end{bmatrix} = \begin{bmatrix} x^2 + y \\ x + y^2 \\ \end{bmatrix}\]

根据雅可比矩阵的定义

\[J(x, y) = \begin{bmatrix} \frac{\partial f_1}{\partial x} & \frac{\partial f_1}{\partial y} \\ \frac{\partial f_2}{\partial x} & \frac{\partial f_2}{\partial y} \\ \end{bmatrix} = \begin{bmatrix} 2x & 1 \\ 1 & 2y \\ \end{bmatrix}\]

$f$在$x_0$处的泰勒一阶展开

\[f(x) \approx f(x_0, y_0)+J(x_0, y_0)\begin{bmatrix} x - x_0 \\ y - y_0 \end{bmatrix}\]

假设$x_0 = 1, y_0 = 2$, 且$\Delta x= x - x_0$, $\Delta y= y - y_0$

\[f(x) \approx \begin{bmatrix} 3 \\ 5 \end{bmatrix} + \begin{bmatrix} 2 & 1 \\ 1 & 4 \\ \end{bmatrix}\begin{bmatrix} \Delta x \\ \Delta y \end{bmatrix}\]

至此, f(x, y)已经在$(x_0, y_0)$处实现了局部线性近似。


雅可比矩阵是如何处理投影的

本文由作者按照 CC BY 4.0 进行授权