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和11k次迭代分别耗时约11分钟和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是一个完整的开源实现,支持训练、微调、评估和交互式渲染神经辐射场,重点在于适用于自由视角视频应用的高速推理。

相关

  • 项目
  • 项目
  • 项目
  • 项目