Table of Contents

Сочетание плоскостного отслеживания и отслеживания движения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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