1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/OpenXRLab-xrmogen

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

На английском языке | на упрощённом китайском

XRMoGen — это кодовая база для генерации движений. В настоящее время она содержит два алгоритма генерации танцев:

  • Bailando: Siyao и др., Bailando: 3D Dance Generation by Actor-Critic GPT with Choreographic Memory, CVPR 2022;
  • DanceRevolution: Huang и др., Dance Revolution: Long-Term Dance Generation with Music via Curriculum Learning, ICLR 2021.

Для настройки среды см. installation.md.

Наборы данных

Рекомендуется использовать предварительно извлечённые функции для музыки и данных о движениях, см. dataset_preparation.md. После загрузки извлеките их в папку $PROJECT/data. Чтобы облегчить синтез видео с музыкой после создания танца, необходимо загрузить оригинальную музыку (.mov) в папку musics в той же директории:

xrmogen
├── mogen
├── docs
├── configs
├── data
│   ├── aistpp_train_wav
│   ├── aistpp_test_full_wav
│   ├── aistpp_music_feat_7.5fps
│   ├── aist_features_zero_start
│   └── musics
├── ...

Создание модели

Написание новой модели генерации танца

Структура модели может быть настроена через конфигурационные файлы. Для реализации нового метода ваша модель должна содержать следующие функции/методы, чтобы соответствовать конвейеру обучения/тестирования:

train_step(): прямой метод режима обучения. — val_step(): прямой метод тестового режима. Зарегистрирована как модель танца.

Чтобы быть более конкретным, если мы хотим реализовать новую модель, нужно сделать несколько вещей.

  1. Создайте новый файл в mogen/models/dance_models/my_model.py.

    from ..builder import NETWORKS
    from ...builder import DANCE_MODELS
    
    @DANCE_MODELS.register_module()
    class MyDanceModel(nn.Module):
    
        def __init__(self, model_config):
            super().__init__()
    
        def forward(self, ...):
            ....
    
        def train_step(self, data, optimizer, **kwargs):
            ....
    
        def val_step(self, data, optimizer=None, **kwargs):
            ....
  2. Импортируйте модель в mogen/models/__init__.py.

    from .my_model import MyDanceModel
  3. Напишите конфигурационный файл, который определяет модель следующим образом:

    model = dict(
        type='MyDanceModel',
        ....

Обучение модели

Управление эпохами

XRMoGen использует mmcv.runner.EpochBasedRunner для управления обучением и тестированием.

В режиме обучения max_epochs в конфигурационном файле определяет, сколько эпох нужно обучить. В тестовом режиме max_epochs принудительно изменяется на 1, что означает только одну эпоху тестирования.

Частота валидации устанавливается как workflow конфигурационного файла:

 workflow = [('train', 20), ('val', 1)]

Тренировка

Например, чтобы обучить Bailando (Dance Revolution), выполните следующую команду:

python main.py --config configs/dance_rev.py

Аргументы: — --config: путь к конфигурационному файлу.

Тестирование

Чтобы протестировать соответствующую модель, добавьте тег --test_only после пути к конфигурационному файлу. Мы предоставляем некоторые предварительно обученные веса для тестирования (см. pretrained_model_list.md). Загрузите предварительно обученные веса в папку ./example и выполните команду:

python main.py --config configs/bailando_test.py --test_only

чтобы сгенерировать позы танца. Позы будут сохранены в папке workdir (в данном случае "./bailando_test"), установленной в конфигурационном файле.

Чтобы вычислить количественные оценки:

python tools/eval_quantitative_scores.py --pkl_root ./bailando_test/test/epoch0 --gt_root data/aist_features_zero_start --music_feature_root **Данные / aistpp_test_full_wav**

Результаты должны быть согласованы с [benchmark.md](docs/en/benchmark.md).

**Визуализация**

```python
python tools/visualize_dance_from_pkl.py --pkl_root ./bailando_test/test/epoch0  --audio_path data/musics/

Учебники

В настоящее время мы предоставляем несколько учебников для пользователей, чтобы узнать о:

Другие документы

Кроме того, документ также включает следующее:

Лицензия

Лицензия нашей кодовой базы — Apache-2.0. Обратите внимание, что эта лицензия применяется только к коду в нашей библиотеке, зависимости которой являются отдельными и лицензируются индивидуально. Мы хотели бы отдать должное открытым реализациям, на которые полагаемся. Пожалуйста, имейте в виду, что использование содержимого зависимостей может повлиять на лицензию нашей кодовой базы. Обратитесь к LICENSE, чтобы просмотреть полную лицензию.

Цитирование

Если вы считаете этот проект полезным в своём исследовании, пожалуйста, рассмотрите возможность цитирования:

@misc{xrmogen,
    title={OpenXRLab Motion Generation Codebase},
    author={XRMoGen Contributors},
    howpublished = {\url{https://github.com/openxrlab/xrmogen}},
    year={2022}
}

Вклад

Мы ценим все вклады в улучшение XRMoGen. Пожалуйста, обратитесь к CONTRIBUTING.md, чтобы ознакомиться с руководством по внесению вклада.

Признание

XRMoGen — это открытый исходный проект, который поддерживается исследователями и инженерами как из академических кругов, так и из промышленности. Мы признательны всем участникам, которые реализуют свои методы или добавляют новые функции, а также пользователям, которые дают ценные отзывы. Мы хотим, чтобы структура и эталонный тест могли служить растущему исследовательскому сообществу, предоставляя гибкую структуру для повторной реализации существующих методов и разработки собственных новых моделей.

Проекты в OpenXRLab

  • XRPrimer: основополагающая библиотека OpenXRLab для алгоритмов, связанных с XR.
  • XRSLAM: набор инструментов и тестов OpenXRLab для визуальной инерциальной SLAM.
  • XRSfM: набор инструментов и тестов OpenXRLab для построения структуры по движению.
  • XRLocalization: набор инструментов и сервер OpenXRLab для визуальной локализации.
  • XRMoCap: набор инструментов и тестов OpenXRLab для многовидового захвата движения.
  • XRMoGen: набор инструментов и тестов OpenXRLab для генерации человеческого движения.
  • XRNeRF: набор инструментов и тестов OpenXRLab для нейронного поля излучения (NeRF).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

OpenXRLab Human Motion Generation Codebase Развернуть Свернуть
Python и 3 других языков
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/OpenXRLab-xrmogen.git
git@api.gitlife.ru:oschina-mirror/OpenXRLab-xrmogen.git
oschina-mirror
OpenXRLab-xrmogen
OpenXRLab-xrmogen
main