Priceless
LOD 3DGS 렌더링 본문
LOD 3DGS
https://github.com/zhaofuq/LOD-3DGS?tab=readme-ov-file
LetsGo는 논문 이름인 듯하다
레포지토리에 명시적으로 나와있지 않은 환경 세팅 값을 미리 설정하여
향후 디버깅하는 것을 최소화하도록 한다
Requirements
- CMake >= 3.24
기존의 CMake 버전이 낮거나 새로 설치해야 한다면 아래 링크를 참고한다
[Ubuntu] CMake 업데이트 하는 방법
nipa에서 지원 받은 서버에 카카오에서 딥러닝 기반으로 개발한 Khaiii 형태소 분석기를 설치하려고 하던 중 (PythonHome) ubuntu@nipa2020-0000:~/somjang-utils/khaiii/build$ cmake .. CMake Error at CMakeLists.txt:1 (cmake_min
somjang.tistory.com
CUDA
레포지토리에서는 CUDA 11.6을 사용하고 있다
CUDA 12 버전을 사용해야 한다면
environment.yml 을 설치한 이후
호환이 안되는 라이브러리에 대해 추가적으로 세팅한다
본인의 경우 simple_knn 과정에서 호환성 문제가 발생하여
가상환경에 들어온 후 다시 설치했다
conda activate lod-3dgs
pip install --no-cache-dir simple_knn
C++
본인은 c++11을 사용하고 있는데 수정해야 할 부분이 많았다
예를 들면 long 과 long long 를 사용할 때 max 함수에서 type error가 발생한다든지
레포지토리에 명시적으로 나와있지는 않았다
c++14부터 23까지 해도 같은 에러는 발생했는데
아직 c/c++에 대한 이해가 부족한 듯 하여 전부 타입을 맞췄다
설치
# clone repo
git clone https://github.com/zhaofuq/LOD-3DGS.git --recursive
# create a new python environment
conda env create --file environment.yml
conda activate lod-3dgs
# build PotreeConverter for Multi-Resolution Pointcloud, tested on windows
cd PotreeConverter
cmake . -B build
cmake --build build --config Release
cmake build 과정에서 많은 에러가 발생했다
에러를 해결하기 위해 많은 코드들을
디버깅에 따라 수정했다
CMakeLists.txt에서도 파일 링킹이 제대로 이루어지지 않아
일부 수정했다
unsuck/unsuck.hpp 파일 내에서 선언과 구현이 모두 되어 있어
빌드 마지막 과정에서 cpp 파일로 별도로 구분했다
제공된 Datasets 학습
기존에 있던 environment.yml 대로 진행한다면
diff-gaussian-rasterization 등등을 설치할 수 없다(저자들은 어떻게 한거지..)
그래서 트러블슈팅한 결과 다음 버전이 호환됐다
conda install python=3.11
conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia
pip install plyfile tqdm
cd ~/LOD-3DGS/
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
COLMAP식 데이터 저장
우선은 제공된 GarageWorld dataset을 사용한다
LOD-3DGS 디렉토리에 datasets이라는 폴더를 추가한 후
구글 디렉토리에 있는 zip 파일들을 하나씩 다운로드 받은 후 압축 해제한다
https://drive.google.com/drive/folders/1sO8XHeHum3oiKC0sd7ZIm8LUSYf7JuR9
파이썬 버전들을 맞추면 학습을 할 수 있는데
train.py 명령어 입력 과정에서 에러가 발생한다면
cmake 빌드부터 다시 해본다
리눅스에서 진행할 경우 exe 파일을 열 수 없어 에러가 발생하는데
dataset_readers.py에서 .exe를 지우는 등 디버깅을 진행한다
VRAM이 모자란 경우 resolution을 수정하며 시도해본다
본인은 VRAM이 16GB인 환경이라
resolution을 8로 설정해야 VRAM이 모자라지 않게 돌아갔다
python train.py --source_path datasets \
--use_lod \
--sh_degree 2 \
--depths depths \
--densification_interval 10000 \
--iterations 300000 \
--scaling_lr 0.0015 \
--position_lr_init 0.000016 \
--opacity_reset_interval 300000 \
--densify_until_iter 200000 \
--resolution 8
학습에 9시간 정도 소요되었다
이후 datasets/3D-Gaussian-Splatting 디렉토리에 scene별 렌더링 데이터가 형성되어 있다
렌더링 툴 설치 및 렌드링
이후 이런 식으로 scene 별 ID를 입력하여 렌더링을 할 수 있다
python render.py -m datasets/3D-Gaussian-Splatting/1d2fbc65-e -iteration 30000
렌더링을 하기 전 렌더링 툴을 설치해야 하는데
본인은 Ubuntu 22.04를 사용하므로
우분투 버전에 따른 명령어를 사용한다
# Dependencies
sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# Project setup
cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # add -G Ninja to build faster
cmake --build build -j24 --target install
빌드 과정에서 OpenGL을 잡지 못하여
우선은 Web viewer로 수행한다
웹 뷰어는 readme에 따라
vscode의 live-server 모듈을 사용하여
쉽게 확인할 수 있다
'Review > Project' 카테고리의 다른 글
360 Gaussian Splatting with PAIR360 dataset (0) | 2024.11.27 |
---|