Совмещение трекинга плоскости с трекингом движения
В этом разделе объясняется, как объединить трекинг плоского изображения с трекингом движения устройства для повышения стабильности трекинга в сложных сценах и улучшения пользовательского опыта. Рассмотрены основные принципы, ожидаемые результаты и анализ потенциальных проблем.
Основные принципы
Совмещение движений (Motion Fusion) объединяет данные о позиции и ориентации (позе) из трекинга плоского изображения с данными о позе из трекинга движения устройства для получения более надежной оценки позы. Основной процесс:
Синхронизация и взаимодополнение данных
- Визуальный трекинг: вычисляет позу текущего кадра (позиция + вращение) путем сопоставления характерных точек изображения, но подвержен влиянию перекрытий, размытия или быстрого движения.
- Трекинг движения: использует данные IMU-датчиков с высокой частотой обновления и выходные данные визуального изображения для получения данных о движении устройства, но подвержен накоплению дрейфовой ошибки.
- Механизм совмещения:
- Выравнивание систем координат позы визуального трекинга и позы трекинга движения устройства.
- Когда целевое изображение четко видно, движение стабильно: приоритет у визуального трекинга. Позы визуального трекинга постоянно передаются в модуль совмещения для коррекции, чтобы уменьшить накопленный дрейф всей системы.
- Когда целевое изображение потеряно, занимает слишком малую площадь в кадре или происходит быстрое движение: визуальный трекинг не работает, приоритет у трекинга движения. Прогнозирование совмещенной позы на основе текущей позы трекинга движения.
Ключевые технические аспекты
- Синхронизация временных меток: выравнивание временных меток визуальных кадров и данных трекинга движения для избежания дрожания из-за задержек.
- Выравнивание систем координат: выравнивание систем координат на основе траекторий визуального трекинга и трекинга движения.
- Повторное позиционирование (Relocalization): при повторном появлении изображения визуальный трекинг быстро берет управление, корректируя возможную накопленную ошибку и "возвращая" виртуальный объект на правильную позицию.
Применимые сценарии и ограничения
Совмещение движений подходит не для всех сценариев. Оно не применимо в следующих случаях:
- Целевое устройство не поддерживает функции трекинга движения, такие как ARCore/ARKit. Подробный список поддерживаемых устройств: Поддержка устройств для трекинга движения.
- Целевое изображение/плоский объект в сцене является динамическим, например, карточка, которую держат в руке.
Во всех остальных сценариях использование совмещения движений значительно улучшит пользовательский опыт трекинга плоского изображения, включая, помимо прочего:
- Быстрое движение: пользователь быстро перемещает устройство, размытие при движении приводит к сбою трекинга изображения.
- Исчезновение цели: виртуальное содержимое продолжает отображаться во всей сцене, когда цель покидает кадр или перекрывается динамическими объектами (например, людьми).
- Удаление от цели: пользователь отдаляет устройство, из-за чего целевое изображение занимает слишком малую площадь в кадре, но трекинг остается стабильным и непрерывным.
- Условия низкой освещенности: производительность визуального трекинга снижена, требуется поддержание опыта.
Эффект и ожидаемые результаты
При условии применимости сценария, использование совмещения движений обеспечит более стабильный и плавный пользовательский опыт по сравнению с использованием только трекинга плоского изображения.
Идеальный эффект
- Более стабильный трекинг: виртуальные объекты не дрожат, не скачут.
- Плавные переходы: при сбое визуального трекинга изменения совмещенной позы происходят непрерывно и естественно.
- Устойчивость к помехам: виртуальные объекты продолжают отслеживать движение устройства при потере целевого изображения, его перекрытии или быстром движении устройства.
Неидеальные ситуации и решения
| Явление | Причина | Восприятие пользователем | Решение |
|---|---|---|---|
| Изначально не работает | Трекингу движения требуется время на инициализацию | Содержимое исчезает на начальном этапе | UI-подсказка, подтверждающая завершение инициализации трекинга движения системой |
| Заметный дрейф | Накопление системной ошибки, длительное отсутствие визуальной коррекции | Виртуальный объект отклоняется от исходной позиции | Предложить пользователю сократить время перекрытия или добавить подсказку для повторного позиционирования |
| Падение производительности | Длительная одновременная работа двух функций | Падение частоты кадров, подтормаживание | Нормальное явление, можно отключить совмещение движений через API |
Метод проверки ожидаемых результатов
Тестирование на поддерживаемом устройстве в реальных условиях:
- Навести на изображение, убедиться в стабильности виртуального объекта.
- Перекрыть изображение рукой на 2 секунды, перемещая устройство, проверить плавность движения виртуального объекта.
- Убрать руку, убедиться, что виртуальный объект быстро возвращается на место без скачков.
Итоги и лучшие практики
Совмещение движений значительно повышает надежность трекинга плоского изображения во многих сценариях, но требует поддержки со стороны оборудования устройства и достаточной производительности. Разработчикам следует избирательно включать эту функцию в зависимости от устройств целевой аудитории и предусматривать схему упрощения (degradation) для малопроизводительных устройств.
API для включения/выключения совмещения движений в реальном времени:
- Нативный: setResultPostProcessing
- Unity: EnableMotionFusion