Kinect, wp8 & human recognition

21
WPReborn 2013 Massimo Bonanni VB.NET MVP @massimobonanni http://codetailor.blogspot.com [email protected] ___________________________________________________ Kinect, WP8 & Human Recognition @dnlombardia #wpreborn

description

Sessione "Kinect, WP8 & Human Recognition" tenuta all'evento WPReborn 2013 di DotNetLombardia.

Transcript of Kinect, wp8 & human recognition

Page 1: Kinect, wp8 & human recognition

WPReborn 2013

Massimo Bonanni VB.NET MVP @massimobonannihttp://[email protected]

___________________________________________________

Kinect, WP8 & Human Recognition

@dnlombardia#wpreborn

Page 2: Kinect, wp8 & human recognition

Kinect RecapKinect ServiceHuman Recognition (Demo)

Agenda

Page 3: Kinect, wp8 & human recognition

Kinect recap

Page 4: Kinect, wp8 & human recognition

Kinect: cosa c’è dentro• Video Camera RGB (CMOS)• Sensori di profondità: proiettore IR + Camera

IR (CMOS)• Inclinazione motorizzata (±27 gradi)• 4 Microfoni

Inclinazione Motorizzata

Batteria di 4 microfoni

Sensori di profondità

Video Camera RGB

Page 5: Kinect, wp8 & human recognition

Kinect: Requisiti minimi• Sistema Operativo • Windows 7, Windows 8, Windows Embedded Standard 7, or Windows Embedded

POSReady 7 (x86 o x64)

• Hardware• Processore dual-core 2.66GHz o superiore• 2Gb ram• Scheda grafica DiretcX9 o superiore• USB 2.0 dedicata• Kinect con cavo usb per collegamento al pc

• Software• Visual Studio 2010 Express o superiori• .NET Framework 4.0 o successivi• Runtime DirectX 9• Microsoft Speech Platform SDK v11 (speech recognition)

Page 6: Kinect, wp8 & human recognition

Kinect: Tutta una questione di streamIl device restituisce 3 stream:• Video (immagini a colori)• Depth (immagini di profondità)• Audio (flusso audio)

6

Page 7: Kinect, wp8 & human recognition

Kinect: Come funziona il depth

Il proiettore ad infrarossi illumina il soggetto con dei pattern

1

La camera infrarossi misura la distanza con un approccio «a luce strutturata»

2

L’SDK è in grado di convertire lo stream della depth cam in dati utilizzabili

3

La nostra applicazione utilizza le info dell’SDK

4

Page 8: Kinect, wp8 & human recognition

Kinect: Default Mode vs Near Mode

Il Kinect può gestire oggetti a differenti distanze in base alla modalità selezionata:• Default Mode: oggetti tra 80 cm e 4 metri;• Near Mode: oggetti tra 40 cm e 3 metri.

Page 9: Kinect, wp8 & human recognition

Kinect: Angolo visualeAngolo di visuale:Orizzontale: 57,5°Verticale: 43,5° (da +27° a -27°)

Page 10: Kinect, wp8 & human recognition

Kinect: ProfonditàProfondità (Near Mode):• Limite fisico: 0,4m – 3,0m• Limite pratico : 0,8m – 2,5m

Profondità (Default Mode):• Limite fisico: 0,8m – 4,0m• Limite pratico : 1,2m – 3,5m

Page 11: Kinect, wp8 & human recognition

Kinect : AudioAudio:• Angolo di ascolto: 100° (da -50° a +50° rispetto all’asse

centrale);• Possibilità di restringere l’angolo di ascolto a step di 10°;

Noise reduction: • -20dB per l’audio proveniente da davanti• -26db per l’audio proveniente da dietro

Page 12: Kinect, wp8 & human recognition

Kinect: ArchitetturaL’SDK mette a disposizione una serie di strumenti e una libreria di classi in grado di interagire con i sensori del dispositivo fornendo allo sviluppatore oggetti ed eventi.

Page 13: Kinect, wp8 & human recognition

Kinect: Skeletal TrackingKinect fornisce un insiemi di «scheletri» dei player rilevati:

• Al massimo due player contemporanei (più altri 4 con informazioni ridotte);• Ogni «scheletro» può essere Tracked o NotTracked;• Ogni scheletro prevede un array di 20 Joint ognuno con la

propria posizione (x,y,z);• Ogni Joint può essere Tracked, NotTracked o Inferred

(NotTracked è raro).• La classe Skeleton fornisce anche informazioni sulle «ossa» del

player.

Page 14: Kinect, wp8 & human recognition

Kinect: XBox o WindowsAttualmente esistono due versioni di Kinect:• Kinect for XBox• Kinect for Windows

E’ possibile utilizzare il Kinect for XBox per fare esperimenti con l’SDK per Windows

Si ottiene un’eccezione se si utilizza il Kinect per XBox in produzione

Alcune API dell’SDK producono un’eccezione se usate con la versione per xBox (ad esempio il controllo dei parametri della web cam)

Page 15: Kinect, wp8 & human recognition

Kinect : SDK L’SDK è scaricabile dall’indirizzo http://www.kinectforwindows.org

Vengono installati contestualmente l’SDK (con il Kinect Sample Browser), i drivers, il Runtime (quello da distribuire con le applicazioni ) e lo Speech Recognition Language Pack.

Page 16: Kinect, wp8 & human recognition

Kinect Service

Page 17: Kinect, wp8 & human recognition

Kinect Service: Cos’èKinect Service è una libreria, sviluppata da Coding4Fun, che permette di inviare gli streaming del Kinect ad un dispositivo in rete.

Utilizza le socket per la trasmissione dei dati.

Si compone di due parti:• Listener: parte server che si aggancia agli stream Kinect e li invia

in rete;• Client: parte client in grado di recuperare gli stream e fornirli

all’applicazione.

Progetto opensource (Ms-PL): http://kinectservice.codeplex.com/

Page 18: Kinect, wp8 & human recognition

Kinect Service: Architettura

Kinect Service Listener

Kinect Service Client

(WinRT)

Kinect Service Client

(Phone)

Kinect Service Client

(Desktop)

Socket

Socket

Socket

Socket

Page 19: Kinect, wp8 & human recognition

Human RecognitionDemo

Page 20: Kinect, wp8 & human recognition

Kinect for Windowshttp://www.kinectforwindows.org

Kinect Servicehttp://kinectservice.codeplex.com/

Coding4Fun Channel9http://channel9.msdn.com/coding4fun/kinect

Riferimenti

Page 21: Kinect, wp8 & human recognition

MFX02 - Kinect e gadgeteerMassimo Bonanni, Marco Dal Pino,

Marco Minervagiovedì 28 febbraio 2013 ore 14:00 / 15:00 (sala Hermes)

MFX01 - 1, 2, 3 Gadgeteer

Carmine Punellagiovedì 28 febbraio 2013 ore 13:20 / 13:50 (sala Windows 1)

….un po’ di pubblicità!!!!!

http://www.communitydays.it/events/communitydays-2013/