Your SlideShare is downloading. ×
Present kinect4 windows
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Present kinect4 windows

880
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
880
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Paolo Chiantore, WIICOM (I3P)TreataBit, 22 maggio 2012
  • 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. 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. 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. KINECT il depthframeproiettore + sensore a infrarossi = scansione 3Ddellambiente IR projector IR sensor IR dots
  • 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. 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. ...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. ...fino a, ovviamente:
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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/