Назад Go Back

РАЗРАБОТКА ПРИЛОЖЕНИЯ ДОПОЛНЕННОЙ РЕАЛЬНОСТИ

English version
Пасынков Даниил Александрович (Национальный исследовательский технологический университет "МИСиС")


Аннотация

В данной работе раскрывается понятие технологии дополненной реальности и рассматривается классификация приложений дополненной реальности. Приведены средства для разработки приложений дополненной реальности. Автором уделяется внимание процессу разработке приложения при помощи платформы Unity c использованием библиотеки ARToolKit.



Ключевые слова: дополненная реальность, разработка, маркер, компьютерное зрение, Unity, ARToolKit

Введение

Дополненная реальность (Augmented reality, AR) – это технология, которая позволяет в режиме реального времени накладывать различные виды информации (текст, 2D и 3D графика, аудио) на объекты реального мира.

Пол Милгром и Фумио Кисино в 1994 году описали термин континуум «виртуальность - реальность» - это пространство между реальностью и виртуальностью, в промежутке между которыми находятся дополненная реальность и дополненная виртуальность (Рисунок 1). Дополненная реальность находиться ближе к реальности, а дополненная виртуальность наоборот к виртуальной реальности [1].

В 1997 году Рональд Азума в своей работе «Исследование дополненной реальности» сформировал основные принципы, которые характерны для системы, использующей дополненную реальность:

1)   комбинирование реального и виртуального;
2)   взаимодействие в режиме реального времени;
3)   работа с трёхмерным пространством.

Можно сказать, что дополненная реальность – это технология интеграции виртуальных объектов в реальный мир [2]. 

Классификация приложений дополненной реальности

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

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

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

Для получения информации о реальном мире приложения дополненной реальности используют различные сенсоры устройства. Можно выделить два типа приложений: геопозиционные (используют информацию с датчиков GPS, компаса и акселерометра) и оптические (получают информацию с видеокамеры устройства).

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

Средства разработки приложений дополненной реальности

В основе любого приложения дополненной реальности, использующего анализ поступающей с камеры картинки, лежит система компьютерного зрения. Одной из наиболее известных библиотек, реализующих подобный функционал, является OpenCV. Она предоставляет достаточное количество низкоуровневых возможностей и очень хороша для извлечения максимума информации из изображения. Но для приложений дополненной реальности требуется быстро и качественно найти в кадре ограниченный набор заранее известных объектов и отобразить поверх изображения виртуальный объект [4]. Именно этой задачей занимаются различные библиотеки дополненной реальности.

Для разработки приложения дополненной реальности необходима программная библиотека, которая способна распознавать 2D маркеры и накладывать поверх реального изображения дополнительный контент. Также важным пунктом является поддержка широкого спектра устройств, что поможет обеспечить большую доступность приложения. Всем этим условиях удовлетворяет библиотека дополненной реальности ARToolKit [5].

ARToolKit представляет собой набор программных библиотек, которые могут использоваться в приложениях дополненной реальности. Большое достоинство библиотеки – открытый исходный код. То есть библиотека распространяется абсолютно бесплатно. Библиотека ARToolKit позволяет разработать приложение дополненной реальности для самых популярных платформ: Android, iOS, Windows, Linux. Обычно для разработки приложения под каждую операционную систему необходима своя среда разработки, но ARToolKit поддерживает самую популярную в мире платформу разработки для создания кроссплатформенных игр и интерактивного контента – Unity [6].

Основные особенности ARToolKit:

1)   надежная система слежения за маркером,
2)   поддержка калибровки камеры,
3)   одновременное отслеживание нескольких объектов,
4)   поддержка нескольких языков программирования,
5)   оптимизация для мобильных устройств,
6)   полная поддержка Unity3D.
 
Весь процесс наложения виртуальных объектов на реальное изображение связан с квадратным маркером. (Рисунок 2). Квадратный маркер состоит из светлых тонов (как правило белый), окружен толстой границей темного цвета (как правило черный) и имеет внедренное изображение высокого контраста, которое называется шаблон. Шаблон делает квадратный маркер уникальным. Квадратные маркеры распознаются, отслеживаются и используется для расчета позиции в 3D-пространстве [7].

Библиотека дополненной реальности ARToolKit работает следующим образом:

1)  Камера захватывает видео из поля зрения камеры и посылает его к компьютеру.
2)  Программное обеспечение на компьютере, просматривает каждый кадр на наличие квадратных форм (квадратных маркеров).
3) Если квадратный маркер найден и содержит в себе шаблон, который согласован и идентифицирован, то программа использует математические формулы для расчета положения и ориентации маркера по отношению к камере.
4) После того, как положение и ориентация камеры определенны, рисуется трехмерная модель с использованием сдвига по отношению к расчетной позиции и согласованием с ориентацией.
5)   Эта модель рисуется на переднем плане захваченного видео и сверяется с движением фонового видео, заставляя модель быть прикрепленной к заднему плану.
6)  Конечный результат отображается на дисплее и когда пользователь смотрит на экран приложения, он видит визуализированную модель над видео потоком в реальном времени. Возникает иллюзия, что предмет на самом деле находиться в пространстве.

