less than 1 minute read

동영상 촬영 후 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 사용법

  1. 윈도우에서 COLMAP.exe 실행
  2. Reconstruction -> Automatic reconstruction

    • Workspace folder: C:/Users/KHS/nerfs/data/output
    • Image folder: C:/Users/KHS/nerfs/data/images
  3. Run

output

image

  • dense
  • sparse
  • database.db

output/sparse/0

image

  • cameras.bin
  • images.bin
  • points3D.bin
  • project

    image

output/dense/0

image

  • images
  • sparse
  • stereo
  • fused.ply
  • fused.ply.vis
  • run-colmap-geometric
  • run-colmap-photometric

    image


3DGS 폴더 구성 및 Undistortion with 3DGS convert.py

image

  • 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만 하기 때문입니다.)

    image

최종 데이터 트리구조

  • input
  • distorted
  • images (input folder의 이미지들이 undistortion된 이미지들이 생성됨, 사이즈가 제 각각 다름)
    • 추후에 3dgs에 사용되는 RGB 이미지들은 readColmapSceneInfo에서 images 폴더에서 불러옵니다.

      image

      image

  • sparse (생성됨)
  • stereo (생성됨)
  • run-colmap-photometric.sh (생성됨)
  • run-colmap-geometric.sh (생성됨)

    image

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