삼각형 3D 모델, 재료 및 이미지에서 조명을 추출하는 논문에 설명 된 다중 뷰 이미지 관측에서 토폴로지, 재료 및 조명의 공동 최적화.
차별화 가능한 행진 사면체를 위해 Nvidia 's Kaolin : 3D 딥 러닝 연구를 가속화하기위한 Pytorch 라이브러리의 코드를 조정했습니다.
2023-10-20 : 우리는 수동으로 전방 및 후진 패스를 사용하여 Cuda 확장 대신 속어의 자동 조절 기능을 활용하기 위해 Slangpy로 작성된 Renderutils 라이브러리 버전을 추가했습니다. 이것은 이전과 동일한 런타임 성능으로 코드를 실질적으로 단순화합니다. 이 버전은이 repo의 slang 지점에서 사용할 수 있습니다.
2023-09-15 : Flexicubes Isosurfacing 기술에 대한 지원을 추가했습니다. 사용 예제는 구성 configs/bob_flexi.json 참조하고 자세한 내용은 Flexicubes 문서를 참조하십시오.
@inproceedings{Munkberg_2022_CVPR,
author = {Munkberg, Jacob and Hasselgren, Jon and Shen, Tianchang and Gao, Jun and Chen, Wenzheng
and Evans, Alex and M"uller, Thomas and Fidler, Sanja},
title = "{Extracting Triangular 3D Models, Materials, and Lighting From Images}",
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022},
pages = {8280-8290}
}
Copyright © 2022, Nvidia Corporation. 모든 권리 보유.
이 작업은 NVIDIA 소스 코드 라이센스에 따라 제공됩니다.
비즈니스 문의는 당사 웹 사이트를 방문하여 다음 양식을 제출하십시오 : NVIDIA Research Licensing.
Python 3.6+, VS2019+, CUDA 11.3+ 및 Pytorch 1.10+가 필요합니다
Python 3.9 및 Pytorch 1.10으로 Anaconda3에서 테스트
CUDA 툴킷을 설치하십시오 (Pytorch 확장을 구축하는 데 필요). 우리는 Cuda 11.3 이상을 지원합니다. 설치된 CUDA 툴킷과 호환되는 Pytorch의 적절한 버전을 선택하십시오. 아래는 CUDA 11.6의 예입니다
conda create -n dmodel python=3.9
activate dmodel
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge
pip install ninja imageio PyOpenGL glfw xatlas gdown
pip install git+https://github.com/NVlabs/nvdiffrast/
pip install --global-option="--no-networks" git+https://github.com/NVlabs/tiny-cuda-nn#subdirectory=bindings/torch
imageio_download_bin freeimage
activate dmodel
우리의 접근 방식은 많은 양의 메모리를 가진 고급 NVIDIA GPU를 위해 설계되었습니다. 미드 레인지 GPU에서 실행하려면 .json 파일의 배치 크기 매개 변수를 줄입니다.
간단한 속 1 재구성 예 :
python train.py --config configs/bob.json
교육 진행 상황을 시각화합니다 (Windows에서만 지원) :
python train.py --config configs/bob.json --display-interval 20
Multi GPU 예제 (Linux 만. 실험 : 종이의 모든 결과는 단일 GPU를 사용하여 생성 ), Pytorch DDP를 사용합니다.
torchrun --nproc_per_node=4 train.py --config configs/bob.json
아래에는 출발점과 최종 결과가 표시됩니다. 오른쪽에 대한 참조.


결과는 out 폴더에 저장됩니다. Spot과 Bob 모델은 Keenan Crane에 의해 공개 도메인으로 생성되어 방출되었습니다.
예제 포함
spot.json 스팟 모델의 3D 모델 추출. 이미지 관찰의 형상, 재료 및 조명.spot_fixlight.json 위와 동일하지만 알려진 환경 조명을 가정합니다.spot_metal.json 재료의 공동 학습 및 고주파 환경 조명의 예 스플릿 - 스섬을 보여줍니다.bob.json 속 1 모델의 간단한 예. 또한 논문의 주요 결과를 재현하기위한 구성 ( nerf_*.json , nerd_*.json )을 추가로 포함합니다. 우리는 각자의 저자가 제공하는 타사 데이터 세트에 의존합니다. 개별 라이센스는 각 데이터 세트에 적용됩니다. 모든 데이터 세트를 자동으로 다운로드하여 사전 처리하려면 download_datasets.py 스크립트를 실행하십시오.
activate dmodel
cd data
python download_datasets.py
아래는 데이터 세트를 수동으로 설치하는 방법에 대한 자세한 정보 및 지침을 다음과 같습니다 (자동 스크립트가 실패한 경우).
NERF 합성 데이터 세트 우리의보기 보간 결과 원래 NERF 용지의 합성 데이터 세트를 사용하십시오. 수동으로 설치하려면 NERF 합성 데이터 세트 아카이브를 다운로드하여 nvdiffrec/data 폴더로 압축하십시오. nerf_*.json 구성을 실행하는 데 필요합니다.
괴상한 데이터 세트 우리는 실제 사진 측량과 부정확 한 (수동으로 주석이 달린) 세분화 마스크를 특징으로하는 괴상한 용지의 데이터 세트를 사용합니다. git을 사용하여 괴상한 데이터 세트를 복제하고 스크립트 scale_images.py 사용하여 512 x 512 픽셀 해상도로 재생하십시오. 이는 nerd_*.json 구성을 실행하는 데 필요합니다.
activate dmodel
cd nvdiffrec/data/nerd
git clone https://github.com/vork/ethiopianHead.git
git clone https://github.com/vork/moldGoldCape.git
python scale_images.py
cd docker
./make_image.sh nvdiffrec:v1
대화식 Docker 컨테이너 시작 : docker run --gpus device=0 -it --rm -v /raid:/raid -it nvdiffrec:v1 bash
분리 된 docker : docker run --gpus device=1 -d -v /raid:/raid -w=[path to the code] nvdiffrec:v1 python train.py --config configs/bob.json