Traitement d’images Kinect – Partie 2.

Slides:



Advertisements
Présentations similaires
Formation universitaire à .NET: Introduction à C#
Advertisements

Office 2007 – Développement client (5/5) OpenXML & Nouveautés de linterface Stéphane Crozatier Relation Technique Editeurs de Logiciels DPE - Microsoft.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Dernière scéance: Des question?????? + Deux exercices.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Algorithme et structure de données
Des situations d’apprentissage
INTRODUCTION.
Algorithme et programmation
Prenez le contrôle avec Kinect
Kinect SDK, de la 3D à la 2D Mitsuru FURUTA, CTO Sensorit
Prenez le contrôle de Kinect pour Windows SDK (Beta)
PRÉSENTATION Logiciel de traitement de texte:
Etude des Technologies du Web services
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Architecture d’application
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Programmation en VBA Introduction au language Visual Basic for Applications dans le monde Excel.
Bibliothèque standard du C++
A LGORITHME ET PROGRAMMATION. Sapproprier dun jeu de nouvelles classes pour linterface utilisateur : ListBox et OpenFileDialog Découvrir la classe StreamReader.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
 Ecriture dynamique des Calques, des tableaux HTML
Le langage Javascript pour le web et application au DHTML
Manipulation de formulaires en Javascript
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
Le formulaire Les chaînes de requêtes. Les chaînes de requêtes (QueryStrings) correspondent à des informations associées à l'adresse URL avec un point.
3.3 DESSIN 3D Devoir.
Module 2 : Préparation de l'analyse des performances du serveur
Les arbres binaires.
8PRO107 Éléments de programmation
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Géométrie analytique Distance entre deux points.
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
Introduction à la programmation orientée objet
Animateur : Med HAIJOUBI
 Créer une page html nommé index  Cette page doit contenir  Partie de l’entête Titre Métas(description et mots clés) Lien vers une feuille de style.
Le langage C Structures de données
TP n°3 Javascript Contrôle de formulaire
(Vient du grec et signifie « Peut prendre plusieurs formes »)
Projet 3 Robot Kinect Lycée Louis Payen PPE
Cours 1 : Travailler le tube en cuivre
Environnement informatique
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
INTRODUCTION.
8.1 Les carrés, les racines carrées et Pythagore
Après-midi du dev Kinect
Cours No8 La programmation à l’aide d’objets. Contenu 1. Terminologie objet 2. Classe vs Objet 3. Création d’une classe 4. Déclaration d’une variable.
GESTION ET TRAITEMENT DES ERREURS
Précision d'une mesure et chiffres significatifs
11/04/ L'héritage Cours 7 Cours 7.
Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications Chapitre 7.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Programmation créative – Les vecteurs
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
HTML Cours 3. Plan du cours Les feuilles de styles CSS Mise en forme du texte et des paragraphes.
Publication Bulletin de sécurité hors cycle MS Révision Bulletin de sécurité MS
ITI Lab # 11 Adapté de versions antérieures créées par: Daniel Amyot et Alan Williams.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Présentation du Guide du Maître
ITI1520 Lab #9 - Matrices Adapté de versions antérieures créées par Romelia Plesa, Sylvia Boyd, Alan Williams, Diana Inkpen, Daniel Amyot, Gilbert Arbez,
Traitement d’images 420-D78-SW A15 Semaine 02.
Traitement d’images Semaine 09 v.A15.
Architecture d’application Kinect et modèle MVP. Plan de présentation O Introduction O Utilisation de la Kinect O Le modèle MVP.
Des variables et des données. Dans le domaine de la statistique le mot variable signifie une idée différente de celle dans l’algèbre ou les fonctions.
Transcription de la présentation:

Traitement d’images Kinect – Partie 2

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

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)

Squelette : Description Dans la première version de la Kinect, chaque squelette est composé de 20 jointures qui sont les suivantes HipCenter ShoulderCenter Spine Head ShoulderLeft ShoulderRight ElbowLeft ElbowRight WristLeft WristRight HandLeft HandRight HipLeft HipRight KneeLeft KneeRight AnkleLeft AnkleRight FootLeft FootRight

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); }

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); }

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

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 : http://msdn.microsoft.com/en-us/library/hh973078.aspx

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

Fonctions mathématiques Distance entre 2 points 𝑑= 2 ∆ 𝑥 2 +∆ 𝑦 2 + ∆ 𝑧 2 Loi de cosinus 𝜃= cos −1 𝑎 2 + 𝑏 2 − 𝑐 2 2𝑎𝑏

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%)