일단 instant-NGP를 빌드해놓은 프로그램을 받아서 돌리는건 해봤다. 그런데 나는 내가 가진 이미지에 이걸 적용해보고 싶다.
그러려면 colmap 프로세스를 돌린 후에, 이걸 nerf 형태로 변환을 시켜줘야 한다.
이걸 지원하는 스크립트가 제공되는데 바로 colmap2nerf.py 파일이 있는데,
이걸 바로쓰지는 못하고
폴더 구조를 맞춰 줘야 한다.
그 과정에서 text 는 camera.bin 같은 데이터를 요구하는데, 이건 colmap의 함수를 이용해서 처리가 가능하다.
colmap model_converter --input_path ./archer/sparse/0/ --output_path ./archer/sparse/0/ --output_type TXT
이걸 돌리고 나면 txt 파일도 생성이 되고,
colmap2nerf.py를 잘 실행시키면
이런 결과가 나온다. 이제 이걸 돌릴 수 있는걸까?
미리 빌드해둔 버전을 받았으니 해당 폴더를 환경변수에 등록해주고
를 실행시키니
이미지를 못찾길래 \\를 모두 /로 변경해준 후 실행해본다. 그래도 안된다. 원인이 뭘까.....
확인해보니 transform.json 파일의 위치를 기준으로 폴더가 생성되었어야한다는거다..
내가 타겟으로 삼은 object의 폴더로 들어가서 script를 호출하면 해결이 된다.
요런 폴더구조일 떄,
python ../scripts/colmap2nerf.py --colmap_db distorted/database.db --images images --text sparse/0/txt --out transforms.json --overwrite
이런식으로 실행하는 방식으로!
자 이제 씬이 만들어진거 같다.
실행해본다.
빠르기는 엄청 빠르다...
바운딩박스 잘 맞춰주면 꽤나 빠르고 디테일하다.
매시 출력 기능이 있어서, 이것도 적용해보니 이런 결과가 나왔다.
3D 스캔 쉬운것 같아도 참 어렵다...