23
& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect Gianni Rosa Gallina [email protected] http://embeddedlounge.blogspo t.com Marina Sabetta marina.sabetta@studenti. polito.it

& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect

  • Upload
    zody

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect. Gianni Rosa Gallina [email protected] http://embeddedlounge.blogspot.com. Marina Sabetta [email protected]. Agenda. 2 / 21. Cos’è Microsoft Kinect ? Cosa si può fare con Kinect ? - PowerPoint PPT Presentation

Citation preview

Page 1: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

&

Presentano:BUILD live – Torino

Introduzione a Microsoft Kinect

Gianni Rosa [email protected]://embeddedlounge.blogspot.com

Marina [email protected]

Page 2: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Agenda Cos’è Microsoft Kinect?

Cosa si può fare con Kinect?

L’hardware

La tecnologia• Video• Body tracking• Audio

Microsoft Kinect SDK• Architettura• Come si usa

2 / 21

Page 3: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

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

Page 4: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Cosa si può fare con Kinect?4 / 21

Fonte: http://kinect.dashhacks.com

Page 5: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

L’hardware

VIDEOCAMERA RGB

SENSORI PROFONDITA’ 3D

MICROFONI MOTORINO INCLINAZIONE

5 / 21

Page 6: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

L’hardware

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

6 / 21

Page 7: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

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

Page 8: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

La tecnologia• Frutto di decenni di ricerche accademiche, dell’industria, di Microsoft Research e del gruppo Xbox nel campo della Computer Vision

• Basata sulle soluzioni tecnologiche dell’israeliana 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

Page 9: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

La tecnologia9 / 21

Page 10: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

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 tecnologia10 / 21

Page 11: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

La tecnologia

Algoritmo di visione

Real-Time Human Pose Recognition in Partsfrom 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

Page 12: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

La tecnologiaNon dimentichiamo l’audio!

I problemi che Kinect risolve:

Isola la voce dal rumore di fondo

Riduce/elimina riverberi ed echi dovuti all’ambiente circostante

Rileva direzionalmente la sorgente audio

Riconosce il parlato

Sembra magia ma… è

Batteria di microfoni +DSP +

Data Analysis +Intelligenza Artificiale

12 / 21

Page 13: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

La tecnologia

Algoritmi audio

• Presentazione al MIX 2011 di Ivan Tashev

http://channel9.msdn.com/events/MIX/MIX11/RES01

• E’ l’architect 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 dell’identificazione del parlatore

13 / 21

Page 14: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

14 / 21

Page 15: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Windows Kinect SDK• Microsoft Research ha rilasciato una versione beta del Kinect SDK per

Windows il 16 giugno:

http://research.microsoft.com/kinectsdk

• L’SDK 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 l’SDK e tutte le sue dipendenze

• In questo momento l’SDK si può utilizzare solo per scopi personali o di ricerca. NON si possono realizzare prodotti commerciali.

15 / 21

Page 16: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

ArchitetturaI sensori di Kinect inviano al sistema tre flussi di dati:

• Flusso videoPuò 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 audioE’ l’audio proveniente dalla batteria di microfoni, combinato in un unico flusso di dati

16 / 21

Page 17: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Tracciatura del corpoQuando 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

Page 18: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Come si usa?• Per usare le librerie Kinect in un’applicazione .NET, è necessario

includere solo una reference alla DLL Microsoft.Research.Kinect.dll

• Sono disponibili due namespace:

Microsoft.Research.Kinect.Nuiper accedere ai flussi video, profondità e body tracking

Microsoft.Research.Kinect.Audioper 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

Page 19: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

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:

DepthFrameReadyRende disponibile la matrice dei dati di profondità acquisiti dai sensori IR

SkeletonFrameReadyRende 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.

VideoFrameReadyRende disponibile il fotogramma acquisito dalla webcam

19 / 21

Page 20: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Come si usa?Per gestire l’audio, 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 dell’eco (AEC)

• informazioni sulla direzione della sorgente (beamforming)– se attivato, i dati vengono recuperati registrandosi all’evento BeamChanged– l’informazione è espressa in gradi radianti: 0 nella posizione frontale rispetto al sensore

Kinect; <0 a sinistra, >0 a destra.–È disponibile, come per i giunti, un parametro per stabilire la qualità dell’informazione

• integrazione con le Speech API di Windows per fare riconoscimento vocale

20 / 21

Page 21: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

Risorse aggiuntiveCoding For Fun – Kinect Toolkithttp://c4fkinect.codeplex.com/

Kinect Gestures (Blog di David Catuhe)http://blogs.msdn.com/b/eternalcoding/archive/2011/07/04/gestures-and-tools-for-kinect.aspx

Alimentatore per Kinect (Microsoft Store)http://www.microsoftstore.com/store/msstore/en_US/buy/pageType.product/externalRefID.9A4CFC08

Kinect VS2010 Templateshttp://kinectcontrib.codeplex.com/

Lingue aggiuntive per Speech Recognition / Text To Speechhttp://www.microsoft.com/download/en/details.aspx?displaylang=en&CTT=1&id=3971

Video, esempi, training (Channel9)http://channel9.msdn.com/coding4fun/kinect/http://channel9.msdn.com/Series/KinectSDKQuickstarts

Blog di Gianni Rosa Gallinahttp://embeddedlounge.blogspot.com

21 / 21

Page 22: & Presentano: BUILD live – Torino Introduzione a Microsoft  Kinect

DEMO