primena proširene stvarnosti u internet marketingu - master rad
DESCRIPTION
Master rad na temu Primena Proširene Stvarnosti u Internet marketingu (Application of Augmented Reality in Internet marketing)TRANSCRIPT
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.
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
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
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
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.
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.
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
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.
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.
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
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
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.
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.
13
Slika 7 - Sistemi korišceni 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.
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.
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.
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
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
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.
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
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
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
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
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
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.
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.
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.
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
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
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.
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.
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.
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
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.
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:
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
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
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:
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.
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.
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., koj i j e 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.
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.
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
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
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đenih komponenti 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.
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
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
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:
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 .
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
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
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
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.
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
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
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.
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.1 Aplikacija – „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.
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.
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.
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.
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
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
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
63
11 ARToolKit
11.1.1 Jednostavnost 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.2 Prenosivost
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.3 Prać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
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
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.4 Izrada 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.5 Verovatnoć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.1 Jednostavnost 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.2 Prenosivost
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.3 Praćenje
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.4 Izrada 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
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
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
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.4 Izrada 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.5 Verovatnoć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
14 Upoređivanje sistema
14.1 Konač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
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
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
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/