【三維重建】【3DGS系列】【深度學習】3DGS的理論基礎知識之如何形成高斯橢球

【三維重建】【3DGS系列】【深度學習】3DGS的理論基礎知識之如何形成高斯橢球

文章目錄

  • 【三維重建】【3DGS系列】【深度學習】3DGS的理論基礎知識之如何形成高斯橢球
  • 前言
  • 高斯函數
    • 一維高斯
    • 多維高斯
  • 橢球
    • 基本定義
    • 一般二次形式
  • 3D高斯橢球
    • 3D高斯與橢球的關系
    • 各向同性(Isotropic)和各向異性(Anisotropic)
  • 總結


前言

在詳細解析3DGS代碼之前,首要任務是成功運行3DGS代碼【理論基礎及代碼運行(win11下)解析參考教程】,后續學習才有意義。本博客講解3DGS中如何形成高斯橢球,不涉及具體的模塊代碼。


參考:3D高斯的理論理解
參考:3d gaussian splatting全解 捏雪球

高斯函數

一維高斯

標準一維高斯函數:
f ( x ) = 1 2 π σ e ? x 2 2 f\left( x \right) = \frac{1}{{\sqrt {2\pi\sigma} }}{e^{ - \frac{{{x^2}}}{2}}} f(x)=2πσ ?1?e?2x2?

其中的 σ \sigma σ表示高斯函數的方差, μ \mu μ表示高斯函數的均值;標準高斯函數的方差 σ \sigma σ為1,均值 μ \mu μ為0,概率密度之和為1。

import numpy as np
import matplotlib.pyplot as plt
# 定義高斯函數
def gaussian(x, mean=0, std=1):return (1 / (std * np.sqrt(2 * np.pi))) * np.exp(-((x - mean) ** 2) / (2 * std ** 2))# 生成x軸數據
x = np.linspace(-4, 4, 500)# 均值和標準差
mean = 0  # 均值 μ
std = 1   # 標準差 σ# 計算對應y值
y = gaussian(x, mean, std)
# 繪制圖形
plt.plot(x, y, label='Standard Gaussian')# 在均值處標注峰值點
peak_y = gaussian(mean)
plt.plot(0, peak_y, 'ro')   # 紅色圓圈標記
plt.text(0+0.1, peak_y, 'Peak', fontsize=9)# 標注均值、±1σ, ±2σ, ±3σ的位置
plt.axvline(x=mean, color='g', linestyle='--', label='Mean')
plt.axvline(x=mean - std, color='y', linestyle='--', label='-1 STD')
plt.axvline(x=mean + std, color='y', linestyle='--')# 添加圖例
plt.legend()# 圖像標題與坐標軸標簽
plt.title('Standard Univariate Gaussian Function')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.grid(True)# 保存圖像(文件名中包含均值和標準差)
filename = f'standard_gaussian_distribution.jpg'
plt.savefig(filename, dpi=300, bbox_inches='tight')
# 顯示圖像
plt.show()

不限制均值和方差,一維高斯函數:
f ( x ) = 1 2 π σ e ? ( x ? μ ) 2 2 σ 2 f\left( x \right) = \frac{1}{{\sqrt {2\pi\sigma} }}{e^{ - \frac{{{{\left( {x - \mu } \right)}^2}}}{{2{\sigma ^2}}}}} f(x)=2πσ ?1?e?2σ2(x?μ)2?

在數學上的意義為將標準高斯函數向右平移 μ \mu μ個單位,函數寬度延展了 σ \sigma σ倍,分別決定了分布的位置和寬度,同時為了保證概率密度函數積分為1, f ( x ) f\left( x \right) f(x) 的高度會下降,因為系數 1 2 π σ \frac{1}{{\sqrt {2\pi\sigma} }} 2πσ ?1?

import numpy as np
import matplotlib.pyplot as plt# 定義高斯函數
def gaussian(x, mean=0, std=1):return (1 / (std * np.sqrt(2 * np.pi))) * np.exp(-((x - mean) ** 2) / (2 * std ** 2))# 均值和標準差
mean = 1.5  # 均值 μ
std = 5   # 標準差 σ# 生成x軸數據(根據均值和標準差適當調整范圍)
x = np.linspace(mean - 4*std, mean + 4*std, 500)# 計算對應y值
y = gaussian(x, mean, std)
# 繪制圖形
plt.plot(x, y, label=f'Gaussian({mean},{std}$^2$)')# 在均值處標注峰值點
peak_y = gaussian(mean)
plt.plot(mean, peak_y, 'ro')  # 紅色圓圈標記
plt.text(mean + 0.05, peak_y, 'Peak', fontsize=9)# 標注均值、±1σ, ±2σ, ±3σ的位置
plt.axvline(x=mean, color='g', linestyle='--', label='Mean')
plt.axvline(x=mean - std, color='y', linestyle='--', label='-1 STD')
plt.axvline(x=mean + std, color='y', linestyle='--')
plt.axvline(x=mean - 2*std, color='b', linestyle='--', label='-2 STD')
plt.axvline(x=mean + 2*std, color='b', linestyle='--')
plt.axvline(x=mean - 3*std, color='m', linestyle='--', label='-3 STD')
plt.axvline(x=mean + 3*std, color='m', linestyle='--')# 添加圖例
plt.legend()# 圖像標題與坐標軸標簽
plt.title('Univariate Gaussian Function')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.grid(True)# 保存圖像(文件名中包含均值和標準差)
filename = f'gaussian_mu{mean}_sigma{std}.jpg'
plt.savefig(filename, dpi=300, bbox_inches='tight')
# 顯示圖像
plt.show()

多維高斯

1. n n n服從正態分布且互不相關的獨立變量 x = [ x 1 , x 2 , . . . , x n ] T x = {\left[ {{x_1},{x_2},...,{x_n}} \right]^T} x=[x1?,x2?,...,xn?]T,其均值為 μ ( x ) = [ μ 1 , μ 2 , . . . , μ n ] T \mu\left( x \right) = {\left[ {{\mu _1},{\mu _2},...,{\mu _n}} \right]^T} μ(x)=[μ1?,μ2?,...,μn?]T,方差為 σ ( x ) = [ σ 1 , σ 2 , . . . , σ n ] T \sigma\left( x \right) = {\left[ {{\sigma_1},{\sigma_2},...,{\sigma_n}} \right]^T} σ(x)=[σ1?,σ2?,...,σn?]T,根據概率論中的概率密度公式有:
f ( x ) = p ( x 1 , x 2 , . . . , x n ) = p ( x 1 ) p ( x 2 ) . . . p ( x n ) = 1 ( 2 π ) n σ 1 σ 1 . . . σ n e ? ( x 1 ? μ 1 ) 2 2 σ 1 2 ? ( x 2 ? μ 2 ) 2 2 σ 2 2 . . . ? ( x n ? μ n ) 2 2 σ n 2 f\left( x \right) = p\left( {{x_1},{x_2},...,{x_n}} \right) = p\left( {{x_1}} \right)p\left( {{x_2}} \right)...p\left( {{x_n}} \right) = \frac{1}{{{{\left( {\sqrt {2\pi } } \right)}^n}{\sigma _1}{\sigma _1}...{\sigma _n}}}{e^{ - \frac{{{{\left( {{x_1} - {\mu _1}} \right)}^2}}}{{2{\sigma _1}^2}} - \frac{{{{\left( {{x_2} - {\mu _2}} \right)}^2}}}{{2{\sigma _2}^2}}... - \frac{{{{\left( {{x_n} - {\mu _n}} \right)}^2}}}{{2{\sigma _n}^2}}}} f(x)=p(x1?,x2?,...,xn?)=p(x1?)p(x2?)...p(xn?)=(2π ?)nσ1?σ1?...σn?1?e?2σ1?2(x1??μ1?)2??2σ2?2(x2??μ2?)2?...?2σn?2(xn??μn?)2?

  • ( x 1 ? μ 1 ) 2 2 σ 1 2 + ( x 2 ? μ 2 ) 2 2 σ 2 2 . . . + ( x n ? μ n ) 2 2 σ n 2 \frac{{{{\left( {{x_1} - {\mu _1}} \right)}^2}}}{{2{\sigma _1}^2}} + \frac{{{{\left( {{x_2} - {\mu _2}} \right)}^2}}}{{2{\sigma _2}^2}}... + \frac{{{{\left( {{x_n} - {\mu _n}} \right)}^2}}}{{2{\sigma _n}^2}} 2σ1?2(x1??μ1?)2?+2σ2?2(x2??μ2?)2?...+2σn?2(xn??μn?)2?分解表示:
    [ x 1 ? μ 1 , x 2 ? μ 2 . . . x n ? μ n ] [ 1 σ 1 2 0 . . . . 0 0 1 σ 2 2 . . . . 0 . . . . . . . . . . . . . . . . 0 0 . . . . 1 σ n 2 ] [ x 1 ? μ 1 , x 2 ? μ 2 . . . x n ? μ n ] T \left[ {{x_1} - {\mu _1},{x_2} - {\mu _2}...{x_n} - {\mu _n}} \right]\left[ {\begin{array}{c} {\frac{1}{{\sigma _1^2}}}&0&{....}&0\\ 0&{\frac{1}{{\sigma _2^2}}}&{....}&0\\ {....}&{....}&{....}&{....}\\ 0&0&{....}&{\frac{1}{{\sigma _n^2}}} \end{array}} \right]{\left[ {{x_1} - {\mu _1},{x_2} - {\mu _2}...{x_n} - {\mu _n}} \right]^T} [x1??μ1?,x2??μ2?...xn??μn?] ?σ12?1?0....0?0σ22?1?....0?................?00....σn2?1?? ?[x1??μ1?,x2??μ2?...xn??μn?]T
    x ? μ x x - {\mu _x} x?μx?表示 [ x 1 ? μ 1 , x 2 ? μ 2 . . . x n ? μ n ] T {\left[ {{x_1} - {\mu _1},{x_2} - {\mu _2}...{x_n} - {\mu _n}} \right]^T} [x1??μ1?,x2??μ2?...xn??μn?]T;用協方差矩陣 Σ \Sigma Σ表示 [ σ 1 2 0 . . . . 0 0 σ 2 2 . . . . 0 . . . . . . . . . . . . . . . . 0 0 . . . . σ n 2 ] \left[ {\begin{array}{c} {\sigma _1^2}&0&{....}&0\\ 0&{\sigma _2^2}&{....}&0\\ {....}&{....}&{....}&{....}\\ 0&0&{....}&{\sigma _n^2} \end{array}} \right] ?σ12?0....0?0σ22?....0?................?00....σn2?? ?,則進一步簡化為 ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) {\left( {x - {\mu _x}} \right)^T}{(\Sigma {} )^{ - 1}}\left( {x - {\mu _x}} \right) (x?μx?)T(Σ)?1(x?μx?)
  • Σ \Sigma Σ行列式為 ∣ Σ ∣ = σ 1 2 σ 2 2 . . . . σ n 2 \left| \Sigma \right| = \sigma _1^2\sigma _2^2....\sigma _n^2 Σ=σ12?σ22?....σn2?,因此 ∣ Σ ∣ 1 2 = σ 1 σ 2 . . . . σ n {\left|\Sigma \right|^{\frac{1}{2}}} = {\sigma _1}{\sigma _2}....{\sigma _n} Σ21?=σ1?σ2?....σn?

因此多維正態高斯分布函數:
f ( x ) = 1 ( 2 π ) n ∣ Σ ∣ 1 2 e ? ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) 2 f\left( x \right) = \frac{1}{{{{\left( {\sqrt {2\pi } } \right)}^n}{{\left| {\Sigma {} } \right|}^{\frac{1}{2}}}}}{e^{ - \frac{{{{\left( {x - {\mu _x}} \right)}^T}{{(\Sigma {} )}^{ - 1}}\left( {x - {\mu _x}} \right)}}{2}}} f(x)=(2π ?)nΣ21?1?e?2(x?μx?)T(Σ)?1(x?μx?)?

2. n n n服從正態分布且的隨機變量 x = [ x 1 , x 2 , . . . , x n ] T x = {\left[ {{x_1},{x_2},...,{x_n}} \right]^T} x=[x1?,x2?,...,xn?]T,其均值為 μ ( x ) = [ μ 1 , μ 2 , . . . , μ n ] T \mu\left( x \right) = {\left[ {{\mu _1},{\mu _2},...,{\mu _n}} \right]^T} μ(x)=[μ1?,μ2?,...,μn?]T,方差為 σ ( x ) = [ σ 1 , σ 2 , . . . , σ n ] T \sigma\left( x \right) = {\left[ {{\sigma_1},{\sigma_2},...,{\sigma_n}} \right]^T} σ(x)=[σ1?,σ2?,...,σn?]T,還需要一個協方差矩陣 Σ \Sigma Σ來描述變量之間的相關性。多維正態高斯分布函數依舊是:
f ( x ) = 1 ( 2 π ) n ∣ Σ ∣ 1 2 e ? ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) 2 f\left( x \right) = \frac{1}{{{{\left( {\sqrt {2\pi } } \right)}^n}{{\left| {\Sigma {} } \right|}^{\frac{1}{2}}}}}{e^{ - \frac{{{{\left( {x - {\mu _x}} \right)}^T}{{(\Sigma {} )}^{ - 1}}\left( {x - {\mu _x}} \right)}}{2}}} f(x)=(2π ?)nΣ21?1?e?2(x?μx?)T(Σ)?1(x?μx?)?
協方差矩陣同樣是一個 n × n {\rm{n}} \times {\rm{n}} n×n的矩陣,其元素 Σ i j {\Sigma_{ij}} Σij?表示第 i i i個隨機變量與第 j j j個隨機變量之間的協方差:
Σ = [ σ 1 2 σ 12 . . . . σ 1 n σ 21 σ 2 2 . . . . σ 2 n . . . . . . . . . . . . . . . . σ n 1 σ n 2 . . . . σ n 2 ] \Sigma = \left[ {\begin{array}{c} {\sigma _1^2}&{{\sigma _{12}}}&{....}&{{\sigma _{1n}}}\\ {{\sigma _{21}}}&{\sigma _2^2}&{....}&{{\sigma _{2n}}}\\ {....}&{....}&{....}&{....}\\ {{\sigma _{n1}}}&{{\sigma _{n2}}}&{....}&{\sigma _n^2} \end{array}} \right] Σ= ?σ12?σ21?....σn1??σ12?σ22?....σn2??................?σ1n?σ2n?....σn2?? ?
如果 Σ i j = σ i j = 0 {\Sigma_{ij}}={\sigma _{ij}}=0 Σij?=σij?=0 說明第 i i i個變量和第 j j j個變量之間沒有線性相關性, n n n個服從正態分布且互不相關的獨立變量即是這種情況,互相都沒有線性相關性;
如果 Σ i j = σ i j ≠ 0 {\Sigma _{ij}}={\sigma _{ij}} \ne 0 Σij?=σij?=0則說明第 i i i個變量和第 j j j個變量之間存在線性相關性。


橢球

基本定義

在坐標系中橢球方程表示為:
( x ? x 0 ) 2 a 2 + ( y ? y 0 ) 2 b 2 + ( z ? z 0 ) 2 c 2 = 1 \frac{{{{\left( {x - {x_0}} \right)}^2}}}{{{a^2}}} + \frac{{{{\left( {y - {y_0}} \right)}^2}}}{{{b^2}}} + \frac{{{{\left( {z - {z_0}} \right)}^2}}}{{{c^2}}} = 1 a2(x?x0?)2?+b2(y?y0?)2?+c2(z?z0?)2?=1
橢球的中心位于空間中的某一點 ( x 0 , y 0 , z 0 ) \left( {{x_0},{y_0},{z_0}} \right) (x0?,y0?,z0?),其中, a a a b b b c c c分別是橢球沿 x x x y y y z z z軸方向的半軸長度。如果 a = b = c a=b=c a=b=c,則該圖形是一個球體。
當橢球中心點位于坐標原點 ( 0 , 0 , 0 ) (0, 0, 0) (0,0,0)時,標準橢球(中心位于原點且軸與坐標軸對齊的橢球)的方程可以表示為:
x 2 a 2 + y 2 b 2 + z 2 c 2 = 1 \frac{{{x^2}}}{{{a^2}}} + \frac{{{y^2}}}{{{b^2}}} + \frac{{{z^2}}}{{{c^2}}} = 1 a2x2?+b2y2?+c2z2?=1

一般二次形式

