Разработка мобильного приложения с использованием технологий дополненной реальности для отображения контекстно-информационного слоя

NovaInfo 34, скачать PDF
Опубликовано
Раздел: Технические науки
Просмотров за месяц: 1

Аннотация

В данной статье рассматривается проблема получения и просмотра контента на мобильных устройствах, повышение интерактивности представления информации с помощью элементов дополненной реальности. Рассмотрены алгоритмы расчета расстояния до объекта, распознавания QR кодов, приведены примеры программного кода.

Ключевые слова

МОБИЛЬНЫЕ ПРИЛОЖЕНИЯ, ДОПОЛНЕННАЯ РЕАЛЬНОСТЬ, РАСПОЗНАВАНИЕ QR КОДОВ

Текст научной работы

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

В качестве такой организации, в данном случае, выступает высшее учебное заведение. Целевая группа пользователей приложения — студенты ВУЗа.

Для предоставления студентам удобного, мобильного и интерактивного способа получения информации о ВУЗе, расписании, была разработана информационная система с широким использованием технологий современных мобильных устройств.

До разработки данной системы, просмотр и получение информации о ВУЗе было организовано с его официального сайта и оптимизированно только для настольных компьютеров, в связи с чем эти действия эргономически неудобно выполнять на мобильных устройствах, в которых управление реализовано путем сенсорного взаимодействия с экраном (смартфонах, планшетах). Важнейшие факторы, кардинально отличающие работу на мобильном устройстве от таковой на классическом компьютере:

  • Сравнительно небольшой размер экрана;
  • Отсутствие привычного указателя в виде мыши;
  • Отсутствие отдельной периферийной клавиатуры, работа только с экранными кнопками;
  • Все взаимодействие с устройством происходит через сенсорные датчики экрана.

В связи с этим, был пересмотрен способ представления информации на экране этих устройств с учетом их особенностей и соответствующих рекомендаций от ведущих компаний-разработчиков мобильных платформ, таких как AppleHumanInterfaceGuidelines.

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

В качестве операционной системы был сделан выбор в пользу iOS по следующим причинам:

  • Богатая и четкая документация встроенных классов;
  • Качество работы операционной системы, ее стабильность;
  • Гарантия стабильности работы приложения даже при глобальном обновлении версии ОС.

