La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect Gianni Rosa Gallina

Presentazioni simili


Presentazione sul tema: "& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect Gianni Rosa Gallina"— Transcript della presentazione:

1 & Presentano: BUILD live – Torino Introduzione a Microsoft Kinect Gianni Rosa Gallina gianni.rosagallina@bepseng.it http://embeddedlounge.blogspot.com Marina Sabetta marina.sabetta@studenti.polito.it

2 Agenda Cosè Microsoft Kinect? Cosa si può fare con Kinect? Lhardware La tecnologia Video Body tracking Audio Microsoft Kinect SDK Architettura Come si usa 2 / 21

3 Cosè Microsoft Kinect? E un dispositivo embedded, costituito da: un insieme di sensori audio/video: Videocamera RGB Sensori di profondità 3D Microfoni software proprietario per: Computer Vision Tracciatura del corpo Riconoscimento facciale Riconoscimento vocale Pensato per la console Microsoft Xbox 360, in modo da permettere una modalità di gioco senza controller e coinvolgente Ha fatto la sua prima apparizione ufficiale nel 2009, prima era noto con il nome in codice Project Natal. 3 / 21

4 Cosa si può fare con Kinect? 4 / 21 Fonte: http://kinect.dashhacks.comhttp://kinect.dashhacks.com

5 Lhardware VIDEOCAMERA RGB SENSORI PROFONDITA 3D MICROFONI MOTORINO INCLINAZIONE 5 / 21

6 Lhardware http://www.ifixit.com/Teardown/Microsoft-Kinect-Teardown/4066 6 / 21

7 Cavo USB e alimentazione Il motorino di inclinazione richiede più corrente di quanta le sole porte USB possano fornire Si ha un connettore proprietario che combina USB standard e maggiore potenza di alimentazione La versione di Kinect acquistabile stand- alone fornisce questo alimentatore esterno, che è NECESSARIO per poterla collegare anche ad un PC di sviluppo. 7 / 21

8 La tecnologia Frutto di decenni di ricerche accademiche, dellindustria, di Microsoft Research e del gruppo Xbox nel campo della Computer Vision Basata sulle soluzioni tecnologiche dellisraeliana PrimeSense I problemi che Kinect risolve: Trova una o più persone in una scena, ignorando lo sfondo Riconosce gli arti e i giunti, associandoli alla persona corretta Trova e traccia i gesti delle persone Mappa i gesti su significati e comandi Inoltre: Riconosce le facce Riconosce la voce (Permette anche di giocare!) 8 / 21

9 La tecnologia 9 / 21

10 Sembra magia ma… è Computer Vision + Data Analysis + Intelligenza Artificiale Machine Learning Valuta miliardi di possibili posture del corpo umano sulla base di 32 segmenti connessi (scheletro) Ogni fotogramma A 30 fotogrammi al secondo Consumando meno del 10% di CPU La tecnologia 10 / 21

11 La tecnologia Algoritmo di visione Real-Time Human Pose Recognition in Parts from a Single Depth Image Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, Andrew Blake http://research.microsoft.com/apps/pubs/default.aspx?id=145347 11 / 21

12 La tecnologia Non dimentichiamo laudio! I problemi che Kinect risolve: Isola la voce dal rumore di fondo Riduce/elimina riverberi ed echi dovuti allambiente circostante Rileva direzionalmente la sorgente audio Riconosce il parlato Sembra magia ma… è Batteria di microfoni + DSP + Data Analysis + Intelligenza Artificiale 12 / 21

13 La tecnologia Algoritmi audio Presentazione al MIX 2011 di Ivan Tashev http://channel9.msdn.com/events/MIX/MIX11/RES01 E larchitect della maggior parte del processing audio di Kinect Ha introdotto notevoli avanzamenti nel campo del processing audio in real-time e attualmente sta lavorando al problema dellidentificazione del parlatore 13 / 21

14 14 / 21

