• Aucun résultat trouvé

Moteur de recherche basé sur les dessins au trait

Dans le document Indexation multi-vues et recherche d'objets 3D (Page 164-169)

6.6 Outil et prototype

6.6.1 Moteur de recherche basé sur les dessins au trait

Afin de prouver la possibilité de mettre en œuvre des méthodes d’indexation et de re- cherche d’objets 3D pour le grand public, nous avons développé une application mobile. Le but, visé par celle-ci, est de fournir à l’utilisateur un outil lui permettant de rechercher un modèle 3D qu’il visualise mentalement. Dans ce sens, nous avons dû, lors de la conception de ce prototype, faire des choix concernant le processus de recherche, l’interface ou encore les techniques informatiques employées.

Voici une liste des contraintes que nous nous sommes fixées : 1. Une bonne ergonomie de l’interface graphique.

2. Des requêtes de type “dessin au trait” pouvant être multiples. 3. Une pertinence des résultats retournés.

4. Un temps de recherche inférieur à 1 seconde pour une base d’environ 1000 objets. 5. La visualisation des objets 3D résultats.

6. Le stockage de la base de données, de signatures et d’objets 3D, sur un serveur distant.

7. Une utilisation sur terminal mobile.

Processus d’indexation et de recherche

Les processus d’indexation et de recherche, que nous embarquons dans notre applica- tion, doivent satisfaire les contraintes 2, 3 et 4 de la liste précédente. Dans ce sens, nous utilisons des requêtes de type “dessin au trait” associées à une caractérisation de la forme par convexités/concavités codée dans les deux signatures proposées, à savoir histogrammes et valeurs complètes (voir chapitre5). Ainsi, l’utilisateur peut dessiner une représentation de sa requête mentale qui sera alors traitée avec le processus de la section6.3.3.

Les aspects robustesse et rapidité sont résolus en utilisant l’optimisation introduite dans la section 6.5.2. Grâce à celle-ci et au régalage du paramètre k, il est possible de garantir une bonne robustesse, venant du descripteur fort, ainsi qu’une grande rapidité, venant de l’élagage précoce par descripteur faible. Dans notre implémentation, nous uti- lisons k = 50 comme compromis pertinence/vitesse (voir remarque 6.6). Finalement, en

utilisant un processus similaire à celui proposé dans la section6.4, nous sommes en mesure de renvoyer à l’utilisateur une liste d’objets 3D ressemblant à sa requête.

Remarque 6.6. Afin de garantir à coup sûr un temps inférieur à la seconde,

il aurait pu être intéressant d’employer une approche par “temps contraint”

(voir remarque6.5). En effet, ainsi, le paramètre k correspondrait au nombre

d’objets que nous pouvons comparer en un temps de 1 seconde moins le temps de comparaison du descripteur faible (MCC-H). Ainsi, la valeur de k varie en fonction du temps restant, conditionné par la puissance de calcul du serveur ainsi que par la complexité du descripteur fort (MCC).

L’interface graphique

L’interface graphique de notre application doit satisfaire les contraintes 1, 5 et 7 de notre liste. Dans ce cadre, nous avons choisi le terminal mobile iPhone2 d’Apple car il per- met d’offrir une grande ergonomie à l’utilisateur, ceci grâce à son interface multi-tactile3. Nous avons voulu organiser cet outil en quatre vues. La première permet de gérer la liste de “dessins au trait” en permettant l’ajout, la modification ou encore l’analyse de ceux-ci. La seconde offre à l’utilisateur une surface de dessin où il est possible d’esquisser, d’effacer, d’annuler ou de valider un “dessin au trait”. La troisième, quant à elle, permet de visualiser la liste des résultats fournis par le serveur, celle-ci comporte une visualisation 2D de l’objet ainsi que sa classe si elle est disponible. Finalement, la quatrième vue offre un visualisateur 3D où il aisé de déplacer, tourner où changer l’échelle du modèle observé. La figure 6.12présente le schéma du fonctionnement global de notre outil.

Avec un tel découpage, l’utilisateur comprend rapidement ce qu’il peut faire et navigue facilement entre les différentes vues de l’interface. Chacune d’entre elles a un nombre li- mité de possibilités garantissant une bonne ergonomie. L’implémentation de ce modèle avec l’environnement de l’iPhone est présentée dans la figure6.13.

Afin de prendre en compte toutes les possibilités du modèle présenté dans la figure6.12, nous proposons à l’utilisateur des surfaces actives, ou boutons, dans chacune des vues. La figure 6.14 présente les éléments permettant à l’utilisateur d’interagir avec l’interface graphique du prototype.

