Быстрый старт
Узнать больше
Поддерживаемые функции
С nerfstudio это так же просто, как подключи и играй!
Nerfstudio предоставляет простой API, который позволяет упростить сквозной процесс создания, обучения и тестирования NeRF. Библиотека поддерживает более интерпретируемую реализацию NeRF за счет модульности каждого компонента. С помощью более модульных NeRF мы надеемся создать более удобный для пользователя опыт изучения этой технологии.
Это удобный для участников репозиторий, целью которого является создание сообщества, в котором пользователям будет легче использовать вклад друг друга. Первоначально Nerfstudio был запущен как проект с открытым исходным кодом студентами Беркли в лаборатории KAIR в Berkeley AI Research (BAIR) в октябре 2022 года в рамках исследовательского проекта (бумага). В настоящее время он разрабатывается студентами Беркли и участниками сообщества.
Мы стремимся предоставлять учебные ресурсы, которые помогут вам понять основы (если вы только начинаете) и быть в курсе (если вы опытный ветеран) всего, что связано с NeRF. Как исследователи, мы знаем, насколько сложно освоиться с этой технологией нового поколения. Поэтому мы здесь, чтобы помочь с учебными пособиями, документацией и многим другим!
Есть пожелания по функциям? Хотите добавить свою новую модель NeRF? У вас есть новый набор данных? Мы приветствуем вклады! Пожалуйста, не стесняйтесь обращаться к команде nerfstudio с любыми вопросами через Discord.
Есть отзывы? Мы будем рады, если вы заполните нашу форму обратной связи Nerfstudio, если хотите сообщить нам, кто вы, почему вас интересует Nerfstudio, или оставить свой отзыв!
Мы надеемся, что nerfstudio позволит вам строить быстрее? учиться вместе? и внести свой вклад в наше сообщество NeRF?
Спонсорами этой работы являются Luma AI и BAIR commons.
Краткое руководство поможет вам начать работу с ванильным NeRF по умолчанию, обученным на классической сцене Blender Lego. Для более сложных изменений (например, работы с собственными данными/настройки нового графика NeRF) обратитесь к нашим ссылкам.
В вашей системе должна быть установлена видеокарта NVIDIA с CUDA. Эта библиотека была протестирована с версией 11.8 CUDA. Дополнительную информацию об установке CUDA можно найти здесь.
Nerfstudio требует python >= 3.8
. Мы рекомендуем использовать conda для управления зависимостями. Прежде чем продолжить, обязательно установите Conda.
conda create --name nerfstudio -y python=3.8 Конда активирует nerfstudio pip install --upgrade pip
Установите PyTorch с CUDA (этот репозиторий был протестирован с CUDA 11.7 и CUDA 11.8) и tiny-cuda-nn. cuda-toolkit
необходим для сборки tiny-cuda-nn
.
Для 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
Дополнительную информацию см. в разделе «Зависимости» в документации по установке.
Простой вариант:
pip установить nerfstudio
ИЛИ, если вы хотите самое последнее и самое лучшее:
git клон https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio pip install --обновить инструменты настройки pip пип установить -e .
ИЛИ, если вы хотите пропустить все этапы установки и сразу начать использовать nerfstudio, используйте образ докера:
См. Установка — Использовать образ Docker .
Далее будет обучена модель nerfacto , рекомендуемая нами модель для сцен реального мира.
# Загрузите некоторые тестовые данные: ns-download-data nerfstudio --capture-name=poster# Train modelns-train nerfacto --data data/nerfstudio/poster
Если все работает, вы должны увидеть прогресс тренировки следующим образом:
При переходе по ссылке в конце терминала загрузится веб-просмотрщик. Если вы работаете на удаленном компьютере, вам потребуется перенаправить порт веб-сокета (по умолчанию 7007).
Можно загрузить предварительно обученную модель, запустив
ns-train nerfacto --data data/nerfstudio/poster --load-dir {outputs/.../nerfstudio_models}
Учитывая предварительно обученную контрольную точку модели, вы можете запустить средство просмотра, запустив
ns-viewer --load-config {outputs/.../config.yml}
Получив модель NeRF, вы можете либо визуализировать видео, либо экспортировать облако точек.
Сначала мы должны создать путь, по которому будет следовать камера. Это можно сделать в средстве просмотра на вкладке «РЕНДЕР». Направьте 3D-изображение на место, где вы хотите, чтобы видео начиналось, затем нажмите «ДОБАВИТЬ КАМЕРУ». Это установит первый ключевой кадр камеры. Продолжайте переход к новым точкам обзора, добавляя дополнительные камеры для создания траектории камеры. Мы предоставляем другие параметры для дальнейшего уточнения пути камеры. После удовлетворения нажмите «RENDER», после чего отобразится модальное окно, содержащее команду, необходимую для рендеринга видео. Завершите задание обучения (или создайте новый терминал, если у вас много вычислительных ресурсов) и запустите команду для создания видео.
Доступны и другие варианты экспорта видео. Узнайте больше, запустив
нс-рендер --помощь
Хотя модели NeRF не предназначены для создания облаков точек, это все же возможно. Перейдите на вкладку «ЭКСПОРТ» в средстве 3D-просмотра и выберите «ОБЛАКО ТОЧЕК». Если выбран параметр обрезки, все, что находится в желтом квадрате, будет экспортировано в облако точек. Измените настройки по желанию, затем запустите команду внизу панели в командной строке.
Альтернативно вы можете использовать CLI без средства просмотра. Узнайте о вариантах экспорта, запустив
ns-export pointcloud --help
Использовать существующий набор данных — это здорово, но, скорее всего, вы захотите использовать свои собственные данные! Мы поддерживаем различные методы использования ваших собственных данных. Прежде чем его можно будет использовать в nerfstudio, необходимо определить местоположение и ориентацию камеры, а затем преобразовать их в наш формат с помощью ns-process-data
. Для этого мы полагаемся на внешние инструменты, инструкции и информацию можно найти в документации.
Данные | Устройство захвата | Требования | ns-process-data Скорость |
---|---|---|---|
Изображения | Любой | КОЛМАП | |
Видео | Любой | КОЛМАП | |
360 данных | Любой | КОЛМАП | |
Поликам | IOS с LiDAR | Приложение Поликам | |
Запись3D | IOS с LiDAR | Приложение Record3D | |
Меташейп | Любой | Меташейп | |
ОДМ | Любой | ОДМ | |
Ария | очки ария | Проект Ария | |
Обычай | Любой | Позы для камеры |
Мы предоставляем другие модели, кроме nerfacto, например, если вы хотите обучить исходную модель nerf, используйте следующую команду
ns-train vanilla-nerf --data DATA_PATH
Чтобы просмотреть полный список включенных моделей, запустите ns-train --help
.
Каждая модель содержит множество параметров, которые можно изменить, их слишком много, чтобы перечислять здесь. Используйте команду --help
, чтобы просмотреть полный список параметров конфигурации.
ns-train nerfacto --help
Мы поддерживаем четыре различных метода отслеживания прогресса обучения: тензорную доску просмотра, веса и смещения и Comet. Вы можете указать, какой визуализатор использовать, добавив --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
к команде обучения. Одновременное использование средства просмотра вместе с WandB или Tensorboard может вызвать проблемы с заиканием на этапах оценки. Средство просмотра работает только для быстрых методов (например, nerfacto, Instant-NGP), для более медленных методов, таких как NeRF, используйте другие регистраторы.
Вот и все, что касается основ nerfstudio.
Если вы хотите узнать больше о том, как создавать собственные конвейеры, разрабатывать с помощью средства просмотра, запускать тесты и т. д., воспользуйтесь некоторыми быстрыми ссылками ниже или посетите нашу документацию.
Раздел | Описание |
---|---|
Документация | Полная документация и руководства по API |
Зритель | Домашняя страница нашего веб-просмотрщика |
Образовательный | |
Описание модели | Описание всех моделей, поддерживаемых nerfstudio, и пояснения к составным частям. |
Описание компонентов | Интерактивные блокноты, в которых объясняются примечательные/часто используемые модули в различных моделях. |
Учебники | |
Начиная | Более подробное руководство о том, как начать работу с nerfstudio, от установки до участия. |
Использование средства просмотра | Краткое демонстрационное видео о том, как ориентироваться в средстве просмотра. |
Использование Record3D | Демонстрационное видео о том, как запустить nerfstudio без использования COLMAP. |
Для разработчиков | |
Создание конвейеров | Узнайте, как легко создавать новые конвейеры нейронного рендеринга, используя и/или внедряя новые модули. |
Создание наборов данных | У вас есть новый набор данных? Узнайте, как запустить его с помощью nerfstudio. |
Содействие | Подробное руководство о том, как начать вносить свой вклад прямо сейчас. |
Раздор | Присоединяйтесь к нашему сообществу, чтобы обсудить больше. Мы хотели бы услышать ваше мнение! |
Твиттер | Следуйте за нами в Твиттере @nerfstudioteam, чтобы видеть интересные обновления и анонсы. |
Форма обратной связи | Мы приветствуем любые отзывы! Это наш шанс узнать, для чего вы все используете Nerfstudio. |
Мы предоставляем следующие структуры поддержки, чтобы облегчить начало работы с NeRF.
Если вы ищете функцию, которая в настоящее время не поддерживается, не стесняйтесь обращаться к команде Nerfstudio в Discord!
Веб-визуализатор, который позволяет:
Визуализируйте обучение в режиме реального времени + взаимодействуйте со сценой
Создавайте и визуализируйте сцены с настраиваемыми траекториями камеры.
Просмотр различных типов вывода
И многое другое!
Поддержка нескольких интерфейсов журналирования (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} }