SlideShare a Scribd company logo
1 of 32
Igor Antonacci
  http://blog.technothink.net/
Igor.antonacci@dotdotnet.org
   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
   NUI – Natural User Interfaces
   Kinect Overview
   Kinect SDK
   Demo
   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
TouchTouch
Object Recognition
Gestures
Voice
Augmented Reality
Touchless
   Com’è fatta / Sensori e Componenti
   Architettura HW
   Come funziona
   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
   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++ … )
   Kinect SDK – Layer tra HW e Software
   Flusso di dati “grezzo” e “raffinato”
   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
   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);
   Rappresenta il singolo frame con riconoscimento
    scheletrico
   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);
   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();
   “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);
   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);
   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!
   Visualizzazioni scientifiche
   Healthcare
   Games
   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
Kinect and brave new applications

More Related Content

Similar to Kinect and brave new applications

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
 
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
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play frameworkCSP Scarl
 
Internet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trustInternet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trustDavide Carboni
 
Unity 3D a C# developer's POV
Unity 3D a C# developer's POVUnity 3D a C# developer's POV
Unity 3D a C# developer's POVLeonardo Alario
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86Massimiliano Torregiani
 
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
 
Kinect V2: what's new!!!
Kinect V2: what's new!!!Kinect V2: what's new!!!
Kinect V2: what's new!!!Massimo Bonanni
 
Brochure DIGITAL SIGNAGE NAVORI - ITA
Brochure DIGITAL SIGNAGE NAVORI - ITABrochure DIGITAL SIGNAGE NAVORI - ITA
Brochure DIGITAL SIGNAGE NAVORI - ITAPremium City SRL
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!Maurizio Moriconi
 
XMASDEV 2018 - XMAS GIFT ASSISTANT
XMASDEV 2018 - XMAS GIFT ASSISTANTXMASDEV 2018 - XMAS GIFT ASSISTANT
XMASDEV 2018 - XMAS GIFT ASSISTANTLuca Congiu
 
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
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROIDPaolo Tosato
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overviewAlfredo Morresi
 
Presentazione ict easy
Presentazione ict easyPresentazione ict easy
Presentazione ict easyaxelmo69
 

Similar to Kinect and brave new applications (20)

Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2 Applicazioni Windows Store con Kinect 2
Applicazioni Windows Store con Kinect 2
 
Nui for real
Nui for realNui for real
Nui for real
 
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
 
Touch&play framework
Touch&play frameworkTouch&play framework
Touch&play framework
 
Graduation slides
Graduation slidesGraduation slides
Graduation slides
 
Internet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trustInternet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trust
 
Unity 3D a C# developer's POV
Unity 3D a C# developer's POVUnity 3D a C# developer's POV
Unity 3D a C# developer's POV
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86
 
Kivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele GaggioKivy Python Framework - di Gioele Gaggio
Kivy Python Framework - di Gioele Gaggio
 
Kinect V2: what's new!!!
Kinect V2: what's new!!!Kinect V2: what's new!!!
Kinect V2: what's new!!!
 
Brochure DIGITAL SIGNAGE NAVORI - ITA
Brochure DIGITAL SIGNAGE NAVORI - ITABrochure DIGITAL SIGNAGE NAVORI - ITA
Brochure DIGITAL SIGNAGE NAVORI - ITA
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!Cocos2d: creare videogiochi con facilità!
Cocos2d: creare videogiochi con facilità!
 
XMASDEV 2018 - XMAS GIFT ASSISTANT
XMASDEV 2018 - XMAS GIFT ASSISTANTXMASDEV 2018 - XMAS GIFT ASSISTANT
XMASDEV 2018 - XMAS GIFT ASSISTANT
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 
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...
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
WP7 Game Lab
WP7 Game LabWP7 Game Lab
WP7 Game Lab
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
 
Presentazione ict easy
Presentazione ict easyPresentazione ict easy
Presentazione ict easy
 

Kinect and brave new applications

  • 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
  • 4. NUI – Natural User Interfaces  Kinect Overview  Kinect SDK  Demo
  • 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
  • 6.
  • 7.
  • 11. Voice
  • 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