Aspects Morphologiques de l'Interaction Humain-Ordinateur:
Étude de Modèles d'Interaction Gestuels

Thomas Baudel(c)
Thèse de Doctorat en Informatique
sous la direction de Michel Beaudouin-Lafon
soutenue le 15 décembre 1995 à l'Université de Paris Sud

previous Up next

III. Hypermarks : interaction gestuelle et manipulation directe

Wovon man nicht sprechen kann, darüber muß man schweigen.

L. Wittgenstein

Ausser denn man sich durch Gebärden verstandigen kann...

T. Baudel

Notre première étude de cas porte sur l'intégration de deux modèles d'interaction : manipulation directe et reconnaissance de marques. Hypermarks [Kurtenbach et Baudel 1992] et [Baudel 1991] est un démonstrateur réalisé entre Juillet 1991 et Janvier 1992 en collaboration avec Gordon Kurtenbach (Université de Toronto et Xerox PARC). L'idée originale des Marking Menus est de Gordon Kurtenbach, qui a développé et fait évoluer cette technique d'interaction.

III.1. Objectifs: intégrer l'interaction gestuelle 2D

Les démonstrateurs et produits actuels utilisant la reconnaissance de tracés reposent sur un environnement original, relativement peu compatible avec les applications et outils logiciel couramment utilisés. Une des conditions à remplir pour permettre la diffusion de l'interaction gestuelle est de rendre les nouvelles techniques compatibles avec les interfaces et les habitudes existantes. L'objectif d'Hypermarks est de montrer que l'on peut préserver les apports de la manipulation directe dans une interface à base de reconnaissance de tracés.

Pour cela, nous avons étudié divers moyens d'intégration, à savoir :

* des interfaces pour la définition interactive et la personnalisation par l'utilisateur de jeux de commandes gestuels.

* des techniques d'assistance à l'utilisateur.

* des exemples mettant plus particulièrement en valeur l'utilité de l'interaction gestuelle, tout en conservant un cadre et des applications familiers aux utilisateurs. Nous avons ainsi développé un lecteur d'annonces électroniques, un système de mise en forme de plan et un éditeur de dessin sommaire.

Les algorithmes de reconnaissance de marques ont été conçus de façon ad hoc ou utilisent des méthodes maintenant standard.

III.1.1. Modèle d'interaction

Hypermarks propose deux modèles d'interaction gestuelle : les markings menus et "Hyperstrokes". Tous deux utilisent un dispositif de pointage à deux dimensions, comme une souris ou une tablette. La reconnaissance de marques requérant un bon contrôle moteur du dispositif actionné, l'utilisation du trackball est possible mais déconseillée. De plus, le périphérique de pointage doit comporter un dispositif d'activation, par exemple un bouton. L'activation de ce dispositif produit l'entrée dans un micro-mode "entrée de commande gestuelle".

Les éléments analysés sont des traces : des échantillonnages d'un tracé, en x, y, et t (accélération) effectués entre le marqueur de début (enfoncement du bouton) et son relâchement.

Hyperstrokes encode une trajectoire complète en un vecteur de 13 caractéristiques : le rectangle englobant le trajet, l'angle total parcouru... Ces caractéristiques permettent la comparaison du geste tracé avec les modèle donnés par le concepteur de l'application, et donc de classer le geste en fonction de sa forme.

Les "marking menus" n'utilisent pas la coordonnée temporelle. Ceci laisse un degré de liberté à l'utilisateur : si l'utilisateur attend un instant, un menu d'aide apparaît, indiquant quelle commande sera exécutée si le trait suit une des directions proposées.

L'écho est purement lexical : une trace de l'échantillonnage est présentée au fur et à mesure du déplacement. Puis la commande correspondant à la trace est réalisée, la trace est effacée et seul demeure l'effet sémantique de la commande. L'algorithme de reconnaissance utilisé dans Hyperstrokes ne permet pas d'écho syntaxique, tandis que les marking menus offrent la possibilité de guider l'utilisateur dans l'articulation d'une commande complexe.

Hypermarks peut être utilisé conjointement avec d'autres outils de manipulation directe, comme des palettes d'outils (création d'objets graphiques...) ou seul. Si la présence de plusieurs modalités (modes "outils" et modes "gestes") ne pose pas de problèmes techniques, elle doit cependant se faire en préservant la cohérence des commandes : il convient d'apporter un écho approprié des commandes gestuelles élémentaires et de le distinguer de l'écho des commandes non gestuelles.

III.1.2. Intégration logicielle

Les Markings Menus sont implantés sous la forme d'une procédure HyperCard affichant un menu et retournant le geste sélectionné. Hyperstrokes est constitué des modules suivants :

* un module d'acquisition des traces et leur transformation incrémentale en vecteurs de caractéristiques et un module de classification, analysant un vecteur de caractéristiques et le catégorisant en une des classes de gestes définies à la conception.

* une interface (API) HyperCard, permettant d'initialiser un ensemble de classes gestuelles, de créer des zones, boutons ou objets "sensibles" à l'interaction gestuelle et d'associer des procédures à chaque type de geste reconnu.

* une application de conception de jeux de commande gestuels. Un concepteur d'interface, ou même un utilisateur averti peut créer ses classes de gestes en fournissant des exemples de gestes correspondant à des commandes, puis en compilant ces exemples pour créer des classifieurs intégrés à des applications HyperCard.

L'interprétation du contexte et des paramètres rend nécessaire la notion de "cible du geste" au niveau de l'application, qui reproduit un contexte permettant de déterminer la sémantique exacte de la commande : à chaque fois qu'une marque est réalisée, l'API émet un événement de haut niveau (un "message" du langage hypertalk), typé par la classe du geste reconnu et dont les paramètres décrivent le geste. Cet événement est ensuite traité en utilisant le mécanisme de transmission hiérarchique des messages dans HyperCard. Il est ainsi possible d'associer tout type de geste reconnu à tout objet graphique ou contexte.

III.1.3. Création de vocabulaires gestuels, pragmatique de l'interaction

L'aspect le plus délicat de la création d'interfaces gestuelles est la définition de vocabulaires naturels, aisés à retenir et adaptés à l'application. La plate-forme développée se doit d'être testée avec plusieurs applications de domaines varié. Nous avons choisi trois application : un lecteur d'annonces, un "organiseur d'idées", ou gestionnaire de plan, et refait un éditeur de dessin gestuel, GEdit +, inspiré de GEdit [Kurtenbach et Buxton 1990], [Kurtenbach et Buxton 1991].

Dans chaque cas, nous avons défini un ensemble de commandes gestuelles en faisant des compromis prenant en compte les facteurs suivants, parfois contradictoires :

* la facilité supposée d'apprentissage, le degré d'iconicité des commandes gestuelles proposées.

* la cohérence globale du jeu de commandes gestuelles.

* la limitation du nombre de commandes à un ensemble estimé mémorisable.

* la possibilité de reconnaissance sans ambiguïté de la commande.

Pour cela, on fait en sorte que quelques commandes, les plus courantes, soient aisément mémorisables, puis on dérive des commandes plus complexes à partir des commandes simples : par exemple, la commande "déplacer" est un trait simple, la commande "dupliquer" est un trait suivi du symbole "c" enchaîné, la commande de déplacement d'un groupe d'objets se fait en entourant les objets puis en ajoutant la commande de déplacement. Il est ainsi possible de réaliser en un seul geste une suite de commandes élémentaires.

En théorie, il est possible de laisser la possibilité à l'utilisateur de concevoir ses propres commandes. Nous verrons que pour préserver la cohérence du jeu de commandes et éviter des ambiguïtés, il est peu probable que l'on puisse confier à un non-spécialiste la conception de jeux de commandes gestuels, sans une aide appropriée et une vérification des incohérences possibles.

Enfin, il convient de fournir un écho adapté permettant de distinguer sans ambiguïté les modes d'interprétation gestuelle des modes de manipulation directe usuels (trace vs déplacement d'objet "fantôme"). Pour cela, on utilise des gammes de curseurs différentes, indiquant clairement le type d'écho produit par les actions de l'utilisateur : trace ou objet fantôme.

III.2. Réalisation d'Hypermarks

Mous détaillons ici les principaux aspects de la conception de Hypermarks. Nous présentons tout d'abord les algorithmes utilisés pour la reconnaissance de marques d'Hyperstrokes, puis la conception de l'application de définition de jeux de commandes, la réalisation de l'aide en ligne, l'architecture logicielle d'une applicatino utilisant Hyperstrokes et enfin les trois applications de test réalisées.

III.2.1. Algorithmes de reconnaissance

Les algorithmes utilisés ont été définis par Dean Rubine [Rubine 1991]. Ces algorithmes se sont révélés plus adaptés que les algorithmes d'analyse structurelle que nous avions développés précédemment [Baudel 1990]. L'algorithme principal encode incrémentalement une trace en un vecteur de caractéristiques, puis compare ces caractéristiques à celles des classes de référence fournies par le concepteur de l'interface.

III.2.1.1 Représentation des traces

Une trace gestuelle, c'est-à-dire une liste de coordonnées (x, y, t) entrées par l'utilisateur au moyen d'un dispositif de pointage, est représentée pour les besoins de l'analyse par le vecteur de caractéristiques suivantes (f1 à f13) (figure III.2.1):

* le sinus (f1) et le cosinus (f2) de l'angle initial de tracé du geste ([[alpha]]) ;

* la longueur de la diagonale de la boite englobante (f3) ;

* le rapport de la hauteur sur la largeur de la boite englobante (f4) ;

* la distance entre le premier et le dernier point de la trace (f5) ;

* le sinus (f7) et le cosinus (f6) de l'angle entre l'horizontale et le segment du premier au dernier point ;

* la longueur totale de la trace (f8) ;

* l'angle total traversé (f9), la somme des valeurs absolues des angles traversés (f10) et la somme des carrés des angles traversés (f11) ;

* la vitesse maximale atteinte (f12) et la durée du tracé (f13).


Figure III.2.1 : les principales caractéristiques d'un tracé. extrait de [Rubine 1991].

Ces caractéristiques ont été choisies de façon à permettre de discriminer la plupart des gestes utilisés dans les interfaces gestuelles rencontrées. Si des classes de gestes ne sont pas distinguées par l'une au moins de ces caractéristiques, il est possible d'ajouter toute fonction calculable incrémentalement qui permet d'effectuer une telle discrimination. L'ensemble des caractéristiques définies ne permet notamment pas de distinguer les classes de gestes suivantes (figure III.2.2) :

Figure III.2.2: ces deux traces ont le même vecteur de caractéristiques. Elles ne peuvent donc appartenir à des classes différentes avec l'ensemble de caractéristiques standard.

L'ajout d'une caractéristique d'orientation (par exemple, l'angle entre le milieu de la trace et le point initial) permet d'introduire une valeur discriminatoire entre ces types de gestes.

III.2.1.2 Classification

Le concepteur, ou un utilisateur averti peuvent définir leurs commandes gestuelles en fournissant des exemples de chaque classe. Par exemple, le geste "supprimer" sera "appris" par les exemples suivants :


Figure III.2.3 : 5 exemples du geste "supprime"

Lorsque tous les exemples de chaque classe (entre 5 et 30 par classe) ont étés fournis, le système calcule la matrice de covariance des caractéristiques classe par classe, afin de déterminer les caractéristiques "saillantes" et les caractéristiques "invariantes" propres à chaque classe.

Puis une matrice M de covariance normalisée entre classes et caractéristiques est calculée. La classification se fait en multipliant le vecteur d'une trace cible par les coefficients de la matrice inverse de cette matrice M. On obtient ainsi un vecteur de distances de la cible au noyau de chaque classe, pondéré par le poids de chaque caractéristique. L'indice de la coordonnée la plus faible de ce vecteur indique la classe candidate correspondant au vecteur de caractéristiques cible.

Le temps de classification est en O(nb de classes * nb de caractéristiques), c'est-à-dire négligeable pour une cinquantaines de classes. Même un processeur modeste (Motorola 68000 à 7,5 MHz) peut réaliser une classification en un temps imperceptible pour l'utilisateur.

III.2.2. Définition de jeux de commandes gestuelles

Une application indépendante permet de construire les jeux de commandes gestuelles, de les compiler et de les intégrer à des programmes (piles) HyperCard.

Le concepteur de l'application définit chacune de ses classes par son nom et donne pour chaque classe un certains nombres d'exemples sur une feuille de dessin. Ces exemples sont enregistrés séparément, afin de permettre à l'utilisateur de réutiliser des classes déjà définies ou de corriger d'éventuelles erreurs de saisies ayant conduit à des erreurs de reconnaissance.


Figure III.2.4: Exemples des classes de gestes "supprime", "insère" et "déplace".

La difficulté principale de réalisation de l'interface gestuelle consiste à proposer des exemples pertinents : il faut que l'ensemble des exemples permettent de déduire les caractéristiques saillantes et les caractéristiques invariantes de chaque classe. Dans le cas des gestes très peu variables, comme "insère", il suffit de donner peu d'exemples de traces, à des tailles différentes, pour "montrer" au classificateur que les caractéristiques portant sur la boîte englobante (f3 et f4) sont peu discriminatoires de cette classe. Dans le cas du geste "déplace", qui est plus simple, il faut fournir de nombreux exemples, pour montrer que la direction du trait, tout autant que sa longueur, ne sont pas des caractéristiques saillantes. Les caractéristiques discriminantes de la trace "déplace" sont les valeurs de déplacement angulaire, quasiment nulles.

Cette difficulté impose que le concepteur de l'interface connaisse le principe de l'algorithme et puisse se former un modèle convaincant des ambiguïtés possibles que peut receler un jeu de commandes gestuelles. Un utilisateur non-spécialiste aura probablement peu de chances de pouvoir fournir des exemples probant pour la construction du classifieur. Il est toujours possible de signaler les éventuelles ambiguïtés, en vérifiant que les "noyaux" des classes sont suffisamment distants, par le calcul d'une distance de Mahalanobis. Cependant, il n'est pas évident que le système puisse suggérer les modifications à apporter aux exemples pour permettre la désambiguation en respectant l'intention du concepteur du vocabulaire gestuel. En tout état de cause, il est aisé de fournir suffisamment d'exemples pour offrir une reconnaissance multi-utilisateurs sans défaut (taux de reconnaissance supérieur à 95%). La personnalisation par l'utilisateur étant déconseillée a priori, il convient de fournir des moyens d'apprentissage des gestes aux utilisateurs novices.

Les jeux de commandes gestuels sont compilés et placés dans des piles HyperCard par l'application. Un jeu de commandes gestuelles compilé ne prend que quelques kilo-octects : les noms des classes et la matrice de covariance inverse : (nombre de classes * nombre de caractéristiques) nombres flottants.

III.2.3. Assistance à l'utilisateur

Malgré les nombreux aspects naturels de l'interaction gestuelle, il est nécessaire de fournir des mécanismes permettant aux utilisateurs d'apprendre le fonctionnement d'une interface gestuelle particulière.

III.2.3.1 Hyperstrokes : aide en ligne automatiquement générée.

Hyperstrokes utilise une méthode conventionnelle : pour chaque application et jeu de commandes gestuelles, une page d'aide est créée. Cette page offre un descriptif textuel du principe d'interface gestuelle, une liste des commandes disponibles sous forme d'exemples, et une zone permettant à l'utilisateur d'essayer les traces à vide. Chaque tracé dans cette zone affiche le type du geste reconnu.


Figure III.2.5 : Écran d'assistance de l'application de consultation d'annonces

Un complément envisagé consiste à offrir à l'utilisateur une animation des commandes gestuelles permettant de montrer à l'utilisateur comment tracer les divers gestes. Ron Baecker [Baecker, et al. 1991] a montré que des icônes animées permettaient de mieux illustrer le fonctionnement d'un éditeur de dessin conventionnel. En raffinant ce principe est venu l'idée de guider l'utilisateur dans la réalisation de ses commandes gestuelles, en affichant à chaque instant un menu circulaire indiquant le type de marque réalisé s'il oriente son trait dans la direction indiquée. C'est une première ébauche de ce système d'aide qui a été appliquée dans les marking menus.

III.2.3.2 Marking Menus

Les "Marking Menus" sont un intermédiaire entre les pie-menus définis par Don Hopkins [Callahan, et al. 1988] et les interfaces gestuelles conventionnelles comme Hyperstrokes. L'utilisateur entraîné dessine les marques comme dans une interface gestuelle (figure III.2.6a). La dimension temporelle n'est cependant pas prise en compte dans les Marking Menus pour différencier les commandes. Si l'utilisateur commence un tracé puis marque une pause supérieure à un certain seuil (500ms à 1s), alors apparaît un menu radial (figure III.2.6b).

Ce menu indique à l'utilisateur les commandes qui seront exécutées s'il prolonge sa marque dans une des directions indiquées. Il est possible de revenir en arrière lors du tracé, et donc de produire une "marque vide", qui n'est pas interprétée. Ceci permet à l'utilisateur d'avoir immédiatement un aperçu des commandes disponibles sans en déclencher, ni aller chercher une page d'aide qui couperait son activité actuelle.


Figure III.2.6 : Une marque réalisée avec un "Marking Menu".

Outre l'absence de prise en compte du facteur temporel, tous les types de traces gestuelles ne peuvent être réalisés avec les Marking Menus. Si une marque peut avoir plusieurs angles de départ, alors cela peut conduire à une confusion de l'utilisateur, qui ne sait dans quelle direction il doit réaliser son tracé. Une solution consiste à abandonner le caractère symbolique des marques pour adopter des signes abstraits. L'aide en ligne permet à l'utilisateur d'apprendre rapidement, au moyen de sa mémoire sensori-motrice, des marques mêmes abstraites. Il est ainsi possible de fournir une interface gestuelle pour toute commande n'ayant pas de représentation symbolique claire, comme changer la police de caractère, par exemple.

Un autre inconvénient des Marking Menus est l'impossibilité d'utiliser certains aspects de la forme du geste comme paramètres de la commande gestuelle. Les informations temporelles ou de pression ne peuvent être prises en compte. De plus, les informations sur des changements de directions trop petits pour déclencher l'apparition du menu ne peuvent également être utilisés comme critère de distinction de marques. On ne pourra donc pas distinguer une ligne légèrement ondulée d'une ligne droite.

La version des marking menus ici décrite est la première esquisse. Depuis, G. Kurtenbach a proposé des versions améliorées, autorisant notamment les marking-menus hiérarchiques et étudiant plus en détails leurs avantages et leur limites [Kurtenbach et Buxton 1993].

III.2.4 Intégration Logicielle

L'architecture logicielle utilisée se conforme au modèle PAC décrit précedemment.

Pour les Markings Menus, un agent totalement indépendant de l'application est chargé de la gestion des entrées et de l'affichage des menus (après un délai de 500ms). Une procédure externe (XCMD) peut être appelé par toute fonction d'un agent susceptible d'utiliser un marking menu. L'agent "Marking Menu" est composé d'une facette "présentation", chargée de représenter la trace réalisée et d'afficher le menu si nécéssaire, d'une facette "abstraction", associant les différentes trajectoires angulaires possibles à des noms d'éléments du menu, et d'une facette "contrôle" déterminant le début et la fin de réalisation d'une marque, et se chargeant de retourner la trace reconnue à l'agent ayant déclenché l'activation d'un marking menu. Dans un modèle de type "Seeheim", le composant "marking menus" relève uniquement du domaine de la présentation, il n'a aucune dépendance vis à vis de la sémantique de l'application.

; script associé a la zone de texte "texte"

on button down

set result to MarkingMenu ("Up", "Print", "Tag",

"", "Down", "", "Untag", "")

; traitement du message "scroll down" envoyé lorsque le geste

; "scroll down" est tracé dans la zone de texte et reconnu

if result = 1 then scroll texte by -12 end if

if result = 2 then print current card end if

; etc

end button down

Exemple III.1 : script utilisant les markings menus, associé à une zone de texte et sémantique associée au geste "scroll down".

Hyperstrokes utilise un modèle similaire. Cependant, les marques réalisées ayant un plus grand pouvoir d'expression (commandes + paramètres), une certaine dépendance entre le module de reconnaissance et la nature des fonctions leur correspondant impose un interfaçage logiciel plus complexe.

; script associé a la zone de texte

on open ; appelé lors de l'ouverture ou la création de la zone

set text_gesture_data to open_gesture_set ("zone de texte")

end open

on button down

use_gesture_set (text_gesture_data)

end button down

; traitement du message "scroll down" envoyé lorsque le geste

; "scroll down" est tracé dans la zone de texte et reconnu

on scrollupgesture

scroll texte by -bboxheight

; à défaut de pouvoir passer des paramètres dans un message

; hypertalk nous utilisons des variables globales

; affectées par la facette "contrôle" de l'agent hyperstrokes

; Le mécanisme de message reste cependant similaire

; à l'envoi d'événements de haut niveau.

end scrollupgesture

; etc

Exemple III.2 : script utilisant Hyperstrokes, associé à une zone de texte et sémantique
associée au geste "scroll down".

L'agent Hyperstrokes possède également une facette "présentation" chargée de l'affichage de la trace réalisée et du suivi du curseur lorsque la reconnaissance de traces est activée. La facette "abstraction" est constituée de la grammaire de gestes effectuables, utilisant l'algorithme de classification précedemment décrit. La partie "contrôle" segmente également la trace et envoie un message hypertalk losrqu'un tracé est reconnu. L'application se doit d'associer une sémantique à chaque type de geste reconnu, utilisant les caractéristiques de la commande gestuelle (taille, position...) à bon escient.

III.2.5. Applications de tests et de démonstration

Plusieurs applications ont été réalisées pour évaluer les apports de l'interaction gestuelle et évaluer les possibilités offertes par Hypermarks.

III.2.5.1 Lecteur d'annonces

NewsStack est un prototype de lecteur d'annonces, réalisé en une version utilisant les Marking Menus et une utilisant HyperStrokes. Cinq commandes gestuelles permettent de lire les articles, de les marquer comme lus et de les effacer, de les imprimer, et enfin de naviguer dans les pages courantes par des marques de défilement. On notera sur l'écran suivant l'absence complète d'interacteurs (sauf le bouton d'aide, qui peut être supprimé et remplacé par une commande "vide", affichant l'aide à chaque fois qu'aucune commande précise n'est reconnue). Un des avantages de l'interaction gestuelle est de permettre de faire disparaître les interacteurs tels que boutons et barres de défilement, laissant le plus de place possible à l'information. Il est souvent possible d'allouer ainsi 20% de plus de la surface d'affichage à la présentation des informations propres à l'application.


Figure III.2.7 : L'écran principal du lecteur de News. On notera l'absence d'objets de contrôle (boutons, scrollbar...): l'interaction gestuelle permet une économie des ressources de l'écran.


Figure III.2.8 : commandes gestuelles de NewsStack

On notera que la direction de défilement se fait dans le sens inverse des barres de défilement usuelles : la métaphore employée ici est que la marque s'"accroche" au texte et lui fait suivre la direction de la trace. La hauteur du déplacement indique la quantité de déplacement effectué : de une ligne à une page. Les marques employées dans Hyperstrokes et les marking-menus sont presque les mêmes, à l'exception de la commande d'impression : dans les marking menus, il n'est pas nécessaire de faire le "P" complet pour activer la commande ; en revanche, il est nécessaire de former une certaine inclinaison (entre 30deg. et 60deg.) pour permettre de distinguer la commande d'impression de celle de défilement. Cette commande s'éloigne donc du symbole ("P" pour "print"), mais n'en est pas moins aisée à retenir, puisque la liste des commandes s'affiche en cas d'hésitation.

III.2.5.2 Éditeur de Plan

L'éditeur de plans reprend le principe des "modes plan" offerts par les éditeurs de texte tels que Word(TM) ou les logiciels "organiseurs" tels que More(TM). Le vocabulaire est légèrement plus riche. L'application n'est pas un simple outil de navigation, mais permet d'agir sur les objets : déplacer des chapitres ou des paragraphes, indenter, ajouter ou supprimer...


Figure III.2.9 : prototype d'éditeur de plan

Les commandes sont les présentée sur la figure III.2.10. La présence d'une marque vide permet à l'utilisateur de placer un point d'insertion pour entrer du texte. Ainsi, on préserve un mode d'interaction conforme à celui des éditeurs actuels, tout en offrant une interaction gestuelle. On notera également la disparition des interacteurs usuels dans ce genre d'applications (boutons permettant l'indentation...) qui permet de gagner de la place à l'écran.

Figure III.2.10 : les commandes de l'éditeur de Plan

Un inconvénient de l'interface actuelle est la nécessité de déplacer ses mains du clavier au dispositif de pointage, pour corriger le texte ou l'indenter et le déplacer. Il est vraisemblablement utile de fournir des équivalents des commandes au clavier, afin d'éviter ce basculement incessant de mode, fréquent lors de l'édition de plans.

III.2.5.3 GEdit+ : éditeur de dessin

GEdit+ est un perfectionnement de l'éditeur GEdit [Kurtenbach et Buxton 1990] réalisé au moyen d'Hyperstrokes. Son objectif est de montrer qu'il est possible de réaliser une interface gestuelle complexe rapidement et facilement grâce aux outils développés pour Hypermarks.

GEdit+ utilise une vingtaine de commandes exclusivement gestuelles. Il n'existe donc qu'un seul mode principal dans GEdit+. Toutes les fonctions habituelles d'un éditeur de dessin ne sont pas disponibles, comme par exemple l'indication de l'épaisseur du trait ou de la couleur. Nous pourrions avoir recours à des interacteurs traditionnels pour réaliser ces actions. Pour l'instant, GEdit+ ne permet que de manipuler des formes géométriques (polygones réguliers) et du texte.


Figure III.2.11 : éditeur de dessin (GEdit adapté).

Beaucoup des commandes de GEdit+ réalisent en fait des actions composites : par exemple, l'adjonction d'une sélection et du geste copier permet de réaliser la duplication d'un ensemble d'objets en une seule action.

Figure III.2.12 : quelques unes des commandes gestuelles de GEdit+.

GEdit + nous a montré qu'il était possible de concevoir un assez grand vocabulaire gestuel, en préservant la cohérence, en conservant une interaction naturelle et sans dégrader le taux de reconnaissance. Il convient tout de même d'admettre que l'apprentissage de toutes les commandes gestuelles demande sans aucun doute un temps assez long et que ce type d'interface n'est peut-être pas totalement accessible à tout débutant.

III.3. Apports de Hypermarks

Hypermarks nous a permis de vérifier les apports de l'interaction gestuelle évoqués précédemment : concision et conformité de l'interaction dans certains cas. Quelques autres avantages nous sont apparu importants à l'usage. Bien sûr, il en va de même des inconvénients et limites rencontrés.

III.3.1. Apports du modèle d'interaction

Certains des avantages de l'interaction gestuelle ne sont apparus que lors de l'utilisation des prototypes. Nous avons mentionné les avantages qu'apporte la disparition des interacteurs traditionnels, et pouvons les résumer dans l'exemple suivant (figure III.3.1) :


Figure III.3.1 : quelques apports de l'interaction gestuelle sur la présentation.

Le gain de place à l'écran est de 10 à 20%, ainsi plus de place peut être consacrée à l'information utile. Souvent les interacteurs sont petits afin de ne pas occuper trop de place. Dans ce cas, ils deviennent difficiles à atteindre et leur manipulation ralentit l'interaction. Avec l'interaction gestuelle, ce problème est éliminé. Enfin, le regard ne se défocalise pas de la zone d'attention, et les commandes gestuelles peuvent même être effectuées sans regarder, car leur réalisation repose en grande partie sur la mémoire sensori-motrice, indépendante de la vision. Enfin, l'avantage principal est la disparition de modes : les palettes d'outils se trouvent notablement réduites.

Hypermarks permet en outre à l'utilisateur de redéfinir ses commandes gestuelles. Nous avons vu que cela pouvait mener à des ambiguïtés et n'était pas forcément souhaitable dans le cas général. Il est cependant possible de permettre à un utilisateur d'ajouter ou de modifier légèrement certains exemples, afin de mieux adapter le jeu de commandes à ses habitudes de tracé (par exemple si l'utilisateur est gaucher). Dans ce cas de modifications limitées, il est sans doute possible d'offrir des capacités de paramétrisation.

III.3.2. Problèmes ouverts

Un point négatif nous est apparu à l'utilisation : l'utilisation de commandes gestuelles ne fait pas disparaître totalement la notion de mode. Au contraire, deux paradigmes s'opposent lorsqu'on utilise l'interaction gestuelle dans une interface à manipulation directe : d'un côté le mode "reconnaissance de marques", de l'autre les modes classiques "sélection", "déplacement", "tracé"... Pour corriger ce problème, il convient de fournir des retours d'information adéquats (forme du curseur, trace des gestes reconnue...), pour éviter toute confusion à l'utilisateur. Le passage d'un mode à l'autre peut être raccourci en utilisant des touches "modificatrices", activées avec la main non-dominante. Par exemple, dans le logiciel StudioPaint diffusé et développé par Alias/Wavefront, l'appui sur la touche "alt" permet l'entrée dans le mode "marking menus".

D'une manière générale, l'écho fourni par une interface gestuelle ne peut être que lexical : en effet, la dynamique du geste total influant sur le sens de la commande, il n'est pas possible de fournir une rétroaction sémantique des actions lors de leur réalisation. Les marking menus permettent de fournir un écho sémantique, à condition de renoncer à l'interprétation de la forme du geste pour signifier des paramètres de la commande gestuelle.

Nous n'avons pas non plus étudié avec Hyperstrokes une catégorisation plus systématique du type des paramètres utilisés dans l'interaction gestuelle. Les plus courants sont : la position du point de départ (pour indiquer où créer un objet), la longueur du tracé (pour déterminer une amplitude, par exemple dans le déplacement), et la boîte ou le polygone englobants (pour déterminer les objets concernés par la commande ou une amplitude multidimensionnelle). Les dimensions temporelles sont très peu utilisées. Il serait utile de pouvoir fournir une typologie plus élaborée.

Le problème le plus délicat à résoudre reste la conception de jeux de commande gestuelles de façon plus systématique et moins intuitive. Pour l'instant, les jeux de commandes gestuelles et les applications ont étés choisis plus ou moins de concert, afin d'illustrer les capacités de l'interaction gestuelle. Il est clair que celle-ci apporte de nombreux avantages dans beaucoup d'applications. Cependant ces apports sont-ils généralisables à toute application ?

III.4. Conclusion

Grâce à la modularisation de l'implantation, et son intégration avec HyperCard, il est très facile de créer de nouvelles applications utilisant un jeux de commandes gestuelles.

Nous proposons deux modèles pour l'utilisation de la reconnaissance de marques (Marking Menus & Hyperstrokes), sans proposer de choix a priori : suivant les cas, un des deux types d'interaction sera préférable, ou les deux seront équivalents. En général, on préférera utiliser les marking menus lorsque l'iconicité que l'on peut attribuer aux commandes gestuelles est faible, c'est à dire lorsqu'on ne peut pas vraiment trouver de symbole évoquant "naturellement" une commande à effectuer (par exemple, dans le cas des commandes "imprimer", ou "change la police de caractères"). Inversement, Hyperstrokes est plus adapté lorsqu'il y a une relation étroite entre la forme de la trace du geste et sa signification (commandes de dessin: "trace un cercle", "rectangle", "déplace", "duplique"). Dans ce cas, les "marking menus" sont insuffisants pour indiquer la relation entre la forme d'un geste et les paramètres utilisés par la commande (taille du rectangle, ampleur et direction du déplacement...).

L'aspect le plus concluant de notre expérience est le point de vue architectural. Notre bibliothèque de reconnaissance de marques s'intègre sans difficultés dans un environnement logiciel prévu pour la manipulation directe. Ceci contribue à renforcer notre opinion que la principale difficulté pour répandre les interfaces gestuelles n'est pas tant d'ordre logicielle, mais la difficulté de comprendre et créer des modèles d'interaction adaptés à chaque tâche et application.

Enfin, du point de vue de la conception de modèles d'interaction, on notera comment nous avons pu faire la transition de l'interaction gestuelle classique aux marking menus :

* l'idée de guider l'utilisateur, d'abord par une animation, puis par l'anticipation de ses actions et la présentation des actions possibles à l'intérieur d'un micro-mode.

* l'abandon de certaines dimensions capturées mais peu utiles, comme les critères temporels, au profit de l'aide à l'utilisateur, afin de permettre l'exploitation de ces dimensions pour l'assistance et le guidage.

Nous utiliserons une technique semblable pour faire évoluer le modèle d'interaction de Charade (chapitre VI) dans le même sens : sacrifier des capacités de capture d'informations peu utiles pour les "affecter" à l'utilisateur, c'est à dire lui fournir des degrés de liberté supplémentaires.


Copyright 1995. Thomas Baudel.
previous Up next