Захват позы собаки на видео и перенос скелета в Blender через DeepLabCut и OmniTrax
Запустите нейросетевую оценку позы собаки и наложите скелет на видео в Blender - с готовой моделью из Model Zoo, без ручной анимации
- 1.Установите DeepLabCut. Откройте терминал и выполните pip install --pre "deeplabcut[gui]". Требуется Python 3.10 или выше.
Для работы с GPU сначала установите PyTorch: pip install torch torchvision. Если OmniTrax требует TensorFlow-модель, установите TF-версию: pip install "deeplabcut[gui,tf]". Разработчики DeepLabCut планируют отказаться от TensorFlow-движка в версии 3.2.
DeepLabCut ↗ - 2.Создайте проект DeepLabCut для вашей собаки. В Python-консоли выполните код, заменив пути на свои.
После выполнения в указанной папке появится каталог проекта с config.yaml и подпапками для видео и разметки.
DeepLabCut ↗Промптimport deeplabcut deeplabcut.create_new_project( "DogPose", "YourName", ["/full/path/to/dog_video.mp4"], working_directory="/full/path/to/working_dir", copy_videos=True, multianimal=False )Что делает этот промптЭтот код создаёт новый проект DeepLabCut. Замените DogPose на имя проекта, YourName - на ваше имя, путь в квадратных скобках - на полный путь к видео с собакой, working_directory - на папку для хранения проекта. - 3.Запустите GUI DeepLabCut и загрузите предобученную модель из Model Zoo. В стартовом окне выберите «Model Zoo», найдите модель для четвероногих животных (quadruped). Примените её к проекту - это пропускает ручную разметку и обучение.
Если подходящей предобученной модели нет, придётся вручную разметить 20 - 50 кадров (Extract frames → Label frames) и обучить сеть - это займёт несколько часов на GPU.
DeepLabCut GUI ↗ - 4.Экспортируйте модель для использования в реальном времени. В Python выполните код экспорта, указав путь к config.yaml вашего проекта.
Экспортированная модель будет размещена в подпапке проекта. Запомните путь к этой папке - он понадобится в OmniTrax. Модель должна быть совместима с deeplabcut-live.
DeepLabCut ↗Промптimport deeplabcut cfg_path = "/full/path/to/your/project/config.yaml" deeplabcut.export_model(cfg_path, iteration=None, shuffle=1, trainingsetindex=0, snapshotindex=None)
Что делает этот промптЭтот код экспортирует обученную модель DeepLabCut в формат для запуска через deeplabcut-live. Замените cfg_path на путь к файлу config.yaml вашего проекта - он лежит в корневой папке проекта. - 5.Установите дополнение OmniTrax в Blender. Скачайте OmniTrax с GitHub, затем в Blender: Edit → Preferences → Add-ons → Install → выберите .zip файл → включите галочкой.
Рекомендуется держать открытым окно System Console (Window → Toggle System Console) для отслеживания прогресса инференса.
OmniTrax ↗ - 6.Загрузите видео с собакой в Blender, откройте панель OmniTrax → Pose-Estimation (DLC). В поле «DLC network path» укажите путь к папке экспортированной модели. Для одиночного животного оставьте настройки по умолчанию и запустите инференс.
Точки позы и скелет будут наложены на видео. Для переноса движения на 3D-риг используйте Constraints в Blender Motion Tracking.
OmniTrax ↗
- бесплатноDeepLabCutПолностью бесплатное открытое ПО под лицензией GNU LGPL v3.0, без ограничений на использование.
- бесплатноOmniTraxБесплатное дополнение для Blender, исходный код доступен на GitHub.
- бесплатноBlenderБесплатная программа с открытым исходным кодом, без ограничений.
Почему сегодня
ИИ-сервисы быстро меняются - интерфейсы и бесплатные лимиты могут отличаться от описанных.