В последние годы вопрос о применении технологии дополненной реальности в мобильных устройствах становится особо острым по причине роста доли мобильных телефонов и планшетов на рынке. Как следствие, разработчикам приходится всё чаще встречаться с задачами использования технологий дополненной реальности [5] в мобильных устройствах, а также методами геопривязки данных в подобных приложениях и сервисах.
Дополненная реальность активно используется в медицине, сфере обучения [6] и развлечения. Также большую популярность набирают мобильные приложения дополненной реальности.
Важная составляющая приложений дополненной реальности — геолокация, отвечающая за точность определения местоположения реальных объектов. С помощью геолокации можно определить направление «взгляда» камеры, расстояние до объекта. Именно геолокация отвечает за то, насколько точно будут отображаться на экране объекты [7].
Именно поэтому проблема изучения и повышения эффективности отображения информации в мобильных приложениях дополненной реальности является актуальной проблемой на сегодняшний день [1].
Целью данной работы является повышение эффективности определения местоположения пользователя.
Основные задачи исследования:
- Анализ современных технологий создания дополненной реальности в мобильных приложениях;
- Анализ современных методов геопривязки данных в сервисах дополненной реальности.
На данный момент существует огромное количество инструментов для создания приложений дополненной реальности.
В таблице 1 приведены основные характеристики самых популярных инструментальных средств.
Название | Тип | Поддерживаемые платформы | Возможности |
Wikitude SDK | Бесплатный вариант и коммерческая версия | IOS, Android | GPS, сенсоры, маркеры, наличие API |
Metaio SDK | Бесплатный вариант и коммерческая версия | IOS, Android, Web, Windows | Отслеживание объектов в 3D, GPS, сенсоры, маркеры, наличие API |
BeyondAR | Бесплатный вариант (Open source) | IOS, Android | GPS, сенсоры, маркеры, наличие API |
Layar SDK | Бесплатный вариант и коммерческая версия | IOS, Android, Web | GPS, сенсоры, маркеры, наличие API |
Aurasma | Бесплатный вариант и коммерческая версия | IOS, Android | Поиск объектов, наличие API |
Qualcomm Vuforia | Бесплатный вариант и коммерческая версия | IOS, Android | Маркеры, наличие API |
Metaio SDK — это мощный и функциональный фреймворк, состоящий из различных компонентов, таких как: рендеринг, захват изображения, отслеживание и сенсоры. Metaio совместим со всеми основными платформами: IOS, Android, Windows.
Qualcom Vuforia использует стабильную, эффективную технику распознавания изображений. SDK состоит из различных компонентов: система управления целями, облачная база данных для объектов и устройств. Поддерживает системы IOS и Android.
Wikitude SDK и Layar включают в себя распознавание изображений, отслеживание объектов, поддержку 3D моделей. SDK в основном ориентированы на Web приложения, но неплохо справляются и с мобильными.
Aurasma достаточно мощная система, поддерживающая IOS и Android платформы. Но подходит в большей степени для создания игр.
BeyondAR — мощный продукт, предназначенный для создания игр и приложений дополненной реальности. Поддерживает Android и IOS платформы. Главным отличием от вышеперечисленных инструментов является то, что платформа абсолютно бесплатна, исходный код находится в открытом доступе.
Геотаргетинг (геопривязка) — в веб-разработке и интернет-маркетинге, метод выдачи посетителю содержимого, соответствующего его географическому положению.
В связи с развитием технологий и увеличение доли мобильных устройств на рынке, возрастает необходимость использования геопривязки данных и в мобильных устройствах.
На данный момент существуют следующие способы определения местоположения пользователя:
- IP тагретинг — позволяет определить географическое местоположение пользователя по его IP адресу, позволяя привязать данные к тому месту, где пользователь заходит в интернет. Данный метод является наиболее универсальным и используется в первую очередь в web разработках и мобильных приложениях. Он дополняет информацию в тех случаях, когда другие методы работают недостаточно хорошо, например, когда в настройках телефона пользователя выключен GPS. Не требуется вмешательства пользователя. Тем не менее, этот метод определяет положение пользователя до уровня почтового кода/индекса, что делает его не самым точным;
- Куки файлы, сохранённые в браузере пользователя, позволяют хранить информацию о ранее посещённых местах. Тем не менее, этот метод работает, если пользователь не удаляет куки-файлы и разрешает определение своего местоположения;
- GPS — Глобальная система позиционирования. Спутниковая система навигации, обеспечивающая измерение расстояния, времени и определяющая местоположение во всемирной системе координат. Этот метод является наиболее точным в определении местоположения пользователя, до нескольких метров. Доступен метод только для пользователей телефонов и смартфонов, в том случае, если они разрешили в настройках получение и отправку информации спутникам. Данная технология не очень точно работает в условиях плотной городской застройки, туннелях и рядом с небоскребами;
- Триангуляция посредством WiFi — происходит поиск ближайших WiFi сетей, измеряется сила сигнала и сравнивается с базой данных. В городские районы, содержащие, как правило, большое количество wifi сетей, позволяют получить точные достаточно данные. Для поддержания точности, провайдеры должны постоянно обновлять местоположения wifi точек. Точность, как правило, рассчитывается в районе сотни метров. Однако местоположение определятся не мгновенно, и пользователь может находиться вне зоны видимости сетей wifi;
- Посредством 2G/3G сетей — крайне неточный, но довольно распространённый метод, позволяющий определить местоположение пользователя исходя из сигнала сети. Локация пользователя тем точнее, чем ближе к нему вышка сотовой связи.
Соответственно главный недостаток метода — невозможность достаточно точно определить положение в дали от вышек сотовой связи (например в деревне, горах);
Не все из описанных выше методов применяются в мобильных технологиях. Наиболее часто используемыми являются методы определения положения через спутники GPS (поскольку данная система присутствует во всех современных смартфонах), посредством WiFi или GSM сетей.
Одними из самых важных параметров приложений дополненной реальности являются скорость работы и эффективность визуализации. Поскольку скорость во многом зависит от аппаратных возможностей устройства, то было решено исследовать и улучшить параметр эффективности.
Одним из основных критериев приложений дополненной реальности является эффективность визуализации. Данный параметр влияет на:
- Точность расчёта расстояния до объекта;
- Точность расположения объекта дополненной реальности на экране смартфона;
- Размер объекта.
Для определения местоположения объекта обычно используются широта и долгота. Однако, для использования дополненной реальности в мобильных устройствах этого недостаточно. Дополнительно будут использоваться:
- Угол обзора камеры;
- Расстояние области видимости.
Прежде всего, следует понимать, что угол обзора смартфона зависит от его ориентации (альбомная или портретная).
В своей работе работе [2] Dalmo Cirne рассматривает проблему корректного отображения элементов дополненной реальности в мобильном приложении, приводит математические выкладки для расчета расстояния до объекта, размера объекта на экране пользователя, основываясь на его местоположении.
Однако следует учесть, что данный метод не предусматривает высоты объекта.
Предположим, что объект находится на некоторой высоте h относительно уровня моря. Для подобных расчётов необходимо знать величину h — высота объекта относительно уровня моря. Однако данная величина, полученная посредством спутников GPS неприемлема (погрешность полученных значений будет крайне высока). В связи с этим возникает необходимость получить значение высоты расположения объекта относительно уровня моря.
Для начала надо разобраться, каким образом GPS получает информацию о высоте объекта.
Земля имеет форму эллипсоида, а не шара. Поэтому спутники GPS используют, в качестве этой формы, стандарт WGS-84 — опорный эллипсоид, представленный на рисунке 1.

