SlideShare a Scribd company logo
(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
 
OpenGL e realtà aumentata
OpenGL e realtà aumentataOpenGL e realtà aumentata
OpenGL e realtà aumentata
Xonne Mobile Solutions
 
DotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a KinectDotNetCampus 2014 - Introduzione a Kinect
DotNetCampus 2014 - Introduzione a Kinect
Massimo 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 2
caioturtle
 
Soluzioni per la produzione multimediale
Soluzioni per la produzione multimedialeSoluzioni per la produzione multimediale
Soluzioni per la produzione multimediale
Gianluca Vaglio
 
Guida shinelco 3500
Guida shinelco 3500Guida shinelco 3500
Guida shinelco 3500Marco NuvoLi
 
Io, Android
Io, AndroidIo, Android
Io, Android
AntonioTringali
 
Xn Apdf
Xn ApdfXn 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...
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 monitor
caioturtle
 
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.2015
Roberto Fazio
 
Introduzione a Blender
Introduzione a Blender Introduzione a Blender
Introduzione a Blender
Federico Frenguelli
 
Allarme antifurto gandolfo
Allarme antifurto gandolfoAllarme antifurto gandolfo
Allarme antifurto gandolfo
aaa bbbb
 
Introduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBoxIntroduzione allo sviluppo UWP per xBox
Introduzione allo sviluppo UWP per xBox
Massimo Bonanni
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
Alfredo 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 eXperience
Antonio 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...
 
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
 
OpenGL e realtà aumentata
OpenGL e realtà aumentataOpenGL e realtà aumentata
OpenGL e realtà aumentata
 
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
 

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