Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006

La page est créée Pascal Perret
 
CONTINUER À LIRE
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Augmented Reality

Projet: Multimodal Interfaces

          Réalisé par:

        Nicolas Martenet
        Patrick Terreaux
        Timothée Maret

     Semestre d'été 2006
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Table des matières
1 Introduction....................................................................................................................................... 3
   1.1 Installation................................................................................................................................. 3
      1.1.1 OpenGL..............................................................................................................................3
      1.1.2 GLUT................................................................................................................................. 3
   1.2 Fonctionnalités...........................................................................................................................3
   1.3 Intégration de la librairie............................................................................................................4
2 Tests de la librairie............................................................................................................................ 5
   2.1 Premier Test...............................................................................................................................5
   2.2 Calibration................................................................................................................................. 5
   2.3 Création de Pattern.....................................................................................................................6
   2.4 Reconnaissance de plusieurs Pattern......................................................................................... 6
   2.5 Performances............................................................................................................................. 6
      2.5.1 Evaluation de la mesure de distance.................................................................................. 7
      2.5.2 Mesure de la distance maximale........................................................................................ 8
      2.5.3 Mesure d'angle................................................................................................................... 9
3 Application de démonstration............................................................................................................9
   3.1 Sujet........................................................................................................................................... 9
   3.2 Fonctionnement......................................................................................................................... 9
      3.2.1 Visualisation.....................................................................................................................10
      3.2.2 Changement de couleur....................................................................................................10
      3.2.3 Agrandissement/Rétrécissement ..................................................................................... 10
      3.2.4 Sélection du mobilier....................................................................................................... 11
      3.2.5 Afficher la commande......................................................................................................11
   3.3 Evenement clavier....................................................................................................................11
   3.4 Evenement caméra...................................................................................................................11
   3.5 Création des meubles en 3 dimensions.................................................................................... 11
      3.5.1 VRML.............................................................................................................................. 12
      3.5.2 Modélisation.....................................................................................................................12
4 Conclusions..................................................................................................................................... 13
5 Annexes........................................................................................................................................... 13
   A Références..................................................................................................................................13
   B CD du projet...............................................................................................................................13
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Nicolas Martenet                        Patrick Terreaux                           Timothée Maret

1 Introduction
   L'objectif de ce projet est d'étudier la librairie ARToolkit. Cette librairie permet de
   développer des applications en C/C++ utilisant la réalité augmentée.
   Le projet contient différentes parties, tout d'abord l'installation de la librairie et une
   description de ses fonctionnalités ainsi que d'une application de test montrant l'utilisation
   de cette librairie..

1.1 Installation
   L'installation de la librairie est très bien décrite sur le site dédié à la librairie. La dernière
   version est multi plate-forme, elle peut donc être installée aussi bien sous Windows que
   Mac OS ou Linux.
   Plusieurs pré-requis sont nécessaires pour utiliser la librairie, il faut posséder un
   ordinateur capable d'acquérir un flux vidéo et de l'afficher en même temps, un
   environnement de développement et les librairies GLUT et Open GL. Une courte
   description de ces deux librairies sont données aux points 1.1.1 et 1.1.2.
   L'installation des pré-requis puis de la librairie est décrite pas à pas pour chaque système
   d'exploitation à l'adresse ci-dessous.
   http://www.hitl.washington.edu/artoolkit/documentation/usersetup.htm
   Pour le projet, nous avons installé la librairie sous Windows XP ainsi que sous MacOS X,
   nous n'avons rencontré aucun problème.

1.1.1 OpenGL
   OpenGL est une spécification définissant une API multi-plateforme pour la conception
   d'applications générant des images 3D. Elle propose de nombreuses fonctions pour
   l'affichage de scènes tridimensionnelles complexes. [openGL]

