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 -guatda.com/cmx.p1...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

PDF
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
PPTX
Responsive Web Design & Single Page Application
PPTX
Come ti piloto il drone
PPTX
Basi per la sicurezza in rete
PPTX
Kinect and brave new applications
PDF
Present kinect4 windows
 
PPTX
Kinect V2: NUI for dummies!!
PPTX
Kinect v2: NUI for dummies - Bonanni
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...
Responsive Web Design & Single Page Application
Come ti piloto il drone
Basi per la sicurezza in rete
Kinect and brave new applications
Present kinect4 windows
 
Kinect V2: NUI for dummies!!
Kinect v2: NUI for dummies - Bonanni

Similar to Nui for real (20)

PPTX
KInect Lab @ Community Days 2014 - Roma
PPTX
Kinect : Just for fun?
PPTX
Kinect V2: what's new!!!
PPTX
Gam01 introduzione a kinect
PPTX
Applicazioni Windows Store con Kinect 2
PPTX
DotNetCampus 2014 - Introduzione a Kinect
PDF
Recognizing Hand Gestures using WebCams
PPTX
Provarsi i vestiti con il kinect
PDF
La Matematica e la fisica da Pong ai giochi tripla A
PDF
PDF
Game Engine
PPTX
Lezione 6 aprile GameLab
PPTX
La "Scienza" dei Video Giochi - Seminari Cultura Matematica - Politecnico di ...
PPT
Kinect + .NET = NUI : Interfacce naturali facili con Kinect!!!
PDF
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
PDF
Lo sviluppo di Edge Guardian VR - Marco Giammetti - Codemotion Milan 2016
PDF
DigitArch - Videocamere di profondità (Enrico Aymerich)
PDF
GoogleVirtualRealityVRSoftwareDevelopmentKitSDKforAndroid
PDF
Tesi Tamiazzo09
KInect Lab @ Community Days 2014 - Roma
Kinect : Just for fun?
Kinect V2: what's new!!!
Gam01 introduzione a kinect
Applicazioni Windows Store con Kinect 2
DotNetCampus 2014 - Introduzione a Kinect
Recognizing Hand Gestures using WebCams
Provarsi i vestiti con il kinect
La Matematica e la fisica da Pong ai giochi tripla A
Game Engine
Lezione 6 aprile GameLab
La "Scienza" dei Video Giochi - Seminari Cultura Matematica - Politecnico di ...
Kinect + .NET = NUI : Interfacce naturali facili con Kinect!!!
Lo sviluppo di Edge Guardian VR - Maurizio Tatafiore - Codemotion Milan 2016
Lo sviluppo di Edge Guardian VR - Marco Giammetti - Codemotion Milan 2016
DigitArch - Videocamere di profondità (Enrico Aymerich)
GoogleVirtualRealityVRSoftwareDevelopmentKitSDKforAndroid
Tesi Tamiazzo09
Ad

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 -guatda.com/cmx.p1...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