69
Interface Homme-Machine Cours 5 4 Réalité virtuelle, réalité augmentée Philippe Gaussier Alexandre Pitti

Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Interface Homme-Machine Cours 5 4

Réalité virtuelle, réalité augmentée

Philippe GaussierAlexandre Pitti

Page 2: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Plan du cours

1 Introduction à l'IHM, historique et ergonomie psychologie, handicap et théorie, méthodes de conception

et d’évaluation

2 Éléments d'une IHM Interfaces et Infrastructures, prototypage

3 Extraction et Traitement de l'information GUI Visualisation de l'information, Méthodes statistiques

4 & 5 Techniques d'interactions avancées Réalité Augmentée, Interface Tangible, projection 3D,

Analyse du mouvement

Page 3: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Réalité virtuelle immersion sensori-motrice de l’utilisateur dans le

système

● « ...l’interaction temps réel multi-modale qui implique l’utilisateur à travers tous ses sens, et permet son immersion complète » (Burdéa)

● « ...une application qui donne l’illusion de participer à l’activité d’un environnement virtuel plutôt que d’en être le simple observateur extérieur » (Gigante)

Page 4: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Réalité virtuelle Exemple : les jeux vidéos

Page 5: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Plan de la situation

Définition de la virtualité augmentée : « systèmes dont l’objet de la tâche réside dans le monde informatique. Les systèmes considérés visent à rendre l’interaction plus “réaliste”.(...) L’interaction repose sur la manipulation d’objets du monde réel, comme des cubes, pour modifier des objets informatiques tels que des fichiers » (Dubois, et al., 2000).

Environnementréel

Environnement virtuel

Réalité augmentée Réalité virtuelle

Page 6: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

ex. the eye of judgment

Camera

Mar

queur /

Tag

Inte

ract

ion Écr

an

Interaction

Page 7: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Réalité Augmentée

Réalité Augmentée [Feiner, Azuma, Mackay]

Système qui permet de superposer l'image d'un modèle virtuel 3D ou 2D sur une image de la réalité et ceci en temps réel.

1. Combine the virtual and the real

2. are interactive in real time

3. registered in 3D

Accroître l'utilité d'une image réelle

Page 8: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Essai de définition

Caudell & Mizell, 1992

– Lie le réel et le virtuel,

– Est interactive et en temps réel,

– Facilite l’interface homme machine.‐

Le but final est de supprimer les interfaces de manipulation informatiques comme la souris ou le clavier

Page 9: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Réalité Augmentée

Réalité Augmentée [Feiner, Azuma, Mackay]

Système qui permet de superposer l'image d'un modèle virtuel 3D ou 2D sur une image de la réalité et ceci en temps réel.

1. Combine the virtual and the real

2. are interactive in real time

3. registered in 3D

Accroître l'utilité d'une image réelle

Page 10: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Réalité Augmentée

Wendy Mackay distingue trois façons d'aborder la réalité augmentée :

● Augmenter l'utilisateur ● Augmenter l'objet● Augmenter l'environnement

Page 11: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Augmenter l'utilisateur

[Ultraseven]

Page 12: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Augmenter l'environnement

[Total Immersion]

Page 13: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Augmenter l'objet – un livre

[Livre Augmenté]

Page 14: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Les différentes formes d'applications actuelles

La publicité

- Forme la plus attractive en terme de capitaux.

- Beaucoup d’entreprises travaillent sur ce thème.

- Evolutivité énorme du secteur publicitaire grâce à la RA

http://www.youtube.com/watch?v=htFFChtfSsg

Le jeu

- Marché du jeu en pleine expansion

- Acheteurs friands d’ergonomie développée (Wii) et de nouvelles technologies futuristes

Page 15: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Publicité IKEA – Réalité Augmentée

[Ikea]

Page 16: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Apprentissage – RA

Page 17: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

COMMENT CRÉER DE LA RÉALITÉ AUGMENTÉE?

• ARToolkit-Propose le plugin Virtools de Dassault (logiciel leader en entreprise)

• Papervision 3D-librairie flash donc populaire et partageable facilement sur le web

• LinceoVR 3.0 (publié par Rhinoceros)

Logiciel avec interface graphique

Utilisation facilité

produit exclusivement windows

prix élevé (995€ + 300€ ou 195€ + 50€ pour les étudiants)

Page 18: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

COMMENT CRÉER DE LA RÉALITÉ AUGMENTÉE?

Google Sketchup, pluggin

Page 19: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Les problèmes de la réalité augmentée

Lien imparfait : lorsque le lien ne permet pas de synchroniser les deux réalisations pour certaines opérations.

Modification de la nature du lien : lorsqu'une des entités qui forment le lien est remplacée par une autre.

