Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Microsoft ha reso l’uso della periferica possibile anche ai PC dotati del nuovo sistema
operativo Windows 8; infatti Microsoft ha rilasciato gratuitamente, durante l’estate 2011, i
driver ufficiali per poter utilizzare Kinect, dimostrando così di voler portare quanto prima
la tecnologia di Kinect anche sui sistemi operativi Windows attualmente disponibili,
favorendo lo sviluppo di varie applicazioni non ludiche tra il mondo degli sviluppatori di
software come un visualizzatore di radiografie e tomografie controllabile mediante
comandi vocali.
Il sensore Kinect è composto da:
Un array di microfoni orientati verso il basso (3 sul lato destro e uno sul lato
sinistro); 15
Tre apparati ottici utilizzati per il riconoscimento visuale del corpo in
movimento: due videocamere e un sensore infrarossi aggiuntivo;
Una ventola per la dissipazione del calore;
64MB di memoria flash DDR2;
Un accelerometro Kionix KXSD9 a tre assi;
Prime Sense PS1080-A2, il chip che rappresenta il cuore della tecnologia di
Kinect.
Quindi Kinect è un dispositivo dotato di telecamera RGB, doppio sensore di profondità a
raggi infrarossi composto di un proiettore a infrarossi e da una telecamera sensibile alla
stessa banda che ha lo scopo di leggere quanto rilevato dai raggi infrarossi. La telecamera
RGB ha una risoluzione di 640 x 480 pixel, mentre quella a infrarossi usa una matrice di
320 x 240 pixel. Mentre l’array di microfoni è utilizzato dal sistema per la calibrazione
dell’ambiente intorno, riconoscere i comandi vocali, eliminare i rumori di fondo e il
riverbero causato dai suoni del gioco; tutto questo sfruttando l’analisi della riflessione del
suono sulle pareti. La barra del Kinect è motorizzata lungo l’asse verticale e segue i
movimenti dei giocatori, orientandosi nella posizione migliore per il riconoscimento dei
movimenti. Di fatto, la periferica permette all’utente di interagire con la console senza
l’uso di alcun controller da impugnare, ma solo attraverso i movimenti del corpo, i
comandi vocali o attraverso gli oggetti presenti nell’ambiente. La tecnologia di Kinect
riesce a codificare le informazioni che le servono nel momento stesso in cui la luce viaggia,
analizzando le deformazioni incontrate nel suo percorso.
Quello che ne deriva è una vera e propria renderizzazione 3D dell’ambiente in tempo reale,
molto più precisa che in passato. Le eventuali persone presenti, massimo 4 persone sia in
piedi che seduti, vengono poi rilevate attraverso un chip, piazzato proprio all’interno della
videocamera, il quale va alla ricerca di qualsiasi cosa sembri di natura umana e ne calcola i
relativi movimenti. 16
Kinect
2.3 Depth map
Di solito per ottenere informazioni sulla profondità, ad esempio di una stanza, si utilizza
l’analisi stereo ovvero il processo di misurazione della distanza da un oggetto, basato sul
confronto di due o più immagini dell’oggetto stesso ottenute simultaneamente da
telecamere che inquadrano la stessa scena da differenti posizioni; infatti questo processo
fornisce al nostro organismo la capacità di percepire la terza dimensioni dovuta ai due
bulbi oculari degli occhi che forniscono due differenti immagini da inquadrature diverse,
che elaborate dal cervello ci fornisco il senso della profondità. Determinata la coppia
coniugata dei pixel delle due immagini che rappresenta lo stesso punto dell’oggetto, è
possibile calcolare la distanza attraverso dei semplici calcoli basati sull’ottica geometrica
del triangolo. Ripetendo questo procedimento per ogni punto dell’oggetto, otteniamo una
Mappa di disparità ovvero una matrice di interi di dimensione dell’altezza e larghezza
dell’immagine considerata; l’intero rappresenta la distanza che intercorre tra il pixel di
un’immagine e il corrispondente pixel dell’altra immagine che rappresenta il medesimo
punto dell’oggetto, maggiore è il valore, minore è la distanza alla due telecamere e
viceversa. Questo procedimento ovviamente può essere applicato ai punti dell’oggetto che
hanno dei corrispondenti pixel in entrambe le immagini; ottenuta l’intera matrice è
possibile associare ogni valore a un colore, così per rappresentare l’oggetto mediante un
immagine colorata, i cui colori non sono corrispettivi dell’oggetto ma della sua distanza 17
dall’obiettivo, diventando di facile comprensione la posizione di ogni elemento nella
scena. Analisi stereo per due telecamere
Anche Kinect crea una sua Mappa di Disparità per rappresentare le informazioni 3D della
scena, ma non viene adoperata con il processo di analisi stereo poiché il Kinect possiede
un’unica telecamera RGB, usata per associare il colore reale all’oggetto; quindi vengono
adoperati l’emettitore di raggi infrarossi e la camera di profondità, presenti nel Kinect,
infatti il primo proietta nella scena un’immensità di spot luminosi con una distribuzione
nota a priori dal Kinect e di riferimento per la seconda telecamera che per ogni punto
proiettato calcola la distanza dal sensore triangolando la sua posizione attuale con quella
che avrebbe assunto nel pattern di riferimento, procedimento simile all’analisi stereo,
calcolando così la Mappa di Disparità e la rispettiva immagine colorata di profondità. 18
Immagine della Depth map
2.4 Skeletal tracking
Dalla Matrice di Disparità mediante dei software, è possibile effettuare un operazione di
tracking delle persone all’interno della scena come l’identificazione del numero, della
posizione e delle giunture scheletriche degli individui presenti. Con il termine tracking si
intente il processo di individuazione di uno o più oggetti che si muovono nel tempo, e
siccome in tale processo utilizziamo un telecamera si parla di video tracking. Il tracking del
Kinect è effettuato sulla base di innumerevoli dati registrati riguardanti diversi e comuni
comportamenti umani e alcuni di questi, più rilevanti, vengono utilizzati dal software per
riconoscere le posizioni dei punti chiavi dello scheletro umano. Il tracking deve essere
effettuato in tempo reale e i dati risultati forniti a un calcolatori per essere utilizzati per un
determinato scopo.
L’algoritmo di Kinect è quindi in grado di prevedere in maniera rapida le posizioni assunte
dal corpo nello spazio tramite l’utilizzo di una immagine di profondità, attraverso una fase
di training e di stima delle posizioni, basata su etichette.
A partire da una immagine di profondità data in input, tramite un sistema probabilistico,
viene effettuata una etichettatura delle parti del corpo, spazialmente localizzate nei pressi
della posizione della persona. Valutare la segmentazione in parti del corpo, tramite l’uso di
classificazione che considera i pixel, evita una ricerca combinatoria sulle differenti 19
articolazioni del corpo. Per i dati di training, sono state prese immagini di profondità
realistiche di persone ritratte in differenti pose che, successivamente, vengono campionate
per essere utilizzate da alberi decisionali in fase di apprendimento dell’algoritmo. Il corpo
umano è in grado di produrre innumerevoli posizioni, in questo approccio si è deciso di
catturare molte azioni umane in un database. Utilizzando un processo di rendering
randomizzato, si etichettano le immagini che serviranno da campioni per l’addestramento
dell’algoritmo. Vengono marcate diverse parti del corpo cromaticamente, alcune di queste
definiscono giunture scheletriche di interesse primario, mentre altre sono utilizzate per
riempire i vuoti, oppure per prevedere altre articolazioni, magari occulte in una particolare
posa. A questo punto, etichettate le varie parti del corpo di interesse, si eseguono degli
algoritmi di classificazione. Una considerazione da fare è la seguente: le parti etichettate
devono essere sufficientemente piccole, in modo tale da fornire un’accurata localizzazione,
però allo stesso tempo non devono essere troppo numerose per non limitare e
compromettere una buona classificazione.
Tracking
2.5 Strument a disposizione
Microsoft Kinect è un dispositivo che può tranquillamente essere installato in qualsiasi
sistema operativo. L’applicazione basata sul dispositivo Kinect ampiamente descritto nel
prossimo capitolo si basa sull’utilizzo delle SDK ufficiali fornite da Microsoft. È doveroso
precisare però che l’installazione dei driver ufficiali permette di utilizzare e sviluppare
applicazioni basate su Kinect esclusivamente in un PC con sistema operativo Windows.
Le SDK ufficiali sono state rilasciate da Microsoft nel luglio del 2011, mentre driver non
ufficiali che sono usciti molti mesi prima hanno permesso agli sviluppatori di software di
20
testare il funzionamento di Kinect e di creare una moltitudine di applicazioni basate sul
dispositivo lanciato da Microsoft nell’inverno 2010.
I driver non ufficiali sono basati sul framework OpenNI (Open Natural Interaction).
OpenNI è un framework multi-lingua, cross platform che definisce le API per scrivere
applicazioni che sfruttano la Natural Interaction (NI). Le API di OpenNI sono composte da
un insieme di interfacce per la scrittura di applicazioni NI. Lo scopo principale del
framework è di formare delle API standard che consentano la comunicazione con:
sensori audio e video;
middleware di percezione audio-visiva (componenti software che
analizzano e comprendono i dati audio e video che vengono registrati dalla
scena). Per esempio, il software che riceve i dati visivi come un’immagine,
restituisce la posizione del palmo di una mano rilevati all’interno
dell’immagine;
Il framework OpenNI è un livello astratto che fornisce l’interfaccia per entrambi i
dispositivi fisici e componenti middleware. Le API permettono la registrazione di piu`
componenti nel framework OpenNI. Questi componenti sono indicati come moduli, e sono
utilizzati per produrre ed elaborare i dati sensoriali. La selezione di un dispositivo hardware
piu` adatto ad un determinato scopo, o di un componente middleware diventa facile e
flessibile.
Nel dicembre 2010, PrimeSense ha rilasciato i propri driver open source con il middleware
di motion tracking chiamato NITE. PrimeSense è un’azienda di semiconduttori, che
produce tecnologie ad alte prestazioni per macchina basate sulla riproduzione visiva
tridimensionale in vendita per fascia media di consumatori. La combinazione del
framework OpenNI con il middleware NITE permette dunque di utilizzare Microsoft
Kinect non solo con il sistema operativo Windows.
Entrambi i metodi di installazione dei driver per Kinect consentono di utilizzare delle
applicazioni d’esempio. Per la precisione l’installazione di OpenNI in com