用二次方程來表示三維空間中任意位置、任意方向的橢球。這種形式可以涵蓋橢球的中心不在原點、主軸不與坐標軸對齊的情況。
主軸與坐標軸對齊的情況: 通過展開橢球方程,將其轉化為一個一般的二次曲面形式(即包含 x 2 x^2 x2 y 2 y^2 y2 z 2 z^2 z2、一次項和常數項的形式):

  • 展開平方項:
    ( x ? x 0 ) 2 a 2 = x 2 ? 2 x x 0 + x 0 2 a 2 \frac{{{{\left( {x - {x_0}} \right)}^2}}}{{{a^2}}} = \frac{{{x^2} - 2x{x_0} + {x_0}^2}}{{{a^2}}} a2(x?x0?)2?=a2x2?2xx0?+x0?2?
    ( y ? y 0 ) 2 b 2 = y 2 ? 2 y y 0 + y 0 2 b 2 \frac{{{{\left( {y - {y_0}} \right)}^2}}}{{{b^2}}} = \frac{{{y^2} - 2y{y_0} + {y_0}^2}}{{{b^2}}} b2(y?y0?)2?=b2y2?2yy0?+y0?2?
    ( z ? z 0 ) 2 c 2 = z 2 ? 2 z z 0 + z 0 2 c 2 \frac{{{{\left( {z - {z_0}} \right)}^2}}}{{{c^2}}} = \frac{{{z^2} - 2z{z_0} + {z_0}^2}}{{{c^2}}} c2(z?z0?)2?=c2z2?2zz0?+z0?2?
  • 整理為一般二次形式:
    x 2 a 2 + y 2 b 2 + z 2 b 2 ? 2 x x 0 a 2 ? 2 y y 0 b 2 ? 2 z z 0 c 2 + ( x 0 2 a 2 + y 0 2 b 2 + z 0 2 c 2 ) = 1 \frac{{{x^2}}}{{{a^2}}} + \frac{{{y^2}}}{{{b^2}}} + \frac{{{z^2}}}{{{b^2}}} - \frac{{2x{x_0}}}{{{a^2}}} - \frac{{2y{y_0}}}{{{b^2}}} - \frac{{2z{z_0}}}{{{c^2}}} + (\frac{{{x_0}^2}}{{{a^2}}} + \frac{{{y_0}^2}}{{{b^2}}} + \frac{{{z_0}^2}}{{{c^2}}}) = 1 a2x2?+b2y2?+b2z2??a22xx0???b22yy0???c22zz0??+(a2x0?2?+b2y0?2?+c2z0?2?)=1