1.1.2 GLUT
   GLUT est un ensemble d'outils logiciels facilitant la programmation d'application utilisant
   OpenGL. Concrètement, GLUT a plusieurs fonctions principales:
      •   Définition et ouverture d'une ou plusieurs fenêtres d'affichage
      •   Définition de fonctions devant s'exécuter en réaction à des évènements (clavier,
          souris modification de l'affichage)
      •   Créations de menus et des fonctions associées.
   De plus amples informations sont disponibles sur le site suivant. [glut].

1.2 Fonctionnalités
   Cette librairie est la base pour créer des applications utilisant la réalité augmentée.
   Le principe général est de superposer à une image réelle des éléments virtuels. Cette
   superposition nécessite plusieurs étapes.

Rapport AR Toolkit                                                                              3/13
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Projet Interfaces Multimodales          Semèstres d'été 2006                          Université de Fribourg

       •   Tout d'abord il faut acquérir le flux vidéo à l'aide d'une caméra.
       •   Chaque image est ensuite analysée dans le but de détecter des carrés noirs
       •   Si un carré noir est trouvé, la position de la caméra par rapport au carré est
           calculée
       •   Le système cherche une correspondance entre le motif à l'intérieur du carré et ceux
           enregistrés dans le système.
       •   Un objet graphique est calculé à partir de la position de la caméra selon le motif
       •   L'objet est superposé au carré noir
       •   Au final l'utilisateur voit sur les images réelles filmées, l'objet généré par
           l'application.

                       Illustration 1: Fonctionnement de la librairie, tiré de [artDoc]

   Au niveau de la vidéo, la librairie est également très ouverte puisque plusieurs types de
   caméras et d'entrées vidéos sont supportées. Une fonction de calibration est également
   disponible, cette fonction permet d'améliorer le calcul de positionnement.
   Afin de laisser à l'utilisateur le choix des motifs désirés dans l'application, la librairie
   possède des fonctions permettant d'enregistrer les motifs et de les ajouter dans le système.
   La librairie permet de gérer plusieurs motifs simultanement et de les faire interagir entre
   eux.
   En ce qui concerne les objets à ajouter aux images réelles, la librairie se base sur GLUT
   pour l'interface, sur OpenGL pour le rendu et supporte également VRML.
   Enfin de nombreux tutoriaux sont fournis afin de faciliter la prise en main.
   Le site de la librairie fournit également de nombreux liens vers différents projets utilisant
   cette libraire. Il est ainsi possible de voir l'étendue des possibilités qu'elle offre.

4/13
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Nicolas Martenet                       Patrick Terreaux                         Timothée Maret

1.3 Intégration de la librairie
   La librairie est écrite en langage C mais une autre version utilisant le langage Java est
   également proposée. Il est donc possible de l'inclure dans des projets utilisant l'un ou
   l'autre de ces langages.
   Il est tout à fait envisageable d'intégrer des fonctions de réalité augmentée dans tout type
   d'application utilisant de la vidéo. La librairie peut servir à ajouter des informations à
   l'image (labels), ajouter de nouveaux objets ou peut également servir pour des fonctions
   d'orientation et de positionnement. Le domaine est donc très large et peut toucher de
   nombreux projets.
   Comme expliqué précédemment, développer une application avec cette librairie demande
   plusieurs pré-requis, au niveau des logiciels mais aussi au niveau des connaissances. Il est
   préférable de connaître OpenGL, GLUT et VRML avant de créer des programmes avec la
   librairie.

2 Tests de la librairie

2.1 Premier Test
   Le premier test permet de valider l'installation de la librairie et de l'ensemble de
   l'environnement de développement. Ce test consiste à filmer un motif déjà enregistré dans
   le système et d'afficher sur ce motif un simple cube.
   Le premier test a parfaitement fonctionné, il sert ainsi de base de travail pour découvrir les
   possibilités de la librairie. Nous avons ainsi un environnement complet correctement
   installé pour créer nos propres applications.

