1. Igor Antonacci
http://blog.technothink.net/
Igor.antonacci@dotdotnet.org
2.
3. La DotDotNet è un'associazione culturale con il compito di
promuovere la più ampia diffusione dell'informatica, della
telematica, della multimedialità e dei collaborative tools, con
particolare attenzione allo sviluppo di software su piattaforma
Microsoft .NET. (dall’art. 1 dello statuto DotDotNet)
Associazione no-profit
◦ Opera in tutta la regione
Gruppo di professionisti, studenti e appassionati.
Modulo di adesione
Feedback
5. HCI – Human Computer Interaction è un argomento
“HOT” in questo momento; sono nati nuovi tipi di
interazioni Uomo-Macchina che interessano il grande
pubblico E gli sviluppatori
Sono state vendute più chitarre virtuali che reali nel
2009
14. Com’è fatta / Sensori e Componenti
Architettura HW
Come funziona
15. Camera VGA 640x480 (CMOS).
Infrared Camera 640x840 (CMOS).
Proiettore Infrarossi
Tilt Motorizzato.
Batteria di 4 Microfoni 3D DEPTH SENSORS
RGB CAMERA
MULTI-ARRAY MIC MOTORIZED TILT
16.
17.
18. Download:
http://www.microsoft.com/en-us/kinectforwindows/
L’SDK Include
◦ Driver per l’utilizzo su PC (Windows 7, … )
◦ API per l’accesso ai sensori, documentazione
◦ Esempi con codice sorgente (in C# , C++ … )
19. Kinect SDK – Layer tra HW e Software
Flusso di dati “grezzo” e “raffinato”
20.
21. Massimo due “player” riconosciuti
contemporaneamente
“Joints” <x, y, z> per ogni giocatore / utente
Ogni “Joint” ha degli stati
◦ Tracked – Il riconoscimento è “accurato”
◦ Not Tracked – Non si è giunti al riconoscimento di quel joint
◦ Inferred – L’accuratezza è minima, l’elemento è coperto e non
facilmente riconoscibile interpolato
22. Nuovo Progetto WPF o WinForms
Referenziare la DLL: Microsoft.Research.Kinect
Scrivere codice
◦ nui = Runtime.Kinects[0];
◦ nui.Initialize(RuntimeOptions.UseSkeletalTracking);
◦ nui.SkeletonFrameReady += new
EventHandler<SkeletonFrameReadyEventArgs>(nui_Skeleto
nFrameReady);
23. Rappresenta il singolo frame con riconoscimento
scheletrico
24. Stream Video dal sensore video a colori del Kinect
E’ necessario “aprirlo” (inizializzarlo) prima di ricevere I
frame
◦ nui = Runtime.Kinects[0];
◦ nui.Initialize(RuntimeOptions.UseColor);
◦ nui.VideoFrameReady += nui_VideoFrameReady;
◦ nui.VideoStream.Open(ImageStreamType.Video, 2,
ImageResolution.Resolution640x480,
ImageType.Color);
25. Ogni frame della scena è rappresentato da un oggetto
di tipo PlanarImage
I pixel della scena sono rappresentati, ognuno, con 4
byte
NON utilizzabile come Source di una Image (nè in WPF,
nè in WinForms)
Coding4Fun.Kinect.Wpf – ToBitmapSource() extension
method
◦ image1.Source = e.ImageFrame.ToBitmapSource();
26. “Fotogramma” di profondità
Ogni coppia di byte rappresenta la distanza per il pixel
corrispondente (per ogni giocatore nella scena)
◦ nui = Runtime.Kinects[0];
◦ nui.Initialize(RuntimeOptions.UseDepth);
◦ nui.DepthFrameReady += nui_DepthFrameReady
◦ nui.DepthStream.Open(ImageStreamType.Depth, 2,
ImageResolution.Resolution640x480,
ImageType.Depth);
27. Ogni pixel della scena è rappresentato da DUE byte
I due byte possono contenere due informazioni
principali
◦ ID del Player (in caso di più utenti sulla scena)
◦ La distanza dell’oggetto (in mm)
L’ID dell’utente/giocatore è presente se:
◦ nui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex);
… assente nel caso in cui
◦ nui.Initialize(RuntimeOptions.UseDepth);
28.
29. Gestione “managed” dell’Audio
Start – Capture – Stop dell’audio con
riconoscimento della direzione
Kinect Audio Demo tra gli esempi dell’SDK
Riconoscimento vocale se utilizzato insieme
alle Speech API
◦ Riconoscimento “solo” della lingua inglese…
per ORA!
30. Visualizzazioni scientifiche
Healthcare
Games
31. Kinect SDK
http://www.microsoft.com/en-us/kinectforwindows/
Coding4Fun – Kinect
http://channel9.msdn.com/coding4fun/kinect
Coding4Fun – Kinect for Windows SDK Quickstart
http://channel9.msdn.com/Series/KinectSDKQuickstarts
How does it works – Kinect
http://gilotopia.blogspot.com/2010/11/how-does-
kinect-really-work.html