Author: Jihwa Lee
Date: 2023/01/17
3D Reconstruction에 대해 관심을 가진지는 꽤나 많은 시간이 흘렀지만 이제야 본격적으로 살펴보게 되었습니다.
2023 CES를 둘러보면서 NeRF 관련 기술을 사용해 앱을 만든 기업이 있었는데,
그 곳에도 어떤 모델을 사용하였는지 물어보니 Instant-ngp NeRF를 사용했다고 하더라고요.
그래서 직접 환경 세팅해서 돌려보게 되었습니다.
저의 환경은 다음과 같습니다.
Ubuntu 18.04
GeForce GTX 1080 Ti x2
cuda 11.1. + cuDNN 8.0.5.
https://github.com/NVlabs/instant-ngp
GitHub - NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more
Instant neural graphics primitives: lightning fast NeRF and more - GitHub - NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more
github.com
Github에서 나온 절차대로 따라가보겠습니다.
가상 환경 생성
# inst-ngp라는 가상환경 먼저 생성해주겠습니다.
conda create -n inst-ngp python=3.7
CMake 설치
github의 Requirements 중 CMake v3.21을 충족시키기 위해 설치를 해보겠습니다.
단순히 pip install cmake로 설치할 경우 v3.21보다 낮은 버전이 깔려 홈페이지에서 다운해 진행하였습니다.
Download | CMake
Current development distribution Each night binaries are created as part of the testing process. Other than passing all of the tests in CMake, this version of CMake should not be expected to work in a production environment. It is being produced so that us
cmake.org

바로 다운하셔도 되지만 원하는 위치에 파일 다운을 하고 싶으시다면 wget 을 이용하면 됩니다.
# cd로 원하는 폴더로 이동한 이후
# cmake 홈페이지에서 원하는 파일을 우클릭하여 링크를 복사한다.
# 파일 다운 후 압축 풀기
wget https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz
tar -xvf cmake-3.25.1.tar.gz
# 설치
cd cmake-3.25.1
./bootstrap && make && sudo make install
위 명령어가 아무런 오류가 없다면 다행이지만

저처럼 오류가 날 수 있습니다.
저와 같은 오류라면 당황하지 마시고
sudo apt install libssl-dev
를 이용해 필요한 library를 설치해주고 다시 오류가 났던 명령어를 실행하시면 정상적으로 설치가 완료됩니다.
설치가 제대로 되었는지 확인하기 위해 아래 명령어를 입력하시고 버전이 제대로 출력되면 정상적으로 설치가 된 것입니다.
cmake --version

실행해보기
git clone --recursive https://github.com/nvlabs/instant-ngp
cd instant-ngp
cmake . -B build
cmake --build build --config RelWithDebInfo -j
# 아래 명령으로 nerf 학습을 실행시킬 수 있다.
./instant-ngp data/nerf/fox


제 기준으로 step 500이 약 1분 조금 넘게 걸리는데 저 정도 퀄리티라는게 대단합니다.
물론 Target FPS를 높이면 품질이 많이 떨어집니다..!
Demo를 실행해봤으니 실질적으로 어떻게 학습을 시키는지, NeRF와 얼마나 차이가 많이나는지 등 좀 더 학술적인 내용을 다뤄볼 예정입니다.