2.2 Calibration
   Afin d'obtenir les performances optimales de détection des patterns, la librairie permet de
   compenser les distortions de la caméra. Les paramètres principaux sont le point central de
   l'image, le facteur de distortion et un facteur d'ajustement de la taille de l'image à la
   réalité.   Les     paramètres     sont   stockés     par    défaut     dans     le   fichier
   ARToolKit/bin/Data/camera_para.dat. Ces paramètres sont lus au démarrage de
   chaque application et chaque application peut définir son propre fichier de paramètre.
   La librairie définit deux méthodes pour calibrer la caméra. Les deux méthodes consistent à
   comparer une figure géométrique connue du système avec des mesures effectuées plusieurs
   fois avec des angles différents. La deuxième ajoute une extension à la première et est donc
   plus précise.
  Nous avons commencé par tester la méthode en deux étapes, qui nous a donné des résultats
  totalement erronés. Nous avons alors utilisé la méthode en une étape et les observations
  sur les mesures d'erreur de positionnement ont permis de montrer l'amélioration due à la
  calibration (Table 2). La calibration est donc une opération nécessaire, qui aura une
  influence sur l'enregistrement des patterns et la mesure.
  Le processus complet pour la méthode en une seule étape dure environ 45 minutes.
  Les opérations de calibrations sont définis dans la documentation [artDoc].

Rapport AR Toolkit                                                                          5/13
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Projet Interfaces Multimodales       Semèstres d'été 2006                 Université de Fribourg

                                 Tableau 1: Résultats après calibration

