Статья опубликована в рамках: XLIII Международной научно-практической конференции «Естественные и математические науки в современном мире» (Россия, г. Новосибирск, 06 июня 2016 г.)
Наука: Информационные технологии
Секция: Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Скачать книгу(-и): Сборник статей конференции
дипломов
ИССЛЕДОВАНИЕ ИНСТРУМЕНТОВ ДЛЯ ФОРМИРОВАНИЯ ОБЪЕКТОВ ДОПОЛНЕННОЙ РЕАЛЬНОСТИ
RESEARCH TOOLS FOR FORMING AUGMENTED REALITY OBJECTS
Svetlana Burdunova
engineer of Development and introduction of new information technologies department NCIMM (STU),
Russia, Vladikavkaz
Victoria Voloshina
chief of Marketing and project-management department “Expasys SIE” LLC,
Russia, Vladikavkaz
Murat Buzarov
engineer of Engineering center “Information technologies” NCIMM (STU),
Russia, Vladikavkaz
Konstantin Solodovnik
designer of marketing and project-management department “Expasys SIE” LLC,
Russia, Vladikavkaz
Sergey Voloshin
candidate of Science, chief of Engineering center “Information technologies” NCIMM (STU),
Russia, Vladikavkaz
АННОТАЦИЯ
Рассмотрены программные инструменты для формирования объектов дополненной реальности. Проанализированы особенности каждого программного продукта, приведены примеры исходного кода.
ABSTRACT
Investigated software tools to generate augmented reality objects. The features of each product are shown the source code examples.
Ключевые слова: дополненная реальность; программное обеспечения; SDK, виртуальные объекты.
Keywords: Augmented Reality; software; SDK; virtual objects.
Обучение специалистов в отраслях с высокой степенью риска в условиях усложнения процессов и механизмов современного мира способствует увеличению сложности и времени обучения, за счёт чего растёт нагрузка на обучаемых. Один из способов решения данной проблемы – повышение интерактивности образовательного процесса с помощью технологии дополненной реальности [5].
Для формирования объектов дополненной реальности и дальнейшей работы с ними специалисты используют как готовые решения (конструкторы), так и комплекты средств разработки (Software Development Kit, SDK). Рассмотрим наиболее популярные инструменты.
“metaio Creator”
Одним из наиболее популярных конструкторов является программа “metaio Creator” [1], разработанная немецкой компанией “metaio GmbH” (в мае 2015 года была приобретена корпорацией Apple).
“metaio Creator” – это простой в использовании инструмент для создания и развёртывания сценариев дополненной реальности. Программа работает под управлением операционных систем семейства Microsoft Windows и Apple MacOS. В качестве платформ для развёртывания могут применяться устройства под управлением операционных систем Google Android и Microsoft Windows.
Внешний вид главного окна “metaio Creator” представлен на рис. 1.
Рисунок 1. Внешний вид программы “metaio Creator”
Программа позволяет использовать в качестве маркеров дополненной реальности как специально подготовленное векторное изображение, так и фотографии реальных объектов, например, контуры зданий, лица людей и т. д. (рис. 2).
Рисунок 2. Выбор технологии отслеживания
Программа может визуализировать следующие типы объектов дополненной реальности: 3D-модель, двухмерное изображение, видео, кнопка, ссылка на Интернет-ресурс и некоторые другие. У каждого из данных типов объектов есть набор свойств. Например, объект типа «двухмерное изображение» имеет такие свойства, как размер, угол поворота и масштаб (рис. 3).
Рисунок 3. Свойства объекта «двухмерное изображение»
На рис. 4 представлен макет двухмерного изображения, которое может появляться при распознавании системой маркера дополненной реальности.
Рисунок 4. Двухмерное изображение, появляющееся при распознавании маркера дополненной реальности (макет)
Необходимо обратить внимание на возможность проигрывания звукового файла при распознавании того или иного маркера дополненной реальности.
Стоит отметить, что “metaio Creator” не предъявляет высоких требований к профессионализму пользователей, позволяя тем самым снизить порог вхождения разработчиков, которые хотели бы выйти на рынок технологий дополненной реальности, но не имеют возможности (или считают нецелесообразным) вкладывать на первоначальном этапе значительные финансовые средства в подобные проекты.
Google Glass Development Kit (GTK)
GTK – это надстройка (add-on) над Google Android SDK, позволяющая создавать профессиональным разработчикам Glassware-приложения и запускать их непосредственно на очках дополненной реальности Google Glass [2].
Основным преимуществом GTK является знакомая Android-разработчикам среда разработки приложений.
GTK позволяет опытным разработчикам создавать приложения с объектами дополненной реальности, однако, в этом случае придётся самостоятельно реализовывать алгоритмы распознавания меток дополненной реальности и алгоритмы визуализации AR-объектов.
“metaio SDK”
По сути “metaio SDK” является набором библиотек, на котором базируется рассмотренный выше “metaio Creator”, позволяющий профессиональным разработчикам сосредоточиться на логике и функциональных возможностях разрабатываемого приложения, не тратя время на разработку и отладку алгоритмов распознавания маркеров дополненной реальности и визуализацию виртуальных объектов на экране устройства [1].
“metaio SDK” лежит в основе многих мобильных приложений, использующих технологии дополненной реальности. Это таких популярные приложения, как каталог продуктов IKEA на 2012/13 годы, McDonalds McMission, Audi eKurzinfo и множество других.
Инструмент “metaio SDK” обладает следующими особенностями:
- доступен для наиболее распространенных платформ – Google Android, Apple iOS и Microsoft Windows;
- поддерживает 2D, 3D, ID и SLAM трекинг;
- поддерживает наиболее популярные в настоящее время на рынке устройства – Google Glass, Epson Moverio BT-200 и Vuzix M-100;
- поддерживает трёхмерный безмаркерный трекинг на основе CAD данных;
- поддерживает трекинг по лицам;
- использует программируемые шейдеры для улучшения качества визуализации;
- имеет встроенный высокопроизводительный 3D-движок, оснащённый многопоточным трекингом и конвейерами рендеринга;
- поддерживает сложные 3D-модели (с количеством многоугольников более 30 тысяч);
- имеет технологии простого управления и отладки 3D-контента (BoundingBox, Normals, Wireframe).
В качестве целевых языков программирования SDK предлагает использовать Java, Objective-C или JavaScript.
SDK позволяет создавать несколько типов контента дополненной реальности, в том числе двухмерное изображение, видео и трёхмерные объекты.
Рассмотрим пример использования «metaio SDK» для визуализации трёхмерного элемента дополненной реальности. В качества языка программирования будем использовать Java, а в качестве целевой платформы – устройство под управлением Google Android.
void loadContent() {
// загружаем skybox
metaioSDK.loadEnvironmentMap("assets/env_map");
// загружаем изображение
mImagePlane = m_metaioSDK.createGeometryFromImage("assets/frame.png");
// скрываем изображение, чтобы оно было видно только после нажатия на кнопку
mImagePlane.setVisible(false);
// загружаем ролик
mMoviePlane = createGeometryFromMovie("assets/demo_movie.3g2", true);
// поворачиваем его на 90 против часовой стрелки вокруг оси Z
mMoviePlane.setRotation(new Rotation(new Vector3d(0f, 0f, (float)-Math.PI/2)));
mMoviePlane.setVisible(false);
}
void onMovieButtonClick(View v) {
// при нажатии на кнопку Movie, скрываем картинку и отображаем видеоролик
mImagePlane.setVisible(false);
mMoviePlane.setVisible(true);
mMoviePlane.startMovieTexture(true);
}
void onImageButtonClick(View v) {
// при нажатии на кнопку Image, скрываем ролик и отображаем картинку
mMoviePlane.stopMovieTexture();
mMoviePlane.setVisible(false);
mImagePlane.setVisible(true);
}
После запуска приложения мы можем наблюдать трёхмерный объект дополненной реальности, появившийся над маркером.
Wikitude SDK
Wikitude SDK позволяет создавать приложения дополненной реальности, работающие на устройствах Google Glass, Epson Moverio BT-200 и Vuzix M-100 [3].
Данный инструмент предлагает использовать для разработки языки программирования HTML, JavaScript и CSS.
Рассмотрим пример использования Wikitude SDK для распознавания метки дополненной реальности:
// Инициализация трекера на стороне клиента
this.tracker = new AR.ClientTracker("assets/magazine.wtc", {
onLoaded: this.worldLoaded
});
// Создаем оверлей для первой страницы
var imgOne = new AR.ImageResource("assets/imageOne.png");
var overlayOne = new AR.ImageDrawable(imgOne, 1, {
offsetX: -0.15,
offsetY: 0
});
var pageOne = new AR.Trackable2DObject(this.tracker, "*", {
drawables: {
cam: overlayOne
}
});
Glyph Recognition And Tracking Framework (GRATF)
Проект GRATF нацелен на создание библиотеки для распознавания статических (неподвижные маркеры) и динамических (видео) объектов, в том числе при разработке систем дополненной реальности.
Проект включает в себя следующие основные компоненты [4]:
- библиотека для распознавания символов в статических изображениях (внешний вид графического пользовательского интерфейса (GUI) представлен на рис. 5);
Рисунок 5. Внешний вид GUI приложения, демонстрирующего возможности библиотеки для распознавания символов в статических изображениях
- приложение, которое позволяет заменять в видеопотоке AR-маркеры виртуальными трёхмерными объектами дополненной реальности «на лету» (в режиме псевдореального времени) (рис. 6).
Рисунок 6. Внешний вид GUI приложения, демонстрирующего возможности библиотеки, позволяющей заменять AR-метки на виртуальные трёхмерные объекты в видеопотоке
Исходный код проекта представлен на языке C#, следовательно, данный комплект разработки можно применять только при создании программного обеспечения под платформу Microsoft HoloLens.
Рассмотрим примеры использования GRATF при работе с элементами дополненной реальности.
Пример кода, демонстрирующий ввод в систему символов для распознавания (глифов):
// указываем, что размер глифа 5х5 точек
GlyphDatabase glyphDatabase = new GlyphDatabase(5);
// начинаем добавлять глифы
// 1
glyphDatabase.Add( new Glyph( "Паук", new byte[5, 5] {
{ 0, 0, 0, 0, 0 },
{ 0, 1, 1, 0, 0 },
{ 0, 0, 1, 0, 0 },
{ 0, 1, 0, 1, 0 },
{ 0, 0, 0, 0, 0 } } ) );
// 2
glyphDatabase.Add( new Glyph( "Бабочка", new byte[5, 5] {
{ 0, 0, 0, 0, 0 },
{ 0, 1, 0, 0, 0 },
{ 0, 0, 1, 0, 0 },
{ 0, 1, 0, 1, 0 },
{ 0, 0, 0, 0, 0 } } ) );
// 3
glyphDatabase.Add( new Glyph( "Жук", new byte[5, 5] {
{ 0, 0, 0, 0, 0 },
{ 0, 0, 1, 0, 0 },
{ 0, 1, 1, 0, 0 },
{ 0, 0, 1, 1, 0 },
{ 0, 0, 0, 0, 0 } } ) );
Пример кода, демонстрирующий распознавание символов (глифов):
GlyphRecognizer recognizer = new GlyphRecognizer(glyphDatabase);
private GlyphTracker glyphTracker = new GlyphTracker( );
// указываем размер глифа в мм.
glyphTracker.GlyphSize = 113;
...
// ищем глифы в изображениях и распознаем их
List<ExtractedGlyphData> glyphs = recognizer.FindGlyphs(bitmap);
glyphTracker.TrackGlyphs(glyphs);
// обрабатываем все найденные глифы (например, можем визуализировать
// объекты дополненной реальности)
foreach ( ExtractedGlyphData glyphData in glyphs )
{
// ...
}
Проведенные исследования показали достаточно высокий уровень развития технологий дополненной реальности для применения их при обучении специалистов в отраслях с высокой степенью риска. Представленные на рынке программные инструменты обладают широкими возможностями и позволяют реализовать проекты любого уровня сложности.
Список литературы:
- Материал с официального Интернет-сайта компании metaio GmbH – [Электронный ресурс] // Режим доступа: http://metaio.com/ (Дата обращения: 12.05.2016).
- Материал с официального Интернет-сайта компании Google – [Электронный ресурс] // Режим доступа: https://developers.google.com/glass/ (Дата обращения: 12.05.2016).
- Материал с официального Интернет-сайта компании Wikitude GmbH – [Электронный ресурс] // Режим доступа: http://www.wikitude.com (Дата обращения: 12.05.2016).
- Материал с официального Интернет-сайта проекта GRATF – [Электронный ресурс] // Режим доступа: http://www.aforgenet.com/aforge/projects/gratf/ (Дата обращения: 12.05.2016).
- Перспективы использования технологий дополненной реальности в обучении специалистов в отраслях с высокой степенью риска / Волошин С.Б., Бурдунова С.Э., Хуриев Г.Ф. / Труды СКГМИ (ГТУ). – 2015. – Вып. 22. – С. 3–9, Владикавказ.
дипломов
Комментарии (1)
Оставить комментарий