• Aucun résultat trouvé

Une table à dessin virtuelle : S VALABARD

CHAPITRE 4. UNE TABLE À DESSIN VIRTUELLE : S VALABARD lon ses préférences ou capacités (changer l’ordre des boutons sur le shuttle, ou sur la boîte à glissières,

4.4. ANALYSE AUTOMATIQUE DU DESSIN

FIGURE4.23 –Interprétation d’un dessin au trait. En rouge, l’interprétation vectorielle attendue d’un dessin pour sa reconstruction en 3D.

4.4.1 Organisation des filtres de dessin

Beaucoup de travaux on été réalisés dans le domaine de l’interprétation de dessins (et plus géné-ralement d’images). Nos travaux se situent dans un cadre bien particulier : l’interprétation temps réel, ou interactive. En effet, l’approche à adopter pour interpréter un dessin dont on connaît la chronologie n’est pas la même que pour une image terminée, sans indication temporelle (un atout indéniable pour l’extraction des propriétés du dessin). Généralement, la démarche interactive est la suivante :

1. Capture des traits : reconnaître les différents points qui composent un trait.

2. Caractérisation des traits : pour chaque trait, déterminer la (ou les) caractéristique(s) géomé-trique(s) qu’il représente (segment, courbe, etc.).

3. Connection des extrémités : réduire l’imprécision du dessin à main levée en détectant les entités concourantes et connectant leurs extrémités.

Cette démarche générale est bien adaptée au dessin à main levé mais tout de même dans un cadre particulier : celui où le dessinateur trace des traits continus, d’une manière plus ou moins contrainte. Or, nous inscrivant dans un paradigme de dessin libre pour la conception, nous avons du compléter cette approche à plusieurs niveaux : l’élimination des traits inutiles au noyau fonctionnel (les phases non constructives), et l’assimilation et le nettoyage des traits de révision (démarche itérative).

Dès lors, nous avons inséré deux traitements supplémentaires, qui sontla détection du contexte de dessin etla fusion de segments. La détection du contexte, à partir des caractéristiques des traits et des segments construits, va permettre de ne conserver que les données des phases constructives. La fusion des segments va permettre de regrouper en un seul segment des traits repassés, révisés, rallongés. La figure 4.24 page suivante illustre donc la chaîne de traitement que nous proposons, ponctuées par le module de reconstruction 3D.

Les traitements sont séquentiels et suivent un paradigme de flot de données. Chaque filtre est un module réactif, qui reçoit des données en entrée et transmet au module suivant les données reçues

CHAPITRE 4. UNE TABLE À DESSIN VIRTUELLE : S VALABARD

FIGURE4.24 –Filtres séquentiels de dessin.

et les traitements produits. Nous parlons de traitements en cascade. Cet ordre obéit à la logique de traitement des traits et à une structuration progressive du dessin. Il est toutefois possible d’insérer sim-plement de nouveaux traitements dans la séquence, ou d’en changer l’ordre (en respectant toutefois leurs entrées-sorties), grâce à la modularité et la flexibilité des outils logiciels utilisées pour l’im-plémentation (voir les boîtes à outils ICON[Dragicevic et Fekete, 1999; Dragicevic et Fekete, 2004; Dragicevic, 2004b] et MAGGLITEdans la partie II page 147 de ce mémoire). Cette modularité est une partie de l’originalité de notre approche du traitement du dessin, contrairement à nombre d’approche ou il est ardu de modifier la séquence de traitement.

En outre, cette architecture permet l’intégration des traitements dans la description des interactions et des comportements du système, décrits dans le même paradigme de flot de données (voir le détail dans le chapitre 7 et la section 8.4.3 page 203). Ainsi, les filtres sont appliqués en temps réel et intégrés aux interactions du système. Cela confère une plus grande adaptabilité aux données reçues contrairement aux méthodes dites paresseuses qui repoussent les traitements en fin de saisie.

4.4.2 Création des traits

Nous définissons un trait comme une collection de points tracés sur la zone de dessin (trait sur une feuille). Leur saisie est initiée par une action (pression sur un stylet ou sur un bouton de périphé-rique), effectuée en déplaçant le pointeur et terminée par une autre action (relâchement du stylet ou du bouton), comme le montre la figure 4.25 page suivante. Ce mode de saisie est identique au tracé d’un trait sur une feuille.

Le premier filtre (cadre A de la figure 4.24) permet d’enregistrer les traits, collections de points, ainsi produits. Cet algorithme simple construit un trait en enregistrant les points qui suivent le déplace-ment de l’outil de dessin est utilisé. Pour chaque point, le système enregistre la position 2D, le temps et la pression (si le dispositif d’entrée le permet). L’algorithme effectue aussi un filtrage des points saisis, afin d’éliminer des points identiques ou trop proches dans un même trait. En effet, la fréquence d’échantillonnage(5)de plus en plus élevée des périphériques d’entrée actuels entraîne la saisie de plu-sieurs points identiques, ou de points très proches qui ne seront ni significatifs visuellement, ni pour les algorithmes de traitement. Éliminer les points trop proche ne change donc pas l’aspect visuel des traits dessinés, et ne fausse pas les algorithmes de traitement (cela les rend même plus performants

(5)Nous regroupons sous le terme « fréquence d’échantillonnage » deux caractéristiques des périphériques d’entrée : leur résolution temporelle, c’est à dire le nombre de mises à jour de ses données en une seconde, mais aussi leur résolution spatiale, c’est à dire le seuil limite de déplacement qu’ils détectent. À titre d’exemple, les tablettes écran produites par Wacom atteignent des résolutions de 0.05mm par point, pour des échantillonnages de 205 points par seconde.

4.4. ANALYSE AUTOMATIQUE DU DESSIN

FIGURE4.25 –Dessin d’un trait.

en terme de rapidité, sans perte de qualité de traitement). Ainsi, l’algorithme de création des traits propose un seuil réglable de filtrage, basé sur la distance entre deux points consécutifs.

Ce module de traitement réalise aussi un autre filtrage : celui des traits de construction. Nous avons constaté dans le chapitre 3 que les traits de construction n’étaient pas nombreux sur les dessins des sujets de notre étude. Toutefois, ils ne sont pas inexistants. Il est important de les détecter, car n’étant pas nécessaires au noyau fonctionnel du système, il n’est pas utile de leur appliquer tous les traite-ments. Ils doivent toutefois être propagés dans la séquence de filtrage, étant utilisés par l’algorithme de détection du contexte.

Cette détection est réalisée en regard de nos observations : ce sont de simples points (ou des traits de taille très réduite), ou des traits dont la pression est très faible. Ainsi, le filtre de création des traits permet de marquer les points seuls ainsi que les traits d’une taille ou d’une pression moyenne inférieures à des seuils. Nous avons réglés ces seuils de filtrage de manière expérimentale, à partir de notre propre expérience et des tests informels que nous avons réalisé avec quelques dessinateurs. Toutefois, ceux-ci sont facilement paramétrables et peuvent être adaptés à l’utilisateur.

4.4.3 Segmentation des traits

Afin de structurer le dessin et de l’adapter aux futurs traitements, il faut simplifier et décom-poser les traits en un ou plusieurs segments formés uniquement de deux points (cadre B de la fi-gure 4.24 page précédente). Le principe est d’éliminer tous les points « inutiles » situés entre deux points critiques (appelés coins) qui formeront les extrémités des segments (voir figure 4.26 page sui-vante).

On trouve beaucoup de ces méthodes de segmentation de traits, appelées aussi détection de coins, dans la littérature (vingt et une d’entre elles sont recensées et comparées dans [Rosin, 1997]), adaptées à différents cas d’utilisation (traitement d’images numérisées, traitement de vidéos, dessin temps réel, etc.). Nous avons utilisé et adapté la méthode proposée par Tevfik SEZGIN [Sezgin et al., 2001], conçue pour le dessin en temps réel, qui combine les informations de vitesse et de courbure pour

CHAPITRE 4. UNE TABLE À DESSIN VIRTUELLE : S VALABARD

FIGURE4.26 –Segmentation de traits. Un trait et son approximation

extraire les points critiques. La prise en compte de ces deux caractéristiques confère à cette méthode plus d’efficacité que celles basées uniquement sur l’une des deux, sans pour autant en diminuer la performance.

L’algorithme calcule la courbure et la vitesse en chaque point du trait. Une première approximation est composée à partir des deux points extrêmes du trait et du point de plus petite vitesse et de plus grande courbure. Ensuite, deux segmentations de plus en plus précises sont composées en ajoutant le point de plus petite vitesse pour l’une et celui de plus grande courbure pour l’autre. La meilleure des deux solutions, en terme de distance au trait original, est conservée et l’algorithme itère ainsi jusqu’à ce qu’un taux de précision fixé soit atteint.

Ce filtre reçoit donc un trait en entrée et produit en sortie un ou plusieurs segments, approximation du trait dessiné (il ne fait rien si le trait avait été marqué comme trait de construction). Il reste tout de même à éliminer certains segments ainsi construits, de façon à épurer le dessin pour ne garder que les données utiles à la reconstruction 3D.

4.4.4 Détection du contexte

Nous avons déterminé, dans la section 3.3.3 page 72, trois phases dans la tâche de dessin en perspective pour l’architecture. Nous proposons un traitement du dessin en temps réel pour la détection automatique de ces phases. Il y a deux objectifs à caractériser ces phases :

1. Traitement du dessin. Dans l’optique d’obtenir une reconstruction 3D à partir des tracés de l’utilisateur, il n’est pas utiles de fournir au noyau de reconstruction les traits produits lors des phases de complétion et de style(6).

2. Adaptation des interactions et de l’interface. Un problème récurent des interfaces de dessin au stylet est une certaine incompatibilité de cette modalité avec les commandes « tradition-nelles » des interfaces WIMP. Ainsi, devoir presser un bouton, ou changer d’outil, de visuali-sation en utilisant le stylet de dessin dans le mode de dessin peut provoquer des ruptures dans la tâche créative. Parallèlement, cela oblige aussi à contrôler à la fois la tâche et le fonctionne-ment du programme (modes), comme souligné dans [Nielsen, 1993]. Ce filtre de détection du contexte est une solution possible à ces problèmes, pour adapter l’interface et les outils d’inter-action à la phase courante du dessin, c’est à dire opérer à des changements de mode implicites

(6)Notons sur ce point que ce traitement de filtrage des traits est le seul de la chaîne qui dépend de la finalité du dessin (modélisation 3D pour l’architecture). Nous montrerons dans le chapitre 5 que notre démarche reste générale dans son ensemble et que c’est ce point précis (étude et filtrage selon le domaine) qui doit être particulièrement adapté à la finalité de la tâche.

4.4. ANALYSE AUTOMATIQUE DU DESSIN

Outline

Documents relatifs