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é 2006Table 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...............................................................................................................................13Nicolas 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/13Projet 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/13Nicolas 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/13Nicolas 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/13Projet 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/13Nicolas 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/13Projet 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/13Nicolas 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/13Projet 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/13Vous pouvez aussi lire