Taichi NeRFs
PyTorch + Taichi实现的instant-ngp NeRF训练流程。有关建模的更多详细信息,请查看我们博客网站上的这篇文章。
安装
- 通过
python -m pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu116
安装PyTorch(使用您安装的CUDA Toolkit版本号更新url)。 - 通过
pip install -U pip && pip install -i https://pypi.taichi.graphics/simple/ taichi-nightly
安装taichi每日构建版。 - 通过
pip install -r requirements.txt
安装依赖项。 - 如果您计划使用自己的视频进行训练,请通过
sudo apt install colmap
安装colmap
,或按照 https://colmap.github.io/install.html 的说明进行操作。
使用预处理数据集进行训练
合成NeRF
下载合成NeRF数据集并解压。请保持文件夹名称不变。
我们还提供了一个脚本,从头开始训练Lego场景,并在训练结束时显示一个交互式GUI。
./scripts/train_nsvf_lego.sh
性能在Ubuntu 20.04系统上使用RTX3090 GPU进行测量。
场景 | 平均PSNR | 训练时间(20轮) | GPU |
---|---|---|---|
Lego | 35.0 | 208s | RTX3090 |
要达到最佳性能,请按以下步骤操作:
- 您的工作站运行在Linux上,并配备RTX 3090显卡
- 按照安装部分的步骤操作
- 在脚本中取消注释
--half2_opt
以启用half2优化,然后运行./scripts/train_nsvf_lego.sh
。目前,half2优化仅支持Linux系统上架构高于Pascal的显卡。
360_v2数据集
下载360 v2数据集并解压。请保持文件夹名称不变。默认的 batch_size=8192
在RTX3090上最多占用18GB RAM。请根据您的硬件规格调整 batch_size
。
./scripts/train_360_v2_garden.sh
使用自己的视频进行训练
将您的视频放在 data
文件夹中,并将视频路径传递给脚本。有几个关键参数用于生成适合NeRF训练的数据集。对于真实场景,建议将 scale
设置为16。video_fps
决定从视频生成的图像数量,通常150~200张图像就足够了。对于一分钟的视频,2是一个合适的数字。运行此脚本将预处理您的视频并开始训练NeRF:
./scripts/train_from_video.sh -v {your_video_name} -s {scale} -f {video_fps}
移动端部署
使用Taichi AOT,您可以轻松地在任何移动设备上部署NeRF渲染流程!
我们能够在iOS设备上实现实时交互。
性能 | iPad Pro (M1) | iPhone 14 Pro Max | iPhone 14 |
---|---|---|---|
Taichi Instant NGP | 22.4 fps | 18 fps | 13.5 fps |
敬请期待,更多酷炫的演示即将推出!如有商业咨询,请联系我们:contact@taichi.graphics
。
文本到3D
Taichi-nerf作为文本到3D项目stable-dreamfusion的新后端。
常见问题(FAQ)
问: CUDA是唯一支持的Taichi后端吗?Vulkan后端如何?
答: 为了与PyTorch CUDA后端进行最高效的互操作,训练主要在Taichi CUDA后端上进行测试。但是,如果移除互操作,切换到Taichi Vulkan后端非常简单,可以查看这个出色的taichi-ngp推理演示!
问: 我在GPU上遇到了OOM(内存不足)错误,我该怎么办?
答: 减少传递给 train.py
的 batch_size
!默认值为 8192
,适用于RTX3090,您应该相应地减小这个值。例如,在RTX3060Ti上建议使用 batch_size=2048
。
致谢
训练流程的PyTorch接口和colmap预处理主要参考了: