Documents utiles:
- [1] Wobbrock, J.O., Wilson, A. and Li, Y., Gestures without libraries, toolkits or training: a $1 recognizer for user interface prototypes, UIST'07. 2007. p. 159-168. [pdf] [autres ressources]
- [2] Lisa Anthony and Jacob O. Wobbrock. 2010. A lightweight multistroke recognizer for user interface prototypes. In Proceedings of Graphics Interface 2010 (GI ’10). Canadian Information Processing Society, CAN, 245–252. [pdf] [autres ressources]
- L'algorithme présenté dans l'article [2] utilise l'algorithme présenté dans [1] (tp précédent): vrai? faux? autre (à préciser, en quelques mots)?
- Quelles sont les deux principales différences entre l'algorithme de reconnaissance de geste défini en [2] et l'algorithme défini en [1] ?
- Algorithme de reconnaissance de gestes composés (multistroke)
- Résumer en moins de 60 mots le principe de l'algorithme de reconnaissance proposé dans [2]
- Indiquer le(s) paragraphe(s) (en dehors des paragraphes de pseudo-code contenus dans les annexes (appendix) de l'article) de [2], où est expliqué l'algorithme de reconnaissance de geste composé,
- Quel(s) commentaire(s) pouvez-vous faire sur ce(s) paragraphe(s)?
- Pour un tracé composé (multistroke), comportant n tracés simples (strokes), combien de variantes (variation dans l'ordre des tracés simples et variation dans la direction) les auteurs génèrent-ils?
- Donner un algorithme alternatif permettant de générer toutes les variantes de tracés que les auteurs génèrent à partir d'un tracé composé (multistroke) de
k
tracés simples (unistroke). Quelle est la complexité théorique de cet algorithme? - Avec l'algorithme proposé dans [2], que se passe-t-il lorsque le nombre de points enregistrés lors du tracé est plus petit que le nombre de points attendus après ré-échantillonnage? Par exemple, lorsque le tracé consiste en l'écriture de
...
- Dans l'article [2], les auteurs parlent de gestes 1D et de gestes 2D. Expliquer en quelques mots la différence que font les auteurs entre gestes 1D et gestes 2D. Pourquoi l'algorithme présenté dans l'article [1] ne permet-il pas de reconnaître un geste 1D?
- Calcul de l'orientation optimale:
- Donner la définition la plus concise et claire possible de l'expression "orientation optimale" dans le contexte des articles [1] et [2].
- Dans [1], à quoi sert l'étape de rotation à zéro? Que se passe-t-il lorsque cette étape n'est pas effectuée? Comment est calculée l'orientation optimale?
- Dans [2], que signifie l'expression "bounded rotation invariance"? Comment est calculée l'orientation optimale?
- L'algorithme décrit dans [2] comporte plusieurs paramètres qui demandent à être ajustés en fonction du contexte. Quels sont ces paramètres? Préciser pour chaque paramètre, quelles valeurs les auteurs ont utilisées pour ces paramètres et comment ces valeurs ont été définies dans leur contexte.
- Quelle est la transformation à appliquer à un tracé de geste pour l'étape de redimensionnement uniforme ? et dans le cas de redimensionnement non-uniforme? Ecrire les matrices correspondant à ces transformations.
- Performances de $n:
- les auteurs déclarent (p5 de [2]) obtenir 79% de gain de temps et 1,3% de gain en précision, grâce à une stratégie d'optimisation. En quoi consiste cette optimisation? Quel(s) commentaire(s) pouvez-vous faire?
- Comment les performances (en temps et en précision) de l'algo de reconnaissance $n se comparent-elles aux performances de $1, d'après les auteurs, sur les gestes unistrokes? Pourquoi?
- Ecrire une nouvelle classe qui permet de représenter des gestes composés (multistroke) dans la perspective proposée dans [2].
- Ecrire la méthode
generateVariations
qui prend en paramètre un geste multistroke et construit toutes ces variantes en faisant varier l'ordre et la direction des tracés simples qui le composent. - Ecrire la méthode
generateUnistroke
qui prend en paramètre un geste multistroke et qui construit un tracé unistroke à partir de ce geste multistroke. - Ecrire la méthode
getAngle
qui calcule l'angle de départ d'un tracé tel qu'il est défini au paragraphe 4.4 de l'article [2].
Compréhension des algorithmes de reconnaissance de geste proposés dans les articles [1] et [2]
Mise en oeuvre de quelques étapes utiles à la reconnaissance de gestes composés
Pour cet exercice, vous pouvez partir du programme donné comme point de départ dans le tp de reconnaissance de gestes simples (1)