GPS спутникам необходимо знать уровень моря во всех точках земли. Для этих целей была составлена карта уровня моря. Потому что в данном случае высота — это вертикальная дистанция от точки до уровня моря.

Однако GPS спутники сообщают высоту не относительно уровня моря, а относительно линии эллипсоида. Именно поэтому данные со спутников GPS имеют достаточно высокую погрешность и в расчётах их использовать не рекомендуется.
Таким образом, необходимо решить данную задачу и уменьшить погрешность значения вы соты объекта над уровнем моря со спутников GPS.
На рисунке 3 схематично изображены: линия опорного эллипсоида, линия уровня моря, и поверхность Земли.

Соответственно, для определения реальной высоты относительно уровня моря необходимо от высоты эллипсоида отнять реальный уровень моря:
Высота относительно эллипсоида может быть получена посредством GPS, высоту уровня моря в конкретной точке можно получить с помощью различных online сервисов, для мобильных устройств под операционной системой Android разработано решение в виде Google Elevation API от Google.
Таким образом, имеем координаты объекта в трехмерном пространстве.
Без учета высоты, расстояние между двумя точками можно рассчитать исходя из теоремы Пифагора:
,
где а — положение первого объекта, заданного широтой и долготой, b — положение второго объекта, заданного широтой и долготой.

