Трекинг положения в AR
Главная задача любого AR-устройства — правильно определять положение пользователя относительно объектов и определять эти самые объекты в пространстве. Именно это создает ощущение реальности происходящего. Положение высчитывается с помощью технологии трекинга. Сегодня мы подробно разберем все нюансы его работы.
Что такое трекинг положения?
Технология позиционного трекинга была разработана для того, чтобы девайсы могли определить положение предметов в AR и VR. Трекинг точно определяет позицию человека или устройства в пространстве. Это делается с помощью трех координат расположения и трех определяющих углов. Трекеры являются основополагающими элементами в каждом процессе создания дополненной реальности, будь то лицо, руки, разные поверхности и т.д.
Создателям технологии не нужно было изобретать велосипед. Природа уже все сделала за них. Для ориентации в пространстве и позиционирования использует методы, схожие с органами чувств человека. Мы определяем свое местонахождение с помощью глаз, а AR/VR-системы так же быстро анализируют ориентацию и позицию относительно других предметов с помощью трекинга. После, данные обрабатываются операционной системой и девайс понимает, где находится.
Методы трекинга
Маркеры
Трекинг с использованием маркеров предполагает заранее заданную модель объекта, которую можно отслеживать даже с одной камерой. Маркерами обычно служат источники инфракрасного излучения, а также видимые маркеры наподобие QR-кодов. Это возможно только в том случае, если пользователь находится в пределах видимости маркера. Это устаревший метод, который уже не так широко используется.
Inside-out
Этот метод реализуется благодаря оптическим сенсорам на движущемся объекте, а именно на AR-шлеме. Они отслеживают движение относительно неподвижных точек в окружающем пространстве. Inside out использовался в Microsoft Hololens, Project Tango, SteamVR Lighthouse.
Outside-in
Outside-in — метод при котором внешний неподвижный наблюдатель, то есть камера, определяет положение человека по характерным точкам. Этот подход реализован в Oculus Rift и многих системах Motion Capture.
SLAM Simultaneous Localization and Mapping
Что же это такое?
SLAM — это особый алгоритм, который используется в виртуальной и дополненной реальности. Он переводит данные, полученные из реального мира, в виртуальную среду. Также это работает и в обратную сторону. Метод Одновременной Локализации и Построения Карты используется для выстраивания карты в неизвестном пространстве с одновременным контролем текущего местоположения и пройденного пути.
Алгоритм состоит из двух частей: составление карты неизвестного окружающего пространства на основе измерений и определение своего местоположения на основе уже имеющихся данных. SLAM удобен для мобильных VR/AR-решений.
Алгоритмы SLAM используют не только для VR/AR. С помощью этого алгоритма роботы-пылесосы обходят углы мебели, а машины с автопилотом, как TESLA и Volvo, определяют где им повернуть.
Карта мира
Карты мира делятся на два вида: разреженные (Sparse) и плотные (Dense). Разреженные алгоритмы используют небольшое количество точек для параметров модели, выделяя только значимые объекты. Плотные же стараются использовать всю информацию по максимуму и выстроить подробное изображение. Они в итоге дают более детализированный результат. В плотной структуре карты все точки являются зависимыми друг от друга, без учета этого невозможно получить правильную плотную реконструкцию.
Оба алгоритма полезны, но для разных целей. Разреженную карту с меньшим количеством точек лучше использовать для мультиплеера и трекинга.Плотная структура больше подходит для освещения, рендеринга и окклюзии.
Источники данных
Главная задача SLAM — получить максимум информации извне на каждый кадр. Это происходит с помощью трех источников:
- Сенсоры. Компас, акселерометры и гироскоп помогают определить, где находятся AR-элементы и человек в пространстве. Происходит это за счет ускорения и отклонения.
- Камера. В современных телефонах несколько камер, и они дают отличный трекинг. Однако и здесь погрешности не исключены. Чтобы уменьшить их, камера работает вместе с сенсорами.
- Датчики глубины. Они определяют расстояние между объектами для более точной карты.
Как работает SLAM?
Чтобы вычислить максимально приближенное к действительности расстояние между человеком и объектами, SLAM производит множество операций за время каждого кадра.
Опорные точки
Так как маркеры — устаревший метод, SLAM автоматически находит опорные точки на предметах. Это можно сделать тремя способами:
- Semantic. Используется для распознавания реальных объектов, например, дороги, люди, их лица и руки.
- Feature-Based. Выделяет особенности окружения, например, углы мебели в комнате.
- Direct. Способ, который дает dense-карту окружения, выделяя каждый пиксель объектов, как особенность, а не только характерные их части.
Описание точек
Каждой точке дают дискриптор или код, чтобы определить ее положение. На одинаковых углах одного и того же объекта эти дискрипторы повторяются. Если подойти к предмету, алгоритм определит знакомый ему код точек и высчитает свое новое положение относительно них.
Положение объектов
Положение определяется с помощью данных, полученных из основных источников: камера, акселерометр, гироскоп, датчики и т.д. Учитывая погрешность всех источников данных, алгоритм вычисляет примерные расстояния.
Уточнение координат
Нужно больше точных показателей. Узнав местоположение, SLAM начинает уточнять примерное расстояние до контрольных точек. Происходят такие измерения 30-60 раз в секунду.
Циклы и плоскости
Мы уже определили, что в буфер обмена сохраняются ключевые кадры. Именно в них определяются плоскости и слияние циклов. Если пользователь вернется в точку, которую уже проходил, цикл замкнется. SLAM позволяет не определять такие точки каждый раз, а просто запоминает циклы. Это позволяет экономить память системы и сделать трекинг более подробным и точным.
Плоскость — это группа точек, которые по показаниям датчиков находятся перпендикулярно или параллельно земле. Когда определяется плоскость, SLAM ведет отсчет от нее. Определение плоскостей важно для расстановки 3D-объектов в пространстве.
Подведем итоги
Без трекинга невозможна работа AR-приложений, роботов и даже машин с автопилотом. Мы подробно рассмотрели каждый этап определения местоположения AR-устройств. Алгоритм SLAM сейчас — это самый лучший метод трекинга, который широко используется. Конечно, это пример работы при условии того, что устройство правильно определяет местоположение без потери в пространстве.