[3D CV] COLMAP 사용법 & 3DGS COLMAP Data 구성
동영상 촬영 후 fps 설정하여 이미지를 먼저 추출
ffmpeg -i "C:/Users/KHS/nerfs/data/colmap/rgb_vid.mp4" -qscale:v 1 -qmin 1 -vf "scale=1280:720, fps=1" C:/Users/KHS/nerfs/data/colmap/FaceHS_10_views/images/%04d.jpg
COLMAP 사용법
- 윈도우에서 COLMAP.exe 실행
-
Reconstruction -> Automatic reconstruction
- Workspace folder: C:/Users/KHS/nerfs/data/output
- Image folder: C:/Users/KHS/nerfs/data/images
- Run
output
- dense
- sparse
- database.db
output/sparse/0
- cameras.bin
- images.bin
- points3D.bin
-
project
output/dense/0
- images
- sparse
- stereo
- fused.ply
- fused.ply.vis
- run-colmap-geometric
-
run-colmap-photometric
3DGS 폴더 구성 및 Undistortion with 3DGS convert.py
- input <– images 폴더의 이미지들 넣기
- distorted <– output/sparse, output/database.db 넣기
Undistort images for 3DGS using convert.py
Then run
python convert.py -s <location> --skip_matching [--resize] #If not resizing, ImageMagick is not needed
-
--skip_matching
인자를 꼭 넣어야 합니다. (여기서는 COLMAP info로 image Undistortion만 하기 때문입니다.)
최종 데이터 트리구조
- input
- distorted
- images (input folder의 이미지들이 undistortion된 이미지들이 생성됨, 사이즈가 제 각각 다름)
-
추후에 3dgs에 사용되는 RGB 이미지들은 readColmapSceneInfo에서 images 폴더에서 불러옵니다.
-
- sparse (생성됨)
- stereo (생성됨)
- run-colmap-photometric.sh (생성됨)
-
run-colmap-geometric.sh (생성됨)
3dgs image load 하는법
아래 코드를 순서대로 수정합니다.
gaussian_splatting/scene/dataset_readers.py
(read 하는 부분)gaussian_splatting/utils/camera_utils.py
(resize 및 torch.tensor로 바꾸는 부분)gaussian_splatting/scene/cameras.py
(cuda로 올리는 부분, 필요한 경우 normalize를 수행하는 부분)
Leave a comment