Primena Proširene Stvarnosti u Internet marketingu - Master rad

  • 888 views
Uploaded on

Master rad na temu Primena Proširene Stvarnosti u Internet marketingu (Application of Augmented Reality in Internet marketing)

Master rad na temu Primena Proširene Stvarnosti u Internet marketingu (Application of Augmented Reality in Internet marketing)

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
888
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
15
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Univerzitet u Novom Sadu Tehnički fakultet »Mihajlo Pupin« Zrenjanin Primena Proširene stvarnosti u Internet marketingu Application of Augmented Reality in Internet marketing - Diplomski (master) rad - Mentor: Milan Milićev prof. dr Miodrag Ivković MIT 28/11 Informacione tehnologije – Master Zrenjanin, 2013.
  • 2. 1 Sadržaj Primena Proširene stvarnosti u Internet marketingu ................................................................. 0 Application of Augmented Reality in Internet marketing......................................................... 0 Sadržaj....................................................................................................................................... 1 Uvod.......................................................................................................................................... 4 1 Internet marketing ............................................................................................................. 5 1.1 Metode Internet marketinga........................................................................................ 6 1.2 SEO............................................................................................................................. 6 1.3 Email marketing ......................................................................................................... 7 1.4 Baner........................................................................................................................... 7 1.5 Bilteni ......................................................................................................................... 7 1.6 Plaćeno Internet oglašavanje ...................................................................................... 8 1.7 Partnerski marketing................................................................................................... 8 1.8 Blog ............................................................................................................................ 9 1.9 Društvene mreže......................................................................................................... 9 2 Definicija Proširene stvarnosti ........................................................................................ 10 2.1 Proširena Stvarnost kroz vreme................................................................................ 11 3 Pojam Proširene stvarnosti.............................................................................................. 14 3.1 Hardver..................................................................................................................... 14 3.2 Popularnost Proširene stvarnosti .............................................................................. 15 4 Princip Proširene stvarnosti............................................................................................. 15 5 Primena Proširene stvarnosti........................................................................................... 16 5.1 Turizam..................................................................................................................... 17 5.2 Revizija proizvoda.................................................................................................... 18 5.3 Print .......................................................................................................................... 23 6 Praćenje bez markera....................................................................................................... 25 7 PTAM – Parallel Tracking and Mapping........................................................................ 25 7.1 Karakteristike metode u kontekstu SLAM tehnike................................................... 26 7.2 Izgradnja mape – koordinatnog sistema.................................................................... 26 7.3 Praćenje .................................................................................................................... 27 7.4 Mapiranje – izgradnja mape...................................................................................... 28 7.5 Implementacija sistema PTAM ................................................................................ 29 7.5.1 Potrebna konfiguracija ...................................................................................... 29
  • 3. 2 7.5.2 Potrebne biblioteke............................................................................................ 30 7.5.3 Instalacija .......................................................................................................... 30 7.5.4 Pokretanje programa.......................................................................................... 31 8 Android............................................................................................................................ 35 8.1 Android SDK............................................................................................................ 37 8.1.1 Dalvik VM (DVM)............................................................................................ 37 8.1.2 Java API ............................................................................................................ 38 8.1.3 Grafički API ...................................................................................................... 38 8.1.4 Eclipse............................................................................................................... 39 8.1.5 Native Development Kit (NDK)........................................................................ 39 8.2 Proširena stvarnost na android platformi...................................................... 40 9 QCAR SDK..................................................................................................................... 40 9.1.1 Arhitektura sistema............................................................................................ 41 9.1.2 Aplikacijsko programsko interfejsa – API ....................................................... 42 9.1.3 Android dozvole................................................................................................ 44 9.1.4 Markeri – „Trackables“..................................................................................... 44 9.1.5 Virtualni tasteri - Virtual Buttons...................................................................... 46 9.2 IMPLEMENTACIJA SISTEMA QCAR SDK ........................................................ 47 9.2.1 Instalacija sistema QCAR SDK......................................................................... 47 9.2.2 Implementacija Virtualnih tastera...................................................................... 49 9.3 QCAR + UNITY ...................................................................................................... 51 9.3.1 Unity.................................................................................................................. 51 9.4 QCAR Unity Extension ............................................................................................ 52 9.5 Implementacija sistema QCAR Unity Extension......................................... 53 9.5.1 Instalacija potrebnih komponenti ...................................................................... 53 10 Implementacija jednostavnog projekata........................................................................... 54 10.1 Aplikacija – „Interaktivni virtualni patuljak“ ....................................................... 56 11 ARToolKit....................................................................................................................... 63 11.1.1 Jednostavnost korištenja.................................................................................... 63 11.1.2 Prenosivost ........................................................................................................ 63 11.1.3 Praćenje............................................................................................................. 63 11.1.4 Izrada vlastitih markera ..................................................................................... 66 11.1.5 Verovatnoća praćenja markera .......................................................................... 66 12 D'Fusion .......................................................................................................................... 66 12.1.1 Jednostavnost korištenja.................................................................................... 66 12.1.2 Prenosivost ........................................................................................................ 66
  • 4. 3 12.1.3 Praćenje............................................................................................................. 66 12.1.4 Izrada vlastitih markera ..................................................................................... 67 12.1.5 Verovatnoća praćenja markera .......................................................................... 68 13 Vuforia ............................................................................................................................ 69 13.1.1 Jednostavnost korištenja.................................................................................... 69 13.1.2 Prenosivost ........................................................................................................ 69 13.1.3 Praćenje............................................................................................................. 69 13.1.4 Izrada vlastitih markera ..................................................................................... 70 13.1.5 Verovatnoća praćenja markera .......................................................................... 70 14 Upoređivanje sistema ...................................................................................................... 71 14.1 Konačno upoređivanje .......................................................................................... 71 Zaključak................................................................................................................................. 72 Literatura i reference ............................................................................................................... 73
  • 5. 4 Uvod Dobro je poznato da svako ozbiljno poslovanje današnjice mora da prati prisustvo i promocija na Internetu. Budući da se Internet poslovanje jedno od najbrže rastućih oblasti, prirodno je da postoji konstantna potreba za novim načinima promocije, a Proširena stvarnost pruža upravo to. Mobilni telefoni su u današnje vreme postali svakodnevica. Ubrzanim razvojem tehnologije, ti isti mobilni telefoni su postali prava prenosni računar koja ostvaruju procesorsku snagu i preko 1GHz. S druge strane imamo kompjuterske grafike kao jedan od imperativa u prikazu podataka. Gotovo svaki popularniji mobilni uređaj omogućava trodimenzionalni prikaz virtuelnih modela. Takođe, kamera na mobilnim telefonima postala je postala nezaobilazni dodatak. Navedene pojave u globalnim kretanjima na tržištu mobilnih uređaja i propratne tehnologije dovele su do omogućavanja Proširene stvarnosti na ugrađenim sistemima poput mobilnog telefona. Proširena stvarnost prisutna je na računarima od 90-ih godina 20. veka. Koliko god to atraktivna tehnologija bila, nikad nije doživela široku komercijalnu upotrebu upravo zbog robusnosti uređaja. Međutim, prethodno spomenutim procvatom mobilnih uređaja i razvojem mobilnih platformi, omogućen je razvoj aplikacija baziranih na proširenoj stvarnosti programerima širom sveta. Kroz proteklih godinu dana razvijeno je par programskih radnih okvira (eng. framevork) - kvalitetnih podloga za razvoj navedenih aplikacija. Takođe, prisutne su novčane nagrade za inovativne aplikacije.
  • 6. 5 1 Internet marketing Internet marketing predstavlja skup strategija i tehnika koje koriste Internet kao kanal poslovne komunikacije za podršku ostvarivanja generalnih marketinških ciljeva organizacije ili preduzeća. Internet marketing koristi pristup koji nudi direktni marketing oslonjen na rast i razvoj telekomunikacija i informatičku tehnologiju. Internet marketing je zapravo interaktivni direktni marketing. Ova vrsta marketinga obuhvata, kako kreativni, tako i tehnički aspekt Interneta, uključujući dizajn, razvoj, reklame i marketing u konvencijalnom smislu reči. Duboka i precizna fragmentacija tržišta koju omogućava Internet marketing, a čiji je ishod „jedan čovek — jedan segment“, omogućava prelazak sa masovnog na mikromarketing. Slika 1 - Internet marketing Sa aspekta definisanja „klasičnog“ marketinga, može se reći da je Internet marketing zbir aktivnosti koje su upotrebljene u cilju usmeravanja tokova proizvoda i usluga od proizvođača prema potrošaču (korisniku, kupcu, klijentu) korišćenjem Interneta kao kanala poslovne komunikacije. Pored termina Internet marketing koriste se i termini e-marketing, onlajn marketing, sajber marketing, virtuelni marketing, interaktivni marketing.
  • 7. 6 1.1 Metode Internet marketinga Prezentovanje na Internetu predstavlja reklamu koja ima bitne razlike u svim segmentima reklamiranja u odnosu na standardno reklamiranje. Sa stanovišta Internet marketinga, a u skladu sa njegovom definicijom, mogu se nabrojati sledeće metod:  SEO (engl. Search Engine Optimization)  Email marketing,  Baner,  Bilteni (engl. newsletter), elektronske knjige (engl. e-books) i ostale tehnologije oglašavanja,  Plaćeno Internet oglašavanje (engl. pay per click advertising)  Pripojeni marketing ili marketing filijala (engl. affiliate marketing).  Blog 1.2 SEO SEO ili optimizacija veb sajtova za pretraživače predstavlja deo Internet marketinga koji se bavi pozicioniranjem veb-sajtova na pretraživačima za određene ključne reči, a koje pak najviše odgovaraju sadržaju na datom sajtu. Cilj SEO-a je povećanje posećenosti na nekom sajtu. Istraživanja pokazuju da čak 90% svih posetilaca sajtova do konkretnog sajta i dolazi preko nekog pretraživača. Veb-sajt je, sam po sebi, sredstvo marketinga 24 sata na dan, sedam dana u nedelji, 365 dana u godini, uključujući i praznike, a bez godišnjeg odmora. Dakle, pretraživači predstavljaju najkvalitetniji izvor ciljane posećenosti na Internetu. Slika 2 - Optimizacija za pretraživače
  • 8. 7 U prvoj deceniji 21. veka jedan od osnovnih veb slogana bio je: „Ukoliko ne postojiš na Internetu, ti ne postojiš!“ Slogan veb 2.0 tehnologija može se parafrazirati: „Ukoliko nisi prepoznatljiv na Internetu, ti ne postojiš.“ 1.3 Email marketing Email marketing predstavlja direktnu komunikaciju sa korisnikom proizvoda ili usluge u čemu se i ogleda njegova prednost. Na osnovu prikupljenih podataka sa imejla, registracionih formi i interih izvora podataka, mogu se informisati svi oni koji žele da budu upućeni u nečije poslovanje, proizvode, usluge. Email marketing služi za održavanje dobrih odnosa sa klijentima i bitno je ne zapostaviti već postojeće mušterije već ih redovno obaveštavati o aktivnostima. 1.4 Baner Baner predstavlja reklamu za proizvod ili uslugu koja se nalazi na stranici određenog veb sajta. Reklamiranje preduzeća se preko banera može vršiti:  Razmenom banera sa takozvanim prijateljskim veb lokacijama.  Postavljanjem banera i reklama na veb-portale koji ovu uslugu nude besplatno.  Postavljanje banera na popularnim sajtovima uz novčanu nadoknadu. 1.5 Bilteni Bitno je konstanto biti u svesti potencijanih partnera i bilteni, elektronske knjige i ostale tehnologije oglašavanja su jedan od načina za to. Preduzeće, u zavisnosti od svoje dinamike promene, šalje jednom nedeljno, mesečno ili godišnje svim postojećim i potencijalnim partnerima biltene, elektronske knjige ili elektronsku razglednicu i time obaveštava prijavljene na mejling listu o novostima u poslovanju. Time pokazuje da uvek misli na svoje korisnike. Važno je ne spamovati korisnike i slati im samo elektronsku poštu koja se tiče onih oblasti za koje znamo da ih interesuju.
  • 9. 8 1.6 Plaćeno Internet oglašavanje Plaćeno Internet oglašavanje je takođe jedna od važnih metoda Internet marketinga. Jedan primer je Google AdWords. Korisnici prikazuju svoj oglas, u ovom slučaju na Guglu, i sami biraju ključne reči, gde se nakon rezultata pretrage sa strane ili na vrhu pojavljuje njihov oglas. Drugi primer jesu Fejsbuk oglasi koji se nalaze sa desne strane Fejsbuk profila i predstavljaju kombinacije banera i tekstualnog oglasa. Pored ogromne baze korisnika, važna činjenica je ta da se može usmeriti na konkretne grupe ljudi. Oglasi koji ciljaju prijatelje nečijih prijatelja su veliki potencijal jer se broj korisnika svakodnevno povećava. Kako Gugl, tako i Fejsbuk oglasi imaju fleksibilnost cena, tačnije mogućnost da se oglasi plaćaju po broju klikova (CPC) ili po broju prikazivanja (CPM). Plaćeno Internet oglašavanje nudi ciljanje nove publike, menjanje oglasa po potrebi i još nekoliko usluga sve dok ne postignete željeni rezultat. Važno je to da nema zahtevane minimalne potrošnje novca, a opcijom plaćanja po kliku pruža se mogućnost naplate samo ukoliko neko klikne na Vaš oglas. Ovo znači da će svaki dinar nečijeg budžeta povećati šanse za uspeh. Besplatni Internet oglasi predstavljaju Internet servise na kojima posetioci imaju mogućnost da reklamitaju svoje usluge ili proizvode bez ikakve novčane ili materijalne nadoknade. 1.7 Partnerski marketing Partnerski marketing (engl. Affiliate marketing) predstavlja značajnu granu marketinga gde jedno preduzeće plaća proviziju drugom za svakog korisnika koji je određenim marketinškim strategijama doveden na njegov sajt. Jedan od načina jesu aukcijski sajtovi i prodaja proizvoda, gde je jedno preduzeće preko svog sajta linkom dovelo korisnika da kupi proizvod drugog sajta i za to dobija procenat od prodaje proizvoda.
  • 10. 9 1.8 Blog Jedan od sigurno dobrih načina Internet promocije je i pisanje bloga. Termin „blog“ je nastao od 2 reči: „veb“ i „log“ (engl. web log, blog) - Internet dnevnik i predstavlja posebnu formu pisanja kratkih tekstova, vezanih za jednu oblast koji su hronološki poređani. Postoje 3 tipa bloga: 1. lični blog koji piše pojedinac o određenoj temi 2. kompanijski blog koga piše organizacija ili kompanija, koja na taj način komunicira sa svojim članovima i spoljnim svetom 3. biznis blog koji je napravljen u svrhu zarađivanja novca ili putem reklamiranja ili putem promocije i prodaje svojih usluga. Ukoliko se lični blog koristi da bi se ostvarili prihodi, tada on postaje biznis blog Iznajmljivanje prostora za reklame, programi partnerskog marketinga, postavljanje plaćenih oglasa, prodaja proizvoda, promocija usluga predstavljaju samo neke od načina da se zaradi od bloga. 1.9 Društvene mreže Društvene mreže predstavljaju platformu za izgradnju društvenih konekcija i društvenih odnosa među ljudima koji su , na primer, prijatelji, imaju interesovanja za slične aktivnosti, poslovnih iskustava ili drugih svera interesovanja koja ih povezuju na neki način. Društvena mreža servis se sastoji od predstavljanja svakog korisnika ( često putem profila ), sa njegovim / njenim društvenim vezama i raznim dodatnim uslugama. Društveno umrežavanje putem interfejsa omogućava korisnicima da dele ideje, slike, postove, događaje, aktivnosti i interese sa ljudima u svojoj mreži. Slika 3 - Društvene mreže
  • 11. 10 2 Definicija Proširene stvarnosti U osnovi definicije ovog termina, proširena stvarnost (eng. Augmented reality - AR) predstavlja područje na granici stvarnog i virtuelnog. Proširena stvarnost postavlja virtuelne objekte u stvarnom svetu. Slika 4 - Proširene Stvarnost Službene i jedinstvene definicije proširene stvarnosti nema. Međutim, sistem koji predstavlja proširenu stvarnost, mora sadržavati sledeće karakteristike: 1. Proširena stvarnost kombinuje realno i virtuelno 2. Omogućava interaktivni prikaz u realnom vremenu 3. Trodimenzionalnost Prva karakteristika definiše da će sistem kao rezultat prikazivati i delove virtualnog i delove stvarnog sveta učitanog kroz kameru. Drugom se karakteristikom proširena stvarnost ograničava na realno vreme. Ovom se tačkom definicije iz proširene stvarnosti isključuju svi filmovi koji naizgled kombinuju stvarno i virtuelno, zbog nedostatka interaktivnosti. Trećom se karakteristikom ograničava samo na sisteme koji "osećaju" dubinu i u odnosu prema njoj iscrtavaju virtuelne objekte. Tako, na primer prilikom fotografisanja, na ekranu nam se mogu pojaviti razne postavke prikazane virtuelnim objektima - dugmadima. Tu dolazi do mešanja
  • 12. 11 stvarnosti i virtuelnog okrutenja u realnom vremenu. Međutim, prema ovoj postavci, takav prikaz ne spada u proširenu stvarnost. Slika 5 - Kontinuum stvarnosti i virtuelnosti Slika 2 pokazuje kontinuum odnosa stvarnog i virtuelnog okruženja predstavljena u [6]. Na jednoj strani ekstrema prikazano je stvarno okruženje, dok je na potpuno drugoj strani virtualna stvarnost. Sve unutar tih dveju stvarnosti pripada takozvanoj "Mešanoj stvarnosti". Prema ovoj podeli, razlikujemo i "proširenu virtualnost", gde se stvarni objekti mešaju s virtuelnim okruženjem. Primer toga bi mogla biti virtuelna soba u koju su dodate stvarne osobe. Takođe, treba napomenuti da se proširena stvarnost može odnositi na sva čula, a ne samo na vid. Tako, na primer, proširenu stvarnost možemo obogatiti zvukom. Slušalice bi mogle dodavati generisani zvuk, dok bi spoljni mikrofon prepoznavao zvukove iz okoline. Takav bi sistem omogućavao maskiranje i prekrivanje odabranih zvukova. Nadalje, s optičkom uređajima koji pružaju povratne informacije možemo "proširivati" stvarne sile iz okoline. Naravno, ovi sistemi su komplikovani, ali ne i neizvodljivi. Međutim, u ovom radu ćemo se baviti radu vizuelnim sistemima proširene stvarnosti. 2.1 Proširena Stvarnost kroz vreme Istorijski gledano, tragovi proširene stvarnosti setu do davne 1897., kada se psiholog George Malcolm Stratton u jednom od svojih radova referencirao na "Obrnute naočare" (eng. upside- dovn glasses). Te su naočale coveku pružale obrnuti prikaz stvarnosti.
  • 13. 12 Slika 6 - Ivan Sutherland - HMD Iako se ovaj pristup izgledao prilično primitivn i uopšte ne dolazi do "proširenja" stvarnosti, uočljiva je sličnost sa sistemom Ivana Sutherlanda iz 1968. Sutherland je sa grupom kolega dizajnirao HMD (eng. head mounted displai) kroz koji je korisnik mogao videti kompjuterski generisane slike mešane sa stvarnim objektima (Slika 3). Kasnije, njegov je rad razvijala američka vojska kroz unaprjeđivanje prikazima vojnog pilota određenim informacijama. Njihov je rad u 90-tim godinama javno objavljen, pa je postao osnova raznih civilnih razvojnih projekata. Kakogod, termin "Proširene stvarnosti" je prvi puta upotrebljen u leto 1990. od strane Boeingovog razvojnog tima. Njihov je zadatak bio naći alternativu skupim dijagramima i markirnim ureCajima korišćenim za voCenje radnika kroz fabriku zaduteni za kabliranje. Rezultat istraživanja bio je uređaj koji se nosio na glavi, dizajniran da korisniku ispisuje instrukcije o kablovima aviona, te samim time olakšava i ubrzava rad u fabrici. Pred kraj 90-ih, proširena je stvarnost postala prilično istrativana tema. Dr Ronald Azuma je svojim radom "Pregled Proširene stvarnosti" (eng. "Survei of Augmented Realiti ") 1997 postavio temelje ove grane nauke.
  • 14. 13 Slika 7 - Sistemi korišćeni za AR aplikacije (a): PC + HMD (b): Tablet PC (c): PDA (d): Smartphone U narednim godinama, proširena stvarnost je postala sveprisutna u računarskom svetu. Ostvarena su brojna tehnička ostvarenja na raznim sistemima. Pretežno je u svim takvim sistemima sastavna komponenta bilo zaseban računar kao eksterne ulazne i izlazne jedinice. Međutim, u današnje doba, sve više sistema sadrže sve spomenute komponente u vlastitom integrisanom sistemu. Tako smo od "Robota" kojeg smo morali nositi na sebi došli do pametnih mobilnih telefona koji se uz sve navedene komponente mogu pohvaliti is preko 1 GHz procesne snage. Prema tome, tema proširene stvarnosti dobija nove interese od strane sve brojnijih razvojnih timova specijalizovanih za mobilne aplikacije.
  • 15. 14 3 Pojam Proširene stvarnosti Proširena realnost ( AR ) je uživo, direktno ili indirektno, pogled na fizičkom , realnom okruženju čiji su elementi pojačana računarski generisanom senzornim ulazom , kao što su audio, video, grafika ili GPS podaci . To se odnosi na jedan opštiji koncept pod nazivom posredovana stvarnost , u kojoj pogled na stvarnost je modifikovan ( možda čak i umanjena , a ne uvećan ). Kao rezultat toga, ova tehnologija funkcioniše po trenutnoj percepciji proširene realnosti. Nasuprot tome, virtuelna realnost zamenjuje realni svet sa simuliranim. Uvećanje je uobičajeno u realnom vremenu i na semantičkom kontekstu sa ekološkim elementma , kao što su sportske rezultate na televiziji tokom meča. Uz pomoć napredne AR tehnologije ( npr. dodavanje kompjutersku viziju i cilj prepoznavanje )podaci o stvarnom svetu oko korisnika postaje interaktivna i digitalno se može manipulisati. Veštačka informacije o životnoj sredini, a objekti mogu biti preklopljen na realnom svetu. 3.1 Hardver Hardverske komponente za Proširenu Stvarnost su: procesor, displej, senzori i ulazni uređaji. Savremenih mobilnih računarskih uređaja kao što su smart telefona i tablet računari sadrže ove elemente koji često uključuju kameru i MEMS senzori kao što su akcelerometar, GPS i kompas, što ih čini pogodnim AR platforme.
  • 16. 15 3.2 Popularnost Proširene stvarnosti Budući da sama ideja Proširene stvarnosti nije nova, postavlja se pitanje zašto je sada doživela toliku ekspanziju? Razlog tome je naglo razvijanje mobilnih telefona i tablet uređaja, koji sada imaju dovoljno razvijenu tehnogoliju i Verovatnoća da renderuju i obrade sve potrebne podatke za prikazivanje Proširene stvarnosti. Nekad je ovo bio veoma skup i komplikovan proces i najviše je našao primene u filmskoj industriji, ali danas je dostupan svima i njegova implementacija znatno jednostavnija i jeftinija, a sa druge strane daleko naprednija. 4 Princip Proširene stvarnosti Za prikazivanje Proširene stvarnosti po trebno je da ispunimo nekoliko uslova. Potrebno nam je: o Marker (slika “okidač”) o Kompjuterski generisan element (slika, video, 3D model, HTML) o Smart uređaj sa odgovarajućom mobilnom aplikacijom Slika 8 – Princip Proširene stvarnosti Kada pokrenemo AR aplikaciju, koristeći kameru smart uređaja skeniramo okolinu i kada aplikacija prepozna marker, postavlja kompjuterski generisan element preko tog markera.
  • 17. 16 5 Primena Proširene stvarnosti Zbog svoje jednistvene Verovatnoćai spajanja relanog i digitalnog sveta, primena Proširene stvarnosti je veoma široka. Iako je ovaj princip u širokoj upotrebi veoma malo vremana, već sada postoji niz načina na koji možemo da iskoristimo Proširenu Stvarnost da bismo realnom svetu dodali neke važne informacije.ć Neke od oblast u kojima možemo već sada videti primenu Proširene stvarnosti: o Obrazovanje o Igrice o Promocija o Testiranje proizvoda o Štampani mediji o Turizam Slika 9 - Primena Proširene stvarnosti
  • 18. 17 5.1 Turizam Predavanja iz geografije zahtevaju mnogo deskriptivnog opisivanja od strane predavača i još viši nivo imaginacije od strane slušaoca. Uz pomoć Proširene stvarnosti dobijate mogućnost da držite u ruci neke od svetskih poznatih znamenosti i da ih posmatrate u 3D prostoru. Slika 11 - Rio de Žanejro Slika 10 - Ajfelov toranj Slika 13 - Trijumfalna kapija Slika 12 - Koloseum Slika 15 - Noterdam spolja Slika 14 - Noterdam iznutra
  • 19. 18 5.2 Revizija proizvoda U današnje vreme promocija i marketing su sve značajniji u cilju poboljšanja prodaje. Uz pomoć Proširene stvarnosti firme su u mogućnosti da pruže priliku protrošačima mogućnost da, uslovno rečeno, probaju proizvod pre nego što ga kupe, a da ga ustvari ni ne dobiju fizički. Kupci više cene vrednost nekog proizvoda kada ga vide u svom domu. Jedan od takvih primera je i deo Mitsubishi-eve kompanije koja se bavi belom tehnikom. Uz pomoć Proširene stvarnosti oni su uspeli da odgovore na jedno od najčešćih pitanja koja dobijaju - ,,Kako će ovaj uređaj izgledati u mojoj kući?” i sada mogu veoma lako da odgovore na to pitanje. Danas svi njihovi komercijalisti su opremljeni sa tablet uređajima i njihovom aplikacijom koja sadrži Proširenu Stvarnost i na taj način i znatno olakšava komunikaciju i pregovaranje sa klijentima. Iz Mitsubishi-ja kažu da predviđaju 30 miliona dolara u porastu prodaje i više miliona u uštedi na štampanom materijalu. Slika 16 - Mitsubishi Electronics Jednostavnim postavljanjem markera na zid i skeniranjem kroz njihovu aplikaciju, klijent je u mogućnosti da vidi kako taj proizvod, u ovom slučaju klima uređaj, izgleda u njihovom domu u realnom vremenu. Ono što je još dodatna prednost jeste činjenica da klijent može da se dodatno informiše o konkretnom proizvodu kao i da bira između više različitih modela. Proizvođač automobila Mazda takođe ima zanimljivu aplikaciju sa Proširenom Stvarnosti. Njihova aplikacija pruža mogućnost da posmatrate njihov najnoviji model CX-5 u tri dimenzije kako biste mogli da se slobodno krećete oko njega. Primena Proširene stvarnosti dolazi do posebnog izražaja kada su u pitanju industrije kao što je automobilska, gde nije jednostavno, lako i jeftno prokazati potencijanom kupcu određen proizvod. Primanom ovih tehnologija može se direktono uticati na prodaju ali i u isto vreme može smanjiti neke druge troškove kao što su transport, štampa i drugi prezentacioni materijali.
  • 20. 19 Aplikacija nam pruža mogućnost da vidimo razne varijante sa kojima ovaj model može da dođe. Sa samo par klikova možemo promeniti boju, kao i različite vrste felni koje mogu da dođu uz njega. Takođe imamo mogućnost da pogledamo i unutrašnjost automobila uz pomoć žiroskopa, kao i da biramo između opcija vrste oblaganja unutrašnjosti modela. Zanimljivu primenu Proširene stvarnosti ima i kompanija Lego koja postavila štand na prodajnum mestu (point of sale). Oni su brendirali štand koji je opremljen računarom sa kamerom i programom koji vrši samu proces Proširene stvarnosti. Ideja koju oni imaju je krajnje prakitčna i jednostavna, a u isto vreme veoma zabavna. Kada korisnik pokaže kameri kutiju sa Lego kockicama, dobija prikaz modela koji može da se sastavi od njih. Slika 18 - Mazda CX-5 Slika 17 - Mazda CX-5 Slika 20 - Mazda CS-5 unutrašnjost Slika 19 - Mazda CS-5 unutrašnjost
  • 21. 20 Slika 21 – Lego Lego je iskoristio i napredne varijante 3D modelovanja u kojima su uključili i animacije i time dodali celokupnom doživljaju. Ovakvi vidovi promocije su posebno zanimljivi i privlačni mlađoj populaciji, koja u ovom slučaju predstavlja ciljnu grupu. Proširena Stavarnost ne mora da se primenjuje samo korišćenjem odštampanih markera. iMirror aplikacija koristi detekciju ključnih tačaka na licu i nakon toga postavlja 3D model naočara koji dalje prate pokrete vašeg lica. Slika 22 - iMirror Slika 23 - iMirror
  • 22. 21 Postoji mogućnost odabira modela naočare, boje okvira kako i vrste samog stakla. Uz pomoć ove aplikacije dobijamo mogućnost da u realnom vremenu isprobamo celu paletu proizvoda sa svim opcijama koje nudi, a da ni ne odemu u zvaničnu prodavnicu. Poseban akcenat je stavljen i na deljenje sadržaja, budući da postoji mogućno da se fotografišete i da tu fotografiju podelite sa svojim prijateljima na društvenim mrežama. Kao posebna kategorija u ovoj oblasti izdvojila se upotreba Proširene stvarnosti kao pomoć menadžerima komercijalne službe pri vizualizaciji proizvoda i promotivnih materija na mestu prodaje. Komericijalista može jednstavnim postavljanjem markera na rafu u prodavnici da vidi kako će njegov proizvod izgledati i uklopiti sa okolinom. Takođe ovo je moguće uraditi i sa promotivnim materijalima kao što su štandovi. Ovo dodatno može olakšati posao komercijalnom radniku budući da su ovakvi predmeti većeg formata i komplikovaniji za transport i montažu. Slika 26 - Roba široke potrošnje Slika 27 - Roba široke potrošnje Slika 25 - Roba široke potrošnje Slika 24 - Roba široke potrošnje
  • 23. 22 Neke od aplikacija ne moraju biti igrice već mogu samo biti proratni elementi i raditi na promociji i upoznavanjem sa samim akterima. Takav primer možemo videti kod trenutno veoma popularnih igara kao što je Crisis i Nano Suit koji glavni akter igrice nosi. Slika 28 - Crisis (Nano Suit) Neki od najvećih svetkih brendova u ovoj industriji kao što je Marvel uradio je veoma zahtevan 3D model za svog superheroja Iron Man u cilju promocije koju predstavljaju na raznim promocijama i konferencijama. Veoma je zanimljivo videti Iron Man-a u prirodnoj veličini u realnom okruženju, što vam pruža čak i mogućnost da se fotografišete sa njim kroz samu aplikaciju, što je stvorilo veoma veliku interakciju i oduševljenje kod samih fanova. Pored same činjenice da se radi veoma zahtevno i realističnom 3D modelu, ono što dodatno pridodaje samom doživljaju jeste i animacija koja ide uz sam 3D model Iron Man-a. Slika 29 - Iron Man
  • 24. 23 Takođe postoji i zanimljiva apikacija uz pomoć koje možete da vidite kako bi vama stajala Iron Man maska. Ova aplikacija koristi praćenje ključnih tačaka na licu i uz pomoć koje možete slobodno da pokrećete glavu i maska će vas pratiti kao da je zaista nosite. 5.3 Print Štampani mediji su jedno od najpopularnijih oblasti gde je Proširena Stvarnost našla svoju primenu. Sve češće možemo pritetiti u raznim katalozima i brošurama ikonice koje označavaju da te stranice možete skenirati sa odgovarajućom aplikacijom i dobiti dodatne informacije. Problem kod štampanih medija kao što su katalozi jeste ograničenost prostora i činjenica da ste ograničeni samo na text i slike. Primenom proširene stvarnosti sada možemo u štampane materijale dodati video što je do sada bilo nezamislivo. Slika 31 - Proširena Stvarnost – Katalog Jednostavnim skeniranjem stranice automatski se pokreće prezentacioni video materijal koji prate kretanje kataloga. Takođe postoji mogućnost da duplim pritiskom na video, on pređe u prikaz preko celog ekrana i tada postajemo nezavistan od marketa, tj. u ovm slučaju kataloga. Slika 30 - Iron Man maska
  • 25. 24 Zbog problema ograničenog prostora u printu, potrebno je predstaviti neki proizvod na što verniji način, kao i njegovu primenu. U ovom konkretnom primeru to možemo postići predstavljanjem 3D modela sa kojim možemo steći bolji doživljaj kako će konačni proizvod izgledati u primeni. Ovim 3D pristupom dobijamo realniji osećaj dubine koji može direktno uticati na konačnu odluku potencijalnog klijenta. Slika 32 - Proširena Stvarnost – Katalog Veoma je važno voditi računa da korisniku pružimo dodatne informacije koje su u kontekstu sa onim što je u samom štampanom mediju. U primeru ispod možemo videte deo kataloga koji posvećen kontakt informacijama same firme u kojima se između ostalog nalazi i adresa same firme. Ovo je iskorišćeno da se, skeniranjem tog dela, prilaže mapa sa markiranom lokacijom firme. Ovde se išlo i korak dalje, tako da možete primetiti i dugme koje je označeno sa WWW. Pritiskom na to dugme odlazimo na mobilnu verziju sajta i to na kontakt stranicu.
  • 26. 25 6 Praćenje bez markera Razvoj prvih sistema za praćenje bez markera (eng. markerless visual tracking) započeo je istraživanjem C. Harrisa 1992. godine na MIT-u [7]. Njegov sistem, zvan RAPiD (eng. Real time attitude and position determination), bio je jedan od ranijih sistema za praćenje bez markera u tri dimenzije u stvarnom vremenu. Iako sa uvelike slabijim računarskim performansama, sistem je ostvario priličan uspeh. Mnogi sistemi koji su usledili dele iste principe rada kao i Harrisov sistem. Takođe, kratki opis načela rada ovog sistema posluži će kao dobar uvod u tehnike praćenja bez markera. U RAPiD-u sistem prati poziciju kamere u odnosu na 3D model. Pozicija je opisana sa šest parametara, po tri za translaciju, odnosno rotaciju. Za svaku sličicu videa (eng. frame), pozicija se ažurira: prvo po pretpostavkama na osnovu promene položaja sistema, a zatim i na osnovu merenja iz video ulaza. Navedena merenja ostvaruju se na osnovu prepoznavanja rubova modela i merenja razlika između predviđenog i stvarnog položaja ruba. Generalno, razlike (greške), nikad ne mogu biti potpuno izolirane, međutim, mogu biti svedene na minimum. Sistemi praćenja bez markera pretežno se oslanjaju na pronalaženje „prirodnih“ markera, onih detalja koji su mogu naći u svakoj realnoj sceni. Nadalje, nailazimo na problem oko otkrivanja dubinskog položaja. Neki sistemi su korištenjem dve kamere prilično olakšali ovaj proces. Međutim, u nastavku će biti objašnjen rad jednog sistema koji koristi samo jednu kameru. 7 PTAM – Parallel Tracking and Mapping Ovaj se sistem koristi metodama za određivanje pozicije kamere u nepoznatoj sceni. Bazira se na tehnici SLAM (eng. simultaneous localization and mapping) koja se pretežno koristi u robotici jednake svrhe. PTAM sistem se bazira na podeli praćenja i preslikavanja (mapiranja) u dva nezavisna zadatka koje omogućava razne metode optimizacije. Jedan proces se bavi praćenjem uređaja koje obavlja nepravilne pokrete, dok se u drugom generiše trodimenzionalni koordinatni sistem (mapu) sa svim detaljima pronađenim u prethodnoj slici. U kasnijim poglavljima govori se o implementaciji ovog sistema, pa se primer jedne takve mape može videti na slici 39.
  • 27. 26 Zbog česte nejasnoće elemenata na sceni, dolazi do razvoja tehnika pod skupnim nazivom „prošireno praćenje“ (eng. extensible tracking), u kojem sistem pokušava dodati prethodno nepoznate elemente scene u inicijalni trodimenzionalni koordinatni sistem. Budući da se ovaj sistem bazira na određivanju pozicije kamere u nepoznatoj okolini, ovakvo „prošireno praćenje“ počinje praktički iz ničega. Na kasnije opisanoj implementaciji, primer takvog naknadnog praćenja vizualno se može primetiti na slici 38. 7.1 Karakteristike metode u kontekstu SLAM tehnike - Praćenje i preslikavanje su odvojeni i pokreću se u odvojenim procesima - Preslikavanje scene u koordinatni sistem (mapiranje - postavljanje scene u koordinatni sistem) je zasnovano na „ključnim slikama“ (eng. keyframes) - Koordinatni sistem je inicijaliziran iz para ključnih tačaka (5-Point Algorithm) - Novi detalji (tačke) se inicijaliziraju na osnovu epipolarne geometrije - Mapira se velik broj tačaka – reda veličine i do 103 Ova se metoda pretežno temelji na traženju planarnih struktura – ravnih ploča. Takođe, implementacija ovog sistema omogućuje prikaz virtualnih objekata na jednoj od takvih ploča. 7.2 Izgradnja mape – koordinatnog sistema Koordinatni sistem – u daljem tekstu „mapa“, sastoji se od M tačaka lociranih u koordinatnom sistemu W. Svaka tačka predstavlja lokalnu planarnu teksturu u svetu – sceni koju promatramo. Svaka tačka u mapi ima koordinate: Takođe, svaka tačka sadrži i normalu i referencu na vezani detalj iz scene. Nadalje, mapa sadrži i N ključnih slika (eng. keyframes). To su slike snimljene kamerom u različitim vremenima. Svaka ključna slika sadrži odgovarajući koordinatni sistem s kamerom pozicioniranom u centru. Svaki koordinatni sistem takođe sprema piramidu s četiri stepena sivih bpp slika. Na slici 33 se nalazi primer piramidalnog prikaza slike. Piramidalni prikaz slike sadrži slojeve slike u različitim rezolucijama. Tako je u sistemu PTAM na nultoj razdaljini spremljena cela slika rezolucije 640x480, dok su na trećem stupnju spremljena ista slika degradirane rezolucije na 80x60 piksela.
  • 28. 27 Slika 33 - Piramidalni prikaz slike 7.3 Praćenje Prilikom praćenja, uz pretpostavku da je koordinatni sistem već izgrađen, sistem provodi sledeću proceduru pri svakom okviru (frame) ulaznog toka podataka: 1. Nova slika (eng. frame) se preuzima uz pomoć kamere. Izrađuje se piramidalni prikaz s četiri stepena. OdreĐuju se rubovi na osnovu algoritma FAST-10 za svaki stepen piramide. 2. Tačke koordinatnog sistema se projekatuju na sliku 3. Cca 50 najgrubljih detalja - tačaka se traži na slici 4. Pozicija kamere se ažurira na osnovu pronađenih korespondencija 5. Veći broj (cca 1000) tačaka se re-projekatuje i traži na slici 6. Konačna pozicija se računa iz svih pronađenih odnosa
  • 29. 28 7.4 Mapiranje – izgradnja mape U nastavku će okvirno biti objašnjeno kako se trodimenzionalne tačke dodaju u koordinatni sistem. Koordinatni sistem se inicijalno izgrađuje uz pomoć stereo- algoritma u 5 tačaka. Pri spomenutoj inicijalizaciji korisnik mora pritisnuti određenu taster za početak praćenja. Zatim je potrebno kameru translatirati u jednu stranu, pa otpustiti taster. Spomenuti proces inicijalizacije na implementaciji sistema PTAM vizualno se može pratiti na slici 35. Nadalje, preslikavanje (mapiranje) se kontinuirano provodi sukladno dodavanjem novih ključnih slika. Ključne slike se dodaju ukoliko se uspostave sledeći zahtevi: kvalitet praćenja mora biti visok, mora proći barem dvadeset slika (frejmova) od generisenja prošle ključne slike i kamera mora biti minimalno udaljena od već poznate tačke scene. Procesom praćenja već su određeni rubovi. Zatim se koriste algoritmi za sužavanje skupa ovih rezultata. Preostale tačke su kandidati za unošenje u koordinatni sistem. Pošto tačka zahteva informaciju dubine, traži se najbliža ključna slika, pa se triangulacijom pronalazi položaj tačke. Na slici 34. skiciran je proces preslikavanja - mapiranja. Slika 34 - Skica procesa preslikavanja
  • 30. 29 7.5 Implementacija sistema PTAM Gore opisani sistem implementiran je u C++ programskom jeziku. Kod je izvorno razvijen na x86-64 Linux operativnom sistemu. Takođe je uspešno prenesen i na MacOS (Intel-based; grafika X11). Program (softver) je uz nekakve izmene prenesen i na 32-bitnu Windows platformu. 7.5.1 Potrebna konfiguracija Program zahteva minimalno dva procesa u isto vreme, pa bi prema tome bio potreban više-jezgreni procesor. Osobno sam koristio Intel i5 2,4 GHz, međutim, razvojni tim garantuje kvalitetne performanse i s Intel Core 2 Duo procesorom koji radi na istoj frekvenciji. Program zahteva OpenGL grafički standard. Razvijen je i testiran isključivo za nVidia grafičku karticu i popratne pogonske programe. Prema tome, pri korištenju drugih GL pogonskih programa bile bi potrebne određene promene u kodu. Program se zasniva na ulaznom toku podataka i zahteva video kameru sa širokougaonim objektivom rezolucije 640x480, frekvencije 30 Hz. Iako razvojni tim preporučuje skuplje uređaje, ovde je korišćen Logitech Quickcam C100, uz prilične performanse i efikasnost.
  • 31. 30 7.5.2 Potrebne biblioteke Programsko ostvarenje ovog sistema zasniva se na tri glavne zavisnosti: - TooN – glavna biblioteka za linearnu algebru - libCVD – biblioteka za manipulaciju videom i slikama za računarski vid - Gvars3 – run-time biblioteka za skriptovanje i konfiguraciju (potprojekat libCVD biblioteke) Sve tri navedene biblioteke razvijene su u laboratoriju Cambidge Machine Intelligence i mogu se naći na [16] (biblioteka TooN) i na [17] (biblioteke libCVD i Gvars3). 7.5.3 Instalacija U navedenom će odeljku biti objašnjena instalacija za Linux operativni sistem. Pomoć pri instalaciji na Windows ili MacOS operativnim sistemima možete naći na [18]. Pri instalaciji, potrebno je nužne biblioteke instalirati sledećim redosledom: 1. TooN; 2. libCVD; 3. Gvars3. Sve se biblioteke instaliraju klasičnim ./configure; make; make install protokolom. Zatim, treba kopirati datoteke iz direktorijuma PTAM/Build/Linux u direktorijum PTAM. Sledeći korak je prevođenje (eng. compile) video postavki. Ponuđene su dve datoteke: patchVideoSource_Linux_DV.cc i VideoSource_Linux_V4L.cc, koje rade s Unibrain Fire-i, odnosno Logitech QuickCam Pro 5000 kamerama. Nadalje, treba prepraviti Makefile datoteku, prema kojoj će se željena datoteka prevesti. Potrebno je prepraviti samo vrednost varijable VIDEOSOURCE. Nadalje, celi se sistem prevodi uz pomoć naredbe make; dobivamo dve izvršne datoteke: PTAM i CameraCalibrator.
  • 32. 31 7.5.4 Pokretanje programa Inicijaliziranje sistema obavljamo pokretanjem izvršne datoteke CameraCalibrator. U ovom se koraku od korisnika očekuje da kamerom snimi uzorak kao na slici 35. Ovim se postupkom sistem proverava da li su sve tražene postavke uključene i da li ulazni video tok uopšte radi. Slika 35 - Kalibracija kamere Po uspešnom prepoznavanju uzorka, korisnik treba da pritisne taster „GrabFrame“, i isti da postupak ponovi u različitim pozama. Nakon par „uhvaćenih“ slika, potrebno je pritisnuti taster „Optimize“ kojom se kalkulišu parametri kamere. Kad je korisnik zadovoljan s konvergencijom (greška RMS bi trebala biti oko 0.3 piksela) potrebno je pritisnuti taster „Save“ kojom se spremaju postavke u camera.cfg.
  • 33. 32 Slika 36 - Završena kalibracija kamere Po završetku kalibracije kamere, pokrećemo izvršnu datoteku PTAM. Na početku, sistem zahteva od korisnika izvršavanje inicijalizacije. Korisnik usmeri kameru u željenu površinu (savršena bi bila ploča s izraženim detaljima – poput npr. tastature). Slika 37 - Inicijalizacija mape
  • 34. 33 Pritiskom na taster razmaka (eng. spacebar), korisnik polako translatira kameru. Ponovnim pritiskom na prethodno naveden taster, ostvaruje se tzv. stereo par, iz kojeg sistem inicijalizira trodimenzionalni koordinatni sistem i počinje proces praćenja. Spomenuti proces inicijalizacije primećujemo na slici 37. Takođe je zgodno primetiti na slici 38 kako inicijalna mapa sadrži vidno manje tačaka od mape dobijene udaljavanjem/naknadnim praćenjem i preslikavanjem. Slika 38 - Pronalazak površina i proširivanje mape Jednostavna proširena stvarnost se može prikazati pritiskom na taster „Draw AR“. Iscrtava se kvartet od po dva para očiju, koji nakon početne jednostavne animacije počinju da prate kameru. Primer iscrtavanja spomenute proširene stvarnosti vidi se na slici 40. Ukoliko nije došlo do pravilnog generišenja koordinatnog sistema, potrebno je ponoviti proces inicijalizacije. Taj proces pokrećemo pritiskom na taster Reset, pa se nastavlja kao da je program tek pokrenut. Moguće da je do nepravilne inicijalizacije došlo zbog nedovoljno duge translacije. Takođe je bitno naglasiti da inicijalizacija samo s rotacijom neće omogućiti dovoljno dobru osnovu, pa sistem neće moći da nastavi da funkcioniše.
  • 35. 34 Slika 39 - Mapa - Koordinatni sistem Potrebno je spomenuti da sistem pri praćenju i ažuriranju mape koristi samo crno- beli prikaz i da se boja može uključiti/isključiti. Slika 40 - Iscrtavanje proširene stvarnosti Razvojni tim napominje da je ostavljeno mnogo mesta za napredak i ubrzanje algoritama praćenja. Međutim, sledećim je mjerenjem pokazano da sistem uz 4000 tačaka „odvaja“ svega nepunih 20 ms za praćenje jedne slike video toka podataka:
  • 36. 35 Priprema ključne slike 2.2 ms Projekcija tačaka 3.5 ms Pretraživanje detalja 9.8 ms Iterativno ažuriranje pozicije 3.7 ms Ukupno 19.2 ms Spomenuti je sistem ostvario i naknadne verzije. Par mjeseci po objavljivanju PTAM sistema ostvarena je i verzija PTAMM (eng. Parallel Tracking and Multiple Mapping) koja između sitnih poboljšanja nudi i permanentno spremanje mapa koja bi se pokretala ponovnim dolaskom/prepoznavanjem prethodno posjećenog mesta. 8 Android Pošto je glavna tema ovog diplomskog rada proširena stvarnost na ugraĐenom sistemu, odabrao sam Android platformu kao svoju radnu okolinu. Ovo je poglavlje zamišljeno kao kratki opis Android platforme uz osvrt na razlike u odnosu na platforme prisutne na stolnim računalima. Android je otvoreni sistem (eng. open source) iniciran od strane Google Inc. Baš zbog svoje „otvorenosti“ postavio se kao najlogičniji odabir. U svojoj osnovi, zamišljen je kao platforma za mobilne uređaje. Uključuje operativni sistem, SDK (eng. Sofware Development Kit), programski radni okvir (eng. framework) i ključne aplikacije. Razvijen je od strane „Open Handset Alliance“ konzorcija koji se sastoji od 65 tehnologija i mobilnih kompanija, među kojima se nalazi Pre spomenuti Google Inc., T-Mobile, HTC, Motorola i Qualcomm. Upravo posljednji nudi jedan zanimljiv okvir za izradu aplikacija iz domene proširene stvarnosti, koji će biti tema sledećih poglavlja. Najveći deo Android projekata objavljen je pod Apache 2.0 licencom (open source). To omogućuje svakome izgradnju željene verzije Androida. Na primer, popularna
  • 37. 36 verzija CyanogenMod je modificirana verzija bazirana na Android 1.6, pa pruža još mnoštvo mogućnosti koja su uključena u novije verzije Androida. Prema tome, ovakva licenca uvelike omogućava razvoj platforme od strane programera diljem svijeta. Na slici 41 prikazana je arhitektura Android platforme. Platforma je bazirana na Linux jezgri (eng. kernel) verzije 2.6., koja omogućuje manipulaciju memorijom, model pogonskih programa, manipulaciju procesima i energijom/napajanjem i sigurnosni model gornjim slojevima. Međutim, gornji su slojevi prilično izmijenjeni, te je nemoguće pokretati standardne Linux aplikacije na Android platformi. Slika 41 - Arhitektura Android platforme Povrh jezgre nalaze se nativne biblioteke, na slici 41 prikazane zelenim blokom. Android koristi mnoge postojeće open-source projekate za vlastitu platformu. Na primer, biblioteka WebKit, koja se koristi za prikaz HTML stranica, koristi se i u web-pregledniku Safari. Tu se nalaze pretežno biblioteke za manipulaciju raznih medija i spremanje podataka. MeĐu njima se nalazi i posebna verzija OpenGL-a
  • 38. 37 (OpenGL ES) o kojoj će kasnije biti riječi. Bibliotekama se pristupa putem Java aplikacijskog interfejsa (API-ja). 8.1 Android SDK U ovom su poglavlju ukratko opisane komponente Android Software Development Kita potrebne za razvoj aplikacija opisanih u narednim poglavljima. 8.1.1 Dalvik VM (DVM) Java je programski jezik koji se koristi za programiranje svih aplikacija na Androidu. Java aplikacije se generalno ne smatraju štedljive kad govorimo o memoriji. Na sistemima s više gigabajta to ne predstavlja veći problem. Međutim na mobitelima rijetko se kad susrećemo s viškom RAM-a. Takođe, niti snaga procesora nije najveća. Standardna se Java Virtualna Mašina (eng. Java Virtual Machine – JVM) ne susreće s navedenim problemima jer inicijalno nije stvorena za mobilne uređaje. Upravo zbog ovih činjenica, Android razvojni tim je razvio Virtualnu mašinu pod imenom Dalvik (DVM – eng. Dalvik Virtual Machine), dizajniranu za rad na ureĐajima koji rade na baterije sa sporijim procesorom i manje RAM-a. Osnova ove virtualne mašine je Apache Harmony [14]. Java izvorni kod se inače prevodi u class datoteke, međutim, DVM ne može direktno pokretati ove datoteke. Umjesto toga, koristi se format tipa dex. Ovaj tip datoteke sadrži više klasa. Zgodno je napomenuti da ova vrsta datoteke ima manju veličinu od zbirenih veličina svih class datoteka koje sadrži. Uzrok tome je što se konstantne vrednosti i deklaracije metoda definišeju samo jednom. Takođe, za razliku od JVM koji se bazira na stogu, DVM se bazira na registrima. Ovo je takođe jedan od načina uštede memorije. Nadalje, standardni JVM obavlja kompilaciju byte koda u machine kod za vreme rada (eng. runtime), što ubrzava celu aplikaciju. DVM ne omogućuje spomenutu karakteristiku. Razlozi su sledeći:
  • 39. 38 - Takav način prevoĐenja povećava korištenje memorije - Mnoge su funkcionalnosti svejedno implementirane u nativnom kodu - Mnoge su funkcionalnosti ostvarene hardverski, poput grafike i zvuka Takođe, ekvivalent Javinoj jar izvršnoj datoteci na DVM je datoteka tipa apk. To je arhiva koja sadrži dex datoteke, resurse, nativne biblioteke i meta informacije. Ovo je datoteka koja se prenosi na mobilni ureĐaj prilikom instalacionog procesa. Android platforma susreće se i s nedostatkom FPU (eng. Floating Point Units) na mobilnim ureĐajima. Prema tome, operacije s decimalnim brojevima moraju se ostvarivati programerski. Po nekim procenama takva ostvarenja računanja su otprilike 50 puta sporije od računanja s celim brojevima. Nadalje, u najvećem broju slučajeva, mobiteli ne raspolažu s više procesora, te nije omogućeno paralelno izvođenje programa. Uz smanjene hardverske performanse, ovo su razlozi koji u mnogome otežavaju izvođenje programa. 8.1.2 Java API Android službeno ne podržava niti Java SE niti Java ME. Međutim, dijelovi ovih API-ja su podržani na Androidu. Nadalje, Android pruža verziju svog API-ja za grafičko korisničko interfejsa (GUI). Zbog toga sve klase Swing i awt biblioteka nedostaju. Najznačajniji nedostatak je ne podržavanje Java beansa, koji su sastavni deo velike većine open source projekata. 8.1.3 Grafički API Android podržava OpenGL ES verziju OpenGL-a specijalno dizajniranu za ugraĐene sisteme. Ovaj 3D API je dostupan za Java i C++ programski jezik. Uključene su samo one mogućnosti OpenGL-a koje su stvarno potrebne. Zbog prethodno objašnjenog problema nedostatka FPU jedinice, na OpenGL ES 1.x se koristi računanje s fiksiranim decimalnim zarezom. OpenGL ES 2.0 koriste zapis s pomičnim zarezom (eng. floating point). Najveća razlika u odnosu na standardni OpenGL je nedostatak glBegin/glEnd ulaznih tačaka. Umjesto specificiranja svakog vrha, referenciraju se nizovi vrhova.
  • 40. 39 Sve teksture moraju biti kvadratne veličine potencije broja dva, kao u ranijim verzijama OpenGL-a. 8.1.4 Eclipse Za razvoj aplikacija koristi se Eclipse SDK. Specifične funkcionalnosti dostupne su kroz Android SDK. Omogućeno je pokretanje na emulatoru ili direktno na mobilnom ureĐaju. Eclipse obavlja generisanje apk datoteke i instaliranje aplikacije na mobitel. Takođe, Eclipse omogućuje debugg kako na emulatoru, tako i na mobitelu. Slika 42 - Eclipse radna okolina 8.1.5 Native Development Kit (NDK) Java je jedini programski jezik koji je jedini podržan na Android platformi. Međutim, moguće je kombinirati Java kod s C++ kodom preko JNI (eng. Java Native Interface). NDK omogućuje korištenje klasa i metoda pisanih u nativnom jeziku (C/C++) preko dijeljenih biblioteka. Takođe, omogućeno je i korištenje Java klasa i metoda u nativnom kodu. Ovo omogućuje korištenje drugih biblioteka otvorenog koda (eng. open source) biblioteka, te pruža moguće ubrzanje ukoliko npr. iscrtavanje obavljamo preko nativnog koda. Spomenuti se alat koristi u programskom ostvarenju objašnjenom u slijedećem poglavlju.
  • 41. 40 8.2 Proširena stvarnost na android platformi Kako je Android još uvijek mlada platforma, a proširena stvarnost prilično zahtjevna tehnologija, dostupno je svega par okvira (eng. framework) koji nude podršku proširene stvarnosti na Android ugraĐenom sistemu. Takođe, ovi su sistemi u ranijim fazama razvoja. Jedan od njih je AndAR, sistem baziran na slavnom ARToolKit-u, biblioteci razvijenoj još 1999. godine. Slika 43 - AndAR Sistem AndAR neće biti tema užeg proučavanja ovog rada, a detaljnije informacije možete naći na [20]. Predmet izučavanja ovog poglavlja biti će jedna drugi alat, QCAR. Ova je biblioteka, poput AndAR otvorene licence, i kao takva omogućava i olakšava razvoj proširene stvarnosti na Androidu. 9 QCAR SDK QCAR SDK je projekat razvijen od strane Qualcomm Inc., koji je objavljen 2010. godine. QCAR uvelike olakšava razvoj aplikacija iz područja proširene stvarnosti. Baziran je na markerima dostupnim na stranicama projekata, o kojima će više govora biti u sledećem poglavlju.
  • 42. 41 9.1.1 Arhitektura sistema Aplikacija bazirana na QCAR SDK sastoji se od sledećih komponenti. Na slici 44 prikazana je arhitektura sistema s imenima komponenti navedenim u zagradama: - Kamera (eng. Camera): Kamera odgovara predlošku vrste singleton koji osigurava da se u sistemu nalazi isključivo jedna instanca ove komponente. Kamera osigurava da se svaki frame uhvati i proslijedi trackeru. Uloga programera je samo pokretanje i zaustavljanje ove komponente. Frame se automatski dovodi u formatu i veličini ovisnoj o ureĐaju. - Pretvornik slika (eng. Image Converter): Ova komponenta pretvara sliku iz formata kamere (npr. YUV12) u format prikladan za iscrtavanje OpenGL- om (npr. RGB565) i praćenje. Takođe je uključeno i pod-uzorkovanje. - Tragač (eng. Tracker): Takođe singleton i sadrži algoritme računarskog vida koji otkrivaju i prate objekte scene u svakoj slici video toka podataka. Takođe sadrži i algoritme koji otkrivaju markere i virtualne tastera. Rezultat se sprema u tzv. objekt stanja (eng. state object) koji se dalje koristi pri iscrtavanju, pa je dostupan za manipulaciju iz programskog koda. - Pozadinski video pokazivač (eng. Video Background Renderer): Još jedna komponenta koja odgovara predlošku singleton koja je zadužena za iscrtavanje slika spremljenih u objekt stanja - Aplikacijski kod (eng. Application Code): Programer mora inicijalizirati sve gore spomenute komponente i odraditi tri koraka u aplikacijskom kodu. Za svaki procesuirani slikovni okvir (eng. frame), ažurira se objekt stanja i poziva se metoda za iscrtavanje. Tri koraka su sljedeća: 1. Upit objektu stanja za novo detektiranim ili novim stanjima prethodno detektiranih markera 2. Ažuriranje aplikacijske logike s novim ulaznim podacima 3. Iscrtavanje generisanih objekata - grafike - Markeri (eng. Target Resources): Markeri se mogu generišeti pomoću on- line sistema. Generišeju se posebne konfiguracijske datoteke koje omogućuju korisniku/programeru korištenje vlastitih markera. Konfiguracijske datoteke QCAR SDK koristi u vreme izvoĐenja.
  • 43. 42 Slika 44 - Arhitektura i tok podataka QCAR SDK u aplikacijskom okruženju 9.1.2 Aplikacijsko programsko interfejsa – API U ovom odlomku ukratko će biti spomenuti razredi QCAR biblioteke i u par crta objašnjena njihova uloga. Za detaljniju dokumentaciju moguće je pritisnuti na naziv svakoga od razreda. QCAR::Area – osnovni razred za 2D oblike korištene u QCAR-u QCAR::CameraCalibration – utvrĐuje unutrašnje parametre kamere QCAR::CameraDevice – implementira pristup ugraĐenoj kameri mobilnog uređaja QCAR::Frame – kolekcija različitih prikaza jedne slike video toka podataka. Može sadržavati proizvoljan broj slikovnih prikaza u različitim formatima ili rezolucijama zajedno s vremenskom oznakom i indeksom QCAR::Image – jedna slika. Npr. proslijeĐena s kamere
  • 44. 43 QCAR::ImageTarget – ciljana ravnina za iscrtavanje. Svako manipuliranje s virtualnim tasterma obavlja se preko ovog razreda QCAR::Marker – pravokutni marker QCAR::Matrix34F – matrica s 3 reda i 4 stupca decimalnih brojeva QCAR::Matrix44F – matrica s 4 reda i 4 stupca decimalnih brojeva QCAR::MultiTarget – skup ciljanih ravnina za iscrtavanje s fiksiranom prostornom udaljenosti QCAR::NonCopyable – osnovni razred za sve objekte koji se ne mogu kopirati. MeĐu njima su CameraCalibration, CameraDevice, Image, Renderer, Trackable, Tracker, VirtualButton i svi njihovi podrazredi QCAR::Rectangle – definiše dvodimenzionalni pravokutni prostor QCAR::Renderer – pruža metode za iscrtavanje video pozadine i trodimenzionalnih objekata na osnovu podataka o poziciji QCAR::State – jedan od bitnijih razreda. Pruža konzistentan pogled na stanje proširene stvarnosti uključujući i frame i sve instance razreda Trackable. QCAR::Trackable – predstavlja osnovni razred za sve objekte koji mogu biti praćeni u 6DOF (eng. Six Degrees of Freedom – translatacija i rotacija u svim smjerovima) QCAR::Tracker – razred zadužen za praćenje i manipulaciju svim Trackable objektima QCAR::UpdateCallback – služi za ažuriranje čitavog sistema QCAR::Vec2F – dvodimenzionalni vektor s decimalnim brojevima QCAR::Vec2I – dvodimenzionalni vektor s celim brojevima QCAR::Vec3F – trodimenzionalni vektor s decimalnim brojevima QCAR::Vec3I – trodimenzionalni vektor s celim brojevima QCAR::Vec4F – četverodimenzionalni vektor s decimalnim brojevima
  • 45. 44 QCAR::Vec4I – četverodimenzionalni vektor s celim brojevima QCAR::VideoBackgroundConfig – čuva konfiguraciju pozadinskog videa QCAR::VideoMode – implementira pristup ugraĐenoj kameri uređaja QCAR::VirtualButton – virtualna taster na površini koja se može pratiti. 9.1.3 Android dozvole Svaka aplikacija na Android platformi sadrži konfiguracijsku datoteku AndroidManifest.xml u svom osnovnom direktorijumu. Manifest operativnom sistemu prikazuje osnovne informacije o aplikaciji Pre svakog pokretanja aplikacije. MeĐu informacija o raznim imenima komponenti aplikacije, uključenih biblioteka, minimalne verzije Android sistema itd., nalaze se i dozvole za korištenje određenihkomponenti uređaja i samog operacijskog sistema. Tako za pokretanje QCAR SDK aplikacije neophodno je omogućiti sledeće dozvole (Android Permissions): - android.permission.ACCESS_NETWORK_STATE - android.permission.ACCESS_WIFI_STATE - android.permission.CAMERA - android.permission.INTERNET - android.permission.READ_PHONE_STATE 9.1.4 Markeri – „Trackables“ „Trackables“ predstavlja osnovi razred koji predstavlja sve objekte u stvarnom svetu koje QCAR SDK može pratiti u šest stepeni slobode. Svaka instanca tog razreda može biti prepoznata i praćena, ima ime, identifikacijski broj, status i informacije o poziciji. Razredi „Image Targets“, „Multi Targets“ i „Markers“ su podrazredi, pa nasljeđuju sve atribute od „Trackables“ osnovnog razreda. Instance ovog razreda (i instance njegovih podrazreda) se ažuriraju svakog okvira video toka podataka, pa se u tzv. statičkom objektu (eng. Static Object) prenose u samu aplikaciju.
  • 46. 45 Četiri su tipa ovog razreda, pa su označeni sledećim enumeratorima: - UNKNOWN_TYPE - Trackable nepoznatog tipa. - IMAGE_TARGET - Trackable tipa ImageTarget - MULTI_TARGET - Trackable tipa MultiTarget - MARKER - Trackable tipa Marker Nadalje, sledećim se enumeratorima označava status svake instance razreda Trackable: - UNKNOWN – stanje je nepoznato. Ovo stanje se najčešće vraća Pre inicijalizacije. - UNDEFINED – stanje nije definišeno. - NOT_FOUND – Trackable nije pronaĐen. Do ovog stanja dolazi npr. ukoliko referencirani Trackable nije deo baze podataka. - DETECTED – Trackable je pronaĐen u okviru video toka podataka. - TRACKED – obavljeno je praćenje na Trackableu u okviru video toka podataka. Ukoliko je Trackable pronaĐen i praćen, dalje se procesuira pozicija u obliku matrice 3x4. Na slici 45 možemo videti pravilno detektirane i praćene dve instance razreda Trackable. Slika 45 - Trackable – marker pomoću kojeg se definiše položaj u okolini
  • 47. 46 9.1.4.1 Image Targets Ovaj podrazred Trackable razreda nas najviše zanima u ovom radu. Radi se o najjednostavnijoj, međutim za potrebe ovog rada sasvim dovoljnoj implementaciji razreda Trackable. U praksi, radi se o običnom markeru, slici na papiru koju QCAR SDK prepoznaje i na osnovu pozicije omogućava iscrtavanje proširene stvarnosti na ekran. U instalacijskom paketu QCAR SDK dobija se pet pokaznih primera aplikacija s kojima dolaze i korespondentni markeri/Trackables. Trackable markeri se definišeju u datoteci assets/config.xml. Generisanje proizvoljnih markera omogućeno je na [21]. Slanjem slike formata JPG ili PNG, dobivaju se povratne datoteke, među kojima i prethodno navedena XML datoteka, koje je potrebno uključiti u projekat. Na slici 46 vidimo naš Trackable i njegove referentne detalje na osnovu kojih se prepoznaje u sceni. Slika 46 - FER Trackable (lijevo) i njegovi referentni detalji (desno) 9.1.5 Virtualni tasteri - Virtual Buttons Ovim razredom omogućena je interakcija s proširenom stvarnosti u aplikaciji baziranoj na QCAR SDK. To je prethodno definišena površina na Image Targetu, koja dodirom ili prekrivanjem pokreće dogaĐaj (eng. event). Ovaj razred se može koristiti za razne implementacije: od klasičnog pritiskanja tipaka, detektiranja da li je određeni deo Image Targeta prekriven, pa sve do raznih interakcija s modelima
  • 48. 47 na sceni proširene stvarnosti. Virtualne tastera se evaluiraju jedino ako su unutar dosega kamere, pa je video tok podataka postojan određeno vreme. Evaluacija Virtualnih tastera je isključena prilikom brzih pokreta kamerom. Virtualne tastera se mogu prethodno dodati u config.xml datoteku kao segment Image Targetu, pa se mogu dinamički dodavati prilikom izvoĐenja aplikacije. Sledeći su najvažniji parametri Virtualne tastera: - Naziv / identifikator - Koordinate: Virtualne tastera su definišene kao pravokutne površine. Definišeju se gornji-lijevi i donji-desni kut pravokutnika. Potrebno je naglasiti da se za jedinice za definišenje koordinata definišeju u lokalnom koordinatnom sistemu. Izvor koordinatnog sistema je u sredini roditeljskog Image Targeta - Osetljivost: 1. HIGH – brza detekcija, može prouzročiti netačne aktivacije 2. MEDIUM – najčešće optimalna detekcija 3. LOW – potrebno je duže prekriti taster za pokretanje događaja - Događaji – korespondentne akcije koje se poduzimaju osnovu prekrivanja, odnosno otkrivanja Virtualne tastera 9.2 IMPLEMENTACIJA SISTEMA QCAR SDK 9.2.1 Instalacija sistema QCAR SDK U sledećem poglavlju će ukratko biti objašnjen postupak instalacije za Windows operativni sistem. Pri instalaciji za Linux sistem postupak je sličan, međutim komponenta Cygwin nije potrebna, jer je postupak izgradnje (eng. build) omogućen u operativnom sistemu. Za potpunu instalaciju i razvoj aplikacija baziranih na QCAR SDK potrebne su sledeće komponente. Pri instalaciji komponenti je potrebno instalirati navedenim redosledom:
  • 49. 48 1. JDK (eng. Java SE Development Kit) – omogućuje programiranje u programskom jeziku Java i sadrži osnovne Java biblioteke 2. Eclipse IDE (eng. Integrated Development Environment) – okolina koja omogućava programiranja aplikacija, njihovo prevođenje i pokretanje 3. Android SDK (eng. Software Development Kit) – omogućuje programiranje Android programskih aplikacija i korištenje osnovnih biblioteka 4. Android ADT (eng. Android Development Tools) – alat/dodatak za Eclipse koji omogućuje brže i lakše razvijanje i distribuiranje aplikacija 5. Android SDK podrška za platforme (eng. Android SDK Platform Support) – pomoću aplikacije Android SDK and AVD Manager omogućuje ažuriranje i skidnevno novih komponenti, pokretačkih programa za mobilne uređaje i generisanje virtualnih uređaja za pokretanje Android aplikacija 6. Cygwin okruženje – okruženje koje omogućuje prevođenje native klasa 7. Android NDK (eng. Native Development Kit) – ekstenzija na Android SDK koja omogućuje izgradnju delova programskog koda u native jeziku. Native jezici se koriste za programske kodove kritičnih performansi (npr. iscrtavanje). U našoj aplikaciji koristi se C++ programski jezik. 8. QCAR SDK Nadalje, potrebno je postaviti globalnu varijablu QCAR_SDK_ROOT na vrednost direktorijuma u koji je instaliran QCAR SDK. Npr. „C:/Development/Android/qcar-sdk-xx-yy-zz“, gde su xx-yy-zz vrednosti korespondentne verzije SDK-a. Linkovi na navedene programske komponente nalaze se na.
  • 50. 49 9.2.2 Implementacija Virtualnih tastera QCAR SDK s instalacijom pruža pet primera koji omogućuju brže shvatanje i razvoj vlastitih aplikacija. U ovom poglavlju objašnjena je integracija vlastitih modela i upotreba Virtualnih tastera za menjanje tekstura modela. Navedeni je postupak implementacije baziran na primeru Virtual Buttons, uz određene promene. Za početak nam je potreban primeren Image Target. Ovaj je postupak objašnjen u poglavlju 4.1.4.1. Bitno je navesti da nam je za upotrebu Virtualnih tastera potreban dovoljno detaljan Image Target. Razlog tome je što se pri detektiranju Virtualnih tastera koriste detalji dostupni na Image Targetu. Ukoliko „ispod“ Virtualne tastera nema detalja, nemoguće je detektovati prekrivanje/otkrivanje tastera. Nadalje, potreban nam je model koji ćemo iscrtavati. Za potrebe ovog primera, izradio sam jednostavan model prikazan na slici 24. Slika 24 - 3D model Za iscrtavanje modela u aplikaciji baziranoj na QCAR SDK potreban nam je .h header format. Do traženog formata je najlakše doći izvozom željenog modela u .obj formatu, skripta za konverziju je dostupna na [22]. Potrebno je spomenuti da ovim pristupom nije moguće implementirati animaciju modela. Za animiranje potrebno je koristiti nekakav programski okvir koji omogućuje prikaz i animaciju (eng. rendering framework) baziran na Android platformi i OpenGL ES-u. Međutim, pošto je platforma još „mlada“, takvi su programski okviri pretežno u test fazama. Takođe, bitno je naglasiti da je iscrtavanje poželjno odraditi u nativnom kodu, zbog skupoće samog procesa iscrtavanja. Nadalje, potrebno je željeni model integrisati u segment aplikacije zadužen za
  • 51. 50 iscrtavanje. U korištenom primeru radi se o VirtualButtons.cpp razredu dostupnom među datotekama nativnog koda u direktorijumu jni/. Pošto naš generisani model ne sadrži polje indeksa (eng. indeks array), potrebno je koristiti metodu glDrawArrays umesto glDrawElements. Nadalje, potrebno je refaktorisati i izmenjati kod baziran na ovim metodama. Sama inicijalizacija Virtualnih tastera je prilično dobro obavljena u primeru, pa ćemo je velikim delom koristiti za naš program. Prema tome, potrebno je implementirati akcije koje se provode po aktiviranju Virtualnih tastera. U našem primeru, na osnovu pritisaka na različite tastera, naš će se model „zavijati“ u različite teksture. Pošto je naglasak ovog poglavlja samo prikazati osnove funkcionalnosti QCAR SDK, navedene su teksture jednostavne slike u boji. Iteracijom kroz dostupne Virtualne tastere, svakim okvirom video toka podataka potrebno je proveriti da li i koji taster pritisnut. Na osnovu toga, za korišćenu se odabire korespondentna tekstura. Takođe, za svaku od dostupnih tastera se iscrtavaju okviri na ekranu, što može biti praktična funkcionalnost. Nadalje, potrebne su promene u Java programskom kodu. Ove se promene prvenstveno odnose na učitavanje tekstura. Pre pokretanja same aplikacije potrebno je prevesti sav kod u nativnom jeziku. Za taj postupak koristimo skriptu ndk-build prethodno spomenutog alata Android NDK. Na slici 25 može se videti primer iscrtavanja i korištenja Virtualnih tastera za promjenu teksture na modelu. Slika 47 - Virtualni tasteri
  • 52. 51 9.3 QCAR + UNITY QCAR ekstenzija za alat Unity [23] omogućuje integraciju QCAR funkcionalnosti u Unity 3 IDE i time omogućuje brži razvoj aplikacija i igara. U ovom je poglavlju ukratko opisan sam alat Unity, ekstenzija i na jednom primeru je objašnjena implementacija jednostavnog sistema. 9.3.1 Unity Unity je integrisani alat za kreiranje 3D video igrica ili drugog interaktivnog sadržaja poput 3D animacija u realnom vremenu. Omogućuje razvoj aplikacija prvenstveno temeljeno na grafičkom okruženju, što znači da se čitava scena može izgraditi doslovno „povlačenjem“ sadržaja u okolinu. Slika 48 - Unity Alat je dostupan za Windows i Mac OS X platforme, pa je pomoću njega moguće razvijati aplikacije za sledeće platforme: - Windows - Mac - Linux (trenutno u razvoju) - Wii - iPad - iPhone - Android
  • 53. 52 Takođe, moguće je razvijati i aplikacije za preglednike, uz koje je dostupan i dodatak „Unity web player plugin“. Podrške za Xbox 360 i PlayStation 3 su u finalnoj fazi razvoja. Prema tome, radi se o izuzetno kvalitetnom i široko korištenom alatu. Unity je dostupan u dve glavne licencne verzije: Unity i Unity Pro. Osnovna je verzija besplatna, dok je Pro verzija dostupna za određenu cenu. U Pro verziji dostupne su mnoge funkcionalnosti, dok se u besplatnoj verziji iscrtava vodeni žig (za web aplikacije), odnosno splash screen (za ostale – samostalne aplikacije). Grafički pogon (eng. engine) koristi Direct3D (Windows), OpenGL (Mac, Windows) i OpenGL ES (iPhone OS, Android). Za skriptovanje samih komponenti scene koriste se UnityScript (skriptni jezik baziran na JavaScriptu), C# i Boo (skriptni jezik baziran na Pythonu). Podržana je integracija modela iz svih popularnijih alata za modeliranje: 3ds Max, Maya, Blender, Modo, ZBrush, Cinema 4D i Cheetah3D. Unity podržava dugi niz funkcionalnosti i kompatibilnosti, međutim, za potrebe naše aplikacije ćemo koristiti samo uži izbor komponenti. 9.4 QCAR Unity Extension Na osnovu ovog dodatka moguće je koristiti komponente oba sistema. Moguće je koristiti komponente QCAR-a, poput Virtualnih tastera, Image Targeta (koji se koristi za kao referentni marker) i AR kamere (koja implementira celu funkcionalnost praćenja i detektiranja prostora za iscrtavanje. S druge strane, sve navedene komponente mogu se koristiti u jednoj jednostavnoj razvojnoj okolini poput Unity-ja. Prema tome, razvoj aplikacije koja omogućava proširenu stvarnost, pa čak i interakciju s modelima, svodi se na slaganje komponenata na scenu. Naravno, svako ponašanje određene komponente potrebno je programirati u skriptama te „pridodati“ željenoj komponenti. Razvoj jedne takve aplikacije objašnjeno je u sledećem poglavlju.
  • 54. 53 9.5 Implementacija sistema QCAR Unity Extension 9.5.1 Instalacija potrebnih komponenti U sledećem poglavlju bit će ukratko objašnjen inicijani postupak za Windows platformu. Verzija za Linux operativne sisteme još nije dostupna u release verziji, dok je instalacija za Mac OS X identična Windows instalaciji. Za razvoj aplikacija temeljenih na QCAR Unity Extensionu potrebne su nam dve komponente: - Unity alat verzije 3.2. ili 3.3. - QCAR Unity Extension Po skidanju i instalaciji Unity alata, potrebno je skinuti ekstenziju i pokrenuti izvršnu datoteku. Nadalje, odabire se željena lokacija za razvoj aplikacija. Paketi se automatski kopiraju u Standard Package instalacionog direktorijuma Unity alata. Ukoliko se koristi 64-bitni operativni sistem potrebno je skinuti i instalirati dodatak za osiguravanje stabilnosti celog sistema [23]. Rezultat instalacije će biti sledećih pet Unity paketa: - QCAR-1.0.0.unitypackage: osnovna QCAR ekstenzija - QCAR-ImageTargets-1.0.0.unitypackage: primer koji koristi Image Target marker - QCAR-FrameMarkers-1.0.0.unitypackage: primer korištenja Frame Markers markera - QCAR-MultiTargets-1.0.0.unitypackage: primer korištenja Multi Targets markera - QCAR-VirtualButtons-1.0.0.unitypackage: primer koji koristi Virtualne tastera – Virtual Buttons
  • 55. 54 10 Implementacija jednostavnog projekata Po instalaciji QCAR paketa, kreira se novi projekat. Potrebno je odabrati paket QCAR- 1.0.unitypackage iz liste menija Import the following packages. Alternativno, moguće je uvesti paket desnim klikom na pogled Project, pa odabirom menija Import Package. Nadalje, za korištenje markera u aplikaciji, dodaju se konfiguracijske datoteke config.xml i qcar-resources.dat u direktorijum StreamingAssets/QCAR. U poglavlju 4.1.4.1. objašnjeno je generisanje vlastitih markera, odnosno moguće je koristiti dostupne markere preuzimanjem konfiguracijskih datoteka iz primera QCAR-ImageTargets. Struktura direktorijuma i datoteka bi trebala izgledati kao na slici 49. Slika 49 - Unity: Struktura podataka jednostavnog QCAR projekata U nastavku je ukratko objašnjen sadržaj svakog od direktorijuma: - Editor: sadrži skripte potrebne za dinamičku interakciju s elementima koji se mogu pratiti na sceni - Plugins: sadrži Java i nativne binarne datoteke koje integriraju QCAR SDK u Unity Android aplikaciju
  • 56. 55 - Qualcomm Augmented Reality: sadrži skripte i tzv. prefab komponente. Prefab komponente su objekti specifični za Unity okolinu, koji se mogu višekratno koristiti (eng. reusable), pomoću kojih se gradi scena. U ovom direktorijumu nalaze se navedeni objekti pomoću kojih se ostvaruju funkcionalnosti neophodne za proširenu stvarnost - Streaming Assets: sadrži prethodno navedene datoteke config.xml i qcar-resources.dat Sada kada su uključeni potrebni paketi u naš projekat, relativno je jednostavno slagati željenu scenu. U direktorijumu Qualcomm Augmented Reality/Prefabs potrebno je označiti komponentu ARCamera, pa jednostavnim povlačenjem u prozor Scene integrisati u scenu. Jednako tako dodaju se sve željene komponente. Neophodno je dodati i komponentu ImageTarget koja omogućuje korištenje markera, pa i samim time i praćenje. Slika 50 - Inspector View Za dodavanje proizvoljnih elemenata u scenu, poput modela, potrebno je prethodno dodati željene elemente u projekat, te ih onda „povući“ u scenu.
  • 57. 56 Jednostavni generički modeli poput osnovnih geometrijskih likova, svetla, GUI elemenata, itd. mogu se dodati odabirom menija GameObject->Create Other. Nadalje, svakom se elementu scene mogu dodavati skripte na osnovu kojih se ta komponenta scene ponaša. Tako je, između ostalog, uz element scene ImageTarget uključena skripta Image Target Behavior, sa kojom se definiše marker koji će se koristiti, pa se definišu i inicijaliziraju elementi sadržani na ImageTarget komponenti, poput Virtualnih tastera. Na slici 28 moguće je videti sadržaj pogleda Inspector na kojem definišemo osnovne izgledne i ponašajne atribute elemenata projekata. 10.1Aplikacija – „Interaktivni virtualni patuljak“ Primer opisan u nastavku iscrtava jedan kinematički model patuljka na definisanom markeru, pa omogućuje jednostavnu interakciju. Tako na primer, ukoliko prstom prekrijete prostor na kojem patuljak stoji, patuljak će skočiti. Slika 51 - Unity project Na slici 51 mogu se videti čitav Unity projekat i pregledi Hierarchy, Project, Scene i Inspector.
  • 58. 57 U Hierarchy pogledu moguće je videti elemente scene: AR kameru, direkciono svetlo i ravnu površinu. Na tu površinu stavljen je ImageTarget marker, a na njega Virtualni taster. Kao dete Virtualnoj tastera stavljen je kinematički model – patuljak naziva goober. Pri postavljanju elemenata u odnos roditelj-dete nasljeđuju se neke osobine komponenti scene, a omogućeno je i lakše upravljanje istim komponentama. Radi se o kinematičkom modelu FBX formata. Na slici 52 prikazan je model, pa i hijerarhija istog. Model ima definišene tri animacije: idle, jump i walk. Slika 52 - Hijerarhijski kinematički model Bitno je spomenuti da Unity nudi alat za animiranje modela. Jednostavnim pomicanjem kostiju modela u određenim sekvencijama moguće je izraditi animaciju. Na slici 53 vidimo spomenuti alat.
  • 59. 58 Slika 53 - Unity Animation Window Pri implementaciji Virtualnih tastera, potrebno je implementirati interfejsa IVirtualButtonEventHandler dostupno u QCAR Extension paketu. Na osnovu implementacije ovog interfejsa, prvenstveno metoda OnButtonPressed i OnButtonReleased, pozivaju se korespondentni događaji. Na slici 54 prikazan je rad aplikacije. Slika 54 - Interaktivni virtualni patuljak Bitno je naglasiti da se Virtualni taster inicira prekrivanjem detalja na markeru na poziciji tastera. Prema tome, zbog tehničkih detalja izvedbe samog slikanja mobilnog telefona, u ovom se primeru koristi hemijska.
  • 60. 59 Danas postoje mnogi komercijalni sistemi proširene stvarnosti, slobodni za korištenje za bilo koga. Neki od najpopularnijih su ARToolKit, GRATF i GoblinXNA koji rade na XNA framework-u, ARUCO – implementiran pomoću Ogre engine-a, D'Fusion i Qualcomm-ov ARSDK nazvan Vuforia. Kao što vidimo, postoji puno sistema za razvoj aplikacija koji su komercijalno dostupni. Svi pružaju potrebne funkcionalnosti za razvoj aplikacija proširene stvarnosti i većina ih je dostupna besplatno, a ostale sisteme možemo testirati pre nego ih kupimo. Većina dostupnih sistema dopušta jednostavne crno-bele markere, ali postoje i oni koji dopuštaju i kompleksnije markere, a osim toga imaju i brojne druge naprednije funkcionalnosti. Pošto bi razrada kriterijumuma za sve trenutno dostupne sisteme bila jako opširna, u radu su opisani samo neki od njih. Testirajući predhodno navedene sisteme implementacijom jednostavnih aplikacija i čitajući dokumentaciju na webu, možemo videti da ARUCO pruža samo osnovnu funkcionalnost praćenja i premda nije komplikovan za korištenje, njegova ocena bi bila dosta manja kada bismo ga uporedili sa ostalim sistemima. GoblinXNA i GRATF oba koriste XNA framework i pružaju osnovno praćenje i izradu vlastitih jednostavnih markera. Njih smo takođe isključili iz upoređivanja jer su ograničeni na samo nekoliko platformi i nisu kompleksni kao neki drugi trenutno dostupni sistemi pa ih ne bismo mogli upoređivati po svim zadanim kriterijumima i ocena bi im, kao i za ARUCO, bila prilično niska u odnosu na odabrane sisteme. Kod sistema isključenih iz upoređivanja postoji puno prostora za daljnji razvoj i napredak, ali i njihove trenutne verzije su dovoljno dobre za izradu osnovnih aplikacija proširene stvarnosti. Odabrani sistemi se osim po funkcionalnosti ističu i po popularnosti, pa su idealan izbor za uporedna poređenja. Sistemi čije poređenje je opisano u ovom radu su: ARToolKit, D'Fusion i Vuforia.
  • 61. 60 ARToolKit je softver biblioteka za izradu aplikacija proširene stvarnosti. Jedna od ključnih poteškoća u razvoju aplikacija za ovakve sisteme je problem praćenja koristeći korisnikovu perspektivu. Kako bi aplikacija pravilno radila i iscrtavala virtualne predmete na pravom mestu, potrebno je odrediti gde korisnik gleda u realnom svetu. ARToolKit koristi algoritme računarskog vida da reši taj problem. Koristi biblioteke praćenja snimaka da izračuna poziciju kamere i orijentaciju u odnosu na postavljene markere u stvarnom vremenu. Ovaj proces omogućuje široku primenu i brzu izradu aplikacija. Karakteristike sistema: • Pozicioniranje i orijentacija pomoću jedne kamere • Kod za praćenje koji koristi jednostavne crne kvadratiće • Složeni markeri • Mogućnost korištenja bilo kojeg markera u obliku kvadrata • Jednostavan kod za kalibraciju kamere • Dovoljno brz za aplikacije u realnom vremenu • SGI IRIX, Linux, MacOS i Windows OS distribucija • Distribucija sa kompletnim izvornim kodom
  • 62. 61 D'Fusion Studio je besplatan razvojni alat firme Total Immersion za izradu aplikacija proširene stvarnosti. Dostupan je na više uređaja i operativnih sistema, pa samim tim omogućuje razvoj zaštićenih aplikacija koje svoju primenu nalaze u digitalnom oglašavanju, organizaciji događaja i industrijskim prostorima. Karakteristike sistema: • Algoritmi praćenja karakteristika • Praćenje jednog ili više markera • Automatska inicijalizacija • Praćenje lica • Video menadžment • Podrška za bar kodove • iOS, Windows, iPad Ready
  • 63. 62 Vuforia je Qualcommov sistem za izradu aplikacija proširene stvarnosti. Moguća je izrada aplikacija na Android i iOS mobilnim uređajima. Karakteristike sistema: • Callback funkcije za događaje • Pristup hardverskim komponentama na visokoj razini • Više vrsta markera o Image targets o Multi targets o Frame markers • Interakcija sa stvarnim svijetom o Virtual buttons Sva upoređivanja koje se sprovode, dešavaju se po nekim kriterijumima, pa tako i ova. Nakon implementacije jednostavnih primera u svakom od tri sistema, upoređujemo ih po sledećim kriterijumima: • Jednostavnost korištenja • Prenosivost • Praćenje o Brzina prikaza virtualnog objekta o Nagib markera o Parcijalan prikaz markera o Jedan marker o Više markera o Udaljenost markera od kamere • Izrada vlastitih markera • Verovatnoća praćenja markera o Dnevno svetlo o Mrak
  • 64. 63 11 ARToolKit 11.1.1Jednostavnost korištenja Za korištenje ovog sistema, potrebno je skinuti program sa Interneta i instalirati ga na računar i praktično odmah možemo krenuti sa izradom aplikacija. Ako na računaru već imamo instaliran Unity, za njega takođe postoji podrška, pa i pomoću njega možemo izraditi aplikacije. Na stranicama Artoolworks-a postoje i uputstva za skidnevno, pokretanje i izradu jednostavne aplikacije, što omogućuje jako brzu izradu test aplikacije, ali i pomoć pri izradi vlastitih, komplikovanijih aplikacija. 11.1.2Prenosivost ARToolKit omogućuje Prenos na iOS, Android, Linux i Windows platforme, a koristi se i za izradu web aplikacija, iz čega možemo zaključiti da ima jako široku primenu. 11.1.3Praćenje 11.1.3.1 Brzina prikaza virtualnog objekta Nakon postavljanja markera pred kameru, virtualni objekt se trenutno prikazuje na ekranu. 11.1.3.2 Nagib markera Sistem jako dobro prati markere koje postavimo u vidokrug kamere, a do nestanka virtualnog objekta dolazi tek kod uglova većih od 86-87 stepeni. 11.1.3.3 Parcijalan prikaz markera Čim maknemo marker iz vidokruga kamere ili delimično prekrijemo sliku koju kamera vidi, virtualni objekt se briše. Marker mora u kontinuitetu biti vidljiv da bi sistem radio kako treba. Ovaj problem nestaje ako koristimo složene markere.
  • 65. 65 Slika 56 - Prikaz dva virtualna objekta istovremeno u ARToolKit aplikaciji Slika 55 - Prikaz virtualnog objekta u ARToolKit aplikaciji 11.1.3.4 Broj markera Sistem podržava jedan ili više markera, kao i složene markere sastavljene od više jednostavnih markera.
  • 66. 66 11.1.3.5 Udaljenost markera od kamere Pod zahtevima dobrog osvetljenja i markera postavljenog vertikalno na kameru, iscrtavanje virtualnog objekta prestaje nakon 2,87 metara. 11.1.4Izrada vlastitih markera Omogućena je i izrada vlastitih markera preko web-alata ili alata dobijenih uz sam ARToolKit. Jedini uslov da bi slika bila marker je crni okvir, koji služi kao granica markera. Unutar crnog okvira možemo stavljati različite uzorke ili slike koje želimo koristiti za praćenje ili koristeći web-kameru uslikati izrađeni marker i koristiti ga u aplikaciji koju izrađujemo. 11.1.5Verovatnoća praćenja markera Tokom dana sistem jako dobro prati marker i iscrtava virtualni objekt na ekranu bez ikakvih problema. Kod slabijeg osvetljenja, postoje mali problemi kod učitavanja i praćenja, ali sistem ipak funkcioniše. 12 D'Fusion 12.1.1Jednostavnost korištenja Nešto komplikovanije postavljanje u odnosu na ARToolKit, ali svejedno prilično jednostavno. Količina informacija za postavljanje i implementaciju koja se nalazi na webu sasvim je dovoljna da prosečnog korisnika informira o korištenju ovog sistema. Takođe postoji podrška za Unity. 12.1.2Prenosivost Sistem D'Fusion nam omogućuje izradu aplikacija za Android, iPhone i iPad, Windows, kao i Linux, što pokriva većinu uređaja na današnjem tržištu, pa možemo zaključiti da ima svestranu primenu. 12.1.3Praćenje
  • 67. 67 12.1.3.1 Brzina prikaza virtualnog objekta Virtualni objekt se pokazuje odmah pri postavljanju markera u vidokrug kamere. Brzina prikaza je veća ako marker pozicioniramo uspravno i pod pravim uglom u odnosu na kameru. 12.1.3.2 Nagib markera Slično kao i kod ARToolKit-a, slika nestaje kada marker nagnemo više od 86-87 stepeni, a to je jako dobra funkcionalnost. Ako u tom položaju izgubimo sliku virtualnog objekta, moramo vratiti marker u početni položaj kako bi se iscrtavanje ponovilo, ali to je prihvatljivo. 12.1.3.3 Parcijalan prikaz markera Sistem podržava parcijalan sistem markera zbog složenije slike koju markeri koriste, tako da nakon što kamera uhvati marker i sistem iscrtava virtualni objekt, deo markera možemo prekriti rukom ili čak pomaknuti izvan vidokruga kamere, a virtualni objekt će i dalje biti prikazan. 12.1.3.4 Broj markera Sistem podržava jedan ili više markera. 12.1.3.5 Udaljenost markera od kamere Udaljenosti veće od 2,28 metara su prevelike da bi sistem video marker i iscrtavao virtualni objekt, stoga nakon početka praćenja, kretanje markera moramo ograničiti na udaljenosti do 2,28 metara. 12.1.4Izrada vlastitih markera Sistem na jednostavan način omogućava izradu vlastitih markera. Slike moraju biti oblika kvadrata i to je jedino ograničenje koje postoji. Sliku koju želimo koristiti stavimo ispred kamere i u par koraka tu sliku postavimo kao jedan od markera koje trenutna implementacija koristi, pa možemo krenuti sa iscrtavanjem objekata. Kako nismo ograničeni crnim okvirom tokom izrade markera, osim slika, markeri mogu biti predmeti kao što su knjige ili kutije, pa čak i jastuci ili bilo kakvi predmeti koji na sebi imaju neki uzorak pogodan za tako nešto.
  • 68. 68 Slika 58 - Prikaz virtualnog objekta u D'Fusion aplikaciji Slika 57 - Izrada vlastitog markera unutar D'Fusion sistema 12.1.5 Verovatnoća praćenja markera Pri dobrom osvetljenju, sistem jako dobro prati markere i pravilno iscrtava objekte na predviđene markere. Slabije osvetljenje umanjuje funkcionalnost sistema, ali sistem i dalje radi.
  • 69. 69 Slika 59 - Target Managment System za izradu markera za sistem Vuforia 13 Vuforia 13.1.1 Jednostavnost korištenja Od sva tri sistema koji su opisani u ovom završnom radu, Vuforia je najsloženija za korištenje. Potrebno je skinuti i instalirati veću količinu software-a nego za ostale sisteme, ali sama uputstva za korištenje i implementaciju su jednako dobri kao i kod druga dva sistema. Kao i za druga dva sistema, imamo podršku za Unity. 13.1.2 Prenosivost Aplikacije razvijene sistemom Vuforia prenosive su na Android i iPhone, čime je korištenje tih aplikacija ograničeno na pametne telefone. 13.1.3 Praćenje 13.1.3.1 Brzina prikaza virtualnog objekta Virtualni objekt se prikazuje odmah, kao i kod ostalih sistema, pa možemo zaključiti da nijedan sistem nema nikakvih problema s učitavanjem markera. 13.1.3.2 Nagib markera Kod ovog sistema, virtualni objekt se gubi kod nešto manjeg nagiba od otprilike 80 stepeni, ali to je i dalje jako dobra funkcionalnost. 13.1.3.3 Parcijalan prikaz markera Sistem podržava parcijalno prikazivanje markera. Nakon što se marker učita i počinje se
  • 70. 70 Slika 60 - Korištenje Vuforia sistema pomoću pametnog telefona prikazivati objekt koji smo zadali sistemu, možemo pomeriti deo markera iz ekrana ili ga čak delom sakriti, a sistem će i dalje iscrtavati objekt. 13.1.3.4 Broj markera Sistem podržava jedan ili više markera, pa čak i kompleksne markere složene od više markera, čime se ovaj sistem ističe. 13.1.3.5 Udaljenost markera od kamere Sistem ima bolje performanse od druga dva koja smo testirali, pa se slika gubi tek na udaljenostima većima od 3.23 metara. 13.1.4Izrada vlastitih markera Moguće je izraditi vlastite markere od bilo koje slike koju korisnik želi, s čime je Vuforia u prednosti u odnosu na ostale sisteme. Kako je potrebno otpremiti slike na Internet pre upotrebe, jer Vuforia koristi Target Managment System za spremanje markera za trenutnu aplikaciju, izrada markera nije sasvim jednostavna, ali kao sliku možemo staviti bilo šta. Neki od primera su: naslovna stranica knjige, odgovarajuće ambalaže ili fotografije. Što kompleksnije uzorak izgleda, sistem ga lakše prati, pa je bolje odabrati uzorke koji ljudskom oku izgledaju komplikovano i detaljno, jer to kameri daje više tačaka za upoređivanje sa markerom u bazi podataka. 13.1.5Verovatnoća praćenja markera Po dnevnom svetlu sistem savršeno prati markere i pravilno iscrtava virtualne objekte. U zahtevima slabijeg osvetljenja, dolazi do malih problema kod učitavanja markera, ali sistem i dalje radi.
  • 71. 71 14 Upoređivanje sistema 14.1Konačno upoređivanje Upoređivanjem sistema možemo primetiti da postoje neke sličnosti i neke razlike. Zbog jednostavnosti pregleda, rezultate ćemo prikazati tabelarno. Jednostavnost korištenja opisuje težinu postavljanja sistema i implementiranje aplikacija u njemu. Prenosivost nam govori o platformama koje su podržane za distribuciju aplikacija pojedinog sistema. Kod praćenja, pratimo brzinu prikaza virtualnog objekta nakon što kameri prikažemo marker, nagib markera (u stepenima) kod kojeg se slika virtualnog objekta gubi, podržava li sistem parcijalan prikaz markera kod iscrtavanja objekata, broj markera koji istovremeno mogu biti prikazani kameri, udaljenost markera i kamere pri kojoj se slika virtualnog objekta gubi. Gledamo i da li je moguća izrada vlastitih markera za pojedine sisteme kao jedan od kriterijumuma. Posljednji kriterijum je Verovatnoća praćenja markera, za što imamo dva slučaja: dnevno svetlo i slabije osvetljenje. Na kraju imamo konačne ocene za sve sisteme, koje predstavljaju zbir ocena za svaki sistem po navedenim kriterijumima. Za neke kriterijume ocene će biti u rasponu od 1 do 10, gde je 10 najbolja ocena, a 1najgora ocena. Tablica 1. Tablica upoređivanja kriterijuma SISTEM ARToolKit D'Fusion Vuforia Jednostavnost korištenja 10 9 7 Prenosivost 9 10 6 PRAĆENJE Brzina prikaza virtualnog objekta 10 10 10 Nagib markera ~86° ~86° ~80° Parcijalan prikaz markera 1,10* 10 10 Broj markera 9 9 10 Udaljenost markera od kamere** 2.87 metara 2.28 metara 3.23 metara Izrada vlastitih markera 7 9 10 Verovatnoća praćenja markera 10 10 10 UKUPNA OCENA 8.875 9.625 9 *1 za jednostavne markere,10 za složene;složeni markeri rešavaju problem parcijalnog prikaza ** za ARToolKit i D'Fusion je korištena web-kamera, a za Vuforiu je korištena kamera sa Samsung Galaxy Nexusa
  • 72. 72 Zaključak Naglom ekspanzijom mobilnih uređaja u predhodnih nekoliko godna i konstantnim razvojem njihovih performansi, doveli su do mogućnosti prenošenja sistema za Proširenu stvarnos sa skupocenih i komplikovanih uređaja na uređaje koje svakodnevno koristimo po pristupačnoj ceni. Kako se objas Internet marketing neprestano razvija i menja, postoji konstantna potrebna za inovativnim i zanimljivim, ali najpre korisnim načinima promocije. Primeno proširene stvarnosti dobijamo spoj realnog i digitalnog sveta, tako što realni svet obogaćujemo podacima iz digitalnog sveta. Ovo dovodi do činjenice da su nam informacije dostupnije više nego ikad i da će naše korisničko iskustvo sa nekim proizvodom biti bogatije. Trenutno se radi na daljem razvoju sistema za Proširenu stvarnost na taj način što je planiran masovna ugradnja posebnih čipova u mobilne uređaje koji će dati još veće mogućnosti i sposobnosti za primenu Proširene stvarnosti.
  • 73. 73 Literatura i reference [1] Strateški marketing na Internetu, Tom Vassos, CET, Beograd 2000. [2] Marketing na Internetu, Dejan Šapić, Daniel Print, Novi Sad 2002. [3] Vodič kroz raj i pakao Internet marketinga, Dragan Varagić, Prometej, Novi Sad 2002 [4] Elektronsko poslovanje, Drašković M.,FSOM, Beograd 2006. [5] Ronald T. Azuma: A Survey of Augmented Reality, 1997. http://www.cs.unc.edu/~azuma/ARpresence.pdf [6] Paul Milgam, Haruo Takemura, Akira Utsumi i Fumio Kishino: Augmented reality: A class of displays on the reality-virtuality continuum, 1994. http://www.cs.wpi.edu/~gogo/hive/papers/Milgram_Takemura_SPIE_1994.pdf [7] Peter Antoniac: Augmented Reality Based user interface for mobile applications and services, 2005. http://herkules.oulu.fi/isbn9514276965/isbn9514276965.pdf [8] Feng Zhou, H.B.-L. Duh i M. Billinghurst. Trends in augmented reality tracking,interaction and display: A review of ten years of ismar, 2008. http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4637362 [10] Augment - augmented reality browser http://augmentedev.com [11] Harris, C.: Tracking with rigid models 1992. [12] Georg Klein: Visual Tracking for Augmented Reality http://www.robots.ox.ac.uk/~gk/publications/Klein2006Thesis.pdf [13] G. Klein, D. Murray: Parallel Tracking and Mapping for Small AR Workspaces
  • 74. 74 http://www.robots.ox.ac.uk/~gk/publications/KleinMurray2007ISMAR.pdf [14] Arno Becker, Marcus Pant: Android - Grundlagen und Programmierung. dpunkt.verlag, 2009. [15] Tobias Domhan: Augmented Reality on Android Smartphones, 2010 http://www.softwareforschung.de/fileadmin/_softwareforschung/downloads/WISTA/ Tobias_Domhan_Studienarbeit.pdf [16] Referenca na TooN biblioteku: http://savannah.nongnu.org/projects/tooN [17] Referenca na CVD i Gvars3 biblioteke: http://savannah.nongnu.org/projects/libcvd [18] Instrukcije za instalaciju PTAM sistema: http://www.robots.ox.ac.uk/~gk/PTAM/README.txt [19] Parallel Tracking and Multiple Mapping – stranica projekta http://www.robots.ox.ac.uk/~bob/research/research_ptamm.html [20] AndAR - Android Augmented Reality – stranica projekta http://code.google.com/p/andar/ [21] QCAR SDK – stranica projekta https://ar.qualcomm.com/qdevnet/sdk [22] Skripta za generiranje grafičkih modela u .h header formatu: http://heikobehrens.net/2009/08/27/obj2opengl/ [23] Unity3D – stranica projekta: http://www.unity3d.com/