Table of Contents

Сочетание отслеживания объектов и отслеживания движения

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

Основной принцип

Motion Fusion объединяет данные позы 3D-отслеживания объектов и отслеживания движения устройства для более надежной оценки позы.

Синхронизация и взаимное дополнение данных

  • Визуальное отслеживание: вычисляет позу текущего кадра (позиция + вращение) через сопоставление характерных точек изображения, но легко подвержено влиянию перекрытия, размытия или быстрого движения.
  • Отслеживание движения: использует высокочастотный вывод IMU-сенсора и вывод визуального изображения для получения данных движения устройства, но может иметь накопительную ошибку дрейфа.
  • Motion Fusion:
    • Выполняется выравнивание систем координат позы визуального отслеживания и позы отслеживания движения устройства.
    • Когда целевой объект хорошо виден и движется стабильно, основным является визуальное отслеживание; его поза постоянно передается в модуль fusion для уменьшения накопительного дрейфа.
    • Когда целевой объект потерян, занимает слишком малую часть кадра или быстро движется, визуальное отслеживание отказывает, и основным становится отслеживание движения.

Ключевые технические моменты

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

Применимые сценарии и ограничения

Motion Fusion подходит не для всех сценариев. Функция Motion Fusion не применима в любом из следующих случаев:

  • Целевое устройство не поддерживает функции отслеживания движения, такие как ARCore/ARKit. Подробный список поддерживаемых устройств см. в Поддержка устройств отслеживания движения.
  • Целевой объект динамичен в сцене, например игрушка или фигурка в руке.

В остальных сценариях Motion Fusion значительно улучшает пользовательский опыт 3D-отслеживания объектов.

  • Быстрое движение: быстрое перемещение устройства пользователем может вызвать смазывание движения и отказ визуального отслеживания.
  • Цель исчезает: виртуальный контент во всей сцене продолжает отображаться, даже если вид покидает цель или цель перекрыта.
  • Удаление от цели: отслеживание остается стабильным, когда целевой объект занимает слишком малую часть кадра.
  • Условия низкой освещенности: производительность визуального отслеживания снижается, при этом необходимо сохранить опыт.

Эффекты и ожидаемые результаты

В подходящих сценариях Motion Fusion обеспечивает более стабильный и плавный опыт, чем одно 3D-отслеживание объектов.

Идеальный результат

  • Более стабильное отслеживание: виртуальные объекты не дрожат и не скачут.
  • Плавный переход: когда визуальное отслеживание отказывает, изменения объединенной позы остаются непрерывными и естественными.
  • Устойчивость к помехам: при потере или перекрытии целевого объекта либо быстром движении устройства виртуальный объект продолжает следовать за движением устройства.

Неидеальные случаи и меры

Явление Причина Восприятие пользователем Решение
Сначала не действует Отслеживанию движения требуется время для инициализации На начальном этапе контент исчезает Добавьте подходящие UI-подсказки и убедитесь, что инициализация системного отслеживания движения завершена
Заметный дрейф Системная ошибка накапливается, долго нет визуальной коррекции Виртуальный объект отклоняется от исходной позиции Предложите пользователю сократить время перекрытия или добавьте подсказки визуальной релокализации
Снижение производительности Две функции долго работают одновременно Падает частота кадров, изображение зависает Это нормально; Motion Fusion можно отключить через API

Метод проверки ожидаемого результата

Проверьте на поддерживаемом устройстве в реальной сцене:

  1. Наведите устройство на целевой объект и убедитесь, что виртуальный объект стабилен.
  2. Закройте объект рукой на 2 секунды и двигайте устройство, затем проверьте, движется ли виртуальный объект плавно.
  3. Уберите руку и убедитесь, что виртуальный объект быстро возвращается в правильное положение без скачка.

Итоги и лучшие практики

Motion Fusion значительно повышает робастность 3D-отслеживания объектов во многих сценариях, но требует аппаратной поддержки устройства и достаточной производительности.

API для включения/отключения Motion Fusion в реальном времени: