25
ENSICAEN 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique - 1 re année Rapport de mini-projet Réalité Augmentée à l'Ensicaen Site web : http://projetar.renous.fr Julien GOBERT Nicolas RENOUS Encadrant de projet : M. Vincent ROULLIER 2009 - 2010

1 La réalité augmentée

Embed Size (px)

Citation preview

Page 1: 1 La réalité augmentée

ENSICAEN6, bd maréchal JuinF-14050 Caen cedex 4

Spécialité Informatique - 1re année

Rapport de mini-projet

Réalité Augmentée à l'EnsicaenSite web : http://projetar.renous.fr

Julien GOBERTNicolas RENOUS

Encadrant de projet : M. Vincent ROULLIER

2009 - 2010

Page 2: 1 La réalité augmentée

Table des matières

Introduction...................................................................................................................31 La réalité augmentée : Généralités............................................................................4

1.1 Définitions.............................................................................................................41.2 Historique.............................................................................................................51.3 Domaines d'utilisation...........................................................................................7

1.3.1 Médical.........................................................................................................71.3.2 Militaire.........................................................................................................81.3.3 Industriel.......................................................................................................91.3.4 Marketing et commercial............................................................................101.3.5 Navigation...................................................................................................111.3.6 Domaine vidéo-ludique..............................................................................12

2 La librairie ARToolkit................................................................................................132.1 Présentation.......................................................................................................132.2 Principe de fonctionnement................................................................................14

2.2.1 Algorithme de détection : principe général.................................................142.2.2 Binarisation.................................................................................................152.2.3 Normalisation.............................................................................................152.2.4 Identification du marqueur..........................................................................152.2.5 Gestion de la distorsion..............................................................................16

2.3 Utilisation............................................................................................................182.3.1 Installation de la librairie.............................................................................182.3.2 Création d'un pattern..................................................................................182.3.3 Conception de l'objet 3D............................................................................192.3.4 Association du pattern avec l'objet.............................................................20

3 Portabilité sous Flash : FLARToolkit........................................................................213.1 Présentation de la librairie FLARToolkit.............................................................213.2 Environnement de développement ...................................................................21

3.2.1 Récupération des librairies.........................................................................213.2.2 Installation et lancement............................................................................21

3.3 Développement..................................................................................................223.3.1 Création du projet.......................................................................................223.3.2 Structure de l'application............................................................................223.3.3 Interactivité.................................................................................................22

Conclusion..................................................................................................................24 Notes et références externes.....................................................................................25 Annexes......................................................................................................................25

Page 3: 1 La réalité augmentée

Introduction

Avec la démocratisation des périphériques nomades tels que les téléphones combinant une caméra, une bonne puissance de calcul voire même des outils tels qu'un GPS ou une boussole ; le grand public montre actuellement un grand intérêt pour la réalité augmentée.

Dans ce cadre, l'objectif de notre projet de fin de première année de cycle d'ingénieur informatique à l'ENSICAEN, tel que présenté par notre encadrant Mr Vincent ROULLIER (chercheur au département image du GREYC), est d'expliquer le principe de fonctionnement de la réalité augmentée et de réaliser, à partir du kit de développement ARToolkit, une première application de réalité augmentée.

3/25

Page 4: 1 La réalité augmentée

1 La réalité augmentée : Généralités1.1 Définitions

Deux définitions sont admises pour caractériser la réalité augmentée.

L'une d'elles a été énoncée par Ronald Azuma, chercheur à l'université de Caroline du Nord, en 1997 dans une étude présentant les nombreuses innovations à venir dans ce domaine. La définition d'Azuma considère qu'un système de réalité augmentée doit respecter trois règles fondamentales [1] :

• Combiner le réel et le virtuel• Interagir de manière interactive (en temps réel)• Être enregistré en 3 dimensions

Cette définition exclut donc les simples collages en deux dimensions qui ne respectent pas la cohérence 3D, ainsi que la composition en post-production ( effets spéciaux par exemple ) qui ne sont pas en temps réel.

La seconde, plus ancienne de 3 ans, a été définie par Paul Milgram et Fumio Kishino et baptisée sous le nom de Continuum de Réalité-Virtuelle de Milgram [2] ( un continuum est un ensemble d'éléments tels que l'on peut passer de l'un à l'autre de façon continue ). Ce dernier relie le réel à l'environnement purement virtuel en ne les considérant pas comme opposés mais complémentaires. Cela introduit le terme de réalité mixte et les deux notions de réalité augmentée (plus près de l’environnement réel) et de virtualité augmentée (plus près de l’environnement virtuel).

