Upload
alessandro-colla
View
605
Download
3
Embed Size (px)
DESCRIPTION
La mia esperienza con Kinect, Computer Vision, XNA 4.0 e 3D
Citation preview
(N)UI FOR REALLa 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 VISIONLo 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.NEThttp://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 3DSon 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