Введение
XRMoGen — это открытая библиотека кода для генерации танцевальных движений. На данный момент в XRMoGen реализованы два метода генерации танцев:
Для ознакомления с установкой обратитесь к файлу 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).
Как создать новую модель
Чтобы реализовать новый метод, модель должна содержать следующие функции/методы для соответствия текущему процессу обучения/тестирования:
Конкретно, если вы хотите реализовать новую модель, вам нужно сделать следующее:
Создайте новую модель 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):
....
Импортируйте новую модель в файл mogen/models/init.py:
from .my_model import MyDanceModel
Добавьте параметры построения новой модели в соответствующий конфигурационный файл:
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
XRLocalization: набор инструментов и сервер OpenXRLab для визуальной локализации.
XRMoCap: набор инструментов и тесты OpenXRLab для захвата движения с нескольких камер.
XRMoGen: набор инструментов и тесты OpenXRLab для генерации движений человека.
XRNeRF: набор инструментов и тесты OpenXRLab для работы с нейронными полями излучения (NeRF).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )