Motion capture без камер: каналы важнее числа датчиков
Наушники, стельки, и ни одной камеры. Исследователи из Кембриджского университета и Университета Чалмерса построили систему motion capture, которой для восстановления позы нижней части тела хватает одного инерциального датчика в AirPods и двух в умных стельках. Работа вышла на arXiv 28 сентября 2026 года, и её главный сюжет оказался не там, где его ждёшь. Вопрос не в том, сколько датчиков надеть на человека, а в том, каким каналам данных внутри этих датчиков можно доверять.
Разреженный инерциальный motion capture это восстановление движений по показаниям нескольких инерциальных датчиков IMU (акселерометр и гироскоп), без камер и маркеров. Смотреть по сторонам нужно только на этапе обучения, дальше система работает автономно. Так делают аватар-контроль в VR, домашний анализ походки и клинические тесты подвижности.
Что построили в Кембридже
Конфигурация принципиально потребительская: датчик в наушнике AirPods отдаёт ориентацию, ускорение и гироскоп, а две стельки Striv дают фирменную Euler-ориентацию и ускорение, но без сырого гироскопа. Датчика на тазу нет, и сломаны сразу два допущения, на которых стоит литература: корневая трансляция и осевое вращение таза наблюдаются слабо, а ошибку калибровки стелек нельзя снять гироскопической фильтрацией, потому что гироскопа в них просто нет.
Разметку собирали в четыре RGB-D камеры RealSense, но это учитель, а не вход: псевдо-ground-truth генерирует модель SAM 3D Body, и на деплое камеры не нужны. Аппаратной синхронизации тоже нет, потоки выравнивают после съёмки кросс-корреляцией движения между модальностями. Получился компактный, но аккуратный бенчмарк: 35 записей одного испытуемого, 82 417 кадров, 45,8 минуты на 30 кадрах в секунду. В протокол вошли ходьба, повороты, боковые шаги, приседания, выпады, вставание со стула и клинические сценарии вроде резкой остановки и ходьбы с параллельной задачей.
Приз и яд в одном потоке
Интуиция за конфигурацией простая: стопы лучше всех видят опорные фазы, махи и контакты, а голова даёт стабильный ориентационный репер. Абляция каналов, однако, показала резкую внутреннюю структуру. Ускорение стоп в одиночку даёт 66,6 мм ошибки по метрике sim-MPJPE, это лучшая конфигурация из всех протестированных, и она заметно точнее модели, видящей только голову (79,0 мм). Ориентация стоп в одиночку даёт 83,9 мм, то есть в среднем хуже, чем вообще без стоп. А если сложить оба канала вместе, ориентация съедает почти весь выигрыш ускорения: 66,6 превращаются в 80,3 мм.
«Приз и яд приходят в одном потоке», формулируют это авторы. Токсичный элемент это фирменная ориентация от прошивки стельки: она смещена, смещения монтажа большие и в основном наклонные, что подтверждают независимые проверки по гравитации и глубине. Тест доза-отклик это доказывает: чем больше постоянного смещения в инъекции, тем монотонно хуже результат, с 86,6 до 114,7 мм. Снять проблему фильтрами не получится, потому что сырого гироскопа в стельках нет, а одноразовая калибровка, как выяснится дальше, не помогает.
Обучаемое доверие вместо фиксированного слияния
Стандартный подход конкатенирует все потоки, и транк обязан доверять каждому каналу одинаково. Вместо этого авторы дают модели возможность понижать вес подозрительного канала. Для каждого потока (голова, левая стопа, правая стопа) и каждого блока каналов (ориентация, ускорение) обучается скалярный гейт: короткий свёрточный слой с сигмоидой, который по локальной временной статистике решает, насколько доверять этому блоку прямо сейчас. Всего получается шесть гейтов. Одиночному кадру смещение ориентации не видно, а короткому окну длиной в доли секунды уже видно, и это ключ к детекции медленных дефектов.
Главная деталь в обучении. На предобучении по синтетике AMASS (виртуальные сенсоры на голове и стопах) в данные подмешивают три вида поломок: постоянное смещение, медленный дрейф и обрывы потока. Каждой поломке соответствует метка ненадёжности, и гейты тренируются против неё вспомогательной функцией бинарной кросс-энтропии. Без этой цели селективность не возникает: вариант без вспомогательного сигнала оказался худшим среди потоковых гейтов на чистых данных (89,8 мм). На реальном дообучении гейты больше не подсказывают: там «чистые» стопы изначально смещены, и продолжение обучения гейтов просто выдавливает их в открытое состояние против задачи. Селективность остаётся перенесённой из синтетики, а позиционная функция потерь работает одна.
Что показали гейты
Канальный гейт выигрывает у всех вариантов слияния во всех режимах. На чистых данных 69,4 мм против 86,6 у модели без гейтов, под постоянным смещением 74,2 против 100,5, под дрейфом 69,6 против 87,6, под обрывами 72,8 против 94,1. Прирост устойчивый: он воспроизводится на трёх сидах и остаётся знако-согласованным во всех семи классах движений.
Самое интересное в том, как гейты себя ведут. На чистых реальных данных, где никаких синтетических поломок нет, гейты ориентации стоп сами частично закрываются: 0,41 слева и 0,15 справа, тогда как все остальные блоки держатся на 0,99 и выше. Разметка на тесте для этого не нужна. Причём это не откалиброванная шкала «плохости»: лево-правая асимметрия не объясняется разницей в величине смещений, гейт отражает структуру конкретного канала. Когда смещение добавляют в дообучение, гейты закрываются ещё плотнее и остаются прикрытыми даже на чистых данных, то есть решение записывается в веса.
Обрывы ловятся онлайн: внутри dropout-всплесков гейты ускорения стоп схлопываются до 0,08 против 1,00 снаружи, медианное падение на записи 0,94, recall всплесков 99,5-99,7% при 2-6% ложных срабатываний и AUROC от 0,92 до 0,999. Один механизм обслуживает и постоянное смещение, и мгновенные отказы.
Два отрицательных результата из этой серии не менее ценны. Гейты уровня потока (один скаляр на устройство вместо канала) почти не выигрывают у статических обученных весов: 86,7 против 83,7 мм. Весь выигрыш локализован именно на канальной гранулярности. А оракульная жёсткая маска, выключающая канал целиком по известной разметке отказа, проваливается катастрофически: 132,9 мм под тем же смещением, с которого начали. На обучении модель видела только короткие всплески обрывов, а не выключение потока на всю запись, и жёсткое маскирование на тесте становится сдвигом распределения. Вывод: мягкое понижение веса, а не жёсткое переключение. Та же логика в отдельном контроле: аугментация помех без гейтов не лечит, а калечит (102,2 мм на чистых данных).
Внешние сравнения: HMD-Poser и цена калибровки
На чистых данных модель статьи уступает HMD-Poser, трансформеру на 17,4 млн параметров с предобучением на полном AMASS: 71,1 против 64,4 мм. Зато под отказами картина переворачивается: худший случай HMD-Poser это плюс 16,1 мм к чистому результату, у гейта плюс 3,5 мм, то есть относительная деградация +25% против +4,9%. Добавление аугментации помех HMD-Poser не спасает: его чистая точность падает до 76,2 мм, а устойчивость не растёт. А ещё система из Кембриджа работает на CPU в 4,6 раза быстрее при на 37% меньшем числе параметров. Для always-on сценариев в носимых устройствах это и есть рабочая точка: немного уступить на идеальных данных, чтобы не разваливаться на реальных.
Отдельный сюжет, который обычно пропускают. Если заранее известно, что ориентация стоп токсична, её можно просто выбросить, и такой априорный дроп отлично держится под отказами стоп (66,6-67,6 мм). Но у него нет механизма для непредвиденного отказа: когда обрывается поток с головы, которого в обучении не было, априорный дроп рушится до 92,9 мм, а канальный гейт частично закрывает ориентацию головы и держит 79,3 мм. В этом и разница между «выкинуть известную плохую деталь» и «научиться взвешивать доверие».
Калибровка остаётся самой уязвимой частью системы. Одноразовая калибровка по T-pose в начале записи хуже, чем полное её отсутствие: 116,7 против 103,2 мм. Одной статичной позы не хватает, чтобы надёжно зафиксировать крепление датчика, и остаточная ошибка вмораживается в систему. Нужна пер-записная калибровка, и гейтинг её не отменяет: без калибровки система держит 94,0 мм, это лучший результат среди всех вариантов без камер, но далеко до калиброванной модели (79,0 мм). Авторы называют замену пер-записной калибровки на что-то, не требующее камер, главным вопросом на будущее.
Честные ограничения
Оговорки у работы серьёзные, и авторы их не прячут. Испытуемый один, поэтому миллиметровые числа могут не переноситься на других людей, хотя механистические выводы про структуру каналов выглядят переносимыми. Псевдо-ground-truth приходит из одного семейства моделей (SAM 3D Body), так что все миллиметры относительны к этой разметке, а не к настоящей анатомии. Помехи при обучении синтетические, а не собранные в полевых условиях. Наконец, без датчика на тазу корневая трансляция и вращение таза в принципе вне досягаемости этого сетапа.
Почему это важно
Тезис работы универсальнее конкретной задачи. Надёжность это свойство канала, а не устройства: один и тот же поток стелек несёт и лучший сигнал (ускорение), и худший (прошивочную ориентацию). Стандартные лекарства не работают: аугментация без гейтинга вредит, оракульные маски проваливаются, одноразовая калибровка хуже её отсутствия. А работает обучаемое доверие, причём перенесённое из синтетических поломок на реальные данные без разметки. Тот же паттерн просится в любую мультисенсорную систему: роботов, AR-гарнитуры, автомобили, медицинские носимые устройства. Синтетические повреждения на предобучении превращаются в селективные гейты на деплое, и это дешёвый способ покупать устойчивость до того, как отказы случатся вживую.
Часто задаваемые вопросы
Почему нельзя просто добавить больше датчиков?
Потому что ошибка сидит внутри каналов, а не в их количестве. Ориентация от прошивки стельки смещена по определению, и лишний сенсор не исправит смещение её собственного канала. Дозовый тест это подтверждает: чем больше инъектированное смещение, тем хуже результат, сколько бы датчиков ни стояло.
Что такое reliability gating простыми словами?
Это обучаемый кран доверия на каждом канале каждого устройства. Модель сама прикручивает канал, когда его данные выглядят подозрительно: закрывает ориентацию стоп на смещённых данных, схлопывает гейты ускорения внутри обрывов. Краны учатся на синтетических поломках и продолжают работать на реальных данных без разметки.
Метод уже готов к продукту?
Почти. Он выигрывает на всех стресс-тестах и работает на CPU в 4,6 раза быстрее HMD-Poser, но без пер-записной калибровки точность падает до 94 мм против 79 с ней. Именно замена этой калибровки названа главным блокером выхода из лаборатории.
Итог
За тремя потребительскими датчиками (наушник, стелька, стелька) стоит аккуратный набор инженерных разворотов: псевдо-разметка через vision-модель, выравнивание без аппаратной синхронизации, синтетические поломки как источник обучающего сигнала и, главное, отказ от принципа «чем больше датчиков, тем лучше» в пользу принципа «учитывай, насколько можно доверять каждому каналу». Из этого вырос лучший результат среди всех вариантов слияния на отложенных записях: 69,4 мм на чистом сигнале и лучшая устойчивость под каждым из трёх типов отказов.
Ирония в том, что самый полезный сигнал для трекинга нижней части тела и самый вредный живут в одном и том же устройстве, и разделить их можно только на уровне каналов. Поэтому motion capture без камер упирается не в физику датчиков, а в качество управления доверием к ним. Статья лежит на arXiv, код открыт на GitHub.