Template designed by
Introduzione a Kinect
Template designed by
Massimo Bonanni
massimo.bonanni@tiscali.it
@massimobonanni...
Template designed by
brought to you by
Template designed by
Mi occupo di progettazione e sviluppo applicazioni con
tecnologie Microsoft da sempre.
Fondatore e pr...
Template designed by
Introduzione alle Natural User Interface
Introduzione a Kinect
Come e’ fatto
Requisiti HW e SW
Caratt...
Template designed by
Si definisce NUI l’interfaccia di un sistema in cui gli utenti riescono ad
interagire utilizzando un ...
Template designed by
NUI : Evoluzione delle interfacce
Template designed by
• Rapido apprendimento delle funzionalità;
• L’utente è in grado di diventare «esperto» sull’interfac...
Template designed by
• Affinchè le NUI siano efficaci è necessario che utilizzino gli
Skill Innati.
• Uno Skill Innato è u...
Template designed by
Uno Skill Appreso è un «movimento» non naturale e che
necessita di un periodo di training.
Muovere un...
Template designed by
Video Camera RGB (CMOS)
Sensori di profondità: proiettore IR + Camera IR (CMOS)
Inclinazione motorizz...
Template designed by
Introduzione a Kinect: Come funziona
Il proiettore ad
infrarossi illumina il
soggetto con dei
pattern...
Template designed by
• Sistema Operativo
 Windows 7
 Windows 8/8.1 (no WSA)
 Windows Embedded Standard 7
 Windows Embe...
Template designed by
Angolo di visuale:
Orizzontale: 57,5°
Verticale: 43,5° (da +27° a -27°)
Introduzione a Kinect: Caratt...
Template designed by
Introduzione a Kinect: Caratteristiche
Profondità (Near Mode):
Limite fisico: 0,4m – 3,0m
Limite prat...
Template designed by
Audio:
Angolo di ascolto: 100° (da -50° a +50° rispetto all’asse centrale);
Possibilità di restringer...
Template designed by
L’SDK mette a disposizione una serie di strumenti e una libreria
di classi in grado di interagire con...
Template designed by
Il device restituisce 3 stream:
• Video
• Depth
• Audio
Kinect: Architettura
Template designed by
Il Kinect può gestire oggetti a differenti distanze in base alla
modalità selezionata:
Default Mode: ...
Template designed by
Kinect fornisce un insiemi di «scheletri» dei player rilevati:
• Al massimo due player contemporanei ...
Template designed by
Il device dispone di una batteria di 4 microfoni con delle funzionalità di “audio
processing” hardwar...
Template designed by
L’SDK è scaricabile dall’indirizzo
http://www.kinectforwindows.org
Vengono installati contestualmente...
Kinect Explorer
Template designed by
KinectFusion permette di eseguire la scansione 3D di un oggetto
e la creazione del modello.
L'utente ...
Template designed by
Kinect Fusion
Kinect Fusion
Template designed by
Tre tipologie di gesture:
• Static Gesture (posture)
• Continuous Gesture
• Dynamic Gesture
Kinect De...
Template designed by
Nelle Static Gesture, chiamate anche Posture, l'utente mantiene
una posizione (anche solo di una part...
Template designed by
Le Continuous Gesture sono le gesture che permettono di
tracciare gli utenti che si spostano davanti ...
Template designed by
Le Dynamic Gesture sono quelle gesture che forniscono un
feedback all’utente a seguito di un moviment...
Template designed by
Alcune regole relative alle gesture:
• Dare sempre un feedback all’utente quando il sistema riconosce...
Template designed by
Il Kinect è ancora, spesso, associato al gioco.
Quando si utilizza Kinect per applicazioni non ludich...
Template designed by
L’affidabilità è uno dei requisiti fondamentali per le applicazioni che
fanno uso di gesture:
• La ge...
Template designed by
Se la direzione di due gesture è la stessa, queste
potrebbero confondersi;
Se il percorso che due ges...
Template designed by
Privilegiare l’uso delle gesture implementate con una mano per
le operazioni comuni o quelle che l’ut...
Template designed by
Nel caso si utilizzino delle posture, tenere presente il raggio
d’azione dell’utente: questo non dovr...
Template designed by
Quando implementiamo gesture utilizzando Kinect, è necessario fare
attenzione alle «barriere» tecnich...
Template designed by
Lo skeleton tracking è più stabile quando
l’utente è rivolto verso il dispositivo
La velocità con cui...
Template designed by
L’utilizzo dei comandi vocali può aprire nuovi scenari in ottica
NUI.
Generalmente si usano parole o ...
Template designed by
Quando si scelgono i comandi vocali bisogna tener presente
alcune considerazioni:
• Usare parole semp...
Template designed by
Nel caso in cui non si riesca a trovare un insieme di parole
adatte o le possibili opzioni sono simil...
Template designed by
In caso di riconoscimento non perfetto, è opportuno avvertire
l’utente fornendo un suggerimento
Kinec...
Template designed by
E’ necessario prevedere alcune best practice a livello di UI:
• visualizzare i comandi disponibili, m...
Interaction Gallery
Template designed by
Q&A
Template designed by
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
...
Upcoming SlideShare
Loading in...5
×

Gam01 introduzione a kinect

82

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
82
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Gam01 introduzione a kinect

  1. 1. Template designed by Introduzione a Kinect Template designed by Massimo Bonanni massimo.bonanni@tiscali.it @massimobonanni codetailor.blogspot.com
  2. 2. Template designed by brought to you by
  3. 3. Template designed by Mi occupo di progettazione e sviluppo applicazioni con tecnologie Microsoft da sempre. Fondatore e presidente della community DomusDotNet (www.domusdotnet.org) Microsoft Certified Professional Microsoft MVP dal 2011 nella categoria VB.NET Ambassador Intel per Perceptual Computing chi sono
  4. 4. Template designed by Introduzione alle Natural User Interface Introduzione a Kinect Come e’ fatto Requisiti HW e SW Caratteristiche tecniche Funzionalità Kinect Design Interactions agenda
  5. 5. Template designed by Si 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) Natural User Interface Una NUI è rivolta ad utenti in grado di effettuare movimenti relativamente naturali, azioni e gesti che devono controllare l’applicazione del computer o manipolare contenuti sullo schermo.
  6. 6. Template designed by NUI : Evoluzione delle interfacce
  7. 7. Template designed by • 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; • E’ più divertente utilizzare l’applicazione  NUI: Vantaggi
  8. 8. Template designed by • 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). Skill innati vs Skill appresi
  9. 9. Template designed by Uno Skill Appreso è un «movimento» non naturale e che necessita di un periodo di training. Muovere un mouse, puntare il cursore in un punto ben preciso e cliccare con il tasto destro è uno Skill Appreso. Skill innati vs Skill appresi
  10. 10. Template designed by Video Camera RGB (CMOS) Sensori di profondità: proiettore IR + Camera IR (CMOS) Inclinazione motorizzata (±27 gradi) 4 Microfoni Introduzione a Kinect: Cosa c’è dentro Inclinazione Motorizzata Batteria di 4 microfoni Sensori di profondità Video Camera RGB
  11. 11. Template designed by Introduzione a Kinect: 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
  12. 12. Template designed by • Sistema Operativo  Windows 7  Windows 8/8.1 (no WSA)  Windows Embedded Standard 7  Windows Embedded Standard 8 • Hardware  processore 32-bit (x86) or 64-bit (x64)  processore dual-core, 2.66-GHz o superiore  bus USB 2.0 dedicato  RAM 2 GB  scheda grafica DirectX 9.0c o superiore  Kinect con cavo usb per collegamento al pc • Software  Visual Studio 2010 Express o superiori  .NET Framework 4.0 o successivi  Runtime DirectX 9 (DirectX 11 se si utilizza Fusion)  Microsoft Speech Platform SDK v11 (speech recognition) Introduzione a Kinect: Requisiti minimi (v 1.8)
  13. 13. Template designed by Angolo di visuale: Orizzontale: 57,5° Verticale: 43,5° (da +27° a -27°) Introduzione a Kinect: Caratteristiche
  14. 14. Template designed by Introduzione a Kinect: Caratteristiche Profondità (Near Mode): Limite fisico: 0,4m – 3,0m Limite pratico : 0,8m – 2,5m Profondità (Default Mode): Limite fisico: 0,8m – 4,0m Limite pratico : 1,2m – 3,5m
  15. 15. Template designed by 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 Introduzione a Kinect: Caratteristiche
  16. 16. Template designed by 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. Introduzione a Kinect: Architettura
  17. 17. Template designed by Il device restituisce 3 stream: • Video • Depth • Audio Kinect: Architettura
  18. 18. Template designed by Il 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. Default Mode vs Near Mode
  19. 19. Template designed by Kinect 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. Skeletal Tracking
  20. 20. Template designed by Il device dispone di una batteria di 4 microfoni con delle funzionalità di “audio processing” hardware: • Multichannel echo cancellation (MEC) • Sound position tracking • Directional Microfone • Noise suppression e Noise reduction Kinect: Audio
  21. 21. Template designed by L’SDK è scaricabile dall’indirizzo http://www.kinectforwindows.org Vengono installati contestualmente: • SDK (con samples) • Drivers • Runtime (quello da distribuire con le applicazioni ) • Speech Recognition Language Pack. Introduzione a Kinect : SDK
  22. 22. Kinect Explorer
  23. 23. Template designed by KinectFusion permette di eseguire la scansione 3D di un oggetto e la creazione del modello. L'utente può dipingere una scena con Kinect e contemporaneamente vedere e interagire con un modello 3D dettagliato della scena. Kinect Fusion
  24. 24. Template designed by Kinect Fusion
  25. 25. Kinect Fusion
  26. 26. Template designed by Tre tipologie di gesture: • Static Gesture (posture) • Continuous Gesture • Dynamic Gesture Kinect Design Interactions : Gesture
  27. 27. Template designed by Nelle 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») Kinect Design Interactions : Static Gesture Va benissimo in Europa non in Iran!!!!
  28. 28. Template designed by Le Continuous 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 Design Interactions : Continuous Gesture
  29. 29. Template designed by Le 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 Design Interactions : Dynamic Gesture
  30. 30. Template designed by 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 Design Interactions : Gesture «Dogma»
  31. 31. Template designed by Il Kinect è ancora, spesso, associato al gioco. Quando si utilizza Kinect per applicazioni non ludiche, il punto di vista dell’interazione cambia radicalmente. Kinect Design Interactions : Gesture «Dogma» In un gioco la sfida è divertente In un’applicazione la sfida è frustrante
  32. 32. Template designed by L’affidabilità è uno dei requisiti fondamentali per le applicazioni che fanno uso di gesture: • La gesture deve poter essere eseguita in molti modi differenti tutti simili; • Non dovrebbero esserci false attivazioni; • Dovrebbe esserci consistenza nelle gesture (se una gesture esegue un task in una certa maschera, dovrebbe eseguire sempre lo stesso task anche nelle altre); • Le gesture dovrebbero differire tra loro per evitare fraintendimenti Kinect Design Interactions : Affidabilità
  33. 33. Template designed by Se la direzione di due gesture è la stessa, queste potrebbero confondersi; Se il percorso che due gesture compiono è più o meno lo stesso, queste potrebbero confondersi; Se il punto di inizio e di fine di due gesture sono simili, queste potrebbero confondersi; Se due gesture hanno tempi di esecuzione simili, queste potrebbero confondersi Kinect Design Interactions : Differenziare le gesture
  34. 34. Template designed by Privilegiare l’uso delle gesture implementate con una mano per le operazioni comuni o quelle che l’utente esegue più spesso (ad esempio spostare un oggetto). Privilegiare l’uso delle gesture implementate con due mani per le funzionalità avanzate (ad esempio lo zoom) Kinect Design Interactions : Una o due mani?
  35. 35. Template designed by Nel caso si utilizzino delle posture, tenere presente il raggio d’azione dell’utente: questo non dovrebbe spostarsi troppo per raggiungere i comandi. Dove possibile, progettare le stesse gesture sia per la posizione in piedi che seduta. Kinect Design Interactions : Range d’azione
  36. 36. Template designed by Quando implementiamo gesture utilizzando Kinect, è necessario fare attenzione alle «barriere» tecniche dello strumento. Mantenere le braccia al lato del corpo durante l’esecuzione delle gesture rende queste più facili da tracciare, mentre i movimenti delle mani di fronte al corpo può essere inaffidabile. Gesture che prevedono di estendere le mani al di sopra della testa possono essere «tagliate» Kinect Design Interactions : Le «barriere» tecniche del Kinect
  37. 37. Template designed by Lo skeleton tracking è più stabile quando l’utente è rivolto verso il dispositivo La velocità con cui il Kinect esegue lo skeleton tracking e il frame rate della camera devono essere tenuti in considerazione quando si progettano le gesture. Kinect Design Interactions : Le «barriere» tecniche del Kinect
  38. 38. Template designed by L’utilizzo dei comandi vocali può aprire nuovi scenari in ottica NUI. Generalmente si usano parole o semplici frasi per eseguire comandi di uso non comune. E’ necessario fare attenzione al rumore di fondo dell’ambiente in cui ci si trova. In ambienti con tanto rumore non è consigliabile utilizzare i comandi vocali Kinect Design Interactions : La voce
  39. 39. Template designed by Quando si scelgono i comandi vocali bisogna tener presente alcune considerazioni: • Usare parole semplici in modo da favorire una memorizzazione migliore da parte dell’utente; • Mantenere le frasi corte (al massimo 5 parole); • Scegliere parole con un suono differente le une dalle altre. Kinect Design Interactions : Scegliere i comandi
  40. 40. Template designed by Nel caso in cui non si riesca a trovare un insieme di parole adatte o le possibili opzioni sono simili, è possibile utilizzare una mappa numerica per selezionare le opzioni Kinect Design Interactions : e se le cose si complicano…. Dire: «camera», «stella» o «tool» Dire: «1», «2» o «3»
  41. 41. Template designed by In caso di riconoscimento non perfetto, è opportuno avvertire l’utente fornendo un suggerimento Kinect Design Interactions : Aiutare l’utente
  42. 42. Template designed by E’ necessario prevedere alcune best practice a livello di UI: • visualizzare i comandi disponibili, magari contestualizzandoli in base allo scenario (se l’utente non è di fronte allo schermo fare in modo di farli ascoltare); • indicare visivamente che il Kinect è in ascolto (magari con l’immagine di un microfono); • se si verificano problemi con l’apparato di ricezione, segnalarlo all’utente in maniera adeguata; • il voice recognition non dovrebbe essere l'unico metodo con cui un utente può interagire con l'applicazione. Implementare la possibilità, da parte dell’utente, di utilizzare un altro metodo di input. Kinect Design Interactions : Voice recognition e UI
  43. 43. Interaction Gallery
  44. 44. Template designed by Q&A
  45. 45. Template designed by Grazie a tutti per la partecipazione Riceverete il link per il download a slide e demo via email nei prossimi giorni Per contattarmi massimo.bonanni@tiscali.it Grazie
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×