已废弃的仓库
该仓库不再维护。请注意,所有进一步的开发和更新已转移到新的仓库。
您可以在**这里**找到新的仓库。
感谢您的理解和持续支持。
NeRF-Factory:一个出色的PyTorch NeRF集合
各位NeRF研究者请注意!我们带来了一个用PyTorch重新实现的大规模NeRF库。我们的库易于扩展和使用。
这包含了7个流行NeRF模型的PyTorch实现。
- NeRF: [项目页面] [论文] [代码]
- NeRF++: [论文] [代码]
- DVGO: [项目页面] [论文-v1] [论文-v2] [代码]
- Plenoxels: [项目页面] [论文] [代码]
- Mip-NeRF: [项目页面] [论文] [代码]
- Mip-NeRF360: [项目页面] [论文] [代码]
- Ref-NeRF: [项目页面] [论文] [代码]
以及7个流行的NeRF数据集。
- NeRF Blender: 链接
- NeRF LLFF: 链接
- Tanks and Temples: 链接
- LF: 链接
- NeRF-360: 链接
- NeRF-360-v2: 链接
- Shiny Blender: 链接
运行代码只需要执行:
python3 -m run --ginc configs/[model]/[data].gin
# 例如:python3 -m run --ginc configs/nerf/blender.gin
我们还为NeRF研究者提供了方便的可视化工具。
贡献者
这个项目由Yoonwoo Jeong、Seungjoo Shin和Kibaek Park创建和维护。
要求
conda create -n nerf_factory -c anaconda python=3.8
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch
pip3 install -r requirements.txt
## 可选(Plenoxel)
pip3 install .
## 或者您可以直接从nerf_factory.yml构建
conda env create --file nerf_factory.yml
命令
python3 -m run --ginc configs/[model]/[data].gin
# 例如:python3 -m run --ginc configs/nerf/blender.gin
准备数据集
我们提供了所有数据集的自动下载脚本。
# NeRF-blender数据集
bash scripts/download_data.sh nerf_synthetic
# NeRF-LLFF(NeRF-Real)数据集
bash scripts/download_data.sh nerf_llff
# NeRF-360数据集
bash scripts/download_data.sh nerf_real_360
# Tanks and Temples数据集
bash scripts/download_data.sh tanks_and_temples
# LF数据集
bash scripts/download_data.sh lf
# NeRF-360-v2数据集
bash scripts/download_data.sh nerf_360_v2
# Shiny-blender数据集
bash scripts/download_data.sh shiny_blender
运行代码!
一个非常简单的运行代码的脚本。
训练代码
运行训练代码的脚本。
python3 run.py --ginc configs/[model]/[data].gin --scene [scene]
## 例如:在blender数据集的chair场景上运行nerf训练
python3 run.py --ginc configs/nerf/blender.gin --scene chair
评估代码
仅运行评估代码的脚本。
python3 run.py --ginc configs/[model]/[data].gin --scene [scene] \
--ginb run.run_train=False
## 例如:在blender数据集的chair场景上运行nerf评估
python3 run.py --ginc configs/nerf/blender.gin --scene chair \
--ginb run.run_train=False
自定义
如何在NeRF-Factory中添加自定义数据集和自定义模型?
自定义数据集
- 在
./data/[custom_dataset]
中添加自定义数据集的文件。 - 在
./src/data/data_util/[custom_dataset].py
中实现数据集加载器代码。 - 在
./src/data/litdata.py
中实现自定义数据集类LitData[custom_dataset]
。 - 在
./utils/select_option.py
的def select_dataset()
函数中添加选择自定义数据集的选项。 - 为每个模型添加gin配置文件,如
./configs/[model]/[custom_dataset].gin
。
自定义模型
- 在
./src/model/[custom_model]/model.py
中实现自定义模型代码。 - 在
./src/model/[custom_model]/helper.py
中实现自定义模型的辅助代码。 - [可选] 如果您需要更多自定义模型的代码文件,可以将它们添加到
./src/model/[custom_model]/
中。 - 在
./utils/select_option.py
的def select_model()
函数中添加选择自定义模型的选项。 - 为每个数据集添加gin配置文件,如
./configs/[custom_model]/[dataset].gin
。
许可证
版权所有 (c) 2022 POSTECH、KAIST和Kakao Brain Corp. 保留所有权利。 根据Apache许可证2.0版获得许可(详情请参见LICENSE)