Nui for real

Preview:

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