Anteprima
Vedrai una selezione di 7 pagine su 29
Kinect: Implementazione di gesti per le interazioni touchless Pag. 1 Kinect: Implementazione di gesti per le interazioni touchless Pag. 2
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Kinect: Implementazione di gesti per le interazioni touchless Pag. 6
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Kinect: Implementazione di gesti per le interazioni touchless Pag. 11
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Kinect: Implementazione di gesti per le interazioni touchless Pag. 16
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Kinect: Implementazione di gesti per le interazioni touchless Pag. 21
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Kinect: Implementazione di gesti per le interazioni touchless Pag. 26
1 su 29
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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

Dettagli
A.A. 2018-2019
29 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher AppuntiOnlinedal2001 di informazioni apprese con la frequenza delle lezioni di Laboratorio tesi di laurea e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Palermo o del prof Sorce Salvatore.