На рисунке 5 представлено расположение точек, приближенное к реальному — в трехмерном пространстве.

Зачастую объекты, расстояние между которыми требуется определить, находятся на различных уровнях относительно уровня моря, соответственно расстояние между ними с учетом этой высоты и без неё будет отличаться. Добавление параметра высоты объектов относительно уровня моря позволит повысить точность определения положения объектов. Из рисунка 6 видно, что расстояние от точки a до точки с (расстояние без учета высоты) меньше, чем расстояние от точки а до точки b (реальное расстояние с учетом высоты), что говорит о погрешностях вычислений в реальных условиях.
Таким образом, получаем точки а и b, представленные тремя координатами:
,
где ах — долгота, ау – широта, аz — высота (выражена в метрах на уровнем моря).
,
где bх — долгота, bу- широта, bz — высота (выражена в метрах на уровнем моря).
Итоговая формула, для расчета расстояния между двумя точками по теореме Пифагора:
Поскольку расстояние между точками не будет превышать 700 метров, то точность данной формулы является приемлемой в контексте будущего приложения.
В таблице 2 приведен пример расчета расстояния между двумя точками с использованием старого и нового методов.
Точка 1 | Точка 2 | Расстояние, м | Погрешность, % | |||
Старый способ | Новый способ | Абс. | Отн. | |||
1 | Широта — 48.785985 Долгота — 44.785122 Высота — 0 | Широта — 48.785985 Долгота — 44.785122 Высота — 12 | 151.154 | 151.756 | 3.82 | 2.53 |
2 | Широта — 48.786709 Долгота — 44.784741 Высота — 0 | Широта — 48.788005 Долгота — 44.783712 Высота — 25 | 162.627 | 164.662 | 12.93 | 7.90 |
3 | Широта — 48.786709 Долгота — 44.784741 Высота — 32 | Широта — 48.788005 Долгота — 44.783712 Высота — 2 | 347.356 | 349.707 | 14.94 | 4.29 |
4 | Широта — 48.786709 Долгота — 44.784741 Высота — 0 | Широта — 48.788005 Долгота — 44.783712 Высота — 5 | 347.356 | 348.453 | 7.97 | 2.28 |
5 | Широта — 48.785896 Долгота — 44.751011 Высота — 10 | Широта — 48.785807 Долгота — 44.746861 Высота — 55 | 304.190 | 308.425 | 26.91 | 8.78 |
Из таблицы видно, чем больше расстояние между объектами и больше разница в высоте, тем большую погрешность вычислений даёт старый способ вычисления расстояния.
Таким образом, в ходе исследования, были рассмотрены существующие технологии создания дополненной реальности, а также методы геопривязки данных в мобильных приложениях дополненной реальности. В ходе работы был рассмотрен и улучшен метод определения местоположения пользователя с помощью спутников GPS.