Augmented Reality Projet: Multimodal Interfaces Semestre d'été 2006
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Augmented Reality Projet: Multimodal Interfaces Réalisé par: Nicolas Martenet Patrick Terreaux Timothée Maret 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
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
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
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
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
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
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