SlideShare a Scribd company logo
1 of 21
Download to read offline
(N)UI FOR REAL
La mia esperienza con Kinect, 3D e computer
vision
LA RICHIESTA
 Tracciare la scelta degli utenti
 Esperienza breve
 Qualcosa di diverso
COSA HO USATO
 Computer Vision
 Kinect
 XNA per il 3D
DEMO
COMPUTER VISION
Lo scopo principale della visione artificiale è quello di riprodurre la vista
umana. Vedere è inteso non solo come l'acquisizione di una fotografia
bidimensionale di un'area, ma soprattutto come l'interpretazione del
contenuto di quell'area.
LIBRERIE CHE HO VALUTATO
AForge.NET
http://www.aforgenet.com
 Hanno implementato loro le
funzionalità
 Usa DirectShow per la webcam
 Supporta i Lego Mind Storm
EmguCV
http://www.emgu.com
 Wrap di openCV
 Compila sotto Mono
 Performance migliori con la versioni
commerciali (IPP, TBB)
COSA SI PUÒ FARE
 Object detection
 Face detection
 Motion detection
 Riconoscimento dei segnali stradali
HO VALUTATO ANCHE IL FACE
RECOGNITION
 L’idea
 Fotografia prima di usare il totem
 Il totem riconosce l’utilizzatore
 Problemi
 Le foto dovevano essere fatte precise
 Troppa variazione di luce non permette un riconoscimento accurato
KINECT
COSA PERMETTE DI FARE
 Riconosce 2 giocatori
 Distanza da 1.5 mt a 3mt
 Rileva 20 nodi per ogni scheletro
 Riconoscimento vocale
 Near mode (40 cm)
PROBLEMI
 La distanza dell’utente non deve cambiare
 Le coordinate sono -1...0…1
 Altezze diverse del giocatore
 I gesti vanno creati e gestiti
 Non ci deve essere ressa intorno al giocatore
IL NUOVO SDK 1.7
 Aggiunte due nuove gesture. «Push» e «Grip»
 Cambiata la «Human Interface Guidelines». Adesso si usa «Push»
 Ci dice direttamente lui se la mano è aperta o meno
 Aperto il segnale del laser (1.6)
 Aggiunto Kinect Fusion
XNA E 3D
Son tutti triangoli
A COSA FARE ATTENZIONE
 Cercare di non aprire troppi spriteBatch.Begin()
 Numero di poligoni dei modelli
 Back-face culling.
 Gli shader giusti sulle varie mesh dei modelli
NUMERO POLIGONI
BACK-FACE CULLING
HIGH LEVEL SHADER LANGUAGE
 Deriva dal C
 Nato come progetto congiunto tra NVIDIA e Microsoft
 Poi han litigato :/
 Viene trasformato in assembler e sparato direttamente alla
scheda video
 XNA li pilota tramite gli «Effect» con cui gli passiamo i parametri
 Per ogni gruppo di mesh possiamo applicare diversi shader
(era tutto in tedesco e diverso per ogni auto. YAY!)
COLLISIONI
 Collisioni in 2D è l’intersezione tra le due immagini
 Collisioni in 3D si fanno con Bounding Box e Bounding Sphere