В роли площадки для пробного запуска и тестирования выступает Волжский политехнический институт (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет". Система использует информацию, полученную из структурных подразделений данной организации.

Роль дополненной реальности в разработанной системе

Дополненная реальность — воспринимаемая смешанная реальность с использованием «дополненных» с помощью компьютера элементов воспринимаемой реальности (когда реальные объекты «монтируются» в поле восприятия).

Элементы дополненной реальности разрабатываемой системы интегрированы в разработанную мобильную систему, сопровождаются подсказками для работы. В качестве объектов, на которые накладывается дополнительный контент, использованы корпуса ВУЗа (с геопривязкой) и QR-метки аудиторий/кабинетов. Контент построен с информационным характером. Реализация дополненной реальности совмещает в себе как визуальный поиск по геометкам, так и распознавание QR кодов с помощью встроенных в систему элементов.

В разрабатываемой системе дополненная реальность выполняет следующие функции:

  • Навигация. С помощью данного мобильного приложения есть возможность найти;
необходимый корпус ВУЗа в удобном для восприятия виде, прямо наложением точки на изображение камеры, с привязкой к электронному датчику положения и компасу устройства, с возможностью последующей постройки маршрута к выбранной точке.;;;;;;;;; ; ;
  • Получение информации о расписании занятий в рассматриваемой аудитории или других метаданных, связанных с ней. При наведении камеры устройства на специальную QR метку на двери учебной или неучебной аудитории, устройство определяет тип метки, запрашивает данные у сервера и выводит их. Работает данная функция по принципу сканирования.

Алгоритмы работы элементов дополненной реальности в разработанной системе

Расчет расстояния и задача координат

Координаты объекта состоят из двух значений: широта и долгота. Это географические названия для х и у значений точки в декартовой системе 2D.

  • Долгота определяет, будет ли точка принадлежать к востоку или к западу от опорной точки в Гринвиче, Англия. Значение может быть от +180 ° до -180 °;
  • Широта определяет, будет ли точка находиться к северу или к югу от экватора. Диапазон составляет от 90 ° на Северном полюсе -90 ° на южном полюсе.
Шар Земли с меридианами и параллелями.
Рисунок 1. Шар Земли с меридианами и параллелями

Если посмотреть на рисунок 1, можно увидеть линии долготы, которые идут от полюса до полюса — они также известны как меридианы. Также видно линии широты, которые идут по всему миру, которые также называются параллелями.

Расстояние между двумя параллелями равно 111 км, а расстояние между двумя меридианами также 111 км.

Имея это в виду, можно вычислить расстояние между двумя точками на земном шаре с этими формулами:

\triangle lon=\left(A_{lon}-B_{lon}\right)\cdot 111\triangle lat=\left(A_{lat}-B_{lat}\right)\cdot 111

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

d=\sqrt{{\triangle lon}^2+{\triangle lat}^2}

Это довольно легко, но к сожалению, это неправильно.

Если снова посмотреть на рисунок 1, можно увидеть, что расстояние между параллелями почти равны, но меридианы встречаются на полюсах. Так расстояние между меридианами сжимается, когда они перемещаются ближе к полюсам, и равно нулю на полюсах. Это означает, что формула выше, работает только для точек вблизи экватора. Чем ближе точки к полюсам, тем больше ошибка.

Для более точного расчета расстояния, можно определить расстояние по дуге большого круга. Это расстояние между двумя точками на сфере. Земля — не идеальный шар, это почти сфера, но данный метод тем не менее дает хорошие результаты. При известном широты и долготы двух точек можно использовать следующую формулу для вычисления расстояния большого круга.

\triangle\sigma=arctan\left(\frac{\sqrt{{\left({\cos {lat}_2\cdot {\sin \triangle lon\ }\ }\right)}^2+{\left({\cos {lat}_1\cdot {\sin{lat}_2-{\sin{lat}_1\cdot {\cos{lat}_2\cdot }}}}\triangle lon\right)}^2}}{{\sin{lat}_1\cdot {\sin{lat}_2+} }{\cos {lat}_1}\cdot {\cos{lat}_2\cdot }\triangle lon}\right)

Далее, чтобы получить дистанцию, необходимо:

d=r △σ

где d — радиус шара.

Необходимо вычислить радиус. Так как Земля — неидеальный шар, а сфера, необходимо воспользоваться формулой среднего радиуса (meanradius). Для этого необходим радиус экватора a = 6378.137 km и дистанция от центра сфероида до каждого полюса b = 6356.752 km далее, вычисляется средний радиус Земли (mean earth radius) по формуле, установленной Международным геодезическим и геофизическим союзом:

R_1=\frac{2a+b}{3}

Средний радиус земли ≈ 6371km

В итоге, получаем

d = △σ6371 km

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

Стоит учитывать, что если точки находятся на разных высотах, то вычисленное расстояние будет отличаться от реального, поскольку разница высот не учитывается. Это продемонстрировано на рисунке ниже (рисунок 9).

Разница расстояний при различной высоте точек.
Рисунок 2. Разница расстояний при различной высоте точек

Однако, в контексте разрабатываемой системы данный фактор не будет кардинально менять результаты расчета.

Узнав расстояние, мы можем вычислить коэффициент сдвига объекта по оси Z при его отображении, для создания эффекта наложения объектов друг на друга, когда они находятся в одной и той же точке в поле зрения пользователя. Чем дальше объект, тем больше он смещается по оси Z от пользователя. Также изменяется прозрачность объекта для улучшения эффекта наложения. Пример можно посмотреть на рисунке 3 ниже:

Пример определения расстояния до объекта.
Рисунок 3. Пример определения расстояния до объекта

На скриншоте выше (рисунок 3) можно увидеть, как определяется расстояние до объектов (в данном случае корпусы ВУЗа), а также рассмотреть зависимость положения элементов накладываемого слоя по оси Z от расстояния (эффект отдаления).

Определение QR меток

Для определения и обработки QR меток используются встроенные в систему классы и методы, предназначенные специально для этой цели. Apple не раскрывает подробный алгоритм их работы, поэтому глубокое описание их механизмов распознавания не представляется возможным. В данной статье описание будет ограничено примерами кода с описанием. Так как Apple жестко контролирует возможности приложений, созданных для iOS, данные классы являются единственно возможными для реализации решений такого рода.

Для работы библиотеки требуется подключить фреймворк AVFoundation.

#import

Для захвата картинки с камеры используется класс AVCaptureSession

_captureSession = [[AVCaptureSessionalloc] init];

Распознавание меток контролирует класс AVCaptureMetadataOutput

captureMetadataOutput = [[AVCaptureMetadataOutputalloc] init];[_captureSessionaddOutput:captureMetadataOutput];

Для отображения ее на экране существует класс AVCaptureVideoPreviewLayer, его инициализация и первичная настройка выполняется следующим образом:

_videoPreviewLayer = [[AVCaptureVideoPreviewLayeralloc] initWithSession:_captureSession];[_videoPreviewLayersetVideoGravity:AVLayerVideoGravityResizeAspectFill];[_videoPreviewLayersetFrame:_viewPreview.layer.bounds];[_viewPreview.layeraddSublayer:_videoPreviewLayer];

Далее нужно запустить распознавание

[_captureSessionstartRunning];

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

-(void)captureOutput:(AVCaptureOutput *)captureOutputdidOutputMetadataObjects:(NSArray *)metadataObjectsfromConnection:(AVCaptureConnection *)connection

После чего, данные о QR можно получить следующим образом, с помощью объекта AVMetadataMachineReadableCodeObject

AVMetadataMachineReadableCodeObject *metadataObj = [metadataObjects objectAtIndex:0];if ([[metadataObj type] isEqualToString:AVMetadataObjectTypeQRCode]) {  //ДАННЫЕТУТ}

Таким образом, реализация считывания QR меток очень компактна и базируется на надежных и эффективных классах, разработанных и постоянно поддерживаемых компанией-разработчиком ОС.

После получения данных, приложение делает запрос на сервер и отображает полученную информацию на экране пользователю.

Пример распознавания QRметки.
Рисунок 4. Пример распознавания QRметки
Пример отображения информации(расписание).
Рисунок 5. Пример отображения информации(расписание)

На скриншотах выше (рисунок 4) показано возможное применение распознавания QR кода. В данном случае в качестве метки выступает изображение, расположенное на двери аудитории ВУЗа.

Заключение

Была исследована проблема получения и просмотра востребованного контента, связанного с высшим учебным заведением, с современных мобильных устройства (планшетов и смартфонов). Для решения этой проблемы разработана представленная в данной статье система.

Для реализации возможностей дополненной реальности проведен анализ различных алгоритмов работы элементов ее экосистемы (например, расчет дистанции).

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

Данную систему при необходимости можно адаптировать для работы в любой организации. В данный момент система проходит тестирование на базе Волжского политехнического института (филиал) ФГБОУ ВПО "Волгоградский государственный технический университет" и будет внедрена в его информационную структуру.

Читайте также

Список литературы

  1. НИШЕВОЙ ОБЗОР РЫНКА «Многослойное представление информации (дополненная реальность)», Высшая школа маркетинга и развития бизнеса НИУ ВШЭ, Москва, декабрь 2012г.
  2. Филип Котлер, Фернандо Триас де Без. Новые маркетинговые технологии. Методики создания гениальных идей. – СПб.: Издательский дом «Нева», 2012. – 190 с.

Цитировать

Лясин, Д.Н. Разработка мобильного приложения с использованием технологий дополненной реальности для отображения контекстно-информационного слоя / Д.Н. Лясин, М.А. Мамедов. — Текст : электронный // NovaInfo, 2015. — № 34. — URL: https://novainfo.ru/article/3578 (дата обращения: 08.06.2023).

Поделиться