生成AI 認識 応用

ガウシアンスプラッティングGaussian Splatting

色の染み数百万個で持つ3D場面

ポイント
  • ガウシアンスプラッティングは、複数の角度から撮った写真を集めて、空間に色の染み数百万個をまき散らす方式で3D場面を持ちます。
  • 染みひとつは、位置・大きさ・傾き・色・透明度を持つ小さくぼやけた楕円のかけらです。かけらが重なって見えると実際の場面のように見えます。
  • 画面に描くときはかけらを見る方向に平たく押しつぶしたあと、遠いものから順に重ね塗りします。計算が軽いのでリアルタイムで回して見られます。
  • 写真複数枚から場面を作る目的はNeRFと同じですが、結果を目に見えるかけらの塊として持つ点が違います。
  • かけらを直接選んで消したり動かしたりできるので編集がしやすい半面、ファイルが大きく撮っていない角度はまだらになります。
目次

1たとえで理解する

モザイク壁画を貼るときは色とりどりのタイルのかけらをひとつずつ乗せます。かけらひとつはただの色の塊ですが、数万個が場所を占めると離れて見たとき一枚の絵になります。

ガウシアンスプラッティングはこのタイルを壁ではなく空っぽの空間に浮かせて貼ります。かけらごとに置かれる場所と大きさ、傾く方向、色が決まっています。縁はナイフで切ったようにきっぱり分かれず、外側へ行くほど薄くなります。薄い縁同士が重なり合うので、かけらの間に隙間が見えません。

見る場所を動かすとかけらが新しく重なります。手前のかけらが奥のかけらを隠し、横に回ると平たかったかけらが細長くなります。タイルを貼り直しているのではなく、同じタイルの塊を別の場所から見ているだけです。

2くわしく

写真数枚からかけらの塊ができる

一つの対象を複数の角度から数十枚撮ることから始めます。まず写真同士を見比べてどの写真がどこで撮られたかカメラの位置を突き止めます。同じ角が複数の写真にまたがって現れることを手がかりに、撮影位置をたどり直すのです。

カメラの位置が定まると、空間にかけらを大まかにまいて始めます。最初はでたらめな場所にでたらめな色で置かれています。この状態で元の写真と同じ場所からかけらの塊を眺めた絵を作り、本物の写真とどれだけ違うか見比べます。

違えばその分かけらを動かし、大きさを変え、色を直します。これを数万回繰り返すとかけらが物体の表面にぴたりと張り付きます。人がかけらを貼るのではなく、写真がかけらの場所を決めているわけです。

かけらひとつが持つ値

かけらは球ではなく押しつぶされた楕円です。どの場所にあるか、どれくらい大きくどちらへ伸びているか、何色か、奥がどれくらい透けているかを値として持っています。

壁や床のような平らな面には、平たく押しつぶされたかけらが数個だけ置かれます。葉っぱや金網のように細かい枝が多い場所には、細かいかけらがびっしり集まります。かけらは必要なだけ自分で形を変えるので、単純な面には少なく、複雑な場所には多く使われます。

描くときは押しつぶして重ね塗り

画面に表示するときは、かけら一つひとつを見る方向に平たく押しつぶして画面に映します。そして遠いかけらから近いかけらの順に順番に重ね塗りします。手前のかけらが半透明なら奥の色が透けて混ざり、不透明なら奥は隠れます。

この方式は画面の点ごとに光の通ってきた道筋をたどって計算しないのでとても速いです。だからマウスで場面をぐるぐる回しても途切れません。リアルタイムで回して見られる点が、この方式が急速に広がった理由です。

かけらを増やし消して整える

作っている途中でかけらの数はずっと変わります。写真とうまく合わない場所ではかけらを二つに分けたり新しく一つ加えたりします。逆にほとんど透明になって何の役目もしていないかけらは消します。

作り終えるとかけらの数は場面によって数十万から数百万個に達します。かけらごとに値をいくつも持っているのでファイルもかなり大きくなります。反面、かけらが目に見える塊なので、あとで特定の部分だけ選んで消したり動かしたりする編集ができます。

NeRFと分かれる点

両方式とも写真複数枚からどの角度からも見られる場面を作ります。分かれるのは結果を何として持つかです。スプラッティングはかけらの塊という目に見える物として持ち、NeRFは空間の場所と方向を入れると光の値を返す計算規則として持っています。

だから画面に描く方法も違います。スプラッティングはかけらを押しつぶして重ね塗りし、NeRFは画面の点ごとに視線をまっすぐ伸ばしその線上の値を何度も尋ねます。尋ねる回数が多いほうが遅くなります。

3もう少し正確に

かけらひとつは3次元ガウシアン(Gaussian、中心が濃く外側へ行くほど薄くなる釣鐘型の分布)です。縁がきっぱり切れず徐々に薄くなる性質のおかげで、かけらが数個重なるだけで面が滑らかにつながります。画面に描くときはこの3次元分布をカメラ側へ押しつぶして平面分布にしたあと、遠いものから順に色と透明度を混ぜて積み上げます。

かけらの色はひとつに固定されていません。見る方向によって少しずつ違う色を出すよう方向ごとの値も一緒に持たせているため、金属やガラスに映る反射光もある程度再現されます。

たとえがずれるところもあります。モザイクタイルは人が図案を見て貼りますが、ここでは写真と結果の絵の差を減らす方向にかけらが自分で場所を動かします。タイルは不透明で互いに重ならないものの、かけらは半透明で何層にも重なります。そしてタイルは壁に固定された一枚の絵ですが、かけらの塊はどの角度から見るかによって毎回新しく描かれる場面です。

4やってみる

5よくある誤解

  • レーザーで点をひとつずつ打つ3Dスキャンだと思われがちですが、実際には普通の写真を何枚も見比べながらかけらを動かし増やし消す過程で作られます。

  • どの角度からも完璧に見えると思われがちですが、実際には写真を撮っていない角度ではかけらが割れて染みや浮遊するちりが現れます。

  • NeRFの別名だと思われがちですが、実際には場面を持たせておく方式も画面に描く方式も互いに違います。

7ひとこと要約

つまりガウシアンスプラッティングは写真複数枚から色の染み数百万個を空間に座らせ、どの角度から見てもその場で重なって見えるように描く3D場面の表現方式です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02