Мар 2, 2020

Трекинг положения в AR

image 3 3 - Трекинг положения в AR

Главная задача любого AR-устройства — правильно определять положение пользователя относительно объектов и определять эти самые объекты в пространстве. Именно это создает ощущение реальности происходящего. Положение высчитывается с помощью технологии трекинга. Сегодня мы подробно разберем все нюансы его работы.

image 4 2 1024x341 - Трекинг положения в AR

Что такое трекинг положения?

Технология позиционного трекинга была разработана для того, чтобы девайсы могли определить положение предметов в AR и VR. Трекинг точно определяет позицию человека или устройства в пространстве. Это делается с помощью трех координат расположения и трех определяющих углов. Трекеры являются основополагающими элементами в каждом процессе создания дополненной реальности, будь то лицо, руки, разные поверхности и т.д.

Создателям технологии не нужно было изобретать велосипед. Природа уже все сделала за них. Для ориентации в пространстве и позиционирования использует методы, схожие с органами чувств человека. Мы определяем свое местонахождение с помощью глаз, а AR/VR-системы так же быстро анализируют ориентацию и позицию относительно других предметов с помощью трекинга. После, данные обрабатываются операционной системой и девайс понимает, где находится.

Методы трекинга

image 4 6 1024x341 - Трекинг положения в AR

Маркеры

Трекинг с использованием маркеров предполагает заранее заданную модель объекта, которую можно отслеживать даже с одной камерой. Маркерами обычно служат источники инфракрасного излучения, а также видимые маркеры наподобие QR-кодов. Это возможно только в том случае, если пользователь находится в пределах видимости маркера. Это устаревший метод, который уже не так широко используется.

Frame 2 55 1024x341 - Трекинг положения в AR

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-решений.

image 4 1024x341 - Трекинг положения в AR

Алгоритмы SLAM используют не только для VR/AR. С помощью этого алгоритма роботы-пылесосы обходят углы мебели, а машины с автопилотом, как TESLA и Volvo, определяют где им повернуть.

Карта мира

image 4 1 1024x341 - Трекинг положения в AR

Карты мира делятся на два вида: разреженные (Sparse) и плотные (Dense). Разреженные алгоритмы используют небольшое количество точек для параметров модели, выделяя только значимые объекты. Плотные же стараются использовать всю информацию по максимуму и выстроить подробное изображение. Они в итоге дают  более детализированный результат. В плотной структуре карты все точки являются зависимыми друг от друга, без учета этого невозможно получить правильную плотную реконструкцию.

READ  Как создать приложение биткоин-кошелек для операций с криптовалютой
READ  Что выбрать для приложения iOS: нативный Swift или кроссплатформенный Flutter

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

Источники данных

image 4 3 1024x341 - Трекинг положения в AR

Главная задача SLAM — получить максимум информации извне на каждый кадр. Это происходит с помощью трех источников:

  1. Сенсоры. Компас, акселерометры и гироскоп помогают определить, где находятся AR-элементы и человек в пространстве. Происходит это за счет ускорения и отклонения.
  2. Камера. В современных телефонах несколько камер, и они дают отличный трекинг. Однако и здесь погрешности не исключены. Чтобы уменьшить их, камера работает вместе с сенсорами.
  3. Датчики глубины. Они определяют расстояние между объектами для более точной карты.

Как работает SLAM?

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

image 4 4 1024x341 - Трекинг положения в AR

Опорные точки

Так как маркеры — устаревший метод, SLAM автоматически находит опорные точки на предметах. Это можно сделать тремя способами:

  1. Semantic. Используется для распознавания реальных объектов, например, дороги, люди, их лица и руки.
  2. Feature-Based. Выделяет особенности окружения, например, углы мебели в комнате.
  3. Direct. Способ, который дает dense-карту окружения, выделяя каждый пиксель объектов, как особенность, а не только характерные их части.
Frame 2 56 1024x341 - Трекинг положения в AR

Описание точек

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

Положение объектов

Положение определяется с помощью данных, полученных из основных источников: камера, акселерометр, гироскоп, датчики и т.д. Учитывая погрешность всех источников данных, алгоритм вычисляет примерные расстояния.

Уточнение координат

Нужно больше точных показателей. Узнав местоположение, SLAM начинает уточнять примерное расстояние до контрольных точек. Происходят такие измерения 30-60 раз в секунду.

image 4 5 1024x341 - Трекинг положения в AR

Циклы и плоскости

Мы уже определили, что в буфер обмена сохраняются ключевые кадры. Именно в них определяются плоскости и слияние циклов. Если пользователь вернется в точку, которую уже проходил, цикл замкнется. SLAM позволяет не определять такие точки каждый раз, а просто запоминает циклы. Это позволяет экономить память системы и сделать трекинг более подробным и точным.

Плоскость — это группа точек, которые по показаниям датчиков находятся перпендикулярно или параллельно земле. Когда определяется плоскость, SLAM ведет отсчет от нее. Определение плоскостей важно для расстановки 3D-объектов в пространстве.

Подведем итоги

Без трекинга невозможна работа AR-приложений, роботов и даже машин с автопилотом. Мы подробно рассмотрели каждый этап определения местоположения AR-устройств. Алгоритм SLAM сейчас — это самый лучший метод трекинга, который широко используется. Конечно, это пример работы при условии того, что устройство правильно определяет местоположение без потери в пространстве.