scieee AI-readable full text Open interactive document viewer

Realitat augmentada utilitzant codificació per colors

Domingo Ortells, Antoni

Full text

Realitat Augmentada utilitzant codificació per colors Projecte Final de Carrera Autor Antoni Domingo Ortells Directora M. Carmen Juan Lizandra València 2011 Índex Projecte Final de Carrera Pàgina 2 Índex Índex .......................................................................................................... 2 1.- Introducció ........................................................................................... 5 1.1.- Motivació ........................................................................................ 5 1.2.- Objectius ......................................................................................... 6 2.- Estat de l’art ......................................................................................... 7 2.1.- Rerefons teòric ................................................................................ 7 2.2.- Material de realitat Augmentada .................................................. 10 2.2.1.- Head-Mounted Displays ............................................................. 10 2.2.2.- Estacionaris ................................................................................ 11 2.2.3.- Handheld .................................................................................... 12 2.3.- Realitat Augmentada en dispositius mòbils ................................... 12 2.4.- Àmbit d’utilització de la Realitat Augmentada .............................. 13 2.4.1.- Per al dia a dia ............................................................................ 13 2.4.2.- Videojocs .................................................................................... 14 2.4.3.- Televisió i cine ............................................................................ 18 Índex Projecte Final de Carrera Pàgina 3 2.4.4.- Medicina .................................................................................... 19 2.4.5.- Educació ..................................................................................... 20 2.4.6.- Simulació i control a distància .................................................... 23 2.4.7.- Turisme ...................................................................................... 24 2.4.8.- Psicologia ................................................................................... 25 3.- Descripció algorismes emprats ........................................................... 28 3.2.- Mètodes d’anàlisi d’imatge ........................................................... 28 3.2.- Teoria del color ............................................................................. 30 3.2.1.- Color .......................................................................................... 31 3.2.2.- La percepció del color ................................................................ 32 3.2.3.- Models de color ......................................................................... 34 3.2.4.- Espais de colors .......................................................................... 36 3.3.- Algorismes utilitzats ...................................................................... 39 3.3.1.- Algorisme de llindarització ......................................................... 39 3.3.2.- Algorisme de llindarització i votació ........................................... 41 3.3.3.- Algorisme de distàncies .............................................................. 42 3.3.4.- Algorisme de distàncies i votació ............................................... 43 3.3.5.- Algorisme de distàncies i adaptació ........................................... 43 4.- Implementació ................................................................................... 46 4.1.- Idea del programa ......................................................................... 46 4.2.- Característiques del dispositiu ...................................................... 47 4.3.- Estructura de fitxers ...................................................................... 49 4.4.- Art i so ........................................................................................... 51 4.5.- Creació i funcionament del joc ...................................................... 55 Índex Projecte Final de Carrera Pàgina 4 4.5.1.- Primera versió ............................................................................ 55 4.5.2.- Segona versió ............................................................................. 57 4.5.3.- Tercera versió............................................................................. 59 5.- Resultats ............................................................................................. 64 6.- Conclusió i treballs futurs ................................................................... 67 7.- Bibliografia ......................................................................................... 68 Introducció Projecte Final de Carrera Pàgina 5 1.- Introducció 1.1.- Motivació La Realitat Augmentada és una ferramenta que hui en dia està tinguent cada vegada més repercussió en el món laboral. La utilització d’aquesta ferramenta s’està distribuint per la població, tot i que la majoria de la gent no sap què és la Realitat Augmentada, mitjançant l’aparició dels Smartphones. La disponibilitat d’aquestos aparells al públic, que fa que cada vegada més gent tinga un mòbil d’aquestos. La Realitat Augmentada pot servir per a moltes coses: jocs, guies, simuladors, programes televisius, etc. La Realitat Augmentada, a més, és un bona eina per a l’educació. S’ha comprovat que els alumnes assimilen més conceptes davant d’activitats interactives, així com es mostra com un recurs formatiu atractiu de cara al mestre. També ha quedat demostrada la seua utilitat de guia gràcies a aplicacions com Layar, que permet a l’usuari accedir a informació online d’un edifici o zona del món real enfocant amb la seua càmera a la zona en qüestió. Tot i això la Realitat Augmentada continua siguent una ferramenta verge en el sentit de que encara s’ha de fer molta recerca i estudi per tal de millorar-la fins al punt d’arribar a un possible futur on, mitjançant unes ulleres, pugam accedir a contingut augmentat, que pot ser des de descripcions a temps real del que estem mirant fins a interactuar amb teclats o pantalles augmentades. Introducció Projecte Final de Carrera Pàgina 6 1.2.- Objectius Aquest PFC surt desprès d’observar el treball fet per Takumi Yoshida et al. [YOSHIDA10]. En aquest treball, proposaven una interfície revolucionària, anomenada Twinkle, per a la interacció amb una superfície arbitrària utilitzant un projector de mà que tenia acoplat a una càmera i un detector de moviments (a l’estil de la videoconsola Wii) (figura 1). Fig 1: Projecte Twinkle. Quan l’usuari il·lumina amb la llum un objecte, la imatge projectada reacciona com si l’usuari hagués tocat l’objecte amb la llum. El dispositiu de mà reconeix les característiques del medi físic i projecta imatges i sons que son generats en temps real, tenint en compte les accions de l’usuari i la col·lisió de les imatges projectades. En vista d’aquest treball, es planteja recrear aquest experiment però utilitzant l’iPhone com a dispositiu principal. L’objectiu d’aquest projecte és el d’aconseguir una bona metodologia de recepció del color per a la seva utilització en Realitat Augmentada, així com la seua influència de cara als usuaris de la resposta de l’aparell emprat per a Realitat Augmentada. Les llibreries emprades seran creades en la seua totalitat. Per a mostrar la utilitat d’aquestes, es crearà un joc per a l’iPhone on l’usuari portarà un avatar per un laberint. Estat de l’art Projecte Final de Carrera Pàgina 7 2.- Estat de l’art En aquesta secció es descriurà en quin estat actual es troba la Realitat Augmentada, així com un rerefons teòric de què és la Realitat Augmentada. 2.1.- Rerefons teòric Molts sistemes de hui en dia son massa difícils de gastar per culpa de la complexitat de les seues Interfícies d’Usuari (IU), açò és en part donat per la falta de competència que tenen molts enginyers en el disseny d’aquestes i en part degut a que, amb el creixement de poder computacional, sistemes i productes han esdevingut més complexos i contenen més prestacions. Avui en dia, hardware i software estan a l’abast de tot el món i això comporta que el bon disseny d’una IU haja passat a ser un requeriment per a desenvolupar bones aplicacions. En aquest lloc és on entra la Realitat Augmentada. La Realitat Augmentada busca noves formes de desenvolupar noves interfícies humà-computadora. En comptes de mostrar informació en dispositius aïllats, fica les dades on pertanyen: en el mon real. Així doncs, la Realitat Augmentada difumina la distinció entre món real i fictici, permetent noves formes de crear IU. En certs aspectes, la Realitat Augmentada està lligada a la Realitat Virtual. Com a diferències podríem dir que en la Realitat Virtual l’usuari està completament submergit en un entorn virtual, mentre que la Realitat Augmentada deixa veure a l’usuari el que hi ha al seu voltant i augmenta la seva visió que té d’aquest mitjançant la superposició o composició dels objectes tridimensionals virtuals. Estat de l’art Projecte Final de Carrera Pàgina 8 Milgram [MILGRAM94] descriu una taxonomia sobre com es relacionen la Realitat Augmentada i la Realitat Virtual. Es pot observar a la figura 2 la continuïtat Realitat-Virtualitat i com de prop estan les 2 nombrades anteriorment. Fig 2: Continuu de Milgram. Per entendre aquesta taxonomia, cal primer entendre els 2 extrems: el concepte de real i el de virtual. Es considerarà objecte real aquell que té una existència realment objectiva: es pot visualitzar directament o mostrejar i desprès visualitzar mitjançant algun aparell. Un objecte virtual, en canvi, és aquell que existeix en essència però no realment: la seua visualització mai es podrà fer de forma directa. Els altres dos elements que apareixen (Realitat Augmentada i RV) es classifiquen dins de la línia Realitat-Virtualitat contestant bàsicament a la pregunta de: quantes coses son virtuals, o quantes coses estan modelades? Així doncs la Realitat Augmentada conté menys coses modelades que la Realitat Virtual, cosa que té sentit si recordem allò explicat anteriorment sobre les distincions entre ambdós models. Així doncs, podem veure que la major diferència entre una Realitat Augmentada i Realitat Virtual és la immersió d’ambdós sistemes. En un sistema de Realitat Virtual es busca una immersió es total. Açò s’aconsegueix quan el sistema controla totalment certs sentits (visió, so, etc.). En canvi, un sistema de Realitat Augmentada la immersió és parcial, ja que es tracta tant sols de d’imatges virtuals mesclades en la realitat. Ambdós sistemes però, han de donar a l’usuari la sensació d’estar dins d’un entorn virtual. Per tant podríem dir que un dels principals objectius d’aquestos sistemes és el de proporcionar un estímul visual que siga consistent amb els canvis proporcionats per l’usuari. També s’ha de garantir que els objectes virtuals estiguen registrats de forma precisa amb el món real amb totes les seues dimensions, ja que un error durant aquest registre pot impedir que l’usuari no vega fusionats el món real i el virtual. Uns dels problemes típics que pot tindre un sistema d’aquest tipus Estat de l’art Projecte Final de Carrera Pàgina 9 solen ser de caire físic, n’anomenaré un parell: el temps d’actualització renderitzat de l’escena i problemes visuals. El temps d’actualització del renderitzat de l’escena és un dels problemes que apareixen davant de escenes cada vegada més complexes i detallades. L’ull humà considera acceptable la seqüència d’un conjunt d’imatges sempre i quan es tinga una tasa de refresc de 45~60 FPS (frames per second). Una tasa de refresc menor pot portar al trencament de la immersió de l’usuari dins del sistema. En canvi, quan ens referim a problemes visuals ens referim a, per exemple, l’aliasing. Aliasing és l’efecte que causa que senyals continues diferents no es puguen diferenciar quan es mostregen digitalment. Gràficament es pot veure a la figura 3 com es poden crear certs patrons que no existeixen en la realitat si es fa un mal mostreig de la imatge. Aquest patró apareix sobretot en sistemes on s’utilitza projectors per a la immersió (ex. C.A.V.E.). Fig 3: Esquerra: paret real. Dreta: paret amb Aliasing. Així doncs, podríem especificar que la Realitat Augmentada ha de seguir els següents requeriments [HENRYSSON07]: 1. Ha de combinar el món real i el virtual: es pot obtindre al renderitzar gràfics per computador damunt d’una eixida de vídeo. 2. Ha de ser interactiu en temps real: ha de funcionar amb vídeo en temps real i al menys s’ha de refrescar 25 vegades per segon. Estat de l’art Projecte Final de Carrera Pàgina 16 Fig 11: Eye of Judgement. Però també hi ha hagut grans projectes no comercials relacionats amb la Realitat Augmentada i el món dels videojocs. Tenim d’exemple l’ARQuake [THOMAS00] (figura 12), un projecte fet per la University of South Australia on s’havia portat el FPS (first-person-shooter) Quake I a un joc de Realitat Augmentada. El jugador portava ficat un Head-Mounted Display i un ordinador portàtil i anava passejant-se i disparant a monstres virtuals. L’usuari veia el món real a través d’un semi-transparent Head-Mounted Display, i els elements de Quake (armes, enemics, etc) superposats a aquest. Aquest joc també disposava de soport multijugador, com el joc original. Es podia jugar al seu campus, ja que havien fet un mapa de Quake d’aquest. La posició i direcció de l’usuari era determinada mitjançant GPS i un sensor d’orientació. Açò feia que el sistema conegués exactament en quina part del nivell estava el jugador i fer concordancia entre el món real i el de Quake. Estat de l’art Projecte Final de Carrera Pàgina 17 Fig 12: AR – Quake. També, orientat més a la utilització de dispositius mòbils, tenim un parell d’exemples: Cows Vs. Aliens [MULLONI07] i l’AR Tennis [HENRYSSON11]. El joc Cows vs. Aliens (figura 13) és un joc multijugador per a telèfons mòbils on els jugadors es divideixen entre 2 equips que competeixen entre ells. Un nombre de fiducial markers es posicionen en les parets d’una habitació i, quan els usuaris veuen les marques mitjançant la càmera dels seus telèfons mòbils, ells veuen o vaques pastant en la pradera o un estable on estan assegurades. Cada equip té el seu propi estable i l’objectiu d’ambdós equips és el de salvar vaques portant-les al seu estable. L’equip que més vaques haja salvat guanya la partida. Cada vegada que la càmera detecta una marca, es mostra una interfície d’usuari en la pantalla del dispositiu. L’usuari pot, o bé moure una de les vaques des de la seva posició a una altra, o bé ordenar a un OVNI que ataque i mate a totes les vaques d’aquesta zona. Els estables son els únics llocs on les vaques estaran segures de qualsevol atac d’OVNIs. Aquest joc proporciona interacció social ja que els equips son de 2 a 6 jugadors i, gràcies a les dos opcions que ofereix la interfície d’usuari, el joc aconsegueix una certa aproximació estratègica que s’ha d’analitzar entre tots els components del grup. Estat de l’art Projecte Final de Carrera Pàgina 18 Fig 13. Cows Vs Aliens. L’AR Tennis (figura 14) és en canvi un joc senzill. Aquest joc està pensat per a dos jugadors utilitzant també telèfons mòbils. Els jugadors s’assenten en els costats oposats d’una taula que conté fiducial markers. Els seus telèfons mòbils renderitzen una pista de tennis i una pilota de tennis damunt de les marques. Cada jugador aleshores ha de pegar la pilota per tal de fer-la moure entre ells moguent el seu mòbil de forma que “col·lisiona” amb la pilota de tennis virtual. Fig 14: AR Tennis. 2.4.3.- Televisió i cine A la televisió és on podem trobar més aplicacions de la metàfora de l’espillet màgic. Tenim diversos exemples. Estat de l’art Projecte Final de Carrera Pàgina 19 L’home del temps té darrere d’ell una pancarta (usualment de color verd) on es vorà, durant l’emissió, a les televisions el mapa del temps interactiu . També apareix en els esdeveniments esportius, com per exemple alhora de senyalar un fora de joc a un partit de futbol. Al cinema (sobretot en pel·lícules de ciència ficció o fantasia) és normal recrear virtualment paisatges extraordinaris i fins i tot personatges quasi humans (Gollum al Senyor dels Anells, Jar-jar Binks a StarWars, els Navi a Avatar). O també generar per ordinador part dels combatents en una guerra, per tal de no perdre tant de pressupost amb ixa quantitat d’extres i, en canvi, aconseguir efectes visualment espectaculars (les guerres del Senyor dels Anells). Es poden observar exemples d’aquestes aplicacions a la figura 15. Fig 15: D’esquerra a dreta i de dalt cap a baix: la dona del temps, fora de joc al partit de futbol i exemple de captura de moviment per a Avatar. 2.4.4.- Medicina A la medicina és un dels camps on es pot fer grans avanços gràcies a quest tipus de tecnologia. Tenim per exemple el cas d’un programa per a l’ajuda en una operació cardiovascular mitjançant Realitat Augmentada [BAUERSCHMITT05] (imatge 16) així com poder veure mitjançant ultrasons una reconstrucció del fetus i superposar-la a l’abdomen de la seua mare [STATE94]. Estat de l’art Projecte Final de Carrera Pàgina 20 Fig 16: Operació cardiovascular mitjançant Realitat Augmentada. 2.4.5.- Educació La educació és una de les àrees on s’està innovant gràcies a aquesta tecnologia. El que s’intenta aconseguir utilitzant la Realitat Augmentada en l’educació és aconseguir un aprenentatge estimulant des del punt de vista pedagògic. D’aquesta forma, l’estudiant aconsegueix aprendre i memoritzar més ràpidament els continguts. Tenim d’exemple dels llibres interactius com el Magic Book [BILLINGHURST01] on al anar passant les fulles es poden observar distints models tridimensionals, com si pertanyeren a les fulles del llibre. Però no tot son llibres, tenim ferramentes per a pintar com el I/O Brush [RYOKAI04] o el KidsRoom [BOBICK99], una habitació on s’executa un joc que es val de la percepció, la interacció i la narració. Ambdós projectes es poden observar a la figura 17. Fig 17: Esquerra: Magic Book. Dreta: KidsRoom Estat de l’art Projecte Final de Carrera Pàgina 21 A la Universitat Politècnica de València s’ha treballat molt en aquest àmbit de la Realitat Augmentada. Tenim molts exemples, entre els quals estan el sistema per a aprendre les parts del cos humà (figura 18) [JUAN08a], utilitzant una espècie de tela per tal de recrear la situació d’obrir un cos, o un contacontes utilitzant cubs físics, concretament, conta la història del Rei Lleó (figura 18) [JUAN08b]. Fig 18: Esquerra: Programa aprenentatge parts del cos humà. Dreta: Contacontes. Un altre sistema per aprendre sobre els animals en perill d’extinció on el jugador tenia acoplar els cubs magnètics per tal de mostrar les figures dels animals [JUAN10b]. Per fer l’estudi es desenvolupà un joc utilitzant cubs físics com a interfície d’usuari (figura 19). Fig 19: Joc de fer parelles utilitzant cubs. En un altre, els xiquets aprenen a lletrejar (figura 20) [JUAN10c] Estat de l’art Projecte Final de Carrera Pàgina 22 Fig 20: Joc de lletreig. També s’ha utilitzat la Realitat Augmentada per tal de recrear el joc de buscar les parelles (figura 21) [JUAN11c] on també s’intentava fer que els xiquets aprengueren sobre els animals en perill d’extinció. Fig 21: Buscar parelles. Finalment, la Universitat Politècnica també ha fet projectes d’ensenyament utilitzant dispositius portàtils com poden ser els telèfons mòbils. Per exemple van fer un joc anomenat ARGreenet mitjançant el qual els xiquets milloraren la seua predisposició a reciclar elements (figura 22) [JUAN11d]. Es comprovà que, després de jugar al joc, als xiquets els importava més el tema del reciclatge. Estat de l’art Projecte Final de Carrera Pàgina 23 Fig 22: ARGreenet. Dins d’aquest àmbit també està el projecte Aprendra [APRENDRA11] (figura 23), un projecte coordinat entre el grup de Gràfics i Multimèdia de l’AI2 (Universitat Politècnica de València), l’AIJU (Institut Tecnològic del joguet d’Ibi, Alacant) i lEscola d’Estiu (UPV). Aquest projecte es val, utilitzant la tecnologia de l’iPhone, per a crear jocs de Realitat Augmentada on el xiquet aprendrà coses. Al primer any es creà un joc amb el tema d’animals/aliments/monuments del món. Paral·lelament, el xiquet disposaria del mateix joc en formato tradicional (fitxes i tauler). Fig 23: Aprendra 2.4.6.- Simulació i control a distància La simulació és un procés molt important en aquelles àrees on un error pot superar la gran pèrdua de bens materials o vides humanes. Un dels processos més coneguts de simulació és el dels pilots d’avions (figura 24). Molt a sovint els aspirants practiquen durant setmanes en una recreació de la cabina de vol i seguint una sèrie Estat de l’art Projecte Final de Carrera Pàgina 24 d’exercicis sobre situacions potencialment perilloses a controlar, sense posar res en risc. Fig 24: Cabina de simulació de vol. També amb control a distancia ens veiem amb casos on l’usuari es fica el casc de Realitat Augmentada per tal de controlar algun robot. En aquest cas ens trobem amb casos com: robots detectors de mines anti-persona, robots escombraires per a missions espacials [NASA11] i robots per a buscar gent entre les ruïnes d’algun desastre natural [SHIGEO06]. Els 2 últims exemples es poden observar a la figura 25. Fig 25: Esquerra: Robot escombraire espacial. Dreta: Snake, robot per a buscar gent en desastre natural. 2.4.7.- Turisme També en l’àmbit del turisme ens trobem amb l’aparició de la Realitat Augmentada. En aquest àmbit, ens trobem que els dispositius de mà es converteixen Estat de l’art Projecte Final de Carrera Pàgina 25 en guies. Tenim per exemple el cas de la Realitat Augmentada per a museus [BRUNS07] (figura 26) on el seu sistema reconeixia primer on estava el dispositiu i desprès quin tipus de figura estava enfocant amb el dispositiu mòbil. Açò es feia per tal de reduir el nombre de mostres amb que comparar la imatge i, així, el temps de còmput que es necessitaria per tal de reconèixer-la. Fig 26: Sistema de guia per a museus 2.4.8.- Psicologia Hi ha moltes malalties psicològiques que es poden tractar mitjançant la Realitat Augmentada. Problemes tals com l’acrofòbia, l’agorafòbia o aracnofòbia es poden tractar mitjançant aquestes tècniques. Al treball de M. C. Juan [JUAN05] sobre el tractament de fòbies a aranyes i panderoles, s’enumeren una sèrie de estaments pels quals la Realitat Augmentada, en certs casos, és una millor eina que les ferramentes habituals en aquest tipus de tractament. A continuació enumerem algunes: - Els elements no poden fer mal al pacient, per tant no suposen un perill real per a aquest. - En Realitat Augmentada o Virtual els elements virtuals poden aparèixer a la voluntat del terapeuta. Descripció Projecte Final de Carrera Pàgina 32 A la figura 32 es pot observar com varia la percepció del color al variar aquestos paràmetres: Fig 32: To, lluentor i saturació. 3.2.2.- La percepció del color Desprès de fer una definició del color, cal saber també com percebem el color i, per tant, l’ull humà i la seva germànica manufacturada, la càmera. L’ull es un òrgan que detecta la llum i és la base del sentit de la vista. Es composa d’un sistema sensibles als canvis de llum, capaç de transformar aquestos en impulsos elèctrics. L’ull està proveït d’una lent anomenada cristalí que es pot ajustar segons la distància, un diafragma anomenat pupila el diàmetre del qual està regulat per l’iris i un teixit sensible a la llum que és la retina (figura 33): Fig 33: Esquema de l’ull humà. Descripció Projecte Final de Carrera Pàgina 33 La llum penetra a través de la pupila, es fa camí pel cristalí i es projecta en la retina, on es transforma, gràcies a unes cèl·lules anomenades fotorreceptors (separats en cons i bastons), en impulsos nerviosos que són traslladats pel nervi òptic al cervell. Per a que els rajos de llum que penetren l’ull es puguen enfocar en la retina, es deuen refractar. La quantitat de refracció requerida depèn de la distància de l’objecte a l’observador. Un objecte distant requerirà menys refracció que un més proper. La major part de la refracció ocorre en la còrnea, que té una corvatura fixa. Altra part de la refracció es fa en el cristalí. Aquest últim pot canviar de forma, augmentat o disminuint la seua capacitat de refracció. El cervells, mitjançant un procés que encara no ha sigut desxifrat, ens proporciona amb aquestos impulsos nerviosos informació sobre delimitació d’objectes o la sensació d’espai. Tot i això, hi ha vegades que ens juga males passades i ens “fa veure” coses que en realitat no són, anomenades il·lusions òptiques. Aquestes il·lusions ens poden fer reconèixer figures on no hi ha o colors que no són. A la figura 34 es pot observar un exemple d’aquest últim: Fig 34: Il·lusió òptica de color. En aquest exemple, a primera vista pot parèixer que la llosa B es un gris blanquinós mentre la A és d’un gris obscur, quan en realitat son el mateix valor de l’escala de grisos. Aquest problema és degut a que el nostre cervell intenta donar una explicació a la imatge, en aquest cas que la sombra del cilindre està incidint sobre el tauler, i fa una extrapolació dels colors que es veuen afectats per ella. Les càmeres però, al analitzar aquesta imatge veurien que tant A com B son del mateix color. Descripció Projecte Final de Carrera Pàgina 34 L’estructura de la càmera està dissenyada tenint en compte el model humà de l’ull. Com es pot veure a la figura 35, hi ha diverses parts que són clarament un reflex del nostre aparell visual: enfoque-iris, pupila lents, etc. Tot i ser un esquema d’una càmera antiga, les càmeres digitals de hui en dia no es diferencien molt d’aquest model. La diferència més remarcable entre els dos models és que la de hui en dia no gasta un carret i utilitza una matriu de fotorreceptors de color roig, verd i blau. Desprès aquesta matriu es processa i es guarda en memòria. Fig 35: Esquema de l’ull humà. La càmera no té el problema que tenim els humans d’il·lusió òptica, ja que no té un cervell que ho processe, però en té d’altres com l’aliasing (explicat al punt anterior) o d’adaptació a la llum de l’entorn. 3.2.3.- Models de color Explicat el que coneguem com a color i com el rebem, cal conèixer els distints models de color que ens podem trobar hui en dia. El primer model del qual parlarem és el model RYB (figura 36), un model on es planteja que el roig, groc i blau son els colors primaris, i en teoria, la resta de colors purs poden ser creats mesclant aquestos tres. Molta gent aprèn algo sobre el color en els estudis d’educació primària, mesclant pintura o llapis de colors amb aquestos colors primaris. Descripció Projecte Final de Carrera Pàgina 35 Fig 36: Cercle cromàtic RYB. Aquest model és utilitzat principalment en conceptes d’art i pintura tradicionals, en poques ocasions es gasta fora de la mescla pigments de pintura. Tot i això, el model RYB no representa en precisió els colors que deurien resultar al mesclar els 3 colors primaris. El 2010 es reconegué mitjançant ciència que aquest model és incorrecte, però continua siguent utilitzat habitualment. Un altre model és el conegut com a RGB (Figura 37). Aquest model utilitza la mescla de colors llum, normalment roig, verd i blau. Tots els colors possibles poden que poden ser creats per la mescla d’aquestes tres llums de color son coneguts com a l’espectre de color d’eixa llum en concret. Quan ningun color està present, el color resultant és el negre (i a l’inversa per al blanc). Els colors llum tenen aplicació en monitors, televisors, projectors i tots aquells sistemes que utilitzen combinacions de materials que fosforeixen en colors roig, verd i blau. Fig 37: Model RGB. Per a impressió, els colors utilitzats son el cian, magenta i groc. El model format per aquestos tres colors s’anomena CMY (figura 38). En el model CMY, el negre es crea Descripció Projecte Final de Carrera Pàgina 36 a partir de la mescla de tots els colors i el blanc és l’absència de color. Com la mescla dels colors es substractiva, aquest model també és conegut com a model de color substractiu. Fig 38: Model CMY. Una mescla de cian, magenta i groc en realitat dóna com a resultat un color negre tèrbol, raó per la qual normalment s’utilitza tinta negra. Quan el negre es fica a banda, aquest model passa a anomenar-se model CMYK. Recentment s’ha demostrat que el model de color CMYK és també més precís per a les mescles de pigment. 3.2.4.- Espais de colors Un espai de color defineix un model de composició del color. Per regla general, un espai de color el defineix una base de N vectors (per exemple, tant RGB com CMY el formen 3 vectors, que son els colors primaris) , la combinació lineal dels quals generat tot l’espai de color. Els espais de color més generals intenten englobar la major quantitat possibles dels colors visibles per l’ull humà, encara que hi han espais de color que intenten aïllar tant sols un subconjunt d’estos. Existeixen espais de color de: - Una dimensió: escala de grisos. - Dos dimensions: subespai rg, subespai gb, etc. - Tres dimensions: espais RGB, HSV, YCbCr, YUV, etc. - Quatre dimensions: espai CMYK. Dels quals els espais de tres dimensions són els més divulgats i utilitzats. Aleshores, un color es pot especificar utilitzant tres coordinades o atributs, que Descripció Projecte Final de Carrera Pàgina 37 representen la seua possició dins d’un espai de color específic. Aquestes coordinades no ens diuen quin serà el color, sino que mostren on es troba el color dins d’un espai de color en particular. Així doncs, definit el que és un espai de color , procedirem a enunciar alguns d’aquestos. L’espai RGB (figura 39) és conegut com un espai de color additiu perquè quan la llum de dos diferents freqüències viatja junta, des del punt de vista del observador, aquestos colors son sumats per a crear nous tipus de colors. Els color roig, verd i blau foren escollits perquè cada un d’ells es correspon aproximadament amb un dels tres tipus de cons sensitius al color en l’ull humà (65% sensibles al roig, 33% al verd i 2% al blau). Amb la combinació apropiada de roig, verd i blau es poden reproduir molts colors que poden percebre els humans. Existeix també l’espai derivat RGBA, que incorpora el canal alfa (transparència) a l’espai RGB original. Aquest espai serà utilitzat en el nostre projecte. Fig 39: Espai RGB. Un altre espai utilitzat és el CMYK (figura 40). En aquest espai els colors que es veuen son la part de la llum que no és absorbida. En CMY, el negre generat per la mescla de colors primaris substractius no és tan dens com el color negre pur. És aquesta raó per la qual al CMY original se li suma un canal clau, que normalment és el negre, per a formar l’espai CMYK. Actualment les impressores de quatre colors utilitzen un cartutx de color negre a més dels colors primaris d’aquest espai. Tot i això el color que una persona veu en una pantalla de computador és distint del mateix color en una impressora. Açò és degut a que els models RGB i CMY son molt distints. El color en RGB està fet per la reflexió o emissió de llum, mentre que el CMY mitjançant l’absorció d’aquesta. Descripció Projecte Final de Carrera Pàgina 38 Fig 40: Espai CMYK. Finalment tenim com a exemple l’espai HSV (figura 41) o Hue-Saturation-Value. Aquest és un espai cilíndric, però normalment associat a un con o con hexagonal, degut a que és un subconjunt visible de l’espai original amb valors vàlids de RGB. Fig 41: Espai HSV. Aquest espai té 3 factors, que conformen l’espai tridimensional, a conèixer: - Matís (Hue): es refereix a la freqüència dominant del color dins de l’espectre visible. És la percepció d’un tipus de color, normalment la que ú pot distingir en un arc de Sant Martí, es a dir, és la sensació humana d’acord amb la qual una àrea pareix similar a una altra o quan existeix un tipus d’ona dominant. Incrementa el seu valor mentres en moguem de forma antihoraria en el con, amb el roig en l’angle 0. - Saturació (Saturation): es refereix a la quantitat del color o la puresa d’aquest. Va d’un color clar a un més viu (roig clar – roig obscur). També es pot considerar com la mescla d’un color amb una escala de grisos. - Valor (Value): és la intensitat de llum d’un color. Dit d’altra forma, és la quantitat de blanc o negre que posseeix un color. Descripció Projecte Final de Carrera Pàgina 39 Els espais RGB i CMYK son espais fàcils d’entendre però que no s’acosten massa a la realitat alhora d’abarcar la gama de colors. L’espai HSV, en canvi, s’aproxima més a la realitat i és utilitzat per a detecció de colors en distints àmbits per la seua fiabilitat. 3.3.- Algorismes utilitzats Els algorismes presentats a continuació estan pensats per a la seua utilització dins d’un espai RGB o RGBA. Al principi es pensà en fer una conversió de l’espai CMYK al RGB ja que els elements que s’anaven a analitzar estaven posicionats damunt d’una cartolina. Finalment, es desestimà ja que les dades obtingudes no aportaven res nou al sistema i per la càrrega que suposava per al programa la transformació entre aquestos dos espais. 3.3.1.- Algorisme de llindarització Per a fer un detector de colors, la primera cosa que es pensa és com filtrar els distints colors. Una forma bastant senzilla de fer açò és mitjançant la llindarització (Threshold). La llindarització és una tècnica de segmentació on pixels individuals son marcats com a pixels “objecte” si el seu valor és major que algun valor llindar. Desprès podem obtindre una matriu binaria, els pixels que han passat aquest llindar i el que no (exemple figura 42). Aquesta ferramenta ha estat molt utilitzada en processament de senyals i d’imatge. Al estar treballant en un espai tridimensional com el RGBA, necessitarem 3 llindars per a cada color a analitzar. Descripció Projecte Final de Carrera Pàgina 40 Fig 42: Exemple de llindarització, fotos de Wikipedia. D’aquesta forma podem tindre, que per a certs rangs de valors (per a certs colors) el programa actua d’una forma i, per a altres, d’altra forma. Algorisme 1 – Llindarització. Siga C.. pixel color entrada Si C> valor1 Assignem element1 Si C > valor1 i<valor2 Assignem element2 .. .. Guardar en Matriu de col·lisions Fi Descripció Projecte Final de Carrera Pàgina 41 Aquest sistema dóna problemes alhora d’incorporar nous colors a analitzar degut a la gran quantitat de dependències que s’haurien de tocar en els llindars ja programats. També dona problemes quan, degut a la llum incident, el sistema reconeix un color fictici. 3.3.2.- Algorisme de llindarització i votació En la millora que aplicàrem a l’anterior algorisme, incorporàrem un sistema de votació per tal d’intentar corregir i fer més robust, els canvis de colors que erròniament podria contindre un pixel. Aquest sistema funciona de la següent forma: primer fem una llindarització mitjançant la qual es farà un primer balanç del tipus de elements que estem tractant i ho guardem en una matriu auxiliar; desprès procedirem al sistema de votació i guardarem el més votat en la matriu final. El sistema de votació ha sigut implementat de forma que es tenen en compte els elements de la matriu que estan a les posicions x,y c[i-1,i+1] (en el cas de veïnitat 3x3) o x,y c[i-2,i+2] (per al cas de 5x5) on i és el pixel que està sent votat en estos moments. Per a evitar errors de rang dins de la matriu, s’optà per ignorar aquelles files i columnes de la matriu que podrien donar problemes, ficant directament a la matriu final els valors corresponents de la matriu auxiliar. Implementació Projecte Final de Carrera Pàgina 48 L’iPhone és probablement la plataforma mòbil més utilitzada per desenvolupadors de programari gràcies a certes facilitats implementades per Apple, com per exemple la AppStore. Aquest telèfon mòbil ha sigut precursor de tota una generació de tecnologia, coneguda com Smartphone, i ja en el seu inici portava quasi tots els elements necessaris per a un mòbil d’aquesta generació: - Pantalla multi-tàctil: la pantalla multi-tàctil de l’iPhone es la principal forma que té l’usuari per tal d’interactuar amb el telèfon, ja que el dispositiu té realment pocs botons físics. Per exemple, l’usuari pot apretar damunt d’icones en la pantalla per tal de sel·leccionar-les, fer zoom ficant 2 dits sobre ella i obrint-los o tancant-los, etc. La pantalla multi-tàctil fa possible dissenyar gestures de dits específiques que poden ser utilitzades per a interactuar amb l’aplicació. Algunes possibilitats inclouen: moure objectes virtuals en l’escena apretant sobre ells i desplaçant-los, fer més gran o xicotet un objecte o dibuixar símbols en la pantalla per tal de disparar accions específiques. - Acceleròmetres: l’iPhone conté un acceleròmetre que pot detectar moviment en els eixos x, y i z. Es gasta majorment per a detectar quan l’usuari gira el mòbil (per a que la pantalla gire apropiadament). A més, molts videojocs l’utilitzen per a control de moviments dels objectes en el joc. Per exemple, en un joc l’usuari guia una pilota a través d’un laberint inclinant el telèfon i en un altre el jugador controla un cotxe de competició girant el mòbil cap a l’esquerra o cap a la dreta. Bastants aplicacions de dibuix permeten a l’usuari sacsar el mòbil per tal de netejar la pantalla o desfer la última acció. Aquest sensor té unes quantes aplicacions per a Realitat Augmentada. Pot connectar diferents modes de joc depenent d’on apunta el telèfon: per exemple quan l’usuari apunta amb l’iPhone cap al terra, el joc es podria ficar en pausa i ficar-se altra vegada en marxa una vegada es ficara dret. També pot determinar la direcció de la gravetat, per tal d’alinear objectes tridimensionals amb el terra. Finalment, pot ser utilitzat per a disparar accions específiques quan l’usuari mou l’iPhone d’una forma predeterminada, fent que l’usuari puga interactuar amb el joc sense tindre que estar mirant a la pantalla. - GPS: com molts altre telèfons mòbils, l’iPhone té incorporat un sensor GPS. Açò pot ser utilitzat per calcular la distància entre dos jugadors, mostrar la Implementació Projecte Final de Carrera Pàgina 49 posició dels jugadors dins d’un mapa o notificar a l’usuari o disparar alguna acció quan l’usuari entra o ix d’una certa àrea. - Sensor de llum: el sensor de llum de l’iPhone s’utilitza principalment per a ajustar la intensitat de llum de la pantalla en relació a la intensitat de llum que hi ha al medi de l’usuari. Tot i això, en aplicacions de Realitat Augmentada, pot ser utilitzada per tal de fer més realista la lluminositat de l’escena 3D. - Sensor proximitat: el sensor de proximitat es gasta per tal d’apagar la pantalla de l’iPhone quan l’usuari contesta una trucada o quan sosté el telèfon prop de la seua orella, per tal de no malgastar la vida de la bateria i evitar que l’usuari toque accidentalment algun botó de la pantalla amb la seua orella. Aquest sensor no es sol gastar per altra cosa que per a açò. Només hi ha una aplicació a l’AppStore que ho gasta. L’aplicació és un joc de cartes que utilitza el sensor de proximitat per tal de “màgicament” canviar la carta de la pantalla quan l’usuari té la mà prop del sensor. Aquest sensor no seria massa bo utilitzar-lo per a Realitat Augmentada, ja que és molt fàcil tapar el sensor per accident, sobretot si l’usuari manté l’iPhone horitzontalment. Amb aquestes característiques es poden fer multitud d’aplicacions de Realitat Augmentada i, el que és més important, fer aplicacions de Realitat Augmentada orientades a les necessitats dels usuaris. Tot i això, aquest dispositiu també té algunes característiques que, tot i acceptar-les, no son massa benvingudes dins de la comunitat de desenvolupadors. Seguint la filosofia d’Apple, el sistema està protegit i només es pot programar amb utilitzant les llibreries facilitades per l’empresa. Llibreries que moltes vegades, tot i ser abundants i ben documentades, no serveixen per als propòsits del desenvolupador i no es poden optimitzar per a l’ús de l’aplicació. L’iPhone utilitzat per a aquest projecte ha sigut el denominat iPhone 3G. 4.3.- Estructura de fitxers El joc ha estat estructurat de la següent forma (figura 43): Implementació Projecte Final de Carrera Pàgina 50 Fig 43: Organització dels fitxers del programa. El programa en si controla la part gràfica i sonora i relega a una llibreria pròpia. Quan indiquem “Dibuix de RA” ens referim a l’objecte de Realitat Augmentada que es vorà en la pantalla del dispositiu, que serà una imatge bidimensional. La llibreria de detecció de color, a la qual se li passa l’eixida de la càmera, conté tots els algorismes de detecció així com el postprocés. Aquesta llibreria conté també informació sobre la posició de la gota i aplica a aquesta els desplaçaments necessaris per tal de simular la col·lisió d’aquesta en l’entorn. La llibreria AVFoundation, que explicarem a continuació, creada per Apple, s’encarrega de gestionar la càmera i l’audio, deixant al programa principal la feina d’indicar on es guardaran els valors de so i el buffer de la càmera i poc més. L’aparició recent de la llibreria AVFoundation [Apple10] a l’iOS (organització del framework figura 44) ha sigut una millora molt gran, ja que abans la càmera, la pantalla, el micròfon i l’àudio de l’iPhone estaven separats en distintes i confuses llibreries, siguent el procés de mostrar per pantalla la eixida de la càmera un dels més confusos. Fig 44: Estructura Framework AVFoundation. Programa principal AVFoundation Càmera Audio Dibuix de RA Llibreria detecció color Algoritmes de detecció Implementació Projecte Final de Carrera Pàgina 51 Al principi, per a accedir a la càmera de l’iPhone, s’havia d’utilitzar directament la llibreria UIKit. Aquesta llibreria no deixava directament el accedir a les dades del buffer de la càmera, ja que la seua utilitat era per a la implementació de programes que no els tractaren (guardar fotos, guardar vídeos gravats per el mòbil, etc.). No passà molt de temps quan els desenvolupadors de programari van voler accedir a aquestes dades. Aleshores, per tal d’accedir a les dades del buffer, els desenvolupadors tenien que copiar cada frame del buffer en una estructura diferent, mitjançant la qual podrien més avant llegir les dades. Tot i semblar senzill, per a accedir a un pixel s’havia de copiar cada frame en cada iteració, cosa que provocava una gran càrrega sobre el processador de l’iPhone (cal recordar que el còmput d’un mòbil és molt inferior al d’un ordinador). Desprès d’un temps de queixes diverses, Apple desenvolupà, per a l’iOS 4.0 (versió 4 del sistema operatiu de l’iPhone), que va eixir junt a l’iPhone 4, un framework que unia tot el que tenia que veure amb el media i simplificava el seu ús. L’AVFoundation uneix, en un mateix framework, les ferramentes necessàries per a poder utilitzar micròfon, càmera (davantera i darrera del dispositiu), àudio, imatge i vídeo de l’iPhone. Així doncs, mitjançant poques línies es pot programar la càmera i aconseguir les dades que es necessiten per a anàlisi o modificació d’imatge, mostrar el vídeo per la pantalla del dispositiu o crear desde el mateix mòbil un streaming de la càmera. A més, té incorporada codecs i tipus de dades per tal de facilitar l’obtenció d’un o altre. Així doncs ens trobem per exemple codecs de mp4 per a comprimir automàticament la imatge gravada, mp3 i acc per a música o jpg, png i bmp per a imatge. També, alhora d’agafar la imatge, podem elegir de quina forma volem agafar les dades: si en RGB, o en HSV o YCrCb, per donar exemples. 4.4.- Art i so Tot i ser un projecte modest, s’ha dedicat temps i esforç per tal de recrear de forma simpàtica la temàtica elegida, per la possibilitat de ser utilitzada per xiquets. Abans que res, calia fer l’escenari. S’optà per utilitzar cartolina i muntar un escenari on no es notaren els traços del llapis i que fundamentalment estigués delimitat pel color dels objectes. L’usuari tenia que portar la gota des del naixement del riu fins a l’eixida de la mar, així que calia escenificar allò que forma part en aquest procés. Implementació Projecte Final de Carrera Pàgina 52 Es poden identificar 5 elements que es necessiten representar d’alguna forma: naixement del riu, el curs del riu, l’eixida del riu al mar, les muntanyes i el prat que estan al costat del riu. Per a representar el naixement del riu s’ha pensat en la simbologia de la neu. La neu de les muntanyes, al escalfar-se, passen a estat líquid i en molts rius açò és el naixement. El curs del riu s’ha volgut representar en un color blau clar. El color blau ha estat relacionat històricament amb l’aigua i el cel, aixina que el color es va decidir quasi instantàneament. Per a la mar s’optà per dibuixar una espècie d’illa tropical. Tots els xiquets associen que les illes estan al mar degut als dibuixos animats i a la televisió. Per tal de fer-la més atractiva i reconeixible visualment, se li ha donat la forma d’una palmera. El color emprat per a l’illa ha sigut el groc, símbol de sol i arena, 2 característiques bàsiques de la platja i, per extensió, del mar. El prat ha estat representat pel color verd i s’ha decidit que el riu només delimitaria directament pel prat. Té sentit en la temàtica, ja que al costat de l’aigua dolça solen sortir plantes en abundància. Finalment les muntanyes han sigut dissenyades amb el color marró i rodejades pel prat. S’han creat 2 prototips amb una grandària de cartolina A4 utilitzant aquestes decisions de disseny, el resultat es pot veure a la a continuació (figures 45 i 46): Fig 45: Laberint complex. Implementació Projecte Final de Carrera Pàgina 53 Fig 46: Laberint simple. Es pot comprovar a les imatges dels escenaris que s’ha creat un escenari simple i un altre més complex. Aquesta decisió va ser presa per a vore, davant de distints tipus de trajectòries, com reaccionava el programa. A més, finalment s’utilitzava el simple per a testeig i el complex es quedà com a mostra d’art del tipus de laberints que es tenia en ment plasmar en una fulla A2. A continuació es podrà vore una taula amb el valor en RGB dels colors emprats en els escenaris: Color R G B Blanc 255 255 255 Blau 60 160 255 Verd 50 200 50 Marró 60 30 0 Groc 40 180 200 Taula 1: Codi RGB dels colors emprats al projecte. Dins de l’àmbit gràfic, també cal parlar de l’avatar emprat. El dibuix 2D utilitzat per a representar a la gota que ha de viatjar a través del laberint ha estat dissenyat per els dissenyadors gràfics d’Aprendra (figura 47). La gota proveïda era de color blau clar i humanitzada (amb braços, cames i cara). Després de incloure-la al joc, es va decidir fer algun canvi visual en ella quan ensopegava amb les parets o creuava zones de terra (prat o montanya). Així doncs, es va fer la versió roja de la gota. El emprar el color roig no va ser una elecció arbitrària. El color roig fa simbologia a perill, i aquest és un símbol que reconeixen els xiquets des de ben petits. Implementació Projecte Final de Carrera Pàgina 54 Fig 47: Les 2 imatges de gotes utilitzats al programa. Per últim, cal parlar de l’àudio. En aquest àmbit, al no estar proveït d’arxius de so fets per Aprendra, s’ha procedit a buscar possibles sons per la web. Pàgines com MidiDatabase [MIDI11], Grsites [GRSITES11] o PacDV [PACDV11] han sigut de gran ajuda gràcies a les seves bases de dades d’arxius midi i d’efectes sonors. S’ha pensat en utilitzar efectes sonors per a les accions que l’usuari pot controlar (i que explicarem al següent punt): inici del joc, col·lisió, reaparició i final del joc. Durant l’execució del joc s’escoltarà una cançó midi de fons. Els àudios emprats son els següents: Moment del joc Àudio emprat Raó Inici del joc Arpeig d’un arpa Té una sonoritat agradable i és pareguda a altres sons utilitzats als jocs quan es descobreix alguna cosa. Durant el joc Tema principal del joc Mortal Kombat S’ha optat per buscar alguna cançó de videojocs a falta de trobar alguna cançó simple que no distraguera a l’usuari i alhora el ficara atent a la pantalla. Aquesta cançó a més aporta una certa tensió a qui l’escolta, cosa que afavoreix l’experiència de joc. Col·lisió So “Duh” emprat per Homer als Simpsons Ha estat elegit degut a la sonoritat forta que té. Per a les col·lisions era necessari un soroll fort, curt i intens Implementació Projecte Final de Carrera Pàgina 55 que fera a l’usuari reaccionar a les ensopegades de la gota. Reaparició Soroll causat per un fantasma En un moment del joc es pot resetejar la imatge al centre de la pantalla. Per raons de disseny primari del joc, s’ha deixat el soroll del fantasma. Final del joc Colp d’un gong Per tal d’acabar amb la partida, calia un so curt i intens que donara per acabat el joc. El gong ha sigut moltes vegades utilitzat en peces musicals com a element per acabar amb la música per la seua potència. Taula 2: Sons utilitzats al joc. Tot i que els sons poden ser canviats en qualsevol moment, aquestos han sigut els elegits fins a l’última versió del programa. A continuació parlarem sobre el funcionament del joc i les distintes versions dissenyades. 4.5.- Creació i funcionament del joc El joc en si ha tingut diverses etapes de creació i, en elles, diversos dissenys analitzats. En aquesta secció doncs, farem un repàs a les distintes versions creades fins al producte final. 4.5.1.- Primera versió La primera versió del programa tenia una estructura de control com la següent: Implementació Projecte Final de Carrera Pàgina 56 Fig. 48: Diagrama d’estats versió 1. Com es pot observar a la figura 48, aquesta versió va ser la més bàsica, ja que no tenia ningun sistema de reconeixement d’inici ni final de joc. Tot i fer certs canvis, en totes les versions fetes el bucle intern del joc seguia els mateixos processos: Fig 49: Diagrama d’estats del bucle del joc El bucle del joc, com es pot vore a la figura 49 era, i és, molt simple. El buffer de la càmera ens suministra un frame, que es passa a l’algorisme d’anàlisi implementat i explicat a l’apartat 3 d’aquesta memòria. Finalment, la matriu de col·lisions obtesa és processada per controlador que dona les ordres necessàries depenent dels valors obtesos en l’anomenada matriu. L’estructura del bucle del joc es vorà inalterable en les versions del joc, canviant i optimitzant codi de les diferents fases que el composen. En aquesta versió del programa es caracteritzava per analitzar en cada bucle tot el frame del buffer de la càmera i crear matrius de col·lisions tan grans com el frame. Els algorismes utilitzats foren els 2 primers que hem explicat al punt anterior el de llindarització i el de llindarització més votació. Com a decisions de control només teníem en compte les col·lisions amb el verd i el marró (utilitzant un algorisme de desplaçament que explicarem més avant). Gràficament aquest sistema era pobre. A la pantalla només es mostrava la figura d’un quadrat de color blau clar, les dimensions del qual estaven ficades a mà. Següent frame RAW Data Matriu de col·lisions Captura dades càmera Algorisme anàlisi Decisions de control Inici programa Bucle Joc Polsem new game Implementació Projecte Final de Carrera Pàgina 57 Aquest sistema contenia bastants errors que es depuraren per a les següents versions: el quadrat pareixia que no estaguera centrat en les nostres coordenades de la matriu de col·lisió i poca velocitat alhora de processar l’algorisme de votació degut al cost computacional del sistema de votació. Tinguent en compte aquestos dos problemes, es crea la segona versió del sistema. 4.5.2.- Segona versió Aquesta segona versió es caracteritzava per solucionar els problemes de l’anterior versió i, a més, incorporar noves decisions de control. El problema de la centralització del quadrat es va solucionar fent un relació buffer-pantalla del dispositiu. Calia saber quants pixels de càmera corresponien amb quants pixels de la pantalla. S’agafaren els valors de fàbrica d’ambdós components i s’aplicà la següent formula: Algorisme 6 - Càlcul de coordenades de pantalla respecte a les del buffer de la càmera. Aquestes dos línies de càlcul ens permeten mantindre una relació entre les coordenades emprades per la càmera i les emprades per la pantalla del mòbil. Com es pot observar, treballem amb dos tipus de coordenades: les coordenades del buffer i les de la pantalla. Aquestes coordenades, que son el punt central del quadrat dibuixat a la pantalla, son les que es desplacen a l’apartat les decisions de control i, per a que el control de l’avatar siga precís, cal que siguen acurades. Així doncs, utilitzant aquestes equacions podem treballar solament amb les coordenades de la càmera que, al cap i a la fi, son les que tenen tot el procés de col·lisions. Per a solucionar el problema de velocitat de còmput es va fer una nova decisió de disseny. En l’anterior versió, agafàvem tot el buffer de la càmera i creàvem matrius de col·lisió del mateix tamany que aquest. Per tal de reduir dràsticament aquest nombre de càlculs, es decideix només analitzar aquells pixels que queden dins del Xscreen = ScreenWidth -((CoordXBuffer / BufferHeight)*ScreenWidth) Yscreen = ((CoordYBuffer / BufferWidth)*ScreenHeight) Resultats Projecte Final de Carrera Pàgina 64 5.- Resultats En aquesta secció s’analitza el temps de resposta i el % d’error del programa que hem aconseguit en l’elaboració d’algorismes més optims al projecte, tenint en compte la llum a la que ha estat exposat. Per a calcular el temps de resposta, s’ha incorporat a la implementació ferramentes per a calcular el temps. Aquestes ferramentes bàsicament calculaven el temps de resposta mitjà entre distints frames. A partir d’aquestes dades es pot traure fàcilment els frames per segon que ens proveeix cada un dels algorismes. Les dades aconseguides han sigut les següents per a cada tipus d’algorisme (taula 3): Algorisme Temps mitjà de resposta Frames per Second Llindarització 13.66 ms 73.2 Fps Llindarització més votació 17.15 ms 58.3 Fps Distàncies 13.26 ms 75.4 Fps Distàncies més votació 16.63 ms 60.1 Fps Distàncies i adaptació 15.31 ms 65.3 Fps Taula 3: Temps de resposta dels algorismes implementats. Com es pot observar a la taula, les velocitats dels algorismes no varien massa. Tot i això cal remarcar que, tot i que l’algorisme de distàncies conté operacions Resultats Projecte Final de Carrera Pàgina 65 costoses com la multiplicació (per a traure la distància euclidiana) consegueix millors resultats que el de llindarització. Aquesta millora temporal pot ser deguda a la reducció de mecanismes de control que s’utilitzaven alhora de classificar el pixel entrant. També es pot comprobar la càrrega que suposava l’algorisme de votació al programa, ja que fa baixar considerablement els Fps del sistema. Finalment, remarcar que l’últim algorisme emprat no suposa tanta càrrega com el de votació. Per a calcular el % d’error del programa (taula 4), s’han preparat una série de proves. S’han fet 20 proves per a cada color emprat amb 4 distintes llums: llum natural de baixa intensitat, llum natural d’intensitat normal, llum blanca d’alta intensitat (artificial) i llum groga (artificial). S’ha comprovat quantes vegades els algorismes detectaven el color desitjat, agafant com a error quan es detecta un altre color del que està siguent analitzat. Es proporcionen 2 taules, una amb la tassa d’error dels algorismes i l’altra amb la tassa d’error respecte al color analitzat utilitzant l’algorisme que menys % d’Error proporciona globalment. Algorisme %Error Llindarització 34.5% Llindarització més votació 26.5% Distàncies 30.0% Distàncies més votació 24.5% Distàncies i adaptació 10.0% Taula 4: % d’error dels algorismes implementats. Es pot vore com l’algorisme d’adaptació millora substancialment l’error respecte al primer de tots, el de llindarització, amb quasi la meitat d’error. Tot i millorar dràsticament els % d’error, el programa no aconsegueix reduir l’error fins a un marge que ens puga fer donar una experiència agradable a l’usuari. Analitzem més detingudament els errors a l’algorisme de distàncies i adaptació. Trobem que per a cada tipus de llum conseguim un % d’error distint (taula 5), on les llums A, B, C i D es corresponen amb llum natural de baixa intensitat, llum natural d’intensitat normal, llum blanca d’alta intensitat (artificial) i llum groga (artificial): Resultats Projecte Final de Carrera Pàgina 66 Color Llum A Llum B Llum C Llum D Blanc 0% 0% 0% 30% Blau 0% 0% 0% 50% Groc 15% 10% 0% 0% Verd 5% 5% 0% 60% Marró 10% 5% 0% 20% Taula 5: % d’error dels colors utilitzant l’algorisme de distàncies i adaptació. Com es pot veure a la taula, amb les llums A i B hi ha una certa semblança, cosa que ens porta a afirmar que quasi no hi ha diferència lumínica entre aquestes 3 llums. Es pot observar com el groc es manté en el % d’error en aquestes llums, com el verd i el marró tenen uns errors puntuals i com el blanc i el blau no tenen cap error degut a les seues peculiaritats dins de l’espectre de color. Cal destacar que la llum C no ha donat cap error, cosa que ens porta a reafirmar el que havíem dit abans sobre el projecte Twinkle i la gran utilitat de tindre un focus de llum blanca sobre la zona a analitzar. En canvi, quan comprovem la llum D, podem observar comportaments distints en la detecció del color. El groc, que a A i B tenia un cert error, disminueix dràsticament el seu error. Els colors blau i verd, degut a ser colors que composen el groc, es veuen realment afectats per aquest tipus de llum, impossibilitant el seu correcte anàlisis. El blanc i el marró també es veuen afectats per aquesta llum, tot i que en menor mesura. Finalment cal dir que aquesta llum és la que pitjor resultats ha donat. Conclusió i treballs futurs Projecte Final de Carrera Pàgina 67 6.- Conclusió i treballs futurs El projecte proposat ha servit en gran mesura per tal d’aprofundir en temes de caire complex com pot ser la recepció i post-tractament de la imatge per tal d’aconseguir un bon analitzador de color. A més, ha contribuït a conèixer amb més profunditat l’efecte de la llum sobre les superfícies de color. El projecte en sí té, en lo que respecta al dispositiu emprat, un poc de desavantatge respecte al projecte Twinkle degut a que l’iPhone, a diferència de l’aparell que es crearen ells, no té ningun focus que puga il·luminar una zona en concret i, per tant, es treballa dins d’un ambient on la llum no pot ser controlada. Durant el projecte bàsicament s’ha estat treballant en formes de superar eixa diferència mitjançant distints algorismes. Durant el projecte hem vist altres formes d’analitzar els colors i hem anat millorant mitjançant el treball propi. Per a treballs posteriors, es podria o bé incloure un focus al costat de l’iPhone per tal de que pogués funcionar com el projecte Twinkle o utilitzar algun altre tipus de codificació de color. Aquest tipus de codificació podria ser el HSV, una codificació que està donant molts bons resultats en el camp de l’anàlisi de l’espectre de llum i que, com ja hem dit anteriorment, té una millor aproximació al espai de colors real. Bibliografia Projecte Final de Carrera Pàgina 68 7.- Bibliografia [APPLE10] Apple Company. AVFoundation. iOS Documentation. 2010. [APRENDRA11] M.C. Juan, Universitat Politècnica de València, Asociació d’Investigació de la Industria del Joguet. Aprendra. www.aprendra.es. Consultada 12-6-2011. [ARPA11] ARPA Solutions. Decoración de interiores. www.arpasolutions.net/arpa-decoracion-interiores.html. Consultada 12-62011. [BAUERSCHMITT05] R. Bauernschmitt, M. Feuerstein, E.U. Schirmbeck, N. Augustin, S.M. Wildhirt, R. Lange Improvement of Endovascular Stent Grafting by Augmented Reality Biomedizinische Technik (BMT 2005), Volume 50, Supplementary vol. 1, Part 2, pp. 1262 - 1263, 2005. [BILLINGHURST01] M. Billinghurst, H.Kato, I.Poupyrev. The MagicBook – Moving seamlessly between reality and virtuality. Computer Graphics and Applications, IEEE, Vol.21, pp. 6-8. 2001 [BOBICK99] A.F. Bobick, S.S. Intille, J.W. Davis, C.S. Pinhanez, W. Campbell, Y.A. Ivanov, A. Schütte, A. Wilson. The KidsRoom: A Perceptually-Based Interactive and Immersive Story Environment . M.I.T Media Laboratory Perceptual Computing Section Technical Report Nº398, 1996. [BRUNS07] E. Bruns, B. Brombach, T. Zeidler, O. Bimber. Enabling mobile phones to support large-scale museum guidance. IEEE MultiMedia, pp. 1625, 2007. [CAWOOD07] S.Cawood, M. Fiala. Augmented Reality: A practical Guide. Pragmatic Bibliografia Projecte Final de Carrera Pàgina 69 Bookshelf, Raleigh, N.C., 2007. [FOTONOSTRA10] Fotonostra. El color. http://www.fotonostra.com . Consultada 13-72011. [GRSITES11] GRSites. GR Sites. http://www.grsites.com/archive/sounds/. Consultada 10-5-2011. [HENRYSSON11] A Henrysson, A. Billinghurst, A. Ollila. AR Tennis. http://www.hitlabnz.org/wiki/AR_Tennis . HIT Lab NZ. Consultada 15-7-2011. [HENRYSSON07] A. Henrysson. Bringing Augmented Reality to Mobile Phones. Dissertation, Department of Science and Technology, Linköping University, 2007. [JUAN06] M.C. Juan, R. Baños, C. Botella, D. Pérez, M. Alcañiz, C. Monserrat. An AR System for acrophobia: The sense of presence using immersive photography . Presence: Teleoperators & Virtual Environments , 15; pp. 393-402, 2006. [JUAN08a] M.C. Juan, F. Beatrice, J. Cano. An augmented reality system for learning the interior of the human body. The 8th IEEE International Conference on Advanced Learning Technologies (ICALT’08), pp. 186188. 2008. [JUAN08b] M.C. Juan, R. Canu, M. Giménez. Augmented reality interactive storytelling systems using tangible cubes for edutainment. The 8th IEEE International Conference on Advanced Learning Technologies (ICALT’08), pp. 233-235. 2008. [JUAN10a] M. C. Juan, D. Pérez. Using augmented and virtual reality for the development of acrophobic scenarios. Comparison of the levels of presence and anxiety. Computers & Graphics, vol. 34, pp. 756766. 2010. [JUAN10b] M.C. Juan, G. Toffetti, F. Abad, J. Cano. Tangible cubes used as the user interface in an augmented reality game for edutainment. The 10th IEEE International Conference on Advanced Learning Bibliografia Projecte Final de Carrera Pàgina 70 Technologies (ICALT’10), pp. 599-603. 2010 [JUAN10c] M.C. Juan, E. Llop, F. Abad, J. Lluch. Learning words using augmented reality. The 10th IEEE International Conference on Advanced Learning Technologies (ICALT’10), pp. 422-426. 2010 [JUAN11a] M. C. Juan, J. Calatrava. An augmented reality system for the treatment of phobia to small animals viewed via an optical seethrough HMD. Comparison with a similar system viewed via a video see-through. International Journal of Human-Computer Interaction, vol. 27, n. 5, pp. 436-449. 2011. [JUAN11b] M. C. Juan, D. Joele. A comparative study of the sense of presence and anxiety in an invisible marker versus a marker augmented reality system for the treatment of phobia towards small animal. International Journal of Human-Computer Studies, vol. 69, n. 6, pp. 440-453. 2011. [JUAN11c] M.C. Juan, M. Carrizo, M. Giménez, F. Abad. Using an augmented reality game to finde matching pairs. Editorial Vaclav Skala – Union Agency. WSCG’11. 2011. [JUAN11d] M.C. Juan, D. Furió, L. Alem, P. Ashworth, J. Cano. ARgreenet and Basicgreenet: two mobile games fore learning how to recycle. Editorial Vaclav Skala – Union Agency. WSCG’11. 2011. [LAYAR10] Layar. Layar. www.layar.com. Consultada 10-8-2010. [MIDI11] Midi database. Midi Database. http://mididatabase.com/. Consultada 10-5-2011. [MILGRAM94] P. Milgram, F. Kishino. A Taxonomy of Mixed Reality Visual Displays. IEICE Transactions on Information Systems E77-D(12), pp 1321-1329, 1994. [MULLONI07] A. Mulloni. A collaborative and location-aware application based on augmented reality for mobile devices . Master Thesis. Facoltà di Scienze Matematische Fisiche e Naturali, Università degli Studi di Udine, 2007. Bibliografia Projecte Final de Carrera Pàgina 71 [NASA11] National Aeronautics and Space Administration (NASA). Robonaut R2. 2011. [NOVARAMA09] Novarama. Invizimals. Plataforma PSP. Presentat a l’E3 2009. [NOVARAMA11] Novarama. Reality Fighters. Plataforma PS Vista. Presentat a l’E3 2011 i al Gamelab 2011. [PACDV11] PacDV. Pac DV. http://www.pacdv.com/sounds/privacy.html. Consultada 10-5-2011. [PEARSON08] I. Pearson. Age in the future: How upcoming developments will affect older people. Futurizon Report. 2008. [RYOKAI04] K. Ryokai, S. Marti, H.Ishii. I/O brush: drawing with everyday objects as ink. Proceedings of the ACM SIGCHI Conference on Human factors in Computing Systems (CHI’04). ACM Press, pp. 303-310, 2004. [SHIGEO06] Makoto Mori, Shigeo Hirose. Locomotion of 3D Snake-Like Robots : Shifting and Rolling Control of Active Cord Mechanism .Journal of Robotics and Mechatronics, Vol. 18, No. 5, pp. 521-528, Oct. 2006. [SONY07] Sony Computer Entertainment Inc. Eye of Judgement. 2007. [STATE94] A. State, D.T. Chen, et al. Case Study: Observing a Volume Rendered Fetus within a Pregnant Patient. Proceeding of the IEEE Visualitzation Conference, pp. 364-368, 1994. [THOMAS00] B. Thomas, B. Close, J. Donoghue, J. Squires, P. De Bondi, M. Morris, W. Piekarski. AR Quale: An Outdoor/Indoor Augmented Reality First Person Application. 4th Int’l Symposium on Wearable Computers, Atlanta, USA, pp. 139-146, 2000. [YOSHIDA10] T. Yoshida, Y. Hirobe, H. Nii, N. Kawakami y S. Tachi. Twinkle: Interacting with Physical Surfaces Using Handheld Projector. IEEE Virtual Reality, pp.87-90, 2010.