- BrainTools - https://www.braintools.ru -

UniMate: универсальная ИИ-модель для анимации скелетов разной топологии

UniMate: универсальная ИИ-модель для анимации скелетов разной топологии - 1

При обучении [1] искусственного интеллекта [2] гуманоидных роботов важно не только научить его воспринимать окружающую среду и принимать решения, но и дать возможность осваивать сложные движения и переносить полученные навыки в реальный мир. В этом могут помочь универсальные модели, способные учитывать особенности строения разных тел и их структур. В этой статье расскажу про один такой проект.

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

Ниже разберемся, какая начинка у этого проекта, в чем его новизна и почему подобные подходы представляют интерес [4] для развития методов обучения человекоподобных роботов.

Почему заставить двигаться кинематическую модель сложнее, чем кажется

3D-контент есть почти в любой сфере: компьютерные игры, кино, виртуальные миры и цифровые симуляции. А в последнее время эта тематика становится еще более востребованной в связи с появлением огромного количества роботов совершенно разного типа.

WALL-E, EVE, UniTree G1, UniTree Go2

WALL-E, EVE, UniTree G1, UniTree Go2

ИИ-модели уже научились неплохо справляться с автоматическим риггингом по изображению объекта. Риггинг — это создание кинематической модели объекта, которая задает, как отдельные части объекта могут двигаться относительно друг друга: определение сочленений внутри объекта, связей между ними и иерархии.

Но даже если скелет построен правильно и объект готов к анимации, это еще не означает, что мы уже умеем заставлять его двигаться естественно. Чтобы скелет двигался логично [5], согласованно и в соответствии с поставленной задачей, по-прежнему требуется либо ручная работа специалиста по анимации, либо специализированные ИИ-модели, заточенные под определенные типы объектов, либо вообще нужно использовать актера и технологию захвата движения.

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

А что, если можно было бы просто передать системе готовый скелет и текстом объяснить, какое движение выполнить? Без ручной настройки анимации, поиска подходящего шаблона и дообучения модели под каждого нового персонажа. Для этого ИИ должен не просто понять смысл текстовой или голосовой команды, но и представлять, как новый неизвестный для него тип скелета может двигаться.

От текста к движению: что такое UniMate

Эту задачу и пытается решить исследовательский проект UniMate. Проект предлагает универсальную модель, которая по текстовой команде умеет генерировать анимацию для скелетов разного устройства. Идея в том, чтобы не обучать отдельную нейросеть под каждого персонажа и не настраивать модель заново при работе с новой структурой скелета.

Как это выглядит на практике?

Допустим, у нас есть 3D-модель персонажа — человек, робот, животное, механизм или фантастическое существо. Модель уже подготовлена к анимации: у нее есть скелет, определены суставы и связи между ними. Дальше пользователь задает простую текстовую команду: «Робот идет вперед», «Собака поворачивает голову и машет лапой» или «Дракон нападает и смотрит в сторону». UniMate обрабатывает инструкцию и генерирует последовательность движений, которая должна соответствовать смыслу команды и устройству конкретного персонажа.

Здесь важно не перепутать функциональность. UniMate не создает 3D-персонажа с нуля и не умеет строить скелет. На вход подается уже риггированная модель — то есть 3D-объект с подготовленной системой сочленений, которой можно управлять. Задача нейросети понять, как этот скелет должен двигаться, и сгенерировать подходящую анимацию по текстовым командам.

Главная особенность подхода — создание универсальной модели, которая умеет работать со скелетами разной топологии. Для этого UniMate обучена на огромном количестве разнообразных объектов и их скелетах, в результате чего понимает, как должен двигаться скелет, который она никогда не видела до этого.

Как это работает

В основе UniMate лежит специальная архитектура нейросети Topology-Aware Diffusion Transformer (TADiT), или диффузионный трансформер с учетом топологии скелета.

Если упростить: модель должна одновременно решать две задачи — понимать, какое движение описано в текстовой команде, и учитывать, как устроен персонаж, которого нужно анимировать. Ведь движение человека, птицы и змеи нельзя описать одной и той же последовательностью действий суставов.

Для генерации движений авторы используют подход flow matching, в которой нейросеть учится преобразовывать случайный шум в осмысленные данные, в данном случае — в последовательность движений. Но ключевая особенность UniMate не столько в самом способе генерации, сколько в том, как модель учитывает строение скелета. Для этого разработчики предусмотрели три механизма.

Внимание с учетом связей между суставами

Обычный механизм внимания [6] self-attention помогает нейросети определять, какие части входных данных важны друг для друга, но сам по себе не знает, как соединены суставы скелета. UniMate дополняет его информацией о структуре скелета: какие сочленения связаны напрямую и насколько далеко они находятся друг от друга по цепочке связей. Благодаря этому модель учитывает и локальные связи (например, между соседними суставами) и координацию движения всего тела.