Choix techniques

Le développement de notre moteur d’indexation et de recherche d’objets 3D s’est fait en accord avec les contraintes introduites au début de cette partie. En particulier, nous avons orienté sa conception pour obtenir un outil rapide et fonctionnel. Dans ce sens, nous avons dû faire des choix techniques permettant de mettre au point la communication avec

2. http://www.apple.com/fr/iphone/

Liste de ''dessins

au trait''

Surface de

dessin

Modifier Ajouter Valider Dessiner Retour Effacer Annuler

Liste de résultats

Visualisateur 3D

Retour Retour Analyser Voir Translation Echelle Rotation Naviguer Point d'entré

Figure 6.12 – Schéma reprenant le fonctionnement global de notre prototype. Les quatre

vues développées plus haut sont respectivement de couleur verte, bleue, orange et rouge. Les flèches représentent ici les possibilités d’interaction avec l’interface graphique.

le serveur de fichier, la surface de dessins, la liste de résultats ainsi que le visualisateur 3D. La plateforme de test étant un iPhone, nous avons dû nous plier aux contraintes de développement qu’elle engendre. En particulier, nous avons implémenté l’ensemble de l’in- terface graphique ainsi que les processus d’indexation et de recherche dans le langage

Objective-C4 associé à la bibliothèque Cocoa5. La partie communication avec le serveur

4. http://developer.apple.com/

Liste de ''dessins

au trait''

Surface de

dessin

Liste de résultats

Visualisateur 3D

Point d'entré

Figure 6.13 – Implémentation du modèle proposé dans la figure 6.12 sur un terminal mobile de type iPhone. Ici, les quatre vues sont organisée de la même façon que sur le

Ce bouton permet dʼajouter

un dessin à la liste. Il dirige lʼutilisateur vers la surface de dessin.

Une pression du doigt sur cet élément permet dʼéditer

le dessin sélectionné. Il dirige lʼutilisateur vers la

surface de dessin. Il est aussi possible de glisser le doigt de gauche à droite pour supprimer le dessin. Ce bouton bascule la liste en

mode dʼédition. Cela permet en particulier de supprimer

des dessins.

Ce bouton permet de lancer lʼanalyse des dessins de la liste. Après un envoi de ceux-ci au serveurs et après réception des résultats, lʼutilisateur est redirigé vers la vue présentant la liste de résultats.

Cʼest précisément cette vue qui est affichée à lʼutilisateur l o r s q u ʼil démarre notre application.

Point d'entré :

(a) Liste de dessins

Ce bouton permet dʼannuler

les derniers tracés effectués par lʼutilisateur sur le dessin. Ce bouton permet dʼannuler

le dessin en cours et de retourner sur la liste de dessins.

En glissant un doigt sur cette zone, il est possible de

dessiner un contour dʼobjet. Cʼest celui-ci qui servira de requête pour interroger la base de données dʼobjets 3D.

Ce bouton permet d'effacer

le dessin en cours.

Une pression sur ce bouton permet de connecter le dernier tracé de lʼutilisateur avec la point de départ du dessin.

Ce bouton valide le tracé et retourne sur la liste de dessin, laquelle contient le nouveau contour.

Une pression du doigt sur ce résultat permet de lancer le téléchargement de lʼobjet 3D afin de lʼobserver dans le visualisateur 3D.

Une pression sur ce bouton permet de retourner sur la

liste de dessins.

En glissant un doigt sur cette zone, il est possible de faire

défiler les résultats qui ont été renvoyés à lʼutilisateur. Grâce à cette liste il est possible de visualiser une représentation en 2D de chaque objets ainsi que sa classe, si elle est connue.

(c) Liste de résutlats

s’est fait par l’utilisation de socket permettant d’interroger à distance la base de données et de récupérer les images 2D des objets (pour la liste de résultats) ainsi que les objets 3D (pour le visualisateur 3D). L’ensemble de ces communications peuvent s’effectuer à travers les réseaux mobiles Edge et 3G ainsi que par Wifi. Finalement, la surface de dessins, d’une résolution de 256 ∗ 256 pixels, ainsi que le visualisateur 3D s’appuie sur la technologie d’accélération graphique OpenGL ES6.

Pour conclure, c’est grâce à l’ensemble de ces choix techniques que notre prototype est fonctionnel, facile de prise en main et adapté à l’utilisateur.

Dans le document Indexation multi-vues et recherche d'objets 3D (Page 164-169)