M2 Informatique - Réalité Virtuelle et Augmentée - Université de Lille | ||
2024-2025 |
Vous trouverez une version de ce document au format PDF ici.
Les sources nécessaires au TP sont disponibles ici.
Une interface écrite en JavaFX est mise à votre disposition pour saisir des courbes en utilisant la souris. Cette interface utilise la classe
DTWGUI
pour définir la fenêtre de l’application et capturer les interaction effectuées avec la souris.
Référez-vous à cette procédure pour utiliser JavaFX avec Eclipse.
L’interface vous permet de saisir et afficher (en noir) une courbe de référence en cliquant sur un des boutons de la souris. La courbe en orange représente le geste le plus proche qui a été reconnu dans les gestes de référence (templates).
Une classe
Matrix
est également mise à votre disposition pour faciliter la manipulation de matrices.
Template
et
TemplateManager
permettent de charger les gestes disponibles dans gestures.xml. Ce fichier contient plusieurs exemples de chacun des gestes du $1 recognizer ainsi que les gestes "papa", "maman" et "mer".
Q 1. Compilez le matériel à disposition et étudiez le code fourni.
Pour répondre aux questions suivantes vous aurez besoin de créer une classe
DTW
et de faire quelques modifications à la classe
DTWGUI
.
Q 2. Créez une classe
DTW
qui calcule la matrice D vue en cours à partir de deux ensembles de points. Vous utiliserez comme métrique la distance Euclidienne entre deux points.
Q 3. Ajoutez lors du calcul de la matrice, le prédécesseur de D(i,j) (utilisez
couple
de
Matrix
). Cette étape est nécessaire si vous souhaitez connaitre la mise en correspondance des points des deux séquences, mais inutile pour la reconnaissance de gestes.
La reconnaissance de gestes consiste à réaliser un pré-traitement sur l’ensemble des points saisis par l’utilisateur puis à l’aligner avec chacun des gestes de référence en utilisant DTW pour calculer la distance entre 2 gestes. Le geste considéré comme reconnu est celui qui a la distance DTW la plus faible.
Le pré-traitement proposé ici consiste à 1) normaliser les points de manière à ce que leur boite englobante tienne dans un carré de référence et 2) à translater le centroïde des points à l’origine.
Q 4. Modifiez la classe
DTW
pour réaliser la reconnaissance de gestes. N’oubliez pas que les gestes disponibles dans gestures.xml n’ont subi aucun pré-traitement. À l’issue de cette question votre application doit au moins afficher le geste reconnu dans la console, lors du relâchement du bouton de la souris. Vous pouvez en plus afficher le geste de référence reconnu en orange, comme dans l’exemple Figure 1.
Q 5. Testez les différents gestes fournis dans gestures.xml et discutez l’efficacité de la méthode suivant le type de geste.
Ce document a été traduit de LATEX par HEVEA