MOCHI: как улучшить захват движений человека и объекта

MOCHI: как улучшить захват движений человека и объекта

Захват движений человека давно перестал быть уделом дорогих голливудских студий. Kinect, iPhone Face ID, Azure Kinect — эти устройства делают 3D-реконструкцию тела доступной каждому разработчику. Но когда речь заходит о сценах, где два человека одновременно взаимодействуют с одним объектом — передают инструмент, несут стол, танцуют в паре — стандартные системы захвата ломаются. Рука не совпадает с ручкой чашки, пальцы проваливаются сквозь предмет, а motion выглядит дёргано и неестественно. Исследователи предложили MOCHI — фреймворк, который чинит эти артефакты автоматически, восстанавливая качественные данные из того, что capture-системы записали с ошибками.

Проблема совместного захвата MHOI

Collaborative multi-human object interaction (MHOI) — это сцена, где два или более человека одновременно взаимодействуют с одним объектом. В отличие от одиночного motion capture, где камера отслеживает маркеры на теле одного человека, MHOI требует согласования трёх типов отношений одновременно: человек—объект, человек—человек и объект—физика.

Представьте сцену: хирург передаёт скальпель ассистенту. Система захвата фиксирует позицию каждого хирурга, но сам скальпель — отдельный объект с собственной системой координат. В момент передачи рука одного врача и рукоятка инструмента должны встретиться с точностью до миллиметра, но на практике между ними остаётся зазор в несколько сантиметров. Это контактное несовпадение — главный артефакт MHOI capture.

Помимо этого возникают motion jitter, когда временные метки кадров не синхронизированы между участниками, и пропущенные пальцы — мелкие articulation-детали теряются из-за occlusions, когда рука закрывает маркер.

Современные optical motion capture системы работают хорошо для одиночных персонажей. Но MHOI сцены генерируют каскад артефактов. Традиционные marker-based системы в multi-view setups ограничены constrained environments, подвержены occlusion-induced tracking failures и требуют дорогого hardware. Более lightweight решения, вроде monocular camera-based motion capture, демонстрируют reduced accuracy и артефакты из-за depth ambiguities и single-view constraints.

Итог: MHOI данные, captured с existing methods, страдают от inconsistent contact, temporal discontinuities, unnatural motions и missing detailed finger motion. При этом масштабирование data collection остаётся сложным из-за стоимости multi-view setups.

Двухэтапный фреймворк MOCHI

MOCHI решает задачу в два последовательных этапа, каждый из которых отвечает за свою часть проблемы.

Этап 1: Оптимизация физически правдоподобных захватов. Система получает на вход зашумлённые 3D trajectories тел участников и 3D mesh объекта. Из этих данных восстанавливаются корректные позы рук — там, где пальцы соприкасаются с поверхностью объекта. Оптимизация идёт с несколькими constraint-функциями: минимизация проникновения руки сквозь объект (hand-object interpenetration penalty), максимизация площади контакта, согласование ориентации пальцев с локальной геометрией поверхности. На выходе — cleaned hand poses и extended hand-object interaction sequences.

Время вычислений: 3–4 минуты на руку для 6000 шагов оптимизации. Computation time определяется количеством contact phases, а не длительностью каждой фазы.

Этап 2: Диффузионный refinement полного body motion. Очищенные захваты подаются в pretrained diffusion model, обученную на одиночном human motion (HumanML3D dataset). Модель уже «знает», как выглядит естественное движение человека — без jitter и артефактов. MOCHI модифицирует objective-функцию диффузии: добавляются члены для human-object consistency и human-human coordination. Диффузионный процесс итеративно denoise-ит motion, одновременно учитывая все constraints.

Время: 2 минуты на 6-секундное окно для 500 шагов — масштабируется пропорционально количеству окон. Всё на одной NVIDIA 5070 Ti Super GPU с PyTorch 2.9 и CUDA 12.8.

Почему диффузия, а не 直接 оптимизация

Можно было бы jointly оптимизировать все параметры — позы рук, body motion и trajectories объекта — в одном большом optimization loop. Но это работает плохо по двум причинам.

Во-первых, optimization landscape для совместной задачи — невыпуклый и содержит много локальных минимумов. Denoising diffusion model提供«хороший» prior — естественное человеческое движение — который сужает пространство поиска и направляет оптимизацию в правильную сторону.

Во-вторых, single-person motion priors кодируют знание о том, как двигаются люди: биомеханику, законы инерции, типичные паттерны locomotion и manipulation. Это знание получено из массивного датасета motion capture и не может быть легко выражено в виде explicit constraints.

Ключевое преимущество декомпозиции: MOCHI может использовать существующие hand-object interaction priors и single-person motion priors, для которых high-quality data относительно abundant и collection более feasible, чем для MHOI-specific cases. Это разделение труда между этапами позволяет задействовать готовые датасеты вместо сбора новых.

Почему это важно для индустрии прямо сейчас

Motion capture остаётся узким местом в production pipeline. Стоимость захвата одной минуты качественных данных в профессиональной студии — $5000–$15000, и это без учёта времени на post-processing. Типичная анимационная сцена требует hours или days ручной чистки артефактов.

MOCHI автоматизирует часть этой работы. Даже если фреймворк не идеален, он сокращает количество кадров, требующих ручной правки. Это напрямую влияет на экономику production pipeline для игр, фильмов и VR-контента.

Для робототехники качество training data определяет performance. Современные роботы обучаются на данных о том, как люди взаимодействуют с объектами — imitation learning, dataset of human demonstrations. Если training data содержит артефакты — робот научится с ошибками: будет промахиваться мимо объектов, применять неправильное усилие, неправильно планировать trajectory. MOCHI делает данные чище, а значит роботы будут точнее и надёжнее.

Для VR и AR: захват рук пользователя в реальном времени критичен для immersive experience. Виртуальные руки должны совпадать с реальными объектами в комнате. MOCHI может улучшить tracking quality, хотя текущая реализация — offline. Для долгосрочного развития это направление с большим потенциалом.

Метрики и что они значат на практике

MOCHI оценивается по двум направлениям: насколько хорошо восстанавливается plausible contact из зашумлённого input, и насколько natural получившийся motion.

Contact metrics (выше = лучше):

Contact F1 — гармоническое среднее precision и recall для контактов. Если F1 = 0.85, это значит, что 85% предсказанных контактов соответствуют реальным, и система нашла 85% всех реальных контактов.

Contact Precision — доля предсказанных контактов, которые действительно произошли. Высокая precision означает мало false positives: система не «придумывает» контакты там, где их нет.

Contact Recall — доля реальных контактов, которые были восстановлены. Высокий recall означает мало false negatives: система не пропускает реальные касания.

V2V — процент вершин кисти вблизи поверхности объекта. Если V2V = 90%, это значит, что 9 из 10 вершин hand mesh находятся на корректном расстоянии от объекта.

SDF (Signed Distance Field) — измеряет interpenetration: насколько вершины объекта проникают сквозь руку. Отрицательное значение — корректный контакт, положительное — проникновение. MOCHI оптимизирует SDF к минимуму.

Motion naturalness metrics (ниже = лучше):

Foot sliding — процент кадров со sliding-артефактами ног при контакте с полом. Если персонаж «скользит» во время стояния — это ошибка. Чем меньше, тем естественнее.

Acceleration — среднее изменение ускорения по всем body joints. Физически непрерывное движение имеет низкое ускорение. Резкие скачки — признак джиттера или ошибок в данных.

Interpersonal collision — процент кадров с межсубъектными коллизиями. Если два человека в данных «проходят сквозь» друг друга — это артефакт.

Contact threshold для определения контакта — 6 см между palm joint и объектом. Это эмпирически подобранный порог, при котором достигается оптимальный баланс precision/recall для MOCHI.

Датасеты и эксперименты

Тестирование на CORE4D dataset —包含了 различные collaborative object manipulation scenarios: совместное перемещение, вращение и передача объектов. Три варианта для проверки на разных уровнях качества:

Variant 1: IMU-based. Human poses recorded с IMU-based mocap suit и retargeted в SMPL-X parameters через per-frame optimization. Object trajectories tracked optical markers в multi-view capture setup. Это best-case scenario.

Variant 2: Noisy synthetic. Deliberately introduced additional noise: Gaussian-filtered uniform noise с 15 cm std на глобальных root translations людей и filtered uniform noise 2 cm std на joint positions. Симулирует lower-quality capture conditions. Это stress-test для алгоритма.

Variant 3: Monocular video. SLAHMR (supports multi-person tracking) извлекает human motion из monocular videos. Эмулирует real-world lightweight capture conditions — именно то, что доступно без дорогого оборудования.

Для training Stage 1 (hand-object interaction generation) используется GRAB dataset. Для diffusion-based motion prior в Stage 2 — HumanML3D dataset.

Архитектура: почему SMPL-X

MOCHI использует SMPL-X (Skinned Multi-Person Linear Model with eXpressive details) для представления hand poses. Это стандартная parametric model для human body, которая представляет тело как набор параметров — pose и shape — и восстанавливает 3D mesh.

Почему это важно? SMPL-X already encoded знание о том, как устроена рука: 51 postural degrees of freedom для кисти, включая fingers, thumb и wrist. Это означает, что MOCHI не нужно «изобретать» анатомически корректные позы — модель уже знает, как выглядят физически возможные положения пальцев.

Результат Stage 1 — это wrist orientation и translation expressed in local coordinate frame, reparameterized из SMPL-X parameters. Это означает, что hand pose representation согласована с body representation, что упрощает Stage 2.

Практические применения

Анимация и игровая индустрия. MOCHI ускоряет clean-up phase: вместо ручной правки каждого кадра аниматор запускает автоматическую обработку. Grasp optimization выполняется один раз per contact phase — это 3–4 минуты на руку. Diffusive refinement обрабатывает 6-секундные окна за 2 минуты каждое. Это сокращает time-to-market для контента.

VR и AR. Для immersive VR критично, чтобы виртуальные руки совпадали с реальными объектами. MOCHI улучшает tracking quality. Для AR-приложений виртуальные объекты должны реалистично взаимодействовать с реальными руками.

Робототехника. Роботы обучаются на данных о том, как люди взаимодействуют с объектами — imitation learning, dataset of human demonstrations. MOCHI повышает качество этих данных, making robots more accurate and reliable.

Data augmentation. Одна и та же motion capture session может быть «надето» на объекты разного размера и формы. Это решает проблему дороговизны motion capture: вместо пересъёмки для каждого объекта система адаптирует существующие записи. Variant 2 в экспериментах (noisy synthetic) демонстрирует: система восстанавливает качественные данные из deliberately degraded input.

Ограничения и честная оценка

Текущая реализация — offline pipeline. Диффузионный этап требует dozens итераций, что делает real-time challenging для VR и телеприсутствия. Однако future work может включать distillation в faster model или reduced diffusion steps для interactive applications. Пока это ограничение для production offline, не для research.

Качество результата зависит от качества input: если initial noise слишком велик — даже MOCHI не сможет полностью восстановить корректные контакты. Система good для «умеренно зашумлённых» данных, но есть предел. Variant 2 (15 cm noise) показывает границы.

Object mesh должен быть достаточно качественным — с правильной геометрией и масштабом. Stage 1 использует SMPL-X hand geometries и pose parameters, и reparameterizes hand pose parameters.

FAQ

Нужны ли специальные маркеры или оборудование? MOCHI работает с output стандартных optical motion capture систем — Vicon, OptiTrack, Azure Kinect. Фреймворк принимает на вход уже зашумлённые данные в стандартном формате без требования к spezific hardware. Не нужно менять ваш capture workflow.

Какие типы объектов поддерживаются? Система протестирована на широком range — от small hand-held tools (скальпель, отвёртка) до крупных предметов (стулья, столы). Главное требование: объект должен быть представлен как 3D mesh с правильной геометрией. Чем качественнее mesh, тем точнее constraints.

Как MOCHI справляется с occluded fingers? Stage 1 оптимизирует позы пальцев, даже если они не видны камерами напрямую. Система использует constraints от object geometry и body pose, чтобы восстановить наиболее вероятную позу. Это не магия — в случаях сильной окклюзии точность падает, — но результат значительно лучше, чем оставлять пальцы в некорректных позах.

Почему 6 см как contact threshold? Это empirically determined порог для разделения «в контакте» и «не в контакте». При 6 см между palm joint и поверхностью объекта достигается оптимальный баланс между precision и recall. Это не универсальная константа — разные приложения могут требовать корректировки.

Можно ли использовать MOCHI для real-time? Текущая реализация — offline pipeline. Grasp optimization 3–4 минуты на руку и diffusion 2 минуты на 6-секундное окно — это для offline production. Real-time возможен через distillation или reduced steps, но это future work.

Итог

MOCHI решает конкретную проблему: артефакты в данных совместного захвата движений человека и объекта. Двухэтапный подход — оптимизация физически правдоподобных захватов плюс диффузионный refinement с interaction-aware constraints — позволяет восстанавливать корректные и естественные motion sequences.

Ключевое преимущество подхода — использование data-driven priors. Вместо того чтобы вручную кодировать все физические и биомеханические constraints, MOCHI полагается на знание диффузионной модели о том, как двигаются люди. Это делает результат естественным, а не «физически корректным, но нелепым».

Если вы работаете с motion capture данных или строите системы на основе human motion — MOCHI стоит протестировать на ваших данных. Фреймворк не требует специального оборудования и может интегрироваться в существующий production pipeline как drop-in enhancement stage.

← Все записи