Post on 14-Jan-2015
description
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/