一般二次形式的格式如下:
A x 2 + B y 2 + C z 2 + D x + E y + F z + G = 1 A{x^2} + B{y^2} + C{z^2} + Dx + Ey + Fz + G = 1 Ax2+By2+Cz2+Dx+Ey+Fz+G=1
橢球的中心位于空間中的某一點 ( x 0 , y 0 , z 0 ) \left( {{x_0},{y_0},{z_0}} \right) (x0?,y0?,z0?),對應地: A = 1 a 2 A = \frac{1}{{{a^2}}} A=a21? B = 1 b 2 B = \frac{1}{{{b^2}}} B=b21? C = 1 c 2 C = \frac{1}{{{c^2}}} C=c21? D = 2 x 0 a 2 D = \frac{{2{x_0}}}{{{a^2}}} D=a22x0?? E = 2 x 0 b 2 E = \frac{{2{x_0}}}{{{b^2}}} E=b22x0?? F = 2 x 0 z 2 F = \frac{{2{x_0}}}{{{z^2}}} F=z22x0?? G = ( x 0 2 a 2 + y 0 2 b 2 + z 0 2 c 2 ) G = (\frac{{{x_0}^2}}{{{a^2}}} + \frac{{{y_0}^2}}{{{b^2}}} + \frac{{{z_0}^2}}{{{c^2}}}) G=(a2x0?2?+b2y0?2?+c2z0?2?)
當橢球中心點位于坐標原點 ( 0 , 0 , 0 ) (0, 0, 0) (0,0,0)時:
A x 2 + B y 2 + C z 2 = 1 A{x^2} + B{y^2} + C{z^2} = 1 Ax2+By2+Cz2=1
主軸不與坐標軸對齊的情況(常見情形): 橢球中心點 ( x 0 , y 0 , z 0 ) {\rm{(}}{{\rm{x}}_0}{\rm{,}}{{\rm{y}}_0}{\rm{,}}{{\rm{z}}_0}{\rm{)}} (x0?,y0?,z0?)平移到原點,然后橢球經過繞 z z z軸旋轉 α \alpha α,繞 y y y軸旋轉 β \beta β,繞 x x x軸旋轉 γ \gamma γ

  • 中心點 ( x 0 , y 0 , z 0 ) {\rm{(}}{{\rm{x}}_0}{\rm{,}}{{\rm{y}}_0}{\rm{,}}{{\rm{z}}_0}{\rm{)}} (x0?,y0?,z0?)平移到坐標原點:
    x ′ = x ? x 0 y ′ = y ? y 0 z ′ = z ? z 0 \begin{array}{l} {x\prime} = x - {x_0}\\ {y\prime} = y - {y_0}\\ {z\prime} = z - {z_0} \end{array} x=x?x0?y=y?y0?z=z?z0??
  • z z z軸旋轉 α \alpha α,旋轉矩陣 R z ( α ) {R_{\rm{z}}}\left( \alpha \right) Rz?(α)
    R z ( α ) = [ cos ? α ? sin ? α 0 sin ? α cos ? α 0 0 0 1 ] {R_{\rm{z}}}\left( \alpha \right) = \left[ {\begin{array}{c} {\cos \alpha }&{ - \sin \alpha }&0\\ {\sin \alpha }&{\cos \alpha }&0\\ 0&0&1 \end{array}} \right] Rz?(α)= ?cosαsinα0??sinαcosα0?001? ?
    旋轉后的坐標 ( x ′ ′ , y ′ ′ , z ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime}{\rm{)}} (x′′,y′′,z′′)由坐標 ( x ′ , y ′ , z ′ ) {\rm{(}}{{\rm{x}}\prime}{\rm{,}}{{\rm{y}}\prime}{\rm{,}}{{\rm{z}}\prime}{\rm{)}} (x,y,z)計算得出:
    [ x ′ ′ y ′ ′ z ′ ′ ] = R x ( α ) [ x ′ x ′ x ′ ] \left[ {\begin{array}{c} {{x\prime\prime}}\\ {{y\prime\prime}}\\ {{z\prime\prime}} \end{array}} \right] = {R_x}\left( \alpha \right)\left[ {\begin{array}{c} {{x\prime}}\\ {{x\prime}}\\ {{x\prime}} \end{array}} \right] ?x′′y′′z′′? ?=Rx?(α) ?xxx? ?
    其中 ( x ′ ′ , y ′ ′ , z ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime}{\rm{)}} (x′′,y′′,z′′)的值分別為:
    x ′ ′ = x ′ cos ? α ? y ′ sin ? α y ′ ′ = x ′ sin ? α + y ′ cos ? α z ′ ′ = z ′ \begin{array}{l} {{x\prime\prime} = {x\prime}\cos \alpha - {y\prime}\sin \alpha }\\ {{y\prime\prime} = {x\prime}\sin \alpha + {y\prime}\cos \alpha }\\ {{z\prime\prime} = {z\prime}} \end{array} x′′=xcosα?ysinαy′′=xsinα+ycosαz′′=z?
  • y y y軸旋轉 β \beta β,旋轉矩陣 R y ( β ) {R_y}\left( \beta \right) Ry?(β)
    R y ( β ) = [ cos ? β 0 sin ? β 0 1 0 ? sin ? β 0 cos ? β ] {R_y}\left( \beta \right) = \left[ {\begin{array}{c} {\cos \beta }&0&{\sin \beta }\\ 0&1&0\\ { - \sin \beta }&0&{\cos \beta } \end{array}} \right] Ry?(β)= ?cosβ0?sinβ?010?sinβ0cosβ? ?
    旋轉后的坐標 ( x ′ ′ ′ , y ′ ′ ′ , z ′ ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime\prime}{\rm{)}} (x′′′,y′′′,z′′′)由原始坐標 ( x ′ ′ , y ′ ′ , z ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime}{\rm{)}} (x′′,y′′,z′′)計算得出:
    [ x ′ ′ ′ y ′ ′ ′ z ′ ′ ′ ] = R y ( β ) [ x ′ ′ y ′ ′ z ′ ′ ] \left[ {\begin{array}{c} {{x\prime\prime\prime}}\\ {{y\prime\prime\prime}}\\ {{z\prime\prime\prime}} \end{array}} \right] = {R_y}\left( \beta \right)\left[ {\begin{array}{c} {{x\prime\prime}}\\ {{y\prime\prime}}\\ {{z\prime\prime}} \end{array}} \right] ?x′′′y′′′z′′′? ?=Ry?(β) ?x′′y′′z′′? ?
    其中 ( x ′ ′ ′ , y ′ ′ ′ , z ′ ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime\prime}{\rm{)}} (x′′′,y′′′,z′′′)的值分別為:
    x ′ ′ ′ = x ′ ′ cos ? β + z ′ ′ sin ? β = ( x ′ cos ? α ? y ′ sin ? α ) cos ? β + z ′ sin ? β y ′ ′ ′ = y ′ ′ = x ′ sin ? α + y ′ cos ? α z ′ ′ ′ = ? x ′ ′ sin ? β + z 1 cos ? β = ? ( x ′ cos ? α ? y ′ sin ? α ) sin ? β + z ′ cos ? β \begin{array}{l} {{x\prime\prime\prime} = {x\prime\prime}\cos \beta + {z\prime\prime}\sin \beta = (x\prime\cos \alpha - y\prime\sin \alpha )\cos \beta + z\prime\sin \beta }\\ {{y\prime\prime\prime} = {y\prime\prime} = x\prime\sin \alpha + y\prime\cos \alpha }\\ {{z\prime\prime\prime} = - {x\prime\prime}\sin \beta + {z_1}\cos \beta = - (x\prime\cos \alpha - y\prime\sin \alpha )\sin \beta + z\prime\cos \beta } \end{array} x′′′=x′′cosβ+z′′sinβ=(xcosα?ysinα)cosβ+zsinβy′′′=y′′=xsinα+ycosαz′′′=?x′′sinβ+z1?cosβ=?(xcosα?ysinα)sinβ+zcosβ?
  • x x x軸旋轉 γ \gamma γ,旋轉矩陣 R z ( γ ) {R_z}\left( \gamma \right) Rz?(γ)
    R z ( γ ) = [ 1 0 0 0 cos ? γ ? sin ? γ 0 sin ? γ cos ? γ ] {R_z}\left( \gamma \right) = \left[ {\begin{array}{c} 1&0&0\\ 0&{\cos \gamma }&{ - \sin \gamma }\\ 0&{\sin \gamma }&{\cos \gamma } \end{array}} \right] Rz?(γ)= ?100?0cosγsinγ?0?sinγcosγ? ?
    旋轉后的坐標 ( x ′ ′ ′ ′ , y ′ ′ ′ ′ , z ′ ′ ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime\prime\prime}{\rm{)}} (x′′′′,y′′′′,z′′′′)由原始坐標 ( x ′ ′ ′ , y ′ ′ ′ , z ′ ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime\prime}{\rm{)}} (x′′′,y′′′,z′′′)計算得出:
    [ x ′ ′ ′ ′ y ′ ′ ′ ′ z ′ ′ ′ ′ ] = R z ( γ ) [ x ′ ′ ′ y ′ ′ ′ z ′ ′ ′ ] \left[ {\begin{array}{c} {{x\prime\prime\prime\prime}}\\ {{y\prime\prime\prime\prime}}\\ {{z\prime\prime\prime\prime}} \end{array}} \right] = {R_z}\left( \gamma \right)\left[ {\begin{array}{c} {{x\prime\prime\prime}}\\ {{y\prime\prime\prime}}\\ {{z\prime\prime\prime}} \end{array}} \right] ?x′′′′y′′′′z′′′′? ?=Rz?(γ) ?x′′′y′′′z′′′? ?
    其中 ( x ′ ′ ′ ′ , y ′ ′ ′ ′ , z ′ ′ ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime\prime\prime}{\rm{)}} (x′′′′,y′′′′,z′′′′)的值分別為:
    x ′ ′ ′ ′ = x ′ ′ ′ = ( x ′ cos ? α ? y ′ sin ? α ) cos ? β + z ′ sin ? β y ′ ′ ′ ′ = y ′ ′ ′ cos ? γ ? z ′ ′ ′ sin ? γ = ( x ′ sin ? α + y ′ cos ? α ) cos ? γ ? ( ? ( x ′ cos ? α ? y ′ sin ? α ) sin ? β + z ′ cos ? β ) sin ? γ z ′ ′ ′ ′ = y ′ ′ ′ sin ? γ + z ′ ′ ′ cos ? γ = ( x ′ sin ? α + y ′ cos ? α ) sin ? γ + ( ? ( x ′ cos ? α ? y ′ sin ? α ) sin ? β + z ′ cos ? β ) cos ? γ \begin{array}{l} {{x\prime\prime\prime\prime} = {x\prime\prime\prime} = (x\prime\cos \alpha - y\prime\sin \alpha )\cos \beta + z\prime\sin \beta }\\ {{y\prime\prime\prime\prime} = {y\prime\prime\prime}\cos \gamma - {z\prime\prime\prime}\sin \gamma = (x\prime\sin \alpha + y\prime\cos \alpha )\cos \gamma - ( - (x\prime\cos \alpha - y\prime\sin \alpha )\sin \beta + z\prime\cos \beta )\sin \gamma }\\ {{z\prime\prime\prime\prime} = {y\prime\prime\prime}\sin \gamma + {z\prime\prime\prime}\cos \gamma = (x\prime\sin \alpha + y\prime\cos \alpha )\sin \gamma + ( - (x\prime\cos \alpha - y\prime\sin \alpha )\sin \beta + z\prime\cos \beta )\cos \gamma } \end{array} x′′′′=x′′′=(xcosα?ysinα)cosβ+zsinβy′′′′=y′′′cosγ?z′′′sinγ=(xsinα+ycosα)cosγ?(?(xcosα?ysinα)sinβ+zcosβ)sinγz′′′′=y′′′sinγ+z′′′cosγ=(xsinα+ycosα)sinγ+(?(xcosα?ysinα)sinβ+zcosβ)cosγ?
    將坐標 ( x ′ , y ′ , z ′ ) {\rm{(}}{{\rm{x}}\prime}{\rm{,}}{{\rm{y}}\prime}{\rm{,}}{{\rm{z}}\prime}{\rm{)}} (x,y,z)轉化成 ( x , y , z ) ({\rm{x}},{\rm{y}},{\rm{z}}) (x,y,z)
    x ′ ′ ′ ′ = ( ( x ? x 0 ) cos ? α ? ( y ? y 0 ) sin ? α ) cos ? β + ( z ? z 0 ) sin ? β y ′ ′ ′ ′ = ( ( x ? x 0 ) sin ? α + ( y ? y 0 ) cos ? α ) cos ? γ ? ( ? ( ( x ? x 0 ) cos ? α ? ( y ? y 0 ) sin ? α ) sin ? β + ( z ? z 0 ) cos ? β ) sin ? γ z ′ ′ ′ ′ = ( ( x ? x 0 ) sin ? α + ( y ? y 0 ) cos ? α ) sin ? γ + ( ? ( ( x ? x 0 ) cos ? α ? ( y ? y 0 ) sin ? α ) sin ? β + ( z ? z 0 ) cos ? β ) cos ? γ \begin{array}{l} {{x\prime\prime\prime\prime} = ((x - {x_0})\cos \alpha - (y - {y_0})\sin \alpha )\cos \beta + (z - {z_0})\sin \beta }\\ {{y\prime\prime\prime\prime} = ((x - {x_0})\sin \alpha + (y - {y_0})\cos \alpha )\cos \gamma - ( - ((x - {x_0})\cos \alpha - (y - {y_0})\sin \alpha )\sin \beta + (z - {z_0})\cos \beta )\sin \gamma }\\ {{z\prime\prime\prime\prime} = ((x - {x_0})\sin \alpha + (y - {y_0})\cos \alpha )\sin \gamma + ( - ((x - {x_0})\cos \alpha - (y - {y_0})\sin \alpha )\sin \beta + (z - {z_0})\cos \beta )\cos \gamma } \end{array} x′′′′=((x?x0?)cosα?(y?y0?)sinα)cosβ+(z?z0?)sinβy′′′′=((x?x0?)sinα+(y?y0?)cosα)cosγ?(?((x?x0?)cosα?(y?y0?)sinα)sinβ+(z?z0?)cosβ)sinγz′′′′=((x?x0?)sinα+(y?y0?)cosα)sinγ+(?((x?x0?)cosα?(y?y0?)sinα)sinβ+(z?z0?)cosβ)cosγ?

