SlideShare a Scribd company logo
1 of 19
Download to read offline
Paolo Chiantore, WIICOM (I3P)
TreataBit, 22 maggio 2012
KINECT cos'è
      Il Kinect è una periferica nata per la console
      Microsoft Xbox360.
●   proiettore di raggi infrarossi
●   rgb camera
●   sensore di raggi infrarossi
●   array di microfoni
E' nato per permettere l'interazione con i videogiochi senza
l'utilizzo di controller (= fare il c**o alla Nintendo WII)


          X                       X           X
KINECT cosa fa
Il 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 vocali
In tre parole: Natural User Interface (NUI)
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
KINECT il depthframe
proiettore + sensore a infrarossi = scansione 3D
dell'ambiente

                                       IR projector




                                            IR sensor
           IR dots
KINECT come funziona
●   i dati dell'image frame e del depth frame sono passati all'
    Xbox tramite USB
●   Il driver del Kinect sull'Xbox tramite degli algoritmi è in grado
    di elaborare i dati per riconoscere il corpo umano




                skeleton tracking      player tracking
KINECT diffusione
●   dal suo lancio nel novembre 2010 a dicembre 2011 sono
    stati venduti 18 milioni di Kinect
●   l'utilizzo 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 l'utilizzo del Kinect su PC con
    Windows7: KINECT for Windows SDK
...e ora?
 Le applicazioni possibili del Kinect vanno da: “finalmente una
 spada laser come Luke!” a scanner 3D a basso costo...




                                                          3D scan

augmented
reality
                                                         multi-touch
                                                         interface
...
fino a, ovviamente:
KINECT SDK: requisiti
  prima release: Kinect for Windows SDK Beta (2011)
      compatibile con lo stesso HW dell'Xbox360
      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 commerciali