XNA È MORTO
 C++
 DirectXTK (http://directxtk.codeplex.com)
 DirectX Tex (http://directxtex.codeplex.com)
 C#
 MonoGame (http://monogame.codeplex.com)
LIBRI DEL WEEKEND
 Learning XNA 4.0
 Learning OpenCV
GRAZIE!
 bettercoderwannabe.blogspot.com
 github.com/iridio
 @collaalessandro

More Related Content

Similar to Nui for real

SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...Danilo Riso
 
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
 
DotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectDotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectMassimo Bonanni
 
Gam01 introduzione a kinect
Gam01   introduzione a kinectGam01   introduzione a kinect
Gam01 introduzione a kinectDotNetCampus
 
Guida al computer - Lezione 27 - Lo scanner parte 2
Guida al computer - Lezione 27 - Lo scanner parte 2Guida al computer - Lezione 27 - Lo scanner parte 2
Guida al computer - Lezione 27 - Lo scanner parte 2caioturtle
 
Soluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeSoluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeGianluca Vaglio
 
Guida shinelco 3500
Guida shinelco 3500Guida shinelco 3500
Guida shinelco 3500Marco NuvoLi
 
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...Gianmarco Bassini
 
Guida al computer - Lezione 18 - Il monitor
Guida al computer - Lezione 18 - Il monitorGuida al computer - Lezione 18 - Il monitor
Guida al computer - Lezione 18 - Il monitorcaioturtle
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinectEmanuele Bartolesi
 
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
 
Allarme antifurto gandolfo
Allarme antifurto gandolfoAllarme antifurto gandolfo
Allarme antifurto gandolfoaaa bbbb
 
Introduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBoxIntroduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBoxMassimo Bonanni
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overviewAlfredo Morresi
 
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
 

Similar to Nui for real (20)

SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...
 
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
 
DotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectDotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a Kinect
 
CINEMA 4D presentazione
CINEMA 4D presentazioneCINEMA 4D presentazione
CINEMA 4D presentazione
 
Gam01 introduzione a kinect
Gam01   introduzione a kinectGam01   introduzione a kinect
Gam01 introduzione a kinect
 
Guida al computer - Lezione 27 - Lo scanner parte 2
Guida al computer - Lezione 27 - Lo scanner parte 2Guida al computer - Lezione 27 - Lo scanner parte 2
Guida al computer - Lezione 27 - Lo scanner parte 2
 
Soluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeSoluzioni per la produzione multimediale
Soluzioni per la produzione multimediale
 
Guida shinelco 3500
Guida shinelco 3500Guida shinelco 3500
Guida shinelco 3500
 
Io, Android
Io, AndroidIo, Android
Io, Android
 
Xn Apdf
Xn ApdfXn Apdf
Xn Apdf
 
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
La realtà aumentata nelle applicazioni di Marketing: Mantova, Salotti di comu...
 
Guida al computer - Lezione 18 - Il monitor
Guida al computer - Lezione 18 - Il monitorGuida al computer - Lezione 18 - Il monitor
Guida al computer - Lezione 18 - Il monitor
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinect
 
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
 
Introduzione a Blender
Introduzione a Blender Introduzione a Blender
Introduzione a Blender
 
Allarme antifurto gandolfo
Allarme antifurto gandolfoAllarme antifurto gandolfo
Allarme antifurto gandolfo
 
Introduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBoxIntroduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBox
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
 
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
 

Recently uploaded

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 

Recently uploaded (6)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 

Nui for real

  • 1. (N)UI FOR REAL La mia esperienza con Kinect, 3D e computer vision
  • 2. LA RICHIESTA  Tracciare la scelta degli utenti  Esperienza breve  Qualcosa di diverso
  • 3. COSA HO USATO  Computer Vision  Kinect  XNA per il 3D
  • 5. COMPUTER VISION Lo scopo principale della visione artificiale è quello di riprodurre la vista umana. Vedere è inteso non solo come l'acquisizione di una fotografia bidimensionale di un'area, ma soprattutto come l'interpretazione del contenuto di quell'area.
  • 6. LIBRERIE CHE HO VALUTATO AForge.NET http://www.aforgenet.com  Hanno implementato loro le funzionalità  Usa DirectShow per la webcam  Supporta i Lego Mind Storm EmguCV http://www.emgu.com  Wrap di openCV  Compila sotto Mono  Performance migliori con la versioni commerciali (IPP, TBB)
  • 7. COSA SI PUÒ FARE  Object detection  Face detection  Motion detection  Riconoscimento dei segnali stradali
  • 8. HO VALUTATO ANCHE IL FACE RECOGNITION  L’idea  Fotografia prima di usare il totem  Il totem riconosce l’utilizzatore  Problemi  Le foto dovevano essere fatte precise  Troppa variazione di luce non permette un riconoscimento accurato
  • 10. COSA PERMETTE DI FARE  Riconosce 2 giocatori  Distanza da 1.5 mt a 3mt  Rileva 20 nodi per ogni scheletro  Riconoscimento vocale  Near mode (40 cm)
  • 11. PROBLEMI  La distanza dell’utente non deve cambiare  Le coordinate sono -1...0…1  Altezze diverse del giocatore  I gesti vanno creati e gestiti  Non ci deve essere ressa intorno al giocatore
  • 12. IL NUOVO SDK 1.7  Aggiunte due nuove gesture. «Push» e «Grip»  Cambiata la «Human Interface Guidelines». Adesso si usa «Push»  Ci dice direttamente lui se la mano è aperta o meno  Aperto il segnale del laser (1.6)  Aggiunto Kinect Fusion
  • 13. XNA E 3D Son tutti triangoli
  • 14. A COSA FARE ATTENZIONE  Cercare di non aprire troppi spriteBatch.Begin()  Numero di poligoni dei modelli  Back-face culling.  Gli shader giusti sulle varie mesh dei modelli
  • 17. HIGH LEVEL SHADER LANGUAGE  Deriva dal C  Nato come progetto congiunto tra NVIDIA e Microsoft  Poi han litigato :/  Viene trasformato in assembler e sparato direttamente alla scheda video  XNA li pilota tramite gli «Effect» con cui gli passiamo i parametri  Per ogni gruppo di mesh possiamo applicare diversi shader (era tutto in tedesco e diverso per ogni auto. YAY!)
  • 18. COLLISIONI  Collisioni in 2D è l’intersezione tra le due immagini  Collisioni in 3D si fanno con Bounding Box e Bounding Sphere
  • 19. XNA È MORTO  C++  DirectXTK (http://directxtk.codeplex.com)  DirectX Tex (http://directxtex.codeplex.com)  C#  MonoGame (http://monogame.codeplex.com)
  • 20. LIBRI DEL WEEKEND  Learning XNA 4.0  Learning OpenCV