( x ′ ′ ′ ′ , y ′ ′ ′ ′ , z ′ ′ ′ ′ ) {\rm{(}}{{\rm{x}}\prime\prime\prime\prime}{\rm{,}}{{\rm{y}}\prime\prime\prime\prime}{\rm{,}}{{\rm{z}}\prime\prime\prime\prime}{\rm{)}} (x′′′′,y′′′′,z′′′′)代入標準橢球方程:
x ′ ′ ′ ′ 2 a 2 + y ′ ′ ′ ′ 2 b 2 + z ′ ′ ′ ′ 2 c 2 = 1 \frac{{{x\prime\prime\prime\prime^2}}}{{{a^2}}} + \frac{{{y\prime\prime\prime\prime^2}}}{{{b^2}}} + \frac{{{z\prime\prime\prime\prime^2}}}{{{c^2}}} = 1 a2x′′′2?+b2y′′′2?+c2z′′′2?=1
總的旋轉矩陣為:
R = R x ( γ ) R y ( β ) R z ( α ) = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] = [ cos ? α cos ? β cos ? α sin ? β sin ? γ ? sin ? α cos ? γ cos ? α sin ? β cos ? γ + sin ? α sin ? γ sin ? α cos ? β sin ? α sin ? β sin ? γ + cos ? α cos ? γ sin ? α sin ? β cos ? γ ? cos ? α sin ? γ ? sin ? β cos ? β sin ? γ ? cos ? β cos ? γ ] R = {R_x}\left( \gamma \right){R_y}\left( \beta \right){R_z}\left( \alpha \right) = \left[ {\begin{array}{c} {{r_{11}}}&{{r_{12}}}&{{r_{13}}}\\ {{r_{21}}}&{{r_{22}}}&{{r_{23}}}\\ {{r_{31}}}&{{r_{32}}}&{{r_{33}}} \end{array}} \right] = \left[ {\begin{array}{c} {\cos \alpha \cos \beta }&{\cos \alpha \sin \beta \sin \gamma - \sin \alpha \cos \gamma }&{\cos \alpha \sin \beta \cos \gamma + \sin \alpha \sin \gamma }\\ {\sin \alpha \cos \beta }&{\sin \alpha \sin \beta \sin \gamma + \cos \alpha \cos \gamma }&{\sin \alpha \sin \beta \cos \gamma - \cos \alpha \sin \gamma }\\ { - \sin \beta }&{\cos \beta \sin \gamma }&{ - \cos \beta \cos \gamma } \end{array}} \right] R=Rx?(γ)Ry?(β)Rz?(α)= ?r11?r21?r31??r12?r22?r32??r13?r23?r33?? ?= ?cosαcosβsinαcosβ?sinβ?cosαsinβsinγ?sinαcosγsinαsinβsinγ+cosαcosγcosβsinγ?cosαsinβcosγ+sinαsinγsinαsinβcosγ?cosαsinγ?cosβcosγ? ?
展開并整理此方程,得到一般二次形式:
A x 2 + B y 2 + C z 2 + D x y + E x z + F y z + + G x + H y + I z + J = 0 A{{\rm{x}}^2} + B{y^2} + C{z^2} + Dxy + Exz + Fyz + + Gx + Hy + Iz + J = 0 Ax2+By2+Cz2+Dxy+Exz+Fyz++Gx+Hy+Iz+J=0
二次項系數:
A = r 11 2 a 2 + r 21 2 b 2 + r 31 2 c 2 B = r 12 2 a 2 + r 22 2 b 2 + r 32 2 c 2 C = r 13 2 a 2 + r 23 2 b 2 + r 33 2 c 2 \begin{array}{l} A = \frac{{r_{11}^2}}{{{a^2}}} + \frac{{r_{21}^2}}{{{b^2}}} + \frac{{r_{31}^2}}{{{c^2}}}\\ B = \frac{{r_{12}^2}}{{{a^2}}} + \frac{{r_{22}^2}}{{{b^2}}} + \frac{{r_{32}^2}}{{{c^2}}}\\ C = \frac{{r_{13}^2}}{{{a^2}}} + \frac{{r_{23}^2}}{{{b^2}}} + \frac{{r_{33}^2}}{{{c^2}}} \end{array} A=a2r112??+b2r212??+c2r312??B=a2r122??+b2r222??+c2r322??C=a2r132??+b2r232??+c2r332???
交叉項系數:
D = 2 ( r 11 r 12 a 2 + r 21 r 22 b 2 + r 31 r 32 c 2 ) E = 2 ( r 11 r 13 a 2 + r 21 r 23 b 2 + r 31 r 33 c 2 ) F = 2 ( r 12 r 13 a 2 + r 22 r 23 b 2 + r 32 r 33 c 2 ) \begin{array}{l} D = 2(\frac{{{r_{11}}{r_{12}}}}{{{a^2}}} + \frac{{{r_{21}}{r_{22}}}}{{{b^2}}} + \frac{{{r_{31}}{r_{32}}}}{{{c^2}}})\\ E = 2(\frac{{{r_{11}}{r_{13}}}}{{{a^2}}} + \frac{{{r_{21}}{r_{23}}}}{{{b^2}}} + \frac{{{r_{31}}{r_{33}}}}{{{c^2}}})\\ F = 2(\frac{{{r_{12}}{r_{13}}}}{{{a^2}}} + \frac{{{r_{22}}{r_{23}}}}{{{b^2}}} + \frac{{{r_{32}}{r_{33}}}}{{{c^2}}}) \end{array} D=2(a2r11?r12??+b2r21?r22??+c2r31?r32??)E=2(a2r11?r13??+b2r21?r23??+c2r31?r33??)F=2(a2r12?r13??+b2r22?r23??+c2r32?r33??)?
一次項系數:
G = ? 2 ( x 0 a 2 r 11 2 + y 0 b 2 r 21 2 + z 0 c 2 r 31 2 + x 0 b 2 ( 2 r 11 r 21 ) + x 0 c 2 ( 2 r 11 r 31 ) + y 0 a 2 ( 2 r 11 r 21 ) + y 0 c 2 ( 2 r 21 r 31 ) + z 0 a 2 ( 2 r 11 r 31 ) + z 0 b 2 ( 2 r 21 r 31 ) ) H = ? 2 ( x 0 a 2 r 12 2 + y 0 b 2 r 22 2 + z 0 c 2 r 32 2 + x 0 b 2 ( 2 r 12 r 22 ) + x 0 c 2 ( 2 r 12 r 32 ) + y 0 a 2 ( 2 r 12 r 22 ) + y 0 c 2 ( 2 r 22 r 32 ) + z 0 a 2 ( 2 r 12 r 32 ) + z 0 b 2 ( 2 r 22 r 32 ) ) G = ? 2 ( x 0 a 2 r 13 2 + y 0 b 2 r 23 2 + z 0 c 2 r 33 2 + x 0 b 2 ( 2 r 13 r 23 ) + x 0 c 2 ( 2 r 13 r 33 ) + y 0 a 2 ( 2 r 13 r 23 ) + y 0 c 2 ( 2 r 23 r 33 ) + z 0 a 2 ( 2 r 13 r 33 ) + z 0 b 2 ( 2 r 23 r 33 ) ) \begin{array}{l} G = - 2\left( {\frac{{{x_0}}}{{{a^2}}}r_{11}^2 + \frac{{{y_0}}}{{{b^2}}}r_{21}^2 + \frac{{{z_0}}}{{{c^2}}}r_{31}^2 + \frac{{{x_0}}}{{{b^2}}}(2{r_{11}}{r_{21}}) + \frac{{{x_0}}}{{{c^2}}}(2{r_{11}}{r_{31}}) + \frac{{{y_0}}}{{{a^2}}}(2{r_{11}}{r_{21}}) + \frac{{{y_0}}}{{{c^2}}}(2{r_{21}}{r_{31}}) + \frac{{{z_0}}}{{{a^2}}}(2{r_{11}}{r_{31}}) + \frac{{{z_0}}}{{{b^2}}}(2{r_{21}}{r_{31}})} \right)\\ H = - 2\left( {\frac{{{x_0}}}{{{a^2}}}r_{12}^2 + \frac{{{y_0}}}{{{b^2}}}r_{22}^2 + \frac{{{z_0}}}{{{c^2}}}r_{32}^2 + \frac{{{x_0}}}{{{b^2}}}(2{r_{12}}{r_{22}}) + \frac{{{x_0}}}{{{c^2}}}(2{r_{12}}{r_{32}}) + \frac{{{y_0}}}{{{a^2}}}(2{r_{12}}{r_{22}}) + \frac{{{y_0}}}{{{c^2}}}(2{r_{22}}{r_{32}}) + \frac{{{z_0}}}{{{a^2}}}(2{r_{12}}{r_{32}}) + \frac{{{z_0}}}{{{b^2}}}(2{r_{22}}{r_{32}})} \right)\\ G = - 2\left( {\frac{{{x_0}}}{{{a^2}}}r_{13}^2 + \frac{{{y_0}}}{{{b^2}}}r_{23}^2 + \frac{{{z_0}}}{{{c^2}}}r_{33}^2 + \frac{{{x_0}}}{{{b^2}}}(2{r_{13}}{r_{23}}) + \frac{{{x_0}}}{{{c^2}}}(2{r_{13}}{r_{33}}) + \frac{{{y_0}}}{{{a^2}}}(2{r_{13}}{r_{23}}) + \frac{{{y_0}}}{{{c^2}}}(2{r_{23}}{r_{33}}) + \frac{{{z_0}}}{{{a^2}}}(2{r_{13}}{r_{33}}) + \frac{{{z_0}}}{{{b^2}}}(2{r_{23}}{r_{33}})} \right) \end{array} G=?2(a2x0??r112?+b2y0??r212?+c2z0??r312?+b2x0??(2r11?r21?)+c2x0??(2r11?r31?)+a2y0??(2r11?r21?)+c2y0??(2r21?r31?)+a2z0??(2r11?r31?)+b2z0??(2r21?r31?))H=?2(a2x0??r122?+b2y0??r222?+c2z0??r322?+b2x0??(2r12?r22?)+c2x0??(2r12?r32?)+a2y0??(2r12?r22?)+c2y0??(2r22?r32?)+a2z0??(2r12?r32?)+b2z0??(2r22?r32?))G=?2(a2x0??r132?+b2y0??r232?+c2z0??r332?+b2x0??(2r13?r23?)+c2x0??(2r13?r33?)+a2y0??(2r13?r23?)+c2y0??(2r23?r33?)+a2z0??(2r13?r33?)+b2z0??(2r23?r33?))?
常數項:
J = x 0 2 a 2 + y 0 2 b 2 + z 0 2 c 2 ? 1 J = \frac{{x_0^2}}{{{a^2}}} + \frac{{y_0^2}}{{{b^2}}} + \frac{{z_0^2}}{{{c^2}}} - 1 J=a2x02??+b2y02??+c2z02???1


