使用nerfstudio就像即插即用一样简单!
Nerfstudio 提供了一个简单的 API,可简化 NeRF 的创建、训练和测试的端到端流程。该库通过将每个组件模块化,支持更具可解释性的 NeRF 实现。通过更模块化的 NeRF,我们希望为探索这项技术创造更友好的用户体验。
这是一个便于贡献者参与的仓库,旨在建立一个社区,让用户可以更轻松地基于彼此的贡献进行构建。
我们致力于提供学习资源,帮助您(如果您刚刚入门)了解 NeRF 的基础知识,(如果您是资深人士)了解 NeRF 的最新动态。作为研究人员,我们深知掌握这项下一代技术的难度。因此,我们通过教程、文档等方式为您提供帮助!
有功能需求?想添加您的全新 NeRF 模型?有新数据集?我们欢迎贡献! 如有任何问题,请随时通过 *** 联系 nerfstudio 团队。
有反馈?如果您想告诉我们您是谁、为什么对 Nerfstudio 感兴趣或提供任何反馈,我们希望您填写我们的 Nerfstudio 反馈表!
我们希望 nerfstudio 能让您更快地构建 :hammer: 共同学习 :books: 并为我们的 NeRF 社区做出贡献 :sparkling_heart:。
本项目的赞助商包括 Luma AI 和 BAIR commons。
本快速开始将帮助您使用在经典 Blender 乐高场景上训练的默认 vanilla NeRF 入门。对于更复杂的更改(例如,使用您自己的数据运行/设置新的 NeRF 图),请参考我们的参考资料。
系统上必须安装有 NVIDIA 显卡和 CUDA。本库已使用 CUDA 11.8 版本进行测试。您可以在此处找到有关安装 CUDA 的更多信息。
Nerfstudio 需要 python >= 3.8。我们建议使用 conda 管理依赖项。继续之前,请确保已安装 Conda。
conda create --name nerfstudio -y python=3.8
conda activate nerfstudio
pip install --upgrade pip
安装带 CUDA 的 PyTorch(本仓库已使用 CUDA 11.7 和 CUDA 11.8 测试)和 https://github.com/NVlabs/tiny-cuda-nn%E3%80%82%E6%9E%84%E5%BB%BA 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-toolkit
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
有关更多信息,请参见安装文档中的https://github.com/nerfstudio-project/nerfstudio/blob/main/docs/quickstart/installation.md#dependencies%E3%80%82
简单选项:
pip install nerfstudio
或者 如果您想要最新版本:
git clone https://github.com/nerfstudio-project/nerfstudio.git
cd nerfstudio
pip install --upgrade pip setuptools
pip install -e .
或者 如果您想跳过所有安装步骤并直接开始使用 nerfstudio,请使用 docker 镜像:
参见https://github.com/nerfstudio-project/nerfstudio/blob/main/docs/quickstart/installation.md - 使用 docker 镜像。
以下将训练一个 nerfacto 模型,这是我们推荐用于真实世界场景的模型。
# Download some test data:
ns-download-data nerfstudio --capture-name=poster
# Train model
ns-train nerfacto --data data/nerfstudio/poster
如果一切正常,您应该会看到如下训练进度:
导航到终端末尾的链接将加载 Web 查看器。如果您在远程机器上运行,则需要端口转发 websocket 端口(默认为 7007)。
可以通过运行以下命令加载预训练模型:
ns-train nerfacto --data data/nerfstudio/poster --load-dir {outputs/.../nerfstudio_models}
给定预训练模型检查点,您可以通过运行以下命令启动查看器:
ns-viewer --load-config {outputs/.../config.yml}
拥有 NeRF 模型后,您可以渲染视频或导出点云。
首先,我们必须创建相机要遵循的路径。这可以在查看器的“RENDER”选项卡下完成。将 3D 视图定向到您希望视频开始的位置,然后按“ADD CAMERA”。这将设置第一个相机关键帧。继续到新的视角,添加额外的相机以创建相机路径。我们提供其他参数来进一步优化您的相机路径。满意后,按“RENDER”,这将显示一个包含渲染视频所需命令的模态框。终止训练作业(如果您有足够的计算资源,也可以创建新终端)并运行命令生成视频。
还有其他视频导出选项,通过运行以下命令了解更多:
ns-render --help
虽然 NeRF 模型并非设计用于生成点云,但仍然可以实现。导航到 3D 查看器中的“EXPORT”选项卡并选择“POINT CLOUD”。如果选择了裁剪选项,黄色方框内的所有内容将被导出为点云。根据需要修改设置,然后在命令行中运行面板底部的命令。
或者,您可以在不使用查看器的情况下使用 CLI。通过运行以下命令了解导出选项:
ns-export pointcloud --help
使用现有数据集很棒,但您可能希望使用自己的数据!我们支持多种使用自定义数据的方法。在 nerfstudio 中使用之前,必须确定相机位置和方向,然后使用 ns-process-data 将其转换为我们的格式。我们依赖外部工具来完成此操作,相关说明和信息可在文档中找到。
| 数据 | 采集设备 | 要求 | ns-process-data 速度 |
|---|---|---|---|
| 📷 图像 | 任意 | https://colmap.github.io/install.html | 🐢 |
| 📹 视频 | 任意 | https://colmap.github.io/install.html | 🐢 |
| 🌎 360度数据 | 任意 | https://colmap.github.io/install.html | 🐢 |
| 📱 Polycam | 带LiDAR的IOS设备 | Polycam App | 🐇 |
| 📱 KIRI Engine | IOS或Android设备 | KIRI Engine App | 🐇 |
| 📱 Record3D | 带LiDAR的IOS设备 | Record3D app | 🐇 |
| 🖥 Metashape | 任意 | Metashape | 🐇 |
| 🖥 RealityCapture | 任意 | RealityCapture | 🐇 |
| 🖥 ODM | 任意 | https://github.com/OpenDroneMap/ODM | 🐇 |
| 👓 Aria | Aria眼镜 | Project Aria | 🐇 |
| 🛠 自定义 | 任意 | 相机姿态 | 🐇 |
我们提供了nerfacto以外的其他模型,例如如果您想训练原始的nerf模型,请使用以下命令
ns-train vanilla-nerf --data DATA_PATH
要查看所有包含的模型列表,请运行 ns-train --help。
每个模型都包含许多可更改的参数,数量太多无法在此一一列出。使用 --help 命令查看完整的配置选项列表。
ns-train nerfacto --help
以上就是nerfstudio基础入门的全部内容。
如果您有兴趣了解更多关于如何创建自己的流水线、使用查看器进行开发、运行基准测试等内容,请查看下面的一些快速链接,或直接访问我们的文档。
| 部分 | 描述 |
|---|---|
| 文档 | 完整的API文档和教程 |
| 查看器 | 我们Web查看器的主页 |
| 🎒 教育资源 | |
| 模型说明 | nerfstudio支持的所有模型的说明以及组件部分的解释。 |
| 组件说明 | 交互式笔记本,解释各种模型中值得注意/常用的模块。 |
| 🏃 教程 | |
| 入门指南 | 更深入的指南,介绍如何从安装到贡献开始使用nerfstudio。 |
| 使用查看器 | 关于如何导航查看器的快速演示视频。 |
| 使用Record3D | 无需使用COLMAP运行nerfstudio的演示视频。 |
| 💻 开发者资源 | |
| 创建流水线 | 了解如何通过使用和/或实现新模块轻松构建新的神经渲染流水线。 |
| 创建数据集 | 有新的数据集?了解如何在nerfstudio中运行它。 |
| 贡献指南 | 关于如何开始贡献的详细说明。 |
| 💖 社区 | |
| *** | 加入我们的社区进行更多讨论。我们很乐意听取您的意见! |
| *** | 在***上关注我们@nerfstudioteam,了解最新动态和公告 |
| 反馈表单 | 我们欢迎任何反馈!这是我们了解大家使用Nerfstudio用途的机会。 |
我们提供以下支持结构,以便更轻松地开始使用NeRF。
如果您正在寻找当前不支持的功能,请随时通过*联系Nerfstudio团队!**
易于使用的配置系统
由Brent Yi开发
用于加速NeRF渲染的库
由Ruilong Li开发
您可以在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}
}
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务