Le concept de réalité augmentée vise donc à compléter notre perception du monde réel, en y ajoutant des éléments fictifs, non perceptibles naturellement. Ce concept est rendu possible par un système capable de faire coexister spatialement et temporellement un monde virtuel avec l'environnement réel.

Cette coexistence a pour objectif l'enrichissement de la perception de l'utilisateur de son environnement réel par des augmentations visuelles, sonores ou haptiques - néanmoins la superposition d'images virtuelles aux images réelles reste actuellement le domaine le plus répandu.

La réalité augmentée est interdisciplinaire et s'appuie sur le traitement du signal, la vision artificielle, la synthèse d'images, les interfaces homme-application et les technologies nomades. Ses applications sont multiples et touchent de plus en plus de domaines, qui seront détaillés dans la suite après un bref historique.

4/25

Page 5: 1 La réalité augmentée

1.2 Historique• 1966: Ivan Sutherland invente le premier casque qui combine la vue de la

réalité et une image de synthèse [3]. L'affichage était effectué par des tubes cathodiques miniatures et le suivi des mouvements de la tête était assuré par un bras mécanique lié au casque.

• 1975: Myron Krueger créée Videoplace, un dispositif permettant aux utilisateurs d'interagir avec des objets virtuels via une caméra et un projecteur.

• 1979: McDonnell Douglas développe un casque projetant des informations utiles pour les pilotes de chasse directement sur leur visière [4].

5/25

Page 6: 1 La réalité augmentée

• 1997: Steve Feiner présente la Touring Machine, le premier système itinérant de réalité augmentée combinant un affichage sur les lunettes à la vue réelle. Le système intègre un GPS et un acces internet par ondes radio.

• 1999: Hirokazu Kato met à disposition ARToolkit, la première librairie open-source et multi-plateformes dédiée à la création d'interfaces de réalité augmentée.

• 2000: Bruce H. Thomas développe ARQuake, le premier jeu basé sur la réalité augmentée, permettant de jouer à Quake dans un univers réel grâce à la combinaison de caméras, capteurs et GPS.

• 2008-2009: Lancement de Wikitude Drive, système de navigation AR pour plateformes Android basé sur NyARToolkit. Il s'agit là de la première application nomade de réalité augmentée disponible pour le grand public. Peu après, des applications similaires furent mises à disposition sur l'iPhone d'Apple.

6/25

Page 7: 1 La réalité augmentée

1.3 Domaines d'utilisation

A l’heure actuelle, la réalité augmentée se démocratise à grande vitesse sur internet. C’est un plus commercial car l’internaute se retrouve dans son univers avec les produits que les sociétés lui proposent. Les applications développées sont adaptées aux jeunes comme aux adultes. Les plateformes utilisées sont également différentes. Une des plus utilisée est ARToolkit et son plugin FLARToolkit qui permet de développer des applications directement avec Adobe Flash.

Pour autant, ces dernières ne constituent qu’une partie de l’utilisation du principe de réalité augmentée. En effet, la médecine, l’armée et l’industrie en ont été les pionniers dans des domaines d'assistance ou d'aide à la décision.

1.3.1 Médical

Dans ce domaine, les utilisations de la réalité augmentée sont de deux types. Le premier consiste à faciliter les soins et le second à les rendre possibles. En effet, certaines opérations ne sont possibles qu’avec l’aide de la réalité augmentée, certains risques étant fortement diminués grâce à une modélisation 3D. Grâce à des technologies non intrusives, il est possible de soigner les patients avec beaucoup de moins de risques (le cancer notamment). Pour le moment, la réalité augmentée permet surtout de valoriser les outils d’imagerie médicale. En revanche, les axes de développement sont multiples. La réalité augmentée est également susceptible de s’appliquer aux sensations tactiles et auditives.

