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

OSCHINA-MIRROR/OpenXRLab-xrmogen

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 9.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 10:34 3bd9bc0

Введение

XRMoGen — это открытая библиотека кода для генерации танцевальных движений. На данный момент в XRMoGen реализованы два метода генерации танцев:

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

Для ознакомления с установкой обратитесь к файлу installation.md в разделе docs/zh_cn/.

Данные

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

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

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

Структура модели определяется конфигурационным файлом (config).

Как создать новую модель

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

  • train_step() — прямой процесс обучения модели;
  • val_step() — прямой процесс тестирования модели;
  • регистрация модели как DANCE_MODELS.

Конкретно, если вы хотите реализовать новую модель, вам нужно сделать следующее:

  1. Создайте новую модель my_model.py в папке mogen/models/dance_models/:

    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)]

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

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

Созданные танцевальные движения будут сохранены в формате .pkl в папке, указанной в параметре 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 data/aistpp_test_full_wav

Результаты тестирования должны соответствовать данным из файла benchmark.md.

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

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. Дополнительную информацию см. в файле CONTRIBUTION.md.

Благодарности

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

Другие проекты OpenXRLab

  • XRPrimer (https://github.com/openxrlab/xrprimer): основополагающая библиотека OpenXRLab для алгоритмов, связанных с XR.
  • XRSLAM (https://github.com/openxrlab/xrslam): набор инструментов и тестов визуальной инерциальной SLAM от OpenXRLab. XRSfM: OpenXRLab набор инструментов и тестов для восстановления структуры по движению.

XRLocalization: набор инструментов и сервер OpenXRLab для визуальной локализации.

XRMoCap: набор инструментов и тесты OpenXRLab для захвата движения с нескольких камер.

XRMoGen: набор инструментов и тесты OpenXRLab для генерации движений человека.

XRNeRF: набор инструментов и тесты OpenXRLab для работы с нейронными полями излучения (NeRF).

Опубликовать ( 0 )

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

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