世界を動かす技術を、日本語で。

マクロガウシアンスプラッツ

概要

Gaussian splatは、ぼやけた楕円体を使った3D写真技術。 マクロ被写体、特に昆虫の毛や複雑な構造に最適。 マクロ撮影の浅い被写界深度は課題となるが、フォーカススタッキングで解決。 撮影から処理、モデル生成までの詳細なワークフロー。 完成モデルはCC BYライセンスで公開、商用利用も可能。

Gaussian Splatとマクロ被写体への応用

  • Gaussian splat は、 ぼやけた楕円体 (splat)を多数配置し、3D空間を構築する技術
  • 各splatは 視点依存の色 を持ち、AIモデルのトレーニングのように最適化
  • 写真を多数入力 することで、任意の角度から閲覧可能な 3D写真 を生成
  • 昆虫 などの毛や複雑な構造を持つ被写体に最適な手法

マクロ撮影における課題

  • マクロ撮影では 被写界深度が極端に浅い ため、全体がシャープな画像の取得が困難
  • ピントが合っていない写真 を使うと、3Dモデルにもボケが反映されてしまう

フォーカススタッキングによる解決策

  • 一つの角度から ピント位置をずらして多数撮影、全体がシャープな写真を合成する フォーカススタッキング を活用
  • 通常は 1スタックあたり50〜500枚 だが、効率化のため 16枚 に最適化
  • f/18の小絞り で撮影し、被写界深度を最大化
  • 絞りによる 回折現象 は後処理で最小化可能

撮影プロセスの詳細

  • 昆虫標本を 回転台 に設置、カメラを ブームアーム で上下に傾けて撮影
  • スクリプト制御 で回転台を一定角度ずつ回転
  • WeMacro自動フォーカスレール でスタック撮影を自動化
  • 垂直角度調整は手動 (8回のみ)、工数は少なめ
  • 合計 111視点 を撮影、総写真枚数 1776枚、撮影時間 約4時間
    • Nikon D810 使用、連写バッファの制約で1〜2秒/枚
    • Tamron 90mmレンズ+20mmエクステンション、DXモードで撮影
    • より短いレンズだと視点間のパース変化が大きくなり、画像アライメントが困難

データ処理と3Dモデル生成

  • バッチでフォーカススタッキング を実行、 111枚の完全にシャープな画像 を作成
  • COLMAP でカメラ位置を再構築
  • 色補正背景マスキング を実施
  • Postshot でデータをトレーニングし、Gaussian splatモデルを生成
  • 取り付け用の支柱などは 最小限のレタッチ で除去

公開・ライセンス情報

  • superspl.atページ で3D昆虫モデルを公開
  • cluster flyモデルCC BYライセンス で無料配布

まとめ

  • Gaussian splatは マクロ被写体の3D化 に有効
  • フォーカススタッキング と自動化撮影で高精度なデータ取得が可能
  • オープンライセンス でモデルを公開、幅広い用途に活用可能

Hackerたちの意見

https://youtu.be/wEiBxHOGYps

これっていつ作られたの?YouTubeの動画は14年前だけど、少なくとも10年は古く感じるね。

これめっちゃすごい!マクロ写真とガウススプラッティングを組み合わせるなんて思いつかなかったよ。無料のカルチャーファイルとして公開してくれて、感謝してる!(CC BY)

焦点距離に依存したガウススプラットのフィッティングに関する研究ってあるのかな?要するにボケをモデル化する方法として、未処理のショットを与えたら、どこでもシャープなモデルが返ってくるって感じ。

これに取り組んでるグループがいくつかあるよ: https://dof-gs.github.io/ https://dof-gaussian.github.io/

どうやって反射(ハエの体の虹色)をキャッチしてるの?反射越しに背景が見える気がする。反射が方向によって色が違うから、ガウススプラット生成が全ての光線を満たす解決策を見つけるのは難しいと思ってた。少なくとも、反射面はちゃんと反射してるんじゃなくて、濁った感じになるんじゃないかな。ここで何か巧妙なトリックがあるのか、それともガウススプラッティングについて何か勘違いしてるのかな?

FTAによれば、「ガウススプラットは基本的にぼやけた楕円体の集まり。各々が視点依存の色を持っている」ってことだけど、これで説明になる?

ガウススプラッティングは視点方向に依存する色成分を持つことがあるよ。私の知る限りでは、球面調和関数として実装されてる。角度の解像度は球面調和成分の数で決まるんだ。これが低すぎると、反射の変化が遅くて滑らかになっちゃって、反射がぼやけてしまう。

色は視点依存だから、ライティングがベイクされてて、そのまま3Dアニメーションや環境に使うのは難しいんだよね(動的ライティングの研究はあると思うけど)。近づきすぎると、体の一部がちょっと透明に見えたりすることもある。実際、スペキュラーハイライトが内部の表面の後ろにあるスプラッツになってるから。鏡なんかは特に顕著で、ただの逆投影だから、そのまま歩き込めちゃう。

ここにある「SHによる視点依存の色」のセクションを見てみて: https://towardsdatascience.com/a-comprehensive-overview-of-g...

すごいね。ウェブサイトについてのフィードバックだけど、暗い灰色の背景に黒い文字はどうなの?リーダーモードを使わないと読めなかったよ。

俺は君とは逆の体験をしてるよ。このウェブサイトは、メガネをかけててもぼやけずにハッキリ読める数少ないサイトの一つなんだ。

インタラクティブな回転デモが、ブラウザでリアルタイムにスマホで動くなんてすごい!ガウススプラッツはレンダリングするのにそんなに高くないのかな、計算するのは大変そうだけど。

あのハチは、今まで見た中で最も印象的なコンピュータグラフィックスの一つだよ。しかも、マクロ写真としても素晴らしい。リアルタイムでレンダリングされるってのが驚きだね。最近ここでPS6についての話があったけど、もしまだゲームやコンソールの制作に関わってたら、こういうアセットをどう取り入れるか真剣に考えるだろうな。

ガウススプラッツは、一般的なビデオゲームに必要な柔軟性を提供しないんだ。真のPBRじゃないから、ライティングがちょっとハードコーディングされてるし、リギングもうまくいかない。編集もすごく難しい。何かを単体で可視化するにはいいけど、シーンを作るには向いてないね。

最近「マトリックス」を再訪するのに使ったよ: https://www.youtube.com/watch?v=iq5JaG53dho&t=1412

大好き! https://superspl.at/view?id=ac0acb0e これ、名前が間違ってると思う。

指摘してくれてありがとう、修正したよ。

すごい結果だね。Lytro Illumを使って、フォーカススタッキングの代わりに一発で各角度をキャッチできるのかな?それともIllumの出力は解像度が足りないのかな?

それがうまくいったら最高だね。好奇心から言うと、なんでダメってわけでもなさそうだし。もうちょっと調べてみるよ。教えてくれてありがとう!