Your SlideShare is downloading. ×
0
Kinect V2 : What’s new!!!
Massimo Bonanni
http://codetailor.blogspot.com
massimo.bonanni@tiscali.it
@massimobonanni
 Prerequisiti HW/SW
 Kinect V1 vs Kinect V2
 Architettura
 Source
 Reader
 Frame Reference
 Frame
 Sources
 Infra...
Sistemi Operativi Supportati
Windows 8, Windows 8.1
Configurazione Hardware
Processore 64 bit (x64) i7 2.5Ghz (o superiore...
Kinect for Windows v2
sensor
Kinect for Windows v2
USB hub
Kinect for Windows v2
power supply
Hardware
Color camera con risoluzione 1920x1080 pixel, 30 fps
Infrared camera con risoluzione 512x424 pixel, 30 fps
Range di profon...
Feature Kinect for Windows 1 Kinect for Windows 2
Color Camera 640 x 480 @ 30 fps 1920 x 1080 @ 30 fps
Depth Camera 320 x ...
Kinect Sensor
Kinect Drivers
Kinect Runtime
Native API .NET API WinRT API
Native Apps .NET Apps WSA
Maggior parte delle
el...
L’architettura prevede delle sorgenti (source) e dei reader
Ogni stream fornito dal device è una sorgente dalla quale
poss...
Architettura: V1 vs V2
Stream
ReaderSource
Una sola applicazione
alla volta
Più applicazioni
contemporanee
Utilizzo del sensore
1. Recuperare un’istanza di KinectSensor
2. Aprire il sensore
3. Usare il sensore
4. Chiudere il sens...
Espone i metadati della sorgente e permette di
accedere al reader
Il sensore espone una sorgente per ogni tipo di
funziona...
Permette di accedere ai frame
Polling
Eventi
Si possono avere più reader per una singola sorgente
Un reader può essere mes...
Permette di accedere al frame corrente attraverso il
metodo AcquireFrame()
Nell’intervallo di tempo in cui l’applicazione ...
Permette l’accesso ai dati effettivi del frame
Eseguire una copia locale dei dati
Accedere al buffer raw direttamente
Cont...
InfraredSource
DEMO
Color source
Depth source
Infrared source
Body Index source
Body source (scheletro, hand tracking,
espressioni…)
Audio sou...
512 x 424 pixel @ 30 fps
Due sorgenti:
Infrared: singolo frame infrarosso
LongExposureInfrared: sovrapposizione di 3 frame...
1920 x 1080 pixel @ 30 fps (15 fps in scarsa luminosità)
Formati multipli (RGBA, BGRA, YUY2, …), i frame arrivano dal devi...
512 x 424 pixel @ 30 fps
Ogni pixel del frame è composto da 2 byte (16-bit) e
contiene la distanza, in mm, dal piano focal...
512 x 424 @ 30 fps
Ogni pixel del frame è composto da 1 byte:
 -1: nessun player in corrispondenza del punto
 0 - 5: ind...
Ogni frame restituisce un array di oggetti di tipo Body
Ogni body espone:
 25 joint
 Hand tracking (mano aperta, chiusa,...
La classe Body :
Joints: tracciamento e posizione nello spazio del punto
corrispondente;
Orientation: orientamento nello s...
La classe Body espone lo stato delle mani attraverso le proprietà
HandLeftState e HandRightState:
 Unknown
 Not Tracked
...
Activity:
EyeLeftClosed, EyeRightClosed, MouthOpen, MouthMoved, LookingAway
Appearance
WearingGlasses
Expression:
Happy
Ne...
BodyIndexSource
DEMO
Audio Beam
• “Cono” di ascolto orientabile
• Può essere orientato automaticamente o
manualmente
• Le API possono supportar...
Audio Beam Frame
 Ogni frame contiene i campioni audio
relativi al cono d’ascolto acquisiti in un
intervallo di tempo
 I...
Il meccanismo di gestione dell’audio prevede
un reader e un evento sollevato nel momento
in cui dei frame sono disponibili...
Il metodo AcquireBeamFrames restituisce
l’elenco degli AudioBeamFrames.
Audio
MultiSourceFrameReader è, di fatto, un reader che
può agire su più sorgenti contemporaneamente
sincronizzando i frame;
Vie...
MultiSourceFrame contiene il riferimento ad ogni frame delle
sorgenti
Il frame rate è il minore tra i frame rate delle sor...
MultiFrameSource
DEMO
• Referenziare WindowsPreview.Kinect (invece
di Microsoft.Kinect);
• Recuperare l’istanza di default tramite il
metodo Get...
Windows Store App
DEMO
Applicazioni che utilizzano un solo sensore:
 Non serve più il componente Sensor
Chooser
 KinectSensor.Default restituis...
 Eliminare i flag utilizzati per impostare le
funzionalità del device (ad esempio
risoluzione, near/far mode, standing/se...
 L’indice del player è in una sorgente
separata rispetto alla sorgente Depth;
 6 player completamente tracciati (invece ...
 I nuovi joint possono essere ignorati dalle
vecchie applicazioni (i valori della nuova
enumerazione si aggiungono alla v...
Kinect for Windows Dev Center
http://www.microsoft.com/en-us/kinectforwindowsdev/default.aspx
Kinect for Windows Web Site
...
Kinect V2: what's new!!!
Upcoming SlideShare
Loading in...5
×

Kinect V2: what's new!!!

432

Published on

Sessione "Kinect V2: what's new!!" tenuta durante il lab Kinect presso l'università di Ancona il 29/05/2014

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
432
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Kinect V2: what's new!!!"

  1. 1. Kinect V2 : What’s new!!! Massimo Bonanni http://codetailor.blogspot.com massimo.bonanni@tiscali.it @massimobonanni
  2. 2.  Prerequisiti HW/SW  Kinect V1 vs Kinect V2  Architettura  Source  Reader  Frame Reference  Frame  Sources  Infrared  Color  Depth  BodyIndex  Body  MultiFrame  Window Store App  Porting da Kinect V1 Agenda
  3. 3. Sistemi Operativi Supportati Windows 8, Windows 8.1 Configurazione Hardware Processore 64 bit (x64) i7 2.5Ghz (o superiore) Memoria 4 GB (o più) Built-in USB 3.0 host controller (chipset Intel o Renesas); Scheda grafica DirectX11: ATI Radeon (HD 5400 series, HD 6570, HD 7800), NVidia Quadro (600, K1000M), NVidia GeForce (GT 640, GTX 660), Intel HD 4000 Sensore Kinect v2 (con alimentatore e USB hub) Software Requirements Visual Studio 2012 (2013) Prerequisiti
  4. 4. Kinect for Windows v2 sensor Kinect for Windows v2 USB hub Kinect for Windows v2 power supply Hardware
  5. 5. Color camera con risoluzione 1920x1080 pixel, 30 fps Infrared camera con risoluzione 512x424 pixel, 30 fps Range di profondità da 0.5 a 4.5 m Utilizzo di camera ad infrarossi e a colori contemporaneamente No motore per “brandeggiamento” verticale Hardware
  6. 6. Feature Kinect for Windows 1 Kinect for Windows 2 Color Camera 640 x 480 @ 30 fps 1920 x 1080 @ 30 fps Depth Camera 320 x 240 512 x 424 Max Depth Distance ~4.5 M ~4.5 M Min Depth Distance 40 cm in near mode 50 cm Horizontal Field of View 57 degrees 70 degrees Vertical Field of View 43 degrees 60 degrees Tilt Motor yes no Skeleton Joints Defined 20 joints 25 joints Full Skeletons Tracked 2 6 USB Standard 2.0 3.0 Supported OS Win 7, Win 8 Win 8-8.1 (WSA) Price $299 TBD Kinect V1 vs Kinect V2
  7. 7. Kinect Sensor Kinect Drivers Kinect Runtime Native API .NET API WinRT API Native Apps .NET Apps WSA Maggior parte delle elaborazioni anche sfruttando la GPU Applicazioni COM/C++ Applicazioni Desktop Windows Store Apps Architettura
  8. 8. L’architettura prevede delle sorgenti (source) e dei reader Ogni stream fornito dal device è una sorgente dalla quale possiamo ricavare uno o più reader Ogni reader fornisce degli eventi per recuperare dei reference ai singoli frame provenienti dal device Dal singolo frame si possono recuperare i dati relativi al tipo di sorgente (ad esempio lo scheletro del giocatore) Architettura Sensor Source Reader Frame Ref Frame
  9. 9. Architettura: V1 vs V2 Stream ReaderSource Una sola applicazione alla volta Più applicazioni contemporanee
  10. 10. Utilizzo del sensore 1. Recuperare un’istanza di KinectSensor 2. Aprire il sensore 3. Usare il sensore 4. Chiudere il sensore In caso di sconnessione del device L’istanza di KinectSensor rimane valida Non vengono inviati più frame La proprietà IsAvailable ci dice se il sensore è attaccato o meno. Possono essere gestiti più sensori Sensor Sensor = KinectSensor.Default Sensor.Open() ' ' ' Sensor.Close() Dim kinectList = KinectSensor.KinectSensors _ .Where(Function(k) k.IsAvailable = True) Sensor Source Reader Frame Ref Frame
  11. 11. Espone i metadati della sorgente e permette di accedere al reader Il sensore espone una sorgente per ogni tipo di funzionalità Sensor Source Reader Frame Ref Frame Source
  12. 12. Permette di accedere ai frame Polling Eventi Si possono avere più reader per una singola sorgente Un reader può essere messo in pausa Sensor Source Reader Frame Ref Frame Dim infraredReader As InfraredFrameReader = Sensor.InfraredFrameSource.OpenReader() AddHandler infraredReader.FrameArrived, AddressOf InfraredFrameArrivedHandler ' ' ' infraredReader.Dispose() Reader
  13. 13. Permette di accedere al frame corrente attraverso il metodo AcquireFrame() Nell’intervallo di tempo in cui l’applicazione richiama AcquireFrame() il frame stesso potrebbe essere scaduto RelativeTime permette di mettere in correlazione frame differenti Sensor Source Reader Frame Ref Frame Using frame As ColorFrame = e.FrameReference.AcquireFrame() If frame IsNot Nothing Then ' ' ' End If End Using Frame Reference
  14. 14. Permette l’accesso ai dati effettivi del frame Eseguire una copia locale dei dati Accedere al buffer raw direttamente Contiene i metadati del frame (ad esempio, per il colore formato, altezza, larghezza) Va gestito rapidamente e rilasciato (se un frame non viene rilasciato si potrebbe non ricevere più alcun frame) Sensor Source Reader Frame Ref Frame Frame
  15. 15. InfraredSource DEMO
  16. 16. Color source Depth source Infrared source Body Index source Body source (scheletro, hand tracking, espressioni…) Audio source Funzionalità “di serie”
  17. 17. 512 x 424 pixel @ 30 fps Due sorgenti: Infrared: singolo frame infrarosso LongExposureInfrared: sovrapposizione di 3 frame (miglior rapporto segnale/rumore ma immagini meno precise e con effetto sfocato) Stesso sensore fisico della sorgente di profondità Ogni pixel è formato da 2 byte (16-bit) e rappresenta l’intensità della riflessione infrarossa. L’SDK recupera solo la riflessione della luce infrarossa proiettata dal device Infrared source
  18. 18. 1920 x 1080 pixel @ 30 fps (15 fps in scarsa luminosità) Formati multipli (RGBA, BGRA, YUY2, …), i frame arrivano dal device in formato raw (in questo momento YUY2) I dati del frame possono: essere utilizzati nel formato raw convertiti in un altro formato (con un costo computativo leggermente maggiore) Il buffer è un array di bytes. Il numero di byte per pixel dipende dal formato raw dell’imagine (in questo momento 4 byte per pixel). Color source
  19. 19. 512 x 424 pixel @ 30 fps Ogni pixel del frame è composto da 2 byte (16-bit) e contiene la distanza, in mm, dal piano focale del device Non c’è riferimento all’indice del player presente nel punto corrispondente Distanze di lavoro: DepthMinReliableDistance = 0,5 m DepthMaxReliableDistance = 4,5 m Depth source
  20. 20. 512 x 424 @ 30 fps Ogni pixel del frame è composto da 1 byte:  -1: nessun player in corrispondenza del punto  0 - 5: indice del player (tracciato con la sorgente Body) Body Index source
  21. 21. Ogni frame restituisce un array di oggetti di tipo Body Ogni body espone:  25 joint  Hand tracking (mano aperta, chiusa, “lasso”)  Activities (occhi chiusi, bocca aperta, ..)  Appearance (ad esempio indossare occhiali)  Espressioni del viso (neutral, sorridente)  Orientamento delle ossa del corpo  …. Le API del body source sono ottimizzate per il consumo di memoria ed il riciclo degli oggetti Body source
  22. 22. La classe Body : Joints: tracciamento e posizione nello spazio del punto corrispondente; Orientation: orientamento nello spazio dell’articolazione. Un joint può essere:  Not Tracked  Tracked  Inferred Migliorata affidabilità e accuratezza Tracciati completamente fino a 6 player Body - Joint
  23. 23. La classe Body espone lo stato delle mani attraverso le proprietà HandLeftState e HandRightState:  Unknown  Not Tracked  Open  Closed  Lasso “Confidence” dello stato:  High  Low Il tracking delle mani è attualmente limitato a 2 player ma è possibile decidere quali player tracciare. Il numero di player tracciati verrà aumentato in futuro. Body – Hand Tracking
  24. 24. Activity: EyeLeftClosed, EyeRightClosed, MouthOpen, MouthMoved, LookingAway Appearance WearingGlasses Expression: Happy Neutral Tre dictionary  La chiave è l’ activity, l’appearance o l’expression da verificare (ad esempio EyeLeftClosed o WearingGlasses);  Il valore indica la probabilità che l’activity, l’appearance o l’expression sia in atto (Unknown, MayBe, Yes, No) In futuro verranno aggiunte altre activity, appearance e expression. Body – Activity, Appearance, Expression
  25. 25. BodyIndexSource DEMO
  26. 26. Audio Beam • “Cono” di ascolto orientabile • Può essere orientato automaticamente o manualmente • Le API possono supportare più “coni“ contemporaneamente Audio
  27. 27. Audio Beam Frame  Ogni frame contiene i campioni audio relativi al cono d’ascolto acquisiti in un intervallo di tempo  I frame dei differenti “coni” sono sincronizzati tra loro Audio
  28. 28. Il meccanismo di gestione dell’audio prevede un reader e un evento sollevato nel momento in cui dei frame sono disponibili Audio AudioReader = Sensor.AudioSource.OpenReader() AddHandler AudioReader.FrameArrived, AddressOf AudioFrameArrivedHandler
  29. 29. Il metodo AcquireBeamFrames restituisce l’elenco degli AudioBeamFrames. Audio
  30. 30. MultiSourceFrameReader è, di fatto, un reader che può agire su più sorgenti contemporaneamente sincronizzando i frame; Viene generato un evento quando i frame delle sorgenti collegati sono disponibili Multi Frame MultiReader = Sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color Or FrameSourceTypes.BodyIndex Or FrameSourceTypes.Body)
  31. 31. MultiSourceFrame contiene il riferimento ad ogni frame delle sorgenti Il frame rate è il minore tra i frame rate delle sorgenti selezionate Multi Frame frame = frameReference.AcquireFrame() If frame IsNot Nothing Then Using colorFrame = frame.ColorFrameReference.AcquireFrame(), bodyFrame = frame.BodyFrameReference.AcquireFrame(), bodyIndexFrame = frame.BodyIndexFrameReference.AcquireFrame() ' ' ' End Using End If
  32. 32. MultiFrameSource DEMO
  33. 33. • Referenziare WindowsPreview.Kinect (invece di Microsoft.Kinect); • Recuperare l’istanza di default tramite il metodo GetDefault() invece che la proprietà Default Windows Store Apps Sensor = KinectSensor.GetDefault() Sensor.Open()
  34. 34. Windows Store App DEMO
  35. 35. Applicazioni che utilizzano un solo sensore:  Non serve più il componente Sensor Chooser  KinectSensor.Default restituisce sempre una istanza valida (mai Nothing);  Utilizzare KinectSensor.IsAvailable per controllare l’effettiva presenza del device e gli eventi di cambio stato per gestire la riconnessione. Porting da Kinect V1
  36. 36.  Eliminare i flag utilizzati per impostare le funzionalità del device (ad esempio risoluzione, near/far mode, standing/seated mode);  Stream model  Source/Reader model  Evento AllFrameReady  evento MultiSourceFrameArrived Porting da Kinect V1
  37. 37.  L’indice del player è in una sorgente separata rispetto alla sorgente Depth;  6 player completamente tracciati (invece dei due della versione 1);  Numero maggiore di joint;  Correzione anatomica dei joint (specialmente per il baricentro);  Alcuni joint rinominati Porting da Kinect V1
  38. 38.  I nuovi joint possono essere ignorati dalle vecchie applicazioni (i valori della nuova enumerazione si aggiungono alla vecchia);  La maggior parte dei joint hanno lo stesso nome dei precedent ad eccezione di : Porting da Kinect V1
  39. 39. Kinect for Windows Dev Center http://www.microsoft.com/en-us/kinectforwindowsdev/default.aspx Kinect for Windows Web Site http://www.microsoft.com/en-us/kinectforwindows/ Kinect for Windows Blog http://blogs.msdn.com/b/kinectforwindows/ Kinect V2 on Microsoft Curah! http://curah.microsoft.com/55200/kinect-v2-beta Risorse
  1. A particular slide catching your eye?

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

×