Kinect, wp8 & human recognition

Post on 14-Jan-2015

547 views 0 download

description

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

Transcript of Kinect, wp8 & human recognition

WPReborn 2013

Massimo Bonanni VB.NET MVP @massimobonannihttp://codetailor.blogspot.comMassimo.bonanni@domusdotnet.org

___________________________________________________

Kinect, WP8 & Human Recognition

@dnlombardia#wpreborn

Kinect RecapKinect ServiceHuman Recognition (Demo)

Agenda

Kinect recap

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

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)

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

6

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

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.

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

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

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

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.

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.

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)

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.

Kinect Service

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/

Kinect Service: Architettura

Kinect Service Listener

Kinect Service Client

(WinRT)

Kinect Service Client

(Phone)

Kinect Service Client

(Desktop)

Socket

Socket

Socket

Socket

Human RecognitionDemo

Kinect for Windowshttp://www.kinectforwindows.org

Kinect Servicehttp://kinectservice.codeplex.com/

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

Riferimenti

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/