РОЗРОБКА СИСТЕМИ РОЗШИРЕНОЇ РЕАЛЬНОСТІ ДЛЯ МОДЕЛЮВАННЯ ТРИВИМІРНИХ СЦЕН
ЗМІСТ
1 Огляд платформ розширеної реальності
1.1 Технологія розширеної реальності
1.2 Алгоритм розпізнавання маркерів розширеної реальності
1.3 Платформи розширеної реальності
2 Технології двовимірного штрихового кодування
4.1 Порівняння характеристик двовимірних штрих-кодів
4.2 Порівняння особливостей платформ розширеної реальності
5 Розробка методу рішення завдання
5.2 Схема взаємодії елементів системи
ВСТУП
На даний момент традиційні віконні графічні інтерфейси, керовані клавіатурою і мишкою, починають застарівати і змінюватися на інтерактивниі мультимедійні інтерфейси людино-машинної взаємодії. Ці інтерфейси використовують не звичні графічні меню, а методи взаємодії, властиві суто людині (жести, людська мова). До таких типів інтерфейсів належить і доповнена реальність, що дозволяє демонструвати нові властивості об’єктів і отримувати нові відчуття від звичних реальних речей, використовуючи стандартний персональний комп’ютер і стандартні периферійні пристрої. Тому кількість областей, де можна застосовувати ці технології, дуже велика, а розробки в сфері даної технології актуальні.
Однією з залузей застосування доповненої реальності є системи тривимірного моделювання. Існують різні системи, проте їх функції полягають у відновленні тривимірної сцени з файлу та вбудовування її в відеоряд, що надходить з веб-камери. Найбільш відомими з них є ARTag і Studierstube. Створення систем, відновлюючих тривимірну сцену, виходячи з пропонованого маркера, без використання додаткових джерел інформації є менш дослідженою галуззю.
Метою роботи є розробка концептуальної моделі системи розширеної реальності для моделювання тривимірних сцен.
Проектовану систему можна розбити на три підсистеми: систему розпізнавання образів, обробки двомірних штрих-кодів і систему обробки інформації отриманої з коду.
У роботі вирішуються наступні завдання:
- огляд сучасного стану проблеми:
- огляд існуючих систем розпізнавання;
- огляд існуючих нотацій двовимірних штрих-кодів;
- огляд мов тривимірного моделювання;
- вибір найбільш придатної системи розпізнавання та двовимірного штих-коду для вирішення завдання роботи;
- створення концептуальної моделі системи.
ОГЛЯД ПЛАТФОРМ РОЗШИРЕНОЇ РЕАЛЬНОСТІ
У даному розділі буде розглянута технологія розширеної реальності, а також найбільш відомі системи в даній галузі.
ТЕХНОЛОГІЯ РОЗШИРЕНОЇ РЕАЛЬНОСТІ
Доповнена або розширена реальність в широкому сенсі – це комплекс технологій, що дозволяють разом з відчуттями, які надходять з реального світу, отримувати додаткові відчуття уявних об’єктів, зазвичай допоміжно-інформативної властивості.
У вузькому сенсі, тобто в парадигмі прив’язки технології до інтерфейсу взаємодії людини і комп’ютера, доповнену реальність в більшості випадків представляють як процес поєднання об’єктів реального світу і об’єктів, згенерованих комп’ютером. На сьогоднішній день більшість досліджень в області доповненої реальності сконцентровано на використанні живого або інтерактивного відео, обробленого та “доповненого” комп’ютерною графікою. Більш серйозні дослідження включають відстеження руху реальних об’єктів, розпізнавання координатних міток за допомогою машинного зору і конструювання керованого оточення.
Доповнена реальність відрізняється від віртуальної. Їх відмінність в тому, що доповнена реальність вносить окремі штучні елементи в сприйняття реального спостережуваного світу, а віртуальна реальність конструює новий (абсолютно уявний) штучний світ.
Для того, щоб правильно поєднувати віртуальні і реальні об’єкти, необхідно вміти правильно обчислювати відносне становище реальних об’єктів і реальної сцени в цілому. На сьогоднішній день це завдання є вкрай складним, можливо навіть нездійсненним, якщо реальні об’єкти заздалегідь не визначені. Тому для управління використовуються спеціальні, об’єкти, обов’язково присутні на сцені і визначення положення яких є обчислювально простим завданням. Такі об’єкти називаються маркерами [4].
В якості маркерів можуть виступати різні об’єкти. Однак, можна виділити наступні групи:
- двовимірні штрих-коди;
- об’єкти реального світу;
- об’єкти що рухаються.
Двовимірні штрих-коди.
Найбільш простим для розпізнавання є чорно-біле зображення, що складається з набору прямокутників. Таким є двомірний штрих-код, який несе малу кількість інформації (8–20 біт). Існують алгоритми знаходження прямих ліній, які мають логарифмічну складність обчислення, таким чином знаходження набору прямокутників на зображенні є обчислювально простим завданням [1]. Приклади маркерів на основі двомірних штрих-кодів представлені на малюнку 1.1
Малюнок 1.1 – Маркери на основі штрих-кодів
Об’єкти реального світу
У деяких випадках неможливо нанести двомірний штрих-код на об’єкт сцени, який потрібно обробити. В цьому випадку необхідно створити систему, яка буде розпізнавати об’єкти реального світу. Це завдання складніше попереднього. Крім зображення використовується додаткова інформація (географічні координати пристрою або фарбування розпізнаваного об’єкта в певний колір).
Такі системи застосовуються в різних галузях. Наприклад, компанія Apple представляє програму New York Nearest Subway, що дозволяє більш ефективно орієнтуватися в Нью-Йорку. Приклад роботи даного додатку представлений на малюнку 1.2. Також ведуться розробки системи розпізнавання людської руки для використання даної технології в сфері комп’ютерних ігор [4]. Приклад таких розробок Каліфорнійського університету представлений на малюнку 1.3.
Малюнок 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 також містить деякі інноваційні розробки обробки даних. Це компонентно-орієнтоване ядро, що включає в себе засоби розробки складних систем, заснованих на прекомпильованних модулях, які контролюються деревами поведінки. Ці архітектурні концепції були перевірені в сфері комп’ютерних ігор і зараз широко використовуються при розробці складних програм [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 (мова моделювання віртуальної реальності) – стандарт мови опису тривимірних сцен, що містять об’єкти, а також можливих взаємодій між об’єктами і спостерігачем. Основне призначення мови – опис набору об’єктів (сцени) в системах віртуальної реальності. Найбільш поширене на даний момент застосування – представлення статичної та інтерактивної інформації в мережі інтернет, у вигляді віртуального тривимірного середовища, що містить різні об’єкти. Існує три поширених версії мови: 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 ID-маркерів;
- нові формати зображень камери (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/.