Существует несколько видов построения дополненной реальности, которые основаны на:
– маркерах;
– координатах местоположения в про- странстве.
Безмаркерные технологии основываются на получении различной информации от следующих датчиков для получения более точной информации о нахождении пользователя в пространстве: GPS-приёмник, акселерометр, гироскоп и т.д.
Маркерные технологии основываются на реальном объекте, называемом маркер. Данный маркер определяется и распознается с помощью специальных приложений. На основе полученной информации от маркера, такой как положение маркера, расстояние до маркера, программа может достаточно точно отобразить на него виртуальный объект, благодаря чему будет достигаться эффект его физического присутствия в реальном мире. При использовании дополнительных приспособлений, таких как графические фильтры и/или е-модели высокого качества, визуализированный объект может стать трудно отличимым от остальных элементов в сцене.
Цель исследования: дать углубленное и всестороннее понимание работы точного отслеживания маркеров дополненной реальности в реальном мире; показать необходимые сведения о понимании геометрии камеры в пространстве относительно маркера; определить, как именно происходит обработка изображений на мобильном устройстве для каждого кадра, полученного от камеры; обозначить понятие доверительного маркера, а также привести примеры, на что следует обратить внимание для создания хорошо отслеживаемого маркера для работы с SDK Vuforia.
Методы исследования. Ориентирование камеры в пространстве
Дополненная реальность на мобильных устройствах требует точного отслеживания поз 6DOF (6 степеней свободы) объектов реального мира [1]. 6DOF (6 степеней свободы) относятся к свободе перемещения твердого объекта в трехмерном пространстве. В частности, тело может свободно двигаться вперед / назад, вверх / вниз, влево / вправо в сочетании с вращением вокруг трех перпендикулярных осей (рис. 1).
Поза слежения, особенно для мобильных устройств, должна не иметь высоких требований и уметь адаптироваться к различным условиям.
Одной камеры, установленной на мобильном устройстве, обычно достаточно для настройки мобильной дополненной реальности. Видеопоток с камеры одновременно используется в качестве видеофона и для отслеживания позы камеры относительно окружающей среды. Это отслеживание позы должно выполняться в режиме реального времени с ограниченными вычислительными ресурсами мобильного устройства.
Рис. 1. 6 степеней свободы
Для достижения надежности и производительности обычным подходом является отслеживание прямоугольных доверительных маркеров. Vuforia – это библиотека отслеживания маркеров, которую мы используем в качестве примера в данной статье в качестве AR-движка. Причина, по которой была выбрана Vuforia, заключается в том, что она поддерживает широкий спектр мобильных платформ.
Камеры на устройстве должны быть откалиброваны до начала отслеживания так, что матрица проекции OpenGL может быть возвращена на базе платформы Vuforia.
Калибровка камеры передается в Vuforia API, возвращая матрицу проекции в стиле OpenGL, которая будет использоваться позже для умножения с позой обнаруженного отслеживаемого объекта. Причина, по которой необходима проекционная матрица, заключается в том, что экран смартфона – это 2D-поверхность. 3D-сцена, визуализируемая OpenGL, должна быть спроецирована на экран устройства в виде 2D-изображения.
Для калибровки необходимо настроить параметры ближней и дальней плоскости. Фрустум – это область пространства в моделируемом мире, которая может появиться на экране. Цель отбора видового фрустума состоит в том, чтобы определить, что находится внутри фрустума, а что нет. На экране отображаются только объекты внутри фрустума. Ближний и дальний планы являются границами этого фрустума (рис. 2) [2].
Матрица содержит не только матрицу перспективной проекции, но и фокусное расстояние, и основную точку камеры. Как показано на рис. 3 [3], тремя осями системы координат являются X1, X2 и X3. Ось X3 направлена в направлении обзора камеры и является главной осью. Точка R на пересечении оптической оси и плоскости изображения является главной точкой. Плоскость изображения расположена на расстоянии f от начала координат в отрицательном направлении и называется фокусным расстоянием.
Рис. 2. Конус фрустума
Рис. 3. Геометрия камеры
После калибровки камеры вышеупомянутый конвейер отслеживания (рис. 4) выполняется для каждого нового кадра камеры и дает оценочную позу, если обнаружен маркер. Несмотря на то что Vuforia частично является библиотекой с открытым исходным кодом, она немного похожа на черный ящик на стороне отслеживания и не очень раскрывает, как работают ее модули отслеживания. Таким образом, показан общий конвейер отслеживания, не специфичный для Vuforia.
Рис. 4. Процесс отслеживания
Маркеры и их особенности
Для отслеживания на основе изображений необходимы доверительные маркеры – это объекты реального мира, которые используются системой отслеживания. Следовательно, сначала мы должны обнаружить эти доверительные маркеры (рис. 5). Существуют различные алгоритмы обнаружения, но в принципе все они работают одинаково. Например, Ababsa и Mallem [4] представляют надежную методику кругового обнаружения, основанную на следовании краям. Алгоритм ищет ребра пиксель за пикселем. Чтобы определить край, они используют постоянное пороговое значение, которое означает, что менее яркие пиксели, чем определенный порог, считаются темными, а более яркие – яркими. Если обнаружена последовательность от темного к яркому, эта последовательность является кандидатом на границу. Когда последовательность замыкает цикл, обнаруживаются границы. В противном случае край исключается.
Рис. 5. Обнаружение фидуциалов
Результаты исследования и их обсуждение
Несмотря на то что Vuforia вносит важный вклад в плане отслеживания, для того чтобы маркер мог быть обнаружен позже, маркер должен иметь большое количество признаков. Vuforia определяет термин «увеличиваемый рейтинг», который означает, насколько хорошо изображение может быть обнаружено и отслежено с помощью Vuforia SDK.
Например, левое изображение на рис. 6 содержит только два объекта для каждого острого угла, так как мягкие углы не рассматриваются как объекты. Среднее изображение не содержит никаких особенностей, так как оно не содержит сильных углов. Правое изображение содержит четыре элемента.
Рис. 6. Особенности маркера
Локальный контраст маркера – это еще одна особенность, которая должна быть достаточно сильной, чтобы быть обнаруженной и отслеженной должным образом (рис. 7).
Рис. 7. Локальный контраст маркера
Характеристики должны быть равномерно распределены, как показано на рис. 8. Чем более сбалансировано распределение объектов в изображении, тем лучше изображение может быть обнаружено и отслежено.
Рис. 8. Распределение признаков в маркерах
Рис. 9. Повторяющиеся объекты в маркерах
Даже если изображение содержит большое количество объектов и сильный контраст, повторяющиеся паттерны, называемые сглаживанием, могут затруднить отслеживание, поскольку повторяющиеся объекты не показывают уникального паттерна для обнаружения (рис. 9).
После шага обнаружения доверительных маркеров мы имеем замкнутые полигоны. Однако они должны быть прямоугольниками, чтобы сформировать маркер. На следующем этапе прямоугольники определяются с помощью контуров. Для этапа проверки паттернов Vuforia предоставляет несколько типов трекеров (Image Tracker и др. [5]), которые расширяются от трекера базового класса.
Для каждого кадра камеры вызывается функция начала класса Renderer, которая возвращает объект состояния. Состояние показывает отслеживаемые объекты, которые в данный момент отслеживаются трекером (например, Image Tracker). Когда обнаруживается паттерн, который необходимо найти, последним шагом перед рендерингом является оценка позы относительно маркера. Подобно доверительному обнаружению и проверке паттернов, существуют различные алгоритмы оценки позы, которые все используют одну и ту же базовую концепцию: сначала создается начальная догадка, которая оценивает приблизительное положение и ориентацию отслеживаемого объекта относительно камеры. Затем эта первая оценка уточняется итеративно до тех пор, пока не будут выполнены конкретные критерии качества или не будет достигнуто максимальное число итераций [6]. Полученное матричное представление затем преобразуется в матрицу OpenGL, чтобы иметь возможность визуализировать модель в представлении пользователя.
Заключение
Был подробно представлен конвейер отслеживания приложений дополненной реальности в Vuforia, калибровка камеры, необходимая для запуска правильной сессии AR, создание доверительных маркеров, идентификация паттернов и оценка поз обнаруженных треков. Отслеживание – это фундаментальный шаг для всех приложений дополненной реальности. Учитывая ограниченную мощность мобильных устройств, Vuforia, таким образом, вносит важный вклад в AR-системы, работающие на мобильных платформах.