Мар 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  Как создать приложение, которое будет приносить деньги

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

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

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 сейчас — это самый лучший метод трекинга, который широко используется. Конечно, это пример работы при условии того, что устройство правильно определяет местоположение без потери в пространстве.