Позиционное кодирование, которое не привязано к конкретному скелету

Трансформерам нужно понимать не только содержание данных, но и взаимное положение их элементов. В стандартных моделях для этого часто используют позиционные кодирования, рассчитанные на определенный порядок элементов. Но у разных скелетов могут отличаться и количество суставов, и схема их соединения. Поэтому авторы разработали механизм спектрального позиционного кодирования RoPE, который использует математическое описание структуры. Если проще — он помогает понимать структуру любой кинематической цепочки, представить особенности связей между суставами в форме, которую нейросеть может использовать при генерации движения. Это позволяет работать с разными кинематическими структурами.

Глобальное описание скелета

Помимо отдельных связей, модели нужно понимать общую структуру персонажа. Для этого UniMate собирает информацию о скелете в единое представление — своего рода структурный профиль, который учитывается на разных этапах генерации. Технически это реализовано через механизм attention-pooling, агрегирующий признаки с помощью внимания, и AdaLN-Zero — способ адаптировать работу слоев трансформера под входные данные. В результате модель учитывает не только отношения между отдельными суставами, но и устройство скелета в целом.

Без хороших данных универсальную модель не обучить

Нейросети нужны данные, на которых можно научиться работать с разными скелетами и движениями. И здесь у авторов UniMate возникла проблема: собрать готовый качественный обучающий датасет оказалось не так просто. 4D-данные — последовательности трехмерных моделей во времени — хотя и есть в открытом доступе, но, во-первых, их мало, во-вторых, они все отличаются друг от друга, а в-третьих некоторые вообще имеют фундаментальные ошибки [7]: в одних скелетах некорректно задан корневой сустав (broken root), в других встречаются лишние или ошибочные сочленения (phantom joints). Различаются и системы координат, и названия суставов, и способы организации скелетов. В результате внешне похожие данные могут быть устроены совершенно по-разному. Если напрямую смешать их в одном датасете, нейросеть не сможет понять, какие различия связаны с самим движением, а какие — с особенностями подготовки исходных моделей, в результате чего после обучения модель не будет выдавать то, чего бы мы от нее хотели.

Чтобы решить эту проблему, авторы создали собственный датасет из 13 006 анимационных последовательностей UniML3D. В него вошли не только люди и другие двуногие персонажи, но и четвероногие животные, птицы, морские обитатели, насекомые, змеи и даже различные механизмы.

Все данные, которые вошли в датасет UniML3D, прошли определенную подготовку и унификацию:

  1. Фильтрация. Сначала авторы отсеивают некорректные или некачественные примеры: данные с ошибками в структуре скелета и другими проблемами, которые могут мешать обучению.

  2. Аннотирование. Затем анимации получают текстовые описания, необходимые для обучения генерации движений по запросу. Для этого используются большие языковые модели (LLM), которые помогают создавать подписи и приводить названия суставов к единому стандарту. Это особенно важно, когда одинаковые по смыслу части скелета обозначены в исходных файлах по-разному.

  3. Канонизация. Наконец, скелеты приводят к согласованному представлению: нормализуют их структуру и формат описания. Иными словами, данные подготавливают так, чтобы модель могла сравнивать и обрабатывать скелеты разного устройства в рамках единого подхода.

В итоге получился UniML3D — согласованный обучающий набор, пригодный для работы с разными кинематическими структурами. Авторы опубликовали датасет на Hugging Face [8], чтобы другие исследователи тоже могли использовать его в своих экспериментах.

Как UniMate работает на практике

Что получается , когда модели дают конкретную задачу? Как она справляется с персонажами разного строения? Может ли по одной текстовой команде сгенерировать осмысленное движение для незнакомого скелета, а затем изменить или продолжить анимацию по новому запросу? Авторы приводят несколько примеров, чтобы понять, на что способна обученная модель и где проявляются особенности ее подхода.

В первом примере авторы показывают, как UniMate справляется с разными топологиями скелетов и текстовыми командами. Модели без дополнительного дообучения предлагают анимировать совершенно разных персонажей — роботизированную руку, робота Валли, роботизированную собаку с манипулятором, мультяшного робота, гуманоидного робота и так далее. Структура скелета у каждого абсолютно своя: количество суставов, их расположение и связи между ними. Для каждой топологии своя задача. Именно здесь проявляется ключевая идея UniMate: вместо уникальной модели для анимации каждого типа персонажа используется универсальная модель. 

Источник