Создание приложения дополненной реальности

Для разработки приложения дополненной реальности с использованием библиотеки ARToolKit в Unity необходимо соблюсти следующие требования:

1)   Веб-камера или другой источника видеосигнала.
2)   Unity v5.0 или более поздняя версия.
3)   Если необходимо развертывание для Android: Android build support for Unity.
4)  Если необходимо развертывание для iOS: iOS build support for Unity и Apple Xcode v4.2 или более поздней версии.
 
После создания нового проекта Unity, в него необходимо импортировать специальный пакет, который содержит в себе все компоненты библиотеки ARToolKit. Импортированные компоненты отобразятся в панели Project.

Следующим шагом создается сцена (экран приложения), которая будет отображаться на дисплее устройства. На созданную сцену необходимо добавить основные компоненты библиотеки ARToolKit:

1)   ARController – управляет инициализацией, настройкой, запуском и остановкой библиотеки.
2)   ARMarker – управляет настройкой маркеров.
3)   AROrigin – считается центром виртуального мира, должен являться корневым элементом сцены.
4)  ARCamera – ассоциирует виртуальную камеру Unity с контентом, отвечает за визуализацию. Должен быть дочерним компонентом камеры Unity.
5)   ARTrackedObject - представляет маркер, который отслеживается в пространстве.
 
Все виртуальные объекты, которые необходимо визуализировать должны быть его дочерними объектами.Unity оснащен мощным механизмом импорта трехмерных моделей и поддерживает следующие форматы: .3ds, .max, .obj, .fbx, .dae, .ma, .mb, .blend. Для импорта трехмерной модели можно просто перенести файл в окно редактора, импортированная модель появится в окне Project и будет готова к использованию внутри редактора.

После импорта модели ее следует добавить на созданную ранее сцену, при чем модель должна являться дочерним объектом ARTrackedObject. На рисунке 3 представлен созданный проект Unity.

Созданная сцена имеет корневой объект «Scene root», на который добавлен компонент AROrigin. Объект «ARToolKit» содержит в себе два компонента ARController и ARMarker. Компонент ARMarker настроен на использование стандартного квадратного маркера «Hiro». На объект «Camera» добавлен компонент ARCamera. Объект «Directional light» представляет собой направленный свет. Объект «Marker scene» оснащен компонентом ARTrackedObject и содержит в себе дочерний элемент – трехмерную модель автомобиля, который будет визуализироваться.

Для сборки и запуска приложения необходимо настроить соответствующие параметры в окне «Build Settings». Чтобы открыть это окно необходимо перейти по следующим пунктам в меню File -> Build Settings. В появившемся окне в качестве целевой платформы выберем Windows и запустим приложение нажатием кнопки «Build And Run». Результат работы приложения дополненной реальности представлен на рисунке 4.

Заключение

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

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

1)   платформа разработки Unity,
2)   библиотека ARToolKit,
3)   язык программирования C#.

Разработанное приложение может работать на стационарных и мобильных устройствах на следующих операционных системах: Windows, Linux, Android, iOS.

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

1. P. Milgram, F. Kishino, Taxonomy of Mixed Reality Visual Displays // IEICE Trans. Information Systems. – 1994. – No 12. – P. 1321–1329.

2. R. Azuma, A Survey of Augmented Reality // In Presence: Teleoperators and Virtual Environments. – 1997. – No 4. – P. 355–385.

3. Б.С. Яковлев, С.И. Пусто, Классификация и перспективные направления использования технологии дополненной реальности // Известия ТулГУ. Технические науки. – 2013. – № 3. – С. 484-492

4.  Прокачай свою реальность [Электронный ресурс] // Режим доступа: https://xakep.ru/2011/08/24/56240/. – Загл. с экрана. – (Дата обращения : 05.12.2016).

5. Обзор AR-библиотек для создания приложений c дополненной реальностью [Электронный ресурс] // Режим доступа: http://www.azoft.ru – Загл. с экрана. – (Дата обращения : 20.01.2017).

6. ARToolKit Documentation [Электронный ресурс] // Режим доступа: https://artoolkit.org/documentation/ – Загл. с экрана. – (Дата обращения : 20.01.2017).

7. How does ARToolKit work? [Электронный ресурс] // Режим доступа: https://www.hitl.washington.edu/artoolkit/documentation/userarwork.htm – Загл. с экрана. – (Дата обращения : 29.01.2017).

Рисунки к докладу

Рис. 1
Рис. 1

Континуум «Реальность-Виртуальность»




Рис. 2
Рис. 2

Квадратный маркер, в качестве шаблона используется надпись Hiro




Рис. 3
Рис. 3

Проект приложения дополненной реальности в Unity




Рис. 4
Рис. 4

Результат работы приложения дополненной реальности




Вопросы и комментарии к выступлению:


Фото
Кокарева Яна Андреевна
(24 марта 2017 г. 23:07)

Перспективы использования очень подкупают. Красиво, наглядно. И до сих пор ощущение, что это что-то из будущего. Ан нет, вот оно. Будущее уже сегодня.

Желаю успехов!

С уважением, Кокарева Я.А.


Назад Go Back