

SDFStudio는 멋진 Nerfstudio 프로젝트 위에 구축 된 신경 암시 적 표면 재구성을위한 통합적이고 모듈 식 프레임 워크입니다. 우리는 Unisurf, Volsdf 및 Neus의 세 가지 주요 암시 적 표면 재구성 방법의 통일 된 구현을 제공합니다. SDFStudio는 또한 MLP, Tri-Plane 및 Multi-Res와 같은 다양한 장면 표현을 지원합니다. 기능 그리드 및 Unisurf와 같은 표면 유도 샘플링 및 Voxel-Surface 안내 샘플링과 같은 다중 점 샘플링 전략은 NeuralReconw에서 제공합니다. 또한 단안 신호 (MONOSDF), 기하학 정규화 (UNISURF) 및 멀티 뷰 일관성 (GEO-NEUS)과 같은 영역의 최근 발전을 통합합니다. 통합 및 모듈 식 구현 덕분에 SDFStudio는 아이디어를 한 방법에서 다른 방법으로 쉽게 전송할 수 있도록합니다. 예를 들어, Mono-Neus는 monoSDF에서 Neus로 아이디어를 적용하고 Geo-Volsdf는 Geo-Neus에서 Volsdf 에이 아이디어를 적용합니다.
2023 bakedangelo BakedSDF Neuralangelo
2023 neus-facto-angelo neus-facto Neuralangelo
2023.06.16 : Neuralangelo 지원.
2023.03.12 : BakedSDF 지원.
2022.12.28 : 신경 RGB-D 표면 재건을 지원합니다.
CUDA는 시스템에 설치해야합니다. 이 라이브러리는 버전 11.3으로 테스트되었습니다. CUDA 설치에 대한 자세한 정보는 여기에서 찾을 수 있습니다.
sdfstudio는 python >= 3.7 필요로합니다. Conda를 사용하여 종속성을 관리하는 것이 좋습니다. 진행하기 전에 콘다를 설치하십시오.
conda create --name sdfstudio -y python=3.8
conda activate sdfstudio
python -m pip install --upgrade pipCuda (이 리포지어는 Cuda 11.3으로 테스트되었습니다) 및 Tiny-Cuda-NN으로 Pytorch를 설치하십시오.
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install git+https://github.com/NVlabs/tiny-cuda-nn/ # subdirectory=bindings/torchgit clone https://github.com/autonomousvision/sdfstudio.git
cd sdfstudio
pip install --upgrade pip setuptools
pip install -e .
# install tab completion
ns-install-cli다음은 Neus-Facto 모델을 훈련 시키며
# Download some test data: you might need to install curl if your system don't have that
ns-download-data sdfstudio
# Train model on the dtu dataset scan65
ns-train neus-facto --pipeline.model.sdf-field.inside-outside False --vis viewer --experiment-name neus-facto-dtu65 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
# Or you could also train model on the Replica dataset room0 with monocular priors
ns-train neus-facto --pipeline.model.sdf-field.inside-outside True --pipeline.model.mono-depth-loss-mult 0.1 --pipeline.model.mono-normal-loss-mult 0.05 --vis viewer --experiment-name neus-facto-replica1 sdfstudio-data --data data/sdfstudio-demo-data/replica-room0 --include_mono_prior True모든 것이 작동하면 다음 교육 진행 상황이 표시됩니다.

터미널 끝에서 링크를 탐색하면 WebViewer (Nerfstudio가 개발)를로드합니다. 원격 컴퓨터에서 실행중인 경우 WebSocket 포트 (기본값을 7007)로 전달해야합니다. RTX3090 GPU를 사용하면 20k 반복에 ~ 15 분이 걸리지 만 WebViewer에서 2K 반복 후에는 이미 합리적인 재구성 결과를 볼 수 있습니다.

