Skip to content

4D Gaussian Splatting for Real-Time Dynamic Scene Rendering

これなに

→動画を3D空間として書き出すことができる。

https://github.com/hustvl/4DGaussians

タスク

  • [ ] VR表示確認
  • [x] 撮影手法の確認
  • [ ] エクシーズでも撮影及びUnityなどで表示できるかの確認
  • [ ] LKGで表示できるかの確認

撮影手法

同じフレームで同じシーンを別々のアングルで撮った動画複数用意する。

→エクシーズでも撮影できるか

→上記のための撮影機材があればできる

環境構築

基本は以下の手順で行けます。

  1. リポジトリをクローン

    bash
    git clone https://github.com/hustvl/4DGaussians
    cd 4DGaussians
    git submodule update --init --recursive
  2. CondaでPython環境作成

    bash
    conda create -n Gaussians4D python=3.7
    conda activate Gaussians4D
  3. 必要ライブラリをインストール

    bash
    pip install -r requirements.txt
    pip install -e submodules/depth-diff-gaussian-rasterization
    pip install -e submodules/simple-knn

データセットをここからインストール

https://www.dropbox.com/scl/fi/cdcmkufncwcikk1dzbgb4/data.zip?rlkey=n5m21i84v2b2xk6h7qgiu8nkg&e=1&dl=0

ダウンロードフォルダから推奨位置に移動

csharp
cd %USERPROFILE%\4DGaussians
mkdir data
move "C:\Users\s-matsuzaki\Downloads\data\data" data\dnerf

実行

csharp
python train.py -s data\dnerf\bouncingballs --workspace runs\bouncingballs --iters 20000 --cuda_ray --fp16
  • 詳細な作業記録・当たったエラーと解決の過程

    • condaの認識ができてない

    condaは昔入れた記憶はあったけど、

    conda create -n Gaussians4D python=3.7

    のところでcondaが認識されなかった。

    なので、minicondaを入れなおした。

    https://www.anaconda.com/docs/getting-started/miniconda/main

    その状態でcmdから

    conda —version

    をしたけど、みつからなかった。

    ◦解決

    anacondapromptというアプリが一緒にインストールされていたので、そこからすると、

    conda —versionで見つかるようになった。

    pip install -e submodules/depth-diff-gaussian-rasterization

    を実行していると、エラーが出た。

    • RuntimeError: The detected CUDA version (12.4) mismatches … PyTorch (11.6) cuda11.6指定のシステムなのに、cuda12.4が先にダウンロードされていた。

      ◦解決

      CUDA_HOMEPATHCUDA 11.6 優先で上書き

      set "CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6"

      set "PATH=%CUDA_HOME%\bin;%CUDA_HOME%\libnvvp;%PATH%”

    • visualstudioのC++ビルドツールを見つけられない

      入っていなかったのでVisualStudioInstallerからMSVC v142 - VS 2019 C++ x64/x86 ビルドツールをインストール

      csharp
      set "VCToolsInstallDir=C:\Program Files\Microsoft VisualStudio\2022\Professional\VC\Tools\MSVC\14.29.30133\\
      set "PATH=%VCToolsInstallDir%bin\Hostx64\x64;%PATH%"

      これだけではみつけてくれなかったため、

      x64 native tools command prompt for vs 2019から開くことにしたが、2022版しか見つからなかったため、2022から続行。

      しかし、CUDAとMSVCのバージョン不適合が発生していて、そこで詰まって先に進まない。

      CUDAのバージョンは11.6で、適応するMSVCのバージョンは12.4以前なのですが、今見ているのはMSVC14.4らしい。

      結局12.4に戻すことになった。それに合わせてpythtorchをcu121ビルドに入れ替えた。

      その状態で新しい仮想環境を構築して再チャレンジしたが、エラーが出た。

      内容としては、

      error: asm operand type size(8) does not match type/size implied by constraint 'r’

      error: identifier "_addcarry_u64" is undefined

      ホスト側が 32 bit と誤認され、CUDA が 64 bit アセンブラ命令を展開してクラッシュ

      しているらしい。

      64 bit Python 3.10 + PyTorch 2.3.0( CUDA 12.1) + CUDA Toolkit 12.1 で x64 向けにビルドできる状態にする必要がある。

      明日はここからやる。7/9

      ◦解決まとめ

      VisualStudioInstallerからMSVC v142 - VS 2019 C++ x64/x86 ビルドツールをインストール

      x64 native tools command prompt for vs 2022から開く

      csharp
      CALL "%USERPROFILE%\AppData\Local\miniconda3\Scripts\activate.bat"
      conda create -n Gaussians4Dpy310 python=3.10 -y
      conda activate Gaussians4Dpy310
      
      //pytorch入れなおし
      pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121
      //cudaのパスをセット
      set "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1"
      set "PATH=%CUDA_PATH%\bin;%CUDA_PATH%\libnvvp;%PATH%"
      //vs環境の設定
      set DISTUTILS_USE_SDK=1
      
      cd %USERPROFILE%\4DGaussians
      //4dgaussiansのインストール?
      pip install -e submodules\depth-diff-gaussian-rasterization

      上記の方法でうまくいきました。

      この状態でsimpleknnを入れる。

    • 実行時、ModuleNotFoundError: No module named 'lpips’lpipsが入っていないといわれた

      • 解決
      csharp
      pip install lpips==0.1.4

      を実行してインストール

    • 実行時A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.2

      といわれた。

      ◦解決

      numpyを1.xに戻す必要がある。

      csharp
      pip install --force-reinstall "numpy<2

      を実行

    • CUDADLLの不在

      • 解決

      cuda.dllの所在をcmdから検索してパスをセットして解決。

    • Pytorchがcuda付きとして認識されていないためtypeerrorが生じている。

      pytorchを一回アンインストールして、もう一度インストールする。

    そもそも一年前がラストコミットのものなので、私の最新の環境でやろうとするとこんな感じでエラーだらけになる、

    今更だけど、gitに書いてある公式が検証してたやつを揃えます。そんなところ読んでなかった。よくない。

    仮想環境を一度崩して、もう一度作り直して実行することにした。

    今の環境

    Python: 3.7.12 Torch: 1.13.1+cu116 | torch.version.cuda = 11.6

    where nvcc C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc.exe

    echo CUDA_HOME = %CUDA_HOME% CUDA_HOME = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6


Author: 松崎 | Source: 松崎\4D Gaussian Splatting for Real-Time Dynamic Scene 229aba435ee7809c8805fb8fe315bd45.md