15 Windows Kinect SDK Microsoft Research ha rilasciato una versione beta del Kinect SDK per Windows il 16 giugno: http://research.microsoft.com/kinectsdk LSDK installa: i driver per i sensori Kinect API di programmazione C++ e.NET (C# / VB.NET) documentazione applicativi di esempio + codice sorgente Attenzione! SOLO Windows 7 (x86 / x64), NON in macchina virtuale Per poter usare le librerie Kinect su una macchina NON di sviluppo, occorre comunque installare lSDK e tutte le sue dipendenze In questo momento lSDK si può utilizzare solo per scopi personali o di ricerca. NON si possono realizzare prodotti commerciali. 15 / 21

16 Architettura I sensori di Kinect inviano al sistema tre flussi di dati: Flusso video Può essere visualizzato come una normale webcam. Sono disponibili due risoluzioni: 640x480 @ 30fps e 1280x1024 @ 15fps Flusso di profondità E una matrice di interi i cui valori indicano la profondità spaziale (in mm) di ogni pixel di un flusso video a 320x240. Può essere interpretato come video B/N oppure, con qualche elaborazione aggiuntiva, si può rendere colorato Flusso audio E laudio proveniente dalla batteria di microfoni, combinato in un unico flusso di dati 16 / 21

17 Tracciatura del corpo Quando Kinect sta tracciando una persona, vengono frequentemente forniti allo sviluppatore informazioni sullo scheletro riconosciuto. Lo scheletro consiste nei seguenti 20 punti chiave, i giunti: 17 / 21

18 Come si usa? Per usare le librerie Kinect in unapplicazione.NET, è necessario includere solo una reference alla DLL Microsoft.Research.Kinect.dll Sono disponibili due namespace: Microsoft.Research.Kinect.Nui per accedere ai flussi video, profondità e body tracking Microsoft.Research.Kinect.Audio per accedere ai dati audio Successivamente, bisogna aprire i flussi audio/video prima di poterli utilizzare nel proprio applicativo, specificandone tipologia, risoluzione e altri parametri specifici di ogni flusso Prima di poter utilizzare la libreria NUI, bisogna instanziare un oggetto della classe Runtime, specificando i flussi a cui si vuole accedere 18 / 21

19 Come si usa? La libreria NUI funziona ad eventi: ogni qualvolta i sensori hanno dei dati disponibili, vengono notificati degli eventi a cui bisogna registrarsi per poter ricevere ed utilizzare le informazioni: DepthFrameReady Rende disponibile la matrice dei dati di profondità acquisiti dai sensori IR SkeletonFrameReady Rende disponibili i dati dei giunti di uno o due corpi completamente tracciati. I dati sui giunti possono essere validi o meno, è necessario verificarne lo stato prima di utilizzarli in elaborazioni successive. VideoFrameReady Rende disponibile il fotogramma acquisito dalla webcam 19 / 21

20 Come si usa? Per gestire laudio, invece, è sufficiente instanziare un oggetto di tipo KinectAudioSource: Con questo oggetto si possono avere: i dati audio veri e propri (16KHz, 16bit PCM) – da un singolo microfono o dalla battaria completa – con opzionale cancellazione del rumore e delleco (AEC) informazioni sulla direzione della sorgente (beamforming) – se attivato, i dati vengono recuperati registrandosi allevento BeamChanged – linformazione è espressa in gradi radianti: 0 nella posizione frontale rispetto al sensore Kinect; 0 a destra. – È disponibile, come per i giunti, un parametro per stabilire la qualità dellinformazione integrazione con le Speech API di Windows per fare riconoscimento vocale 20 / 21

21 Risorse aggiuntive 21 / 21

22 DEMO

23 Domande & Risposte Gianni Rosa Gallina gianni.rosagallina@bepseng.it http://embeddedlounge.blogspot.com Marina Sabetta marina.sabetta@studenti.polito.it


Scaricare ppt "& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect Gianni Rosa Gallina"

Presentazioni simili


Annunci Google