230 likes | 332 Vues
Learn about the Microsoft Kinect device, its features, hardware specifications, applications, and how to use it. Dive into the world of body tracking, facial recognition, and voice commands with 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