Английский | 简体中文
XRNeRF — это открытый исходный код на основе PyTorch для Neural Radiance Field (NeRF). Это часть проекта OpenXRLab.
На этой странице представлены основные учебные пособия по использованию XRNeRF. Инструкции по установке см. в installation.md.
Более подробную информацию можно найти в benchmark.md.
Поддерживаемые методы сцены-NeRF:
Поддерживаемые методы человека-NeRF:
Хотите увидеть больше методов, поддерживаемых XRNeRF? Опубликуйте метод, который вы хотите увидеть в XRNeRF, в нашем списке желаний.
Рекомендуется связать корень набора данных с $PROJECT/data
.
Если ваша структура папок отличается, вам может потребоваться изменить соответствующие пути в файлах конфигурации.
xrnerf
├── xrnerf
├── docs
├── configs
├── test
├── extensions
├── data
│ ├── nerf_llff_data
│ ├── nerf_synthetic
│ ├── multiscale
│ ├── multiscale_google
│ ├── ...
Для получения дополнительной информации о подготовке данных см. dataset_preparation.md.
Мы предоставляем подробное руководство по установке для XRNeRF, пользователи могут установить с нуля или использовать предоставленный dockerfile.
Рекомендуется начать с создания образа докера:
docker build -f ./docker/Dockerfile --rm -t xrnerf .
Дополнительную информацию см. в нашем руководстве по установке.
В XRNeRF компоненты модели в основном делятся на 4 типа.
Следуя некоторым основным конвейерам (например, NerfNetwork
), структуру модели можно настроить через файлы конфигурации без проблем.
Чтобы написать... Новый Nerf-сети: наследование от BaseNerfNetwork
Для создания новой Nerf-сети необходимо наследоваться от класса BaseNerfNetwork, который определяет следующие абстрактные методы:
NerfNetwork (xrnerf/models/networks/nerf.py) является хорошим примером того, как это сделать.
Чтобы реализовать новые компоненты, нужно выполнить несколько действий:
from ..builder import NETWORKS
from .nerf import NerfNetwork
@NETWORKS.register_module()
class MyNerfNetwork(NerfNetwork):
def __init__(self, cfg, mlp=None, mlp_fine=None, render=None):
super().__init__(cfg, mlp, mlp_fine, render)
def forward(self, data):
...
def train_step(self, data, optimizer, **kwargs):
...
def val_step(self, data, optimizer=None, **kwargs):
...
from .my_networks import MyNerfNetwork
model = dict(
type='NerfNetwork',
...
)
на
model = dict(
type='MyNerfNetwork',
...
)
Процедура для реализации новых компонентов для embedder/mlp/render аналогична описанной выше.
Реализация новых компонентов
Обучение модели
XRNeRF использует mmcv.runner.IterBasedRunner для управления тренировкой и mmcv.runner.EpochBasedRunner для тестового режима. В тренировочном режиме max_iters в конфигурационном файле определяет количество итераций. В тестовом режиме max_iters принудительно изменяется на 1, что представляет собой только одну эпоху для тестирования.
Тренировка
python run_nerf.py --config configs/nerf/nerf_blender_base01.py --dataname lego
Аргументы:
--config
: путь к конфигурационному файлу;--dataname
: выбор данных из каталога набора данных.Тестирование
Мы предоставили модель iter_200000.pth для тестирования, которую можно скачать здесь.
python run_nerf.py --config configs/nerf/nerf_blender_base01.py --dataname lego --test_only --load_from iter_200000.pth
Аргументы:
--config
: путь к конфигурационному файлу;--dataname
: выбор данных из каталога набора данных;--test_only
: влияние на весь тестовый набор один раз;--load_from
: загрузка контрольной точки для тестирования, которая перезапишет исходный load_from
в конфигурационном файле для удобства.Учебники
В настоящее время мы предоставляем некоторые учебники для пользователей:
Другие документы
Кроме этого, документ включает следующее:
Цитирование
Если вы считаете этот проект полезным в своих исследованиях, пожалуйста, рассмотрите возможность цитирования:
@misc{xrnerf,
title={OpenXRLab Neural Radiance Field Toolbox and Benchmark},
author={XRNeRF Contributors},
howpublished = {\url{https://github.com/openxrlab/xrnerf}},
year={2022}
}
Лицензия
Лицензия нашего исходного кода — Apache-2.0 (LICENSE). Обратите внимание, что эта лицензия применяется только к коду в нашей библиотеке, зависимости которой являются отдельными и лицензируются индивидуально. Мы хотели бы отдать должное открытому исходному коду. Реализация, на которую мы полагаемся.
Обратите внимание, что использование содержимого зависимостей может повлиять на лицензию нашей кодовой базы. Некоторые поддерживаемые методы могут иметь дополнительные лицензии.
Мы ценим любой вклад в улучшение XRNeRF. Пожалуйста, обратитесь к CONTRIBUTING.md для ознакомления с руководством по внесению вклада.
XRNeRF — это проект с открытым исходным кодом, в который вносят свой вклад исследователи и инженеры как из академических кругов, так и из индустрии. Мы ценим всех участников, которые реализуют свои методы или добавляют новые функции, а также пользователей, дающих ценные отзывы. Мы хотим, чтобы фреймворк и бенчмарк могли служить растущему исследовательскому сообществу, предоставляя гибкую основу для повторной реализации существующих методов и разработки собственных новых моделей.
Проекты OpenXRLab:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )