La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Traitement d’images Kinect – Partie 2. Plan de leçon  Squelette : Description  Événement SkeletetonFrameReadyEventArgs  Classe SkeletonFrame  Classe.

Présentations similaires


Présentation au sujet: "Traitement d’images Kinect – Partie 2. Plan de leçon  Squelette : Description  Événement SkeletetonFrameReadyEventArgs  Classe SkeletonFrame  Classe."— Transcription de la présentation:

1 Traitement d’images Kinect – Partie 2

2 Plan de leçon  Squelette : Description  Événement SkeletetonFrameReadyEventArgs  Classe SkeletonFrame  Classe Skeleton  Propriété Joints  Méthodes de concordance

3 Squelette : Description  Comme on le sait, la Kinect est capable de reconnaître les joueurs qui interagissent avec celle-ci  Le processus consiste à répliquer le squelette du joueur  Style bonhomme allumette  Le squelette est une collection de points 3D avec un index pour identifier le joueur (1 à 6)

4 Squelette : Description  Dans la première version de la Kinect, chaque squelette est composé de 20 jointures qui sont les suivantes HipCenterShoulderCenter SpineHead ShoulderLeftShoulderRight ElbowLeftElbowRight WristLeftWristRight HandLeftHandRight HipLeftHipRight KneeLeftKneeRight AnkleLeftAnkleRight FootLeftFootRight

5 SkeletetonFrameReadyEventArgs  L’événement permettant de récupérer les données reliées aux squelettes est SkeletetonFrameReadyEventArgs  Cet événement retourne un objet de type SkeletonFrame avec la méthode OpenSkeletonFrame private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { Skeleton[] skeletons = new Skeleton[0]; using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) { skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo(skeletons); }

6 SkeletonFrame  La classe SkeletonFrame contient l’information des squelettes que le système a pu détecté dans le flux de données  La propriété SkeletonArrayLength indique le nombre de squelettes trouvés  La méthode CopySkeletonData permet de recopier la collection de squelette vers un tableau de Skeleton private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { Skeleton[] skeletons = new Skeleton[0]; using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) { skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo(skeletons); }

7 Classes Skeleton, Joint et SkeletonPoint  La classe Skeleton contient plusieurs propriétés permettant d’identifier un joueur dans le flux de données  Chaque squelette est composé d’une collection de jointures (Joints) qui chacun est associé à un type (JointType)  Chaque joint possède une propriété SkeletonPoint, JointType et TrackingState  Un SkeletonPoint est un point 3D ainsi il a les propriétés X, Y et Z  JointType est une énumération des points de flexion du corps humain  JointTrackingState est une énumération des trois états possibles soit NotTracked, Inferred et Tracked  Inferred : Le joint est estimé et ne peut être précisément suivi

8 Résumé du squelette  SkeletonFrame peut posséder 0 à 6 squelette  Skeleton est composé de 20 joints  Joint est composée des propriétés Position (SkeletonPoint), JointType et TrackingState  JointType est une énumération de type de joint par exemple « HandLeft »  IMPORTANT!!  La position d’un joint est exprimée en mètre et est relative par rapport aux hanches  La position Z est la distance du joint par rapport à la Kinect  Source :

9 Méthodes de concordance  Étant donné que le capteur de profondeur et la caméra ne sont pas le même capteur, il y a un décalage au niveau de la position des points  La librairie fournit des méthodes permettant de convertir les points du capteur de profondeur avec ceux de la caméra et vice versa  Les méthodes disponibles sont les suivantes  MapDepthPointToColorPoint  MapDepthPointToSkeletonPoint  MapSkeletonPointToColorPoint  MapSkeletonPointToDepthPoint  Ces dernières sont disponibles sous la propriété CoordinateMapper de la classe KinectSensor

10 Fonctions mathématiques

11 Exercices  À l’aide du projet « Skeleton Basics – WPF »  Ajouter une zone de texte où l’on pourra voir la position X, Y et Z des jointures de la main gauche, du coude gauche, de l’épaule gauche, de la tête et du centre des hanches  Utiliser le format (X, Y, Z) avec 2 décimales  Ajouter une zone de texte où l’on pourra voir l’angle formé par le coude  Ajouter une zone permettant d’indiquer si le bras gauche est étendu ou encore s’il est plié à 90° (±15%)


Télécharger ppt "Traitement d’images Kinect – Partie 2. Plan de leçon  Squelette : Description  Événement SkeletetonFrameReadyEventArgs  Classe SkeletonFrame  Classe."

Présentations similaires


Annonces Google