zju3dv/ENeRF

SIGGRAPH Asia 2022: Code for "Efficient Neural Radiance Fields for Interactive Free-viewpoint Video"

ENeRF – 인터랙티브 자유 시점 영상용 효율적인 신경 렌지안스 필드

무엇인가요

  • 효율적인 신경 렌지안스 필드(ENeRF)의 연구용 구현체로, NeRF 기반 시점 합성을 가속화하여 인터랙티브(약 20–50 FPS) 자유 시점 영상 구현이 가능하게 합니다.
  • 정적 장면(DTU, NeRF 합성/LLFF)과 동적 인간 캡처(ZJU-MoCap)를 포함하여, 저자들이 공개한 실외 데이터셋까지 지원합니다.

주요 기능

  • DTU 다중 시점 데이터셋에서 일반화 가능한 ENeRF 모델 학습.
  • 특정 장면(예: DTU 스캔, ZJU-MoCap 시퀀스, ENeRF-Outdoor "actor1" 데이터)에 대한 피니튜닝.
  • 표준 지표(PSNR, SSIM, LPIPS, 깊이 오차)를 통한 평가 및 실시간 렌더링 속도 보고.
  • 인간 캡처를 위한 선택적 GUI를 통한 인터랙티브 렌더링.

설치 (README에서)

  1. conda 환경 생성
    conda create -n enerf python=3.8
    conda activate enerf
    
  2. PyTorch 1.9.0 (CUDA 11.1) 및 관련 패키지 설치:
    pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 \
        -f https://download.pytorch.org/whl/torch_stable.html
    
  3. 나머지 Python 종속성 설치
    pip install -r requirements.txt
    
  4. 워크스페이스 디렉터리 설정 (데이터셋, 체크포인트, 결과가 저장될 위치):
    export workspace=$PATH_TO_YOUR_WORKSPACE
    

데이터셋 및 사전 학습 모델

  • DTU (사전 처리된 다중 시점 데이터) – 베이스라인 모델과 피니튜닝에 필수.
  • NeRF 합성 및 LLFF – 표준 NeRF 벤치마크 평가에 사용.
  • ZJU-MoCap – 인터랙티브 GUI에 사용되는 인간 캡처 데이터.
  • ENeRF-Outdoor – 저자들이 공개한 새로운 실외 데이터셋.
  • 사전 학습된 DTU 모델$workspace/trained_model/enerf/dtu_pretrain/latest.pth에 다운로드하여 배치할 수 있습니다.

일반적인 워크플로우

  1. 학습 (DTU에서 일반화 가능한 모델):
    python train_net.py --cfg_file configs/enerf/dtu_pretrain.yaml
    
    torch.distributed를 통해 멀티 GPU 학습을 지원합니다.
  2. 피니튜닝 (특정 스캔, 예: DTU 스캔 114):
    cd $workspace/trained_model/enerf
    mkdir dtu_ft_scan114
    cp dtu_pretrain/138.pth dtu_ft_scan114
    cd $codespace   # ENeRF 코드가 포함된 디렉터리
    python train_net.py --cfg_file configs/enerf/dtu/scan114.yaml
    
    README에 따르면 i9-12900K + RTX 3090에서 3k 반복은 약 11분, 11k 반복은 약 40분 소요됩니다.
  3. 평가 – 예: DTU에서:
    python run.py --type evaluate \
        --cfg_file configs/enerf/dtu_pretrain.yaml \
        enerf.cas_config.render_if False,True \
        enerf.cas_config.volume_planes 48,8 \
        enerf.eval_depth True
    
    샘플 출력: PSNR ≈ 27.6, SSIM ≈ 0.957, LPIPS ≈ 0.089, 512×640에서 약 21.8 FPS.
  4. 인터랙티브 렌더링 (인간 캡처):
    python gui_human.py --cfg_file configs/enerf/interactive/zjumocap.yaml
    
    마우스/키보드 조작은 README에 기재되어 있습니다.

README에서의 성능 요약

  • DTU 평가: 27.6 dB PSNR, 0.957 SSIM, 0.089 LPIPS, 21.8 FPS.
  • ZJU-MoCap: 31.48 dB PSNR, 0.971 SSIM, 0.042 LPIPS, 49.2 FPS.
  • 고성능 데스크탑(i9-12900K + RTX 3090)에서 실시간 렌더링을 달성했습니다.

인용 연구에서 코드를 사용할 경우, SIGGRAPH Asia 2022 논문을 인용해 주세요:

@inproceedings{lin2022enerf,
  title={Efficient Neural Radiance Fields for Interactive Free-viewpoint Video},
  author={Lin, Haotong and Peng, Sida and Xu, Zhen and Yan, Yunzhi and Shuai, Qing and Bao, Hujun and Zhou, Xiaowei},
  booktitle={SIGGRAPH Asia Conference Proceedings},
  year={2022}
}

결론: ENeRF는 학습, 피니튜닝, 평가, 인터랙티브 렌더링을 포함하는 완전한 오픈소스 구현체로, 자유 시점 영상 응용에 적합한 고속 추론을 중시합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트