XRNeRF
简体中文 | English (README.md)
В этом документе представлено базовое руководство по использованию XRNeRF. Для получения инструкций по установке см. Руководство по установке.
Более подробную информацию можно найти в benchmark.md.
Поддерживаемые сценарии для методов нейронного рендеринга включают:
Поддерживаются методы нейронного рендеринга человеческого тела:
Если вы хотите увидеть новый метод NeRF в XRNeRF, вы можете оставить свой запрос на списке пожеланий, и мы организуем дальнейшие планы на основе голосования сообщества.
Мы рекомендуем размещать наборы данных в каталоге проекта /data, иначе вам может потребоваться изменить содержимое config.
xrnerf
├── xrnerf
├── docs
├── configs
├── test
├── extensions
├── data
│ ├── nerf_llff_data
│ ├── nerf_synthetic
│ ├── multiscale
│ └── ...
Для получения информации о подготовке набора данных см. Подготовка набора данных.
Инструкции по установке см. в Руководстве по установке, также предоставляется файл образа Docker в качестве другого способа установки среды.
В XRNeRF модель разделена на четыре части:
Для всех вышеперечисленных моделей ввод представляет собой словарь типа data
. Модель использует содержимое словаря data
для создания новых пар ключ-значение и добавления их в data
. Например, оригинальный nerf, начальные данные должны содержать pts
(размер n_rays, n_pts, 3) и viewdirs
(размер n_rays, n_pts, 3).
Чтобы создать собственную сеть, необходимо наследовать от BaseNerfNetwork
, который определяет два абстрактных метода:
train_step()
: функция для вывода и вычисления потерь в режиме обучения.val_step()
: функция вывода в тестовом режиме.NerfNetwork является хорошим примером.
Конкретно говоря, если вы хотите реализовать метод nerf с новыми функциями, выполните следующие шаги:
Создайте новый файл, например, xrnerf/models/networks/my_networks.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):
....
Измените файл xrnerf/models/networks/__init__.py
:
from .my_networks import MyNerfNetwork
Измените конфигурационный файл config file: Исходное:
model = dict(
type='NerfNetwork',
....
Сейчас:
model = dict(
type='MyNerfNetwork',
....
Аналогично, для реализации новых функций embedder/mlp/render, процесс аналогичен:
nn.Module
или BaseEmbedder
и определить метод forward
. BaseEmbedder — хороший пример.nn.Module
или BaseMLP
и определить метод forward
. NerfMLP можно использовать в качестве примера.nn.Module
или BaseRender
и определить соответствующий метод.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )