Mendelova univerzita v Brně Provozně ekonomická fakulta
Zpracování obrazu prostřednictvím mobilních zařízení Diplomová práce
Vedoucí práce: Ing. David Procházka, Ph.D.
Bc. Pavel Čermák
Brno 2012
ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE ZDE BUDE ZADÁNÍ PRÁCE
Chtěl bych poděkovat vedoucímu mé práce, panu Ing. Davidu Procházkovi, Ph.D. za velmi cenné konstruktivní odborné rady, trpělivost a čas, který mi během zpracování práce věnoval. Poděkování patří také mé rodině a přátelům za podporu a zázemí, které mi poskytovali v průběhu celého studia.
Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně a v seznamu literatury uvedl veškeré informační zdroje, které jsem použil pro její tvorbu.
V Brně 27. listopadu 2012
....................................................
5
Abstract ČERMÁK, P. Image processing on the mobile devices. Diploma thesis. Brno, 2012 The thesis deals with the issue of the image processing on the mobile devices. The mobile augmented reality technologies, its application area and the libraries for the augmented reality application development are introduced to the reader. Based on the specified requirements, framework has been designed and implemented. It provides tools for the mobile augmented reality application development. Its implementation has been verified by the experimental navigation application in the area of Faculty of Business and Economics, Mendel University in Brno. Keywords augmented reality, mobile devices, Android, framework, indoor navigation
Abstrakt ČERMÁK, P. Zpracování obrazu prostřednictvím mobilních zařízení. Diplomová práce. Brno, 2012 Práce se zabývá problematikou zpracování obrazu prostřednictvím mobilních zařízení. Čtenář je postupně seznámen s technologiemi mobilní rozšířené reality, oblastmi jejich využití a knihovnami pro vývoj aplikací rozšířené reality. Na základě stanovených požadavků byl navržen a implementován framework, který poskytuje nástroje pro vývoj mobilních aplikací rozšířené reality. Tato implementace byla následně ověřena pomocí experimentální aplikace pro indoor navigaci v rámci prostor Provozně ekonomické fakulty, Mendelovy univerzity v Brně. Klíčová slova rozšířená realita, mobilní zařízení, Android, framework, indoor navigace
6
OBSAH
Obsah 1 Úvod a cíl práce 1.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 8 8
2 Rozšířená realita 10 2.1 Definice rozšířené reality . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Vývoj rozšířené reality . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Mobilní rozšířená realita a její technologie 3.1 Zobrazování rozšířené reality . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Kapesní displeje . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Registrace a trackování . . . . . . . . . . . . . . . . . . . . . . . . . .
13 14 14 15
4 Aplikace mobilní rozšířené reality 4.1 Reklama a propagace . . . . . . . . . 4.2 Podnikové aplikace . . . . . . . . . . 4.3 Turismus . . . . . . . . . . . . . . . . 4.4 Zábava . . . . . . . . . . . . . . . . . 4.5 Vzdělání . . . . . . . . . . . . . . . . 4.6 Využití AR v dalších odvětvích lidské
. . . . . .
18 18 18 19 20 21 21
. . . . . . . . . . . . . . . . . . . . . . . . . činnosti
. . . . . .
. . . . . .
5 Knihovny pro vývoj mobilních aplikací rozšířené 5.1 OpenCV . . . . . . . . . . . . . . . . . . . . . . . 5.2 ARToolkit . . . . . . . . . . . . . . . . . . . . . . 5.3 Vuforia Augmented Reality . . . . . . . . . . . . . 5.4 FastCV . . . . . . . . . . . . . . . . . . . . . . . 5.5 Metaio Mobile SDK . . . . . . . . . . . . . . . . . 5.6 Ostatní knihovny pro rozšířenou realitu . . . . . . 5.7 Shrnutí . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
reality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
23 23 24 25 27 28 29 29
6 Knihovny pro práci s grafickými objekty 6.1 OpenGL ES - OpenGL for Embedded Systems . . . . 6.2 Object-oriented Graphics Rendering Engine (OGRE) 6.3 Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Shrnutí . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
30 30 31 33 35
7 Možnosti zpracování obrazu mobilním zařízením 7.1 Lokální zpracování dat . . . . . . . . . . . . . . . 7.2 Síťové zpracování dat (Cloud computing) . . . . . 7.3 Úložiště dat rozšířené reality . . . . . . . . . . . . 7.4 Shrnutí . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
36 36 37 39 39
. . . .
. . . .
7
OBSAH
8 Metodika
40
9 Vlastní řešení 9.1 Návrh frameworku a experimentální aplikace . . . . . . . . . . 9.2 Výběr vhodných knihoven . . . . . . . . . . . . . . . . . . . . 9.2.1 Knihovny pro vývoj mobilních aplikací rozšířené reality 9.2.2 Knihovny pro práci s grafickými objekty . . . . . . . . 9.2.3 Výběr knihoven . . . . . . . . . . . . . . . . . . . . . . 9.3 Implementace . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.1 Framework pro zpracování obrazu . . . . . . . . . . . . 9.3.2 Aplikace využívající framework pro indoor navigaci . .
42 42 43 43 44 45 46 46 49
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
10 Diskuze 52 10.1 Vyhodnocení realizovaného projektu . . . . . . . . . . . . . . . . . . . 52 10.2 Možnosti využití daného typu aplikací ve firemním prostředí . . . . . 53 10.3 Návrh budoucího rozvoje projektu . . . . . . . . . . . . . . . . . . . . 54 11 Závěr
55
12 Literatura
56
Přílohy
60
A Příklad konfigurace s nastavením trackování
61
B Příklad konfigurace se seznamem modelů
63
C Ukázka běhu aplikace
64
1
ÚVOD A CíL PRÁCE
1
8
Úvod a cíl práce
1.1
Úvod
V poslední době zažívá oblast mobilních zařízení velmi rychlý rozvoj, který je zapříčiněn jak pokrokem v oblasti mobilních technologií, tak i rostoucí popularitou této platformy. Současná mobilní zařízení oproti jejich předchůdcům disponují komponentami, které dávají jejich využití nový rozměr. Již se nejedná o zařízení, která slouží pouze pro telefonování a zasílání krátkých textových, popřípadě multimediálních zpráv. Mezi obvyklou HW výbavu mobilních zařízení dnes běžně patří výkonný procesor a grafický čip, velký dotykový displej, GPS přijímač, NFC1 čtečka, kompas, akcelerometr či fotoaparát s vysokým rozlišením. Tato výbava společně s operačními systémy Android, iOS nebo Windows Phone umožňuje využití v nejrůznějších oblastech lidské činnosti. Zpočátku byly využívány zejména v podnikatelské sféře jako nástroj pro správu emailů, kontaktů či pro podporu rozhodování v podobě nejrůznějších podnikových aplikací. V posledních několika letech se však jejich využití masově rozšířilo mezi širokou veřejnost, která tyto zařízení využívá k usnadnění a zpříjemnění jejich každodenních činností. Ať už se jedná o využití v oblasti dopravy, zábavního průmyslu či jako prostředek pro získávání informací a komunikaci s okolním světem pomocí nejrůznějších sociální sítí. Novou kapitolou v oblasti využití mobilních zařízení se stává oblast rozšířené reality, a to zejména díky velkému tržnímu potenciálu mobilní platformy a již zmiňovanému rychlému vývoji mobilních technologií, které umožňují realizaci aplikací rozšířené reality. Tyto aplikace využívají mobilní telefony nebo tablety pro vizualizaci a propojení virtuálního světa se světem reálným. Kombinace mobility a funkčnosti mobilních zařízení tak vytváří velký potenciál pro masové rozšíření těchto aplikací. Využití lze nalézt v oblasti marketingu (virtuální katalogy firem), turismu (doplňování geografických informací do obrazu reálného světa), vzdělání (virtuální modely v lékařství), podpory rozhodování (simulace živelných katastrof) a v mnoha dalších oblastech. Díky doplňování dodatečných informací do reálného světa se tato technologie stává čím dál více využívanou a dá se odhadovat, že její obliba a využití v denním životě neustále poroste. V současnosti se touto technologií zabývá spousta jak univerzitních projektů, tak i řada projektů z komerční sféry, která je zastupována mezinárodními společnostmi jako je Google, Apple či Microsoft.
1.2
Cíl práce
Cílem této práce je prozkoumání oblasti rozšířené reality a jejího využití na mobilních zařízeních. V rámci této problematiky budou nastudovány vývojové nástroje 1
NFC (Near Field Communication) je technologie navržená pro bezdrátovou komunikaci mezi různými elektronickými zařízeními, z nichž jedno bude typicky mobilním telefonem. NFC zpřístupní bezdrátovou komunikaci na velmi krátké vzdálenosti (od 4 do 20 cm) pouhým přiblížením obou zařízení (Doupal, 2011).
1.2
Cíl práce
9
a knihovny, které umožňují vývoj mobilních aplikací rozšířené reality zpracovávajících obraz reálného světa. Diplomová práce se bude zabývat jak knihovnami určenými pro zpracování obrazu, tak i knihovnami pro doplnění informací v podobě 2D/3D objektů do reálného světa. Důraz bude kladen na knihovny podporující mobilní platformu Android, která se jeví díky své otevřenosti a rozšířenosti jako nejvhodnější. Na základě získaných poznatků bude nejprve navržen a vytvořen framework, který by bylo možné využít pro implementaci aplikací zpracovávajících obraz z kamery mobilních zařízení. Následně bude implementována aplikace, jenž by za pomocí vytvořeného frameworku demonstrovala praktické využití rozšířené reality pomocí mobilních zařízení. K tomu, aby bylo těchto cílů dosaženo, bude třeba kromě výše zmíněných oblastí nastudovat i problematiku vývoje mobilních aplikací na platformě Android a také problematiku vytváření prostorových modelů.
2
ROZŠíŘENÁ REALITA
2 2.1
10
Rozšířená realita Definice rozšířené reality
Rozšířenou realitu Augmented Reality (AR) lze definovat jako realitu rozšířenou (doplněnou) o další důležité informace ke skutečnému světu a objektům nacházejícím se v něm jako např. budovy, historické památky, automobily, apod. Rozšířenou realitu lze také vymezit jako syntézu reálného a virtuálního prostředí – Virtual Environment (VE) nebo virtuální reality – Virtual Reality (VR). Díky technologiím virtuální reality se může uživatel zcela ponořit do umělého prostředí, v němž však nemůže vidět reálný svět kolem sebe. Na rozdíl od VR umožňuje rozšířená realita uživateli vidět reálný svět s virtuálními objekty na něj navršenými nebo přímo zakomponovanými do obrazu reálného světa, a nechává uživatele zažít ve stejném čase oba světy, jak virtuální, tak i reálný. Rozšířenou realitu lze chápat jako svět na hranici mezi virtuální realitou, tedy umělým prostředím, a reálným světem, tedy prostředím zcela skutečným (Azuma, 1997; Wuest, 2009). Dle Azumy (1997) má rozšířená realita splňovat následující charakteristiky: 1. Kombinace reálného a virtuálního 2. Interakce v reálném čase 3. Záznam v 3D Vztah mezi reálným a virtuálním prostředím lze zobrazit pomocí Milgramova diagramu virtuálního kontinua, který je znázorněn na Obr. 1. Koncept virtuálního kontinua se vztahuje k zobrazování kombinací objektů z virtuálního a reálného světa, kdy reálné prostředí je zobrazeno na jednom konci kontinua a virtuální prostřední v jeho protějším extrému. V prvním případě se toto prostředí sestává pouze z reálných objektů, ve druhém případě výhradně z virtuálních objektů. Objekty reálného a virtuálního světa, které jsou zobrazovány společně kdekoliv mezi těmito extrémy virtuálního kontinua, lze považovat za kombinovanou realitu (mixed reality) (Milgram a Kishino, 1994).
Obr. 1: Milgramův diagram (Koubek, 2010)
2.2
Vývoj rozšířené reality
2.2
11
Vývoj rozšířené reality
V roce 1965 vytvořil Ivan Sutherland první head-mounted display (HMD2 ) a použil jej jako ukázku jednoduchého drátového modelu překrývající reálný svět a vytvořil tak první rozhraní rozšířené reality. Vývojáři prvních rozhraní rozšířené reality, kteří následovali Sutherlanda, navrhovali převážně 3D virtuální modely v kontextu reálného světa pro aplikace jako jsou medicína, podpora v průmyslu nebo osobní informační systémy. Přestože tyto rozhraní poskytovaly intuitivní metody pro zobrazování 3D dat, nabízely obvykle malou podporu pro vytvoření nebo modifikaci obsahu rozšířené reality (Poupyrev et al., 2002). Myron Krueger vyvinul v roce 1975 Videoplace (Videoprostor) – místnost, která jako první poskytovala uživatelům interakci s virtuálními objekty (Carmigniani et al., 2011). Samotný termín rozšířená realita byl poprvé použit na počátku 90. let dvěma vědci společnosti Boeing – Tomem Caudellem a Davidem Mizellem. Tito vědci vyvinuli HMD, jenž měl pomáhat konstruktérům při výrobě letadel zobrazováním informací o tom, kde se má vrtat a kudy je potřeba vést dráty (Henrysson, 2007). Tito vědci také začali diskutovat o výhodách rozšířené reality ve srovnání s virtuální realitou. Mezi tyto výhody patří např. nižší spotřeba energie, jelikož je zapotřebí menší počet pixelů. Ve stejném roce vytvořil L. B. Rosenberg jeden z prvních fungujících systémů rozšířené reality tzv. Virtual Fixtures a prokázal jeho přínos pro lidskou výkonnost. Mezi tím představili Steven Feiner, Blair Maclntyre a Doree Seligmann první velkou publikaci prototypu systému rozšířené reality s názvem KARMA. Roku 1997 napsal Ronald Azuma první průzkum o rozšířené realitě, jenž poskytl všeobecně uznávanou definici rozšířené reality – jde o kombinaci virtuálního a reálného prostředí, přičemž oba jsou použitelné ve 3D prostoru a jsou interaktivní v reálném čase (Carmigniani et al., 2011). Bruce Thomas vyvinul v roce 2000 projekt ARQuake – první mobilní AR hra, která byla poprvé uvedena na mezinárodním sympoziu o přenosných počítačích. ARQuake byl zasazen do venkovního prostředí, bylo využíváno hybridního systému kombinujícího nejen GPS pro určení polohy, ale zejména budovy, u kterých se hra odehrává, jsou předem zmapovány a pomocí markerů je přesně zjištěna jejich pozice, aby nedošlo k tomu, že by byly např. dveře zobrazeny jinde, než mají být (Carmigniani et al., 2011; Ševčík, 2011). V roce 2005 předpokládal Horizon Report, že se AR technologie objeví ve větší míře v následujících čtyřech až pěti letech. Že tato predikce byla správná dokazuje skutečnost, že v témže roce byl vyvinut kamerový systém, který analyzoval v reálném čase fyzické prostředí a zjišťoval pozici objektů v prostředí. Tento typ kamerového systému se stal základem pro integraci virtuálních objektů s realitou v systémech AR. V následujících letech byly aplikace AR stále více vyvíjeny, především s mobilními aplikacemi jako jsou Wikitude AR Travel Guide, jehož vývoj byl započat v roce 2
HMD je zkratkou pro Head-mounted display neboli také pro Helmet mounted display. Je to zobrazovací zařízení, které se nosí připevněné na hlavě nebo může být jako součást helmy – uživatel má volné ruce, proto se používá v mnoha vojenských či průmyslových aplikacích (Klein, 2006).
2.2
Vývoj rozšířené reality
12
2008 (Carmigniani et al., 2011). Běží na platformách Android, iOS i Symbian a díky GPS, kompasu a centrální databázi objektů je uživateli nabídnuta možnost rozšířit vnímání prostředí, ve kterém se nachází. Namířením telefonu na daný objekt (např. budovu, pohoří, apod.) se k němu na displej zobrazí podrobné informace, které jej charakterizují (Ševčík, 2011). Rozšířená realita byla považována ještě před několika lety za sci-fi, ale v současné době schopnost technologie přidat digitální informace do skutečného života i prostřednictvím mobilních technologií může změnit lidem způsob, jakým žijí a pracují. Rozšířená realita má vliv především na trh mobilních aplikací a mobilů, zájem o ni celosvětově narůstá. Propojuje se sociálními sítěmi a poskytuje možnost větší personalizace obsahu. Předpokládá se značné navýšení prodeje mobilních aplikací na bázi AR. Vizionáři prorokují AR velkou budoucnost prostřednictvím AR brýlí, které budou vyobrazovat dodatečné virtuální informace asociované k objektům reálného světa. Tyto brýle by se mohly stát masovým médiem, díky němuž bude možná větší personalizace služeb zákazníkům. Jejich propojení se sociálními sítěmi by poskytovalo více informací o prostředí, v němž se bude člověk nacházet. Možná, že reklama přes AR nahradí v budoucnu plakáty a billboardy, které nás všude obklopují. Rovněž tradiční papírové průvodce ve městech možná vystřídají popisky v AR. Informace o památkách pak bude možné číst kdekoliv v okolním prostoru (Folprecht, 2011).
3
3
MOBILNí ROZŠíŘENÁ REALITA A JEJí TECHNOLOGIE
13
Mobilní rozšířená realita a její technologie
V posledních letech umožnil rozvoj v oblasti mobilních zařízení využití nových technologií pro vývoj mobilních aplikací rozšířené reality, které jsou založeny na zpracování vstupních obrazových dat. Tento fakt vede jak ke zvyšování popularity projektů zabývajících se mobilní AR, tak i k expanzi mainstreamových aplikací AR. Jednou z nejpopulárnějších AR aplikací využívající nejnovější mobilní technologie je projekt Layar. Jeho princip je založen na prolínání obrazu z kamery mobilních zařízení s doplňujícími informacemi z mapových vrstev, které jsou uloženy v mobilním zařízení (Procházka a Koubek, 2011). S postupným zvyšováním výkonu, výdrže a funkcí mobilních zařízení se otevírají stále nové možnosti pro vývoj speciálních aplikací. Současným rostoucím trendem, který kombinuje funkci a užitečnost mobility, je právě rozšířená realita. Příklad reálné aplikace rozšířené reality znázorňuje Obr. 2.
Obr. 2: Využití rozšířené reality na mobilním zařízení pro zobrazení informací o tom, kde se nachází jednotlivé sekce expozice (Augmented Reality Blog, 2010)
Podle Jaramillo et al. (2010) se definice mobilní rozšířené reality vztahuje k systémům, které využívají mobilní telefony nebo tablety pro vizualizaci a interakci. Tyto zařízení jsou vybaveny veškerými potřebnými komponenty – dostatečně velkým displejem, výkonným procesorem a grafickým čipem, dostatečnou paměťovou kapacitou, trackovacími senzory (GPS, kompas atd.) a kamerou s vysokým rozlišením. Zmiňované komponenty tvoří z těchto zařízení ideální platformu pro vývoj mobilních aplikací pro rozšířenou realitu. Díky velkému tržnímu potenciálu se tato kategorie jeví jako klíčová pro vývoj mobilních AR aplikací.
3.1
Zobrazování rozšířené reality
14
Následující kapitola popisuje technologie, které jsou spjaty s aplikací rozšířené reality na mobilních zařízeních. Kapitola se zabývá třemi důležitými částmi AR – zařízeními určenými pro zobrazování rozšířené reality, registrací a vizuálním trackováním pomocí kamery mobilních zařízení. Ostatní způsoby trackování pomocí senzorů, jako jsou GPS nebo kompas, nejsou náplní této práce a nebudou detailně probírány.
3.1
Zobrazování rozšířené reality
U rozšířené reality je velmi podstatné, jakým způsobem jsou zobrazována výsledná data, a to z toho důvodu, že právě zobrazování je posledním článkem mezi AR a uživatelem a v konečném důsledku ovlivňuje celkovou přínosnost aplikace. AR lze zobrazovat pomocí zařízení, které mohou být obecně rozděleny do tří kategorií (Koubek, 2010): • HMD, • Prostorové displeje3 , • Kapesní displeje. Diplomové práce se bude v následujícím textu věnovat pouze poslední kategorii, do které spadají současná mobilní zařízení. První jmenována kategorie by se dala částečně využít i pro mobilní využití, avšak k tomuto účelu v dnešní době mnohem lépe vyhovují zařízení z kategorie kapesních displejů. HMD a prostorovým displejům se detailněji věnuje Koubek (2010) a Palík (2011). 3.1.1
Kapesní displeje
Kapesní displeje neboli také ruční displeje využívají malé výpočetní zařízení s displejem, který může uživatel držet v rukou. V současné době existují tři odlišné skupiny komerčně dostupných ručních displejů, které lze použít pro systém rozšířené reality, a to chytré telefony, PDA a tablety (Carmigniani et al., 2011). Všechna tato zařízení mají společné to, že obsahují procesor, paměť, displej a technologii interakce v jednom zařízení a jsou zaměřeny na podporu bezdrátové a neomezeně přenosné manipulace. Pro tyto zařízení je typický video see-through 4 přístup, který využívá kameru mobilního zařízení (Bimber a Raskar, 2005). Kategorie kapesních displejů se v současnosti častěji označuje spojením mobilní zařízení. Mobilní zařízení dnes mají dostatečný výkon pro aplikaci počítačového vidění, dekódování videí nebo například pro práci s 3D grafikou a disponují kvalitními barevnými displeji nebo širokou škálou síťových technologií (Wi-Fi, Bluetooth, NFC 3
Prostorové displeje využívají převážně video-projektory, optické elementy, hologramy, rádiovou frekvenci a další technologie. Grafické informace jsou zobrazovány přímo na fyzické objekty bez nutnosti použití HMD. Prostorové displeje oddělují většinu potřebných technologií od uživatele a integrují ji přímo do prostředí (Carmigniani et al., 2011). 4 Displeje se skládají z neprůhledné obrazovky spojené s videokamerou. Zobrazením obrazů z kamery se displej stává „průhledným“. Video see-through systémy tedy neumožňují přímý pohled na reálný svět, ale doplňují virtuální objekty do obrazu pořízeného videokamerou a výsledný obraz je zobrazován na displeji (Schmalstieg a Reitmayr, 1999).
3.2
Registrace a trackování
15
aj.). Nejnovější modely mají integrované moderní grafické čipy, které nabízejí hardwarovou akceleraci videa. Díky tomu mohou tato zařízení sloužit jak pro prohlížení webu, hraní her nebo pro využití specifických grafických aplikací, které bylo možné ještě donedávna nalézt pouze na stolních počítačích. Fotoaparát mobilního zařízení zaznamenal v posledních letech velký pokrok. Optické čipy poskytují kvalitnější záznam obrazu společně s vysokým rozlišením. Spojení výkonného procesoru a kvalitního fotoaparátu dává jedinečné schopnosti pro zpracování oblasti počítačového vidění pomocí mobilních zařízení. Kromě toho jsou v této oblasti využívány i další senzory – GPS, gyroskop nebo kompas, které posunují AR aplikace ještě mnohem dále. Obr. 3 znázorňuje mobilní zařízení poslední generace, které disponuje zmiňovaným vybavením.
Obr. 3: Moderní mobilní zařízení podporující nejnovější technologie (Androidmarket.cz, 2012)
3.2
Registrace a trackování
Klíčovou součástí AR je registrace a trackování, které musí být robustní a přesné. Registrace je přesné zarovnání reálných a virtuálních informací, které jsou prezentovány uživateli. Registrace musí být provedena s přesností na pixely a dostatečně plynule k tomu, aby byla vytvořena dokonalá iluze soužití virtuálních a reálných objektů. K dosažení přesné registrace je třeba znát polohu a orientaci aplikace v souřadném systému a její vztah k systému virtuálnímu. Zjištění parametrů pozice a orientace je nazýváno trackování (Henrysson, 2007). Situace označovaná jako dobrá statická registrace je okamžik, kdy systém prezentuje naprosto přesné zobrazení reálných a virtuálních objektů v případě, že je
3.2
Registrace a trackování
16
uživatel nehybný. V běžných situacích je však mnohem důležitější dobrá dynamická registrace, která je spjata s přesným zobrazením těchto objektů, bez jakýchkoliv prodlev a zpoždění i ve chvílích, kdy je uživatel v pohybu. Jakékoliv chyby při registraci vedou ke zničení iluze, kterou vytváří AR aplikace (Klein, 2006). Existují dvě hlavní trackovací strategie – egocentrická inside-out a exocentrická outside-in. U inside-in strategie je AR systém vybaven různými senzory pro zjištění pozice a orientace. Outside-in trackování namísto toho využívá senzorů umístěných v prostředí, které zaznamenávají AR systém a poskytují mu informace potřebné pro registraci. Technologie trackování může být podle Henrysson (2007) rozdělena na: • Mechanické, • Source-less (gyroskop, akcelerometr), • Source-based (magnetické, ultrasonické), • Optické (vizuální), • Hybridní. Tato práce se dále zabývá pouze technologií optického (vizuálního) trackování. Vizuální trackování se snaží zjistit polohu zařízení analyzováním objektů nalezených v obraze a určit polohu kamery ve vztahu k objektům reálného světa. Toho se snaží docílit buď výpočtem z absolutní pozice kamery vzhledem ke známým objektům, nebo z pohybu kamery ve srovnání s předchozím snímkem. Vizuální trackování se postupně stalo atraktivní zejména u video see-through AR systémů, na nichž jsou založeny i mobilní zařízení. Mezi hlavní výhody patří cenová dostupnost zařízení, přesnost, flexibilnost a také fakt, že jediný senzor dokáže nabídnout 6DOF5 trackování. Při vizuálním trackování v reálném čase je třeba vytvořit souvislost mezi objekty v obraze a známými 3D lokacemi a zobrazit tyto souvislosti do video streamu. Jedním z řešení je využití uměle vytvořených markerů, které jsou umístěny do scény. Toto řešení bývá v některých literaturách označováno jako marker-based. Tyto markery mají speciální geometrický tvar, popř. vzor nebo barvu, což je činí jednoduše identifikovatelnými a jejich pozice v reálném světě je tak známá. Z důvodu co největší úspěšnosti detekce se volí markery jednoduchých tvarů v černobílém provedení. Umístění rozpoznatelného vzoru na objekt reálného světa a jeho zachycení a extrahování identifikátoru dává možnost získat další informace a funkcionalitu. Jeho identifikátor je využíván k vyhledávání patřičných informací například v databázích. Tyto informace (textové popisky, 2D/3D objekty aj.) poté mohou kompletně nahradit marker v obraze. V případě vzoru s vysokou hustotou mohou být namísto identifikátoru ukládána do markeru přímo data. Takovým vzorem jsou i velmi známé QR kódy (Henrysson, 2007). Obr. 4 demonstruje nalezení markerů v obraze a doplnění virtuálních objektů do výsledné scény. 5
Degrees Of Freedom (DOF) slouží pro vyjádření rozsahu sledovaného pohybu a vyjadřuje minimální počet nezávislých souřadnic, potřebných k popisu polohy v každém okamžiku. Pohyb tělesa v trojrozměrném prostoru je definován šesti stupni volnosti (6DOF) (Koubek, 2010).
3.2
Registrace a trackování
17
Obr. 4: Detekce markerů v obraze a zobrazení virtuálních objektů (Inglobe Technologies, 2011)
Alternativou k detekci pomocí markerů je marker-less (nebo také nazývaný feature-based) přístup, který využívá pouze objekty, které jsou přirozenou součástí prostředí. Tento způsob zpracování obrazu je však výpočetně náročnější. (Klein, 2006). V porovnání s předchozími léty je již detekce přirozených objektů v obraze proveditelná i na mobilních zařízeních. Základem pro rozpoznávání objektů pomocí marker-less metody je extrakce a srovnání tzv. přirozených vlastností obrazu a jeho specifických struktur, které mohou být použity k identifikaci známých šablon ve sledované scéně. Populárním algoritmem pro detekci a popis takových vlastností je Scale Invariant Feature Transform (SIFT) a SpeedUp Robust Feature (SURF). Oba algoritmy jsou robustní a škálovatelné, avšak jejich využívání je velmi výpočetně náročné. Kvůli tomu byly optimalizovány a uzpůsobeny pro běh na mobilních zařízeních. I přes tuto skutečnost je však těžko dosahováno přijatelných odezev AR aplikací při využití těchto metod na mobilních zařízeních (Baldauf et al., 2012). V dalších kapitolách práce budou představeny knihovny, které byly navrženy pro zpracování obrazu na mobilních zařízeních. Téměř všechny knihovny dnes podporují jak marker-less, tak i marker-based přístupy.
4
APLIKACE MOBILNí ROZŠíŘENÉ REALITY
4
18
Aplikace mobilní rozšířené reality
Většina dnešních aplikací pro rozšířenou realitu využívá kromě různých senzorů mobilních zařízení (kompas, gyroskop, GPS aj.) i informací získaných zpracováním obrazu z fotoaparátu mobilního zařízení. Tyto aplikace mají velký potenciál v mnoha oblastech lidské činnosti. Tato kapitola se bude zabývat oblastmi, které v současnosti patří z hlediska využití AR k nejvýznamnějším.
4.1
Reklama a propagace
V roce 2007 byla představena technika Shoot and Copy pro rozpoznání ikon na reklamních obrazovkách. Uživatel jednoduše pořídí fotografii požadované informace, která jej zajímá (např. sériové číslo, reklama nebo text novin) a ta je následně odeslána na server. Technika nevyžaduje vizuální kódy, které by byly propojeny s uvedeným obsahem. Zachycená oblast požadované informace je analyzována a identifikována na serveru. Na základě této oblasti jsou mobilnímu zařízení zaslány zpět relevantní data, např. URL na stránky výrobce, detaily o nabízeném výrobku apod. Jedná se o první přístup, který využívá obsah částí obrazovky jako markery. Tento proces je však poměrně pomalý a je omezen na dříve uložená data a analyzované reklamy (Sörös et al., 2011). Celosvětový lídr zaměřující se na prodej a výrobu levného nábytku a bytových doplňků – společnost IKEA nedávno oznámila spuštění svého katalogu IKEA 2013 s názvem „A New Kind of Catalogue“ s využitím rozšířené reality (Metaio, 2012b). Uživatel si stáhne aplikaci do mobilu, zvolí si produkt, který jej zajímá a namíří přes fotaparát na mobilním telefonu do prostoru bytu, kde by mohl být výrobek umístěn. Na obrazovce mobilního telefonu poté uvidí obrázek pokoje i s novým nábytkem (Folprecht, 2011). K dispozici je také funkce, která zobrazuje zákazníkům dispoziční řešení uvnitř skříně, která má v katalogu zavřené dveře (Diaz, 2012). Tato funkce je znázorněna na Obr. 5. Hlavním cílem bylo prodloužit životnost katalogu v domácnostech zákazníků. Jeho průměrná délka života je asi dva týdny, ale s digitálními nabídkami lze obsah přidávat a aktualizovat pravidelně, takže katalog může být i celoroční. Rovněž německý fotbalový klub SV Werder Bremen se pustil do kampaně propagující nový tým pro nadcházející sezónu stejně jako letošní výstroj pro fanoušky klubu, a to za pomocí aplikace Junaio. V katalogu, který lze stáhnout v PDF, lze najít další speciální videa pro vybrané zboží nabízené klubem (Trak, 2012).
4.2
Podnikové aplikace
Quack et al. (2008) představili aplikaci pro značkování snímků prezentace pro chytré zasedací místnosti. Uživatelé mají možnost využívat své telefony vybavené fotoaparátem, kdy si mohou vyfotit snímky nebo úseky snímků, které jsou prezentovány na promítacím plátně. Uživatel zcela jednoduše vyfotí aktuální snímek mobilním
4.3
Turismus
19
Obr. 5: Využití rozšířené reality v katalogu společnosti IKEA (Wired.com, 2012)
telefonem a telefon odešle požadavek na zpracování serveru, který zaslaný snímek zanalyzuje a získá z něj jeho klíčové vlastnosti. Následně je provedeno porovnání klíčových vlastností požadavku vůči klíčovým vlastnostem jednotlivých snímků z referenční databáze a lze tak jednoznačně určit aktuální snímek z prezentace. Uživatel získá informace zobrazené na snímku a zaznamená si je pro své potřeby. TouchProjector je projekt, který umožňuje interakci se vzdálenou obrazovkou prostřednictvím videa – přenáší dotykové události z mobilního telefonu na vzdálenou obrazovku. Nevýhodou tohoto řešení je algoritmus, který dokáže přesně pracovat pouze s objekty ve tvaru obdélníku, například fotografiemi. U objektů nepravidelných tvarů dochází k odchylkám a přenos je nepřesný (Sörös et al., 2011).
4.3
Turismus
Jednou z mnoha aplikací zabývajících se oblastí turismu je Wikitude World Browser, která je znázorněná na Obr. 6. Kamera telefonu zachytí obraz, ten se okamžitě zobrazuje a doplňuje jej informacemi o tom, co se na obrazu ve skutečnosti nachází. Aplikace je ideální pomocník pro turisty, díky které se lépe a rychleji zorientují, a získají informace o tom, co vidí. Wikitude World Browser samozřejmě nepracuje pouze s analýzou obrazu, pro rozpoznání předmětu. Na obrazu je směrodatná poloha určená pomocí GPS a telefon má zabudovaný elektronický kompas (pro určení směru pohledu turisty). Teprve následně je analyzován obraz. Samotná GPS je dostačující pro určení polohy, avšak ne na to, aby telefon věděl, jakým směrem se turista dívá (Folprecht, 2011).
4.4
Zábava
20
Obr. 6: Využití rozšířené reality v turismu – aplikace Wikitude World Browser (ZoKnowsGaming, 2011)
4.4
Zábava
Sekai Camera je prohlížeč rozšířené reality, který dovoluje lidem vkládat virtuální objekty kamkoliv do prostoru (na základě GPS a dalších lokačních technologií) jako například vzkaz, obrázek, fotku, video, či zvuk. Ty se pak při pohledu přes mobilní telefon vznášejí v prostoru v místě, kam je autor vložil. Tyto vzkazy lze komentovat či přímo kontaktovat jejich autora. Tento princip lze také využít i v reklamě a propagaci. Toho je využíváno i v Tokiu, kdy jsou před restauracemi zobrazovány vznášející se virtuální vouchery, které lze zachytávat aplikací a získávat určité slevy (Folprecht, 2011). Každá nová technologie se většinou uplatní i v odvětví zábavy. Rozšířená realita není v tomto směru výjimkou. AR Blitz je hra v rozšířené realitě pro zařízení se systémem Android. Hra je založená na technologiích Unity, Qualcomm Augmented Reality a OpenFeint. Před začátkem hry se musí vytisknout marker na list papíru a zaměřit na něj fotoaparát telefonu. Úkolem hry je ničit objekty shodného tvaru a barvy, s cílem dosáhnout co nejvyššího skóre v časovém limitu jedné minuty (Zajíček, 2011). V současnosti se trh s mobilními hrami využívajících rozšířenou realitu neustále rozvíjí a do budoucna se dá očekávat, že se tento typ her stane populární. Za zmínku stojí hry jako ARDefender, SkySiege 3D nebo Kweekies.
4.5
4.5
Vzdělání
21
Vzdělání
Technologie rozšířené reality má rovněž velkou budoucnost v oblasti vzdělávání. Obzvláště studenti medicíny ocení rozšířenou realitu při výuce anatomie člověka. Díky rozšířené realitě může projekce kostí, svalů, nervů a dalších vnitřních částí těla pomoci studentům procvičit postupy na figurínách v poněkud „reálném světě“. Aplikace může rovněž pomoci naučit děti na základních a středních školách anatomii člověka tím, že jim dovolí nahlédnout pod kůži a odhalit vnitřní fungování lidského těla (Cameron, 2010). Rozšířenou realitu lze využít i v dalších předmětech jako např. v chemii, kdy s pomocí AR dojde k zobrazení molekul. Do budoucna si lze přestavit učebnice, které budou opatřeny značkami k danému probíranému úseku látky, kdy se zobrazí např. 3D grafy v matematice, 3D modely molekul různých sloučenin v chemii, princip fyzikálních jevů ve fyzice apod. Na podporu využívání rozšířené reality ve výuce vznikl projekt ARiSE (Augmented Reality in School Environments). Tento projekt je financován Evropskou unií a jeho cílem je zavést platformu AR do každodenního prostředí studentů i učitelů zobrazením audiovizuálního a multimediálního obsahu v souladu s potřebami uvedenými vzdělávacími odborníky a výzkumnými pracovníky v příslušných oblastech (Christaller et al., 2008).
4.6
Využití AR v dalších odvětvích lidské činnosti
Rozšířená realita může usnadnit práci v různých odvětvích lidské činnosti. Např. v medicíně se může AR využívat pro vizualizaci orgánů pacientova těla, dále pro plánování operací či jako pomoc při nacvičování chirurgických zákroků (Cameron, 2010). Příklad tohoto využití je zobrazen na Obr. 7. Automobilový průmysl je dalším odvětvím, kde může být AR velmi užitečným pomocníkem. Při rozhodování o interiéru či barvě automobilu není potřeba vytvářet několik různých prototypů. Tyto prototypy jsou místo toho virtualizovány s možností změny jak interiéru, tak i barev automobilu (Koubek, 2010). Další využití nachází AR v průmyslu, kdy lze například zobrazovat 3D modely návodu k instalaci a opravě složitých strojů přesně krok za krokem.
4.6
Využití AR v dalších odvětvích lidské činnosti
22
Obr. 7: Využití rozšířené reality v medicíně (Medical Augmented Reality, 2012)
AR může také usnadnit rozhodování při nákupu nového chytrého telefonu, a to díky aplikaci handsonAR, jež využívá právě rozšířenou realitu. Smysl této aplikace spočívá ve vizualizaci nejnovějších modelů mobilních zařízení. K tomu stačí pouze kousek papíru obsahující speciální marker a následně zamířit fotoaparátem na tento objekt. Tento list papíru je následně kompletně nahrazen modelem, který si uživatel zvolil. Se zařízením, které je zastupováno markerem, se může libovolně pohybovat, otáčet, přibližovat a oddalovat, což umožňuje detailní prohlížení daného modelu. V nabídce aplikace je zatím možno zobrazit pouze několik typů chytrých telefonů, do budoucna se očekává aktualizace této aplikace (Vaculík, 2012).
5
KNIHOVNY PRO VÝVOJ MOBILNíCH APLIKACí ROZŠíŘENÉ REALITY
5
23
Knihovny pro vývoj mobilních aplikací rozšířené reality
Následující sekce se bude věnovat nejrozšířenějším knihovnám pro vývoj mobilních aplikací rozšířené reality. Zaměří se pouze na knihovny, které jsou kompatibilní s mobilním operačním systémem iOS a Android. Tyto dvě mobilní platformy jsou mezi uživateli nejrozšířenější, a proto se práce nebude zabývat platformami jako jsou Windows Mobile, Windows Phone nebo Symbian.
5.1
OpenCV
OpenCV (Open Source Computer Vision) je softwarová knihovna určená pro počítačové vidění a zpracování obrazu v reálném čase. Byla vyvinuta společností Intel a mnoha nezávislými vývojáři z celého světa. Tato knihovna je dostupná pod BSD licencí, a to zcela zdarma jak pro komerční, tak i pro výzkumné účely (Bradski a Kaehler, 2008). Plně podporuje programovací jazyky C, C++, Python a v současné době i jazyk Java na mobilní platformě Android. Knihovna OpenCV obsahuje přes 2500 optimalizovaných algoritmů pokrývajících mnoho oblastí počítačového vidění. Nabízí funkce pro zpracování obrazu, identifikaci objektů, segmentaci a rozpoznávání objektů, kalibraci kamery, stereo vidění nebo nástroje pro uživatelské rozhraní. Díky velkému počtu funkcí, neustálému vývoji a obrovské komunitě se tato knihovna stala jednou z nejpoužívanějších v oblasti počítačového vidění na světě (Karpus, 2009). Původně byla navržena pro využití na stolních stanicích, avšak dnes je možno knihovnu využívat i na některých mobilních platformách. Aktuální verze (2.4.2) oficiálně podporuje GNU/Linux, Microsoft Windows, MAC OS X, Android a iOS. Podpora mobilní platformy iOS je v současné době pouze ve stádiu alpha verze. Nejnovější mobilní operační systém Windows Phone není podporován. I když je prozatím podpora knihovny na platformě iOS v počátcích, existuje spousta článků popisujících její portování. Touto problematikou se zabývají články Karpus (2009) a Chin et al. (2010). Díky interoperatibilitě mezi jazyky C++ a Objective-C je možné OpenCV jednoduše využívat na platformě iOS jako framework, který běží na daném operačním systému. Obr. 8 znázorňuje umístění knihovny v rámci architektury operačního systému iOS. Aktuální verze nepodporuje akceleraci jak ze strany operačního systému, tak ani ze strany ARM procesoru. S její plnou podporou se počítá až v následující verzi. Dále musí vývojáři při práci s kamerou a videem místo třídy Highgui, která je součástí knihovny, využívat standardních prostředků operačního systému. Do budoucna se však počítá s odstraněním těchto nedostatků tak, aby bylo možné plně využívat veškerých prostředků knihovny (Bradski a Kaehler, 2012). Na mobilní platformě Android mohou být aplikace napsány buď v jazyce Java nebo v C++. Při vývoji se počítá spíše s kódem v jazyce Java. V některých případech se však může jevit nativní kód (C/C++) vhodnějším. Týká se to zejména situací,
5.2
ARToolkit
24
Obr. 8: Architektura OpenCV frameworku na operačním systému iOS (Bradski a Kaehler, 2012)
kdy už je část aplikace napsána v jazyce C++ a přepisování kódu by znamenalo zdržení. Využití nativního kódu je vhodné také v případech, kdy jsou navrženy výpočetně a časově složité operace. Řešením je tedy přidání třídy obsahující nativní metody, které obalí klíčovou funkcionalitu v jazyce C++ do Java části aplikace.
5.2
ARToolkit
ARToolkit je softwarová knihovna pro vývoj aplikací rozšířené reality. Knihovna podporuje programovací jazyky C/C++ a nabízí nástroje pro sledování a interakci s virtuálními objekty. Stejně jako knihovna OpenCV byla původně navržena pouze pro běh na stolních stanicích. Dnes je již knihovna portována na mobilní platformy Symbian, iOS a Android. Portování knihovny ARToolkit na mobilní platformy je v porovnání s knihovnou OpenCV komplikovanější a tento proces vyžaduje určité modifikace v kódu aplikace (Domhan, 2009). Před pár lety byl ARToolkit velmi populární mezi vývojáři mobilních aplikací, vývoj real-time aplikací pro rozšířenou realitu byl velmi rychlý, knihovna byla pod GPL licencí, komunita byla relativně velká a knihovna dostačovala potřebám pro vývoj takovýchto aplikací. V únoru 2007 se však bohužel ukončil vývoj volně dostupné verze knihovny a její nástupce ARToolkit Professional je již placený. Poslední verze byla uvolněna v lednu 2011 a oficiálně podporuje i mobilní operační systémy iOS a Android. Na základě informací na oficiálních stránkách se dá vydedukovat, že je již vývoj u konce a nové verze se nedají očekávat. ARToolkit for iOS je mobilní verze knihovny ARToolkit Professional, která slouží k vývoji aplikací rozšířené reality na této platformě. Na základě informací zveřejněných na stránkách produktu podporuje jazyk Objective-C. Knihovna by měla bezproblémově běžet na operačním systému iOS v.4.0+ a podporovat následující zařízení – iPhone 3G, 3GS, 4, iPod Touch 4G a novější. Podpora zařízení iPad není
5.3
Vuforia Augmented Reality
25
zmíněna. Bohužel není knihovna velmi dobře zdokumentována, stránky produktu neobsahují aktuální informace, komunita není příliš velká a vývoj byl pravděpodobně pozastaven (Inglobe Technologies, 2009). AndAR je obdoba knihovny ARToolkit for iOS určená pro vývoj aplikací na platformě Android. Je uvolněna pod GPL licencí a podporuje programovací jazyk Java. Velikost komunity je velmi malá a dle informací na stránkách projektu se zdá, že vývoj byl již v počátcích pozastaven. Poslední verze byla uvolněna v polovině roku 2010.
5.3
Vuforia Augmented Reality
Vuforia Augmented Reality je softwarová knihovna pro vývoj aplikací zaměřených na počítačové vidění. Tato knihovna je vyvíjena společností Qualcomm, která se kromě jiného zaměřuje i na mobilní platformy. Tato knihovna dokáže rozpoznávat širokou škálu 2D i 3D objektů v obraze. Vuforia Augmented Reality umožňuje psaní nativních aplikací na mobilních operačních systémech iOS a Android. Vývoj aplikací není zatížen žádnými poplatky – vývoj a distribuce komerčních aplikací je u současné licence zcela zdarma. Vývoj aplikací je prováděn speciálním způsobem. Platforma se skládá ze dvou částí – Vuforia SDK a Target Management System, který je hostován na vývojovém portále QDevNet. Vstupní obraz pro trackování6 (tzv. marker) je nejprve nahrán na tento vývojový portál. Po zpracování markeru jsou vygenerovány tzv. resources, obsahující jeho klíčové prvky a ty jsou následně vráceny zpět. Tyto resources jsou poté společně se statickou knihovnou připojeny k finální aplikaci. Tento proces je popsán na Obr. 9. 6
Systém musí znát směr pohledu uživatele k tomu, aby mohl navrátit a zobrazit odpovídající virtuální obsah. Co víc, musí také znát pozici a orientaci displeje v souřadném systému. Stanovení parametrů pro pozici a orientaci se nazývá tracking.
5.3
Vuforia Augmented Reality
26
Obr. 9: Proces zpracování markerů pomocí systému Target Management (Qualcomm, 2012)
Architektura aplikace využívající tuto knihovnu je znázorněna na Obr. 10 a skládá se z následujících klíčových komponent (Qualcomm, 2012): • Camera – tato komponenta zajišťuje, že je každý snímek zachycen a efektivně předán trackeru ke zpracování. Vývojář musí pouze určit, kdy má zachytávání obrazu začít a skončit. • Image Converter – stará se o konverzi mezi formátem obrazu z kamery (např. YUV12) do formátu vhodného pro OpenGL ES renderování (např. RGB565) a trackování. Konverze také zahrnuje podvzorkování do různých formátů. • Tracker – pomocí algoritmu počítačového vidění detekuje a trackuje objekty reálného světa ve vstupních datech. Zpracovaný obraz je následně ukládán do tzv. State objects. • Video Background Renderer – vykresluje obraz z kamery, který byl zpracován trackerem a uložen do State objects. • Application code – zajišťuje inicializaci všech klíčových komponent a zpracování jejich vstupů a výstupů. • Target resources – databáze všech klíčových prvků markerů, které byly zpracovány pomocí Target Management System. Přestože je knihovna relativně nová, zdá se, že má velký potenciál pro úspěch mezi uživateli. Její velkou předností je podpora markerů různorodých předloh, zahrnující i klasické fotografie. K úspěšnému rozpoznaní markeru se využívají jeho klíčové body, což vede k tomu, že stačí pouze částečná viditelnost markeru. Knihovna dále umožňuje přidání virtuálních tlačítek, které jsou součástí markeru. Těm je pak možno přiřadit konkrétní funkci, např. změnu barvy virtuálního objektu. Projekt je stále aktivní, dokumentace je dostatečná a existuje spousta aplikací, které tuto knihovnu využívají. Její uplatnění je i v několika univerzitních projektech. Jedním
5.4
FastCV
27
Obr. 10: Architektura aplikace využívající Vuforia SDK (Qualcomm, 2012)
z nich se zabývá Preston a Chastine (2011). O úspěchu či neúspěchu nakonec rozhodne komunita.
5.4
FastCV
FastCV je knihovna určená pro počítačové vidění, která je přímo optimalizovaná pro běh na mobilních zařízeních s operačním systémem Android. Do budoucna se však plánuje podpora zařízení s operačním systémem iOS a Windows Phone. Za jejím vývojem stojí, stejně jako za Vuforia Augmented Reality, společnost Qualcomm. Zatímco Vuforia Augmented Reality se zaměřuje na detekci markerů v obraze a defacto je vyvinuta pomocí FastCV, FastCV obsahuje nejpoužívanější funkce pro zpracování vidění. Mezi tyto funkce mohou být zahrnuty: • rozpoznání gest, • detekce, trackování a rozpoznání obličeje, • rozpoznání a detekce textu, • rozšířená realita. Vývojáři middleware mohou FastCV využít pro vytvoření frameworků potřebných k vývoji aplikací rozšířené reality nebo mohou využít její funkce přímo v aplikacích. Knihovna obsahuje dvě implementace, které však mají stejné API. První implementace je optimalizována pro běh na ARM procesorech (FastCV for ARM ),
5.5
Metaio Mobile SDK
28
zatímco druhá je optimalizována pro procesory Snapdragon (FastCV for Snapdragon). Nespornou výhodou je přímá optimalizace výpočetně náročných operací na konkrétní hardware. Za přímého konkurenta se dá označit knihovna OpenCV, která není přímo optimalizovaná pro mobilní zařízení, ale na druhou stranu nabízí mnohem více možností. Jelikož je vývoj knihovny teprve v počátcích, bude hlavně záležet na množství funkcí, které bude nabízet a také na tom, jak velkou komunitu si dokáže v budoucnu vybudovat (Qualcomm, 2012b).
5.5
Metaio Mobile SDK
Tato softwarová knihovna, vyvíjená od roku 2009 společností Metaio, je určena pro vývoj aplikací rozšířené reality na mobilní zařízení s operačními systémy Android a iOS. Samotná knihovna přichází s komplexní sadou funkcí a podporou vývoje AR aplikací, obsahuje vestavěný AR prohlížeč Junaio, pokročilé trackovací funkce (trackování 2D a 3D objektů aj.) nebo výkonný 3D renderovací engine, který podporuje animované md2 7 a statické obj formáty. Kromě integrovaného renderovacího enginu obsahuje i podporu knihovny Unity, což je světově uznávaný cross-platform herní engine. Pomocí pluginu je možné využívat knihovnu Metaio Mobile SDK přímo v Unity. Oproti již zmiňované knihovně Vuforia Augmented Reality není třeba jakoukoliv část vyvíjené aplikace uploadovat na servery společnosti. Dle informací na webu výrobce je knihovna aktivně využívána pro vývoj různorodých aplikací na obou platformách. Za zmínku stojí již zmíněné produkty – interaktivní katalog společnosti IKEA pro rok 2013 nebo katalog německého fotbalového klubu. Mezi klíčové funkce knihovny patří zejména: • optimalizované trackování a renderování pro nejrozšířenější mobilní chipsety, • integrovaný 3D renderovací engine s podporou shaderů, • podpora renderovacího enginu Unity • location-based POI vizualizační engine pro vytvoření vlastního AR prohlížeče, • pokročilé trackovací funkce (trackování 2D a 3D objektů bez použití markeru, podpora QR a čárových kódů aj.). Knihovna je dostupná jak ve verzi placené, tak i ve verzi zdarma pro komerční účely. U neplacené verze lze publikovat omezené množství AR aplikací, ve kterých bude zobrazován vodoznak společnosti. Tato verze neobsahuje veškeré pokročilé trackovací funkce – například trackování 3D objektů bez použití markeru. V případě placených verzí (ceny přibližně od 5000 eur) jsou tyto nedostatky odstraněny. Knihovna má velký potenciál, a to díky stálému vývoji a více než 1000 aktivních vývojářů. Na druhou stranu knihovna nenabízí takové množství funkcí jako již zmiňovaná knihovna OpenCV (Metaio, 2012). 7
Md2 je formát modelů využívaných enginem ve hrách jako Quake II nebo Soldier of Fortune. Formát je primárně využíván pro animované modely, ačkoliv může být využíván i pro modely statické (Wikipedia, 2012).
5.6
5.6
Ostatní knihovny pro rozšířenou realitu
29
Ostatní knihovny pro rozšířenou realitu
Existuje několik dalších mobilních knihoven pro vývoj aplikací rozšířené reality, a to například Studierstube Tracker, Popcode nebo ARmsk. Studierstube Tracker je následovník velmi úspěšné knihovny ARToolKitPlus. Knihovna vznikla kompletním přepsáním původního kódu, což vedlo k velmi vysokému výkonu jak na stolních počítačích, tak i na mobilních zařízeních. V porovnání s knihovnou ARToolKitPlus jsou její paměťové požadavky velmi nízké a rychlost zpracování je velmi vysoká. Podporuje platformy Symbian, Windows Mobile a iOS. Bohužel není knihovna v současné době dostupná veřejnosti a je navržena pouze pro potřeby technické univerzity v Gratzu. Popcode a ARmsk jsou poměrně nové projekty s volnou licencí, malou komunitou a s téměř žádnou dokumentací. Oba projekty podporují mobilní platformy Android a iOS. Většina knihoven jsou univerzitními projekty, a proto není vývoj příliš rychlý a stabilní a jejich komunita je většinou tvořena z pracovníků a studentů univerzit. Tyto vlastnosti nejsou limitujícími pro studentské projekty, avšak pro komplexní řešení se můžou stát problémem.
5.7
Shrnutí
Na základě výše uvedených informací lze konstatovat, že existuje dostatek aktivních projektů, které podporují vývoj mobilních aplikací rozšířené reality na platformách Android a iOS. Tento aktivní vývoj je poháněn neustálým rozšiřováním dané technologie mezi širokou veřejností. Najdou se ale i takové projekty (ARToolkit), jejichž vývoj byl již pozastaven. Jednotlivé knihovny se mezi sebou liší zejména nabízenou funkcionalitou a komunitou, která je obklopuje. Z pohledu nabízené funkcionality je na tom nejlépe knihovna OpenCV, což je bezesporu dáno jejím několikaletým intenzivním vývojem. Na druhou stranu je vývoj, díky její obecnosti, o něco pracnější, než je tomu u knihoven Metaio Mobile SDK nebo Vuforia Augmented Reality. Jako nejméně propracovanou a také rozšířenou knihovnou se prozatím jeví FastCV. To se však může v budoucnu změnit díky její přímé optimalizaci pro mobilní procesory. Z hlediska velikosti komunit je na tom nejlépe OpenCV a Metaio Mobile SDK, zatímco komunita FastCV a Vuforia Augmented Reality se teprve rozrůstá. Jak již bylo zmíněno, existuje i několik menších projektů, které však většinou nenabízejí žádnou speciální funkcionalitu, kvůli které by je bylo nezbytné využívat. Každá z knihoven má bezesporu své klady a zápory, a proto je při její volbě nutné zvážit pro jaké účely má být využívána.
6
KNIHOVNY PRO PRÁCI S GRAFICKÝMI OBJEKTY
6
30
Knihovny pro práci s grafickými objekty
Úkolem aplikací pro rozšířenou realitu je zpracování obrazu a v závislosti na výsledcích tohoto procesu doplnění dat do zpracovávaného obrazu. Toto doplnění může být realizováno přímo knihovnou, která zajišťuje samotné zpracování obrazu nebo knihovnou, která je přímo určena pro zobrazování 2D a 3D objektů. V prvním zmiňovaném případě se může jednat o jednoduché doplnění textu nebo 2D objektů do obrazu, což umožňuje i knihovna OpenCV. V druhém případě se jedná o doplnění složitějších 3D modelů. Následující kapitola se zabývá vybranými knihovnami, které jsou určeny pro práci s 2D a 3D objekty na mobilních zařízeních.
6.1
OpenGL ES - OpenGL for Embedded Systems
Open Graphics Library (OpenGL), vyvíjená nezávislou skupinou Khronos Group, je využívána pro vizualizaci 2D a 3D dat. OpenGL je víceúčelová otevřená grafická knihovna, která podporuje vytváření aplikací pro práci s 2D a 3D objekty, pro práci s mechanickým a architektonickým designem, virtuálním prototypováním, simulacemi letu, videohrami a mnoho dalšími. OpenGL umožňuje vývojářům aplikací přímou komunikaci s 3D grafickou pipeline s možností odesílat do ní data. OpenGL je navrženo tak, aby překládalo volání funkcí na grafické příkazy, které mohou být zaslány grafickému hardwaru, na kterém aplikace běží. Jelikož je tento grafický hardware přímo určen pro zpracování grafických příkazů, vykreslování pomocí OpenGL je velmi rychlé a tím se zároveň snižují nároky na spotřebu zařízení. OpenGL for Embedded Systems (OpenGL ES) je zjednodušená verze OpenGL, která eliminuje nepotřebnou funkcionalitu a tím vytváří knihovnu, která je snadnější jak pro učení, tak i pro snadnější implementaci na mobilním grafickém hardware (Apple Inc., 2011). Tato knihovna, jejíž architektura je znázorněna na Obr. 11, odstraňuje spoustu nepotřebných funkcí a zjednodušuje některé z funkcí tak, aby mohly běžet efektivně i na méně výkonných mobilních procesorech. Vytváří tak flexibilní a výkonné nízkoúrovňové rozhraní mezi aplikací a grafickou akcelerací. Knihovna byla přijata na mnoha mobilních platformách jako je Android, iOS, WebOS, Nintento 3DS a BlackBerry. V současné době existují tři základní specifikace OpenGL ES – 1.X, 2.X a 3.X. Většina zařízení podporuje první dvě zmiňované specifikace. Poslední specifikace byla vydána v srpnu 2012 (Smithwick a Verma, 2012). Specifikace OpenGL ES 1.0 vychází z OpenGL 1.3 specifikace a umožňuje softwarové vykreslování a základní hardwarovou akceleraci. Víceméně se jedná pouze o optimalizovanou desktopovou verzi grafické knihovny. Specifikace 1.1 je zpětně kompatibilní s předchozí verzí a poskytuje rozšířené funkce, lepší kvalitu obrazu a optimalizace pro zvýšení výkonu při současném snížení nároků na paměť a spotřebu. OpenGL ES 2.0 je definována ve vztahu k specifikaci OpenGL 2.0 a nabízí programovatelnou 3D grafickou pipeline s možností vytváření shader objektů pomocí
6.2
Object-oriented Graphics Rendering Engine (OGRE)
31
tzv. OpenGL ES Shading language. Tato specifikace nepodporuje některé funkce z předchozí verze a není tak zpětně kompatibilní s verzí 1.1. OpenGL ES 3.0 je nejnovější specifikací knihovny, která byla uvolněna v srpnu 2012. Implementuje nejnovější funkce z desktopové verze knihovny OpenGL 3.X a 4.X. Rozšířeny byly možnosti programovatelných shaderů, byla přidána podpora složitějších textur (textury o libovolných rozměrech aj.) a nový bezplatný kompresní formát pro textury, který byl vyvinut společností Ericsson. Komprese textur je obzvláště důležitá u mobilních zařízeních, protože snižuje množství paměti a šířku pásma potřebnou pro jejich ukládání. Doposud byl nucen každý výrobce grafických čipů vytvářet vlastní kompresní algoritmus, což činilo problémy vývojářům aplikací. Ti museli distribuovat několik verzí textur, pro každý kompresní algoritmus tak, aby bylo zajištěno, že aplikace bezproblémově poběží na grafických čipech různých výrobců. S příchodem univerzálního kompresního algoritmu tyto problémy odpadnou. Mimoto pracuje Khronos Group na vývoji vlastního kompresního algoritmu (ASTC ), který není prozatím povinnou součástí nejnovější verze, ale do budoucna by se jí mohl stát. Nejnovější specifikace také obsahuje některé nové kreslící schopnosti, jako je vykonávání instancovaného vykreslování, tj. vykreslení jednoho objektu vícekrát pomocí jediného příkazu. V současnosti není nejnovější specifikace OpenGL ES podporována ze strany mobilního hardware. Tato podpora by měla být dostupná u zařízení vydaných až v roce 2013 (Bright, 2012).
Obr. 11: Architektura OpenGL ES
6.2
Object-oriented Graphics Rendering Engine (OGRE)
OGRE (Object-oriented Graphics Rendering Engine) je scénově orientovaný, flexibilní 3D engine napsaný v jazyce C++ umožňující jednoduchý a intuitivní vývoj
6.2
Object-oriented Graphics Rendering Engine (OGRE)
32
aplikací využívajících hardwarově akcelerovanou 3D grafiku. Knihovna abstrahuje veškeré podrobnosti o používání základních systémových knihoven jako je Direct3D nebo OpenGL (včetně verzí OpenGL ES 1.1 a 2.0) a poskytuje rozhraní založené na objektově orientovaném návrhu, tj. reálných objektech a jiných intuitivních třídách. Tento návrh minimalizuje úsilí potřebné pro vykreslování 3D scén a poskytuje nezávislost na použitých systémových knihovnách. Správa stavu vykreslování nebo transparentnost jsou prováděny automaticky, což šetří čas při vývoji. Knihovna podporuje vertex shadery jak na úrovni assembleru, tak i ve vysokoúrovňových jazycích a poskytuje automatickou podporu pro parametry jako jsou informace o stavu světel nebo pozici pozorovatele. Dále například podporuje Level of Detail (LOD8 ) materiálu – urychluje vykreslování, dokáže pracovat s texturami různých formátů, obsahuje funkce pro animaci, práci se scénou, mřížkou a různé speciální efekty (Junker, 2006). Kompletní výčet funkcí je k nalezení na stránkách projektu. Funkcionalita knihovny může být jednoduše rozšířena pomocí dodatečných zásuvných modulů, které nejsou součástí standardní instalace. Knihovna je navržena pro vývoj her, simulací, podnikových a vzdělávacích aplikací a mnoho dalších. Je šířena pod MIT licencí, což znamená, že její využití je zdarma pokud je společně s aplikací distribuován i obsah licenčních podmínek OGRE. Dle informací uvedených na stránkách projektu je knihovna aktivně využívána ve spoustě projektů. Jak již bylo zmíněno, primárním programovacím jazykem je C++. Důvodem je rychlost jeho vykonávání, která je vyžadována při zpracovávání velkého toku obrazových dat. Na druhou stranu je vývoj aplikace v tomto jazyce náročnější. Z toho důvodu nabízí knihovna alternativy a podporuje i další programovací jazyky – Python, Java a .NET. Využití této knihovny v daných jazycích je zajištěno pomocí tzv. wrapperů (mezivrstev). Nevýhodou jejich využití je částečně nižší výkon z důvodu obsluhy volání jednotlivých funkcí, který však není ve všech případech klíčovým a také neoficiální podpora ze strany vývojového týmu knihovny. Knihovna OGRE běží na platformách Microsoft Windows, Linux, Mac OS X, iOS a také Android. Ačkoliv platforma Android oficiálně umožňuje vývoj nativních aplikací v jazycích C/C++, tak jsou tyto prostředky (zejména nedostatečná podpora výjimek) pro knihovnu OGRE nedostačující a portování na oficiální vývojový kit není možné. Vzhledem k tomu, že je knihovna postavena na masivním využívání výjimek, tak je její portování za pomocí oficiálního Android NDK složité. Kvůli této skutečnosti byla komunitou vytvořena speciální verze NDK, která vychází z oficiální verze a navíc plně podporuje C++, včetně výjimek. Při použití této verze je možné vytvářet nativní aplikace využívající knihovnu OGRE, avšak za cenu absence některých funkcí (Torus Know Software ltd., 2012). Komunita projektu je velká, avšak dokumentace některých částí projektu není příliš dokonalá. Zejména informace o podporovaných funkcích není příliš aktuální a uživatel je musí dlouze dohledávat. Aktuální verze knihovny 1.8.1, uvolněná 2. září 2012, řeší zejména opravy chyb a podporu OpenGL ES 2.0. Z pohledu využití na 8
Level Of Detail (LOD) – vyjadřuje snižování/zvyšování komplexity pozorovaných objektů v závislosti na vzdálenosti pozorovatele. Tato technika zvyšuje efektivitu vykreslování.
6.3
Unity
33
mobilních platformách se zdá, že knihovna není příliš rozšířená – její uplatnění je spíše na desktopech.
Obr. 12: Podpora stínů knihovnou OGRE
6.3
Unity
Unity je multiplatformní plnohodnotný herní engine, který běží jak na platformě Android, tak i na iOS. Kromě jiného podporuje i platformy XBox360, PS3 a Wii. Zatímco se knihovna OGRE zabývá vytvářením co nejabstraktnějšího wrapperu kolem OpenGL, herní enginy jdou o něco dále. Snaží se dodávat většinu, ne-li všechny podpůrné funkce, které hry obvykle využívají – zvuk, skriptování, síťové rozšíření, fyziku, uživatelské rozhraní aj. Kromě toho dobrý herní engine obsahuje nástroje, které pomáhají vytvářet aplikace nezávislé na platformě. Unity obsahuje veškeré zmiňované prostředky a tím se stává vyhledávaným enginem pro vývoj her. To vede k tomu, že spousta malých projektů se stejným zaměřením postupně zaniká. Jelikož je knihovna vydávána pod komerční licencí, její zdrojové kódy nejsou veřejně dostupné (Smithwick a Verma, 2012). Unity poskytuje vstupní bod pro herní vývojáře a vyvážený poměr mezi funkcemi a cenou. Bezplatná verze umožňuje experimentovat, učit se, vyvíjet a prodávat herní tituly bez jakýchkoliv omezení. Tato bezplatná verze však neobsahuje podporu mobilních platforem, která musí být v případě potřeb dokoupena. Zároveň jsou její funkce velmi omezené.
6.3
Unity
34
Unity podporuje a nabízí nejnovější technologie v oblasti herního vývoje jako je třeba odložené osvětlení, dynamické realtime stínování, míchání světel, plnou podporu shaderů a mnoho dalších. Dokonce je poskytován zdrojový kód ke všem vestavěným shaderům a efektům tak, aby si je mohl v případě potřeby uživatel upravit. Kompletní výčet podporovaných funkcí je k nalezení na webových stránkách projektu. Verze Unity pro mobilní zařízení je přímo optimalizovaná pro jejich grafické čipy, tak aby byl běh aplikace co nejméně náročný na systémové prostředky. Na platformě Android došlo k optimalizaci grafické pipeline pro OpenGL ES 2.0. Co se týká samotného vývoje her, ten je prováděn ve speciální aplikaci, která je distribuována společně s knihovnou. Ukázka vývojového prostředí je znázorněna na Obr. 13. Bezespornou výhodou tohoto prostředí je fakt, že podporuje multiplatformní vývoj, tzn. distribuce projektu na více platforem je pro vývojáře snadnou záležitostí (Unity Technologies, 2012).
Obr. 13: Vývojové prostředí Unity (Unity Technologies, 2012)
Velká uživatelská základna (v roce 2011 dosahovala více než 400 tisíc uživatelů) a extrémně aktivní uživatelská komunita umožňuje jakkoliv zkušenému uživateli rychle získávat odpovědi a sdílet informace s ostatními. Trh pro multiplatformní hry, zejména pro hry na platformy iOS a Android, je v současnosti velmi populární. Unity tento multiplatformní vývoj plně podporuje, což je jeho bezespornou výhodou. Co se však týká využití pro vývoj aplikací pro rozšířenou realitu, není tato knihovna ideální volbou. Je to dáno zejména tím, že je primárně určena pouze pro vývoj her a zdaleka nenabízí takové možnosti jako přímo specializované knihovny (Blackman, 2011).
6.4
6.4
Shrnutí
35
Shrnutí
Předchozí text se zaměřil na vybrané knihovny, které slouží pro práci s grafickými objekty na mobilních platformách. OpenGL ES je knihovnou poskytující nízkoúrovňové rozhraní, které umožňuje optimalizaci navržených funkcí, avšak za cenu složitějšího vývoje. Podporuje spoustu platforem a její mobilní verze se odvíjí od verze desktopové. Vývoj OpenGL ES jde neustále kupředu – díky tomu podporuje nejnovější technologie a poskytuje funkcionalitu, která je vyžadována ze strany uživatelů. Oproti tomu knihovny OGRE a Unity poskytují vysokoúrovňové rozhraní, které minimalizuje úsilí potřebné pro vytváření aplikací. Pro využití knihovny OGRE na mobilních platformách je nutné provést její portaci, která může v některých případech vést k omezení funkcionality, případně její běh nemusí být stabilní. Pravděpodobně z tohoto důvodu není komunita mobilní verze příliš rozsáhlá. Unity je multiplatformní knihovnou, primárně navrženou pro vývoj herních titulů – nabízí kromě standardních funkcí i funkce podpůrné, které usnadňují implementaci. Podpora vývoje aplikací rozšířené reality pomocí této knihovny je však prozatím nízká a kvůli tomu pro něj není ideální volbou. Nejlepším řešením se pro tento okamžik jeví být knihovna OpenGL ES, která nejlépe poskytuje potřebnou funkcionalitu.
7
MOŽNOSTI ZPRACOVÁNí OBRAZU MOBILNíM ZAŘíZENíM
7
36
Možnosti zpracování obrazu mobilním zařízením
Jak již bylo zmíněno v předchozích kapitolách, problém zpracování obrazu může být řešen dvěma technikami trackování, jejichž princip je diametrálně odlišný – technikou marker-less, tj. detekce přirozených objektů v obraze nebo technikou markerbased, tj. detekcí markerů v obraze. Při návrhu mobilní aplikace rozšířené reality je kromě volby techniky trackování také nutné definovat, jakým způsobem bude obraz zpracován. V zásadě se dá problém zpracování vstupních obrazových dat vnímat následujícími způsoby: 1. Lokální zpracování dat – vstupní obrazová data jsou pořízena kamerou mobilního zařízení, které zodpovídá i za samotné zpracování těchto dat. 2. Síťové zpracování dat (Cloud computing) – vstupní obrazová data jsou pořízena kamerou mobilního zařízení a následně jsou tato data přeposlána pomocí síťového protokolu ke vzdálenému zpracování. Co se týká vzdáleného zpracování obrazových dat, nabízí se dvě varianty: a) Klient (mobilní zařízení) odešle vstupní obrazová data ke zpracování na vzdálený server. Ten je na serveru zpracován, upraven do finální podoby (doplněn o virtuální 2D/3D objekty aj.) a odeslán zpět na klientské zařízení, kde je zobrazen. b) Klient (mobilní zařízení) odešle vstupní obrazová data ke zpracování na vzdálený server jako v předchozím případě. Server tato data zpracuje a detekuje klíčové prvky (například umístění hledaných objektů v obraze). Tyto klíčové prvky navrátí zpět klientskému zařízení, které již zodpovídá za zpracování obrazu do finální podoby, tj. vykreslení požadovaných dat do obrazu. Volba vhodného přístupu pro zpracování obrazových dat je pro projekt klíčovou a nedá se s určitostí konstatovat, která je výhodnější – vždy záleží na podstatě řešeného problému.
7.1
Lokální zpracování dat
U lokálního zpracování dat je veškerá práce izolovaně vykonávána samotným mobilním zařízením. Obrazová data jsou nejprve zachycena pomocí kamery mobilního zařízení a následně pomocí specifického rozhraní, daného operačního systému, načtena pro zpracování. K tomu je použita jedna z dříve jmenovaných mobilních knihoven pro rozšířenou realitu – například knihovna OpenCV. Po zpracování a získání potřebných informací (klíčové prvky, pozice objektů v obraze aj.) se do obrazu doplňuje rozšířená informace, ať už v podobě 2D/3D objektů nebo textových informací. Tyto informace mohou být do výsledného obrazu doplněny buď samotnou knihovnou pro zpracování obrazu nebo jednou ze specializovaných knihoven určených pro práci s grafickými objekty, které byly popsány dříve. Nevýhodou tohoto přístupu je zejména výpočetní náročnost na hardware mobilního telefonu. Při praktickém využití je kladen důraz na zpracování a interakci
7.2
Síťové zpracování dat (Cloud computing)
37
v reálném čase, což je díky nižšímu výkonu mobilních zařízení obtížné splnit. Současně se s vysokými výpočetními nároky drasticky zvyšují nároky na spotřebu zařízení, což je v některých případech velmi limitujícím faktorem. Výhodou řešení je na druhou stranu absence síťového připojení, které není vždy dostupné (těžko přístupný terén, oblasti bez pokrytí internetovým připojením). V těchto situacích není takto navržená aplikace ve svém provozu nikterak omezena a může být uživateli stále užitečná. I s příchodem nejmodernějších mobilních zařízení se tento přístup stále jeví nedostačujícím, avšak není vyloučeno, že v následujících letech se tento trend nezmění.
7.2
Síťové zpracování dat (Cloud computing)
U síťového zpracování dat jsou na rozdíl od předchozího přístupu obrazová data částečně nebo kompletně zpracována na vzdáleném serveru. Kompletní a neupravená vstupní obrazová data z fotoaparátu mobilního telefonu mohou být zaslána na server v komprimovaném/nekomprimovaném stavu ke zpracování nebo mohou být částečně předzpracována na straně klienta, což vede ke snížení datové náročnosti přenosu. V případě předzpracování může být použita některá z dříve zmiňovaných knihoven pro rozšířenou realitu. Následně jsou data zpracovávána na straně serveru – ten je vybaven výpočetně výkonnějším hardwarem v porovnání s mobilními zařízeními. Pro zpracování mohou být využívány verze knihoven (popsaných výše), avšak určené přímo pro desktopovou platformu. Knihovnami rozšířené reality pro desktopovou platformu se zabývá Koubek (2010) nebo Palík (2011). V zásadě existují dvě varianty zpracování dat na straně serveru. Obraz může být kompletně zpracován včetně doplnění rozšířených informací, tzn. veškerá výpočetní zátěž je na straně serveru. Výsledný obraz je poté skrz síťové rozhraní navrácen a zobrazen na displeji zařízení. Druhá varianta využívá server pouze k detekci klíčových vlastností v obraze (polohu objektů aj.) a tyto informace jsou navráceny klientovi. Ten již plně zodpovídá za úpravu do finální podoby, tj. dokreslení rozšířených informací pomocí jedné z mobilních knihoven k tomu určených. Druhý zmiňovaný přístup je využíván třeba frameworkem, který popisuje Ha et al. (2010). Obr. 14 znázorňuje reálnou aplikaci tohoto přístupu. Při návrhu mobilních aplikací rozšířené reality, které využívají cloud computingu, mohou být z hlediska požadavku na rychlost zpracování/vykreslování obrazu definovány dvě kategorie aplikací. První jsou aplikace, které vyžadují pro svůj chod konstantní zpracování obrazu. Příkladem mohou být hry rozšířené reality (ARDefender, SkySiege 3D aj.) nebo navigační aplikace využívající rozšířené reality, které do stálého toku obrazových dat vkládají aktualizované informace. Druhou kategorií jsou aplikace, které využívají zpracování obrazu pouze občas – jednou z takových je i Google Goggles. Tato aplikace je schopna jednoduchým způsobem identifikovat mnoho grafických objektů – od maleb po knižní tituly. Klientská část aplikace provádí pouze základní analýzu obrazu, zatímco složitější operace předává ke zpracování na vzdálené servery, které mají za úkol provést porovnávání obrazových dat
7.2
Síťové zpracování dat (Cloud computing)
38
Obr. 14: Příklad praktického využití cloud computingu (Ha et al., 2010)
(Procházka et al., 2011). K tomuto procesu však dochází pouze v případě, že si uživatel vyžádá o vyhodnocení pořízeného snímku z kamery. V dnešní době je architektura cloud computingu vhodná pro použití u obou zmíněných druhů aplikací – zejména u aplikací nevyžadujících konstantní zpracování obrazu. U aplikací s potřebou konstantního zpracování obrazu je tato architektura z hlediska požadavku na rychlost akceptovatelná, což uvádí studie Ha et al. (2010). K optimalizaci datového toku mohou být využívány senzory zařízení (akcelerometr, kompas aj.), které slouží k upřesnění pohybu obrazu. V případě, že se scéna razantně nezměnila není třeba zasílat ke zpracování všechny snímky. Tento způsob optimalizace je využíván v projektu, který popisuje Sörös et al. (2011). Hlavní výhodou je nepochybně zvýšení výkonu aplikace díky využití několikanásobně výkonnějšího hardware pro zpracování nebo předzpracování obrazu. Další výhodou je možnost využití pokročilých algoritmů pro zpracování obrazu, které nejsou použitelné přímo na mobilní platformě. To umožňuje dosahovat přijatelných odezev při práci s obrazem v reálném čase, kterých není velmi často dosahováno při využití lokálního zpracování. Dané řešení také nachází využití v situacích, kdy již existuje systém rozšířené reality, který běží na desktopové platformě. Pomocí tohoto konceptu je možné systém využívat i na mobilních platformách. Nevýhodou uvedeného řešení je potřeba stálého síťového připojení, avšak díky jeho dobré dostupnosti (Wi-Fi, připojení od mobilních operátorů) je tento aspekt dnes již zanedbatelný. Díky neocenitelným výhodám, které jsou zmíněny výše, je síťového zpracování dat v dnešní době hojně využíváno. Architektura cloud computingu umožňuje minimalizovat nedostatky současných mobilních zařízení – zejména jejich nižšího výkonu a z toho plynoucích omezení při práci s daty v reálném čase. O potenciálu této architektury svědčí i fakt, že vývoj, ať už mobilních či desktopových aplikací, se uchyluje tímto směrem.
7.3
7.3
Úložiště dat rozšířené reality
39
Úložiště dat rozšířené reality
U obou dříve zmiňovaných situací nebyl brán v úvahu další důležitý aspekt, kterým je úložiště dat rozšířené reality – text se pouze zabýval způsoby zpracování obrazových dat. Existují dvě možnosti ukládání těchto dat – lokálně na zařízení nebo na síťově sdíleném úložišti (serveru). Každý z těchto způsobů má své klady a zápory. U lokálního úložiště odpovídají klady i zápory těm, které byly zmíněny u prvního ze způsobů zpracování vstupních obrazových dat (tj. izolovanému zpracování). V tomto případě mohou být data aktualizována společně s aplikací tak, aby obsahovala vždy nejnovější informace. U síťově sdíleného serveru dochází k rychlejšímu vyhledávání dat, která však musí být následně přenášena pomocí síťového protokolu. I přes vyšší datovou náročnost přenosů mezi serverem a mobilním zařízením se tento přístup jeví vhodnějším a volí jej většina novodobých projektů, jimiž se zabývají i Sörös et al. (2011) nebo Ha et al. (2010). Síťové sdíleného serveru využívají i větší projekty jako jsou Layar nebo Google Goggles. Nespornou výhodou je centralizované ukládání dat, rychlé vyhledávání a absence potřeby dostatečné kapacity pro tato data přímo na mobilním zařízení. Nevýhodou mohou být nároky na spotřebu při využívání technologie Wi-Fi pro připojení do sítě a nebo nedostupnost služby v místě slabého pokrytí signálem.
7.4
Shrnutí
Lze konstatovat, že využití síťového zpracování dat (cloud computingu) má své opodstatnění zejména v případech, kdy je nutné identifikovat velké množství objektů. V takových případech dochází k vysokým nárokům na výpočetní výkon, který nedokáží současná mobilní zařízení poskytnout. Tato architektura však může být využívána i v situacích, kde je kladen důraz na konstantní zpracování dat – i zde dosahuje přijatelných výsledků. Na druhou stranu se v případech, kdy dochází k výpočetně méně náročnému zpracování obrazu a data aplikace nejsou příliš rozměrná, jeví být lokální zpracování lepší. Přínosem tohoto přístupu je zejména to, že mobilní zařízení nemusí disponovat síťovým připojením. Řada dnešních aplikací je omezována zejména výpočetním výkonem, což je jedním z důvodů, proč se v oblasti vývoje desktopových i mobilních aplikací stává cloud computing současným trendem.
8
8
METODIKA
40
Metodika
Pro realizaci frameworku a aplikace, která by demonstrovala praktické využití rozšířené reality pomocí mobilních zařízení, je nutné provést následující kroky. Definovat funkce, které by měl framework podporovat a následně navrhnout experimentální aplikaci demonstrující jeho praktické využití. Součástí návrhu je i vytvoření uživatelsky přívětivého rozhraní, které umožňuje jednoduché ovládání aplikace. K tomu, aby bylo těchto cílů dosaženo, je nutné vybrat vhodnou knihovnu pro zpracování obrazu a pro doplňování informací rozšířené reality. Definice frameworku a experimentální aplikace Framework má za úkol poskytnout prostředky pro vývoj aplikace mobilní rozšířené reality a co nejvíce tento vývoj usnadnit. Bude podporovat platformu Android, a to kvůli její otevřenosti a rozšířenosti mezi uživateli. Na základě jednoduchých úprav, které nevyžadují ze strany uživatele zásah do zdrojového kódu frameworku, by měl podporovat různé formy nastavení. Mezi tyto nastavení patří například volba trackovací metody, specifikace detekovaných objektů, jejich různorodá nastavení a v neposlední řadě také specifikaci doplňovaných dat. Pro dané účely se jeví formát XML ideálním, a to zejména díky jeho obecnosti. Framework by měl zároveň nabízet základní uživatelské rozhraní umožňující ovládání implementované aplikace – například prvky pro jednoduchou a přehlednou práci s informacemi rozšířené reality. Předpokládá se, že uplatnění frameworku bude v aplikacích, u nichž nebude zpracování obrazu příliš výpočetně náročné. Na základě toho bude zpracování obrazu prováděno lokálně na mobilním zařízení, což umožní použití frameworku i v případech nedostupného síťového připojení. Aplikace využívající tento framework by měla mít uplatnění mezi co největším počtem uživatelů, přehledně a jednoduše zobrazovat požadovaná data a zejména by měla mít praktické uplatnění v každodenním životě. Cílem je vytvoření experimentální aplikace, která by byla přínosná a její využití by nebylo pouze dočasné, tak jako je tomu u spousty podobně zaměřených aplikací. Volba vhodných knihoven Klíčovou částí při tvorbě jakékoliv aplikace rozšířené reality, popř. frameworku, je volba vhodných knihoven, které poskytnou prostředky pro její implementaci. Před výběrem vhodné knihovny je podle Procházky a Koubka (2011) potřebné specifikovat klíčová kritéria, která jsou z hlediska vývoje výsledné aplikace důležitá: • Podporované programovací jazyky – většina z představených knihoven podporuje jazyky všech mobilních platforem, avšak najdou se i takové, které musí být pro danou platformu složitě portovány (ARToolkit). Portování knihovny znamená vynaložení dodatečného úsilí při vytváření aplikací a může s sebou přinášet neočekávané chování. Z tohoto důvodu je tento faktor velmi důležitý při výběru vhodné knihovny.
8
METODIKA
41
• Podporované mobilní platformy a architektury – na mobilní platformě je tento faktor velmi limitujícím a je úzce spjat s podporovanými programovacími jazyky. Je velmi důležité, aby byla knihovna podporována na co největším počtu mobilních platforem, zejména v případech, kdy je plánován vývoj na různých platformách. • Stav vývoje knihovny – existuje velké množství projektů, u kterých je dnes již jejich aktivní vývoj pozastaven a komunita vývojářů a uživatelů je malá. Aktivní vývoj, podpora nových architektur, technologií a velká komunita je u jakékoliv knihovny velmi zásadní. • Dokumentace – u mnoha projektů je dokumentace velmi často opomíjena a její úroveň není dobrá. V některých situacích je velmi důležité porozumět principům algoritmů a způsobu, jak tyto algoritmy co nejefektivněji využít. Špatná dokumentace tak může například zpomalit rychlost vývoje nebo snížit efektivitu vyvinutých aplikací. • Množství podporovaných funkcí – množství podporovaných funkcí je z hlediska vývoje velmi důležité. Aplikaci je vhodné založit na knihovně, jenž nabízí široké spektrum funkcí a umožní tak její bezproblémovou rozšířitelnost. • Náročnost vývoje aplikací rozšířené reality – je velmi žádoucí, aby knihovna poskytovala co nejvíce nástrojů, které usnadní a urychlí vývoj mobilních aplikací rozšířené reality. Spousta aplikací je dnes založena na principu doplňování jednoduchých rozšířených informací na základě detekce objektů ve scéně. Z pohledu vývojáře je žádoucí, aby byl čas a úsilí, vynaložené na tvorbu takovéto aplikace, co nejmenší. Jelikož bude zpracování obrazu prováděno lokálně, bude výběr vhodného řešení proveden na základě analýzy mobilních knihoven, které jsou popsány výše a také na základě dostupných informací na Internetu. Největší důraz bude kladen na podporované mobilní platformy, stav vývoje knihovny a podporu funkcí z hlediska navrženého frameworku a experimentální aplikace.
9
VLASTNí ŘEŠENí
9
42
Vlastní řešení
Vlastní řešení práce spočívá ve výběru vhodných knihoven, které budou použity pro vytvoření frameworku, u nějž bude nutné definovat jeho základní funkcionalitu a grafické uživatelské rozhraní. Kromě toho bude navržena experimentální aplikace rozšířené reality, pro jejíž implementaci bude využit vytvořený framework.
9.1
Návrh frameworku a experimentální aplikace
Framework pro zpracování obrazových dat by měl sloužit pro jednoduchý a efektivní vývoj aplikací rozšířené reality. Především by měl uživateli nabízet prostředky, pomocí nichž by byl schopen vytvořit funkční aplikaci bez nutnosti úpravy zdrojového kódu. Jádro bude tvořeno knihovnou, popř. knihovnami, které budou nejlépe splňovat stanovená kritéria. Problematikou výběru vhodných knihoven pro lokální zpracování obrazu se zabývá následující kapitola. Framework musí být schopen načítání dat z kamery, které budou následně zanalyzovány. Cílem analýzy bude lokální detekce předem definovaných objektů (např. značky, reálné 2D/3D objekty apod.) v obraze. Na základě provedené detekce budou do obrazu doplňovány dodatečné informace jak v podobě 3D modelů, tak i textových popisků. Samozřejmostí je požadavek na plynulost celého procesu tak, aby bylo možné zpracovávat obraz v reálném čase. Součástí frameworku bude i grafické uživatelské rozhraní, které nabídne ovládací prvky pro jednoduchou a intuitivní práci s aplikacemi, jenž budou postaveny na navrženém frameworku. Návrh takového rozhraní je znázorněn na Obr. 15. Dále by měl nabízet prostředky umožňující vyhledávání v předem definovaných datech a jejich následné vykreslení do obrazu. XML formát se jeví jako optimální prostředek, který by umožnil definici jak objektů, které mají být v obraze detekovány, tak i dat, které mají být zobrazovány. Tento formát je dostatečně obecný a přizpůsobitelný tak, aby se dal pro tyto účely využít. Jak již bylo zmíněno v části metodiky, experimentální aplikace, která bude postavena na daném frameworku, by měla mít uplatnění v každodenním životě, mezi co největším počtem uživatelů. Jednou z takových je bezesporu i aplikace, která by studentům poskytla nástroj pro indoor navigaci v prostorách budovy Provozně ekonomické fakulty, Mendelovy univerzity v Brně. Tato aplikace by měla umožnit v rámci navigace zobrazení 3D modelu patra, na kterém se aktuálně uživatel nachází a zároveň by měla umožnit vyhledávání nejvyužívanějších prostor fakulty (učebny, laboratoře a přednáškové místnosti). Princip vyhledávání by spočíval v zobrazení 3D modelu fakulty společně s požadovanými prostorami, včetně doplňujících informací jako je aktuální a cílové podlaží. Tato data budou do obrazu doplňována na základě jednoduchých objektů (pravděpodobně markerů) v něm detekovaných. K realizaci popisované aplikace bude nutné rovněž vytvořit modely prostor fakulty. K tomu bude využito mapových podkladů, které jsou studentům volně přístupné.
9.2
Výběr vhodných knihoven
43
Obr. 15: Návrh grafického uživatelského rozhraní frameworku obsahující v horní části tlačítko pro zobrazení seznamu všech modelů, vyhledávací pole a tlačítko pro přepínání režimů. V dolní části je lišta s doplňujícími informacemi (aktuální patro aj.). Ve střední části se zobrazuje obraz z kamery.
9.2
Výběr vhodných knihoven
Volba vhodných knihoven pro zpracování obrazu na mobilních zařízeních a doplnění rozšířené reality bude provedena na základě šesti důležitých kritérií – podporovaných programovacích jazyků, podporovaných mobilních platformách a architektury, stavu vývoje knihovny, dokumentace, množství podporovaných funkcí a náročnosti vývoje aplikací rozšířené reality. Práce se zaměří pouze na pět nejrozšířenějších knihoven určených pro zpracování obrazu a tři knihovny pro práci s grafickými objekty. 9.2.1
Knihovny pro vývoj mobilních aplikací rozšířené reality
V současnosti není žádná ze zmiňovaných knihoven navržena pro běh na mobilní platformě Windows Phone. Z hlediska podporovaných platforem jsou na tom nejlépe knihovny Metaio Mobile SDK, Vuforia AR a také OpenCV, které nativně podporují dvě nejrozšířenější platformy Android a iOS. FastCV běží pouze na první zmiňované a ARToolkit je nutné na každou z platforem portovat. Z pohledu podporovaných programovacích jazyků je výsledné hodnocení stejné jako předchozí. Kromě ARToolkit využívají všechny knihovny programovacího jazyku konkrétních platforem.
9.2
44
Výběr vhodných knihoven
Co se týká stavu vývoje jednotlivých knihoven, všechny jsou až na ARToolkit (vývoj ukončen v roce 2010) ve stadiu aktivního vývoje. Nejrychleji se vyvíjejícími knihovnami, dle informací uvedených zejména na webových stránkách projektů, jsou OpenCV a Metaio Mobile SDK, u nichž dochází k uvolňování nových verzí několikrát do roka. Z pohledu velikosti komunity jsou na tom nejlépe opět OpenCV a Metaio Mobile SDK, zatímco Vuforia AR a FastCV svou komunitu teprve budují. Komunita ARToolkit se kvůli svému ukončenému vývoji již nerozšiřuje a spíše se přesouvá k jiným aktivním projektům. Nejkvalitnější dokumentaci má OpenCV, u zbylých knihoven je dokumentace na téměř shodné úrovni. Knihovnou s nejvíce nabízenými funkcemi a algoritmy je bezesporu OpenCV. Díky tomu je možné knihovnu využít pro návrh nejrůznějších druhů aplikací. Její nevýhodou může být vyšší náročnost při implementaci některých z jejích funkcí (detekce objektů v obraze apod.). Oproti tomu stojí knihovna Metaio Mobile SDK, která sice implementuje podstatně méně funkcí, avšak nabízí prostředky pomocí nichž je jednodušší vytváření aplikací rozšířené reality. Obsahuje rozhraní, které již například implementuje velké množství trackovacích metod, včetně podpory renderovacího jádra. To umožňuje vývojářům bez většího úsilí vývoj jednodušších aplikací rozšířené reality. Knihovny Vuforia AR a FastCV jsou na tom co se týká počtu funkcí hůře, což je dáno zejména jejich krátkým vývojem. Není však vyloučeno, že se tato situace s postupem času nezmění. Vuforia AR nabízí podobně jako Metaio Mobile SDK rozhraní pro ulehčení vývoje mobilních aplikací – při jejich vzájemném porovnání je však na tom hůře. ARToolkit je knihovnou nabízející mnoho funkcí, ale z pohledu podpory nejnovějších algoritmů je již dnes neaktuální. Tab. 1: Umístění knihoven pro vývoj mobilních aplikací rozšířené reality na základě stanovených kritérií
Podporované programovací jazyky Podporované mobilní platformy Stav vývoje knihovny Dokumentace Množství podporovaných funkcí Náročnost vývoje aplikací AR
9.2.2
OpenCV
ARToolkit
Vuforia AR
FastCV
1. 1. 1. 1. 1. 2.
3. 3. 3. 2. 2. 2.
1. 1. 2. 2. 2. 1.
2. 2. 2. 2. 2. 2.
Metaio Mobile SDK 1. 1. 1. 2. 1. 1.
Knihovny pro práci s grafickými objekty
Všechny tři porovnávané knihovny pro práci s grafickými objekty podporují jak mobilní platformu Android, tak i iOS. OpenGL ES navíc podporuje i méně rozšířené platformy jako jsou WebOS, Nintendo 3DS a BlackBerry. Nevýhodou u knihovny OGRE je fakt, že musí být na platformu Android portována za pomocí neoficiálních vývojových toolkitů, které mají omezenou funkcionalitu oproti toolkitům oficiálním. Jako jediná ze zmiňovaných knihoven podporuje OpenGL ES programovací jazyky
9.2
45
Výběr vhodných knihoven
každé platformy. Unity využívá pro vytváření aplikací jazyků C#, JavaScript nebo Boo, jejichž syntaxe je založena na jazyce Python. OGRE využívá jazyku C/C++ a pomocí wraperů tak dochází k portování knihovny. Stav vývoje jednotlivých knihoven je u všech zmiňovaných aktivní a s každou novou verzí dochází k rozšiřování funkcí. Zatímco jsou velikosti komunit Unity a OpenGL ES velké a neustále se rozrůstající, OGRE není na mobilních platformách příliš rozšířená a její uplatnění je spíše u desktopových aplikací. Kvalitní dokumentací, doplněnou o spoustu vydaných publikací, disponují OpenGL ES a Unity, zatímco OGRE je na tom podstatně hůře – některé části projektu nejsou příliš detailně popsány. V oblasti nabízených funkcí je srovnání jednotlivých knihoven složité, a to zejména kvůli jejich specifickému zaměření. OpenGL ES vytváří výkonné a flexibilní nízkoúrovňové rozhraní mezi aplikací a grafickou akcelerací, avšak za cenu složitějšího a pomalejšího vývoje. Unity a OGRE poskytují vysokoúrovňové rozhraní, které abstrahují podrobnosti základních systémových knihoven a tím zjednodušují vykreslování scén a poskytují nezávislost na použitých knihovnách.Unity není primárně orientováno na vývoj standardních aplikací, ale zaměřuje se na vývoj her, což potvrzuje nabízenými podpůrnými funkcemi jako je skriptování, síťové rozšíření apod. Tato knihovna není pro vývoj aplikací rozšířené reality příliš ideální. Z hlediska rychlosti vývoje těchto aplikací, v případě opomenutí Unity, je na tom lépe OGRE, což je ale vykoupeno nižším výkonem a podporou méně funkcí. Tab. 2: Umístění knihoven pro práci s grafickými objekty na základě stanovených kritérií Podporované programovací jazyky Podporované mobilní platformy Stav vývoje knihovny Dokumentace Množství podporovaných funkcí Náročnost vývoje aplikací AR
9.2.3
OpenGL ES 1. 1. 1. 1. 1. 2.
OGRE 3. 2. 1. 2. 2. 1.
Unity 2. 2. 1. 1. 3. 3.
Výběr knihoven
Při srovnání výsledků pro jednotlivé knihovny pro vývoj mobilních aplikací rozšířené reality (Tab. 1) a pro práci s grafickými objekty (Tab. 2) se jeví být na první pohled nejvhodnějšími Metaio Mobile SDK pro zpracování obrazu a OpenGL ES pro vykreslování informací rozšířené reality. Knihovna Metaio Mobile SDK disponuje kromě sady funkcí pro vývoj AR aplikací i výkonným 3D renderovacím enginem, který je možné využít pro navržený framework a experimentální aplikaci. Funkce, které daný 3D renderovací engine nabízí (zejména práci s animovanými md2 a statickými obj formáty) plně dostačují požadavkům. Z toho důvodu je vhodnější využít tyto prostředky, čímž se zjednoduší a zrychlí vývoj frameworku a předejde se případným komplikacím při implementaci vlastního renderovacího enginu pomocí knihovny OpenGL ES.
9.3
Implementace
9.3
46
Implementace
V předchozí části této kapitoly byla vybrána vhodná knihovna, stanoveny klíčové funkce frameworku pro zpracování obrazu a navržena experimentální aplikace. V následujícím textu bude popsána jejich implementace. Ta bude rozdělena do dvou podsekcí, které se budou zabývat popisem frameworku pro zpracování obrazu a aplikace využívající framework pro indoor navigaci. Vývoj pro platformu Android byl prováděn v jazyce Java. Byl využíván vývojový balík Android NDK verze 16 a knihovna Metaio Mobile SDK verze 4.0.1. Vývojovým prostředím bylo zvoleno Eclipse, které je jediným oficiálním prostředím pro zmíněnou platformu. Toto prostředí umožňuje snadnou správu projektu a pomocí nepřeberného množství nástrojů usnadňuje jeho implementaci. Dále bylo nutné doinstalovat balík Android Developer Tool (ADT), který je nezbytný pro tento vývoj. 9.3.1
Framework pro zpracování obrazu
Framework pro zpracování obrazu je rozdělen do dvou funkčních částí – inicializace a zpracování obrazu včetně doplnění rozšířené reality. V následujícím textu bude popsán výsledný framework a jeho jednotlivé funkční části. Framework se zavádí spuštěním aktivity9 AssetLoaderActivity, která zajišťuje načtení potřebných dat a následně volá aktivitu, která je zodpovědná za běh celého frameworku. Inicializace Načtení potřebných dat zajišťuje aktivita AssetLoaderActivity. Ta vytvoří vlákno, které se postará o načtení potřebných konfiguračních souborů a modelů nacházejících se v balíku aplikace, v adresáři /asset. Proces načítání je nastaven tak, aby nedocházelo k přepisování již existujících souborů v zařízení. Díky tomu je inicializace časově náročná pouze při prvotním spuštění. try { // Načtení konfiguračních souborů a modelů AssetsManager.extractAllAssets(getApplicationContext(), false); } catch (IOException e) { MetaioDebug.printStackTrace(Log.ERROR, e); return false; } Po úspěšném načtení dochází k zavolání aktivity NavigatorActivity, jenž tvoří jádro celého frameworku. Ta je potomkem aktivity MetaioSDKViewActivity, jenž obsahuje klíčovou funkcionalitu knihovny Metaio Mobile SDK. Při inicializaci aktivity se nejprve ověří klíč aplikace. Validní klíč je nutnou podmínkou pro vývoj 9
Na platformě Android je aktivita komponenta aplikace poskytující obrazovku, se kterou mohou uživatelé pracovat. Taková aplikace se skládá z více aktivit, které mohou být navzájem různě propojeny.
9.3
Implementace
47
pomocí knihovny Metaio Mobile SDK a jeho bezplatné vygenerování lze provést na webu výrobce. Následně je provedena inicializace všech komponent, které jsou využívány pro práci s obrazem – od registrace obsluhy událostí, přes inicializaci senzorů a kamery až po inicializaci renderovacího jádra. V rámci inicializace jsou načteny dva konfigurační soubory, které jsou ve formátu XML. První z nich obsahuje nastavení modelů, které mají být vykreslovány do obrazu v závislosti na detekovaných objektech. Načtení souboru zajišťuje metoda Initialize(), která jej parsuje pomocí metody SAX a získaná data ukládá do dynamického pole objektů. Druhý konfigurační soubor obsahuje nastavení pro trackování objektů (černobílé markery, popř. markery tvořené fotografiemi) – počet detekovaných objektů, jejich typ, detekční metodu a další nastavení. Příklad obou konfiguračních souborů je uveden v příloze A a B. // Získání fyzické cesty ke XML konfiguračnímu souboru String trackingConfigFile = AssetsManager.getAssetPath("TrackingData_Marker.xml"); // Načtení trackovací konfigurace boolean result = metaioSDK.setTrackingConfiguration(trackingConfigFile); Jakmile jsou načteny oba konfigurační soubory, přichází na řadu propojení modelů a trackovací konfigurace. Tyto kroky provádí metoda LoadBasicModels(), která pro každý načtený model vytvoří objekt IGeometry. Tento objekt zastupuje konkrétní model a obsahuje jeho metadata – měřítko modelu a objekt, se kterým je propojen. // Vytvoření objektu, který zastupuje konkrétní model, // nastavení měřítka a propojení s detekovaným objektem IGeometry mModel; mModel = metaioSDK.createGeometry(assetPath); mModel.setScale(new Vector3d(scaleX, scaleY, scaleZ)); mModel.setCoordinateSystemID(id); Zpracování obrazu včetně doplnění rozšířené reality Po úspěšné inicializaci se v nekonečné smyčce provádí detekce objektů v obraze. V závislosti na výsledku této operace se doplní data rozšířené reality. Tento proces se provádí v metodě OnDrawFrame(), která je volána pro každý vykreslovaný snímek. Nejprve je v předkovi aktivity NavigatorActivity zavolána metoda render(), která se stará o zachytávání obrazu, trackování a vykreslování. // Metoda starající se o proces práce s obrazem if (mRendererInitialized) {
9.3
Implementace
48
metaioSDK.render(); } V závislosti na zvoleném módu běhu (zobrazení/skrytí výsledků vyhledávání) jsou dále prováděny další kroky. Pomocí metody getTrackingValues() jsou nejprve načteny všechny detekované objekty v obraze. V případě, že je aktivní mód zobrazení výsledků vyhledávání a byl nalezen definovaný objekt v obraze, dojde k automatickému přiřazení modelu s výsledkem ke všem detekovaným objektům, což znázorňuje následující kód. // Získání detekovaných objektů TrackingValuesVector poses = metaioSDK.getTrackingValues(); // Pokud byl detekován objekt v obraze a mód vyhledávání je aktivní if (poses.size() != 0 && showSearchResult) { if (mModel_searchResult != null) { // Propojení modelu vyhledávání s detekovaným objektem mModel_searchResult.setCoordinateSystemID( poses.get(0).getCoordinateSystemID()); } } V případě, že není mód zobrazení výsledků vyhledávání aktivní, vykreslení modelů je prováděno na základě propojení, které bylo nastaveno ve výše zmiňované metodě LoadBasicModels(). To znamená, že ke každému vyhledávanému objektu je přiřazen právě jeden model. Kromě zobrazování modelů do výsledného obrazu je doplňována textová informace, která je definována v konfiguračním souboru pro každý model zvlášť. Ta umožňuje zobrazení dodatečných dat k danému modelu, jako je informace o patře apod. Konkrétní popisek je získán pomocí metody getDescriptionOfActualPosition(int id), které se předává jako parametr identifikátor detekovaného objektu. Získaný text se poté zobrazí společně s modelem na obrazovce. Jelikož samotné zpracování obrazu běží v odděleném vlákně, bylo nutné navrhnout třídu GuiUpdater, která je schopna aktualizovat grafické uživatelské rozhraní. Objekt této třídy zajišťuje, že se veškeré požadavky na změnu volají v samostatném vlákně, které má přístup k uživatelskému rozhraní aktivity. if (poses.size() != 0) { // Pokud byl detekován objekt, načti jeho textové informace mGuiUpdater.setInfoText( infoText + getString(R.string.actualPositionText) + " " + getDescriptionOfActualPosition( poses.get(0).getCoordinateSystemID()));
9.3
Implementace
49
} else { mGuiUpdater.setInfoText( infoText + getString(R.string.actualPositionText) + " -"); } // Spusť aktualizaci rozhraní v odděleném vlákně runOnUiThread(mGuiUpdater); 9.3.2
Aplikace využívající framework pro indoor navigaci
Navržený a implementovaný framework byl ověřen pomocí experimentální aplikace pro navigaci v rámci prostor Provozně ekonomické fakulty, Mendelovy univerzity v Brně. Pro její implementaci bylo nejprve nutné vytvořit modely prostor a následně je zpřístupnit tak, aby s nimi mohl framework pracovat. Tento krok spočíval v definici konfiguračního souboru pro vytvořené modely a správném nastavení trackovací konfigurace. Následující text popisuje způsob jakým byly vytvářeny modely, nastavení konfiguračních souborů a samotný běh aplikace. Vytvoření modelů V rámci implementace experimentální aplikace bylo nutné vytvořit 3D modely prostor. Tyto modely jsou doplňovány do obrazu a využívány pro navigaci v prostorách fakulty. Jako podklad pro tvorbu modelů byly využity veřejně dostupné mapové podklady (půdorysy jednotlivých pater), které jsou uloženy na univerzitním serveru Indica 10 . K vytvoření potřebných modelů byla zvolena aplikace SketchUp, jenž je vyvíjena společností Trimble Navigation. SketchUp je určen pro tvorbu, úpravu a sdílení 3D modelů a svými možnostmi plně vyhovuje danému účelu. Nejprve bylo nutné vyřešit problém převodu podkladových dat do jednoho z formátů11 , který lze importovat do aplikace SketchUp. Server Indica ukládá data ve formátu Shapefile 12 , který není aplikací podporován. Jedním z podporovaných formátů je formát DWG13 , do nějž lze mapové podklady jednoduše převést, třeba pomocí aplikace ArcMap14 . Její licence je volně přístupná pro studenty univerzity. Takto převedené a importované půdorysy pater sloužily jako podklad pro vytvoření jak modelů jednotlivých pater, tak i modelů pro zobrazení výsledků vyhledávání. Výsledný vzhled modelů byl zvolen na základě výběru mezi více navrženými prototypy – rozhodovala zejména jejich přehlednost. Příklad práce s finálním modelem pro 10
http://indica.mendelu.cz Přehled všech podporovaných formátů je k nalezení na webu projektu – http://sketchup.google.com/intl/cs/ 12 Shapefile – vektorový datový formát, který se využívá v geografických informačních systémech. 13 DWG – souborový formát pro ukládání 2D/3D dat a metadat, který je navržen pro CAD systémy. 14 http://www.esri.com 11
9.3
Implementace
50
zobrazení výsledků vyhledávání je znázorněn na Obr. 16. Celkem bylo vytvořeno 7 modelů pater a 38 modelů určených pro zobrazování výsledků vyhledávání.
Obr. 16: Práce s modelem pro zobrazení výsledků vyhledávání místnosti Q16
Nastavení konfiguračních souborů Na základě prozkoumání výhod a nevýhod jednotlivých metod trackování bylo rozhodnuto, že pro dané účely je využití černobílých markerů nejvhodnější. Jejich zpracování je výpočetně nejméně náročné a přesnost detekce je uspokojivá. Byly použity standardní markery, které jsou součástí knihovny Metaio Mobile SDK a jejich vygenerování je možné provést pomocí aplikace Unifeye Design. Tato trackovací nastavení jsou uložena v souboru TrackingData_Marker.xml., který kromě definice detekční metody obsahuje i seznam všech markerů, jejich identifikátorů, strategie ovlivňující kvalitu detekce aj. Druhý ze souborů, nazvaný Sources.xml, obsahuje seznam všech modelů, které jsou v závislosti na detekovaných markerech doplňovány do výsledného obrazu. Tento seznam je tvořen modely dvou typů – searchModel a basicModel. Typ searchModel zastupuje modely, které jsou určeny pro zobrazení výsledků vyhledávání, zatímco basicModel zastupuje modely jednotlivých pater. Příklad obou konfiguračních souborů je uveden v příloze A a B. Běh aplikace Po spuštění a úspěšné inicializaci aplikace je prováděna analýza snímků z kamery mobilního zařízení. Na základě jejího výsledku je doplněna rozšířená informace. Aplikace může běžet ve dvou módech, které jsou implementovány pomocí frameworku – mód standardní a vyhledávací.
9.3
Implementace
51
Po spuštění běží aplikace ve standardním módu, což znamená, že ke každému markeru je přiřazen právě jeden model. Tento mód je využíván pro zobrazení modelů podlaží, což je řešeno umístěním různých markerů na jednotlivých podlažích budovy. Ve chvíli, kdy je pomocí aplikace detekován daný marker, dochází k jeho nahrazení modelem, který odpovídá podlaží, na kterém se uživatel právě nachází. Oproti tomu vyhledávací mód umožňuje nalézt nejvyužívanějších prostory fakulty, jako jsou učebny, laboratoře a přednáškové místnosti. Uživatel může využít buď vyhledávací pole s funkcí automatického dokončování nebo seznam všech místností, pro které aplikace disponuje modely. V takovém případě je jakýkoliv detekovaný marker nahrazen modelem, který zobrazuje výsledek vyhledávání. U obou módu je kromě modelů doplňována i informace o aktuálním a cílovém podlaží15 uživatele, což usnadňuje jeho orientaci. Ukázky běhu aplikace jsou uvedeny v příloze C.
15
Informace o cílovém podlaží je zobrazována pouze v případě aktivního vyhledávacího módu
10
DISKUZE
10
52
Diskuze
Tato kapitola se bude zabývat vyhodnocením projektu, který byl realizován na základě požadavků stanovených v metodické části. Kroky potřebné k realizaci projektu, včetně implementačních detailů, byly popsány v předchozím textu. Dále se zaměří na analýzu možnosti využití daného typu aplikací ve firemním prostředí, popř. pro komerční účely. Na základě této analýzy bude navržen další rozvoj projektu.
10.1
Vyhodnocení realizovaného projektu
Vytvořený framework pro zpracování obrazu pomocí mobilních zařízení se řadí do skupiny aplikací rozšířené reality. Hlavním přínosem tohoto řešení je poskytnutí nástroje, který umožní koncovému uživateli jednoduchým způsobem vytvářet aplikace rozšířené reality. Takto vzniklé aplikace jsou schopny, na základě detekce specifikovaných objektů, doplňovat do obrazu rozšířené informace v reálném čase. Klíčová nastavení, jako je definice detekovaných objektů a vykreslovaných modelů, se provádí pomocí speciálních konfiguračních souborů. Tento přístup umožňuje vytváření aplikací různého zaměření, pomocí pouhé změny v konfiguračních souborech – aniž by byla vyžadována znalost programování a nutnost zásahu do zdrojového kódu. Jistým omezením je podpora vykreslování modelů pouze ve formátu obj a md2, které jsou jako jediné knihovnou Metaio Mobile SDK podporovány. V tuto chvíli framework podporuje pouze optické trackování – standardní černobílé markery, které jsou distribuovány s knihovnou, obrazové markery různých vzorů a trackování bez markerů. Trackování pomocí senzorů zařízení (GPS, akcelerometr aj.) není v tuto chvíli frameworkem podporováno, ikdyž knihovna Metaio Mobile SDK tuto možnost nabízí. U navrženého řešení však nebyla jejich implementace nezbytně nutná. Funkcionalita frameworku byla ověřena na experimentální aplikaci indoor navigace v prostorách Provozně ekonomické fakulty, Mendelovy univerzity v Brně. Byly vytvořeny modely prostor a navržen způsob, jakým se budou zobrazovat požadované informace uživatelům aplikace. Tyto informace se vykreslují na displej zařízení v závislosti na detekovaných markerech. Uživatel je informován, kde se nachází, jaké prostory jsou v jeho blízkosti, popř. kde se nachází vyhledávaný objekt – zobrazený model tak podává přehled o celkovém půdorysu podlaží, popř. budovy. Cílem aplikace je zejména usnadnění orientace v prostorách fakulty – například návštěvníkům různých konferencí nebo stávajícím, popř. budoucím studentům. Tohoto cíle je dosaženo přehlednými modely, které jsou doplňovány do obrazu v reálném čase. Modely byly navrženy na základě rozsáhlé diskuze mezi vybranými uživateli, včetně účastníků akce GIS Day, která se konala na půdě fakulty. Na základě zpětné vazby od uživatelů byly modely upraveny tak, aby poskytovaly požadované informace přehledněji – úpravy spočívaly v redukci 3D efektu na přijatelnou úroveň. Při nastavení přílišného 3D efektu nebyly modely dostatečně přehledné a zhoršovaly orientaci uživatele.
10.2
Možnosti využití daného typu aplikací ve firemním prostředí
53
Jistým omezením u indoor navigace může být absence možnosti přizpůsobení vzhledu grafického uživatelského rozhraní, které je pevně definováno frameworkem. Toto rozhraní bylo navrženo s ohledem na využití pro daný typ aplikací (navigace, virtuální průvodce apod.) a tudíž by ve většině případů neměla vznikat potřeba jeho změny. Vliv na výsledný dojem z aplikace má bezesporu použité mobilní zařízení. Ovlivňován je zejména velikostí úhlopříčky displeje, na kterém se informace zobrazují. V případě použití zařízení s menší úhlopříčkou (pod 4") se může stát, že zobrazená informace nebude názorná a uživateli nepřinese požadovaný užitek. Dalším omezením je výdrž zařízení, která může v případech intenzivnějšího využívání aplikace rapidně klesat. Velký vliv na chod má kvalita fotoaparátu daného zařízení, která ovlivňuje úspěšnost detekce objektů, a to zejména při horších světelných podmínkách. Problémy s detekcí však nastávaly pouze zřídka, zejména ve večerních hodinách, kdy musela být oblast osvětlována dodatečným světelným zdrojem. Za denního světla nebyl s detekcí sebemenší problém. Z hlediska výkonu procesorů již všechny dnešní mobilní zařízení disponují dostatečně výkonným procesorem a grafickým čipem – lze zpracovávat a vykreslovat data v reálném čase.
10.2
Možnosti využití daného typu aplikací ve firemním prostředí
Framework, v podobě jaké byl navržen a implementován, je určen pro využití v situacích, kdy je zapotřebí jednoduše, rychle a efektivně zobrazovat interaktivní data, která přinášejí uživatelům dodatečné informace. Mezi takové oblasti patří doprava, ve které je možné, namísto méně přehledných statických orientačních map a ukazatelů, navigační informace doplňovat do obrazu. Na letištích a větších nádražích by se pak mohly interaktivní plány komplexů zobrazovat na mobilních zařízeních. Tím by byl pasažérovi, který vlastní smartphone, poskytnut jednoduchý nástroj pro navigaci, včetně možnosti vyhledávání jednotlivých částí komplexů. Dalšími oblastmi, ve kterých by bylo možné aplikaci využít, jsou galerie, muzea, výstavy, státní instituce, rozsáhlé budovy aj. Jedná se zejména o oblasti, ve kterých je možné, pomocí vhodného nástroje pro navigaci, usnadnit uživatelům jejich orientaci a poskytnout důležité informace. Uživatelé tak získávají přidanou hodnotu a provozovatelům mohou být částečně sníženy náklady, které by musel investovat do drahých navigačních tabulí, kiosků a různých ukazatelů. Hlavní předností při využívání již existujících knihoven pro vývoj aplikací rozšířené reality je úspora času a zároveň snížení nákladů na vývoj – vývoj vlastních nástrojů tohoto zaměření je časově mnohem náročnější a často problematičtější. Spousta funkcí a algoritmů je již u existujících knihoven implementována, optimalizována, prověřena mnoha uživateli a jejich využití pro vlastní aplikace, popř. frameworky, tak nic nebrání. Díky tomu je možné minimalizovat čas vývoje, což se celkově projeví i v jeho nižších nákladech. V případě implementace komerčních aplikací a využití již existujících knihoven, jejichž licence jsou buď bezplatné nebo v řádu několika tisíc dolarů, se stále investice
10.3
Návrh budoucího rozvoje projektu
54
do těchto knihoven vyplatí – v porovnání s cenou vývoje vlastního běžného řešení. Klíčovým faktorem u vývoje takových aplikací však nejsou náklady na vývoj, ale jejich výsledná uživatelská přívětivost. Společnost by se měla před uvolněním aplikace mezi uživatele vždy zaměřit na její pečlivé testování – tento krok bývá často podceňován. Aplikace by vždy měla být vyvíjena s ohledem na její účel – jaký typ informace poskytnout uživatelům, jaký optimální způsob zobrazení zvolit aj. Často se stává, že je vývoj orientován spíše na technologie a její účel nebývá zcela správně naplněn – v takových situacích nebývá mezi uživateli příliš kladně přijímána. Vždy je nezbytně nutné stanovit správný poměr mezi efektem a užitkem, který AR aplikace přinášejí. V některých případech je vhodné zvolit konzervativnější řešení, které může být přehlednější – příkladem mohou být aplikace Google Maps a Layar. Zatímco Layar je založen na prolínání obrazu z kamery s doplňujícími informacemi, Google Maps využívají klasické 2D mapové pohledy pro zobrazování informací. Velmi často se pak stává, že klasický 2D pohled je více vypovídající a podává informace přehledněji. U 2D pohledu přesně víme, kde se daný objekt nachází, zatímco u vykreslování přímo do obrazu vznikají otázky typu – „Nachází se hledaný objekt v budově přímo přede mnou, nebo je až za ní?“ Závěrem je však nutno podotknout, že při volbě vhodného poměru vždy záleží na konkrétním řešení a účelu, pro který je daná aplikace vyvíjena.
10.3
Návrh budoucího rozvoje projektu
Z pohledu budoucího vývoje frameworku by se bylo vhodné zaměřit zejména na rozšíření možností nastavení pomocí konfiguračních souborů u výsledných aplikací. Jednou z možností je implementace dalších způsobů trackování (GPS, akcelerometr, kompas aj.), pomocí nichž by mohlo být, v případě horších okolních podmínek, dosahováno lepších výsledků detekce. Další z možností je umožnit definovat vlastní uživatelské rozhraní, tzn. vývojář by mohl rozhodnout, které grafické prvky mají být v aplikaci zobrazeny a využívány. Dalším možným směrem budoucího vývoje je zajisté i architektura cloud computingu. Ta by mohla zjednodušit způsob ukládání, aktualizace a distribuci dat, která mají být zobrazována na mobilních zařízeních. Navíc by poskytla kapacitu pro ukládání velkého množství vzorů tak, jako je tomu u služby Google Goggles. Současné řešení je v této oblasti limitováno – veškerá data jsou uložena na zařízení. To vede k jejich složitější aktualizaci a navíc je velikost těchto dat limitována kapacitou úložného prostoru zařízení. Architektura cloud computingu by dále mohla poskytovat prostředky pro výpočetně náročnější operace, tzn. výpočet složitějšími trackovacími algoritmy by mohl být prováděn ve specifických případech na vzdálených serverech. Tento způsob zpracování by měl uplatnění v případě, kdy by byl kladen požadavek na zpracování dat v reálném čase a výkon mobilních zařízení by nebyl dostatečný.
11
11
ZÁVĚR
55
Závěr
V rámci diplomové práce byly nejprve vysvětleny základní pojmy, které se vztahují k rozšířené realitě a dále byly popsány oblasti aplikací rozšířené reality. Následně byly v souladu se zadáním analyzovány dostupné vývojové nástroje a knihovny, které lze na mobilních zařízeních využít pro zpracování obrazu. Tato analýza byla zaměřena zejména na nástroje pro platformu Android, která se jeví díky její široké dostupnosti a otevřenosti jako nejvhodnější. V rámci analýzy byly nastudovány jak knihovny pro vývoj aplikací rozšířené reality, tak i knihovny, které jsou schopny vykreslovat grafické objekty do obrazu. Před samotným návrhem a implementací byly prozkoumány možnosti využití cloud computingu pro analýzu obrazu a bylo provedeno jeho srovnání s klasickou metodou lokálního zpracování. Na základě stanovených požadavků v metodické části byl navržen a implementován framework, který poskytuje nástroje pro vývoj aplikací rozšířené reality na mobilní platformě Android. Implementace frameworku byla ověřena pomocí experimentální aplikace pro indoor navigaci v rámci prostor Provozně ekonomické fakulty, Mendelovy univerzity v Brně. Ta byla navržena tak, aby uživatelům jednoduchým a hlavně přehledným způsobem usnadnila orientaci v těchto prostorách. K tomuto účelu byly vytvořeny 3D modely prostor a navržen způsob, jakým se budou zobrazovat požadované informace uživatelům aplikace. Tyto modely byly navrženy na základě diskuze vybraných uživatelů, včetně účastníků akce GIS Day, která se konala na půdě univerzity. Před nasazením této aplikace do reálného provozu však bude nutné ještě provést důkladné testování na vybrané skupině uživatelů. Touto problematikou se zabývá například studie Koubka a Procházky (2011). V závěru práce bylo provedeno vyhodnocení realizovaného projektu, včetně analýzy jeho využití pro firemní, popř. komerční účely. V závislosti na tom byl navržen směr budoucího vývoje. Bezesporu je oblast mobilní rozšířené reality velmi atraktivní, což dokazují i výsledky této práce. K tomu, aby bylo možné navržený framework využívat pro aplikace různého zaměření, bude nutné výsledky diplomové práce dále rozvíjet.
12
12
LITERATURA
56
Literatura
Androidmarket.cz Samsung Galaxy SIII se nejspíš opozdí kvůli problémům se zadním krytem [online]. 26.05.2012 [cit. 21. 09. 2012]. Dostupné z WWW:
. Apple Inc. OpenGL ES Programming Guide for iOS [online]. 24.2.2011 [cit. 09. 09. 2012]. Dostupné z WWW:
. Augmented Reality Blog Indoor Augmented Reality Markers Featured at Intel Developer Forum [online]. 22.12.2010 [cit. 21. 09. 2012]. Dostupné z WWW: . Azuma, R. T. A Survey of Augmented Reality. Presence: Teleoperators and Virtual Environments. 1997, roč. 4, č. 6, s. 355-385. Baldauf, M., Frohlich, P. a Lasinger, K. A scalable framework for markerless camera-based smartphone interaction with large public display. Sborník Mezinárodního sympozia Pervasive 2012. New York, USA. ISBN 978-1-45031414-5. Bimber, O. a Raskar, R. Spatial augmented reality : merging real and virtual worlds. Wellesley: A K Peters, 2005. 369 s. ISBN 1-56881-230-2. Blackman, S. Beginning 3D Game Development with Unity : The World’s Most Widely Used Multiplatform Game Engine New York. Springer Science+Business Media New York, 2011. ISBN 978-1-4302-3423-4. Bradski, G. R. a Kaehler, A. Learning OpenCV : computer vision with the OpenCV library. Farnham: O’Reilly, 2008. 555 s. ISBN 978-0-596-51613-0. Bradski, G. R. a Kaehler, A. OpenCV on-line reference manual [online]. 2012 [cit. 27. 08. 2012]. Dostupné z WWW: . Bright, P. OpenGL celebrates its 20th birthday with two new versions [online]. 6.8.2012 [cit. 09. 09. 2012]. Dostupné z WWW: . Cameron, Ch. ReadWriteWeb [online]. 2.16.2010 [cit. 13. 09. 2012]. How Augmented Reality Helps Doctors Save Lives. Dostupné z WWW: . Carmigniani, J. et al. Augmented reality technologies, systems and applications. 2011. Multimedia Tools and Applications, pp. 341-377, USA. Diaz, A. Ch. Creativity Online [online]. 19.7.2012 [cit. 12. 09. 2012]. McCannErickson Gives New Ikea Catalog a Vitamin Pill. Dostupné z WWW:
12
LITERATURA
57
. Domhan Augmented reality on Android smartphones. Baden-Wuerttemberg Cooperative State University, Stuttgart, 2009. Doupal, F. Notebook.cz [online]. 17.08.2011 [cit. 12. 11. 2012]. NFC - bezdrátová komunikace blízké budoucnosti? Dostupné z WWW: . Folprecht, M. Software v době SaaS [online]. 5.4.2011 [cit. 12. 09. 2012]. Současnost a budoucnost rozšířené reality (Augmented reality). Dostupné z WWW: . Ha, J. et al. Scalable recognition and tracking for mobile augmented reality. ACMSE ’10 Sborník z 9. ACM SIGGRAPH konference, pp. 155-160, New York, USA. ISBN 978-1-4503-0459-7. Henrysson, A. Bringing Augmented Reality to Mobile Phones. Norrköping, 2007. ISBN 978-91-85895-43-4. Dostupné z WWW: . Chin, D. et al. More iPhone cool projects. USA : Springer Science+Business Media, 2010. 362 s. ISBN 978-1-4302-2922-3. Christaller, T. et al. ARiSE - Augmented Reality in School Environments. [online]. 2008 [cit. 13. 09. 2012]. Dostupné z WWW: . Inglobe Technologies Inglobe technologies: Development Tools - Mobile Area. [online] c2011. [cit. 21. 08. 2012]. Dostupné z WWW: . Inglobe Technologies ARmedia Augmented Reality 2.1 released with new Features. [online] c2011. [cit. 21. 09. 2012]. Dostupné z WWW: . Jaramillo, G. E. et al. Mobile augmented reality applications in daily environments. Revista EIA. 2010, 14, pp. 125-134. ISSN 1794-1237. Junker, G. Pro OGRE 3D Programming New York. Springer-Verlag New York, 2006. ISBN 978-1-59059-710-1. Karpus, A. An OpenCV implementation of QR barcode reader for the iphone and windows mobile platforms. Carleton university, Otawa, 2009. Klein, G. Visual tracking for augmented reality. Brno, 2006. Dizertační. Univesity of Cambridge. Koubek, T. Aplikace umožnující realizaci rozšířené reality. Brno, 2010. Diplomová. Mendelova univerzita v Brně. Vedoucí práce Ing. David Procházka, Ph.D. Koubek, T. a Procházka, D. Empirical evaluation of augmented prototyping effectiveness. Brno, 2011. IGA FBE MENDELU 31/2011.
12
LITERATURA
58
Medical Augmented Reality Mobile Medical Augmented Reality App for the Apple iPad - Interview with Prof. Hans-Peter Meinzer. [online] c2012. [cit. 21. 09. 2012]. Dostupné z WWW: hans-peter-meinzer/>. Metaio Metaio | Mobile SDK | Augmented Reality Products and Solutions ). [online] c2012. [cit. 04. 09. 2012]. Dostupné z WWW: . Metaio News from metaio: metaio Mobile AR Newsletter - August 2012). [online] c2012b. [cit. 12. 09. 2012]. Dostupné z WWW: . Milgram, P. a Kishino, F. A taxonomy of mixed reality visual displays. IEICE TRANSACTIONS konference, pp. 1321-1329. ISSN 0916-8532. Palík, M. Rozpoznávání markerů v obraze. Brno, 2011. Diplomová. Mendelova univerzita v Brně. Vedoucí práce Ing. David Procházka, Ph.D. Poupyrev, I. et al. Developing a Generic Augmented-Reality Interface. Cover Feature. [online] 2002. [cit. 15. 09. 2012]. Dostupné z WWW: . Preston, J. a Chastine, J. Mobile Technology for Games and Augmented Reality. ACM-SE ’11 Sborník z 49. výroční jihovýchodní regionální konference, pp. 9-10, New York, USA. ISBN 978-1-4503-0686-7. Procházka, D. a Koubek, T. Augmented reality implementation methods in mainstream applications. Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis, LIX, 4, pp. 257-266, Brno, 2011. Procházka, D., Štencl, M., Popelka, O. a Šťastný, J. Mobile Augmented Reality Applications. Mendel 2011 - 17. mezinárodní konference Soft Computing, pp. 469-476, Brno, 2011. ISBN 978-80-214-4302-0. Quack T., Bay H. a Gool L. Object recognition for the internet of things. Konference IOT’08, pp. 230–246, Berlin, Heidelberg, 2008. Springer-Verlag. Qualcomm AR Developer Guide | Vuforia. [online] c2012. [cit. 21. 08. 2012]. Dostupné z WWW: . Qualcomm Computer Vision (FastCV). [online] c2012b. [cit. 22. 08. 2012]. Dostupné z WWW: . Schmalstieg, D. a Reitmayr, G. Augmented Reality as a Medium for Cartography. [online] 1999. [cit. 20. 09. 2012]. Dostupné z WWW: .
12
LITERATURA
59
Smithwick, M. a Verma, M. Pro OpenGL ES for Android New York. Springer Science+Business Media New York, 2012. ISBN 978-1-4302-4002-0. Sörös, G. et al. Augmented visualization with natural feature tracking. ACM-SE ’11 Sborník z 10. mezinárodní konference pro mobilní multimedia, pp. 4-12, New York, USA. ISBN 978-1-4503-1096-3. Ševčík, J. Rozšířená realita na mobilní platformě Android a její aplikace v knihovnictví. Diplomová. Masarykova univerzita Brno, 2011. Dostupné z WWW: . Torus Know Software ltd. Ogre Wiki: Support and community documentation for Ogre3D [online]. 20.8.2012 [cit. 10. 09. 2012]. Dostupné z WWW: . Trak Junaio Blog [online]. 30.8.2012 [cit. 12. 09. 2012]. SV Werder Bremen Presents New Team with junaio. Dostupné z WWW: . Unity Technologies Unity - Game Engine [online]. c2012 [cit. 13. 09. 2012]. Dostupné z WWW: . Wikipedia MD2 (File format). [online] c2012. [cit. 04. 09. 2012]. Dostupné z WWW: . Wired.com Ikeas’s Augmented Reality Catalog Will Let You Peek Inside Furniture. [online] 20.6.2012. [cit. 21. 09. 2012]. Dostupné z WWW: . Wuest, H. Real-time camera tracking for augmented reality applications : efficient line and patch feature characterization and management. Saarbrücken: VDM Verlag Dr. Müller, 2009. 129 s. ISBN 978-3-639-10739-5. Zajíček, P. MojAndroid.sk [online]. 24.10.2011 [cit. 12. 09. 2012]. Slovenská Android aplikácia – AR Blitz. Dostupné z WWW: . ZoKnowsGaming LG Announces The Optimus 3D With Added 3D Augmented Reality, "The Worlds’s First". [online] 11.04.2011. [cit. 21. 09. 2012]. Dostupné z WWW: .
Přílohy
A
A
PŘíKLAD KONFIGURACE S NASTAVENíM TRACKOVÁNí
61
Příklad konfigurace s nastavením trackování
<Sensors> <Sensor type="MarkerBasedSensorSource"> <SensorID>Markertracking1 <Parameters> <MarkerTrackingParameters> robust 110 3 <SensorCOS> <SensorCosID>Marker1 <Parameters> <MarkerParameters> <Size>190 <MatrixID>1 <SensorCOS> ... ... COS1 <Parameters> 0.5
A
PŘíKLAD KONFIGURACE S NASTAVENíM TRACKOVÁNí
0.8 3 <SensorSource trigger="1"> <SensorID>Markertracking1 <SensorCosID>Marker1 <x>0 0 0 <x>0 0 0 <w>1 <x>0 0 0 <x>0 0 0 <w>1 ... ...
62
B
B
PŘíKLAD KONFIGURACE SE SEZNAMEM MODELŮ
Příklad konfigurace se seznamem modelů
<settings> ... <searchModel name="Q46" assetpath="searchModels/PEF_Q46.obj" floor="4" scaleX="5" scaleY="5" scaleZ="5" /> <searchModel name="Q47" assetpath="searchModels/PEF_Q47.obj" floor="4" scaleX="5" scaleY="5" scaleZ="5" /> <searchModel name="Q48" assetpath="searchModels/PEF_Q48.obj" floor="4" scaleX="5" scaleY="5" scaleZ="5" /> ...
63
C
C
UKÁZKA BĚHU APLIKACE
Ukázka běhu aplikace
Obr. 17: Zobrazení aktuálního podlaží fakulty
64
C
UKÁZKA BĚHU APLIKACE
Obr. 18: Zobrazení výsledků vyhledávání
65