РАЗРАБОТКА МЕТАМОДЕЛИ СИСТЕМЫ РАСШИРЕННОЙ РЕАЛЬНОСТИ ДЛЯ МОДЕЛИРОВАНИЯ ТРЕХМЕРНЫХ СЦЕН
СОДЕРЖАНИЕ
1 Обзор систем расширенной реальности
1.1 Технология расширенной реальности
1.2 Алгоритм распознавания маркеров расширенной реальности
1.3 Платформы расширенной реальности
2 Технологии двухмерного штрихового кодирования
3 Языки описания трехмерных сцен
4.1 Сравнение характеристик двухмерных штрих-кодов
4.2 Сравнение особенностей систем расширенной реальности
5 Разработка метода решения задачи
5.2 Схема взаимодействия элементов системы
Список использованных источников
ВВЕДЕНИЕ
На данный момент традиционные оконные графические интерфейсы, управляемые клавиатурой и мышью, начинают устаревать и заменяться интерактивными мультимедийными интерфейсами человеко-машинного взаимодействия. Данные интерфейсы не используют привычные графические меню, а опираются на методы взаимодействия, присущие сугубо человеку (жесты, человеческая речь). К данным типам интерфейсов принадлежит и дополненная реальность, позволяющая демонстрировать новые свойства объектов и получать новые ощущения от привычных реальных вещей, используя стандартный персональный компьютер и стандартные периферийные устройства. Поэтому количество областей, где можно применять эти технологии, очень велико, а разработки в сфере данной технологии очень актуальны.
Одной из областей применения дополненной реальности являются системы трехмерного моделирования. Имеются различные системы, однако их функции заключаются в восстановлении трехмерной сцены из файла и встраивания ее в видеопоток, поступающий с веб-камеры. Наиболее известными из них являются ARTag и Studierstube. Создание систем, восстанавливающих трехмерную сцену, исходя из предлагаемого маркера, без использования дополнительных источников информации является менее исследованной областью.
Целью работы поставлена разработка концептуальной модели системы расширенной реальности, для моделирования трехмерных сцен.
Проектируемую систему можно разбить на три подсистемы: систему распознавания образов, обработки двухмерных штрих-кодов и систему обработки информации полученной из кода.
Данная работа решает следующие задачи:
- обзор современного состояния проблемы:
- обзор существующих систем распознавания;
- обзор существующих нотаций двухмерных штрих-кодов;
- обзор языков трехмерного моделирования;
- выбор наиболее подходящей системы распознавания и двухмерного штрих-кода для решения задачи работы;
- создание концептуальной модели будущей системы.
ОБЗОР СИСТЕМ РАСШИРЕННОЙ РЕАЛЬНОСТИ
В данном разделе будет рассмотрена технология расширенной реальности, а также наиболее известные системы в данной области.
Технология расширенной реальности
Дополненная или расширенная реальность в широком смысле – это комплекс технологий, позволяющих вместе с ощущениями, поступающими из реального мира, получать дополнительные ощущения мнимых объектов, обычно вспомогательно-информативного свойства.
В узком смысле, т.е. в парадигме привязки технологии к интерфейсу взаимодействия человека и компьютера, дополненную реальность в большинстве случаев представляют как процесс совмещения объектов реального мира и объектов, сгенерированных компьютером. На сегодняшний день большинство исследований в области дополненной реальности сконцентрировано на использовании живого или интерактивного видео, подвергнутого цифровой обработке, «дополненного» компьютерной графикой. Более серьёзные исследования включают отслеживание движения реальных объектов, распознавание координатных меток при помощи машинного зрения и конструирование управляемого окружения.
Дополненная реальность отличается от виртуальной. Их коренное различие в том, что дополненная реальность вносит отдельные искусственные элементы в восприятие реального наблюдаемого мира, а виртуальная реальность конструирует новый (абсолютно мнимый) искусственный мир.
Для того, чтобы правильно совмещать виртуальные и реальные объекты, необходимо уметь правильно вычислять относительное положение реальных объектов и реальной сцены в целом. На сегодняшний день эта задача является крайне сложной, возможно даже нерешаемой, если реальные объекты заранее не определены. Поэтому для управления используются специальные, объекты, обязательно присутствующие на сцене и определение положения которых является вычислительно простой задачей. Такие объекты называются маркерами[4].
В качестве маркеров могут выступать разные объекты. Однако, можно выделить следующие группы:
- двухмерные штрих-коды;
- объекты реального мира;
- движущиеся объекты.
Двухмерные штрих-коды.
Наиболее простым для распознавания является черно-белое изображение, состоящее из набора прямоугольников. Таким является двухмерный штрих-код, несущий малое количество информации (8–20 бит). Существуют алгоритмы нахождения прямых линий, имеющие логарифмическую сложность вычисления, таким образом нахождение набора прямоугольников на изображении является вычислительно простой задачей. Примеры маркеров на основе двухмерных штрих-кодов представлены на рисунке 1.1 [1].
Рисунок 1.1 – Маркеры на основе штрих-кодов
Объекты реального мира
В некоторых случаях невозможно нанести двухмерный штрих-код на объект сцены, который нужно обработать. В этом случае необходимо создать систему, которая будет распознавать объекты реального мира эта задача сложнее предыдущей, обычно кроме изображения используются дополнительные данные (географические координаты устройства или окрашивание распознаваемого объекта в определенный цвет).
Такие системы применяются в различных областях. Например, компания Apple представляет приложение New York Nearest Subway, позволяющее более эффективно ориентироваться в Нью-Йорке. Пример работы данного приложения представлен на рисунке 1.2. Также ведутся разработки системы распознавания человеческой руки для использования данной технологии в сфере компьютерных игр. Пример таких разработок Калифорнийского университета представлен на рисунке 1.3[4].
Рисунок 1.2 – Приложение New York Nearest Subway
Рисунок 1.3 – Распознавание руки
Движущиеся объекты
И штрих-коды, и объекты реального мира не должны менять свою форму для их корректного распознавания. Однако для решения некоторых задач распознавания статических объектов недостаточно. Тогда объектами распознавания становятся динамические объекты, к примеру, жесты человека. Основной сферой применения таких технологий является игровая индустрия. Программы Xbox Natal и PlayStation Eye предназначены для игр без игрового джойстика, разработаны Microsoft для игровой приставки Xbox 360, а Sony для игровой приставки PlayStation 3. Основываясь на дополнительном периферийном оборудовании для нее, новая технология позволяет пользователям управлять и взаимодействовать с мультимедийным содержимым с помощью жестов, голосовых команд или позы, без необходимости использования игрового джойстика.
В данное время распознавание динамических объектов является неисследованной задачей, в рамках которой практически нет реализованных проектов.
В рамках данной работы нет ограничения для объектов, которые должна содержать сцена. Таким образом, достаточно применить один из методов распознавания штрих-кодов, которые будут рассмотрены в этом разделе[4].
Алгоритм распознавания маркеров расширенной реальности
Процесс распознавания маркеров является сложной задачей и не имеет тривиального решения. Каждая библиотека предоставляет свой метод распознавания, имеющий свои достоинства. Вкратце будут рассмотрены этапы, из которых состоит алгоритм:
1) перевод в градации серого;
2) бинаризация изображения;
3) определение замкнутых областей;
4) выделение контуров;
5) выделение углов маркера;
6) преобразование координат;
Этапы процесса представлены на рисунке 1.4.
Рисунок 1.4 Этапы процесса распознавания маркеров
(gif-анимация, 6 кадров, размер: 180х200)
Платформы расширенной реальности
Существует много платформ расширенной реальности. Каждая из них имеет свою специализацию и особенности. Наиболее известные из них будут рассмотрены ниже.
Платформа ARTag
ARTag – это технология маркеров в дополненной реальности. В ней трехмерная модель привязывается к реальному изображению в соответствии с двухмерными штрих-кодовыми метками.
Виртуальное изображение может быть интерактивным – по улицам города могут ездить автомобили, ходить люди, двигаться другие объекты – и всё это будет отображаться в режиме реального времени, на обыкновенном столе. Для того, чтоб повернуть этот город, или посмотреть на него с другой стороны, достаточно будет всего лишь обойти стол, не нужно двигать мышкой, или совершать еще какие-либо действия с компьютером и клавиатурой. Эта система имеет интересное название «Волшебные очки» (Magic Lence).
Кроме того, была ещё создана другая система «Волшебное зеркало» (Magic Mirror), которая позволяет проецировать 3d изображение на тело человека и посмотреть на результат на мониторе компьютера.
Сейчас технология ARTag не поддерживается. Она перенесена в технологии ARToolkit и Goblin XNA[8].
Платформа ARToolkit
ARToolKit – это библиотека для разработки приложений расширенной реальности. Например, на рисунке 1.5 показан трехмерный виртуальный персонаж, находящийся на маркере. Пользователь может увидеть его через специальные очки. Когда пользователь перемещает маркер, персонаж перемещается вместе с ним.
Рисунок 1.5 – Платформа ARToolkit
Одна из главных сложностей в разработке расширенной реальности – это проблема поиска координат зрителя. Перед тем как узнать координаты накладываемого изображения, приложение должно вычислить, откуда зритель смотрит на сцену.
ARToolkit использует алгоритмы «компьютерного зрения» для решения этой проблемы. Библиотеки обработки видео вычисляют положение и угол камеры по отношению к физическим маркерам в реальном времени. Это позволяет простую разработку большого количества приложений расширенной реальности [12].
Платформа Studierstube
Studierstube – это немецкое слово для лаборатории, в которой известный персонаж Гёте, Фауст, пытался получить знания и просветление (Гёте, 1808). Этот термин выбран как название совокупности разработок трехмерных пользовательских интерфейсов. Большинство современных систем виртуальной реальности направлены на специфику того или иного специализированного приложения, для которого они разрабатываются.
Проект Studierstube пытается задать направление разработки трехмерных пользовательских интерфейсов: как использовать трехмерные интерактивные средства в общем рабочем окружении, где решение разных задач производится одновременно. Studierstube – это попытка создать такую же мощную концепцию трехмерных интерфейсов, как и концепция рабочего стола для двухмерных интерфейсов [13].
Платформа YVision
YVision – это результат десятилетних исследований и разработок в области взаимодействия человека и компьютера. Основная идея данного проекта заключена в следующем: «расширенные миры должны быть осязаемыми, ощутимыми и изменяться в зависимости от окружения».
Проект YVision – это недостающее звено между традиционными инструментами разработки игр и «естественных пользовательских интерфейсов». Он способствует творчеству и путем решения проблем совместимости наборов технологий, незаменимых для создания современных интерактивных продуктов.
YVision также содержит некоторые инновационные разработки обработки данных без поиска компромисса между эффективностью и надежностью. YVision – это компонентно-ориентированное ядро, включающее в себя средства разработки сложных систем, основанных на прекомпилированных модулях, которые контролируются деревьями поведения. Эти архитектурные концепции были проверены в сфере компьютерных игр и сейчас широко используются при разработке сложных приложений [14].
ТЕХНОЛОГИИ ДВУХМЕРНОГО ШТРИХОВОГО КОДИРОВАНИЯ
Двухмерный штрих-код, или 2D barcode, является новейшей разработкой в области штрихового кодирования. Данный вид штрих-кода основывается на принципе кодирования информации не только по горизонтали, как обычные линейные штрих-коды, но и по вертикали. Можно различить два основных вида двухмерных штрих-кодов: Stacked linear и Matrix.
Тип Stacked linear увеличивает информацию, которую способен хранить штрих-код за счет расположения одномерных штрих-кодов один над другим. Штрих-коды типа Code 16K, Codablock и Code 49 – это самые ранние представители семейства двухмерных штрих-кодов. Эти штрих-коды предусматривают среднюю емкость информации (до 144 символов), однако они уступают некоторым последним двухмерным штрих-кодам по плотности информации и в том, что они не могут обеспечить коррекцию ошибок. Коррекция ошибок позволяла бы операторам правильно считывать даже минимально поврежденные штрих-коды.
1984 год считается началом развития двухмерных штрих-кодов. Тогда Automotive Industry Action Group (AIAG) опубликовала новый стандарт для маркировки грузов и деталей. Тот стандарт содержал четыре штрих-кода Code 39 типа «stacked» (в переводе с англ. «stacked» – расположенный друг над другом, многоуровневый). Эти коды содержали артикул детали, их количество, информацию об отправителе и серийный номер.
Первый штрих-код, который действительно мог бы называться двухмерным, был представлен компанией Intermec Corporation в 1988 году. Тогда разработчики компании предложили штрих-код типа Code 49. Таким образом, с 1988 года были созданы, или перепроектированы, еще шесть других двумерных символик. Это было сделано с целью создания портативной базы данных в минимально возможном пространстве.
Словосочетание двухмерный код стало наиболее общим наименованием для всего этого класса символик. Названия стековая символика (stacked symbology) или многорядный код (multi-row code) более точно отражают сущность серии кодов, в которых данные кодируются в виде нескольких строчек обычных одномерных штрих-кодов.
Термин матричный код (Matrix code) обозначяет двухмерный штрих-код, основанный на расположении черных элементов внутри матрицы. Каждый элемент черного цвета имеет одинаковый размер, а позиция элемента кодирует данные.
Двухмерный код содержит кодированную информацию как по горизонтали, так и по вертикали. По причине того, что оба направления являются информативными, теряется возможность использования так называемой вертикальной избыточности. Однако борьба с ошибками при считывании штрих-кода обеспечивается достаточно просто – большинство стандартов двухмерных кодов используют контрольные суммы, которые позволяют гарантировать достоверность вводимой информации [2].
В настоящее время более распространены следующие матричные штрих-коды и их виды:
- Aztec Code;
- Data Matrix;
- QR код;
- PDF417;
Штрих-код QR-code
QR-code появился в 1994 году в Японии. Создан исследователями Denso-Wave (дочерняя компания Toyota). Этот двумерный, или матричный, штрих-код применялся вначале для идентификации автозапчастей на заводах корпорации, но быстро обрел популярность за пределами производственных линий. Аббревиатура QR означает Quick Response, т. е. «быстрый отклик», «быстро распознаваемый». Особенность данного типа кодов в том, что они легко расшифровываются не только посредством специального сканера, но и с помощью любого смартфона, оснащенного фотокамерой и достаточно простым ПО, что открывает перспективы его применения в повседневной жизни. Хотя термин QR code по-прежнему является зарегистрированной торговой маркой DENSO Corporation, использование кодов не облагается никакими лицензионными отчислениями, а сами они описаны и опубликованы в качестве стандартов ISO/IEC 18004:200 [10].
Пример QR-code, кодирующего фразу «Hello world» представлен на рисунке 2.1.
Штрих-код Aztec code
Aztec Code разработан в 1995 году доктором Логранс А., исследователем из фирмы Welch Allyn Inc. Код был опубликован фирмой AIM International в 1997 году.
В Aztec code были объединены «лучшие» известные тогда особенности всех двухмерных штрих-кодов – MaxiCode, Code One, Data Matrix, Dot Code, PDF417, и SuperCode и некоторые оригинальные идеи (особенно в отношении коррекции ошибок) в одну удобную и концептуально простую символику. Первые опыты печати квадратной «мишени», окруженной «слоями данных», сплетенными с решеткой «элементов привязки», расположенной по периметру квадрата, дали в результате изображение, ассоциирующееся с искусством Центральной Америки, что и подсказало имя «Aztec Code» для новой символики. Рабочая спецификация, программа печати и декодер были разработаны быстро, и в марте 1995 года графическое изображение кода Aztec впервые появилось в печатных рекламных материалах.
Хотя на код был получен патент, он был передан в общественное достояние. Спецификации опубликованы в стандарте ISO/IEC 24778:2008 [5,6,11].
Пример Aztec code, кодирующего фразу «Hello world» представлен на рисунке 2.2.
Рисунок 2.2 – Пример Aztec code
Штрих-код Data Matrix
DataMatrix представляет собой чёрно-белые элементы или элементы нескольких различных степеней яркости, обычно в форме квадрата, размещённые в прямоугольной или квадратной группе. Матричный штрих-код предназначен для кодирования текста или данных других типов. Чаще всего в промышленности и торговле применяются битовые матрицы, кодирующие от нескольких байт до 2 килобайт данных. При желании можно распечатать на принтере матрицы ёмкостью в сотни килобайт и затем считывать их с достаточно высокой точностью при помощи фотоаппаратов, матрицы которых содержит миллионы пикселов. Прообразом штрих-кодов в виде матриц являются перфокарты.
К настоящему дню DataMatrix описывается стандартом ISO, ISO/IEC16022, и является общественным достоянием для многих областей использования, что означает, что формат может быть использован свободно и без каких-либо лицензионных отчислений [9].
Пример DataMatrix, кодирующего фразу «Hello world» представлен на рисунке 2.3.
Рисунок 2.3 – Пример кода DataMatrix
Штрих-код PDF417
PDF417 был разработан и введен в 1991 г. Symbol Technologies. PDF происходит от сокращения англ. Portable Data File (переносимый файл данных). В настоящее время PDF417 широко применяется в идентификации личности, учёте товаров, при сдаче отчетности в контролирующие органы и других областях. Формат PDF417 открыт для общего использования и описан в стандарте USS-PDF417.
Пример кода PDF417, кодирующего фразу «Hello world» представлен на рисунке 2.4.
Рисунок 2.4 – Пример кода PDF417
ЯЗЫКИ ОПИСАНИЯ ТРЕХМЕРНЫХ СЦЕН
Для интерпретации трехмерной сцены в двухмерном штрих-коде необходимо использовать специализированные языки моделирования.
Наиболее известным среди них является язык VRML.
Язык VRML
Virtual Reality Modeling Language (язык моделирования виртуальной реальности) – cтандарт языка описания трехмерных сцен, содержащих объекты, а также возможных взаимодействий между объектами и наблюдателем. Основное назначение языка – описание набора объектов (сцены) в системах виртуальной реальности. Основное на данный момент применение – представление статической и интерактивной информации в сети интернет, в виде виртуальной трехмерной среды содержащей различные объекты. Существует три распространенных версии языка: VRML 1.0, 2.0 и VRML 97. На данный момент самой широко поддерживаемой версией является VRML 2.0. Развитие языка координируется VRML Architecture (по другим источникам Advisory) Group (перевод – Группа Архитектуры VRML), известной под аббревиатурой VAG.
Пример сцены, написанной на языке VRML 1.0, представлен на рисунке 3.1
Рисунок 3.1 – Сцена на языке VRML
Используя файлы текстового формата, язык VRML позволяет описать не только геометрические свойства объектов в трехмерном пространстве, например, расположение и форму сложных поверхностей и многогранников, но и физические данные об их цвете, текстуре, блеске, прозрачности, источниках освещения и так далее. Как и в HTML, графические 3D-компоненты можно связать с другими web-страницами или новыми VRML-файлами Сети. Кроме того, в качестве реакции на действия пользователя или другие внешние события, например таймеры, могут появляться движение, звуки, освещение и другие аспекты виртуального мира. Особый компонент Script Node позволяет добавлять программный код (например, Java или JavaScript).
По своей сути VRML, скорее, можно назвать языком программирования, причем ярко выраженным объектно-ориентированным языком. Говоря о нем, во многом более уместно проводить параллели не столько с HTML, сколько с Java. Кроме того, как и Java, VRML платформенно-независим, и область его применения точно так же не ограничивается технологиями Internet/Intranet, для которых он изначально разрабатывался [3].
АНАЛИЗ МЕТОДОВ
После поиска методов решения задачи, данной работы необходимо провести их сравнение и выбрать наиболее подходящий. В данном разделе будет приведено сравнение технологий двухмерного штрихового кодирования, и систем расширенной реальности.
Сравнение характеристик двухмерных штрих-кодов
Штрих-коды сравнивались по нескольким признакам, важным в рамках задачи. Это следующие признаки:
- открытость для использования;
- количество кодируемой информации;
- размер;
- восстанавливаемая информация;
- восприимчивость к поворотам камеры.
Сравнительная характеристика кодов по данным параметрам приведена в таблице 4.1
Таблица 4.1 – Сравнение различных технологий штрихового кодирования
Свойство |
QR-code |
Aztec code |
Data Matrix |
PDF417 |
Открытость |
Открыт, защищен патентом |
Открыт, защищен патентом |
Открыт, защищен патентом |
Открыт, защищен патентом |
Количество кодируемой информации |
2–3 Кбайт |
около 2 Кбайт |
2 кбайт (стандартно), неограниченное количество, зависит от разрешения сканера |
2–3 Кбайт |
Размер (пикс) |
177x177 |
151x151 |
144x144 – неограниченно |
151x151 |
Восстанавливаемая информация |
0%-30% |
от 5% до 95% |
0%-30% |
0%-30% |
Восприимчивость к поворотам камеры |
Поворот на произвольный угол |
Поворот на произвольный угол, зеркальное отражение |
Поворот на произвольный угол |
Поворот на произвольный угол |
Любой код из приведенных выше, в особенности Data Matrix, можно видоизменить для любого количества данных, однако в условиях данной задачи и требований к оборудованию пользователя штрих-код может вмещать только 2–3 кбайт информации.
Таким образом, кодом, вмещающим наибольшее количество информации является Data Matrix, однако данный код более сложен для обнаружения, и более восприимчив к поворотам камеры. Наиболее защищенным от повреждений кодом является Aztec-code, однако он уступает по вместимости информации. Все коды открыты для использования, а также могут поместиться на лист A4 при размере пикселя 1–2мм.
Сравнение особенностей систем расширенной реальности
Необходимо привести и сравнить особенности всех рассматриваемых систем расширенной реальности и выбрать наиболее подходящую из них.
Основные требования к платформе расширенной реальности:
- открытость.
- возможность обработки видео потока в реальном времени
- поддержка веб-камеры
- поддержка ОС Windows.
Для того чтоб систему, а также созданное приложение можно было использовать, необходимо чтоб платформа распространялась свободно, а также с открытым исходным кодом.
Для системы, создаваемой в данном проекте, необходима интерактивность без задержки или пост-обработки видео потока. Изображение с видео камеры должно обрабатываться и изменяться «на лету».
Аппаратное и программное обеспечение пользователей будет чаще всего ограничиваться использованием обычных веб-камер и ОС Windows.
Платформа ARToolkit
ARToolkit является первой системой расширенной реальности. Первая версия появилась в 1999 году. На ее основе появились большинство остальных описываемых систем. У нее есть следующие особенности в рамках данной задачи:
- простая платформа для создания AR-приложений;
- кросс-платформенность (Windows, Linux, Mac OS X, SGI);
- одновременно поддерживается несколько камер;
- быстрые алгоритмы нахождения плоскостей;
- утилита создания новых маркеров;
- простая калибровка камеры;
- простая графическая библиотека, основанная на GLUT;
- быстрый вывод графической информации, основанный на OpenGL;
- поддержка VRML;
- простой API (написан на C);
- поддержка других языков (JAVA, Matlab);
- распространяется с открытым исходным кодом (лицензия GPL);
- не поддерживается с 2004 года; перенесена в систему ARToolkit+.
Так как данная платформа является открытой и свободно распространяемой, ее можно использовать для решения задачи. Недостатком является то, что платформа устарела по сравнению с остальными и не поддерживает некоторые особенности, которые будут описаны в соответствующих подразделах.
Платформа ARTag
Платформа ARTag была разработана в 2006 году. На основе идей ARToolkit. Однако, были добавлены некоторые новые алгоритмы. Платформа имеет следующие отличия от ARToolkit:
- уменьшено количество ложных (отсутствие маркера) и неправильных (определение одного маркера как другого) срабатываний;
- маркеры определяются при разной степени освещенности;
- маркеры определяются при частичном перекрытии бордюра;
- содержит набор из 2002 предопределенных маркеров (ID-маркеры), что ускоряет их определение и не требует файлов шаблонов;
- не распространяется;
- поддержка прекращена в 2009 году, перенесен в проект Goblin XNA.
Данная платформа имеет много преимуществ перед ARToolkit, весомых в рамках задачи. Однако, использовать ее невозможно, так как она в данный момент не распространяется.
Платформа ARToolkitPlus
Платформа ARToolkitPlus разработана на основе ARToolkit, под влиянием ARTag. В нее включено большинство достоинств ARTag, однако имеются и другие особенности:
- написан на C++ Class-based API с использованием шаблонов;
- до 4096 предопределенных маркеров;
- новые форматы изображений камеры (RGB565, Gray)
- маркеры определяются при разной степени освещенности;
- переменная ширина границы маркеров, позволяет обнаруживать маленькие маркеры;
- множество ускорений для устройств класса low-end (арифметика с фиксированной точкой и т.п.);
- свободно распространяется с открытым исходным кодом (лицензия GPL)
- не обновляется с 2009 года, заменен на Studierstube Tracker.
Платформа имеет преимущества перед ARToolkit и ARTag в скорости обработки и удобстве API. Однако в ARToolkitPlus не включена функция определения маркера при перекрытии бордюра, что является недостатком по сравнению с ARTag.
Платформа Studierstube
Данная платформа является последней версией, созданной в Институте науки и технологии г.Нара и завершает цепочку, начатую системой ARToolkit. В данное время вышла версия Studierstube 4, платформа продолжает обновляться. Основные ее характеристики:
- API основанный на классах ;
- несколько типов маркеров;
- шаблонные (В стиле ARToolkit);
- ID-маркеры (ARTag);
- DataMatrix маркеры;
- рамочные маркеры ;
- разорванные маркеры;
- очень высокая производительность даже на low-level устройствах;
- низкое потребление памяти;
- маленькие размеры кода;
- до 4096 id-маркеров;
- до 4 миллионов рамочных маркеров;
- новые рамочные маркеры кодируют до 22 бит информации с коррекций до трех неверных;
- поддержка форматов RGB24, RGB32, RGB565, YUV12;
- переменная ширина границы маркера;
- высокая переносимость, потому как не используются сторонние библиотеки;
- надежная работа даже при неравномерном освещении;
- работает под windows, Linux, MacOS, iPhone;
Данная платформа наследует основные виды маркеров, реализованные в ее предшественниках. ID-маркеры приведены на рисунке 1.1. Также в платформе имеется поддержка двухмерных штрих-кодов Data Matrix, позволяющих хранить больше информации. Их описание приведено в подразделе 2.3, изображение представлено на рисунке 2.3.
В систему Studierstube добавлена поддержка новых видов маркеров, позволяющих вставлять внутрь любое изображение без потери качества распознавания. Их изображения приведены на рисунках 4.1 и 4.2.
Следовательно, данная платформа не уступает остальным и имеет дополнительные возможности. Единственным ее недостатком являются затруднения при коммерческом использовании.
Рисунок 4.2 – Разорванный маркер
Платформа YVision
Платформа YVision имеет другую направленность по сравнению с описанными выше. Эта платформа специализируется на разработке игровых приложений. Следовательно, она имеет ряд особенностей:
- основана на Microsoft.NET технологии;
- работает с платформами Windows, MacOS, iOS, Android, Windows Phone 7 , Xbox 360 и Wii;
- система управления многопоточностью;
- полностью интегрируется в MS Visual Studio;
- встроенный механизм управления поведением игровых персонажей;
- встроенный механизм симуляции физики;
- открыта для свободного использования, однако распространяется с закрытым исходным кодом.
Данная система расширенной реальности специализируется на создании игровых приложений и не совсем подходит для целей работы, хотя имеет точные алгоритмы для поиска маркеров, необходимые для реализации качественного игрового приложения.
Вследствие обзора основных систем расширенной реальности было принято решение использовать систему ARToolkitPlus и средство распознавания Aztec code.
РАЗРАБОТКА МЕТОДА РЕШЕНИЯ ЗАДАЧИ
После выбора средств для решения задачи необходимо разработать концептуальную модель решения, которая будет представлена в виде диаграмм и реализована.
Для этого необходимо создать набор маркеров, которые будут определять трехмерную сцену и схему взаимодействия составных частей разрабатываемой системы (библиотеки распознавания двухмерных штрих-кодов и системы распознавания образов).
Разработка маркера
Маркер, определяющий трехмерную сцену должен обладать следующими свойствами:
- трехмерная сцена должна отображаться при наведении камеры на часть маркера;
- маркер должен быть найден в реальном времени;
- по содержанию маркера должна быть построена трехмерная сцена;
В результате анализа требований был предложен набор маркеров, представленный на рисунке 5.1.
Данное изображение является схематическим. Строение маркера будет следующим: в центре располагается Aztec-code с информацией о трехмерной сцене, вокруг которого будут располагаться id-маркеры. Каждый id-маркер распознается отдельно и имеет свои координаты в сцене, что определяет восстановление всей сцены по нахождению одного из маркеров. Таким образом нахождения всех маркеров в фокусе камеры перестает быть необходимым.
Нахождение и распознавание Aztec-code, что является вычислительно сложной задачей, будет осуществляться только один раз при загрузке сцены. Интерактивность при этом теряться не будет.
Единственным недостатком модели является отсутствие идентификации области, занимаемой кодом Aztec-code. Если камера будет наведена на эту область и потеряет все id-маркеры, сцена отображаться не будет.
Схема взаимодействия элементов системы
После запуска системы загрузки новой сцены подключается библиотека распознавание Aztec-code и проводится поиск штрих-кодов по мишени в центре.
Рисунок 5.1 – Схематическое изображение маркера
После того, как штрих-код найден, с него считывается информация и проверяется на соответствие контрольной сумме, записанной в конце. Попытки продолжаются, пока он не будет считан.
После считывания штрих-кода полученная информация обрабатывается и создается массив элементов трехмерной сцены.
Подключается система расширенной реальности и полученная трехмерная сцена в соответствие с id-маркерами накладывается на видеопоток.
После этого пользователь может свободно изменять положение камеры, позиционирование сцены осуществляется по id-маркерам.
ВЫВОДЫ
В ходе работы были описаны основные нотации двухмерных штрих-кодов а также платформы расширенной реальности. Были определены их особенности, достоинства и недостатки в рамках задачи создания системы расширенной реальности для моделирования трехмерных сцен.
Были проанализированы наиболее известные плтформы расширенной реальности. В результате выяснилось, что они имеют разную направленность. Основной интерес представляют платформы серии ARToolkit. Это три платформы: ArToolkit, ARToolkitPlus и Studierstube. Наиболее совершенной является платформа Studierstube, однако она имеет сложности при коммерческом использовании.
Были исследованы основные существующие нотации двухмерных штрих-кодов. В результате этого было получено, что некоторые нотации штрих-кодов имеют более высокую защиту от искажений, однако содержат меньше информации, некоторые содержат больше информации, однако имеют меньший уровень защиты.
Были выбраны наиболее подходящие нотации штрих-кодов и систем расширенной реальности. В результате была выбрана нотация Aztec-code, вмещающая около 2кбайт информации и хорошо распознающаяся при разных углах наклона камеры и платформа ARToolkitPlus, содержащая функции необходимые для решения задачи проекта и свободная для использования.
Была создана метамодель будущего программного продукта. Была предложена схема маркера, описывающего трехмерную сцену, а также схема взаимодействия основных частей будущего приложения.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Романов Д. Двухмерные штрих-коды [Электроннный ресурс]. – Режим доступа: http://www.ibs.ua/spravka/181/.
- Трукин Д. Двухмерный (2D) штрих-код – Структура [Электроннный ресурс]. – Режим доступа: http://www.barcoding.ru/resources/statii-obzory/dvukhmernyi-shtrikh-kod-struktura.html.
- Еремин Е. А. Язык трехмерного моделирования VRML и его образовательные возможности [Электроннный ресурс]. – Режим доступа: http://inf.1september.ru/article.php?ID=200800200.
- Коренберг В. М. Интерактивные системы. Человеко-машинный интерфейс, основанный на распознавании жестов / Коренберг В. // Научные труды XVII международной конференции молодых ученых по приоритетным направлениям развития науки и техники. – Екатеринбург: УГТУ–УПИ, 2010. – С. 27–34.
- Кручинин А. Спецификация Aztec Code (без Small Aztec) [Электроннный ресурс]. – Режим доступа : http://recog.ru/blog/standarts/6.html.
- Лонгрейс Э. Двумерное штриховое кодирование. Штрих-код Aztec [Электроннный ресурс]. – Режим доступа : http://www.biprint.ru/index.php?area=text&parent=10.
- Медведев А. Реальная Виртуальность. [Электроннный ресурс]. – Режим доступа : http://www.ixbt.com/peripheral/real-vrml.html.
- Равве Р. ARTag. Дополненная реальность. [Электроннный ресурс]. – Режим доступа: http://a--r.ru/artag.
- Information technology – International symbology specification – Data Matrix (ISO/IEC 16022:2006) : ДСТУ – ISO/IEC 16022:2000 [Действителен с 2006г.]. – ISO copyright office, 2006. – 133с. – (Международный стандарт).
- Information technology — Automatic identification and data capture techniques — QR Code (ISO/IEC 18004:2000): ДСТУ – ISO/IEC 18004:2000 [Действителен с 2000г.]. – ISO copyright office, 2000. – 140с. – (Международный стандарт).
- Information technology – Automatic identification and data capture techniques – Aztec Code bar code symbology specification (ISO/IEC 24778:2008): ДСТУ – ISO/IEC 24778: 2008 [Действителен с 2008.]. – ISO copyright office, 2008. – 150с. – (Международный стандарт).
- Lamb P. ARToolkit. [Электроннный ресурс]. – Режим доступа : http://www.hitl.washington.edu/artoolkit/.
- Schmalstieg D. The Studierstube Augmented Reality Project / Schmalstieg D. // Presence: Teleoperators and Virtual Environments. – MIT Press Cambridge, MA, USA. – 2007. – №11 – С. 33–54.
- Y.Vision product Структура [Электроннный ресурс]. – http://www.yvision.com/.