21
(N)UI FOR REAL La mia esperienza con Kinect, 3D e computer vision

Nui for real

Embed Size (px)

DESCRIPTION

La mia esperienza con Kinect, Computer Vision, XNA 4.0 e 3D

Citation preview

Page 1: Nui for real

(N)UI FOR REALLa mia esperienza con Kinect, 3D e computer vision

Page 2: Nui for real

LA RICHIESTA

Tracciare la scelta degli utenti

Esperienza breve

Qualcosa di diverso

Page 3: Nui for real

COSA HO USATO

Computer Vision

Kinect

XNA per il 3D

Page 4: Nui for real

DEMO

Page 5: Nui for real

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.

Page 6: Nui for real

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)

Page 7: Nui for real

COSA SI PUÒ FARE

Object detection

Face detection

Motion detection

Riconoscimento dei segnali stradali

Page 8: Nui for real

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

Page 9: Nui for real

KINECT

Page 10: Nui for real

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)

Page 11: Nui for real

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

Page 12: Nui for real

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

Page 13: Nui for real

XNA E 3DSon tutti triangoli

Page 14: Nui for real

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

Page 15: Nui for real

NUMERO POLIGONI

Page 16: Nui for real

BACK-FACE CULLING

Page 17: Nui for real

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!)

Page 18: Nui for real

COLLISIONI

Collisioni in 2D è l’intersezione tra le due immagini

Collisioni in 3D si fanno con Bounding Box e Bounding Sphere

Page 19: Nui for real

XNA È MORTO

C++ DirectXTK (http://directxtk.codeplex.com)

DirectX Tex (http://directxtex.codeplex.com)

C# MonoGame (http://monogame.codeplex.com)

Page 20: Nui for real

LIBRI DEL WEEKEND

Learning XNA 4.0

Learning OpenCV

Page 21: Nui for real

GRAZIE!

bettercoderwannabe.blogspot.com

github.com/iridio

@collaalessandro