Trikang
NeRF LLFF dataset을 3D Gaussian Splatting의 Input으로 넣기 본문
기본적으로 NeRF LLFF 데이터 셋은 3D-GS에서 동작하지 않는다. LLFF 데이터 셋은 SIMPLE_RADIAL 카메라 모델을 사용하고 있는 . 것같다.
PINHOLE or SIMPLE_PINHOLE -> undistorted dataset
AssertionError: Colmap camera model not handled: only undistorted datasets (PINHOLE or SIMPLE PINHOLE cameras) supported!
그래서 아래와 같은 가공 절차를 거쳐서 작동하도록 수정했다.
기존 llff 데이터 셋에 대해 COLMAP을 이용한 가공 진행
image_undistorter를 이용해서 3D-GS가 읽을 수 있는 카메라 모델로 변경. 아래는 fern 데이터에 대한 가공 예시
colmap image_undistorter --image_path datasets/nerf_llff_data/fern/images --input_path datasets/nerf_llff_data/fern/sparse/0 --output_path datasets/nerf_llff_data/processed/fern --output_type COLMAP
그러면 output 디렉토리에 images, sparse, stereo ... 등이 생성되었을 것이며, sparse 디렉토리 안에는 cameras.bin, images.bin, point3D.bin 파일이 존재할 것이다.
sparse 디렉토리 수정
여기에서 sparse 디렉토리 안에 0이라는 이름의 디렉토리를 추가로 생성한 후, 해당 0 디렉토리 안으로 cameras.bin, images.bin, point3D.bin 파일을 이동시키자.
그럼 최종 결과물이 아래와 같을 것이다
이제 3D Gaussian Splatting으로 구동시켜보면 작동한다.
참고
https://github.com/graphdeco-inria/gaussian-splatting/issues/303
https://github.com/colmap/colmap/issues/2449
https://colmap.github.io/cli.html
https://github.com/graphdeco-inria/gaussian-splatting/issues/272
'공부 > ML' 카테고리의 다른 글
Comments