Pytorch+Cuda의 Instant-NGP (NERF)는 Pytorch-Lightning ( 고속의 고품질 )으로 훈련됩니다. 이 repo는 향후 연구를 촉진하기 위해 간결한 Pytorch 인터페이스를 제공하는 것을 목표로하며, 공유 할 수 있다면 감사합니다 (그리고 인용이 높게 높이 평가됩니다).
다른 대표 비디오는 Gallery.md에 있습니다
이 구현에는 다른 라이브러리에 대한 종속성으로 인해 엄격한 요구 사항이 있습니다. 하드웨어/소프트웨어 불일치로 인해 설치 문제가 발생하면 다른 플랫폼을 지원할 의도가 없을 것 같습니다 (기여를 환영합니다).
git clone https://github.com/kwea123/ngp_pl 로이 repo를 복제하십시오
Python> = 3.8 (Anaconda를 통한 설치 권장, conda create -n ngp_pl python=3.8 사용하여 Conda 환경을 생성하고 conda activate ngp_pl )
파이썬 라이브러리
pip install torch==1.11.0 --extra-index-url https://download.pytorch.org/whl/cu113torch-scatter 설치하십시오tinycudann 설치하십시오 (Pytorch Extension)apex 설치하십시오pip install -r requirements.txt 으로 핵심 요구 사항을 설치하십시오 CUDA 확장 : pip > = 22.1로 업그레이드하고 pip install models/csrc/ (코드를 pull 때마다 실행하십시오)
NSVF에서 전처리 된 데이터 세트 ( Synthetic_NeRF , Synthetic_NSVF , BlendedMVS , TanksAndTemples )를 다운로드하십시오. 내 데이터 로더에 하드 코딩 된 수정이 있으므로 폴더 이름을 변경하지 마십시오 .
여기에서 데이터를 다운로드하십시오.
사용자 정의 데이터의 경우 colmap 실행하고 cameras.bin , images.bin 및 points3D.bin 이있는 폴더 sparse/0 을 가져옵니다. Colmap 형식의 다음 데이터도 지원됩니다.
여기에서 데이터를 다운로드하십시오. 훈련을 위해 HDR 이미지를 LDR 이미지로 변환하려면 python misc/prepare_rtmv.py <path/to/RTMV> 실행하면 각 장면 폴더 아래에서 images/ 폴더를 생성하고 이러한 이미지를 사용하여 훈련 (및 테스트)을 사용합니다.
QuickStart : python train.py --root_dir <path/to/lego> --exp_name Lego
레고 장면을 30k 단계 (8192 광선으로 각 단계)로 훈련시키고 끝에서 하나의 테스트를 수행합니다. 교육 프로세스는 약 5 분 이내에 완료해야합니다 (테스트 이미지 저장은 느리면 --no_save_test 추가하여 비활성화하십시오). PSNR 테스트는 마지막에 표시됩니다.
더 많은 옵션은 opt.py에서 찾을 수 있습니다.
다른 공개 데이터 세트 교육은 benchmarking 의 스크립트를 참조하십시오.
test.ipynb 사용하여 이미지를 생성하십시오. 레고 사전 제한 모델은 여기에서 사용할 수 있습니다
GUI 사용 : python show_gui.py 실행 한 다음 훈련에 사용되는 동일한 하이퍼 파라미터 ( dataset_name , root_dir 등)를 실행하고 --ckpt_path <path/to/.ckpt> 로 체크 포인트 경로를 추가하십시오.
나는 품질 ( Synthetic-NeRF 의 평균 테스트 PSNR)과 추론 속도 ( Lego 장면에서)와 동시 작업 토치 NGP (기본 설정)와 약 5 분 동안 교육을 비교했습니다.
| 방법 | AVG PSNR | fps | GPU |
|---|---|---|---|
| 토치 -NGP | 31.46 | 18.2 | 2080 ti |
| 내 거 | 32.96 | 36.2 | 2080 ti |
| 인스턴트 NGP 용지 | 33.18 | 60 | 3090 |
품질에 관해서는, 광산은 Torch-NGP보다 약간 낫지 만 결과는 다른 실행에 따라 변동될 수 있습니다.
속도에 관해서는, 광산은 Torch-NGP보다 빠르지 만 여전히 Instant-NGP만큼 빠르게 빠릅니다. 속도는 장면에 따라 다릅니다 (대부분의 장면이 비어 있으면 속도가 더 빠릅니다).




왼쪽 : 토치 -NGP. 오른쪽 : 내.
벤치 마크를 실행하려면 benchmarking 아래의 스크립트를 사용하십시오.
다음은 1 rtx 2080 ti를 사용하여 훈련 된 내 결과입니다 (여기서는 질적 결과).
| 마이크 | Ficus | 의자 | 핫도그 | 재료 | 드럼 | 배 | 레고 | avg | |
|---|---|---|---|---|---|---|---|---|---|
| PSNR | 35.59 | 34.13 | 35.28 | 37.35 | 29.46 | 25.81 | 30.32 | 35.76 | 32.96 |
| SSIM | 0.988 | 0.982 | 0.984 | 0.980 | 0.944 | 0.933 | 0.890 | 0.979 | 0.960 |
| LPIP | 0.017 | 0.024 | 0.025 | 0.038 | 0.070 | 0.076 | 0.133 | 0.022 | 0.051 |
| fps | 40.81 | 34.02 | 49.80 | 25.06 | 20.08 | 37.77 | 15.77 | 36.20 | 32.44 |
| 훈련 시간 | 3M9S | 3M12S | 4M17S | 5M53S | 4M55S | 4m7s | 9M20S | 5M5 | 5M00 |
| 와인 보유자 | 스팀 트레인 | 두꺼비 | 기계 인간 | 자전거 | 궁전 | 우주선 | 라이프 스타일 | avg | |
|---|---|---|---|---|---|---|---|---|---|
| PSNR | 31.64 | 36.47 | 35.57 | 37.10 | 37.87 | 37.41 | 35.58 | 34.76 | 35.80 |
| SSIM | 0.962 | 0.987 | 0.980 | 0.994 | 0.990 | 0.977 | 0.980 | 0.967 | 0.980 |
| LPIP | 0.047 | 0.023 | 0.024 | 0.010 | 0.015 | 0.021 | 0.029 | 0.044 | 0.027 |
| fps | 47.07 | 75.17 | 50.42 | 64.87 | 66.88 | 28.62 | 35.55 | 22.84 | 48.93 |
| 훈련 시간 | 3M58S | 3M44S | 7M22S | 3M25S | 3M11S | 6M45S | 3M25S | 4M56S | 4M36S |
| 이그나티우스 | 트럭 | 헛간 | 무한 궤도 | 가족 | avg | |
|---|---|---|---|---|---|---|
| PSNR | 28.30 | 27.67 | 28.00 | 26.16 | 34.27 | 28.78 |
| *FPS | 10.04 | 7.99 | 16.14 | 10.91 | 6.16 | 10.25 |
* test-traj 에서 평가
| *옥 | *분수 | 성격 | 조각상 | avg | |
|---|---|---|---|---|---|
| PSNR | 25.43 | 26.82 | 30.43 | 26.79 | 27.38 |
| ** FPS | 26.02 | 21.24 | 35.99 | 19.22 | 25.61 |
| 훈련 시간 | 6M31S | 7M15S | 4M50S | 5M57S | 6M48S |
*배경을 검은 색에서 흰색으로 수동으로 전환하므로 숫자는 논문의 숫자와 직접 비교할 수 없습니다.
** test-traj 에서 평가