3D高斯橢球

3D高斯與橢球的關系

回顧了多維高斯和橢球的基礎知識,本小節終于到了解釋3D高斯明明是個分布,為什么可以是個橢球。

三維正態分布的概率密度函數可以表示為:
f ( [ x , y , z ] ) = 1 ( 2 π ) 3 ∣ Σ ∣ 1 2 e ? ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) 2 f\left( {[x,y,z]} \right) = \frac{1}{{{{\left( {\sqrt {2\pi } } \right)}^3}{{\left| \Sigma \right|}^{\frac{1}{2}}}}}{e^{ - \frac{{{{\left( {x - {\mu _x}} \right)}^T}{{(\Sigma )}^{ - 1}}\left( {x - {\mu _x}} \right)}}{2}}} f([x,y,z])=(2π ?)3Σ21?1?e?2(x?μx?)T(Σ)?1(x?μx?)?
μ \mu μ是均值向量, μ 1 \mu _1 μ1? μ 2 \mu _2 μ2? μ 3 \mu _3 μ3?分別是 x x x y y y z z z的均值:
μ = [ μ 1 μ 2 μ 3 ] \mu = \left[ {\begin{array}{c} {{\mu _1}}\\ {{\mu _2}}\\ {{\mu _3}} \end{array}} \right] μ= ?μ1?μ2?μ3?? ?
Σ \Sigma Σ是協方差矩陣,它是一個 3 × 3 3×3 3×3的矩陣, σ 1 2 \sigma _1^2 σ12? σ 2 2 \sigma _2^2 σ22? σ 3 2 \sigma _3^2 σ32?分別是 x x x y y y z z z的方差, σ 12 \sigma _{12} σ12? σ 13 \sigma _{13} σ13? σ 23 \sigma _{23} σ23?分別是 x x x y y y x x x z z z y y y z z z的協方差:
Σ = [ σ 1 2 σ 12 σ 13 σ 21 σ 2 2 σ 23 σ 31 σ 32 σ 3 2 ] \Sigma = \left[ {\begin{array}{c} {\sigma _1^2}&{{\sigma _{12}}}&{{\sigma _{13}}}\\ {{\sigma _{21}}}&{\sigma _2^2}&{{\sigma _{23}}}\\ {{\sigma _{31}}}&{{\sigma _{32}}}&{\sigma _3^2} \end{array}} \right] Σ= ?σ12?σ21?σ31??σ12?σ22?σ32??σ13?σ23?σ32?? ?
其中指數部分展開為:
( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) = ( x ? μ 1 ) 2 σ 1 2 + ( y ? μ 2 ) 2 σ 2 2 + ( z ? μ 3 ) 2 σ 3 2 ? 2 σ 12 ( x ? μ 1 ) ( y ? μ 2 ) σ 1 σ 2 ? 2 σ 13 ( x ? μ 1 ) ( ( z ? μ 3 ) ) σ 1 σ 3 ? 2 σ 23 ( y ? μ 2 ) ( ( z ? μ 3 ) ) σ 2 σ 3 {\left( {x - {\mu _x}} \right)^T}{(\Sigma )^{ - 1}}\left( {x - {\mu _x}} \right) = \frac{{{{\left( {x - {\mu _1}} \right)}^2}}}{{\sigma _1^2}} + \frac{{{{\left( {y - {\mu _2}} \right)}^2}}}{{\sigma _2^2}} + \frac{{{{\left( {z - {\mu _3}} \right)}^2}}}{{\sigma _3^2}} - \frac{{2{\sigma _{12}}\left( {x - {\mu _1}} \right)\left( {y - {\mu _2}} \right)}}{{{\sigma _1}{\sigma _2}}} - \frac{{2{\sigma _{13}}\left( {x - {\mu _1}} \right)\left( {\left( {z - {\mu _3}} \right)} \right)}}{{{\sigma _1}{\sigma _3}}} - \frac{{2{\sigma _{23}}\left( {y - {\mu _2}} \right)\left( {\left( {z - {\mu _3}} \right)} \right)}}{{{\sigma _2}{\sigma _3}}} (x?μx?)T(Σ)?1(x?μx?)=σ12?(x?μ1?)2?+σ22?(y?μ2?)2?+σ32?(z?μ3?)2??σ1?σ2?2σ12?(x?μ1?)(y?μ2?)??σ1?σ3?2σ13?(x?μ1?)((z?μ3?))??σ2?σ3?2σ23?(y?μ2?)((z?μ3?))?
因此,公式展開為:
f ( [ x , y , z ] ) = 1 ( 2 π ) 3 ∣ Σ ∣ 1 2 e ? 1 2 [ ( x ? μ 1 ) 2 σ 1 2 + ( y ? μ 2 ) 2 σ 2 2 + ( z ? μ 3 ) 2 σ 3 2 ? 2 σ 12 ( x ? μ 1 ) ( y ? μ 2 ) σ 1 σ 2 ? 2 σ 13 ( x ? μ 1 ) ( ( z ? μ 3 ) ) σ 1 σ 3 ? 2 σ 23 ( y ? μ 2 ) ( ( z ? μ 3 ) ) σ 2 σ 3 ] f\left( {[x,y,z]} \right) = \frac{1}{{{{\left( {\sqrt {2\pi } } \right)}^3}{{\left| \Sigma \right|}^{\frac{1}{2}}}}}{e^{ - \frac{1}{2}\left[ {\frac{{{{\left( {x - {\mu _1}} \right)}^2}}}{{\sigma _1^2}} + \frac{{{{\left( {y - {\mu _2}} \right)}^2}}}{{\sigma _2^2}} + \frac{{{{\left( {z - {\mu _3}} \right)}^2}}}{{\sigma _3^2}} - \frac{{2{\sigma _{12}}\left( {x - {\mu _1}} \right)\left( {y - {\mu _2}} \right)}}{{{\sigma _1}{\sigma _2}}} - \frac{{2{\sigma _{13}}\left( {x - {\mu _1}} \right)\left( {\left( {z - {\mu _3}} \right)} \right)}}{{{\sigma _1}{\sigma _3}}} - \frac{{2{\sigma _{23}}\left( {y - {\mu _2}} \right)\left( {\left( {z - {\mu _3}} \right)} \right)}}{{{\sigma _2}{\sigma _3}}}} \right]}} f([x,y,z])=(2π ?)3Σ21?1?e?21?[σ12?(x?μ1?)2?+σ22?(y?μ2?)2?+σ32?(z?μ3?)2??σ1?σ2?2σ12?(x?μ1?)(y?μ2?)??σ1?σ3?2σ13?(x?μ1?)((z?μ3?))??σ2?σ3?2σ23?(y?μ2?)((z?μ3?))?]
對于一個確定的三維高斯函數,其概率密度函數的取值范圍是有限的,最大值出現在均值點 x = μ {\rm{x = }}\mu x=μ,當 x x x遠離 μ \mu μ時函數值趨近于0。因此對應的 ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) {\left( {x - {\mu _x}} \right)^T}{(\Sigma )^{ - 1}}\left( {x - {\mu _x}} \right) (x?μx?)T(Σ)?1(x?μx?)取值范圍也是從0到一個具體的、有限的數值。當 ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) = c o n s t a n t {\left( {x - {\mu _x}} \right)^T}{(\Sigma )^{ - 1}}\left( {x - {\mu _x}} \right) = {\rm{constant }} (x?μx?)T(Σ)?1(x?μx?)=constant時,即在取值范圍內隨機取某個值 c o n s t a n t constant constant,可以定義某一個橢球面:
( x ? μ 1 ) 2 σ 1 2 + ( y ? μ 2 ) 2 σ 2 2 + ( z ? μ 3 ) 2 σ 3 2 ? 2 σ 12 ( x ? μ 1 ) ( y ? μ 2 ) σ 1 σ 2 ? 2 σ 13 ( x ? μ 1 ) ( ( z ? μ 3 ) ) σ 1 σ 3 ? 2 σ 23 ( y ? μ 2 ) ( ( z ? μ 3 ) ) σ 2 σ 3 = c o n s t a n t \frac{{{{\left( {x - {\mu _1}} \right)}^2}}}{{\sigma _1^2}} + \frac{{{{\left( {y - {\mu _2}} \right)}^2}}}{{\sigma _2^2}} + \frac{{{{\left( {z - {\mu _3}} \right)}^2}}}{{\sigma _3^2}} - \frac{{2{\sigma _{12}}\left( {x - {\mu _1}} \right)\left( {y - {\mu _2}} \right)}}{{{\sigma _1}{\sigma _2}}} - \frac{{2{\sigma _{13}}\left( {x - {\mu _1}} \right)\left( {\left( {z - {\mu _3}} \right)} \right)}}{{{\sigma _1}{\sigma _3}}} - \frac{{2{\sigma _{23}}\left( {y - {\mu _2}} \right)\left( {\left( {z - {\mu _3}} \right)} \right)}}{{{\sigma _2}{\sigma _3}}} = {\rm{constant}} σ12?(x?μ1?)2?+σ22?(y?μ2?)2?+σ32?(z?μ3?)2??σ1?σ2?2σ12?(x?μ1?)(y?μ2?)??σ1?σ3?2σ13?(x?μ1?)((z?μ3?))??σ2?σ3?2σ23?(y?μ2?)((z?μ3?))?=constant
因為展開整理,可以得到橢圓的一般二次形式:
A x 2 + B y 2 + C z 2 + D x y + E x z + F y z + + G x + H y + I z + J = 0 A{{\rm{x}}^2} + B{y^2} + C{z^2} + Dxy + Exz + Fyz + + Gx + Hy + Iz + J = 0 Ax2+By2+Cz2+Dxy+Exz+Fyz++Gx+Hy+Iz+J=0
因此 ( x ? μ x ) T ( Σ ) ? 1 ( x ? μ x ) {\left( {x - {\mu _x}} \right)^T}{(\Sigma )^{ - 1}}\left( {x - {\mu _x}} \right) (x?μx?)T(Σ)?1(x?μx?)在其取值范圍內可以構成無數個橢圓面,大橢球面套小橢球面,共同組成了一個實心橢球。每個橢圓面都可以計算出對應的概論密度值 f ( [ x , y , z ] ) = c o n s t a n t f\left( {[x,y,z]} \right) = {\rm{constant}} f([x,y,z])=constant,即橢球面上的所有坐標點的概論密度值。

