230 likes | 329 Views
& Presentano: BUILD live – Torino Introduzione a Microsoft Kinect. Gianni Rosa Gallina gianni.rosagallina@bepseng.it http://embeddedlounge.blogspot.com. Marina Sabetta marina.sabetta@studenti.polito.it. Agenda. 2 / 21. Cos’è Microsoft Kinect ? Cosa si può fare con Kinect ?
E N D
& Presentano:BUILD live – Torino Introduzione a Microsoft Kinect Gianni Rosa Gallina gianni.rosagallina@bepseng.it http://embeddedlounge.blogspot.com Marina Sabetta marina.sabetta@studenti.polito.it
Agenda 2 / 21 • Cos’è Microsoft Kinect? • Cosa si può fare con Kinect? • L’hardware • La tecnologia • Video • Body tracking • Audio • Microsoft Kinect SDK • Architettura • Come siusa
3 / 21 • E’ un dispositivo embedded, costituitoda: • un insiemedisensori audio/video: • Videocamera RGB • Sensoridiprofondità 3D • Microfoni • software proprietario per: • Computer Vision • Tracciatura del corpo • Riconoscimentofacciale • Riconoscimentovocale • Pensato per la console Microsoft Xbox 360, in mododapermettereunamodalitàdigiocosenza controller e coinvolgente • Ha fatto la sua prima apparizioneufficialenel 2009, prima era noto con ilnome in codiceProject Natal. Cos’è Microsoft Kinect?
4 / 21 Cosa si può fare con Kinect? Fonte: http://kinect.dashhacks.com
5 / 21 SENSORI PROFONDITA’ 3D L’hardware VIDEOCAMERA RGB MOTORINO INCLINAZIONE MICROFONI
6 / 21 L’hardware http://www.ifixit.com/Teardown/Microsoft-Kinect-Teardown/4066
7 / 21 Cavo USB e alimentazione Il motorinodiinclinazionerichiedepiùcorrentedi quanta le sole porte USB possanofornire Si ha un connettoreproprietariochecombina USB standard e maggiorepotenzadialimentazione La versionediKinectacquistabile stand-alone forniscequestoalimentatoreesterno, che è NECESSARIO per poterlacollegareanche ad un PC disviluppo.
8 / 21 • Fruttodidecennidiricercheaccademiche, dell’industria, diMicrosoft Research e del gruppo Xbox nel campo dellaComputer Vision • Basatasullesoluzionitecnologichedell’israelianaPrimeSense • I problemicheKinectrisolve: • Trovauna o piùpersone in unascena, ignorando lo sfondo • Riconoscegliarti e igiunti, associandolialla persona corretta • Trova e tracciaigestidellepersone • Mappaigestisusignificati e comandi • Inoltre: • Riconosce le facce • Riconosce la voce • (Permetteanchedigiocare!) La tecnologia
9 / 21 La tecnologia
La tecnologia 10 / 21 • Machine Learning • Valutamiliardidipossibili posture del corpoumanosulla base di 32 segmenticonnessi (scheletro) • Ognifotogramma • A 30 fotogrammi al secondo • Consumandomeno del 10% di CPU Sembramagia ma… è Computer Vision + Data Analysis +IntelligenzaArtificiale
11 / 21 La tecnologia Algoritmodivisione Real-Time Human Pose Recognition in Partsfrom a Single Depth Image Jamie Shotton, Andrew Fitzgibbon, Mat Cook, Toby Sharp, Mark Finocchio, Richard Moore, Alex Kipman, Andrew Blake http://research.microsoft.com/apps/pubs/default.aspx?id=145347
12 / 21 • Non dimentichiamol’audio! • I problemicheKinectrisolve: • Isola la voce dalrumoredifondo • Riduce/eliminariverberiedechidovutiall’ambientecircostante • Rilevadirezionalmente la sorgente audio • Riconosceilparlato La tecnologia Sembramagia ma… è Batteriadimicrofoni + DSP + Data Analysis +IntelligenzaArtificiale
13 / 21 La tecnologia • Algoritmi audio • Presentazione al MIX 2011 diIvan Tashev • http://channel9.msdn.com/events/MIX/MIX11/RES01 • E’ l’architectdellamaggior parte del processing audiodiKinect • Ha introdottonotevoliavanzamentinel campo del processing audio in real-time e attualmentestalavorando al problemadell’identificazione del parlatore
15 / 21 • Microsoft Research ha rilasciatounaversione beta del Kinect SDK per Windows il 16 giugno: http://research.microsoft.com/kinectsdk • L’SDK installa: • i driver per isensoriKinect • API diprogrammazione C++ e .NET (C# / VB.NET) • documentazione • applicatividiesempio + codicesorgente • Attenzione! SOLO Windows 7 (x86 / x64), NON in macchinavirtuale • Per poterusare le librerieKinectsuunamacchina NON disviluppo, occorrecomunqueinstallarel’SDK e tutte le sue dipendenze • In questomomentol’SDKsipuòutilizzare solo per scopipersonali o diricerca. NON sipossonorealizzareprodotticommerciali. Windows Kinect SDK
16 / 21 • I sensoridiKinectinviano al sistematreflussididati: • Flusso video • Puòesserevisualizzato come unanormale webcam. Sonodisponibili due risoluzioni: 640x480 @ 30fps e 1280x1024 @ 15fps • Flussodiprofondità • E’ unamatricediinterii cui valoriindicano la profonditàspaziale (in mm) diogni pixel di un flusso video a 320x240. Puòessereinterpretato come video B/N oppure, con qualcheelaborazioneaggiuntiva, sipuòrenderecolorato • Flusso audio • E’ l’audioprovenientedallabatteriadimicrofoni, combinato in un unicoflussodidati Architettura
17 / 21 Quando Kinect sta tracciando una persona, vengono frequentemente forniti allo sviluppatore informazioni sullo scheletro riconosciuto. Lo scheletro consiste nei seguenti 20 punti chiave, igiunti: Tracciatura del corpo
18 / 21 Come si usa? • Sonodisponibili due namespace: • Microsoft.Research.Kinect.Nui • per accedereaiflussi video, profondità e body tracking • Microsoft.Research.Kinect.Audio • per accedereaidati audio • Per usare le librerieKinect in un’applicazione .NET, è necessarioincludere solo una reference alla DLL Microsoft.Research.Kinect.dll • Prima dipoterutilizzare la libreria NUI, bisognainstanziare un oggettodellaclasseRuntime, specificandoiflussi a cui sivuoleaccedere • Successivamente, bisognaaprireiflussi audio/video prima dipoterliutilizzarenelproprioapplicativo, specificandonetipologia, risoluzione e altriparametrispecificidiogniflusso
19 / 21 Come si usa? La libreria NUI funziona ad eventi: ogniqualvoltaisensorihannodeidatidisponibili, vengononotificatideglieventi a cui bisognaregistrarsi per poterricevereedutilizzare le informazioni: DepthFrameReady Rende disponibile la matrice dei dati di profondità acquisiti dai sensori IR SkeletonFrameReady Rende disponibili i dati dei giunti di uno o due corpi completamente tracciati. I dati sui giunti possono essere validi o meno, è necessario verificarne lo stato prima di utilizzarli in elaborazioni successive. VideoFrameReady Rende disponibile il fotogramma acquisito dalla webcam
20 / 21 Come si usa? Per gestirel’audio, invece, è sufficienteinstanziare un oggettoditipoKinectAudioSource: Con questooggettosipossonoavere: • idati audio veri e propri(16KHz, 16bit PCM) • da un singolomicrofono o dallabattariacompleta • con opzionalecancellazione del rumore e dell’eco (AEC) • informazionisulladirezionedellasorgente(beamforming) • se attivato, idativengonorecuperatiregistrandosiall’eventoBeamChanged • l’informazione è espressa in gradiradianti: 0 nellaposizionefrontalerispetto al sensoreKinect; <0 a sinistra, >0 a destra. • È disponibile, come per igiunti, un parametro per stabilire la qualitàdell’informazione • integrazione con le Speech API di Windows per fare riconoscimentovocale
21 / 21 • Coding For Fun – Kinect Toolkit • http://c4fkinect.codeplex.com/ • KinectGestures (Blog diDavid Catuhe) • http://blogs.msdn.com/b/eternalcoding/archive/2011/07/04/gestures-and-tools-for-kinect.aspx • Alimentatore per Kinect (Microsoft Store) • http://www.microsoftstore.com/store/msstore/en_US/buy/pageType.product/externalRefID.9A4CFC08 • KinectVS2010 Templates • http://kinectcontrib.codeplex.com/ • Lingueaggiuntive per Speech Recognition / Text To Speech • http://www.microsoft.com/download/en/details.aspx?displaylang=en&CTT=1&id=3971 • Video, esempi, training (Channel9) • http://channel9.msdn.com/coding4fun/kinect/ • http://channel9.msdn.com/Series/KinectSDKQuickstarts • Blog di Gianni Rosa Gallina • http://embeddedlounge.blogspot.com Risorse aggiuntive
Domande & Risposte • Gianni Rosa Gallina • gianni.rosagallina@bepseng.it • http://embeddedlounge.blogspot.com • Marina Sabetta • marina.sabetta@studenti.polito.it