Lien brisé : lorsque le lien n'existe plus. Ceci peut être dû à une panne ou à des limitations du dispositif d'augmentation.

● tout système augmenté doit aussi pouvoir être utilisé comme un système non augmenté.

Page 20: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Virtualité augmentée

Virtualité augmentée [Rose, Milgram]

Incruster des images réelles dans des images virtuelles

Améliorer la qualité d'une image de synthèse par l'incrustation d'éléments de la réalité

Page 21: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

V.A. et R.A.

Interaction

Virtualité Augmentée

EntitésPhysiques

EntitésNumériques

Utilisateur

Réalité Augmentée

EntitésPhysiques

EntitésNumériques

Utilisateur

Augmentation

Interaction

Virtualité Augmentée

EntitésPhysiques

EntitésNumériques

Utilisateur

Réalité Augmentée

EntitésPhysiques

EntitésNumériques

Utilisateur

Augmentation

Page 22: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

La réalité mixte

Exemple connu avec l’application métroparis● Pas d’analyse d’image, seulement de position

(GPS) et d’orientation (boussole).● Des données virtuelles (les emplacements de

station) sont appliquées sur un flux réel (film de la scène)

http://www.youtube.com/watchv=MxU88ywRgP4

La réalité mixte n'interagit pas avec le flux d’informations visible par l’utilisateur, même si la position GPS pourrait faire figure de données réelles, ces informations ne tiennent pas compte de l’environnement direct. Lors des derniers mètres, cette différence peut s’avérer embêtante pour l’utilisateur qui pourrait tourner autour de la bouche de métro sans la voir (en imaginant qu’il ne voit réellement pas l’entrée)

Page 23: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

La réalité mixte

[metroparis]

Page 24: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Google Glasses

Page 25: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Système mixte ?

Pas de consensus quant à une définition Groupement de plusieurs termes utilisés dans

la littérature● Réalité Augmentée [Feiner, Azuma, Mackay]● Virtualité augmentée [Rose, Milgram]● Tangible User Interface / Ambient interface [Ishii]● Réalité mixte [Milgram]● Environnements augmentés [Xerox Euro Parc]● Vidéo augmentée● Etc.

Page 26: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Objectifs des systèmes mixtes

Exploiter les capacités de traitements / stockage / transformations / etc. des "systèmes informatiques"(complète les capacités de l'utilisateur)

S'appuyer sur la manipulation d'objets du monde physique (facilite l'interaction de l'utilisateur avec le système)

Laisser l'utilisateur au contact de son environnement physique habituel(rend l'ordinateur accessible partout)

Page 27: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Rôle des systèmes mixtes

Ajouter …● de l'information : enrichir la perception de

l'utilisateur● des services : faciliter l'exécution de tâches

Lors d'une interaction entre l'Utilisateur et …● Monde physique : Réalité augmentée● Monde numérique : Virtualité Augmentée

Page 28: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Constat

Tendance à la démocratisation des systèmes mixtes● Utilisation dans de nombreux domaines

Nécessité de mettre en œuvre un processus de développement● Conception

– Taxonomie– Méthode / éléments de conception

● Techniques de développement

Page 29: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Taxonomies en Réalité Virtuelle

M.K.D. Coomans Philippe Fuchs

Page 30: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Développement d’interfaces 3D

Page 31: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Technologies Localisation

● Caméra : – Tag based– Segmentation, suivi,