В следующем примере авторы показывают один скелет, но меняют задания. Для одного и того же персонажа UniMate генерирует разные движения в зависимости от промпта. Здесь мы видим, насколько гибко модель интерпретирует команды и умеет управлять разными частями тела, показывать естественное движение объекта.

Источник

Дальше становится интереснее, авторы показывают, как модель работает с одним и тем же промптом для скелетов разной топологии: текстовая команда одна, а персонажи отличаются строением — у одного две ноги, у другого кроме двух ног еще есть две руки, а у третьего совсем другая система сочленений. Простая команда “Объект движется вперед”. UniMate должна не просто повторить одно и то же движение, а выполнить команду с учетом возможностей каждого персонажа и его кинематической модели.

Источник

Дальше сложнее. Авторы задают модели сложный промпт «Объект атакует вперед». Модель должна не просто выполнить простое движение, а интерпретировать то, как определенный объект может это сделать. Это показывает как модель старается сохранить смысл команды, адаптируя само движение к устройству конкретного объекта.

Источник

Но, пожалуй, самое интересное — когда не меняются ни скелет, ни текстовая команда, а результат каждый раз получается новым. UniMate способна генерировать множество вариантов одного и того же движения: они отличаются деталями, траекторией и характером исполнения, но при этом остаются естественными и соответствуют запросу. Это важное свойство генеративной модели: она не просто воспроизводит единственный заученный шаблон, а каждый раз генерирует что-то новое.

Источник

Бонусы при работе UniMate

Помимо основной задачи — генерации движений для скелетов разной структуры — авторы UniMate добились от модели еще несколько интересных возможностей.

Редактирование движения. Допустим, персонаж уже выполняет какое-то действие, но нужно дополнить его движение. Можно описать нужную правку текстом и UniMate генерирует измененный фрагмент с учетом двух одновременно выполняемых промптов. В качестве примера авторы приводят робота, который сначала просто поворачивает голову налево, а потом к этому добавляется движение вперед.

Источник

Создание переходов между движениями. Если задать UniMate несколько разных действий персонажа, модель умеет сама генерировать переходы между ними: крайние позы задаются пользователем, а модель заполняет промежуток плавным и правдоподобным движением.

Источник

Последовательное дополнение движений. Можно постепенно наращивать длительность анимации, задавая персонажу новые действия одно за другим. Такой подход помогает создавать логичные длинные последовательности действия персонажей.

Источник


Для Physical AI подобные сценарии интересны как направление дальнейших исследований. Роботу может понадобиться не только выполнить действие по команде, но и скорректировать движение, восстановить недостающий участок траектории или продолжить действие в изменившихся условиях. UniMate не решает эти задачи напрямую для физических роботов, однако демонстрирует общий принцип: генеративную модель можно использовать для гибкой работы с движением, а не только для воспроизведения заранее заданных последовательностей.

Если хотите разобраться в нем глубже, загляните на официальный сайт проекта [17], изучите датасет UniML3D на Hugging Face [8] и исходный код на GitHub [18]. 

Автор: Vladi_world

Источник [19]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/37026

URLs in this post:

[1] обучении: http://www.braintools.ru/article/5125

[2] интеллекта: http://www.braintools.ru/article/7605

[3] UniMate: https://arxiv.org/abs/2609.05415

[4] интерес: http://www.braintools.ru/article/4220

[5] логично: http://www.braintools.ru/article/7640

[6] внимания: http://www.braintools.ru/article/7595

[7] ошибки: http://www.braintools.ru/article/4192

[8] датасет на Hugging Face: https://huggingface.co/collections/Linzhan/unimate

[9] Источник: https://linzhanmou.com/unimate/assets/videos/diverse-skeletons-1.mp4

[10] Источник: https://linzhanmou.com/unimate/assets/videos/diverse-prompts-baymax.mp4

[11] Источник: https://linzhanmou.com/unimate/assets/videos/one-prompt-walk.mp4

[12] Источник: https://linzhanmou.com/unimate/assets/videos/one-prompt-attack.mp4

[13] Источник: https://linzhanmou.com/unimate/assets/videos/diverse-motions-cat.mp4

[14] Источник: https://linzhanmou.com/unimate/assets/videos/motion-editing.mp4

[15] Источник: https://linzhanmou.com/unimate/assets/videos/motion-inbetweening.mp4

[16] Источник: https://linzhanmou.com/unimate/assets/videos/motion-expansion.mp4

[17] официальный сайт проекта: https://linzhanmou.com/unimate/

[18] GitHub: https://github.com/Friedrich-M/UniMate

[19] Источник: https://habr.com/ru/companies/ru_mts/articles/1094804/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1094804

www.BrainTools.ru

Rambler's Top100