Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Paolo Chiantore, WIICOM (I3P)TreataBit, 22 maggio 2012
KINECT cosè      Il Kinect è una periferica nata per la console      Microsoft Xbox360.●   proiettore di raggi infrarossi●...
KINECT cosa faIl Kinect è un occhio e un orecchio elettronico:   ●   riconosce la silhouette di una persona (player)   ●  ...
KINECT come funziona●   camera RGB: filma la scena di fronte al Kinect●   proiettore + sensore a infrarossi: fanno una sca...
KINECT il depthframeproiettore + sensore a infrarossi = scansione 3Ddellambiente                                       IR ...
KINECT come funziona●   i dati dellimage frame e del depth frame sono passati all    Xbox tramite USB●   Il driver del Kin...
KINECT diffusione●   dal suo lancio nel novembre 2010 a dicembre 2011 sono    stati venduti 18 milioni di Kinect●   lutili...
...e ora? Le applicazioni possibili del Kinect vanno da: “finalmente una spada laser come Luke!” a scanner 3D a basso cost...
...fino a, ovviamente:
KINECT SDK: requisiti  prima release: Kinect for Windows SDK Beta (2011)      compatibile con lo stesso HW dellXbox360    ...
KINECT SDK: come si usaKinect SDK (beta) si basa su due librerie: // Kinect libraries   using Microsoft.Research.Kinect.Nu...
KINECT SDK: come si usaImage frame:void nui_VideoFrameReady(object sender, ImageFrameReadyEventArgs e){   PlanarImage imag...
KINECT SDK: come si usaDepth and player frame:void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e){  byte[]...
KINECT SDK: come si usaSkeleton frame:void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e){   Skeleto...
KINECT SDK: cosa non faKINECT SDK fornisce dati grezzi (ammesso che si possanodefinire tali il riconoscimento dello schele...
Applicativi: multitouchUn possibile utilizzo del KINECT è lo sviluppo di applicativimultitouch, con e senza “touch” !In qu...
Applicativi: Tangible User InterfacesLa “terza dimensione” del Kinect (depth frame) permette diandare oltre al multitouch:...
Applicativi: grafica interattivaRaccolti ed elaborati tutti i dati,cosa visualizzo sullo schermo?Applicativi “standard”:● ...
RiferimentiKINECT for Windows SDK:http://www.microsoft.com/en-us/kinectforwindows/NUI group: wiki.nuigroup.com/Main_PageTU...
Upcoming SlideShare
Loading in …5
×

Present kinect4 windows

1,310 views

Published on

  • Be the first to comment

  • Be the first to like this

Present kinect4 windows

  1. 1. Paolo Chiantore, WIICOM (I3P)TreataBit, 22 maggio 2012
  2. 2. KINECT cosè Il Kinect è una periferica nata per la console Microsoft Xbox360.● proiettore di raggi infrarossi● rgb camera● sensore di raggi infrarossi● array di microfoniE nato per permettere linterazione con i videogiochi senzalutilizzo di controller (= fare il c**o alla Nintendo WII) X X X
  3. 3. KINECT cosa faIl Kinect è un occhio e un orecchio elettronico: ● riconosce la silhouette di una persona (player) ● riconosce lo scheletro di una persona (20 joints) ● riconosce i comandi vocaliIn tre parole: Natural User Interface (NUI)
  4. 4. KINECT come funziona● camera RGB: filma la scena di fronte al Kinect● proiettore + sensore a infrarossi: fanno una scansione 3D della scena di fronte al Kinect depth frame image frame
  5. 5. KINECT il depthframeproiettore + sensore a infrarossi = scansione 3Ddellambiente IR projector IR sensor IR dots
  6. 6. KINECT come funziona● i dati dellimage frame e del depth frame sono passati all Xbox tramite USB● Il driver del Kinect sullXbox tramite degli algoritmi è in grado di elaborare i dati per riconoscere il corpo umano skeleton tracking player tracking
  7. 7. KINECT diffusione● dal suo lancio nel novembre 2010 a dicembre 2011 sono stati venduti 18 milioni di Kinect● lutilizzo del connettore USB per la trasmissione dei dati dei sensori e il basso costo hanno stimolato la fantasia degli hacker che si sono cimentati nel reverse engineering per utilizzare il Kinect su PC (esempio: progetto “Open Kinect”)● nel giugno 2011 la Microsoft ha deciso di rilasciare gratuitamente i driver per lutilizzo del Kinect su PC con Windows7: KINECT for Windows SDK
  8. 8. ...e ora? Le applicazioni possibili del Kinect vanno da: “finalmente una spada laser come Luke!” a scanner 3D a basso costo... 3D scanaugmentedreality multi-touch interface
  9. 9. ...fino a, ovviamente:
  10. 10. KINECT SDK: requisiti prima release: Kinect for Windows SDK Beta (2011) compatibile con lo stesso HW dellXbox360 non utilizzabile a fini commerciali ultima release: Kinect for Windows SDK ver1 (2012) richiede HW dedicato (KINECT for Windows) miglioramenti (range sensore, skeletal tracking, riconoscimento audio, facilità installazione) utilizzabile a fini commercialiRequisiti software: Windows7 Microsoft Visual Studio 2010 Express (i.e. C#,C++) .NET framework 4.0
  11. 11. KINECT SDK: come si usaKinect SDK (beta) si basa su due librerie: // Kinect libraries using Microsoft.Research.Kinect.Nui; // Natural User Interface using Microsoft.Research.Kinect.Audio; // AudioLa NUI dà acesso a tre informazioni fondamentali :1) nui.VideoFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_VideoFrameReady);2) nui.DepthFrameReady += new EventHandler<ImageFrameReadyEventArgs>(nui_DepthFrameReady);3) nui.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady); estratti codice: Visual C#
  12. 12. KINECT SDK: come si usaImage frame:void nui_VideoFrameReady(object sender, ImageFrameReadyEventArgs e){ PlanarImage image = e.ImageFrame.Image; image1.Source = BitmapSource.Create(image.Width, image.Height, … PixelFormats.Bgr32, … , image.Width * image.BytesPerPixel);} estratti codice: Visual C#
  13. 13. KINECT SDK: come si usaDepth and player frame:void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e){ byte[] ColoredBytes = GenerateColoredBytes(e.ImageFrame); PlanarImage image = e.ImageFrame.Image; image2.Source = BitmapSource.Create(image.Width, image.Height, … PixelFormats.Bgr32, … , image.Width * PixelFormats.Bgr32.BitsPerPixel / 8);} estratti codice: Visual C#
  14. 14. KINECT SDK: come si usaSkeleton frame:void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e){ SkeletonFrame allSkeletons = e.SkeletonFrame; //get the first tracked skeleton SkeletonData skeleton = (from s in allSkeletons.Skeletons where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault(); // scale to screen pixel (code4fun extension) Joint HandRight = skeleton.Joints[JointID.HandRight].ScaleTo(640, 480);} estratti codice: Visual C#
  15. 15. KINECT SDK: cosa non faKINECT SDK fornisce dati grezzi (ammesso che si possanodefinire tali il riconoscimento dello scheletro e dei player).Quindi: non riconosce dettagli del corpo oltre i 20 joints dello skeleton frame non ricostruisce superfici 3D (il depth frame è una nuvola di punti nello spazio con coordinate x,y,z + indice di identificazione di un player) non riconosce i gesti (movimenti delle mani, etc.)Tutte queste sono cose delegate al SW applicativo cioè allabravura e fantasia degli sviluppatori.
  16. 16. Applicativi: multitouchUn possibile utilizzo del KINECT è lo sviluppo di applicativimultitouch, con e senza “touch” !In questo caso bisogna sviluppare un tracker:“Tracker - program which takes images from a camera, puts themthrough several filters, and finally reports the position, size, and relativemovement of blobs over some protocol”source tracked imageimage Screenshot CommunityCoreVision
  17. 17. Applicativi: Tangible User InterfacesLa “terza dimensione” del Kinect (depth frame) permette diandare oltre al multitouch: sembra lo strumento naturaleper lo sviluppo di Tangible User InterfacesLo standard di fatto sia per applicazioni multitouch che TUIè il protocollo TUIO:“TUIO - A protocol used for communicating the position, size, andrelative velocity of blobs”
  18. 18. Applicativi: grafica interattivaRaccolti ed elaborati tutti i dati,cosa visualizzo sullo schermo?Applicativi “standard”:● Visual Studio: WPFPiattaforme per creative coding:● Open Frameworks● Processing● Cinder
  19. 19. RiferimentiKINECT for Windows SDK:http://www.microsoft.com/en-us/kinectforwindows/NUI group: wiki.nuigroup.com/Main_PageTUIO protocol: http://www.tuio.org/Community Core Vision: http://ccv.nuigroup.com/Cinder: http://libcinder.org/Processing: http://processing.org/Open Frameworks: http://www.openframeworks.cc/

×