Table of Contents

EasyAR Plane Detection

EasyAR Plane Detection автоматически обнаруживает горизонтальные плоскости в окружении во время работы EasyAR Motion Tracker и предоставляет возможности, такие как размещение виртуальных объектов.

Принцип работы EasyAR Plane Detection

EasyAR Plane Detection — это простая возможность понимания окружения, которая автоматически выполняется синхронно во время работы EasyAR Motion Tracker. На основе пространственно-временной информации, полученной от камеры устройства и инерциальных датчиков, система непрерывно моделирует реальную среду, распознает и отслеживает горизонтальные плоскости и обеспечивает базовую поддержку размещения виртуальных объектов, выравнивания взаимодействия и пространственного понимания.

planedetection

Конкретный процесс:

  1. Motion tracking

    Во время motion tracking EasyAR непрерывно получает два основных типа данных: последовательные кадры изображения от RGB-камеры, а также данные акселерометра и гироскопа. С помощью алгоритма визуально-инерциального слияния система оценивает непрерывные шесть степеней свободы положения и ориентации устройства в мировой системе координат, предоставляя стабильную траекторию камеры с низким дрейфом для последующего пространственного моделирования и анализа плоскостей.

  2. Обнаружение feature point и триангуляция

    На основе оценки pose EasyAR извлекает и отслеживает стабильные визуальные feature point из последовательности изображений, например углы или заметные текстурные области, и с помощью многовидовой геометрии триангулирует эти точки, восстанавливая их позиции в 3D-пространстве и формируя локальное представление 3D point cloud.

  3. Генерация кандидатных областей плоскости

    После получения 3D point cloud система выполняет геометрический анализ, чтобы найти наборы точек, которые могут принадлежать одной плоскости. По отношению к направлению гравитации система может выделять кандидаты горизонтальных плоскостей, то есть плоскости, нормали которых приблизительно параллельны направлению гравитации, например полы и столешницы.

  4. Отслеживание и обнаружение плоскости

    EasyAR проверяет и обновляет обнаруженные плоскости в последовательных кадрах:

    • Определяет, поддерживают ли новые наблюдаемые 3D-точки существующую модель плоскости;
    • Динамически корректирует область, границу и confidence плоскости согласно согласованности наблюдений;
    • Удаляет кратковременные или нестабильные кандидаты плоскостей. Результат становится “доступной плоскостью” только тогда, когда соблюдены требования геометрической согласованности и временной стабильности.
  5. Система координат плоскости и выравнивание виртуального контента

    После подтверждения плоскости можно использовать результат plane detection для более реалистичных AR-эффектов:

    • Размещать виртуальные объекты на плоскости, выравнивая их по реальному масштабу и направлению;
    • Выполнять ray casting, Hit Test, чтобы отображать касания экрана в позиции на реальной плоскости;
    • Реализовывать логику взаимодействия на основе плоскости, например привязку объектов, перемещение и решения по окклюзии.

Поскольку плоскости и система motion tracking используют одну мировую систему координат, виртуальные объекты могут сохранять стабильную и непрерывную пространственную согласованность при движении устройства пользователем.

Plane detection зависит от стабильной pose и пространственной структуры, предоставляемых motion tracking, а результаты plane detection, в свою очередь, могут усиливать понимание окружения, например помогать размещению контента и проектированию взаимодействия. Вместе они образуют основу пространственного восприятия EasyAR, но в архитектуре системы они развязаны. Plane detection не меняет результат оценки pose самого motion tracking.

Лучшие практики

Чтобы обеспечить хороший опыт использования plane detection, следуйте этим практикам.

  • Направляйте пользователей двигаться медленно и избегать неподвижности, быстрых движений или вращения на месте.
  • Избегайте плоскостей без текстуры, однотонных, зеркальных или других поверхностей, которые трудно визуально распознать.
Примечание

Plane Detection — это функция EasyAR для распознавания горизонтальных плоскостей в окружении. Surface Tracking не обнаруживает и не распознает плоскостные структуры в сцене, поэтому их нужно различать.

Дополнительное чтение