Prenez le contrôle avec Kinect 26 janvier 2012
Qui suis-je ? Tanguy de Chantérac Etudiant en 3ème année Ms-Lab : Laboratoire des technologies Microsoft de l’EPITECH Windows Phone 7 SharePoint XNA Kinect
Kinect ? Qu’est ce que c’est ? Kinect est une caméra créée par Microsoft La première caméra de détection et retranscription de mouvement. Contrôler des logiciels et des jeux sans souris ni clavier Interface naturelle (NUI)
Pourquoi est elle si populaire ? La première caméra de détection et retranscription de mouvement. Beaucoup d’avantages par rapport à la wii / PSMove (pas de wiimote, aucune manette) Meilleure precision que ses concurents Beaucoup de jeu sur Xbox 360 Dance Central Kinect Sport Kinect Adventure Fruit Ninja …
Développer avec Kinect Il est possible de développer des applications pour Kinect (depuis 8 mois déjà …) Télécharger le SDK Kinect et l’installer Utilisation de Visual Studio comme IDE Apprendre / Utiliser C# et WPF RTFM (Lire le manuel)
Prendre le contrôle avec Kinect SDK et Architecture Buffer Video Buffer de Profondeur (Depth) Suivi de Squelettes Gestes Gestion du son
SDK Développé par Microsoft Research Utilisation non commerciale uniquement Windows 7 et Windows 8 (uniquement) x86 x64 C# et C++ Un SDK commercial a été annoncé pour le 1er février 2012 (sortie de la Kinect for Windows)
Anatomie
Limites d’utilisations Entre 1,2 et 3,5 mètres
Initialiser la caméra //on declare un nouveau Runtime Runtime _nui; foreach (var kinect in Runtime.Kinects) { if (kinect.Status == KinectStatus.Connected) _nui = kinect; break; } if (Runtime.Kinects.Count == 0) throw new ArgumentException(" No Kinect Connected"); else try _nui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking |RuntimeOptions.UseColor); Runtime.Kinects.StatusChanged += KinectStatusChanged; catch (exception ex) { //traitement de l’exception }
Démonstration Initialisation du SDK
Buffer Vidéo Résolutions : Format : 640 * 480 1280 * 1024 Format : RGB YUV Données fournies au travers d’une stream Evénementiel
Démonstration Affichage du flux vidéo
Buffer de profondeur
Buffer de profondeur Résolutions Données sous forme de stream 640x480 320x240 80x60 Données sous forme de stream Evénementiel Stockage sur 13 bits 10 bits pour la distance en millimètres depuis le capteur 3 bits pour donner l’index de la personne reconnue
Démonstration Affichage de la depth stream
Démonstration Combinaison de la depth stream et de la vidéo
Suivi des squelettes Reconnaissance immédiate Evénementiel 4 squelettes détectés Chaque squelette donne sa position 2 squelettes suivis (tracked) Liste de joints (points de contrôles) Chaque position donne également sa qualité (.w entre 0 et 1)
Points de contrôles
Démonstration Suivi du squelette
Gestures et postures Techniques de détection des gestures Postures Algorithmes Postures Problématiques Quand commencer ? Quand finir ? Gérer les mouvements parasites ?
Gestion du son Kinect c’est aussi Un groupe de 2 microphones Des algorithmes de : Réduction du bruit ambiant Annulation de l’echo Beamforming Tracking de la source sonore Compatible avec MS Speech
Problèmes Latence (1280 x 1024) Contrôle vocal : pas encore au point Gestes parasites SDK limité (pour instant). Précision parfois discutable.
SDK Final (Kinect For Windows) Nouveautés : Integration de Microsoft speech. Tracking du squelette amélioré. Mapping des API. Les API ont été renommées. Une nouvelle caméra (250$ :s) Un nouvel event (AllFrameReady) Une librairie de gestures / Postures ? Des outils de debugs ?
Et après ? Votre imagination est la seule limite. D’autres idées: Mouse move : une dll pour simplifier l’utilisation de la souris avec Kinect. Krisk : un jeu vidéo de Risk qui fonctionne avec Kinect sur PC. SharePoint Explorer : naviguer dans une bibliothèque SharePoint, ouvrir des fichiers, zoomer, se déplacer. Votre imagination est la seule limite.
Questions ?
Pour aller plus loin Acheter une Kinect Blog officiel : http://blogs.msdn.com/b/kinectforwindows/ Site officiel : http://kinectforwindows.org/ Forum officiel : Google « Kinect forum msdn » Mon blog : http://tdechanterac.fr Kinect Toolbox http://channel9.msdn.com/coding4fun/kinect