3D Gaussian Splattingを使ってみる その5(GS2Meshの環境構築、WSL2 Ubuntu 22.04)

はじめに

 今回は改めてGS2Meshの環境を構築してみました。

 これまでの記事でWSL2のUbuntu 22.04を複数インストールできるようにして、CUDAのバージョンも切り替えできるようにしました。これを踏まえて、GS2Meshを実行するためだけの環境として構築してみます。

 他にも3D Gaussian Splatting (3DGS) 系のソフトウェアは同じようなバージョンに対応していたりするので、色々検証したいと思っています。

▼以前の記事はこちら

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

はじめに  今回は3D Gaussian Splattingを利用するために、環境構築を行いました。  スマートフォンのアプリとして提供されているScaniverseで3Dスキャンをして3Dモデル…

3D Gaussian Splattingを使ってみる その3(GS2Meshの環境構築とメッシュモデルの作成、WSL2 Ubuntu 20.04)

はじめに  今回はGS2Meshを用いたメッシュモデルの作成を試してみました。  これまでの記事で試していた3D Gaussian Splatting (3DGS)が利用されています。実際にゲーム…

GS2Meshの環境を構築する

 前回3DGSの環境を構築したときはデスクトップPCだったのですが、今回はゲーミングノートPCで、GPUの性能は劣ります。

▼PCは10万円ぐらいで購入したゲーミングノートPCを利用しています。Windows 11の環境です。

ちょっと買い物:新しいノートPCとSSDの増設(ASUS TUF Gaming A15)

はじめに  今回はこれまで使っていたPCが壊れたので買い替えましたという話です。  以前はよく分からないGPUが載っていたノートPCを使っていたのですが、最近はUnreal E…

▼新しくインストールした、WSL2 Ubuntu 22.04の環境で実行していきます。

WSL2を使ってみる その5(同じバージョンのディストリビューションを複数インストール、Ubuntu 22.04)

はじめに  今回はWSL2で同じバージョンのUbuntu環境をもう一つインストールしました。  元々インストールしていたWSL2のUbuntu 22.04の環境を壊したくなかったので、別…

▼CUDAのバージョンは、環境変数で11.8に変更済みです。

複数のCUDAのバージョンを切り替える(WSL2 Ubuntu 22.04)

はじめに  今回はWSL2 Ubuntu 22.04の環境で、CUDAのバージョンの切り替えについて試してみました。  以前3D Gaussian Splatting (3DGS) の環境を構築するために、元々…

 コマンドはこれまでの記事の内容をもとに実行していきます。まずはMinicondaをインストールします。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ~/Miniconda3-latest-Linux-x86_64.sh
source .bashrc

 今回はインストール時にInitializationをスキップしたのですが、コマンドでも環境を有効化できました。

▼pyenvのようにminiconda3/bin/activateを実行してみたら、conda環境が有効になりました。

 GS2Meshの環境を有効化します。

git clone https://github.com/yanivw12/gs2mesh.git
cd gs2mesh
conda create --name gs2mesh python=3.8
conda activate gs2mesh
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 cudatoolkit=11.8 colmap -c pytorch -c nvidia -c conda-forge
pip install -r requirements.txt

 他にも重みに関するものをダウンロードしておきました。

cd ~/gs2mesh/third_party/DLNR
mkdir pretrained
cd pretrained
wget https://github.com/David-Zhao-1997/High-frequency-Stereo-Matching-Network/releases/download/v1.0.0/DLNR_Middlebury.pth
wget https://github.com/David-Zhao-1997/High-frequency-Stereo-Matching-Network/releases/download/v1.0.0/DLNR_SceneFlow.pth

cd ~/gs2mesh/third_party/segment-anything-2/checkpoints
wget https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt

cd ~/gs2mesh/third_party/GroundingDINO
mkdir weights
cd weights
wget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

動画ファイルから3Dモデルを生成する

 今回もこれまでと同じく、私のハニワの動画ファイルをもとに3Dモデルを生成します。

▼こちらの30秒ほどの動画です。

 gs2mesh/data/customフォルダにHaniwaフォルダを作成し、Haniwa.mp4を入れました。

cd ~/gs2mesh
mkdir ./data/custom -p

▼WindowsではエクスプローラのLinuxのところから、WSL2環境のフォルダにアクセスできます。

 以前の記事と同じく、以下のコマンドを実行してみました。

python run_single.py --colmap_name Haniwa --video_extension mp4 --GS_iterations 7000  --video_interval 6  --TSDF_voxel 4 --TSDF_sdf_trunc 0.08

▼メッシュの出力までの処理は、問題なく実行されているようでした。

▼しかし、3DGSの出力ファイルをSuperSplatで確認してみると、処理に失敗しているようでした。

 動画ファイルから抽出した画像などを確認すると、明らかに画像が少なくなっていました。

▼imagesフォルダに3枚しかありません。

▼images_rawフォルダには以前と同じく、156枚入っていました。

 カメラ位置の推定時などに、不要な画像として省かれたのだと思います。--skip_maskingオプションを追加することで、この問題を回避できました。

 最終的には、以下のコマンドで実行することができました。

python run_single.py --colmap_name Haniwa --video_extension mp4 --GS_iterations 7000  --video_interval 6 --skip_masking

▼以前と同じ3DGSの出力が得られました。

 メッシュ化したモデルも、問題なく出力されていました。

▼Windowsの3Dビューアーで確認できました。

▼MeshLabで取り込んでみたら、色付きで表示されていました。

最後に

 これでWSL2のUbuntu環境ごと新しく構築して、実行することができました。今後も環境構築する際に役立てていこうと思っています。

 GS2Meshが出力するメッシュモデルの形式はplyファイルで、Unreal Engineなどのゲームエンジンに取り込む際にはobjファイルやfbxファイルの方が都合がいいです。次は色も反映されたモデルのインポートについて試したいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です