各向同性(Isotropic)和各向異性(Anisotropic)

進一步深入探討各向同性和 各向異性在 3D高斯分布中的數學形式以及幾何表現。
各向同性高斯分布: 指在所有方向上具有相同的性質,數據在各個方向上的擴展程度(方差)相同,協方差為0,協方差矩陣:
Σ = [ σ 2 0 0 0 σ 2 0 0 0 σ 2 ] \Sigma = \left[ {\begin{array}{c} {{\sigma ^2}}&0&0\\ 0&{{\sigma ^2}}&0\\ 0&0&{{\sigma ^2}} \end{array}} \right] Σ= ?σ200?0σ20?00σ2? ?
三個維度之間無相關性(協方差為0),且方差一致。 對應的高斯分布在三維空間中呈現為一個球形。
各向異性高斯分布: 表示在不同方向上性質不同,數據在不同方向上的擴展程度(方差)不同,協方差可能不為0,協方差矩陣更一般化:
Σ = [ σ 1 2 σ 12 σ 13 σ 21 σ 2 2 σ 23 σ 31 σ 32 σ 3 2 ] \Sigma = \left[ {\begin{array}{c} {\sigma _1^2}&{{\sigma _{12}}}&{{\sigma _{13}}}\\ {{\sigma _{21}}}&{\sigma _2^2}&{{\sigma _{23}}}\\ {{\sigma _{31}}}&{{\sigma _{32}}}&{\sigma _3^2} \end{array}} \right] Σ= ?σ12?σ21?σ31??σ12?σ22?σ32??σ13?σ23?σ32?? ?
三個維度之間可能有相關性(協方差不為0),且方差互不一致。對應的高斯分布在三維空間中呈現為一個橢球體,即沿不同主軸方向拉伸或壓縮。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3Ddef plot_ellipsoid(ax, mean, cov, color='blue', n_points=100):"""在給定的axes上繪制一個基于協方差矩陣的橢球。"""# 生成單位球面點u = np.linspace(0, 2 * np.pi, n_points)v = np.linspace(0, np.pi, n_points)x = np.outer(np.cos(u), np.sin(v))y = np.outer(np.sin(u), np.sin(v))z = np.outer(np.ones_like(u), np.cos(v))# 協方差矩陣特征分解eigvals, eigvecs = np.linalg.eigh(cov)# 按特征值大小排序(從大到小)idx = np.argsort(eigvals)[::-1]eigvals = eigvals[idx]eigvecs = eigvecs[:, idx]# 構建縮放矩陣scale_matrix = np.diag(np.sqrt(eigvals))  # 取平方根得到標準差# 將單位球變換為橢球for i in range(len(x)):points = np.column_stack([x[i], y[i], z[i]])transformed = points @ (scale_matrix @ eigvecs.T) + meanx[i], y[i], z[i] = transformed[:, 0], transformed[:, 1], transformed[:, 2]# 繪制橢球ax.plot_surface(x, y, z, color=color, alpha=0.6, linewidth=0, antialiased=True)# 創建圖形和子圖
fig = plt.figure(figsize=(15, 7))# 各向同性橢球(球體)
ax1 = fig.add_subplot(121, projection='3d')
mean_iso = [0, 0, 0]
cov_iso = np.eye(3)
plot_ellipsoid(ax1, mean_iso, cov_iso, color='skyblue')# 設置坐標軸標簽
ax1.set_xlabel('X axis')
ax1.set_ylabel('Y axis')
ax1.set_zlabel('Z axis')
ax1.set_title('Isotropic Sphere')# 調整視角以正對Z軸
ax1.view_init(elev=90, azim=0)# 各向異性橢球
ax2 = fig.add_subplot(122, projection='3d')
mean_aniso = [0, 0, 0]
cov_aniso = np.array([[1, 0.5, 0.3],[0.5, 2, 0.4],[0.3, 0.4, 3]])
plot_ellipsoid(ax2, mean_aniso, cov_aniso, color='salmon')# 設置坐標軸標簽
ax2.set_xlabel('X axis')
ax2.set_ylabel('Y axis')
ax2.set_zlabel('Z axis')
ax2.set_title('Anisotropic Ellipsoid')# 調整視角以正對Z軸
ax2.view_init(elev=90, azim=0)plt.tight_layout()
plt.savefig("gaussian_distribution_visualizer.jpg", dpi=300, bbox_inches='tight')
plt.show()