실행하여 사전에 사전 모델을로드 할 수도 있습니다.
ns-train neus-facto --trainer.load-dir {outputs/neus-facto-dtu65/neus-facto/XXX/sdfstudio_models} sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 이것은 자동으로 교육을 재개합니다. 훈련을 재개하지 않으려면 교육 명령에 --viewer.start-train False 추가하십시오. 명령 순서는 중요하고 DataParser 하위 명령은 모델 하위 명령을 따뜻하게해야합니다.
훈련 된 모델이 있으면 메쉬를 내보내고 메쉬를 렌더링 할 수 있습니다.
ns-extract-mesh --load-config outputs/neus-facto-dtu65/neus-facto/XXX/config.yml --output-path meshes/neus-facto-dtu65.ply ns-render-mesh --meshfile meshes/neus-facto-dtu65.ply --traj interpolate --output-path renders/neus-facto-dtu65.mp4 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
모든 것이 제대로 작동하면 다음 비디오를 얻게됩니다.
먼저 카메라가 따라야 할 경로를 만들어야합니다. 이것은 "렌더"탭에서 시청자에서 수행 할 수 있습니다. 3D보기를 비디오를 시작하려는 위치에 배향 한 다음 "카메라 추가"를 누릅니다. 이렇게하면 첫 번째 카메라 키 프레임이 설정됩니다. 카메라 경로를 만듭니다. 카메라 경로를 더 세분화하기 위해 다른 매개 변수를 제공합니다. 만족되면 "렌더"를 누르면 비디오를 렌더링하는 데 필요한 명령이 포함 된 모달을 표시합니다. 훈련 작업을 처치하거나 컴퓨팅이 많은 경우 새 터미널을 만드십시오)와 비디오를 생성하는 명령.
모든 비디오 내보내기 옵션 실행을 보려면 :
ns-render --help우리는 Neus-Facto 이외의 다른 많은 모델을 제공합니다. 문서를 참조하십시오. 예를 들어, 원래 Neus 모델을 훈련 시키려면 다음 명령을 사용하십시오.
ns-train neus --pipeline.model.sdf-field.inside-outside False sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 포함 된 모델의 전체 목록은 ns-train --help 실행합니다. 각 방법에 대한 자세한 설명은 문서를 참조하십시오.
각 모델에는 변경할 수있는 많은 매개 변수가 포함되어 있으며 여기에 나열하기에는 너무 많습니다. --help 명령을 사용하여 구성 옵션의 전체 목록을보십시오.
매개 변수 순서가 중요합니다! 예를 들어 --data 매개 변수 다음에 --machine.num-gpus 설정할 수 없습니다.
ns-train neus-facto --help
Nerfstudio는 시청자, 텐서 보드 및 웨이트 및 편견을 사용하여 교육 진행 상황을 추적하는 세 가지 방법을 지원합니다. 이 시각화 도구는 SDFStudio에서도 사용할 수 있습니다. 훈련 명령에 --vis {viewer, tensorboard, wandb} 추가하여 사용할 시각화를 지정할 수 있습니다. 한 번에 하나만 사용될 수 있습니다. 또한 시청자는 NeuS-facto-bigmlp 와 같은 느린 방법을 위해 빠른 방법 (예 : NeuS-facto 및 NeuS-acc )에 대해서만 작동합니다.
사용자 정의 데이터 세트를 사용하려면 데이터 세트 및 데이터 형식 문서를 참조하십시오.

이 라이브러리를 사용하거나 연구에 유용한 문서를 찾으면 다음을 고려하십시오.
@misc { Yu2022SDFStudio ,
author = { Yu, Zehao and Chen, Anpei and Antic, Bozidar and Peng, Songyou and Bhattacharyya, Apratim
and Niemeyer, Michael and Tang, Siyu and Sattler, Torsten and Geiger, Andreas } ,
title = { SDFStudio: A Unified Framework for Surface Reconstruction } ,
year = { 2022 } ,
url = { https://github.com/autonomousvision/sdfstudio } ,
}