SlideShare a Scribd company logo
Igor Antonacci
  http://blog.technothink.net/
Igor.antonacci@dotdotnet.org
Kinect and brave new applications
   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
Kinect and brave new applications
Kinect and brave new applications
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
Kinect and brave new applications
Kinect and brave new applications
   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”
Kinect and brave new applications
   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);
Kinect and brave new applications
   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

PDF
Present kinect4 windows
 
PPTX
Tecniche di archiviazione digitale applicate alla fotografia
PPTX
Kinect : Just for fun?
PPTX
DotNetCampus 2014 - Introduzione a Kinect
PPTX
Gam01 introduzione a kinect
PPT
Kinect + .NET = NUI : Interfacce naturali facili con Kinect!!!
PPTX
Provarsi i vestiti con il kinect
PPTX
Gam03 facciamo volare il nosro drone
Present kinect4 windows
 
Tecniche di archiviazione digitale applicate alla fotografia
Kinect : Just for fun?
DotNetCampus 2014 - Introduzione a Kinect
Gam01 introduzione a kinect
Kinect + .NET = NUI : Interfacce naturali facili con Kinect!!!
Provarsi i vestiti con il kinect
Gam03 facciamo volare il nosro drone

Similar to Kinect and brave new applications (20)

PPTX
Applicazioni Windows Store con Kinect 2
PPTX
Nui for real
PDF
SkyMedia: La tecnologia al servizio dell'intrattenimento
PDF
Touch&play framework
PPTX
Graduation slides
PDF
Internet-of-things, sicurezza, privacy, trust
PPTX
Unity 3D a C# developer's POV
PPTX
Webinar porting e ottimizzazione per x86
PPTX
Kivy Python Framework - di Gioele Gaggio
PPTX
Kinect V2: what's new!!!
PDF
Brochure DIGITAL SIGNAGE NAVORI - ITA
PDF
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
PDF
Cocos2d: creare videogiochi con facilità!
PDF
XMASDEV 2018 - XMAS GIFT ASSISTANT
PPTX
Windows 10 IoT
PPTX
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
PDF
Programmazione mobile: ANDROID
PPTX
WP7 Game Lab
ODP
Mobile platforms development overview
PPTX
Presentazione ict easy
Applicazioni Windows Store con Kinect 2
Nui for real
SkyMedia: La tecnologia al servizio dell'intrattenimento
Touch&play framework
Graduation slides
Internet-of-things, sicurezza, privacy, trust
Unity 3D a C# developer's POV
Webinar porting e ottimizzazione per x86
Kivy Python Framework - di Gioele Gaggio
Kinect V2: what's new!!!
Brochure DIGITAL SIGNAGE NAVORI - ITA
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Cocos2d: creare videogiochi con facilità!
XMASDEV 2018 - XMAS GIFT ASSISTANT
Windows 10 IoT
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Programmazione mobile: ANDROID
WP7 Game Lab
Mobile platforms development overview
Presentazione ict easy
Ad

Kinect and brave new applications

  • 1. Igor Antonacci http://blog.technothink.net/ Igor.antonacci@dotdotnet.org
  • 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
  • 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
  • 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”
  • 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);
  • 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