總結

盡可能簡單、詳細的介紹了高斯橢球的形成原理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81413.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unix的定時任務和quartz和spring schedule的cron表達式區別

一、核心區別對比表 對比項Unix CrontabQuartzSpring Scheduled表達式位數5 位6 位或 7 位6 位秒級支持? 不支持(最小單位是分鐘)? 支持? 支持年字段? 無? 可選第7位? 不支持特殊符號支持較少(如 *, ,, -, /)很豐富和 Quar…

C++基礎算法————遞推

C++遞推:初學者的進階之旅 一、引言 在計算機編程的世界里,C++ 以其強大的功能和高效性受到眾多開發者的青睞。遞推作為一種重要的編程思想,在解決各種復雜問題時發揮著關鍵作用。對于初學者來說,理解并掌握遞推不僅可以提升編程能力,還能培養邏輯思維和問題解決能力。本…

QTabWidget垂直TabBar的圖標和文本水平顯示

一般情況下,我們可以通過QTabWidget的setTabPosition方法來設置TabBar的位置,比如設置在左邊 ui->tabWidget->setTabPosition(QTabWidget::West); 但是此時圖標和文字都是垂直的,如果讓它們水平顯示呢? 一.效果 二.原理 在繪制TabBar時,順時針旋轉90度 三.實現 …

HCIP-AI培養計劃,成為新時代AI解決方案架構高級工程師

01 華為認證是什么? 華為認證(Huawei Certification)是面向數字化時代構建的ICT人才培訓與認證體系。 當前超過68萬來自全球180多個國家和地區的各行業精英已經取得華為認證,如今全球每年超過10萬名學員通過考試獲得華為認證。 華…

【RabbitMQ】基于Spring Boot + RabbitMQ 完成應用通信

文章目錄 需求描述創建項目訂單系統(生產者)完善配置聲明隊列下單接口啟動服務 物流系統(消費者)完善配置監聽隊列啟動服務 格式化發送消息對象SimpleMessageConverter定義一個對象生產者代碼消費者運行程序 JSON定義一個對象生產者代碼定義轉換器消費者代碼運行程序 需求描述 …

OpenGL Chan視頻學習-7 Writing a Shader inOpenGL

bilibili視頻鏈接: 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函數網站: docs.gl 說明: 1.之后就不再整理具體函數了,網站直接翻譯會更直觀也會…

Vue 3.0中復雜狀態如何管理

在現代前端應用中,狀態管理扮演著至關重要的角色。一個良好的狀態管理方案能夠: 1. 保持應用數據的一致性和可預測性; 2. 簡化組件間的通信和數據共享; 3. 提高代碼的可維護性和可測試性; 4. 優化應用性能&#xf…

AGI大模型(33):LangChain之Memory

大多數的 LLM 應用程序都會有一個會話接口,允許我們和 LLM 進行多輪的對話,并有一定的上下文記憶能力。但實際上,模型本身是不會記憶任何上下文的,只能依靠用戶本身的輸入去產生輸出。而實現這個記憶功能,就需要額外的模塊去保存我們和模型對話的上下文信息,然后在下一次…

leetcode513. 找樹左下角的值:層序遍歷中的深度與順序控制之道

一、題目深度解析與核心訴求 在二叉樹的眾多問題中,尋找最深層最左節點的值是一個兼具趣味性與代表性的問題。題目要求我們在給定的二叉樹中,找到深度最大的那一層中最左邊的節點值。如果存在多個最深層,只需返回最左邊節點的值即可。 這個…

制作一款打飛機游戲54:子彈編輯UI

今天,我們將繼續工作在我們的子彈模式系統上,創建一些簡單的子彈,并為其設計用戶界面(UI)。 自動保存功能的重要性 首先,我想提一下自動保存功能。這個功能在編輯器中非常重要,因為我們經常犯…

線程封裝與互斥

目錄 線程互斥 進程線程間的互斥相關背景概念 互斥量mutex 互斥量的接口 初始化互斥量有兩種方法: 銷毀互斥量 互斥量加鎖和解鎖 改進售票系統 互斥量實現原理探究 互斥量的封裝 線程互斥 進程線程間的互斥相關背景概念 臨界資源:多線程執行流共…

【系統設計】2WTPS生產級數據處理系統設計Review

歡迎來到啾啾的博客🐱。 記錄學習點滴。分享工作思考和實用技巧,偶爾也分享一些雜談💬。 有很多很多不足的地方,歡迎評論交流,感謝您的閱讀與評論😄。 目錄 反正能用的系統問題分析方案一:簡單多…

歷年北京理工大學保研上機真題

2025北京理工大學保研上機真題 2024北京理工大學保研上機真題 2023北京理工大學保研上機真題 在線測評鏈接:https://pgcode.cn/problem?classification1 判斷身份證校驗位是否正確 題目描述 給定一個身份證號碼,判斷其最后一位校驗位是否正確。 如果…

uni-app學習筆記十--vu3綜合練習

鞏固提升前面學習的知識點,主要涉及下面這方面的運用: 1.v-for運用; 2.v-model雙向綁定; 3.confirm確認事件; 4.click點擊事件; 5.控制按鈕的可點擊和不可點擊; 6.集合刪除和追加元素,獲取集合元素的…

AI時代新詞-AI芯片(AI - Specific Chip)

一、什么是AI芯片? AI芯片(AI - Specific Chip)是指專為人工智能(AI)計算任務設計的芯片。與傳統的通用處理器(如CPU)相比,AI芯片針對深度學習、機器學習等AI應用進行了優化&#x…

華為云Astro前端頁面數據模型選型及綁定IoTDA物聯網數據實施指南

目錄 1. 選擇合適的數據模型類型及推薦理由 自定義模型: 對象模型: 服務模型: 事件模型: 推薦方案: 2. 數據模型之間的邏輯關系說明 服務模型獲取數據: 對象模型承接數據: 前端組件綁定顯示: 數據保存與反饋(可選): (可選)事件模型實時更新: 小結 …

因重新安裝python新版本,pycharm提示找不到python.exe(No Python at“c:\python.exe“)問題解決方法

1、安裝新版本python后提示錯誤如下: 2、打開設置 3、添加Interpreter 4、配置程序的安裝路徑 5、問題完美解決。

一文帶你徹底理清C 語言核心知識 與 面試高頻考點:從棧溢出到指針 全面解析 附帶筆者手寫2.4k行代碼加注釋

引言:C 語言的魅力與挑戰 從操作系統內核到嵌入式系統,從高性能計算到網絡編程,C 語言高效、靈活和貼近硬件的特性,始終占據著不可替代的地位。然而,C 語言的強大也伴隨著較高的學習曲線,尤其是指針、內存管…

GitHub 趨勢日報 (2025年05月22日)

本日報由 TrendForge 系統生成 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日整體趨勢 Top 10 排名項目名稱項目描述今日獲星總星數語言1microsoft/WSLLinux的Windows子系統? 2524? 26627C2HeyPuter/puter&#x1…

AI智能混剪核心技術解析(一):字幕與標題生成的三大支柱-字幕與標題生成-優雅草卓伊凡

AI智能混剪核心技術解析(一):字幕與標題生成的三大支柱-字幕與標題生成-優雅草卓伊凡 引言:文字到畫面的橋梁工程 在AI視頻混剪系統中,字幕與標題生成是連接語言表達與視覺呈現的核心樞紐。優雅草卓伊凡團隊將該功能拆…