2.3 Création de Pattern
   Les pattern manipulés par la librairie ne sont pas directement contenus dans des fichiers
   d'images aux formats standards, mais dans des fichiers de calibre dont le format est
   spécifique à la librairie. Ces fichiers sont stockés par défaut dans le répertoire
   ARToolKit/bin/Data/ et leur noms suivent par convention la forme patt.monPattern.
   Un exécutable (ARToolKit/bin/mk_patt) est fourni avec la librairie et permet de
   générer des fichiers de calibre. Cet utilitaire nécessite de filmer une réalisation du pattern
   pour générer le calibre. La documentation de la librairie conseil de réaliser le calibre dans
   les mêmes conditions d'éclairage que les conditions d'utilisation. Cette méthode permet de
   prendre en compte et donc de compenser les distortions de la caméra. Il est donc nécessaire
   d'effectuer une calibration avant d'enregistrer nos propres patterns.
   Ce mode de génération de calibre est contraignant mais offre de bons résultats, notamment
   dans des applications demandant un nombre important de patterns dans des conditions
   particulières (éclairage, environnement).
   Le groupe GDC (http://www.cs.utah.edu/gdc/) a cependant développé le programme
   patternMaker spécialement pour la librairie ARToolkit. Cet outil permet de générer
   automatiquement des milliers de patterns et leurs calibres. Le contenu des patterns
   générés est un damier 4x4 aléatoire. Le calibre est cette fois générique et n'est donc pas
   adapté aux conditions d'utilisation.
   Un pattern doit nécessaire être composé d'un carré noir délimitant le motif, de plus les
   motifs ne doivent pas comporter des détails trop précis car en interne la librairie utilise un
   damier de 16x16 pour reconnaître les motifs. Enfin si l'application nécessite de connaître
   l'orientation de la caméra, le motif ne doit pas présenter de symétries.

2.4 Reconnaissance de plusieurs Pattern
   La librairie permet de reconnaître plusieurs patterns dans la même image, il est donc tout
   à fait possible de créer des applications complexes. Chaque pattern apparaissant à l'image
   doit au préalable être enregistré dans le système. Il est possible de faire interagir les
   différents pattern entre eux afin de créer de nouvelles fonctions.

2.5 Performances
   Le site consacré à la librairie propose quelques mesures concernant ses performances.
   Nous avons réalisé nos propres tests avec l'environnement suivant.

6/13
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Nicolas Martenet                                   Patrick Terreaux                                Timothée Maret

      •   ARToolkit 2.71.2
      •   Caméra Fire-i de Unibrain
      •   Pattern 4x4_384_19.gif obtenu avec le PatternMaker (taille 4cm x 4cm) [GDC]
      •   Mesures effectuées à l'intérieur
      •   Programme de test « mesures »

2.5.1 Evaluation de la mesure de distance
   Dans cette première mesure nous évaluons les capacités de la librairie à mesurer la
   distance entre le pattern et la caméra. Nous avons fait ces mesures dans 4 configurations
   différentes en fonction de la calibration de la caméra et du pattern utilisé.
   Nous avons utilisé la calibration par défaut livrée avec la librairie (correspond aux
   colonnes « sans calib ») et par la suite la calibration simple.
   Le calibre générique est obtenu directement par le programme PatternMaker tandis que le
   calibre spécifique est obtenu avec l'utilitaire mk_patt et prend donc en compte la
   calibration de la caméra.
   Nous effectuons ce test pour montrer qu'une calibration de la caméra est nécessaire pour
   une utilisation optimale de la librairie.

                           Calibre générique                              Calibre spécifique
   D1 ref[mm]   D2 sans calib [mm] D3 avec calib [mm] D4 sans calib [mm] D5 avec calib [mm]
            100                 90.5                   110                       90          105
            200                  173                   209                     175           206
            300                  255                   310                     257           307
            400                  337                   408                     335           407
            500                  420                   510                     420           507
            600                  495                   610                     500           605
            700                  580                   712                     580           705
                                Table 2: Mesures du calcul de la distance

   Nous avons reporté les erreurs de mesure dans un graphique.

                                                   Erreur de distance
                            120
                            110
                            100
                            90
                            80
              Erreur [mm]

                            70                                                                 |D2-D1|
                            60                                                                 |D3-D1|

                            50                                                                 |D4-D1|
                                                                                               |D5-D1|
                            40
                            30
                            20
                            10
                              0
                                  100   200      300         400        500        600   700

                                                       Référence [mm]
                                              Illustration 2: Erreur de distance

Rapport AR Toolkit                                                                                           7/13
Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
Projet Interfaces Multimodales            Semèstres d'été 2006                         Université de Fribourg

   Nous pouvons faire ressortir de ces mesures deux conclusions intéressantes.
   En comparant les courbes avec et sans calibration1 nous pouvons constater que l'opération
   de calibration permet d'éliminer la variation de l'erreur en fonction de la distance. L'erreur
   résiduelle (~10mm) n'est pas représentative de la qualité de la librairie mais de notre
   méthode de mesure. L'opération de calibration est donc nécessaire pour garantir une bonne
   précision.
   En comparant les courbes en fonction de la méthode permettant d'obtenir le calibre 2 nous
   pouvons remarquer que l'utilisation d'un calibre générique ou spécifique n'a que très peu
   d'influence . Dès lors une application utilisant une génération automatique de calibre est
   envisageable.

2.5.2 Mesure de la distance maximale
   Nous avons réalisé des tests d'évaluation de la distance maximale d'utilisation en fonction
   de la taille du pattern. Les résultats de ces tests sont inutilisables car les mesures
   dépendent fortement du contexte. Nous listons ci-dessous les différents facteurs que nous
   avons remarqué et qui contribuent aux variations de mesure.
        •   la luminosité
        •   l'uniformité du fond
        •   la calibration de la caméra
        •   la qualité de la caméra
   C'est pourquoi nous ne présentons pas nos mesures mais celles données sur le site de la
   librairie. Dans tous les cas, nous pensons que des tests supplémentaires spécifique à
   l'application doivent être effectués afin d'en assurer le bon fonctionnement.

                         Illustration 3: Distance maximale de détection issu de [artDoc]

1 |D2-D1| et |D4-D1| avec |D3-D1| et |D5-D1|
2 |D2-D1| avec |D4-D1| et |D3-D1| avec |D5-D1|

8/13
Nicolas Martenet                         Patrick Terreaux                         Timothée Maret

2.5.3 Mesure d'angle
   La dernière mesure concerne l'angle avec lequel le pattern peut encore être détecté. Pour
   les mêmes raisons que le point précédent nous présentons les mesures disponibles sur le
   site de la librairie.

                           Illustration 4: Angles de détection issu de [artDoc]

   Nous pouvons voir que le pattern est détecté même avec un angle proche de 90°, il est donc
   possible d'effectuer de grands mouvement de caméra.

3 Application de démonstration

3.1 Sujet
  Le but d'une application utilisant la réalité augmentée est de présenter à l'écran une
  information supplémentaire à l'utilisateur. De plus nous désirons mettre en évidence
  l'utilisation d'une caméra non seulement comme entrée d'images mais également comme
  moyen d'interaction pour l'utilisateur.
  Pour la démonstration, nous avons décidé d'améliorer les catalogues de meubles. Ces
  catalogues contiennent généralement une image du produit, un canapé par exemple, puis
  un descriptif sur ses mesures, les couleurs disponibles, etc... Cependant, il est difficile pour
  le client de se rendre compte de la vision réelle du produit avec la couleur désirée.
  Actuellement la seule solution est de se rendre sur place pour inspecter le meuble sous tous
  les angles.
  Avec notre catalogue, le client aura la possibilité de visualiser les meubles avec la texture
  désirée et peut l'observer sous différents angles et différentes tailles.

3.2 Fonctionnement
   Les clients recoivent par chez eux le catalogue traditionnel avec quelques ajouts.
      •   Sur chaque page représentant un article, un pattern est ajouté
      •   Une télécommande est disponible à la fin du catalogue.
      •   Un CD est ajouté pour permettre au client d'utiliser l'application.
   Le client doit simplement disposer d'une caméra (type webcam) reliée à l'ordinateur.

Rapport AR Toolkit                                                                           9/13
Projet Interfaces Multimodales        Semèstres d'été 2006                   Université de Fribourg

   Après avoir installé et exécuté le programme, le client pourra intéragir avec le catalogue à
   l'aide de sa caméra et pourra ainsi visualiser en trois dimensions son meuble. Les
   différentes fonctions de notre programme sont décrites aux points suivants.

3.2.1 Visualisation
   Pour visualiser le meuble désiré, il suffit de placer la caméra de manière à ce que le motif
   soit entièrement visible à l'écran. Le meuble apparaîtra alors au-dessus du motif.

                                 Illustration 5: Visualisation d'un meuble

3.2.2 Changement de couleur
   Une table, par exemple, peut être disponible en plusieurs couleurs.
   Pour changer la texture d'un objet:
        ●   le meuble doit être visible
        ●   pressez la touche 'n' ou faire un clic avec la caméra
   La fonction clic de la caméra permet             d'envisager la caméra comme unique moyen
   d'interaction, sans passer par le clavier.

3.2.3 Agrandissement/Rétrécissement
   La taille de chaque meuble peut être facilement modifiée afin d'en saisir tous les détails.
   Ainsi quelque soit la taille du motif il est possible d'avoir un meuble à une taille
   correctement visible.
   Pour changer la taille d'un objet:
        ●   le meuble doit être visible

10/13
Nicolas Martenet                        Patrick Terreaux                       Timothée Maret

      ●   pressez la touche 'o' pour agrandir ou masquer le '+' de la télécommande
      ●   pressez la touche 'p' pour rétrécir ou masquer le '-' de la télécommande
   La télécommande est un ensemble de motifs particuliers qui peuvent être déplacés afin
   d'être disponible pour chaque meuble. Cette commande est un autre moyen d'interaction
   avec le système sans passer par le clavier.

3.2.4 Sélection du mobilier
   Lorsque un meuble convient à l'utilisateur, celui-ci a la possibilité de l'ajouter à une
   commande.
   Pour ajouter un meuble à la commande:
      ●   le meuble doit être visible
      ●   pressez la touche 's'.

3.2.5 Afficher la commande
   Pour afficher la commande actuelle:
      ●   pressez la touche 'b'

3.3 Evenement clavier
   Voici un résumé des différentes actions possibles avec le clavier.
      ●   B, b: affichage de la commande actuelle
      ●   N, n: changement de la texture des meubles visibles
      ●   O, o: agrandissement des meubles visibles
      ●   P, p: retrecissement des meubles visibles
      ●   S, s: ajout des meubles visibles à la commande

3.4 Evenement caméra
   Nous utilisons la caméra comme périphérique permettant de se passer de clavier/souris.
   Nous avons utilisé deux moyens distincts pour que la caméra puisse interagir avec le
   système, soit par des mouvements particuliers, soit avec l'utilisation de motifs.
   L'utilisateur peut donc se passer des moyens classiques pour utiliser cette application.
      ●   Clic: changement de la texture des meubles visibles
      ●   Masquage du '+': agrandissement des meubles visibles
      ●   Masquage du '-': retrecissement des meubles visibles

3.5 Création des meubles en 3 dimensions
   Une partie additive à la librairie permet de charger des fichiers VRML.

Rapport AR Toolkit                                                                     11/13
Projet Interfaces Multimodales     Semèstres d'été 2006                Université de Fribourg

3.5.1 VRML
   Le Virtual Reality Modeling Language (abrégé en VRML) est un langage de
   programmation spécialisé dans la représentation d'univers virtuels en 3 dimensions. Ce
   langage interprété est une norme internationale ISO et les fichiers VRML ont
   habituellement pour extension .wrl.
   Les programmes VRML peuvent décrire des formes simples (points, lignes, polygones) ou
   complexes (sphères, cubes, cônes, cylindres...), du texte, des images, des animations, des
   éclairages, des sons, des hyperliens, ainsi que leur agencement dans l'espace, leur texture,
   leur couleur, leur matériau...

3.5.2 Modélisation
   Nous avons modélisé nos meubles à l'aide de 3D Studio Max. Ci-dessous, le logo de
   l'université de fribourg.

   Ensuite il suffit d'exporter le résultat au format VRML:

12/13
Nicolas Martenet                         Patrick Terreaux                       Timothée Maret

4 Conclusions
   Notre exploration de la librairie s'est déroulée sans difficultés particulières, l'installation
   s'est passée sans problêmes et les premiers tests ont pus êtres effectués rapidement. La
   librairie est bien documentée et a pu être installée sans problêmes sur différentes
   plateformes.
   Lors des tests nous avons pu remarquer que les performances de la librairie sont
   difficilement quatifiables car elles dépendent fortement du contexte de l'application.
   La librairie est construite de manière ouverte, ce qui permet d'envisager une large palette
   d'applications. L'application de démonstration que nous avons implémentée démontre
   l'utilisation de la librairie dans un exemple concret comme périphérique d'entrée et pour
   ajouter de l'information (meilleure visualisation).
   La librairie pourrait être testée avec un masque de visualisation ce qui élargirait les
   applications possibles.

5 Annexes

A Références
   [artDoc]      Documentation de la librairie ARToolKit
                 http://www.hitl.washington.edu/artoolkit/documentation/index.html
   [GDC]         Projet PatternMaker du groupe GDC
                 http://www.cs.utah.edu/gdc/projects/augmentedreality/index.html
   [glut]        Description de la librairie GLUT
                 http://raphaello.univ-fcomte.fr/IG/OpenGL/Glut.htm
   [openGL]      Description de la spécification OpenGL
                 http://fr.wikipedia.org/wiki/OpenGL

B CD du projet
   Le CD du projet contient tous les documents relatifs à ce projet.
   Le dossier « Programme » contient la librairie ARToolKit, le programme PatternMaker et
   notre programme de démonstration ainsi que le programme utilisé pour les mesures.
   Le dossier « Rapport » contient le présent document, les indications pour utiliser notre
   programme de démonstration, les images qui ont servi au catalogue et la présentation du
   projet.
   Enfin le dossier « Video » contient la vidéo de démonstration de notre application.

                               Illustration 6: Arborescence du CD

Rapport AR Toolkit                                                                         13/13
Vous pouvez aussi lire