Dipartimento di Matematica e Informatica Corso di Laurea in Informatica Realtà Aumentata: Studio e Sperimentazione con la Library Metaio in Android Augmented Realty: Study and Experimentation with Metaio SDK for Android Relatore: Chiar.mo Prof. Federico Bergenti Correlatore: Dott. Danilo Gotta Candidato: Abdullah Siddique Anno Accademico 2013/2014 Ai miei genitori che hanno sacricato i loro sogni per realizzare i miei Indice 1 Prefazione 1 2 Realtà Aumentata 4 2.1 Cos'è la realtà aumentata? . . . . . . . . . . . . . . . . . . . . 2.2 Storia della realtà aumentata 2.3 Come funziona la realtà aumentata? 2.4 Hardware necessario 2.5 Le applicazioni della realtà aumentata . . . . . . . . . . . . . . . . . . 4 5 . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . 3 Descrizione del problema 13 18 3.1 Problema in generale . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Armadio di rete . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4 Soluzione con Metaio 23 4.1 Generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Metaio SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Armadio di rete: descrizione degli esperimenti . . . . . . . . . 24 4.4 Tipi di tracking . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5 Conclusione 43 Appendice 45 5.1 Visione articiale . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2 OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Bibliograa 47 Capitolo 1 Prefazione Questo testo contiene il resoconto di tutte le attività svolte durate il periodo di lavoro. L'argomento trattato è la realtà aumentata e in particolare ci si è concentrati sullo studio e sulla sperimentazione della library Metaio. Il testo è strutturato nei seguenti capitoli: Realtà aumentata In questo capitolo diamo una panoramica generale sulla tecnologia della realtà aumentata. La realtà aumentata è un sistema di graca interattiva che permette di intervenire su un usso di immagini video, modicando la realtà con l'aggiunta, in tempo reale, di contenuti e animazioni virtuali. Il capitolo segue con la storia della realtà aumentata e le sue applicazioni in vari campi. Per esempio in capo medico, militare e commercio. Vengono descritti brevemente i vari componenti hardware necessari alla AR: il processore, il display, i sensori e i dispositivi di input. Con una particolare attenzione verso i vari tipi di display. Per esempio i display head-mounted, occhiali e smartphone. Descrizione problema Viene descritto il problema nella sua forma più generale e successivamente nel nostro caso particolare, cioè l'applicazione della AR all'armadio di rete. Il problema viene diviso in tre sotto problemi, top-down: • Identicazione dell'armadio di rete • Identicazione di una sezione del ADR • Tracking delle prese RJ45 1 usando un approccio Prefazione Soluzione con Metaio Questo capitolo è suddiviso in tre parti. La prima parte descrivere, in modo generale, la metodologia adottata per risolvere il problema. Nella seconda parte vengono descritti in sequenza i vari esperimenti che sono stati eettuati per convergere alla soluzione. Come nel caso della descrizione del problema anche qua si è partiti da un caso più generale per poi arrivare ad ottenere Target un'applicazione Target semplice Target astratto Target con dettaglio aumentato Target con maggior contrasto locale Target con poca/più luce Riconoscimento della forma del target Target con varie angolazioni Riconoscimento punti specici del target Multiple target con immagini dierenti Multiple target con la stessa immagine Prove dirette/indirette sull'armadio di rete Target con singola-presa CAD Model Target multi-presa Cad Model Target con linemodel e surfacemodel fatti manualmente Target con 24 prese + dettagli ambiente che risolva Descrizione il nostro problema: Immagine di una presa RJ45. Costruzione astratta di una presa RJ45. Modica dell'immagine, della presa RJ45, rendendo più evidenti alcuni dettagli. Immagine, della presa RJ45, con il contrasto locale aumentato. Immagini, della presa RJ45, ottenute con diversa intensità della luce ambientale. Immagine solo della forma della presa RJ45. Immagine del target da varie angolazioni. Immagini di parti speciche della presa RJ45. Immagini di target dierenti tra loro, per riconoscere oggetti diversi tra loro. Un'unica immagine per riconoscere più oggetti uguali tra loro. Oggetti su cui è stato testato l'applicazione. Costruzione di un modello CAD della presa RJ45, usata come target. Costruzione di un modello di più prese RJ45, usato come target. Costruzione manuale dei le necessari per questo tipo di tracking. Target nale. Costruito con il modello CAD con l'aggiunta di dettagli ambientali. Nella terza parte vengono descritti i tipi e i le di congurazione di tracking utilizzati. Metaio SDK ore anche molti altri tipi di tracking, ma noi abbiamo preso in considerazione solo questi due perché erano i più vicini a ciò che volevamo ottenere. I due tipi considerazione sono: • Image tracking • 3D markerless tracking basato su CAD data 2 di tracking presi in Prefazione Conclusione Nell'ultimo capitolo riportiamo i risultati ottenuti e delle considerazioni generali sui due tipi di tracking che abbiamo preso in considerazione. 3 Capitolo 2 Realtà Aumentata 2.1 Cos'è la realtà aumentata? La realtà aumentata (in inglese Augmented Reality, abbreviato AR ), o realtà mediata dall'elaboratore, è un sistema di graca interattiva che permette di intervenire su un usso di immagini video, modicando la realtà con l'aggiunta, in tempo reale, di contenuti ed animazioni virtuali. Se in un primo momento una denizione del genere può risultare complessa o può erroneamente far pensare a un'associazione alla realtà virtuale o alle tecniche di montaggio e post-produzione video, basta soermarsi su alcuni concetti fondamentali che rendono la realtà aumentata unica nel suo genere. La dierenza fra realtà virtuale e realtà aumentata è che, nel primo caso, ci si trova a osservare su uno schermo la proiezione di un mondo totalmente ttizio e costituito interamente da oggetti virtuali. Nel secondo caso, invece, innanzitutto non si è vincolati ad una visualizzazione su schermo, ma qualsiasi supercie può diventare un supporto per visualizzare il usso video in realtà aumentata; ciò che viene ripreso, inoltre, è un'integrazione fra immagini reali ed oggetti virtuali. Per cui: Realtà Virtuale = mondo virtuale Realtà Aumentata = mondo reale + oggetti virtuali Ciò che rende dierente la realtà aumentata da un video con oggetti 3D ed eetti speciali realizzati con tecniche di post-produzione video è che il software per la realtà aumentata opera le integrazioni fra le riprese video e gli oggetti virtuali in tempo reale. Questo vuol dire che, se riprendiamo con una videocamera una persona che parla e si muove e le applichiamo degli occhiali virtuali con la realtà aumentata, su un monitor o su qualsiasi altro 4 2.2 Storia della realtà aumentata Realtà Aumentata supporto vedremo che questa persona continua il suo discorso ed i suoi movimenti indossando il suddetto paio di occhiali, senza alcuna interruzione delle immagini o eetto in dierita. Altro concetto fondamentale è l'interattività. Gli oggetti virtuali che aumentano il usso video non sono statici, ma possono eseguire movimenti ed animazioni in risposta a delle azioni umane. 2.2 Storia della realtà aumentata Il termine realtà aumentata è stato coniato negli anni 90, ma la realtà aumentata era già esistente da molti anni prima. Tutto nasce nel 1962, quando Morton Helig iniziò la costruzione di una macchina chiamata Sensorama. Vi erano molti elementi che universalmente riconoscono tale esperienza come la prima nel campo della realtà aumentata, anche se tutto era preregistrato. La macchina Sensorama è stata inventata nel 1957 e brevettata nel 1962. Si tratta di un simulatore da una a quattro persone che fornisce l'illusione della realtà cinematograca attraverso un 3D con l'odore, suono stereo, vibrazioni del sedile, vento nei capelli per creare l'illusione di essere sicamente presenti nel posto. Interessante vederne l'applicazione che ha avuto negli anni. Il Sensorama era una macchina tra i primi esempi noti di coinvolgimento multisensoriale tecnologico. Morton Heilig, che oggi sarebbe conosciuto come uno specialista di multimedialità, utilizzò la tecnologia per far comprendere come anche se passivo dinanzi allo schermo, lo spettatore e il fruitore utilizza tutti i sensi in maniera ecace e soprattutto interattiva, come se eseguisse l'attività realmente. Il principio, molti anni dopo, della realtà aumentata. Nel 1966 il professor Ivan Sutherland dell'Università di Harvard inventa il primo modello di uno dei più importanti dispositivi utilizzati nella realtà aumentata e nella realtà virtuale: il Head-Mounted Display o HMD. Questo è un dispositivo di visualizzazione da indossare sulla testa e è dotato di un display ottico monoculare o binoculare. Una delle invenzioni che ancora oggi sono applicate, anche se più evolute, nel campo militare, civile e ludico. Nel 1975 Myron Krueger crea Videoplace che permette per la prima volta agli utenti di interagire con gli oggetti virtuali. Videoplace era una realtà articiale che poteva essere sperimentata senza indossare occhiali o altra tecnologia speciale. Videoplace cercava la comunicazione tra due o più 5 2.2 Storia della realtà aumentata Realtà Aumentata individui con il computer quale mezzo di connessione tra di loro. In Videoplace il computer poteva coordinare il movimento di un oggetto con l'azione del partecipante senza avere la necessità di considerare il limite della realtà sica. L'utente si trovava di fronte a uno schermo di proiezione mentre lo schermo dietro di sé era retroilluminato per produrre immagini ad alto contrasto per la telecamera e permettere al computer di distinguere il visitatore dallo sfondo. L'immagine dell'utente veniva digitalizzata per creare una silhouette che veniva analizzata da processori specializzati. Questi potevano analizzare la postura dell'immagine, il singolo movimento e la sua relazione con gli altri oggetti graci nel sistema; potevano quindi reagire al movimento e creare una serie di risposte, fossero esse visive o sonore. Stranamente col senno di poi, Heilig non è stato in grado di ottenere sostegno nanziario per le sue visioni e brevetti, e il lavoro è stato interrotto. Sensorama oggi resta soprattutto una curiosità nella tradizione espansiva della realtà virtuale e aumentata. Perché fu molto importante e basilare questa creazione? Dimostra che il numero delle interazioni che si possono eseguire dipende dalla creatività, alla base dell'interazione uomo-macchina. Dopo oltre dieci anni dalla creazione di Videoplace, si iniziano a vedere i primi sbocchi commerciali con la prima società che vende queste tipologie di tecnologia. Infatti, nel 1989, Jaron Lanier commercializzo la realtà virtuale e crea la prima azienda commerciale attorno ai mondi virtuali. Solo un anno dopo, Tom Caudelle conia il termine augmented reality o realtà aumentata aiutando i lavoratori della Boeing ad assemblare i cavi a bordo degli aeromobili. Infatti, l' HMD viene reso monoculare e semitrasparente per permettere ai tecnici addetti alle operazioni di assemblaggio di consultare schemi e istruzioni in formato digitale, direttamente proiettate sulle componenti che entravano nel campo visivo, senza distogliere l'attenzione dalle operazioni. Altra data molto importante e da ricordare nel mondo della realtà aumentata è il 1997 quando Azuma pubblica un documento di studio che denisce il campo della realtà aumentata. Nel 1999, ci fu il rilascio da parte del professor Hirokazu Kato del Nara Institute of Science and Technology, della libreria di software ARToolKit: mettendo insieme sistemi di tracking video, interazione con oggetti virtuali e graca 3D, permetteva alla comunità di programmatori open source di sperimentare applicazioni di realtà aumentata con i computer e i dispositivi di ripresa video più diusi, aprendo la strada anche alla creazione di specici browser AR. Questo porterà a essere il 2002 uno degli anni più procui nella storia della realtà aumentata. Accaddero due fatti importantissimi: Steven Feiner, pioniere leader della AR, è autore del primo articolo sul tema ed esce ad 6 2.2 Storia della realtà aumentata Realtà Aumentata aprile del 2002 sulla più importante e seria rivista scientica del mondo, Scientic America. Nell'articolo Feiner parla di una nuova visione del mondo e scrive che gli informatici stanno sviluppando dei sistemi in grado di migliorare e arricchire la vista degli utenti nel mondo. Nello stesso anno Bruce H. Thomas inventa il primo gioco con la realtà aumentata. Il gioco era ARQuake. Il successo fu importante più per il mondo degli informatici che per il mondo dei fanatici dei videogiochi, ma segnò una nuova strada che da lì a breve portò l'evoluzione. Nel 2005 s'iniziano a sviluppare le parti a videocamera e Daniel Palanker, occhio bionico. sviluppano un Alexander Vankov e Phil Huie Stephen Baccus, assistente professore di neurobiologia, Phil Huie, un biologo cellulare, Alexander Vankov, un sico e Daniel Palanker, un professore assistente di oftalmologia, pubblicarono il loro progetto di un sistema di protesi retinica nel Journal of Neural Engineering. Un progetto di protesi retinica che può stimolare la retina con una risoluzione corrispondente a un'acutezza visiva suciente a orientarsi verso gli oggetti, riconoscere i volti, leggere caratteri grandi, guardare la TV e, forse più importante, condurre una vita indipendente. Anche il campo medico iniziava l'utilizzo della tecnologia al servizio dell'uomo. Nel 2007 partono le sperimentazioni volte a eliminare ogni tipologia di marcatore, svincolando così la realtà aumentata da software da installare nel PC. Nel 2010 tutto questo diventa realtà con i sistemi di ricognizione facciale. La svolta decisiva, quella che porta, sostanzialmente, allo stato attuale, è datata 2009, e avviene grazie al vericarsi di due condizioni particolari. La prima è costituita da uno dei primi utilizzi della tecnologia all'interno esplodere di una quasi campagna pubblicitaria, improvvisamente l'interesse talmente per la riuscito realtà da far aumentata: durante la nale del Superbowl, la General Electrics manda in onda lo spot della nuova progettazione di reti elettriche ecologica Smart Grid, che termina con il rimando sperimentare un cosiddetto al relativo microsito ; quest'ultimo invita a digital hologram, Grazie ai dispositivi distribuiti dal 2009, la realtà aumentata da esplorare in mobilità elimina alcuni vincoli tecnici che caratterizzavano le applicazioni desktop, e introduce tutte quelle nuove possibilità d'impiego che oggi ci risultano (quasi) familiari: navigatori con indicazioni aggiunte direttamente alla strada, contenuti informativi che appaiono in determinati luoghi raggiunti dall'utente, utili per il proximity marketing ma anche per tour geo-localizzati, applicazioni che ricostruiscono l'aspetto originario di rovine e monumenti storici, giochi e altre ancora. Il 2011 è l'anno della realtà aumentata con prodotti dedicati, tra i quali spicca il pluripremiato Webcam Social Shopper. Lo schermo del computer diventa uno specchio digitale. Fare shopping online può essere conveniente: ci permette di fare shopping quando i negozi sono chiusi, senza alzarci dalla poltrona, e riuscendo a visitare una miriade di boutiques senza doverci 7 2.3 Come funziona la realtà aumentata? Realtà Aumentata sicamente trasferire, guidare e parcheggiare da una all'altra. Ma come fare a sapere se quella maglietta, o quel vestito ci starà veramente bene? Quel colore mi donerà? Quale fra le tante combinazioni di righe e giochi colorati di una maglia di Missoni mi sta meglio? E quel taglio di vestito asimmetrico, starà bene su di me? Negli ultimi due anni, ci siamo più o meno tutti abituati ad usare la videocamera connessa o integrata al computer. Magari per parlare con amici e parenti su Skype o su qualche altro blog. Usare la videocamera del computer è diventata un'operazione così comune per i giovani che uno studio fatto nelle università e college Americani indica come gli studenti usino la videocamera e lo schermo del computer per mettersi il trucco e controllare come stiano i capelli praticamente eliminando il caro vecchio specchio. E allora, perché non chiedere allo schermo del nostro beneamato computer come ci sta un certo vestito? Webcam Social videocamera per Shopper ci permette trasformare lo proprio schermo del di far nostro questo: usare computer in la uno specchio che ci dia un'idea di come lo stile e il colore di un certo vestito ci potrà stare. Webcam Social Shopper permette agli utenti di toccare virtuali alla per navigare da un vestito all'altro, adattarlo tasti propria silhouette e fare una fotograa per ricordarci di come il vestito ci possa stare. Ci aiuta anche a comunicare con i nostri amici e chiedere consiglio su Facebook, Twitter o semplicemente per email mi sta meglio la maglia di Missoni con lo sfondo giallo o rosa?. Il sistema apre le porte ai brevetti internazionali e permette di tutelare le aziende che investono nella realtà aumentata. 2.3 Come funziona la realtà aumentata? La realtà aumentata è una tecnologia resa possibile grazie ad un software dotato di particolari dispositivi di rendering e tracciamento. Individuando dei punti ssi in uno spazio, tali dispositivi tracciano degli oggetti o delle forme e vi agganciano gli oggetti virtuali desiderati (immagini, usso video, oggetti, scritte 3D, personaggi virtuali, ecc.), permettendogli di seguire tutti i movimenti che avvengono in tempo reale. L'operazione di rendering può avvenire anche attraverso un tracciamento radio, aumentando notevolmente la precisione dell'applicazione. Requisiti di tracking per la realtà aumentata: Per essere in grado di allineare, oggetti virtuali con la realtà, abbiamo bisogno di conoscere la posa dell'oggetto rispetto alla posizione dell'utente, o a seconda della 8 2.4 Hardware necessario tecnologia di Realtà Aumentata visualizzazione, utilizzata, anche la posizione relativa al display. Per avere l'illusione della coesistenza dell'ambiente virtuale e quello reale, questa posizione deve essere quanto più precisa possibile. Esistono molti sistemi di monitoraggio che ci permettono di avere la posa dell'oggetto in questione. Anche se nessuno di questi sistemi è perfetto, possiamo ancora attentamente il arrivare sistema ad di ottenere risultati tracciamento e utili talvolta per progettare anche con una combinazione ibrida di diversi sistemi. Il termine tracking in generale serve per osservare lo stato di alcuni oggetti nel corso del tempo. Viene usato con questo signicato in una vasta gamma di campi di applicazione tra cui ingegneria, nanza e logistica. Nel contesto della visione articiale, il monitoraggio potrebbe essere seguire le varie pose di un oggetto da un fotogramma all'altro. lo stato di tracking, ad esempio, qui potrebbe contenere la posizione dell'oggetto nel frame insieme ad altre caratteristiche come il colore o il moto. Tuttavia nella comunità della realtà virtuale, il termine, tracking tracking, è usato in un senso più ampio: un sistema di è un sistema che restituisce la posa di un oggetto con una certa frequenza, non importa se in realtà un algoritmo di tracking, nel senso della visione articiale, è di solito usato per la ricostruzione della posa. I requisiti di accuratezza di un sistema di tracking dipendono dall'applicazione. Di solito, questi requisiti non sono imposti sul processo di misurazione in sé, ma piuttosto sull'errore propagato e il campo d'applicazione. 2.4 Hardware necessario I componenti hardware necessari per la realtà aumentata sono: il processore, il display, i sensori e i dispositivi di input. I moderni dispositivi mobili, come i smartphone e i tablet PC contengono questi elementi che spesso comprendono una fotocamera e dei sensori MEMS (Micro Electro-Mechanical Systems) come accelerometro, GPS e bussola a stato solido, che li rende piattaforme di AR idonei. Display Varie tecnologie sono utilizzate nel rendering per Realtà Aumentata compresi i sistemi di proiezione ottica, monitor, dispositivi portatili, e sistemi di visualizzazione indossati dalla persona stessa. Ne vediamo una breve descrizione di seguito. 9 2.4 Hardware necessario Realtà Aumentata Head-Mounted Display: schermo montato sulla testa) Un o Head-Mounted in sigla HMD Display è un (in italiano dispositivo di HMD visualizzazione associato a un auricolare, come una cintura o casco. L' Figura 2.1: Head-Mounted Display pone le immagini sia del mondo sico che gli oggetti virtuali sul campo di vista dell'utente. Gli di libertà di HMD moderni spesso utilizzano sensori con sei gradi monitoraggio che consentono al sistema di allineare informazione virtuale al mondo sico e di regolarli di conseguenza con i movimenti della testa dell'utilizzatore. L' HMD è in grado di fornire agli utenti esperienze coinvolgenti, mobili e collaborative di realtà aumentata. Occhiali: I display di realtà aumentata possono essere resi anche su dispositivi simili a occhiali. Ne esistono varie versioni tra cui quelle che includono occhiali che impiegano telecamere per intercettare la vera visione del mondo e mostrano la sua visione aumentata e dispositivi in cui l'immaginario AR è proiettato attraverso, o riesso, dalle superci delle lenti dei occhiali. Figura 2.2: Occhiali Display 10 2.4 Hardware necessario Realtà Aumentata Lenti a contatto: Le lenti a contatto che visualizzano contenuti di AR sono in sviluppo. Queste lenti a contatto bionici possono contenere gli elementi di visualizzazione incorporato nella integrati, LED e un'antenna per la comunicazione lente compresi circuiti wireless. Un'altra versione di lenti a contatto, in sviluppo per l'esercito americano, è progettato per funzionare con gli occhiali AR, permettendo ai soldati di concentrarsi sulle immagini close-to-the-eye AR sugli occhiali e lontani oggetti del mondo reale allo stesso tempo. Figura 2.3: Lenti a contatto Virtual Retinal Display (VRD): Un display di retina virtuale (VRD ) è un dispositivo di visualizzazione l'Università di Tecnologia personale in fase Human Interface Laboratory di sviluppo presso di Washington. Con questa tecnologia, un display viene sottoposto a scansione direttamente sulla retina dell'occhio dello spettatore. Lo spettatore vede quello che sembra essere un display convenzionale uttuante nello spazio di fronte a loro. EyeTap: Il EyeTap (noto anche come la 2◦ generazione di occhiali) cattura raggi di luce che altrimenti passano attraverso il centro di una lente di chi lo indossa, e sostituiscono ogni raggio controllata dal computer. 11 di luce con la luce sintetica 2.4 Hardware necessario Realtà Aumentata Figura 2.4: EyeTap Display Questa struttura permette all'occhio dell'utente di operare sia come un monitor che come una telecamera. Il EyeTap cattura il mondo circostante e ci aggiunge dati di AR permettendo di sovrapporre dati prodotti alla parte del mondo reale che l'utente avrebbe percepito. Smartphone : I smartphone utilizzano un piccolo display che si adatta alla mano dell'utente. Tutte le soluzioni di il video see-through. Inizialmente la AR realtà sui smartphone optano per aumentata, sui palmari, impiegava marcatori(ducial marker), e successive unità GPS e sensori MEMS come bussole digitali e accelerometro-giroscopico con sei gradi di libertà. Oggi stanno prendendo piede metodi di tracking SLAM markerless come essere PTAM. I smartphone commerciale per le tecnologie promettono AR. di il primo successo I due vantaggi principali dei smartphone è la natura portatile dei dispositivi e la onnipresenza di telefoni cellulari con fotocamera. Gli svantaggi sono i vincoli sici dell'utente, il dover tenere il dispositivo smartphone davanti a loro in ogni momento, così come l'eetto distorsivo del classico, grandangolo della fotocamera del telefono, rispetto al mondo reale visto attraverso l'occhio umano. Figura 2.5: Smartphone 12 2.5 Le applicazioni della realtà aumentata Spaziale Realtà Aumentata SAR ) : La Realtà Aumentata Spaziale ( aumenta oggetti del mondo reale e le scene senza l'uso di display speciali, quali monitor, SAR head-mounted display o dispositivi palmari. fa uso di proiettori digitali per visualizzare informazioni grache su oggetti sici. La dierenza fondamentale in SAR è che il display è separato da parte dagli utenti del sistema. Poiché i display non sono associati a ciascun utente, SAR consente la collaborazione tra gli utenti. Gli esempi includono lampade di shader, proiettori mobili, tavoli virtuali e proiettori intelligenti. Figura 2.6: Virtual Table 2.5 Le applicazioni della realtà aumentata La realtà aumentata ha un campo innito di possibili applicazioni; quelle più conosciute e più datate, relative ai primi esperimenti di realtà aumentata, sono quelle nel campo militare e medico. Le potenzialità che si cerca di sviluppare e valorizzare attualmente, però, sono soprattutto relative al campo della comunicazione, del marketing e della pubblicità. In tal senso, infatti, cominciano a diondersi esempi di realtà aumentata che mirano alla promozione di prodotti (come automobili e cellulari), facendosi strada in un campo vastissimo dove la creatività può generare soluzioni divertenti e funzionali senza alcun limite. Di seguito sono AR descritte le applicazioni della Archeologia: archeologica, moderno, La AR può aumentando consentendo le agli in vari campi. essere utilizzata caratteristiche archeologi di per aiutare archeologiche formulare sul la ricerca paesaggio conclusioni circa il posizionamento e la congurazione del sito. Un'altra applicazione dato dalla AR in questo campo è la possibilità per gli utenti di ricostruire ruderi, edici, o anche paesaggi come esistevano in passato. 13 2.5 Le applicazioni della realtà aumentata Architettura: Immagini AR La generate Realtà Aumentata può aiutare a visualizzare progetti di costruzione. al computer di una struttura possono essere sovrapposte, sulla realtà, in una visione locale di una proprietà prima che l'edicio sico all'interno sia dello visualizzare costruito spazio modelli sight-seeing di 3D là. animati AR La lavoro di dei può un loro anche essere architetto, disegni può essere migliorata con applicazioni di impiegata permettendo 2D. AR di L'Architettura che permettono agli utenti che visionano l'esterno di un edicio di vedere virtualmente attraverso le sue pareti, visualizzando i suoi oggetti interni e la loro disposizione. Arte: La AR ha aiutato le persone disabili creare arte utilizzando l'oculometria, cioè di tradurre i movimenti oculari di un utente in disegni su uno schermo. Un elemento come una moneta commemorativa può essere progettata in modo che quando scansionata da un dispositivo AR-abilitato espone oggetti aggiuntivi e strati di informazioni che non erano visibili in una vera e propria visione, nel mondo reale, di esso. Commercio: AR La può migliorare l'anteprima di prodotti come, ad esempio, consentendo al cliente di vedere cosa c'è dentro l'imballaggio di un prodotto senza aprirlo. La AR può anche essere usata come ausilio nella selezione dei prodotti da un catalogo o attraverso un chiosco. Immagini digitalizzate dei prodotti possono attivare viste di contenuti aggiuntivi, come opzioni di personalizzazione e ulteriori immagini del prodotto nel suo utilizzo. Ed è anche utilizzata per integrare pubblicità stampa e video. Materiale di pubblicità stampato può essere progettato con certe immagini trigger che, se analizzate da un dispositivo AR-abilitato mediante riconoscimento di immagini, attivano una versione video del materiale promozionale. Una delle principali dierenze tra la realtà aumentata e il diretto riconoscimento delle immagini è che è possibile sovrapporre più supporti allo stesso tempo nella schermata di visualizzazione, ad esempio pulsanti di condivisione social media, in pagine dei video anche oggetti audio e 3D. Costruzione: Con i continui miglioramenti alla precisione del GPS e tecnologie alternative, le aziende sono in grado di utilizzare la realtà aumentata per visualizzare modelli geo-referenziati di cantieri, strutture interrate, cavi e tubi utilizzando dispositivi mobili. Per esempio dopo il terremoto di Christchurch, l'università di Canterbury ha rilasciato, CityViewAR, che ha consentito ai progettisti e ingegneri della città di visualizzare gli edici che sono stati distrutti dal terremoto. Non solo questo ha fornito ai progettisti gli strumenti per fare riferimento al paesaggio urbano precedente, ma è servito anche come promemoria per la 14 2.5 Le applicazioni della realtà aumentata Realtà Aumentata grandezza della devastazione causata, come interi edici sono stati demoliti. Educazione: Applicazioni di realtà aumentata sono in grado di completare un curriculum standard. Testo, graca, video e audio possono essere sovrapposte nell'ambiente del studente in tempo reale. Libri di testo, ashcards e altro marcatori embedded producono materiale didattico di lettura possono contenere che, durante la scansione da un dispositivo di informazioni supplementari, disponibili in un AR, formato multimediale, per il studente. Gli studenti possono partecipare in modo interattivo con simulazioni generate al computer di eventi storici, esplorare e imparare i dettagli di ogni area signicativa del sito dell'evento. La AR può aiutare gli studenti nella comprensione della chimica, consentendo loro di visualizzare la struttura spaziale di una molecola e di interagire con un modello virtuale di esso che appare, nell'immagine della telecamera, posizionato su un marker tenuto in mano. La realtà aumentata permette anche l'apprendimento tramite la collaborazione a distanza, in cui studenti e docenti, non nella stessa posizione sica, possono condividere un ambiente comune di apprendimento virtuale popolato da oggetti virtuali e materiali didattici e interagire con un altro all'interno di tale impostazione. Gaming: La realtà aumentata permette ai giocatori di sperimentare il gioco digitale in un ambiente reale. Negli ultimi 10 anni c'è stato un notevole miglioramento della tecnologia, con conseguente migliore rilevamento del movimento e la possibilità per il Wii di esistere, ma anche la rilevazione diretta dei movimenti del giocatore. Design Industriale: nell'esperimentare la La AR può progettazione prima del completamento. La AR e aiutare il i progettisti funzionamento di industriali un prodotto può essere utilizzata per visualizzare e modicare la struttura del corpo della vettura e la disposizione del motore. Ed può anche essere usata per confrontare mock-up digitali con modelli sici per la ricerca di discrepanze tra di loro. Medico: La realtà aumentata può fornire al chirurgo informazioni, che sono altrimenti nascoste, come mostrare la frequenza del battito cardiaco, la pressione sanguigna, lo stato di organi del paziente, ecc. La AR può essere utilizzata per consentire ad un medico di vedere all'interno di un paziente combinando una fonte di immagini, come una radiograa, con altre fonti, tipo dei video. Esempi includono una vista a raggi X virtuale sulla base della precedente tomograa o sulle immagini in tempo reale da ultrasuoni e sonde di microscopia confocale o visualizzare la posizione di un tumore nel video di un endoscopio. La AR può anche migliorare la visualizzazione di un feto nel grembo della madre. 15 2.5 Le applicazioni della realtà aumentata Realtà Aumentata Militare: come In combattimento, la AR può servire un sistema di comunicazione in rete che rende i dati di battaglia utili sugli occhiali di protezione di un soldato in tempo reale. Dal punto di vista del soldato, persone e oggetti vari possono essere contrassegnati con indicatori speciali ◦ delle per avvertire di potenziali pericoli. Mappe virtuali e vista a 360 immagini della fotocamera possono essere rese per facilitare la navigazione e la prospettiva di battaglia di un soldato, e questo può essere trasmesso ai leader militari in un centro di comando a distanza. Navigazione: La AR può aumentare l'ecacia dei dispositivi di navigazione. Le informazioni possono essere visualizzate sul parabrezza di un'automobile che indicano la direzione per la destinazione e metro, informazioni atmosferiche, sul terreno, le condizioni stradali e informazioni sul traco e gli avvisi ai potenziali pericoli nel percorso. A bordo delle navi marittime, la AR permette alle guardie del ponte di monitorare costantemente informazioni importanti come rotta e la velocità di una nave, mentre si muovono su tutto il ponte o svolgere altre attività. Ucio: La AR può contribuire a facilitare la collaborazione tra i membri del team distribuiti in una forza lavoro tramite conferenze con partecipanti reali e virtuali. Attività di AR possono includere di brainstorming e di incontri di discussione utilizzando la visualizzazione comune con tavoli touch screen, lavagne digitali interattive, spazi progettuali condivisi e sale di controllo distribuite. Sport e Intrattenimento: La AR è diventata molto comune nella diusione dei sport. Sport e luoghi di intrattenimento sono dotati di video see-through e un aumento di informazione attraverso la sovrapposizione di dati aggiuntivi che vengono dati in pasto alla macchina fotograca per una migliore visione da parte del pubblico. Gli esempi includono la linea gialla di primo down visto in trasmissioni televisive di giochi di football americano che mostra la linea che la squadra in attacco deve attraversare per ricevere un primo down. La AR è utilizzata anche in associazione con calcio e altri eventi sportivi a mostrare annunci pubblicitari commerciali sovrapposte sulla visione dell'area di gioco. Sezioni del campo da rugby e campi da cricket mostrano anche le immagini dei sponsor. Nelle trasmissioni televisive delle gare di nuoto spesso viene aggiunta una linea attraverso le corsie per indicare la posizione del detentore del record corrente e di come una corsa procede per consentire agli spettatori di confrontare la gara in corso per le migliori prestazioni. La AR può intensicare l'impatto dei concerti e del teatro. Ad esempio, gli artisti possono permettere agli ascoltatori di aumentare la loro esperienza di ascolto con l'aggiunta alla loro performance quella di altre band/gruppi. 16 2.5 Le applicazioni della realtà aumentata L'industria del gioco ha beneciato molto Realtà Aumentata dallo sviluppo di questa tecnologia. Un certo numero di giochi sono stati sviluppati per ambienti interni. Un numero signicativo di giochi incorporano la AR e l'introduzione dello smartphone ha dato un impatto ancora maggiore. Supporto: Compiti complessi come l'assemblaggio, manutenzione, e la chirurgia possono essere semplicati inserendo informazioni aggiuntive nel campo di vista. Ad esempio, delle etichette possono essere visualizzate su parti di un sistema per dare istruzioni ad un meccanico che sta eseguendo la manutenzione del sistema. beneci dall'utilizzo della AR. le catene di montaggio ottengono molti Oltre a Boeing, BMW e Volkswagen sono noti per incorporare questa tecnologia nella loro catena di montaggio per migliorare i loro processi di produzione e assemblaggio. Le macchine di grande dimensioni sono dicili da mantenere a causa dei molteplici livelli o strutture che hanno. Con l'uso della AR i lavoratori possono completare il loro lavoro in modo molto più semplice, perché la AR permette loro di guardare attraverso la macchina come se guardassero con i raggi-x, indicandoli subito il problema. Televisione: Visualizzazioni meteorologiche erano la prima applicazione di realtà aumentata alla televisione. Ora è diventato comune nelle trasmissioni del meteo visualizzare video totalmente animati dalle immagini catturate in tempo reale da più telecamere e altri dispositivi. Accoppiato con simboli graci in 3D e mappato a un modello Geospace virtuale comune, queste visualizzazioni animati costituiscono la prima vera applicazione di AR alla TV. La realtà successiva guardando. aumentata di sta cominciando telespettatori Per esempio di interagire possono a consentire con collocare i alla programmi oggetti in un generazione che stanno programma esistente e interagire con questi oggetti, come ad esempio muoversi intorno a loro. Turismo: Le applicazioni di realtà aumentata sono in grado di migliorare l'esperienza di un utente quando si viaggia, fornendo in tempo reale schermi informativi in merito a una posizione e le sue caratteristiche, tra cui osservazioni formulate dai precedenti visitatori del sito. Applicazioni di AR permettono ai turisti di sperimentare simulazioni di eventi storici, luoghi e oggetti, visualizzandoli nella loro visione corrente di un paesaggio. Possono anche presentare informazioni sulla posizione locale attraverso l'audio, annunciando caratteristiche di interesse in un sito particolare. 17 Capitolo 3 Descrizione del problema 3.1 Problema in generale Il problema che prendiamo in considerazione è il supporto a vari tecnici nei loro compiti. Come descritto precedentemente la realtà aumentata è molto utilizzata montaggio come supporto suggerisce ai in vari campi. operatori i Per nomi esempio dei vari nelle pezzi catene e il di loro collegamento, per velocizzare il lavoro. Le operazioni di manutenzione e riparazione rappresentano interessanti opportunità per l'applicazione della realtà aumentata. La maggior parte delle attività in questo campo sono condotte da personale abilitato alla manutenzione e si applicano su procedure stabilite a priori in ambienti relativamente statici e prevedibili. Queste procedure sono in genere organizzate in sequenze di attività che sono destinate a sistemare un particolare elemento in una posizione specica. Queste e altre caratteristiche formano uno spazio disegno ben denito, che portano a una varietà di sistemi e tecnologie che potrebbero aiutare un tecnico mentre esegue un'operazione di manutenzione. Figura 3.1: Tecnico che utilizza un sistema di supporto AR 18 3.1 Problema in generale Descrizione del problema Questa assistenza è d'aiuto, anche per i tecnici più esperti, per diversi motivi. In primo luogo, l'esplorazione e l'esecuzione di procedure di manutenzione e riparazione impone notevoli requisiti sici su un tecnico. Per ogni attività all'interno di una procedura più ampia, il tecnico deve prima spostare il suo corpo, il collo e la testa per individuare e orientarlo al compito. Il tecnico deve quindi eseguire ulteriori movimenti sici per svolgere il compito. L'assistenza per l'ottimizzazione di questi movimenti sici può salvare il tempo e l'energia del tecnico. Tale risparmio può essere signicativo quando si eseguono decine di attività potenzialmente sconosciute distribuite in un sistema grande e complesso. In secondo luogo, la navigazione e l'esecuzione di procedure di manutenzione e riparazione impongono esigenze conoscitive. Il tecnico deve prima inquadrare ogni attività in un modello di contesto più ampio. Il tecnico deve quindi interpretare correttamente e comprendere i compiti. Un'assistenza ecace in questi casi può anche risparmiare il tempo del tecnico, riducendo il carico di lavoro mentale. In genere, un'applicazione di supporto alla manutenzione utilizza la AR per migliorare la localizzazione dei vari elementi in scenari di manutenzione standard con le istruzioni su schermo, simboli di attenzione, etichette sovrapposte e modelli 2D e 3D animati. Queste informazioni combinate con la conoscenza naturale, del tecnico, del task di manutenzione aiutano il tecnico a individuare e iniziare i vari compiti. Figura 3.2: Esempio di supporto AR 19 3.1 Problema in generale Descrizione del problema In contesti simili, si è stimato che una soluzione di AR per operazioni di manutenzione sul campo può determinare un aumento di ecienza e una diminuzione dei costi che vanno dal 20% al 30%. Un altro benecio è connesso alla potenziale riduzione dell'errore umano, che ha anch'esso dei costi associati. Abbiamo anche beneci connessi all'aumento della sicurezza che consegue all'implementazione eciente di 20 best practice. 3.2 Armadio di rete Descrizione del problema 3.2 Armadio di rete Nel nostro caso il problema consiste nel riconoscere un armadio di rete, in particolare le varie prese RJ45. E successivamente indicare due di queste con un qualche tipo di segnale, per esempio un modello 2D o 3D. Questo lavoro può essere svolto in tre fasi: • Identicare l'armadio di rete: innanzi tutto si deve identicare l'armadio di rete, nel caso in cui ci siano più armadi di rete. Figura 3.3: Armadio di rete 21 3.2 Armadio di rete • Descrizione del problema Identicare una sezione del ADR: Per semplicare il lavoro si può decidere di identicare una parte dell'armadio di rete. Figura 3.4: Sezione di ADR • Tracking delle prese RJ45: Inne bisogna fare il tracking delle varie prese RJ45 e posizionare i modelli. Figura 3.5: Presa RJ45 Dopo aver fatto il tracking bisogna individuare due prese indicate dall'utente o ricavate dal database, e indicarle al tecnico. In modo da facilitare al tecnico il compito di trovare su quale prese deve andare a lavorare. 22 Capitolo 4 Soluzione con Metaio 4.1 Generale Dopo una ricerca sulle varie possibilità, si è deciso di provare a risolvere il problema sfruttando la libreria, di realtà aumentata, Metaio SDK. La quale ore varie tipi e opzioni di tracking, che noi andremo a ad utilizzare. Il lavoro si è svolto attraverso un processo di ranamento e utilizzo di strumenti via a via più sosticati. Si è deciso di cercare di riconoscere solo una presa RJ45, invece dell'intero armadio di rete. L'idea sta nel riconoscere una presa e di conseguenza una diversa quantità dello stesso oggetto. In modo da rendere il più indipendente possibile l'applicazione dall'ambiente esterno rispetto ai oggetti d'interesse. 4.2 Metaio SDK Il Metaio SDK è un framework modulare che include vari componenti tra cui quello di cattura, di interfaccia per il sensore, di rendering, di tracking e l'interfaccia di l'applicazione Metaio e le SDK. altre 4 L'interfaccia componenti consente modulari. l'interazione In base a tra tale impostazione, i dettagli delle implementazioni sono incapsulati e l'utente non deve preoccuparsi dei dettagli della cattura, del rendering, dei sensori o del tracking. Le principali funzionalità sono realizzate attraverso semplici API SDK che dialogano con le altre parti del SDK, che si traduce nella semplice realizzazione di applicazioni AR. Le SDK di Metaio sono compatibile con tutte le principali piattaforme per lo sviluppo di software: Android, IOS, Unity3D e Windows. Le interfacce speciche della piattaforma di Metaio SDK possono facilmente interagire con l'ambiente di sviluppo. La combinazione piattaforma SDK porta alle applicazioni 23 AR. di Metaio SDK e la 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio Il framework di Metaio SDK è illustrato nella seguente immagine: Figura 4.1: Framework Metaio SDK 4.3 Armadio di rete: descrizione degli esperimenti Come detto precedentemente, il lavoro è stato svolto cercando di partire da un problema generale e di ricondurlo, attraverso un sistema di ranamento, alla soluzione del nostro problema. Siamo partiti da un problema più astratto, e semplice, per mettere alla prova la libreria Metaio SDK e valutare se sia adatta a risolvere il nostro problema. La libreria ore vari tipi di tracking e strumenti. Noi cercheremo di partire da quelli più semplici per arrivare a quelli più complessi, no ad arrivare alla soluzione 24 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio che possa essere un minimo soddisfacente. Target semplice: Siamo partiti da un esperimento basilare, cioè abbiamo istruito l'applicazione nel riconoscimento di un'immagine dell'oggetto da tracciare, nel nostro caso un singola presa RJ45: Figura 4.2: Presa RJ45 I risultati così ottenuti sono i seguenti: Il riconoscimento dell'immagine, data per il tracciamento, risulta essere immediata con la possibilità del posizionamento di un modello (anche 3D) nella posizione desiderata. Utilizzando la stessa applicazione per il riconoscimento dell'oggetto reale risulta essere molto più problematico. In quanto questo approccio stabilisce alcuni punti dell'immagine, dato per il tracciamento, e cerca di individuare questi punti (o almeno una minima percentuale di questi) per trovare l'oggetto. Questi punti sono ottenuti dall'immagine e in particolare dai contrasti presenti in questa. Quindi non essendo possibile avere nella realtà l'oggetto tracciato sempre nelle stesse condizioni. Cioè stessa angolazione, luce e altri fattori esterni. Risulta piuttosto dicile la ricerca di questi punti e di conseguenza il riconoscimento dell'oggetto reale. Target astratto: Partendo dalle considerazioni precedenti abbiamo deciso di provare ad astrare, il più possibile, l'oggetto di riferimento. Abbiamo cercato di ridurre al minimo i punti per il tracciamento, in modo da ottenere solo quelli principali. Figura 4.3: Presa RJ45 stilizzata 25 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio I risultati così ottenuti sono peggiori dei precedenti in quanto Metaio SDK, in questo caso, non riesce a individuare nessuna correlazione tra il nostro modello astratto e l'oggetto reale. Target con dettaglio aumentato: A questo punto si è deciso di andare nel senso contrario cioè di aumentare il dettaglio del target. Figura 4.4: Presa RJ45 Con Dettaglio Aumentato Siamo andati aumentare i ad punti agire manualmente d'ancoraggio. sull'immagine Abbiamo messo in per cercare bianco e di nero l'immagine e disegnato linee ttizie in modo da ottenere il target più completo possibile. Questo caso mostra risultati intermedi tra i due casi precedentemente analizzati. Non dando particolari indizi su come migliorare l'approccio adottato. Target con maggior contrasto locale: Partendo dalle basi che i punti sono scelti in base al contrasto. Abbiamo pensato di aumentare il contrasto per avere un'immagine con maggior possibilità di avere i punti in una certa area. Rendendo l'immagine più nitida possibile. Figura 4.5: Presa RJ45 Con Maggior Contrasto Locale 26 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio In questo caso abbiamo visto un netto miglioramento nel riconoscimento dell'immagine tracciata. Ma si continua avere problemi nel riconoscimento dell'oggetto reale. Il problema individuato risulta essere che se si tende a dare un target ben denito, questo tipo di tracking tenderà a riconoscere solamente quella particolare situazione. Mentre se cerchiamo di astrare il target si arriverà a non riconoscere minimamente l'oggetto da tracciare. Quindi bisogna cercare un equilibrio piuttosto critico e dicile da raggiungere. Target con poca/più luce: Abbiamo anche cercato di fare esperimenti con diversa luce sul target per vedere se avesse qualche rilevanza. Abbiamo realizzato due target uno con poca luce (a) e uno con più luce (b). Dai (a) Presa RJ45 Con Poca Luce (b) Presa RJ45 Con Più Luce esperimenti eettuati si arrivati alla conclusione che in questo tipo di tracking la luce non sembra avere particolare rilevanza. In quanto i risultati non dierisco di tanto. Risultando essere molto simili a quelli previsti. Riconoscimento della forma del target: A questo punto si è cercato di partire con un approccio dierente. Invece del target in sé, abbiamo usato come target il suo contorno. In modo da cercare di riconoscere la forma dell'oggetto in questione. I risultati cosi ottenuti, con questo tipo di In quanto questo tipo di tracking tracking, sono piuttosto scadenti. non è progettato per questo uso. 27 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio Target con varie angolazioni: per testare questo tipo di tracking, Abbiamo provato a fare varie prove tra le quali provare a riconoscere il target da varie angolazioni. (c) Target con varie (d) angolazioni Target con varie angolazioni I risultati mostrano che l'applicazione non trova dicoltà a riconoscere il target da varie angolazioni. Riconoscimento punti specici del target: Si è provato a ridurre la complessità del target cercando di far riconoscere una parte specica. Figura 4.6: Pin della Presa RJ45 I risultati mostrano che, questo tipo di parte dell'oggetto al oggetto stesso. tracking, Questo non riesce associare una porta delle dicoltà nel riconoscere l'oggetto, in quanto è necessario che una certa percentuale dello schermo sia occupata dal target da riconoscere. Questo costringe l'utente ad avvicinarsi, più di quanto vorremo, all'obiettivo lasciando fuori una parte dell'oggetto. Multiple target con immagini dierenti: Si è deciso provare il tracking multiplo, per vedere come si comporta Metaio in questa situazione. In questa prova si sono presi più target diversi tra loro, e si è cercato di fargli riconoscere alla nostra applicazione contemporaneamente. I risultati così ottenuti sono abbastanza soddisfacenti. velocemente senza errori. 28 I target vengono riconosciuti 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio Multiple target con la stessa immagine: Visti i risultati precedenti, abbiamo deciso di andare più aondo in questa direzione. Tenendo conto che il nostro obiettivo consiste nel riconoscere più oggetti uguali tra loro, si è deciso di fare lo stesso esperimento di prima però con i target uguali tra loro. I risultati mostrano diversi problemi nel riconoscimento dei target. Quasi tutti possono esser ricondotti a un problema principale, cioè il tracking tende a identicare nello stesso target più oggetti, tralasciando gli altri. Si è cercato di risolvere questo problema in vari modi intervenendo manualmente sul codice, ma senza successo. Prove dirette/indirette sull'armadio di rete: Tutto il testing dei precedenti esperimenti è stato svolto sia indirettamente, cioè sulle immagini dell'armadio di rete, sia sull'armadio di rete direttamente. Si è notato che i risultati ottenuti n qua sono leggermente migliori nel testing sulle immagini che sull'armadio di rete vero e proprio. Questo perché nel caso reale ci sono molti più fattori che vanno a inuenzare il Target singola-Presa CAD Model: tracking. Tutte le prove condotte ci hanno portato alla conclusione che questo tipo di tacking non andasse bene per i tracking, ancora in fase di beta, sempre delle SDK di Metaio. Questo tipo di tracking nostri obiettivi. Quindi si è deciso di provare un nuovo tipo di si basa su dei modelli CAD del nostro oggetto da tracciare. E si concentra più sulla forma che l'oggetto stesso. In questo modo si rende indipendente il tracking dai colori dell'oggetto. Figura 4.7: CAD Model presa RJ45 singola Un primo esperimento è stato condotto su una singola presa. Abbiamo costruito un modello 3D della nostra presa con Blender. Questo modello lo abbiamo dato in pasto a un altro strumento, Metaio Creator, che ci restituisce i le di tracking e altri le necessari a questo tipo di tracking. I risultati ottenuti in questo modo sono stati buoni. E ci hanno spinto ad andare in questa direzione. 29 4.3 Armadio di rete: descrizione degli esperimenti Soluzione con Metaio Target multi-Presa CAD Model: A questo punto abbiamo costruito un modello con più prese per vedere se questo tipo di tracking riesce a riconoscere più oggetti. Trovandoci di fronte alla prima limitazione di questo tipo di tracking. non è possibile avere il abbiamo deciso di Cioè essendo una tecnologia ancora in fase beta, multi-tracking. andare avanti Sorvolando su questa limitazione considerando il nostro oggetto da riconoscere non più una singola presa, ma un insieme di prese. Figura 4.8: Multi-Presa CAD Model I risultati così ottenuti sono molto ottimi, con l'unico problema che quando alle prese sono collegati dei li, il posizionamento dei nostri modelli sul target non avviene in modo corretto. Molto probabilmente causato dal fatto che il tracking localizza un falso target o comunque in una posizione non corretta del tutto. Target con linemodel e sufacemodel realizzati manualmente: Per cercare di ridurre i falsi abbiamo provato ad aumentare l'accuratezza del nostro modello. Questo ci ha portato ad avere un modello più grande rispetto ai precedenti, surfacemodel.obj con ottenuti la da conseguenza Metaio che Creator i non le linemodel.obj sono più corretti. Questo è causato da una limitazione di Metaio Creator su cui non possiamo andare ad agire. Figura 4.9: Multi-presa Cad Model manuale Però abbiamo trovato un modo per aggirare il problema, cioè costruendo questi le manualmente, attraverso Blender. Questo ci ha dato anche la possibilità di avere dei modelli proprio come gli volevamo noi. Questo esperimento ha migliorato di molto i risultati precedenti, ma ha ancora molti falsi. 30 4.4 Tipi di tracking Soluzione con Metaio Target con 24 prese + dettagli ambiente : Procedendo sulla linea del scorso esperimento per cercare di ridurre al massimo i falsi, abbiamo costruito il modello completo con l'aggiunta di alcuni dettagli ambientali. In più aumentando un fattore, messo a disposizione da Metaio, di minima qualità richiesta per riconoscere un oggetto, siamo riusciti a a ridurre di molto i falsi. E adottando come modelli da visualizzare delle sfere abbiamo risolto anche il problema legato all'angolo di visualizzazione dei nostri modelli. Figura 4.10: Multi-presa Cad Model 24p 4.4 Tipi di tracking Metaio Mobile SDK fornisce diverse strategie di tracking può essere memorizzato in un le conguration le. Questi le determinano tracking. Ogni metodo di XML, che si chiama le impostazioni, di tracking tracking, dell'applicazione e possono essere facilmente modicati con semplici editor di testo. In generale, ci sono due congurazioni di markerless. Come suggerisce il nome, il tracking tracking : marker-based e basato sui marcatori si usa per il tracciamento di un marcatore che la fotocamera può ecacemente rilevare. Con l'aiuto di un marcatore, le condizione di essere facilmente congurate. Il tracking tracking possono funziona più velocemente con tracciamento basato sui marcatori perché i marcatori sono generalmente più facili da individuare. E il design dei marcatori di solito può garantire un allineamento veloce, che quindi consente un tracking più preciso e robusto. Con dierenti disegni di marcatori, Metaio SDK è in grado di congurare markerless. metodi e tracciare più target che con congurazioni di tracking Oltre ai metodi di rilevamento ottici, Metaio SDK ore anche non ottici per consentire l'uso di altri tipi di sensori delle telecamere. Anche se solo un target può essere congurato e tracciato con metodi non ottici e la precisione di rilevamento è altamente condizionata sul sensore non ottico su un dispositivo mobile, la congurazione con metodi non ottici batte i metodi Robust e Fast tracking in quanto non richiede la presenza di una prima trasformazione dell'immagine. 31 4.4 Tipi di tracking Soluzione con Metaio Image tracking Metaio SDK ore attualmente due tipi di e Robust. Il metodo Fast marker-less image tracking, Fast funziona bene su una vasta gamma di target, ed è quello che abbiamo usato nella prima parte dei esperimenti. Funziona abbastanza uentemente relativamente recenti strutturati. Il metodo metodo Fast ed sulla è Robust maggior molto parte stabile su telefoni Robust si adatta tracking ottenuti con il non ha dato risultati soddisfacenti. Il metodo Robust migliora nel tempo: quanto più a lungo e più volte si sposta il dispositivo mobile di fronte al target tracciato migliore è il ottenuto. Di seguito diamo un esempio di un cellulari moderatamente dovrebbe essere provato su obiettivi in cui il bene agli target altamente strutturati. I risultati di metodo dei target tracking tracking conguration le : <?xml v e r s i o n ="1.0"?> <TrackingData> <Sensors > <Sensor Type="FeatureBasedSensorSource " Subtype="Fast"> <SensorID>FeatureTracking1 </SensorID> <Parameters> <FeatureDescriptorAlignment >r e g u l a r </ FeatureDescriptorAlignment > <MaxObjectsToDetectPerFrame >30</ MaxObjectsToDetectPerFrame> <MaxObjectsToTrackInParallel >30</ MaxObjectsToTrackInParallel> <S i m i l a r i t y T h r e s h o l d >0.7</ SimilarityThreshold > </Parameters> <SensorCOS> <SensorCosID>Patch1</SensorCosID> <Parameters> <ReferenceImage>t a r g e t . png</ReferenceImage> <S i m i l a r i t y T h r e s h o l d >0.7</ S i m i l a r i t y T h r e s h o l d > </Parameters> </SensorCOS> </Sensor> </Sensors > <Connections> <COS> <Name>MarkerlessCOS1 </Name> <Fuser Type="SmoothingFuser"> <Parameters> 32 4.4 Tipi di tracking Soluzione con Metaio <KeepPoseForNumberOfFrames>5</ KeepPoseForNumberOfFrames> <G r a v i t y A s s i s t a n c e ></G r a v i t y A s s i s t a n c e > <AlphaTranslation >1.0</ AlphaTranslation > <GammaTranslation >1.0</GammaTranslation> <AlphaRotation >0.8</ AlphaRotation> <GammaRotation>0.8</GammaRotation> <ContinueLostTrackingWithOrientationSensor >f a l s e </ ContinueLostTrackingWithOrientationSensor > </Parameters> </Fuser> <SensorSource > <SensorID>FeatureTracking1 </SensorID> <SensorCosID>Patch1</SensorCosID> <HandEyeCalibration> <T r a n s l a t i o n O f f s e t > <X>0</X> <Y>0</Y> <Z>0</Z> </T r a n s l a t i o n O f f s e t > <R o t a t i o n O f f s e t > <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </R o t a t i o n O f f s e t > </HandEyeCalibration> <COSOffset> <T r a n s l a t i o n O f f s e t > <X>0</X> <Y>0</Y> <Z>0</Z> </T r a n s l a t i o n O f f s e t > <R o t a t i o n O f f s e t > <X>0</X> <Y>0</Y> <Z>0</Z> <W>1</W> </R o t a t i o n O f f s e t > </COSOffset> </SensorSource > </COS> </Connections> </TrackingData> 33 4.4 Tipi di tracking Soluzione con Metaio Descriviamo brevemente i vari parametri. FeatureDescriptorAlignment: descrittori di funzione : • Sono disponibili regular, upright, gravity Regular: Il descrittore regular e I seguenti tipi rectied. di è il descrittore più generale e viene utilizzato come default se la variabile non è specicata. • Upright: Il descrittore upright presuppone che la fotocamera non viene ruotata rispetto all'asse ottico, cioè si capovolge, durante il processo di tracking. • Gravity: Il descrittore gravity può essere utilizzato solo con i dispositivi dotati di sensori inerziali che misurano la gravità. E' usato per localizzare oggetti statici che forniscono (vicino a) superci verticali, ad esempio edici o manifesti su un muro. L'orientamento delle caratteristiche sarà poi allineato con la gravità. • Rectied: Il descrittore rectied può essere utilizzato solo con i dispositivi dotati di sensori inerziali che misurano la gravità. Viene utilizzato per oggetti planari su un piano orizzontale, ad esempio una rivista su un tavolo. Ciò migliorerà il risultato della localizzazione di oggetti planari sotto angolazioni ripide a costo di una frammentazione inferiore durante la localizzazione. MaxObjectsToDetectPerFrame: Una restrizione sul numero di oggetti planari di riferimento da localizzare per fotogramma. La localizzazione richiede più tempo rispetto al interframe tracking, e se il sistema tenta di localizzare troppi oggetti allo stesso tempo, potrebbe causare un inferiore. Il valore di default è 5, e viene utilizzato se il tag framerate non viene specicato. MaxObjectsToTrackInParallel: Il numero devono essere tracciati in parallelo. Fare il massimo tracking parallelo è abbastanza costoso e potrebbe portare a un di oggetti che di molti oggetti in framerate più basso. Non appena viene raggiunto il numero massimo di oggetti tracciati, il sistema non cercherà di localizzarne altri. Il valore di default è 1, e viene tag utilizzato se il non viene specicato. SimilarityThreshold: la verica del tracking Predenita soglia di somiglianza per specicare se è riuscito o meno. La misura della qualità di tracking è denita tra -1 e 1, dove 1 è il miglior valore possibile. Se la qualità di tracking è riportato al di sotto della soglia, il tracker tratterà il fotogramma corrispondente come perso. Il valore di default è 0.7, e viene utilizzato se il tag non viene specicato. Questa impostazione può essere sovrascritta per ogni COS (Coordinate System ) 34 se è denita in questi. 4.4 Tipi di tracking Soluzione con Metaio ReferenceImage: Il nome del le immagine di riferimento. Se disponibili, la larghezza e l'altezza, del modello di WidthMM aggiungendo li attributi e/o tracking, possono essere specicati HeightMM, in millimetri. Se questi valori non sono tutti specicati, saranno utilizzati la larghezza e l'altezza dell'immagine di riferimento in pixel. Se vengono specicati solo la larghezza o l'altezza, il quantitativo mancante verrà calcolato in modo tale che le dimensioni siano d'accordo con il rapporto dell'immagine. KeepPoseForNumberOfFrames: Numero di fotogrammi in cui il tracker continuerà prevedere la posizione dell'oggetto tracciato, quando il interframe fallisce. Dopo il numero specicato di fotogrammi, il tracking tracker ferma la previsione. GravityAssistance: Se il dispositivo di tracking è dotato di un sensore inerziale in grado di misurare la gravità, la misurazione del sensore viene utilizzato per migliorare la stima posizione. Per attivare questa opzione, il valore di questo tag deve essere impostato su AlphaTranslation: ReplaceZAxis. Questo valore deve essere elevato se si prevede di avere misure accurate e bassa altrimenti. Un valore elevato assegna un peso maggiore per una nuova misurazione. In genere, l'accuratezza delle stime di traslazione è piuttosto alto, quindi abbiamo impostato il fattore di livellamento a 0.8. Il valore di default è 0.5. GammaTranslation: Questo valore deve essere elevato se si prevede di avere misure accurate e bassa altrimenti. Con lo stesso ragionamento di cui sopra, abbiamo impostato il fattore di livellamento a 0.8. Il valore di default è 0.5. AlphaRotation : Le Misure di rotazione sono in genere meno precise rispetto alle misurazioni di traslazione, Per questo usiamo un valore più basso, 0.5. GammaRotation : Con lo stesso ragionamento di qui sopra per AlphaRotation, abbiamo impostato questo valore a 0.5. ContinueLostTrackingWithOrientationSensor : Se è disponibile un sensore di orientamento, il sistema può tentare di tenere aggiornata la posizione sulla base di misurazioni del sensore di orientamento. Se questo deve essere fatto, allora questa opzione deve essere impostata su valore di default è false. HandEyeCalibration true. Il : Una calibrazione fatta ad occhio permette di 35 4.4 Tipi di tracking Soluzione con Metaio specicare la relativa posizione tra due sensori. Nel caso semplice di avere un sensore basato su telecamera, di solito non è utilizzato. Permette di spostare le COS come se la macchina fotograca sia stata spostata, ed è quindi inversa alla trasformazione rigida, COSOffset. 3D Markerless Tracking basato su CAD Data 3D markerless tracking basato su CAD Data è una nuova funzionalità beta delle SDK 5.0 per consentire una localizzazione precisa della posa 3D dell'oggetto sulla base di un determinato modello 3D (di una parte) dell'ambiente, ad esempio un piccolo oggetto che deve essere tracciato o un edicio da cui deve essere determinata la posizione e la distanza dalla telecamera. É utilizzato molto come il tracking esteso, utilizzando un modello 3D basato sulla inizializzazione della posizione per consentire un aumento accuratamente scalato e localizzato. Rileva la posizione della fotocamera una sola volta e poi passa al Il processo basato Dummy Tracker sulla markerless 3D tracking. inizializzazione dei bordi usa separatamente o GPS controllabili, bussola e sensori gravitazionali per dare una prima approssimazione della posa e cerca la posizione corretta della fotocamera in un intervallo determinabile intorno ad esso. Richiede un modello della supercie e un modello dei bordi dell'ambiente o oggetto da tracciare. Questi modelli e le di tracking possono anche essere creati attraverso Metaio Creator 3.0. Le opzioni di congurazione per il sensore basato sulla inizializzazione dei bordi sono abbastanza multiformi. Questa è la struttura di base del le di congurazione: <?xml v e r s i o n ="1.0"?> <TrackingData> <Sensors > <Sensor Type="E d g e B a s e d I n i t i a l i z a t i o n S e n s o r S o u r c e"> <SensorID>E d g e B a s e d I n i t i a l i z a t i o n </SensorID> <Parameters> <TriangleMesh>TriangleMesh . obj </TriangleMesh> <TrackingConfiguration >I n i t i a l P o s e . xml</ TrackingConfiguration > <UseSensorsForPoseCreation >o f f </ UseSensorsForPoseCreation > <OriginCoordinates > <Latitude >0.0</ Latitude > <Longitude >0.0</ Longitude> </OriginCoordinates > 36 4.4 Tipi di tracking Soluzione con Metaio <I n i t i a l i z a t i o n T e s t M o d e >f a l s e </ InitializationTestMode > <AutoInit> <!−− auto i n i t parameters −−> </AutoInit> <EdgeAlignment> <!−− edge alignment parameters −−> </EdgeAlignment> <FeatureTracking> <!−− f e a t u r e t r a c k i n g parameters −−> </FeatureTracking> </Parameters> <!−− COS 1 Name −−> <SensorCOS> <SensorCosID>TrackingPose </SensorCosID> </SensorCOS> </Sensor> </Sensors > <Connections> <!−− COS 1 c o n t a i n s the t r a c k i n g pose −−> <COS> <Name>TrackingPose </Name> <SensorSource > <SensorID>E d g e B a s e d I n i t i a l i z a t i o n </SensorID> <SensorCosID>TrackingPose </SensorCosID> </SensorSource > </COS> </Connections> </TrackingData> Dove <EdgeAlignment>, <AutoInit> tracker. diverse parti del e <FeatureTracking> congurano Diamo di seguito una breve descrizione dei parametri più importanti: TriangleMesh: Percorso della mesh a triangoli, Wavefront.obj, da utilizzare come un modello di supercie per le prove di occlusione e punti di funzionalità del tracking. Essa deve contenere solo vertici e primitive con tre vertici(triangoli). TrackingConguration: tracking Il nome dummy ) ( della congurazione di che fornisce una prima posa di default per ogni fotogramma. Non viene utilizzato se è utilizzato il GPS per il calcolo della prima posa. UseSensorsForPoseCreation: Specica quali sensori del dispositivo dovrebbero essere utilizzati per determinare la posizione prima di ogni frame. Può valere uno delle seguenti impostazioni: 37 4.4 Tipi di tracking • Soluzione con Metaio o: Non vengono utilizzati sensori. Questa congurazione richiede che venga data un TrackingConfiguration in modo da denire una posizione iniziale. • TrackingConfiguration gravity: Utilizza anche il ma allinea la posa anche con la gravità rispetto al dispositivo. Utile per trasformare e spostare un modello sullo schermo ruotando il dispositivo. Richiede che il modello sia creato con la gravità allineata con asse Z rivolto verso l'alto. • TrackingConfiguration gravity_compass: Sostituisce il gravità e l'orientamento con il sensore di gravità e ponendo la bussola del dispositivo. Utile solo nel caso delle applicazioni geostatiche, dove la posizione dell'utente è nota e il modello è allineato con il nord e con l'asse Z rivolto verso l'alto. • all: Utilizza il GPS, bussola e informazioni del sensore gravitazionale TrackingConfiguration non viene utilizzato, ma OriginCoordinates del modello sono obbligatorie. Il modello deve del dispositivo. Il le essere scalato con 1000.0f = 1 m, allineate in direzione nord e l'asse Z rivolto verso l'alto. OriginCoordinates: Le coordinate (OriginCoordinates/Latitude) Questo valore latitudine della (OriginCoordinates/Longitude) dell'origine System 84 (WGS84). È necessario (UseSensorsForPoseCreation = all) viene TrackingConfiguration. InitializationTestMode: della e longitudine World Geodetic nel sistema solo se utilizzato al può essere il posto sia 0 GPS di un (inattivo, default) o 1 (attivo). se inattivo, il tracker automaticamente tracking. un alla prima rilevazione, con successo, della posa crea punto cartograco 3D e passare TrackingEvent con continuerà con il tracking Si lancerà, una volta, un ETS_REGISTERED, e poi si markerless 3D il tipo di stato basato sul punto funzionale come al solito. Se la modalità di test è attivo, il tracker tenta continuamente di trovare la posa della prima stima fornita senza passare per il Questa modalità può essere usata per markerless 3D tracking. regolare altri parametri più ecacemente. Nella modalità di test il tracker come al solito lancia il 38 TrackingEvent con 4.4 Tipi di tracking Soluzione con Metaio il tipo di stato ETS_FOUND ogni volta che il tracking va a buon ne là dove nel fotogramma precedente non è riuscito, ed emettere un evento con ETS_LOST stato quando il tracking non è riuscito dove nel fotogramma precedente è riuscito. Parametri per EdgeAlignment L'allineamento dei bordi è la congurazione di base per l'inizializzazione basata sui calibrati bordi. a Ci sono seconda tre parametri dell'applicazione: principali che MinQuality, devono essere SearchRange e NumFeatures. LineModel: Il nome del le .obj che contiene il modello dei bordi. Il modello deve contenere solo vertici e primitive 2D e deve essere nello stesso sistema di coordinate MinQuality: posizionare TriangleMesh del sensore. In ogni fotogramma l'allineamento dei bordi cercherà di il modello dei bordi congruentemente ai bordi osservati nell'immagine per determinare la corretta posa. Successivamente la qualità di questo allineamento viene valutato per determinare se l'allineamento è riuscito. Il MinQuality specica il valore minimo del tasso di allineamento medio conseguito. Si tratta di un valore compreso tra 0.0 e 1.0 e il principale modo di scorrimento per regolare l'accettazione contro la precisione. I valori signicativi sono compresi tra 0.55 e 0.85 e dipendono dal modello utilizzato e da un piccolo grado sulle relative condizioni di illuminazione. Modelli con bordi chiaramente rilevabili (ad esempio lungo, nero distinto, bordi bianchi, ecc..) consentiranno una soglia elevata e un basso tasso di falsi. Modelli meno distinti con ripetizioni o inesattezze produrranno valori di qualità inferiore e richiedono una soglia più bassa, aumentando anche il rischio di false rilevazioni. Quindi bisogna regolare la soglia secondo il modello e alle esigenze dell'applicazione. SearchRange: La seconda regolazione, principale, è la dimensione della zona da considerare quando si cerca il modello dei bordi nel immagine. Che viene specicato in millimetri. Generalmente si consiglia di scegliere una lunghezza che impedisce falsi riconoscimenti di linee parallele nel modello, senza però rendere il campo di ricerca troppo piccolo. Se questo valore non è specicato aatto, l'intervallo di ricerca sarà una frazione ssa della dimensione dell'immagine della telecamera invece di essere in scala mondiale. NumFeatures: La terza regolazione principale è il rapporto tra la qualità 39 4.4 Tipi di tracking Soluzione con Metaio e le prestazioni. Maggiore è la quantità di elementi nel modello dei bordi, più preciso e robusto diventa il calcolo della posa ma diventa più costosa la determinazione della corrispondenza. Come linea guida, per un semplice modello è richiesto un numero minimo di circa 100 punti campione per funzionare. Nei dispositivi mobili più potenti il numero può essere aumentato a circa 500 punti, e su dispositivi desktop diverse migliaia di punti non sono un problema. VisibilityTest/Enabled: Se il modello dei bordi utilizzato contiene una notevole quantità di linee interne o backside che potrebbero essere occluse dal modello di supercie (non sono visibili da ogni punto di vista possibile), è richiesto il test di visibilità. Sono possibili due opzioni: • o: Nessun test visibilità è usato, tutte le linee sono assunte essere visibili tutto il tempo. • on: Calcola la visibilità dei elementi del modello dei bordi da occlusione con il modello di supercie specicato da TriangleMesh. VisibilityTest/TestRate: 1,0 per il test di visibilità. Specica il tasso della prova tra 0,0001 e Un valore minore di 1.0 riduce il costo computazionale sacricando un pò di precisione. In media, ad esempio per un modello appropriato. con 100 Riduce linee i con costi 500 no tratti, al 90% un valore di mantenendo 0.1 la a 0.2 è sensibilità approssimativamente del 98% per la prova. Parametri per AutoInit Questo nodo opzionale specica il comportamento del sensore quando si cerca di registrare inizialmente la posa durante l'allineamento dei bordo. Varia la posa prima in un intervallo determinabile per esplorare un'intera GPS-based area intorno alla prima posa ( o dummy ). PresetType: Questo parametro può assumere i seguenti valori: • o: L'esplorazione dello spazio di posa è disabilitato. • indoor: Esplorazione di un spazio di posa interno. • outdoor: Esplorazione di un spazio di posa esterno. • custum: Esplorazione personalizzata dello spazio di posa. Tutti i parametri devono essere dati manualmente. I seguenti parametri custom AutoInit vengono utilizzati solo se il . 40 PresetType è 4.4 Tipi di tracking COS: Soluzione con Metaio Specica il sistema di coordinate in cui l'esplorazione spaziale della posa deve essere eseguita: • • camera (default): Sistema di coordinate della camera in OpenGL. Le CoS OpenGL al mondo CoS. word: Sistema di coordinate del mondo in dell'asse saranno mappati dal • OpenGL. variazioni World word e yr_world_rest_camera: Le Rotazione saranno eettuati in CoS, mentre il resto sarà eseguito in CoS camera. yr_world_rest_camera entrambi suppongono che: l'asse Z nel modello dei bordi CoS sia rivolto verso l'alto, cioè sia uguale all'asse Y del CoS OpenGL e l'origine sia nel (o vicino al) centro di massa. NumSharedVariationsPerFrame: Numero massimo di varianti da calcolare in un singolo fotogramma. Se 0, questa funzionalità è disabilitata e l'intera gamma di variazioni verrà eettuata in ogni fotogramma. Parametri per FeatureTracking tracking Questo nodo opzionale contiene i parametri per la funzione di a seguito di un'inizializzazione avvenuta con successo quando la modalità di test di inizializzazione di cui sopra non è attivo. I suoi parametri sono identici a markerless 3D tracking, con l'eccezione che non specica esplicitamente una mappa, in quanto la mappa viene creata durante il runtime per l'inizializzazione basata sui bordi. Parametri immediati per il sensore markerless 3D FeatureTracking, i parametri FeatureTracking/Parameters. Tra cui per i devono essere aggiunti in i due più SensorCOS importanti in sono i seguenti due parametri: FeatureTracking/Parameters/MapExtensionMethod : Questo valore determina dove imparare nuove funzionalità di markerless 3D tracking, che è una nuova opzione aggiunta con l'inizializzazione basata sui bordi. • narrow: Limità i tratti nella TriangleMesh, che aumenta la precisione e consente al modello di muoversi rispetto all'ambiente, ma ha anche una gamma di tracking più limitato in quanto il tracking scivola più velocemente. • wide: Solito (default) tracking markerless 3D tracking. Ha una gamma di superiore dal punto di vista dell'inizializzazione ma richiede che il modello sia statico nell'ambiente. FeatureTracking/Parameters/NumExtensibleFeatures : Il numero massimo di punti caratteristici per imparare e tenere traccia del 41 4.4 Tipi di tracking markerless 3D tracking. Soluzione con Metaio 1000 o più sono consigliabili nella maggior parte delle situazioni. A seconda dell'ambiente e il dispositivo no a 3000 o più sono anche possibili. Altre funzionalità consentono una gamma più ampia di tracking, ma riducono le prestazioni. 42 Capitolo 5 Conclusione La library Metaio ore una vasta scelta di possibili tipi di tracking. Infatti tutti questi sono ottimizzati per un uso particolare. Noi nel nostro studio ne abbiamo preso in considerazione due in particolare: image markerless tracking Nella prima parte basato sui dati CAD. del lavoro abbiamo utilizzato tracking e image tracking l' 3D che utilizza delle immagini del target da tracciare. Abbiamo eettuato vari esperimenti utilizzando caratteristiche dierenti, questo tracking target con manipolati diversi target, manualmente target e in con diverse condizioni ambientali. Molti di questi hanno dato dei buoni risultati nella prima fase degli esperimenti, ma successivamente hanno mostrato vari difetti quando si è cercato di provare a fare ciò che volevamo ottenere realmente. tracking Attraverso i vari esperimenti abbiamo realizzato che questo tipo di è ottimale per target piatti (es. foto, immagini, ecc..), ma mostra dicoltà nel riconoscere oggetti più complessi. Nel caso del multi-tracking mostra buoni risultati quando i target da riconoscere sono dierenti tra loro, mentre i risultati sono scandenti nel caso di vari target uguali tra loro. Come specicato nella soluzione generale, noi abbiamo necessità riconoscere le varie prese uguali tra loro e quindi questo tipo di tracking risulta essere non adatto ai ni del nostro obiettivo nale. Il 3D markerless tracking basato sui dati CAD è stato costruito per riconoscere oggetti 3D, indipendentemente dai colori. Infatti questo tipo di tracking tenta di riconoscere l'oggetto in questione basandosi sui contorni. image tracking, perché necessità di Risulta essere più complesso, rispetto all' le aggiuntivi come target che devono essere costruiti a parte. Questi le possono essere ottenuti attraverso l'utilizzo Metaio creator, un software messo a disposizione da Metaio. Metaio Creator non è adatto per la costruzioni di target complessi, per questo nel nostro costruito i le manualmente con Blender. Nel caso del 43 caso abbiamo 3D markerless Conclusione tracking basato sui dati CAD abbiamo sempre agito, come negli altri casi, partendo da un caso più generale richiedo di riconoscere una singola presa. Questo ha mostrato dei risultati ottimi, cosa che ci portato a continuare su questa strada. Seguendo lo stesso processo di prima siamo riusciti a costruire un primo esempio della applicazione nale che volevamo ottenere. Questo tipo tracking è risultato essere quello più adatto per i nostri ni, ma essendo in fase di beta ha ancora alcune mancanze. La mancanza più grande che abbiamo notato è l'impossibilità di eettuare il multi-tracking, che ci ha costretto a costruire un target più grande formato dall'insieme delle prese RJ45. E non permettendoci di utilizzare, come target, una singola presa screeshoot come si era sperato di fare. Di seguito riportiamo lo dell'applicazione in funzione: Figura 5.1: Armadio di rete Dove il pallino rosso indica il lo da staccare e il pallino verde indica la presa dove andrebbe inserito. 44 Appendice 5.1 Visione articiale Oltre alla realtà aumentata abbiamo cercato di esplorare anche altre possibilità, tra cui la visione articiale. La visione articiale è in genere denita come la costruzione di una descrizione esplicita e signicativa della struttura e delle proprietà del mondo tridimensionale partendo da immagine bidimensionali. La visione articiale è un campo che include i metodi per l'acquisizione, l'elaborazione, l'analisi e la comprensione di immagini e, in generale, dati ad alta dimensione dal mondo reale al ne di produrre informazioni numeriche o simboliche. La visione articiale rappresenta un ramo dell'Intelligenza Articiale( AI ), che mira all'analisi e all'interpretazione delle informazioni visive. Il processo della visione articiale consiste nel partire da un'immagine o una sequenza di immagini e, attraverso i vari stadi, arrivare ad ottenere una descrizione, interna al computer, della scena. I problemi di comprensione dell'immagine sono al centro degli attuali sforzi per consentire a una macchina di fare delle interazioni intelligenti con l'ambiente. I sensori vengono utilizzati per ottenere informazioni dall'ambiente 3D che possono vericarsi sotto forma di parlato naturale, immagini, rumori, ecc. Queste informazioni vengono quindi processate per arrivare a una forma di rappresentazione interna dierente, consentendo alla macchina di interagire con l'ambiente, che può essere in forma linguistica o sotto forma di azioni di un robot. 5.2 OpenCV La libreria che è stata utilizzata è OpenCV e ore con il supporto per android. vari moduli per diverse OpenCV4Android. Che è la libreria OpenCV ha una struttura modulare, operazioni. Alcuni di permettono la manipolazione delle immagini, contenute in che è una libreria progettata per applicazioni 45 Desktop questi moduli imgproc. Visto le implementazioni 5.2 OpenCV Appendice degli algoritmi sono abbastanza onerose dal punto di vista del calcolo per i dispositivi mobile. Per questo motivo è necessario un dispositivo mobile con una potenza di calcolo abbastanza elevata per ottenere dei risultati più uidi. L'applicazione che abbiamo realizzato è piuttosto semplice e consiste nel riconoscere dei rettangoli che marcargli in qualche modo. Riconoscere rettangoli Per ottenere il risultato voluto abbiamo dovuto passare da varie fasi. Infatti diversamente dalla libreria di realtà aumentata, Metaio SDK, con OpenCV si lavora a un livello più basso. Quindi molte operazioni sono state fatte esplicitamente. Il lavoro si svolto in questo modo: • Prima di tutto è stato necessario convertire l'immagine in scala di grigi per poter applicare gli algoritmi successivi. • É stato applicato un ltro per sfumare l'immagine, che ci ha permesso di eliminare maggior parte del rumore. Questo è stato ottenuto attraverso l'applicazione una sfumatura Gaussiana. • A questo punto abbiamo utilizzato l'algoritmo di Canny per evidenziare i contorni presenti nell'immagine. Questo algoritmo colora di bianco i contorni degli oggetti presenti nell'immagine e assegna il colore nero a tutto il resto. • Utilizzando una funzione di OpenCV abbiamo ottenuto i contorni, che appunto restituisce una lista dei vertici che compongono i contorni. • Dopo aver ottenuto i contorni, approssimiamo ogni uno di questi con un'altra curva di numero di vertici inferiore. Questo per trattare i contorni con curve più semplici su cui fare le valutazioni. • Alla ne si fanno delle valutazioni sulle curve approssimate in modo da capire quali di queste fanno parte di un rettangolo. Le valutazioni prese in considerazione sono le seguenti: L'area del contorno deve essere maggiore di 50px, Il numero dei vertici deve essere uguale a 4 e Gli angoli formati dai lati devono essere di 90 a meno di un errore. Attraverso questo processo siamo riusciti a realizzare un'applicazione di prova che ci permette di riconoscere dei rettangoli. Quest'applicazione può essere ulteriormente estesa per riconoscere la forma delle prese RJ45. Questo esperimento ci ha fatto capire che anche la visione articiale può essere un buon spunto per realizzare applicazioni di supporto. Nel caso particolare della libreria OpenCV a un costo di calcolo elevato. 46 Bibliograa 1. Mataio SDK documentation https://dev.metaio.com/sdk/documentation/ 2. La realtà aumentata http://www.realta-aumentata.it/home.asp 3. Steven Henderson, Steven Feiner Exploring the Benets of Augmented Reality Documentation for Maintenance and Repair http://graphics.cs.columbia.edu/projects/armar/pubs/hendersonFeinerTVCG2011.pdf 4. Storia della realtà aumentata http://www.rivistainnovare.com/innovazioni-tecnologie/realtaaumentata-storia-e-applicazioni/ http://www.experenti.com/dalla-realta-virtuale-ai-google-glass-storiadella-realta-aumentata/ 5. Emanuele Borasio Realtà aumentata su piattaforma mobile al servizio della Meccatronica http://www.unindustriareggioemilia.it/tower-lestorage/aire/13401/attachment/e.borasio.pdf 6. Realtà aumentata: la sua storia http://larealtaaumentata.blogspot.it/p/la-sua-storia.html 7. M. Matthies, H. Malchow & J. Kriz Vision as computation, or: Does a computer vision system really assign meaning to images? 8. Joseph Howse Android Application Programming with OpenCV 9. Wikipedia www.wikipedia.org 47