お疲れ様です。
DSもくもく会運営部のS.Kです。
今回は「3D Gaussian Splatting」について紹介します。
3D Gaussian Splattingについて
紹介記事&Githubリンク
1. 3D Gaussian Splattingの使い方 (Windows環境構築)
2. gaussian-splatting (Github リポジトリ)
3D Gaussian Splattingとは?
まずは下記をご覧ください。
34台のGoProを使って3D Gaussian Splatting !
— Arata Fukoe (@Arata_Fukoe) October 18, 2023
浮いているものを止めたりなど、時空間を自由に移動できます⏰#GoPro pic.twitter.com/f4LWSjG2yV
こちらのアウトプットは3D Gaussian Splatting
という技術を用いて作成された3D写真です。
2020年にカルフォルニア大学がNeRF(Neural Radiance Fields)
というニューラルネットワークを使用し、複数の写真を合成し3次元形状を復元し、3Dモデルを作成する技術を開発しました。(☞参考)
このNeRFですが、レンダリングに時間が掛かり、その問題点を解消し高速なレンダリングを実現したのがこの3D Gaussian Splatting
です。
3D Gaussian Splattingは主にPythonで実装されており、PytorchやCUDAといった機械学習モデル構築やGPGPUライブラリーが使用されているようです。
NeRFはレンダリング時にも機械学習を使用しているのに対し、3D Gaussian Splattingは3D空間をガウシアン(☞ガウス関数)の集合として定義し、レンダリング時にはあらかじめ機械学習で学習された各パラメータを使用することで高速なレンダリングを実現しています。
詳細なNeRFとの違い、理論の概要は下記URLサイトに記載されておりますので参考にご覧ください。
参考:3D Gaussian Splatting : 複数視点の画像から3D空間を再現する最新手法
考察
用途としては下記のような例が挙げられます。
上記プロジェクトはlileaさんが手がける京都の清水寺周辺の街並みを当技術を用いてVRデジタルアーカイブとして保存するものとなります。
また来年にはAppleよりApple Vision Proが発売されることにより、空間コンピューティング
の時代が到来しようとしています。
上記で作成した3DモデルをUnity, もしくはUnreal Engineに取込み、Apple Vision ProのMRアプリケーションとしてリリースすることにより、「思い出をオブジェクトとして部屋に配置する」ということも可能になります。
Apple VisionProで3Dスキャンしたデータを表示しつつ同時に録音した音声を波形付きで再生してみた〜。思い出を空間保存して本棚に飾りたい。
— YORIMIYA (@jav6868) November 25, 2023
あと100万ポリゴンは流石に表示できなかったのでどこかで上限があるわ#VisionPro #PolySpatial #Unity #LumaAI pic.twitter.com/Ihl09vPOtL
難点としては「動作環境が重い」、「費用が掛かる」ところでしょうか。
現時点でVRAMの要求が24GBを求められており、自分が調べた限りですと「RTX4090」といった現時点(2023 12月時点)でハイエンドのGPUが該当します。
快適に本ライブラリーを使用するためには上記のようなRAM, VRAM共にハイエンド環境が必要であり、また写真撮影のための機材も必要と所で金銭面でかなりの費用が掛かるという面で気軽に使える技術ではないと思われます。
おわりに
今回は画像処理分野に関する技術紹介をさせて頂きました。
『データサイエンス』と聞くと一般的には「ExcelやDBに保存された数値データ等を処理する」というイメージが強いかもしれません。
しかしデータサイエンスで扱うデータはそういったものに関わらず、自分がこれから講義しようと思っている「自然言語で記載されたデータ」や「画像データ」といった現実のあらゆるものが対象となってきます。
今回のような技術, そしてApple Vision Proといったデバイスが普及すれば、今日の写真共有というあり方もまた激変してくるのではないでしょうか。
今後も最新技術を発信して参りますので、お時間があればお付き合いください。