Slide 1

Slide 1 text

preencoded.png 3D Gaussian Splattingを 使ってみる その1 環境構築、WSL2 Ubuntu 20.04

Slide 2

Slide 2 text

preencoded.png はじめに 今回は3D Gaussian Splattingを利用するために、環境構築を行いました。スマートフ ォンのアプリとして提供されているScaniverseで3Dスキャンをして3Dモデルを作成し ていたのですが、その技術として3D Gaussian Splattingが利用されています。 NVIDIAのPhysical AIの発表でも3D Gaussian Splattingが取り上げられており、この技 術の重要性が高まっています。私が普段使っているiPhone 8ではScaniverseを利用で きないので、PCで実行したいなと思っています。 以前の記事では、iPhone 15 ProでScaniverseというアプリを使って3Dスキャンした データを、Unreal Engine 5(UE5)に取り込む方法を試していました。今回はPCでの 実行環境を構築することで、より広い範囲での3Dモデル再構築が可能になることを期 待しています。

Slide 3

Slide 3 text

preencoded.png 環境構築の概要 01 CUDAバージョンの変更 CUDA 11.8への切り替えを実施 02 Minicondaのインストール conda環境の構築 03 Gaussian Splattingのセットアップ リポジトリのダウンロードと環境作成 04 サンプルの実行 COLMAPを使った3Dモデル再構築 環境を構築するにあたってCUDAなどの依存があり、今回はWSL2のUbuntu環境で色々試して構築しました。WSL2のUbuntu 20.04は以前の記事で ダウンロードしています。

Slide 4

Slide 4 text

preencoded.png CUDAのバージョン変更 バージョン確認の重要性 READMEにはCUDA 11.8で確認しているとのことだったので、CUDA 11.8に 切り替えます。予めnvidia-smiで確認すると、CUDA 12.6がインストールさ れていました。 nvidia-smiで確認できるのはWindows側のCUDAのバージョンで、WSL2環境 のCUDAのバージョンはnvcc --versionで確認できるようです。異なるバージ ョンが入っていたりします。 CUDAのupdate-alternativesを利用する方法が良さそうだったのですが、今 回は試していません。CUDAのバージョン切り替えは今後必要になりそうな ので、別の機会にしっかり検証したいなと思っています。

Slide 5

Slide 5 text

preencoded.png CUDAインストール手順 既存パッケージの削除 元々入っていたものを削除します CUDA 11.8のインストール Ubuntu 20.04、CUDA 11.8用のパッケージをインストール 環境変数の設定 .bashrcに環境変数を追加して、ターミナルが起動したときに反映されるようにします バージョン確認 nvcc -Vまたはnvcc --versionでCUDAのバージョンを確認しました。11.8になっていました ChatGPTに相談しながらコマンドを実行していきました。最終的にCUDA 11.8への切り替えが成功しました。

Slide 6

Slide 6 text

preencoded.png Minicondaのインストール conda環境の構築 condaコマンドを実行するようだったので、今回はMinicondaをインストール しました。インストール方法は公式ページに書かれています。 Linuxのx86用のコマンドでインストールを行いました。インストール後、 condaの環境が有効化されています。 mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest- Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm ~/miniconda3/miniconda.sh

Slide 7

Slide 7 text

preencoded.png Gaussian Splattingのセットア ップ 1 リポジトリのダウンロード Gaussian Splattingのリポジトリをダウ ンロード git clone https://github.com/graphdeco- inria/gaussian-splatting -- recursive 2 conda環境の作成 conda環境を作成して有効化します conda env create --file environment.yml conda activate gaussian_splatting 3 環境の有効化 再度ターミナルを開いたときは、最後のコマンドを実行するとアクティベートされます

Slide 8

Slide 8 text

preencoded.png サンプルの実行 用意されていたCOLMAPを利用して、3Dモデルの再構築を試してみました。READMEの最初にリンクが載せられている、T&T+DB COLMAP (650MB)をダウンロードしました。 1 データのダウンロード T&T+DB COLMAPデータセット(650MB)を取得 2 処理の実行 7000と30000のiterationで処理が開始 3 結果の確認 outputフォルダにplyファイルが保存 実行ディレクトリにダウンロードしたフォルダを追加して、コマンドを実行しました。処理が始まり、7000と30000があるようです。処理が終了後 、outputフォルダに結果が保存されていました。plyファイルが3Dモデルです。

Slide 9

Slide 9 text

preencoded.png 結果の可視化と評価 SuperSplatでの確認 ブラウザで3D Gaussian Splatting形式のplyファイルを編集できる、 SuperSplatを利用して確認しました。 iteration_7000とiteration_30000の結果を比較しましたが、見た感じでは、 7000と30000でどこが違うのか分からないような感じでした。それよりも周 りの靄が目立つという印象です。 • iteration_7000: 初期段階の再構築結果 • iteration_30000: より多くの反復処理後の結果 • 両者の視覚的な差異は限定的 • 周辺のノイズ(靄)が課題として残る

Slide 10

Slide 10 text

preencoded.png まとめと今後の展望 達成したこと • WSL2 Ubuntu 20.04環境の構築 • CUDA 11.8への切り替え • Gaussian Splattingの実行環境構築 • サンプルデータでの動作確認 今後の課題 • より広い環境での3Dモデル再構築 • トリミング機能の改善 • 画像や動画からの再構築 • 周辺ノイズの低減 3D Gaussian SplattingをPCで実行できるようになったので、Scaniverseでスキャンしたときよりも広い環境に対して3Dモデルを再構築できるのか 気になるところです。Scaniverseは注視していないところのトリミングが楽で手軽だったのですが、PCでもこのあたりを改善しているツールはある のでしょうか。 サンプルは実行できたので、画像や動画に対する3Dモデルの再構築を試そうと思っています。