Realtà Aumentata: Studio e Sperimentazione con la Library Metaio

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