Voici un exemple avec les outils développés par l’IRCAD (Institut de Recherche contre les Cancers de l'Appareil Digestif). En effet, comme on peut le voir sur les images ci-dessous, il est possible de superposer une modélisation 3D des organes issue d’un scanner ou d’une IRM sur l’image du patient.

7/25

Page 8: 1 La réalité augmentée

1.3.2 Militaire

Dans le domaine militaire, l’utilisation la plus fréquente est l’ajout d'un affichage tête haute ou Head-Up Display (HUD) intégré à la vitre de l'habitacle ou maintenant directement dans les casques des pilotes. L'affichage tête haute consiste à superposer des informations nécessaires au pilotage, à la navigation ou à la réalisation de la mission sur l’environnement extérieur. Il permet au pilote de surveiller son environnement en même temps que les informations fournies par ses instruments de bord.

La conception de ce type de casque doit répondre à de nombreuses exigences : fiabilité, grande précision, compatibilité avec le cockpit pour le pilotage à vue, poids raisonnable, résistance aux intempéries et aux conditions extrêmes, sécurité.

Cette technologie a par la suite été mise à disposition du grand public dans les voitures haut de gamme avec un affichage tête haute directement sur le pare-brise qui permet de retrouver les informations du tableau de bord sans quitter les yeux de la route. Désormais, combinés à des caméras et autres capteurs, ces systèmes intègrent de nombreuses autres fonctionnalités augmentant la sécurité et le confort ; comme des alertes de franchissement de ligne blanche, de collision, la limitation de vitesse en cours (reconnaissance des panneaux), les informations fournies par un GPS ou même des assistances de parking.

8/25

Page 9: 1 La réalité augmentée

1.3.3 Industriel

Le but d’utiliser ce principe dans le domaine de l’industrie est évidemment d’améliorer la productivité et de réduire les coûts. De plus, cela permet d'intégrer de nouveaux produits en cours de conception dans leur environnement d’utilisation, comme par exemple insérer une voiture virtuelle dans un trafic réel ou comme ci-dessous un tram dans un modèle de ville miniature positionné à l'aide de marqueurs.

Certaines entreprises développent des outils pour la conception de produits comme des lunettes d'aide à la décision, afin de combiner la vision d’un produit en fabrication avec de nouvelles pièces ou afin de guider l’utilisateur via la superposition d’un manuel de montage à la vue réelle.

9/25

Page 10: 1 La réalité augmentée

1.3.4 Marketing et commercial

Les commerciaux ont également compris tout l'enjeu que l'on peut tirer de la réalité augmentée. Certaines marques proposent en effet une publicité indirecte en intégrant un marqueur sur un de leur produit, ce dernier permettant de visualiser un contenu 3D sur internet. Ce faisant, elles profitent du phénomène de mode autour de ce principe se révélant très intéressant d’un point de vue financier pour les sociétés. Par ailleurs, il est également possible d'intégrer en temps réel de la publicité à la télévision lors d'événements sportifs retransmis à des emplacements incompatibles avec les affichages standards.

Certaines marques proposent également aux consommateurs d'enrichir leur expérience avant-achat, en intégrant des meubles à son environnement en temps réel ou en essayant virtuellement des vêtements.

10/25

Page 11: 1 La réalité augmentée

1.3.5 Navigation

Ce domaine est le plus développé pour le grand public, les solutions proposées profitant de l'essor des technologies nomades. D’abord utilisée sur ordinateur, la technologie de réalité augmentée est aujourd’hui très répandue sur les systèmes embarqués et les téléphones de troisième génération.

La réalité augmentée permet d’enrichir l’expérience de l’utilisateur dans le domaine de la navigation. La géolocalisation permet en effet de superposer des informations sur le lieu où l'on se trouve aux images recueillies par une caméra.

Les applications sont alors diverses : tourisme, astronomie, position du soleil, reconnaissance de bâtiments.

Le support les plus prisés par les concepteurs d'applications restent bien entendu les téléphones dernière génération combinant une caméra, un GPS, une connexion internet haut-débit voire une boussole, comme l'iPhone d'Apple ou les téléphones basés sur la plateforme Android. Les principales problématiques de ces systèmes demeurent l'autonomie.

11/25

Page 12: 1 La réalité augmentée

1.3.6 Domaine vidéo-ludique

La réalité augmentée permet également d'accroitre l’interaction entre le joueur et la machine et apporter une nouvelle dimension aux jeux vidéos. On peut ainsi imaginer un jeu en réseau dans un environnement réel avec des objets virtuels, ou bien se servir d’objets réels comme support pour un jeu de plateau virtuel.

Cette technologie trouve enfin sa place lors de retransmissions sportives, où des systèmes permettent de fournir en temps réel des informations utiles au spectateurs comme la ligne virtuelle du record à battre ou l'affichage de la ligne de "scrimmage" lors d’un match de football américain.

12/25

Page 13: 1 La réalité augmentée

2 La librairie ARToolkit2.1 Présentation

ARToolkit est une librairie de fonctions C/C++, open-source et multi-plateformes dédiée à la création d'interfaces de réalité augmentée. Elle a été développée initialement par le docteur Hizokazu Kato de l'Université d'Osaka en 1999 et est toujours mise à jour par le Human Interface Technology Laboratory ( HIT Lab ) de l'Université de Washington. La dernière version en date est la 2.72.1 publiée le 18 Mai 2007. L'utilisation est libre dans le cadre d'un usage non-commercial. Des licences commerciales sont disponibles sous le nom ARToolWorks.

A l'inverse des effets spéciaux utilisés au cinéma, les principales problématiques de la réalité augmentée proviennent du fait que les mouvements de caméra et de la scène ne sont pas connues à l'avance. L'enrichissement de la réalité doit se faire en temps réel et à la volée lors de l'acquisition des images sans aucune information de départ sur l'environnement. Afin de donner l'illusion que les objets réels et virtuels appartiennent au même monde, il faut pourtant tisser un lien entre eux afin de les positionner correctement ( coordonnées, orientation, échelle ) par rapport aux objets filmés.

Bien que plusieurs méthodes peuvent être imaginées pour cela, ARToolkit utilise un système de marqueurs ( « Pattern » ). Un marqueur est un motif simple sur fond blanc entouré d'un cadre noir. L'algorithme doit tout d'abord détecter puis identifier ce marqueur. Il en déduit en temps réel sa position et son orientation par rapport à la caméra. Cet algorithme sera détaillé dans la partie suivante.

Par la suite, l'ajout d'objets virtuels se fait par rapport au repère en trois dimension dont l'origine, la taille et les directions sont calculés image par image à partir du marqueur.

Exemples de marqueurs reconnaissablespar ARToolkit

13/25

Page 14: 1 La réalité augmentée

2.2 Principe de fonctionnement2.2.1 Algorithme de détection : principe général

L'algorithme de détection d'ARToolkit consiste en une suite d'opérations sur

chaque image du flux vidéo afin d'une part de repérer la présence d'un marqueur, puis de l'identifier parmi les différents marqueurs chargés dans l'application ( dans le cadre d'une application multi-marqueurs ). Il fonctionne ainsi :

1. La caméra capture la vidéo et l'envoie vers l'ordinateur ;2. Le programme binarise l'image puis recense tous les cadres noirs dans

chaque image de la vidéo ;3. Pour chaque cadre trouvé, le programme utilise des formules mathématiques

pour déterminer sa position et son orientation vis à vis de la caméra.4. Le motif présent à l'intérieur de chaque cadre est comparé avec les patterns

chargés dans le programme afin de lui associer l'augmentation virtuelle qui lui est associée ;

5. Cette augmentation, qui prend généralement la forme d'un objet 3D, est alors générée à partir de la position et de l'orientation du marqueur et est superposée à l'image capturée. Sa position, orientation et échelle sont alors ajustés par rapport au marqueur en temps réel.

Principe de fonctionnement, Traduit de la doc ARToolkit

14/25

Page 15: 1 La réalité augmentée

2.2.2 Binarisation

La première étape fondamentale de l'identification est donc la binarisation de l'image issue de la caméra en noir et blanc, sans aucune nuance de gris. Cette dernière est évaluée selon un paramètre nommé threshold (frontière) configuré en en-tête du programme. Ce dernier converti tout d'abord le flux en niveaux de gris, et tous les pixels dont la valeur est inférieure au threshold seront noirs et inversement.

2.2.3 Normalisation

Bien entendu dans la majorité des cas le motif sera déformé par l'orientation du marqueur vis-à-vis de la caméra. C'est là que le carré noir trouve toute son utilité, car à partir de la position de chacun de ses sommets il est possible de normaliser le motif afin de l'identifier. L'image est également redimensionnée.

Une matrice de rotation 3D est alors générée. Elle sera utile notamment lors de l'ajout d'éléments virtuels sur l'image.

2.2.4 Identification du marqueur

Le motif redressé est ensuite comparé aux pattern chargés dans le programme. Ces derniers sont un fichier texte où chaque pixel est représenté par sa valeur en niveaux de gris (entre 0 et 255). Les degrés de similitude ou « confidence » sont ensuite calculés par rapport à chaque patt dans 4 sens différents, et le plus haut est retenu. Cela permet ensuite de déterminer et générer l'augmentation associée.

15/25

Page 16: 1 La réalité augmentée

2.2.5 Gestion de la distorsion

Un des problèmes majeurs lorsqu'on récupère l'image de la caméra est le phénomène de distorsion inhérent au matériel utilisé. En effet l'image n'est pas un rectangle parfait à cause de la lentille, et cela fausse le calcul des coordonnées et empêche une bonne détection du marqueur. Un filtre a donc a donc été implémenté afin de corriger ce phénomène avant de récupérer le marqueur.

16/25

Page 17: 1 La réalité augmentée

L'algorithme transforme ainsi chaque point de l'image capturée par la caméra grâce aux formules ci-dessous :

Les coefficients peuvent être calculés par étalonnage grâce à un utilitaire fourni afin d'obtenir le résultat escompté. Ils sont ensuite stockés dans camera_para.dat au format binaire ( = non lisible pour l'humain ).

17/25

d 2=x1−x02 y1− y0

2

p=1− f⋅d 2

x '=p x1−x0x0

y '= p y1− y0 y0

x0, y0 :Origine de la distorsionx1, y1: Point de l ' image que l ' oncherche à corriger

x ' , y ' : Point après correction

Page 18: 1 La réalité augmentée

2.3 Utilisation2.3.1 Installation de la librairie

Première étape mais non des moindres : l’installation d'ARToolkit et des outils pré-requis. Nous avons utilisé pour nos tests la dernière version en date, la 2.72.1 pour Windows. Voici les autres outils à télécharger :

• DSVideoLib version 0.0.8b : interface de communication avec le driver de la webcam ;

• GLUT (OpenGL utility toolkit) version 3.7.6 : une bibliothèque permettant de gérer l’affichage de fenêtres vidéo OpenGL à installer dans le dossier C:/windows/system32/ et dans l’environnement de développement ;

• DirectX Runtime : une collection de bibliothèques destinées à la programmation d’applications multimédia ;

• OpenVRML (Virtual Reality Markup Language) version 0.14.3 : un gestionnaire permettant d'importer et de positionner des objets 3D. L'installation est très aisée, il suffit d'extraire tous les fichiers de la librairie

dans un dossier de son choix puis suivre les étapes décrites dans la documentation [5] pour les outils complémentaires.

La librairie est fournie avec un certain nombre de codes sources d'exemple présentant la plupart des fonctions utilisables. Le fichier de projet Visual Studio est également fourni et permet de générer très facilement l'ensemble des exécutables.

2.3.2 Création d'un pattern

Divers outils permettent de créer un pattern. Nous avons pour notre part utilisé Marker Generator une application Air mise à disposition par Saqoosha.net permettant de générer un fichier .patt à la dimension souhaitée.

18/25

Page 19: 1 La réalité augmentée

Nous avons ainsi imprimé notre propre motif avec le texte « Ensicaen » incrusté en bas. Il s'avère que la reconnaissance d'un texte est moins précise que celle d'un motif qui serait aligné au centre, nous avons donc incrusté le texte en bas afin que le programme n'ait aucune difficulté à repérer le sens du motif.

Le rapport idéal entre la complexité et la fiabilité est obtenue pour un pattern de 16 pixels * 16 pixels.

2.3.3 Conception de l'objet 3D

Nous avons ensuite réalisé un objet en 3 dimensions à partir du logo de l'ENSICAEN. Pour cela nous avons utilisé le logiciel de modélisation Blender qui est mis à disposition librement sous licence GNU.

Ce logiciel propose, entre autres, un export au format WRL. Il s'agit d'un langage de modélisation d'univers en 3 dimensions. Il intègre la position et la forme des objets, ainsi que leurs couleurs ou textures et un éclairage.

Par ailleurs, il est même possible de modifier directement ce fichier avec n'importe quel éditeur de texte afin de modifier les matériaux ou les positions des objets. Cela s'avère même obligatoire car certains objets comme l'éclairage résistent mal à l'export ( sa position est réinitialisée automatiquement à l'origine ).

19/25

Page 20: 1 La réalité augmentée

2.3.4 Association du pattern avec l'objet

Une fois le motif et l'objet 3D réalisés, il suffit de les combiner dans une application. Nous avons pour cela utilisé un des exemples fournis avec la librairie : simpleVRML.exe.

Celui-ci est capable de reconnaître marqueurs différents. Les associations sont déterminées dans le fichier object_data_wrml. Chaque fichier patt y est lié à un objet suivant ce modèle :

Fichier object_data_vrml Fichier ensi.dat#Number of patterns to be recognized2

# Snow ManVRML Wrl/snoman.datData/patt.kanji80.0 # Taille du marqueur réel0.0 0.0 # Décalage du marqueur

# Logo ENSIVRML Wrl/ensi.datData/patt.ensi80.00.0 0.0

ensi.wrl0.0 0.0 50.0 # Translation90.0 1.0 0.0 0.0 # Rotation25 25 25 # Scale

20/25

Page 21: 1 La réalité augmentée

3 Portabilité sous Flash : FLARToolkitAfin de développer une seconde application de réalité augmentée, nous avons

téléchargé la librairie de fonctions FLARToolkit. Il s’agit du portage d'ARToolkit codé en POO dans le langage ActionScript d’Adobe Flash (proche du langage Java).

Nous avons opté pour ce choix car une application Flash est beaucoup plus portable notamment sur internet. Cela apporte un plus dans le cadre de notre projet dont l'une des exigences est le développement d’un site Web. L’utilisateur ne doit posséder qu’un navigateur internet et Flash Player (ainsi qu'une imprimante) afin d'avoir un premier aperçu de la réalité augmentée.

Après quelques tests, le seul défaut qui nous est apparu est la lenteur lors de l’exécution. Le rendu des mouvements du marqueur est saccadé. En effet, Flash n’est pas destiné prioritairement à la gestion d'objets 3D.

3.1 Présentation de la librairie FLARToolkitLa librairie FLARToolkit est très proche de la librairie ARToolkit. Elle contient

les fonctions de chargement des patterns, du paramétrage de la caméra ou encore des fonctions de détection du marqueur. Les dernières versions permettent la gestion d’un ou plusieurs marqueurs. Cependant, la librairie ne contient pas les fonctions nécessaires à la création et à la gestion d’éléments 3D. Il faut donc ajouter une librairie pour cela. Nous avons choisi « Papervision3D » (PV3D).

3.2 Environnement de développement 3.2.1 Récupération des librairies

Afin de développer avec la librairie FLARToolkit, nous avons utilisé le logiciel propriétaire d’Adobe, Flash Builder 4 disponible en version d'évaluation [6].

Pour installer les librairies FLARToolkit 2.5.3 [7] et Papervision3D 2.0.883 [8] nous avons installé le gestionnaire de versions Tortoise SVN 1.6.8 [9].

3.2.2 Installation et lancement

Les marqueurs générés pour ARToolkit conviennent également à cette version. Nous réutilisons donc le fichier pattern créé précédemment.

Enfin, nous créons un nouveau projet Action Script dans Flash Builder, où nous importons les dossiers des librairies FLARToolkit et Papervision3D comme sources.

21/25

Page 22: 1 La réalité augmentée

3.3 Développement

3.3.1 Création du projet

Le fichier source est composé d’un constructeur appelé au démarrage. Ce constructeur appelle les fonctions d’initialisation.

3.3.2 Structure de l'application

Dans un premier temps, on procède au chargement du fichier .pat. Après avoir créé la caméra, on génère les objets 3D puis on les insère dans la scène. Dans notre cas nous réutilisons le logo de l’ENSICAEN créé auparavant sous Blender. Il a été exporté cette fois au format Collada ( extension .dae ). En effet la bibliothèque Papervision3d permet de charger ce type de fichier (objects.parsers.DAE).

Le système de fonctionnement est basé sur un écouteur positionné sur l’événement « ENTER_FRAME ». Lorsque la caméra capture une nouvelle image, une fonction exécute le schéma ci-contre.

3.3.3 Interactivité

A ce stade, l’objet 3D que nous avons créé se positionne en temps réel sur le marqueur lorsque celui-ci apparaît à la caméra. Afin de rendre l’animation interactive, nous allons ajouter plusieurs objets et fonctions.

Tout d’abord, nous ajoutons des ombres au logo pour améliorer le réalisme. On ajoute également un plan horizontal et un plan vertical légèrement transparents. Ainsi, sans occulter l’image filmée par la caméra, nous obtenons une scène plus esthétique.

Par ailleurs, nous ajoutons une sphère directement avec PV3D (objects.primitives.Sphere) sur le plan horizontal, puis nous appliquons comme texture à cette dernière l’image du logo de l’ENSICAEN. Grâce à des écouteurs, il est alors possible de cliquer sur la sphère qui redirige alors l’utilisateur vers le site de l'ENSICAEN.

Enfin, nous ajoutons la fonction moveSphere(). A chaque événement ENTER_FRAME, nous récupérons la matrice de transformation du marqueur. Nous calculons les angles du plan horizontal par rapport à la caméra. Cela nous permet de faire rouler la sphère dans le plan. On implémente également la gestion de la chute de la sphère si l’on penche trop le marqueur.

22/25

Page 23: 1 La réalité augmentée

23/25

Illustration 1: La boule roule sur le plan horizontal

Illustration 2: La boule tombe en chute libre

Page 24: 1 La réalité augmentée

ConclusionAprès une présentation de la notion de réalité augmentée, nous établîmes

l'état de l'art de cette technologie. Ainsi nous en avons cerné l'avancée et les enjeux dans de nombreux domaines. Puis nous avons testé les exécutables fournis avec la librairie ARToolkit afin d'obtenir un aperçu des possibilités de cette dernière. Nous avons procédé aux recherches pour en dégager le principe de fonctionnement.

A l'issue de ce travail, nous avons entamé l'élaboration du site internet qui regroupe les informations attenantes à ce projet. Parallèlement, il nous a semblé important de personnaliser un des exécutables fournis avec la bibliothèque, afin de se familiariser avec le code. Ceci nous a conduit à créer notre propre marqueur et un objet VRML.

Dans la perspective de proposer sur notre site web un contenu interactif, le choix de la librairie FLARToolkit nous a semblé judicieux. En effet l'environnement Flash, bien que propriétaire, est réputé accessible et interprété sur de nombreuses plateformes. L'application ainsi développée permet aux visiteurs de notre site d'avoir un exemple de réalité augmentée.

Durant ce projet, nous n'avons rencontré aucune difficulté dans le travail d'équipe et la communication. La répartition des tâches s'est faite naturellement suivant les compétences de chacun, travaillant conjointement sur les sujets le nécessitant.

Ce travail a nécessité la mise en application de connaissances acquises en cours durant l'année, dont la programmation orientée objet ou le langage C. Cela a également été l'occasion d'enrichir nos acquis. Cette technologie de réalité augmentée impose la prise en main d'une bibliothèque dense et spécifique, ainsi que l'interconnexion de divers outils tels que la création de pattern et d'objets en 3 dimensions. Enfin, ce fut l'occasion de découvrir le langage ActionScript qui reste proche du Java.

L'essor important de la réalité augmentée ces dernières années laisse présager qu'elle continuera à s'immiscer dans notre quotidien. Les algorithmes de détection de plus en plus performants offrent de nouvelles possibilités, permettant par exemple de s'affranchir de marqueurs prédéterminés.

GOBERT JulienRENOUS Nicolas

Site web :http://projetar.renous.fr

24/25

Page 25: 1 La réalité augmentée

Notes et références externes[1] Ronald Azuma, A Survey of Augmented Reality[2] Paul Milgram et Fumio Kishino, Taxonomy of Mixed Reality Visual Displays [3] History of Augmented Reality, Augmentedrealitywiki.com[4] A Critical History of Computer Graphics and Animation, design.osu.edu/carlson/[5] Documentation ARToolkit, hitl.washington.edu/artoolkit/ [6] Adobe Flash Builder, adobe.com[7] FLARToolkit, libspark.org[8] PaperVision3D, code.google.com/p/papervision3d/[9] Subversion, Tortoisesvn.net David COCHARD, UT Compiègne, davidcochard.comTuto ARToolkit, www.hitl.washington.edu/artoolkit/Papers/ART02-Tutorial.pdf

Annexes1. Code source Action Script : AugReality.as2. Association objet_motif : object_data.vrml3. Options de chargement du fichier VRML : ensi.dat

25/25