(différence d'image, gradient, etc.)● Infra-rouge : polaris● Ultra-son : FreeD mouse● Détection magnétique : FOB● Ondes radio : RF-ID● Mécaniques (bras, robots)● …

Rendu● PDA, casque, projecteurs, HP● Graphique, texte, son, etc.

Page 32: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Geolocalisation

Page 33: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Reconnaissance de tag

Page 34: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Reconnaissance de tag : QR code

Page 35: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Reconnaissance de tag : QR code

a. Row scanning b. Column scanning c. Adjusting to center position

Transformation affine

Chen

Page 36: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Reconnaissance de tag

Page 37: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Reconnaissance de tag

Page 38: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Problème de projection

Page 39: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Problème de projection

Page 40: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Problème de projection

Page 41: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Affichage

Affichage via un dispositif semi-transparent Affichage par projection

– c.f. Parnav Mistry et son projet 6thsense Affichage sur le flux vidéo

– ARToolkit

Page 42: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Interaction

Dispositifs « portables » Gestes

– Mains « nues »

– Mains « équipées »

– Déplacements d’objets reconnus Objets communicants

Page 43: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Toolkits existantes

Context-toolkit : support au développement des parties logicielles gérant la capture de données du contexte

Bus Ivy : middleware

AR-toolkit : fonctionnalités liées à la localisation

Page 44: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

ARToolKitHIT Lab, University of Washington, USA

Mark Billinghurst, [email protected]

Page 45: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

l'AR-Toolkit

Objectif● Superposer des informations numériques à un

flux vidéo du monde physique

Moyen● Librairie écrite en C (version Java existante)● Gratuit, open-source● Réservé à un usage non commercial● Exécutable de calibration de la caméra

Page 46: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

L'AR-Toolkit 1

Page 47: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

L'AR-Toolkit 2

Page 48: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

L'AR-Toolkit 3

Page 49: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Fonctionnement (1)

1. Acquisition : acquisition numérique d'un flux vidéo et seuillage

2. Détection : Recherche dans cette image de régions carrées.

Pour chaque carré, identification du "pattern" situé à l'intérieur et mise en relation avec un des "patterns" prédéfinis

3. Localisation spatiale : Calcul de la position de la caméra réelle dans le

repère associé au pattern (matrice 3x4 de passage de la caméra au pattern).

4. Traitement : Affichage du rendu graphique ou textuel, facilement

"alignable" sur le monde réel.

Page 50: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Fonctionnement (2)

Page 51: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

AR toolkit "patterns"

Exemples de "pattern" détectables par l'AR toolkit.

Page 52: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Principe de mise en oeuvre

6 étapes

1. Initialisation de l'application

2. Capture d'une image vidéo

3. Identification des marqueurs (situés dans les patterns)

4. Calcul de la matrice de passage pattern - caméra

5. Affichage du rendu

6. Fermeture du canal d'acquisition vidéoCode C / C++ Code Java

Page 53: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Utilisation de l'AR-toolkit en C (1)

Init()● Ouvre le canal vidéo et initialise les paramètres

par défaut de l'AR toolkit(fichier de calibrage de la caméra, fichiers de description des patterns)

● Détermine la taille de la fenêtre d'affichage.

Page 54: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Utilisation de l'AR-toolkit en C (2)

À utiliser dans la "mainLoop"

● arVideoGetImage() : capture une frame du flux vidéo

● argDispImage() : affiche la frame vidéo capturée

● arDetectMarker() : construit un tableau (en C) d'identifiant des marqueurs détectés

● arGetTransMat() : calcule la matrice de passage entre le repère du pattern et la caméra (réelle)

● draw() : affiche le rendu graphique, textuel, etc.

Page 55: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

1. Code pour initialisationmain( ){// INITIALISATION

if (arVideoOpen(“”) < 0 ) exit(0); //open the video pathif (arVideoInqSize(&xsize, &ysize) <0) exit(0); // find the size of windowif (arParamLoad(cparaname, 1, &wparam) < 0) // set the initial camera param

{ exit(0); }

// DEMARRAGEarParamChangeSize(&wparam, xsize, ysize, &cparam);arInitCparam ( &cparam);arParamDisp( &cparam );argInit( &cparam, 1.0, 0, 0, 0, 0 ); // ouvre la fenetre graphiquearVideoCapStart( ); //start video image capturebool m_localiserStarted = true;

… // cf. next slide

Page 56: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

2. Detecter les marqueurs… // "MAIN LOOP"while (m_localiserStarted){

// CAPTURE D'UNE FRAMEarVideoCapNext();if ( (dataPtr = (ARUint8 *) arVideoGetImage( )) == NULL) { arUtilSleep(2);return; }

// DETECTION DES PATTERNS PRESENTSif( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) { cleanup(); exit(0); }

// IDENTIFICATION DES PATTERNS PRE-CHARGE VISIBLE for( i = 0; i < objectnum; i++ ) // objectnum = nombre de pattern pré-

chargés { k = -1; for( j = 0; j < marker_num; j++ ) { // object[ ] = tableau de descripteurs des

if ( object[i].id == marker_info[j].id ) // pattern pré-chargés { if( k == -1 ) k = j; else { if ( marker_info[k].cf < marker_info[j].cf ) k = j; } } } if( k == -1 ) { object[i].visible = 0; continue; }

// CALCUL DE LA MATRICE DE PASSAGE if ( arGetTransMat(&marker_info[k], object[i].marker_coord, object[i].trans) < 0 ) { object[i].visible = 0; }

else { object[i].visible = 1; } }

Page 57: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

3. Dessiner sur un marqueur

… // AFFICHAGE DE LA VIDEOargDrawMode2D();argDispImage( dataPtr, 0, 0);

// CALCUL ET AFFICHAGE DU GRAPHIQUE POUR CHAQUE PATTERN DETECTEfor( i = 0; i < objectnum; i++ ) {

if( object[i].visible == 0 ) continue;argConvGlpara(trans, gl_para);argDrawMode3D();

argDraw3dCamera(0, 0); glMatrixMode(GL_MODELVIEW);glScalef(1,-1,1); glMultMatrix(gl_para);

// INSTRUCTIONS DE DESSIN…

}// AFFICHAGE DU BACK BUFFERargSwapBuffers( );

Page 58: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

4. Terminer la boucle d'événements

…while (PeekMessage( &WmMsg, NULL, 0, 0,PM_REMOVE)){ int t;

if ( (WmMsg.message == 257) && (WmMsg.wParam == 89) ) {

t = increaseThresh(); TRACE("THRESH++ = %d\n",t);

}/* else … */

DispatchMessage(&WmMsg);}

}

Page 59: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Utilisation de l'AR-toolkit en Java (1)

Différentes versions● GL4Java

– En baisse● JOGL

– A voir (sensiblement similaire à la suivante)● Java 3D

– Illustrée ici

Page 60: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Utilisation de l'AR-toolkit en Java (2)

Déclaration private JARToolKit3D m_JARToolKit3D = null;

Initialisation (dans le constructeur par exemple)● Création de l'instance unique (frameGrabber)

m_JARToolKit3D = JARToolKit3D.create();● Initialisation des paramètres de calibrage de la caméra

m_JARToolKit3D.initialize(

JARToolKit3D.getAbsolutePath("data/camera_para.dat"));(remplace les / par \\ …)

● Insertion dans le graphe de scènelocale.addBranchGraph(

m_JARToolKit3D.createViewingBranch(canvas));

Page 61: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Utilisation de l'AR-toolkit en Java (3)

Initialisation (suite …)● Création du BackGround Java3D (et ajout)

contentsTransGr.addChild(m_JARToolKit3D.createBackground());

● Création du behavior gérant la détection des patterns de la jARToolkit (et ajout) m_arBehavior=JARToolKit3D.createRecognition(); contentsTransGr.addChild(m_arBehavior);

● Création d'un TransformGroup par pattern à localiser objTrans = m_JARToolKit3D.createPatternTransform(

JARToolKit3D.getAbsolutePath("data/pattern/hiroPatt"), true);● Association de ce transformGroup au behavior de tracking

