快速入门
了解更多
支持的功能
使用 nerfstudio 即插即用,非常简单!
Nerfstudio 提供了一个简单的 API,可以简化创建、训练和测试 NeRF 的端到端流程。该库通过模块化每个组件来支持 NeRF 的更可解释的实现。通过更加模块化的 NeRF,我们希望在探索该技术时创造更加用户友好的体验。
这是一个对贡献者友好的存储库,其目标是建立一个社区,让用户可以更轻松地利用彼此的贡献。 Nerfstudio 最初是由伯克利分校的学生于 2022 年 10 月在伯克利人工智能研究中心 (BAIR) 的 KAIR 实验室推出的开源项目,作为研究项目(论文)的一部分。它目前由伯克利学生和社区贡献者开发。
我们致力于提供学习资源,帮助您了解 NeRF 的基础知识(如果您刚刚入门),并及时了解(如果您是经验丰富的老手)所有 NeRF 的知识。作为研究人员,我们知道采用这种下一代技术有多么困难。因此,我们随时为您提供教程、文档等方面的帮助!
有功能请求吗?想要添加您全新的 NeRF 模型吗?有新的数据集吗?我们欢迎贡献!如有任何问题,请随时通过 Discord 联系 nerfstudio 团队。
有反馈吗?如果您想让我们知道您是谁、您为何对 Nerfstudio 感兴趣或提供任何反馈,我们希望您填写我们的 Nerfstudio 反馈表!
我们希望 nerfstudio 使您能够更快地构建?一起学习?并为我们的 NeRF 社区做出贡献?
这项工作的赞助商包括 Luma AI 和 BAIR commons。
本快速入门将帮助您开始使用在经典 Blender Lego 场景中训练的默认香草 NeRF。对于更复杂的更改(例如,使用您自己的数据运行/设置新的 NeRF 图),请参阅我们的参考资料。
您的系统上必须安装有 CUDA 的 NVIDIA 显卡。该库已使用 CUDA 11.8 版本进行了测试。您可以在此处找到有关安装 CUDA 的更多信息
Nerfstudio 需要python >= 3.8
。我们建议使用 conda 来管理依赖项。确保在继续之前安装 Conda。
conda 创建 --name nerfstudio -y python=3.8 conda 激活 nerfstudio pip 安装 --升级 pip
使用 CUDA 安装 PyTorch(此存储库已使用 CUDA 11.7 和 CUDA 11.8 进行了测试)和tiny-cuda-nn。构建tiny-cuda-nn
需要cuda-toolkit
。
对于 CUDA 11.8:
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 conda install -c“nvidia/label/cuda-11.8.0”cuda-工具包 pip 安装 ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
有关更多信息,请参阅安装文档中的依赖项。
简单的选择:
pip 安装 nerfstudio
或者如果您想要最新最好的:
git 克隆 https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio pip install --升级 pip setuptools pip install -e 。
或者,如果您想跳过所有安装步骤并直接开始使用 nerfstudio,请使用 docker 镜像:
请参阅安装-使用 docker 镜像。
下面将训练一个nerfacto模型,这是我们针对现实世界场景推荐的模型。
# 下载一些测试数据:ns-download-data nerfstudio --capture-name=poster# 训练模型ns-train nerfacto --data data/nerfstudio/poster
如果一切正常,您应该会看到如下所示的训练进度:
导航到终端末尾的链接将加载网络查看器。如果您在远程计算机上运行,则需要端口转发 websocket 端口(默认为 7007)。
可以通过运行加载预训练模型
ns-train nerfacto --data data/nerfstudio/poster --load-dir {输出/.../nerfstudio_models}
给定预训练的模型检查点,您可以通过运行来启动查看器
ns-viewer --load-config {输出/.../config.yml}
拥有 NeRF 模型后,您可以渲染视频或导出点云。
首先,我们必须创建一条供相机遵循的路径。这可以在查看器的“RENDER”选项卡下完成。将 3D 视图定向到您希望视频开始的位置,然后按“添加摄像机”。这将设置第一个相机关键帧。继续添加额外的摄像机以创建摄像机路径的新视点。我们提供其他参数来进一步完善您的相机路径。满意后,按“RENDER”,这将显示一个包含渲染视频所需命令的模式。终止训练作业(或者如果您有大量计算,则创建一个新终端)并运行命令来生成视频。
还可以使用其他视频导出选项,通过运行了解更多信息
ns-渲染--帮助
虽然 NeRF 模型不是为生成点云而设计的,但它仍然是可能的。导航到 3D 查看器中的“导出”选项卡并选择“点云”。如果选择裁剪选项,黄色方块中的所有内容都将导出到点云中。根据需要修改设置,然后在命令行中运行面板底部的命令。
或者,您可以在没有查看器的情况下使用 CLI。通过运行了解导出选项
ns-导出点云--帮助
使用现有数据集固然很棒,但您可能想使用自己的数据!我们支持使用您自己的数据的各种方法。在将其用于 nerfstudio 之前,必须确定相机位置和方向,然后使用ns-process-data
转换为我们的格式。为此,我们依靠外部工具,可以在文档中找到说明和信息。
数据 | 捕捉设备 | 要求 | ns-process-data 速度 |
---|---|---|---|
图片 | 任何 | 坐标图 | |
视频 | 任何 | 科尔地图 | |
360数据 | 任何 | 科尔地图 | |
宝丽康 | 带有激光雷达的 iOS | 宝利康应用程序 | |
记录3D | 带有激光雷达的 iOS | Record3D应用程序 | |
元形状 | 任何 | 元形状 | |
原始设计制造商 | 任何 | 原始设计制造商 | |
咏叹调 | 阿里亚眼镜 | 咏叹调计划 | |
风俗 | 任何 | 相机姿势 |
我们提供了nerfacto以外的其他模型,例如如果你想训练原始的nerf模型,请使用以下命令
ns-train vanilla-nerf --data DATA_PATH
要获取包含模型的完整列表,请运行ns-train --help
。
每个模型都包含许多可以更改的参数,此处无法列出。使用--help
命令查看配置选项的完整列表。
ns-train nerfacto --帮助
我们支持四种不同的方法来跟踪训练进度,使用查看器张量板、权重和偏差以及 Comet。您可以通过将--vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
附加到训练命令来指定要使用的可视化工具。在评估步骤中同时使用查看器和 wandb 或张量板可能会导致卡顿问题。该查看器仅适用于快速方法(即 nerfacto、instant-ngp),对于 NeRF 等较慢方法,请使用其他记录器。
这就是 nerfstudio 基础知识的入门。
如果您有兴趣了解有关如何创建自己的管道、使用查看器进行开发、运行基准测试等的更多信息,请查看下面的一些快速链接或直接访问我们的文档。
部分 | 描述 |
---|---|
文档 | 完整的 API 文档和教程 |
观众 | 我们的网络查看器的主页 |
教育性 | |
型号说明 | nerfstudio 支持的所有模型的描述以及组件的说明。 |
组件说明 | 交互式笔记本,解释各种模型中值得注意/常用的模块。 |
教程 | |
入门 | 关于如何开始使用 nerfstudio 从安装到贡献的更深入指南。 |
使用查看器 | 有关如何导航查看器的快速演示视频。 |
使用Record3D | 有关如何在不使用 COLMAP 的情况下运行 nerfstudio 的演示视频。 |
对于开发人员 | |
创建管道 | 了解如何通过使用和/或实现新模块轻松构建新的神经渲染管道。 |
创建数据集 | 有新的数据集吗?了解如何使用 nerfstudio 运行它。 |
贡献 | 演练如何立即开始贡献。 |
不和谐 | 加入我们的社区讨论更多内容。我们很乐意听取您的意见! |
叽叽喳喳 | 在 Twitter 上关注我们 @nerfstudioteam 以查看精彩的更新和公告 |
反馈表 | 我们欢迎任何反馈!这是我们了解大家使用 Nerfstudio 的用途的机会。 |
我们提供以下支持结构,让 NeRF 的入门变得更加轻松。
如果您正在寻找当前不受支持的功能,请随时联系 Discord 上的 Nerfstudio 团队!
基于 Web 的可视化工具允许您:
实时可视化训练+场景互动
使用自定义相机轨迹创建和渲染场景
查看不同的输出类型
还有更多!
支持多种日志记录接口(Tensorboard、Wandb)、代码分析和其他内置调试工具
Blender 数据集上易于使用的基准测试脚本
完整的管道支持(使用 Colmap、Polycam 或 Record3D),可将手机上的视频转换为完整的 3D 渲染。
易于使用的配置系统
由布伦特·易开发
用于加速 NeRF 渲染的库
由李瑞龙开发
您可以在 arXiv 上找到该框架的论文。
如果您使用此库或发现该文档对您的研究有用,请考虑引用:
@inproceedings{nerfstudio, title = {Nerfstudio: A Modular Framework for Neural Radiance Field Development}, author = { Tancik, Matthew and Weber, Ethan and Ng, Evonne and Li, Ruilong and Yi, Brent and Kerr, Justin and Wang, Terrance and Kristoffersen, Alexander and Austin, Jake and Salahi, Kamyar and Ahuja, Abhik and McAllister, David and Kanazawa, Angjoo }, year = 2023, booktitle = {ACM SIGGRAPH 2023 Conference Proceedings}, series = {SIGGRAPH '23} }