📷

AWS上でのGaussian Splattingのモデル生成

2023/10/15に公開

AWS上でGaussian Splattingのモデル生成手順を確認しましたので、ここにメモします。

各コマンドの行頭の意味は下記のとおりです。
%はローカルでのコマンド
$はインスタンスでのコマンド

環境構築

AWSのインスタンス作成

AWSで下記のインスタンスを作成。Gaussian Splattingの環境としてGPUメモリ 24GB必要とされているためg5を選択。
インスタンスタイプ : g5.xlarge
AMI : Ubuntu 22.04 - NICE DCV with NVIDIA Tesla GPU Driver
Disk : 256 GB

SSHでインスタンスに入る

???.pemは接続用のプライベートキー。x.x.x.xはインスタンスのグローバルIP
% ssh -i ???.pem ubuntu@x.x.x.x

CUDA 11.8のインストール

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb
$ sudo apt-get update
$ sudo apt-get -y install cuda-11-8
$ echo export PATH="/usr/local/cuda-11.8/bin:$PATH" >> ~/.bashrc
$ echo export LD_LIBRARY_PATH="/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc
$ echo export CUDA_PATH="/usr/local/cuda-11.8/" >> ~/.bashrc
$ source ~/.bashrc

COLMAPの依存ライブラリのインストール

$ sudo apt-get -y install git cmake ninja-build build-essential libboost-program-options-dev libboost-filesystem-dev libboost-graph-dev libboost-system-dev libeigen3-dev libflann-dev libfreeimage-dev libmetis-dev libgoogle-glog-dev libgtest-dev libsqlite3-dev libglew-dev qtbase5-dev libqt5opengl5-dev libcgal-dev libceres-dev gcc-10 g++-10 imagemagick

COLMAPのビルドとインストール

$ git clone https://github.com/colmap/colmap.git
$ cd colmap
$ mkdir build
$ cd build
$ export CC=/usr/bin/gcc-10
$ export CXX=/usr/bin/g++-10
$ export CUDAHOSTCXX=/usr/bin/g++-10
$ cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES=86
$ ninja
$ sudo ninja install

Anacondaのインストール

$ wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
$ bash Anaconda3-2023.09-0-Linux-x86_64.sh # Enter, accept -> yes, Enter, auto initialize -> no
$ echo source ~/anaconda3/etc/profile.d/conda.sh >> ~/.bashrc
$ source ~/.bashrc

Gaussian SplattingのPython環境構築

$ git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
$ cd gaussian-splatting
$ conda env create --file environment.yml

Gaussian Splattingによるモデル生成

対象データをローカルからインスタンスにコピー

% scp -i ???.pem dataset.zip ubuntu@x.x.x.x:
$ unzip dataset.zip
インスタンス上の下記パスに画像列が配置されるようにする。
~/dataset/input/*.jpg

Python環境のアクティベート

$ conda activate gaussian_splatting

COLMAPによる前処理(画像の歪み補正、カメラ姿勢算出)

$ python convert.py -s ~/dataset

Gaussian Splattingの生成

$ python train.py -s ~/dataset

結果をインスタンスからローカルにコピー

$ zip -r output.zip output
% scp -i ???.pem ubuntu@x.x.x.x:gaussian-splatting/output.zip .

Discussion