(patternDriven-TransformGroup) m_arBehavior.registerObject(objTrans);

● Ajout des objets Java3D attachés au patternDriven-TransformGroup

Page 62: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Configuration de la machine

Classpath● Contient le java3D-Utils-src.jar

Dll ARToolkit (JNI)● Copiées dans le répertoire d'exécution

Path● Ajouter le jARToolkit\bin

NOTE : c'est du java pour PC …

Page 63: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Extensions de l'AR toolkit

Version Java● http://www.c-lab.de/jartoolkit/

Version Pocket-PC● http://www.ims.tuwien.ac.at/research/handheld_ar/

developer/artoolkit.php

Page 64: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Sur Android

Magic Lens– Bier, Stone, Pier, Buxton, DeRose. Toolglass and Magic Lenses: The See-Through Interface. In Conference Proceedings of Siggraph’93, Anaheim, Computer Graphics Annual Conference Series, ACM (1993) 73- 80

Géolocalisation– Limitée par la précision du GPS

Tag– Limitée par la robustesse de reconnaissance

Page 65: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Geolocalisation: Layar (Android)

Développement de « couche »

• Ex: Layar : http://www.layar.com/

– Application dédiée et unique

– compte développeur

– nouveau calque sur le site Layar

– Web Service (et BD) pour les POIs (techno JSON)

– Publication du calque

Page 66: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Geoloc.: Wikitude (Android)

http://www.wikitude.org/developers l’API Wikitude

Page 67: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Reconnaissance de Tags

Différentes implémentation de l’ARToolkit

– NyaARToolkit

http://nyatla.jp/nyartoolkit/wiki/index.php?FrontPage.en

– AndAR : http://code.google.com/p/andar/

• Difficulté de l’OpenGL sous android

– Possible de retrouver des implémentations de GLUT..http://code.google.com/p/andar/source/browse/trunk/AndARPong/src/edu/dhbw/andar/pingpong/GLUT.java

Page 68: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

Exemple avec Andar

Personnalisation de AndARSampleProject http://code.google.com/p/andar/downloads/detail?name=AndARSampleProject.zip

– Reconnaissance de tags et affichage d’un cube vert OpenGL « masqué »

– Changement de repère Objet reconnu « indépendant » Ajout d’une interaction simple :

– Quand le tag est proche de , le

cube associé à change de couleur.

Page 69: Interface Homme-Machine · Fonctionnement (1) 1. Acquisition : acquisition numérique d'un flux vidéo et seuillage 2. Détection : Recherche dans cette image de régions carrées

FIN