KINECT FOR WINDOWS
PROVARSI I VESTITI CON IL KINECT
KINECT FOR WINDOWS
Who I am• Microsoft MVP ASP.NET• Founder of SmartCore Tech• DotNetToscana Staff Member & Speaker• Speaker for various events• Trainer• SharePoint addicted from 2007• Enthusiast ASP.NET Developer• NopCommerce Contributor• MCPD Web applications, MCTS BING
Applications, MCTS Silverlight, MCTS HTML5 & CSS3
• Italian blog: www.emanuelebartolesi.com• English blog:
www.geekswithblogs.net/emanueleb/• Twitter: @kasuken• Email: [email protected]
KINECT FOR WINDOWS
#bem14
KINECT FOR WINDOWS
Agenda
• Natural User Inteface• Skill innati e skill appresi• Informazione tecniche sul Kinect• Gesture e Posture• Demo • Q&A
KINECT FOR WINDOWS
Natural User InterfaceSi definisce NUI l’interfaccia di un sistema in cui gli utenti riescono ad interagire utilizzando un approccio «naturale» cioè riescono ad utilizzare le funzionalità del sistema senza l’uso di dispositivi artificiali (come mouse, trackball o tastiera)
KINECT FOR WINDOWS
NUI: vantaggi• Rapido apprendimento delle funzionalità• L’utente è in grado di diventare «esperto»
sull’interfaccia in minor tempo senza particolare training
• Può aiutare portatori di handicap nell’utilizzo del sistema
KINECT FOR WINDOWS
Skill innati e skill appresi• Affinchè le NUI siano efficaci è necessario che
utilizzino gli Skill Innati• Uno Skill Innato è un «movimento» insito
nella natura umana e nel suo quotidiano (il gesto di sfogliare è uno skill innato)
• Uno Skill Appreso è un «movimento» non naturale e che necessita di un periodo di training (muovere un mouse è uno skill appreso)
KINECT FOR WINDOWS
Come è fatto?IR Emitter Color Sensor
IR Depth Sensor
Tilt Motor
Microphone Array
KINECT FOR WINDOWS
Come funziona
Il proiettore ad infrarossi illumina il soggetto con dei pattern
1
La camera infrarossi misura la distanza con un approccio «a luce strutturata»
2
L’SDK è in grado di convertire lo stream della depth cam in dati utilizzabili
3
La nostra applicazione utilizza le info dell’SDK
4
KINECT FOR WINDOWS
Angolo di visualeAngolo di visuale:• Orizzontale: 57,5°• Verticale: 43,5° (da +27° a -
27°)
KINECT FOR WINDOWS
Profondità
Profondità (Near Mode):Limite fisico: 0,4m – 3,0mLimite pratico : 0,8m – 2,5m
Profondità (Default Mode):Limite fisico: 0,8m – 4,0mLimite pratico : 1,2m – 3,5m
KINECT FOR WINDOWS
DEMO
KINECT FOR WINDOWS
RISOLUZIONE
• Color• 12 FPS: 1280X960 RGB• 15 FPS: Raw YUV 640x480• 30 FPS: 640x480
• Depth • 30 FPS: 80x60, 320x240, 640x480
KINECT FOR WINDOWS
DEMO
KINECT FOR WINDOWS
DEPTH DATA
• Restituisce la distanza e il player per ogni pixel• Ex: 320x240 = 76,800 pixels
• Distanza• Distance in mm from Kinect ex: 2,000mm (6.56
feet)
• Player• 1-6 players
KINECT FOR WINDOWS
Suono• Audio:
• Angolo di ascolto: 100° (da -50° a +50° rispetto all’asse centrale)
• Possibilità di restringere l’angolo di ascolto a step di 10°
• Noise reduction:
• -20dB per l’audio proveniente da davanti
• -26db per l’audio proveniente da dietro
KINECT FOR WINDOWS
Architettura• L’SDK mette a disposizione una serie di
strumenti e una libreria di classi in grado di interagire con i sensori del dispositivo fornendo allo sviluppatore oggetti ed eventi.
KINECT FOR WINDOWS
Stream• Il device restituisce 3 stream:
• Video• Depth• Audio
KINECT FOR WINDOWS
Default e Near ModeIl Kinect può gestire oggetti a differenti distanze in base alla modalità selezionata:
• Default Mode: oggetti tra 80 cm e 4 metri• Near Mode: oggetti tra 40 cm e 3 metri
KINECT FOR WINDOWS
DEMO
KINECT FOR WINDOWS
Skeleton TrackingKinect fornisce un insiemi di «scheletri» dei player rilevati:• Al massimo due player contemporanei (più altri 4
con informazioni ridotte)• Ogni «scheletro» può essere Tracked o
NotTracked• Ogni scheletro prevede un array di 20 Joint
ognuno con la propria posizione (x,y,z)• Ogni Joint può essere Tracked, NotTracked o
Inferred (NotTracked è raro)• La classe Skeleton fornisce anche informazioni
sulle «ossa» del player
KINECT FOR WINDOWS
DEMO
KINECT FOR WINDOWS
GestureTre tipologie di gesture:• Static Gesture (posture) • Continuous Gesture• Dynamic Gesture
KINECT FOR WINDOWS
PostureNelle Static Gesture, chiamate anche Posture, l'utente mantiene una posizione (anche solo di una parte del corpo) fino a quando questa non viene riconosciuta.E’ opportuno non scegliere posture che possono avere diversi significati in diverse culture (ad esempio il «pollice in alto»)
Va benissimo in Europa non
in Iran!!!!
KINECT FOR WINDOWS
Continuos GestureLe Continuos Gesture sono le gesture che permettono di tracciare gli utenti che si spostano davanti al Kinect.Sono le gesture più adatte per i giochi.
KINECT FOR WINDOWS
Dynamic GestureLe Dynamic Gesture sono quelle gesture che forniscono un feedback all’utente a seguito di un movimento eseguito con una determinata parte del corpo.Sono le gesture più conosciute.
KINECT FOR WINDOWS
Alcune regole• Alcune regole relative alle gesture:• Dare sempre un feedback all’utente quando il
sistema riconosce una gesture;• Prevedere gesture confortevoli;• Disegnare gesture che, almeno per i controlli di base,
siano innate oppure di semplice comprensione;• Cercare di implementare gesture da eseguire in
maniera rapida e precisa con movimenti quanto più possibili naturali
KINECT FOR WINDOWS
DEMO
KINECT FOR WINDOWS
Q&A
KINECT FOR WINDOWS
SOME EXAMPLES
• Coca Cola - http://www.youtube.com/watch?v=3MnDAWlhegw
• Barbie - http://www.youtube.com/watch?v=kVDFzZ97XaY
• Boing 737 - http://www.youtube.com/watch?v=hwBo_LtjSUs
• AUDI - http://www.youtube.com/watch?v=3F9H0tdCnQw
• BIBLE - https://www.youtube.com/watch?v=5B9vNU9c9Ac
KINECT FOR WINDOWS
Riferimenti e download
• Sorgenti: https://github.com/kasuken/BetterEmbedded2014FittingRoom.git
• Slide: http://www.slideshare.net/emanuelebartolesi/provarsi-i-vestiti-con-il-kinect
Twitter: @kasukenEmail: [email protected]
KINECT FOR WINDOWS
GRAZIE