Научная статья на тему 'Разработка алгоритма маркирования визуальных объектов на экране смартфона'

Разработка алгоритма маркирования визуальных объектов на экране смартфона Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
111
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАРКИРОВАНИЕ ВИЗУАЛЬНЫХ ОБЪЕКТОВ / ДОПОЛНЕННАЯ РЕАЛЬНОСТЬ / ANDROID-ПРИЛОЖЕНИЕ / ВЕБ-СЕРВИС / MARKING VISUAL OBJECTS / AUGMENTED REALITY / ANDROID-APPLICATION / WEB-SERVICE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фадеев А.Е.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Фадеев А.Е.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPING AN ALGORITHM TO MARK visual objects on the smartphone screen

The research develops an algorithm to mark visual objects on the smartphone screen to orient at unknown place or discover city sights. An external web service is created to provide information about the objects closest to a user.

Текст научной работы на тему «Разработка алгоритма маркирования визуальных объектов на экране смартфона»

Программные средства и информационные технологии

УДК 004.78

РАЗРАБОТКА АЛГОРИТМА МАРКИРОВАНИЯ ВИЗУАЛЬНЫХ ОБЪЕКТОВ

НА ЭКРАНЕ СМАРТФОНА

А. Е. Фадеев

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

E-mail: andrewmanun@gmail.com

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

Ключевые слова: маркирование визуальных объектов, дополненная реальность, android-приложение, веб-сервис.

DEVELOPING AN ALGORITHM TO MARK VISUAL OBJECTS ON THE SMARTPHONE SCREEN

A. E. Fadeev

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: andrewmanun@gmail.com

The research develops an algorithm to mark visual objects on the smartphone screen to orient at unknown place or discover city sights. An external web service is created to provide information about the objects closest to a user.

Keyword: marking visual objects, augmented reality, android-application, web-service.

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

Исходные данные для разработки алгоритма базируются на множестве разных датчиков [1]:

- K - текущее местоположение (GPS);

- P - координата искомого объекта (внешний API сервис);

- ah - угол горизонтального обзора (API камеры [2]);

- av - угол вертикального обзора (API камеры);

- az - азимут от направления камеры (магнитный компас);

- pitch - угол наклона смартфона к горизонту (акселерометр);

- width - ширина экрана;

- height - высота экрана.

В первую очередь, необходимо создать внешний веб-сервис с RESTfull архитектурой [3], которому c помощью POST запроса будут передаваться текущие координаты пользователя, на что сервис должен ответить списком объектов, находящихся поблизости. Для удобства использования данных от сервиса, они должны быть в JSON формате [4].

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

SELECT *, SQRT(POW(?-Latitude,2)+ +POW(?-Longitude, 2)) AS Distance

FROM Objects ORDER BY Distance LIMIT 0, 10.

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

Пусть точка K - точка, где находится камера, а точка P - местоположение искомого объекта. Зная текущие координаты объекта и координаты искомого объекта можно вычислить расстояние между ними

(KP):

KP = yj(Kx -Px)2 +(Ky -Py)2.

Решетневские чтения. 2017

_1 /

\ \ p

ah /

К Камера

Схема проекции объекта (вид сверху)

KH - вектор направленный вдоль азимута, значение которого получено от магнитного компаса. Теперь, можно вычислить азимут на искомый объект, то есть угол между направлением на север и направлением на объект, используя следующую формулу:

azKP = tan"1 ( -py,kx -ky).

Далее необходимо вычислить угол между направлением камеры (вектор KH) и направлением на искомый объект (вектор KP), используя следующую формулу:

a z, azKP = tan-1 (sin (az-azKP ),cos (az-azKP)).

Для того чтобы определить расстояние до линии, на которой находится объект, что, по сути, является высотой треугольника, необходимо воспользоваться следующей формулой:

KH = KP cos (a z, azKP

(a z, azKP ).

С целью проецирования искомого объекта на экран мобильного телефона, необходимо вычислить отношение длины отрезка AP к ширине экрана (основание треугольника):

AH = KH tan (ай/2);

PH = AH - KP sin (аz^ozKP).

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

printX = width

PH

2 АН

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

Данные с датчиков поступают с достаточно большими колебаниями относительного истинного значения, для решения этой проблемы следует воспользоваться фильтром Калмана, который способен оценить вектор состояния динамической системы, используя ряд неполных и зашумленных измерений [5].

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

Библиографические ссылки

1. Graham M., Zook M. Augmented reality in urban places: contested content and the duplicity of code. Institute of British Geographers. 2012. 479 p.

2. Milette G., Stroud A. Professional Android Sensor Programming. 2012. 552 p.

3. Rhone R. The JSON Data Interchange Format. Ecma International, 2013. 8 p.

4. Richardson L., Amundsen M. RESTful Web APIs, O'Reilly Media, 2013. 375 p.

5. Перов А. И. Статистическая теория радиотехнических систем. М. : Радиотехника, 2003. 400 с.

References

1. Graham M., Zook M. Augmented reality in urban places: contested content and the duplicity of code. Institute of British Geographers. 2012. 479 p.

2. Milette G., Stroud A. Professional Android Sensor Programming. 2012. 552 p.

3. Perov A. I. Statisticheskaya teoriya radiotekhni-cheskikh sistem. M. : Radiotekhnika, 2003. 400 p.

4. Rhone R. The JSON Data Interchange Format. Ecma International. 2013. 8 p.

5. Richardson L., Amundsen M. RESTful Web APIs, O'Reilly Media. 2013. 375 p.

© Фадеев А. Е., 2017

i Надоели баннеры? Вы всегда можете отключить рекламу.