Skip to main content

Mip-Splatting

Mip-Splatting は、3D Gaussian Splatting の aliasing と zoom artifact を緩和する改良です。Camera を training と異なる距離・解像度で動かしたときに、3DGS の rendering が不自然に shrink / blur することを抑えます。

何が問題だったのか

3DGS では、training 時の resolution と camera 距離に Gaussian の scale が暗黙に依存します。Test 時に zoom in / zoom out すると、

  • 細かい Gaussian が aliasing を起こす
  • Camera が遠ざかると Gaussian が消えたように見える

という問題が起きます。

二つの filter

Mip-Splatting は、次の二つの filter を導入します。

  • 3D smoothing filter: Gaussian の最大周波数を、training 時の sampling 周波数で制限する
  • 2D Mip filter: Image plane 上で適切な低域フィルタを適用する

これにより、camera が変わっても aliasing が起きにくくなります。

効果

  • Test 時の novel zoom level で artifact が減る
  • 細い structure の保持
  • AR / VR や FPV のような自由視点でも安定

数式で見る aliasing と footprint

Mip-Splatting の中心的な考え方は、pixel が一点ではなく有限の面積を持つことを考慮し、Gaussian の画像平面上の footprint を適切に積分することです。3D Gaussian の共分散を camera projection で画像平面に移すと、一次近似では次のようになります。

Σ2D=JΣ3DJ\boldsymbol{\Sigma}_{2D}=\mathbf{J}\boldsymbol{\Sigma}_{3D}\mathbf{J}^\top

ここで、J\mathbf{J} は projection function の Jacobian です。この式は、「三次元空間での Gaussian の広がりが、画像上ではどの方向にどれくらい広がって見えるか」を表します。

Aliasing は、画像上の footprint が pixel よりも小さくなりすぎると起こりやすくなります。そのため、pixel filter の分散 Σpix\boldsymbol{\Sigma}_{\mathrm{pix}} を足して、screen-space covariance を次のように扱います。

Σfilter=Σ2D+Σpix\boldsymbol{\Sigma}_{\mathrm{filter}} =\boldsymbol{\Sigma}_{2D}+\boldsymbol{\Sigma}_{\mathrm{pix}}

この式の気持ちは、「Gaussian を無限に鋭い点として描くのではなく、pixel の面積で平均された見え方として描く」というものです。遠景や縮小表示でのちらつきが減るのは、この footprint の扱いが安定するためです。

関連ページ

主なソース