Requisiti software:
    Windows7
    Microsoft Visual Studio 2010 Express (i.e. C#,C++)
    .NET framework 4.0
KINECT SDK: come si usa
Kinect SDK (beta) si basa su due librerie:
 // Kinect libraries
   using Microsoft.Research.Kinect.Nui;   // Natural User Interface
   using Microsoft.Research.Kinect.Audio; // Audio



La 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#
KINECT SDK: come si usa
Image 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#
KINECT SDK: come si usa
Depth 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#
KINECT SDK: come si usa
Skeleton 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#
KINECT SDK: cosa non fa
KINECT SDK fornisce dati grezzi (ammesso che si possano
definire 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è alla
bravura e fantasia degli sviluppatori.
Applicativi: multitouch
Un possibile utilizzo del KINECT è lo sviluppo di applicativi
multitouch, con e senza “touch” !
In questo caso bisogna sviluppare un tracker:
“Tracker - program which takes images from a camera, puts them
through several filters, and finally reports the position, size, and relative
movement of blobs over some protocol”


source
                                                               tracked image
image




                                                            Screenshot
                                                            CommunityCoreVision
Applicativi: Tangible User Interfaces
La “terza dimensione” del Kinect (depth frame) permette di
andare oltre al multitouch: sembra lo strumento naturale
per lo sviluppo di Tangible User Interfaces
Lo standard di fatto sia per applicazioni multitouch che TUI
è il protocollo TUIO:
“TUIO - A protocol used for communicating the position, size, and
relative velocity of blobs”
Applicativi: grafica interattiva
Raccolti ed elaborati tutti i dati,
cosa visualizzo sullo schermo?
Applicativi “standard”:
● Visual Studio: WPF



Piattaforme per creative coding:
● Open Frameworks

● Processing

● Cinder
Riferimenti
KINECT for Windows SDK:
http://www.microsoft.com/en-us/kinectforwindows/

NUI group: wiki.nuigroup.com/Main_Page
TUIO 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/

More Related Content

Similar to Present kinect4 windows

SkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoSkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoMavigex srl
 
Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Massimo Bonanni
 
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
 
Gam03 facciamo volare il nosro drone
Gam03   facciamo volare il nosro droneGam03   facciamo volare il nosro drone
Gam03 facciamo volare il nosro droneDotNetCampus
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinectEmanuele Bartolesi
 
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperience
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceDesign of G.E.M.I.X.: Game Engine Movie Interaction eXperience
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceAntonio Notarangelo
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...DotNetCampus
 
Smau milano 2012 arena expo comm francesco-abbo
Smau milano 2012   arena expo comm francesco-abboSmau milano 2012   arena expo comm francesco-abbo
Smau milano 2012 arena expo comm francesco-abboSMAU
 
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015
ITALIAN INTERACTION DESIGN DAY  Firenze 19.06.2015ITALIAN INTERACTION DESIGN DAY  Firenze 19.06.2015
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015Roberto Fazio
 
Augmented Reality For Fun & profit
Augmented Reality For Fun & profitAugmented Reality For Fun & profit
Augmented Reality For Fun & profitLuca Milan
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overviewAlfredo Morresi
 
Realtà Aumentata e Manutenzione
Realtà Aumentata e ManutenzioneRealtà Aumentata e Manutenzione
Realtà Aumentata e Manutenzionearmandocarcaterra
 
Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!Maurizio Moriconi
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioGiuneco S.r.l
 
OpenGL e Realtà Aumentata
OpenGL e Realtà AumentataOpenGL e Realtà Aumentata
OpenGL e Realtà AumentataFrancesco Abbo
 
Custom vision on edge device
Custom vision on edge deviceCustom vision on edge device
Custom vision on edge deviceAlessio Biasiutti
 
IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceAlessio Biasiutti
 

Similar to Present kinect4 windows (20)

SkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoSkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimento
 
Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2
 
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
 
Gam03 facciamo volare il nosro drone
Gam03   facciamo volare il nosro droneGam03   facciamo volare il nosro drone
Gam03 facciamo volare il nosro drone
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinect
 
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperience
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceDesign of G.E.M.I.X.: Game Engine Movie Interaction eXperience
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperience
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
 
OpenGL e realtà aumentata
OpenGL e realtà aumentataOpenGL e realtà aumentata
OpenGL e realtà aumentata
 
Smau milano 2012 arena expo comm francesco-abbo
Smau milano 2012   arena expo comm francesco-abboSmau milano 2012   arena expo comm francesco-abbo
Smau milano 2012 arena expo comm francesco-abbo
 
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015
ITALIAN INTERACTION DESIGN DAY  Firenze 19.06.2015ITALIAN INTERACTION DESIGN DAY  Firenze 19.06.2015
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015
 
Augmented Reality For Fun & profit
Augmented Reality For Fun & profitAugmented Reality For Fun & profit
Augmented Reality For Fun & profit
 
Cultural heritage, dalla digitalizzazione al web: nuovi strumenti e possibili...
Cultural heritage, dalla digitalizzazione al web: nuovi strumenti e possibili...Cultural heritage, dalla digitalizzazione al web: nuovi strumenti e possibili...
Cultural heritage, dalla digitalizzazione al web: nuovi strumenti e possibili...
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
 
Io, Android
Io, AndroidIo, Android
Io, Android
 
Realtà Aumentata e Manutenzione
Realtà Aumentata e ManutenzioneRealtà Aumentata e Manutenzione
Realtà Aumentata e Manutenzione
 
Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele Gaggio
 
OpenGL e Realtà Aumentata
OpenGL e Realtà AumentataOpenGL e Realtà Aumentata
OpenGL e Realtà Aumentata
 
Custom vision on edge device
Custom vision on edge deviceCustom vision on edge device
Custom vision on edge device
 
IoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge deviceIoT Saturday 2019 - Custom Vision on Edge device
IoT Saturday 2019 - Custom Vision on Edge device
 

More from I3P

Security by design: la cyber security per un progetto innovativo
Security by design: la cyber security per un progetto innovativoSecurity by design: la cyber security per un progetto innovativo
Security by design: la cyber security per un progetto innovativoI3P
 
Bitcoin & blockchain
Bitcoin & blockchainBitcoin & blockchain
Bitcoin & blockchainI3P
 
Blockchain Academy
Blockchain Academy Blockchain Academy
Blockchain Academy I3P
 
Facebook ADs like a PRO: tool e strategie per campagne di successo
Facebook ADs like a PRO: tool e strategie per campagne di successoFacebook ADs like a PRO: tool e strategie per campagne di successo
Facebook ADs like a PRO: tool e strategie per campagne di successoI3P
 
Il GDPR nel diritto del lavoro
Il GDPR nel diritto del lavoroIl GDPR nel diritto del lavoro
Il GDPR nel diritto del lavoroI3P
 
Il GDPR nelle startup
Il GDPR nelle startupIl GDPR nelle startup
Il GDPR nelle startupI3P
 
Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...
Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...
Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...I3P
 
Come comunicare a giornalisti e influencer
Come comunicare a giornalisti e influencerCome comunicare a giornalisti e influencer
Come comunicare a giornalisti e influencerI3P
 
Influencer Marketing: dai top influencer agli smart influencer
Influencer Marketing: dai top influencer agli smart influencerInfluencer Marketing: dai top influencer agli smart influencer
Influencer Marketing: dai top influencer agli smart influencerI3P
 
Dal Corporate Storytelling al Racconto Transmediale
Dal Corporate Storytelling al Racconto TransmedialeDal Corporate Storytelling al Racconto Transmediale
Dal Corporate Storytelling al Racconto TransmedialeI3P
 
Dalla Pubblicita alle Partnership
Dalla Pubblicita alle PartnershipDalla Pubblicita alle Partnership
Dalla Pubblicita alle PartnershipI3P
 
Storytelling: istruzioni per l'uso.
Storytelling: istruzioni per l'uso.Storytelling: istruzioni per l'uso.
Storytelling: istruzioni per l'uso.I3P
 
Commercio online con Bitcoin
Commercio online con Bitcoin Commercio online con Bitcoin
Commercio online con Bitcoin I3P
 
Presentazione del mining Bitcoin
Presentazione del mining BitcoinPresentazione del mining Bitcoin
Presentazione del mining BitcoinI3P
 
L'industria dei videogiochi in Italia @ Turin Jam Today
L'industria dei videogiochi in Italia @ Turin Jam TodayL'industria dei videogiochi in Italia @ Turin Jam Today
L'industria dei videogiochi in Italia @ Turin Jam TodayI3P
 
Branding vita e conflitti del marchio: il punto di vista legale
Branding vita e conflitti del marchio: il punto di vista legaleBranding vita e conflitti del marchio: il punto di vista legale
Branding vita e conflitti del marchio: il punto di vista legaleI3P
 
Lean uxforstartup
Lean uxforstartupLean uxforstartup
Lean uxforstartupI3P
 
Dal naming all'immagine coordinata. Come costruire il brand di una startup
Dal naming all'immagine coordinata. Come costruire il brand di una startup    Dal naming all'immagine coordinata. Come costruire il brand di una startup
Dal naming all'immagine coordinata. Come costruire il brand di una startup I3P
 
Ottenere visibilità sulla stampa
Ottenere visibilità sulla stampaOttenere visibilità sulla stampa
Ottenere visibilità sulla stampaI3P
 
Business model canvas
Business model canvasBusiness model canvas
Business model canvasI3P
 

More from I3P (20)

Security by design: la cyber security per un progetto innovativo
Security by design: la cyber security per un progetto innovativoSecurity by design: la cyber security per un progetto innovativo
Security by design: la cyber security per un progetto innovativo
 
Bitcoin & blockchain
Bitcoin & blockchainBitcoin & blockchain
Bitcoin & blockchain
 
Blockchain Academy
Blockchain Academy Blockchain Academy
Blockchain Academy
 
Facebook ADs like a PRO: tool e strategie per campagne di successo
Facebook ADs like a PRO: tool e strategie per campagne di successoFacebook ADs like a PRO: tool e strategie per campagne di successo
Facebook ADs like a PRO: tool e strategie per campagne di successo
 
Il GDPR nel diritto del lavoro
Il GDPR nel diritto del lavoroIl GDPR nel diritto del lavoro
Il GDPR nel diritto del lavoro
 
Il GDPR nelle startup
Il GDPR nelle startupIl GDPR nelle startup
Il GDPR nelle startup
 
Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...
Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...
Il funnel perfetto per il web marketing: tutto sulle landing page fino alle c...
 
Come comunicare a giornalisti e influencer
Come comunicare a giornalisti e influencerCome comunicare a giornalisti e influencer
Come comunicare a giornalisti e influencer
 
Influencer Marketing: dai top influencer agli smart influencer
Influencer Marketing: dai top influencer agli smart influencerInfluencer Marketing: dai top influencer agli smart influencer
Influencer Marketing: dai top influencer agli smart influencer
 
Dal Corporate Storytelling al Racconto Transmediale
Dal Corporate Storytelling al Racconto TransmedialeDal Corporate Storytelling al Racconto Transmediale
Dal Corporate Storytelling al Racconto Transmediale
 
Dalla Pubblicita alle Partnership
Dalla Pubblicita alle PartnershipDalla Pubblicita alle Partnership
Dalla Pubblicita alle Partnership
 
Storytelling: istruzioni per l'uso.
Storytelling: istruzioni per l'uso.Storytelling: istruzioni per l'uso.
Storytelling: istruzioni per l'uso.
 
Commercio online con Bitcoin
Commercio online con Bitcoin Commercio online con Bitcoin
Commercio online con Bitcoin
 
Presentazione del mining Bitcoin
Presentazione del mining BitcoinPresentazione del mining Bitcoin
Presentazione del mining Bitcoin
 
L'industria dei videogiochi in Italia @ Turin Jam Today
L'industria dei videogiochi in Italia @ Turin Jam TodayL'industria dei videogiochi in Italia @ Turin Jam Today
L'industria dei videogiochi in Italia @ Turin Jam Today
 
Branding vita e conflitti del marchio: il punto di vista legale
Branding vita e conflitti del marchio: il punto di vista legaleBranding vita e conflitti del marchio: il punto di vista legale
Branding vita e conflitti del marchio: il punto di vista legale
 
Lean uxforstartup
Lean uxforstartupLean uxforstartup
Lean uxforstartup
 
Dal naming all'immagine coordinata. Come costruire il brand di una startup
Dal naming all'immagine coordinata. Come costruire il brand di una startup    Dal naming all'immagine coordinata. Come costruire il brand di una startup
Dal naming all'immagine coordinata. Come costruire il brand di una startup
 
Ottenere visibilità sulla stampa
Ottenere visibilità sulla stampaOttenere visibilità sulla stampa
Ottenere visibilità sulla stampa
 
Business model canvas
Business model canvasBusiness model canvas
Business model canvas
 

Present kinect4 windows

  • 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 microfoni E' nato per permettere l'interazione con i videogiochi senza l'utilizzo di controller (= fare il c**o alla Nintendo WII) X X X
  • 3. KINECT cosa fa Il 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 vocali In 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 depthframe proiettore + sensore a infrarossi = scansione 3D dell'ambiente IR projector IR sensor IR dots
  • 6. KINECT come funziona ● i dati dell'image frame e del depth frame sono passati all' Xbox tramite USB ● Il driver del Kinect sull'Xbox 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 ● l'utilizzo 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 l'utilizzo 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 scan augmented reality multi-touch interface
  • 10. KINECT SDK: requisiti prima release: Kinect for Windows SDK Beta (2011) compatibile con lo stesso HW dell'Xbox360 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 commerciali Requisiti software: Windows7 Microsoft Visual Studio 2010 Express (i.e. C#,C++) .NET framework 4.0
  • 11. KINECT SDK: come si usa Kinect SDK (beta) si basa su due librerie: // Kinect libraries using Microsoft.Research.Kinect.Nui; // Natural User Interface using Microsoft.Research.Kinect.Audio; // Audio La 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 usa Image 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 usa Depth 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 usa Skeleton 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 fa KINECT SDK fornisce dati grezzi (ammesso che si possano definire 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è alla bravura e fantasia degli sviluppatori.
  • 16. Applicativi: multitouch Un possibile utilizzo del KINECT è lo sviluppo di applicativi multitouch, con e senza “touch” ! In questo caso bisogna sviluppare un tracker: “Tracker - program which takes images from a camera, puts them through several filters, and finally reports the position, size, and relative movement of blobs over some protocol” source tracked image image Screenshot CommunityCoreVision
  • 17. Applicativi: Tangible User Interfaces La “terza dimensione” del Kinect (depth frame) permette di andare oltre al multitouch: sembra lo strumento naturale per lo sviluppo di Tangible User Interfaces Lo standard di fatto sia per applicazioni multitouch che TUI è il protocollo TUIO: “TUIO - A protocol used for communicating the position, size, and relative velocity of blobs”
  • 18. Applicativi: grafica interattiva Raccolti ed elaborati tutti i dati, cosa visualizzo sullo schermo? Applicativi “standard”: ● Visual Studio: WPF Piattaforme per creative coding: ● Open Frameworks ● Processing ● Cinder
  • 19. Riferimenti KINECT for Windows SDK: http://www.microsoft.com/en-us/kinectforwindows/ NUI group: wiki.nuigroup.com/Main_Page TUIO 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/