• Aucun résultat trouvé

Interface Homme-Machine Cours 5

N/A
N/A
Protected

Academic year: 2022

Partager "Interface Homme-Machine Cours 5"

Copied!
69
0
0

Texte intégral

(1)

Interface Homme-Machine

Cours 5 4

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

Philippe Gaussier Alexandre Pitti

(2)

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

(3)

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)

(4)

Réalité virtuelle

Exemple : les jeux vidéos

(5)

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).

Environnement réel

Environnement virtuel Réalité augmentée Réalité virtuelle

(6)

ex. the eye of judgment

Cam era

Marqueur / Tag

Interaction Écran

Interac

tion

(7)

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

(8)

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

(9)

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

(10)

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

(11)

Augmenter l'utilisateur

[Ultraseven]

(12)

Augmenter l'environnement

[Total Immersion]

(13)

Augmenter l'objet – un livre

[Livre Augmenté]

(14)

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

(15)

Publicité IKEA – Réalité Augmentée

[Ikea]

(16)

Apprentissage – RA

(17)

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)

(18)

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

Google Sketchup, pluggin

(19)

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é.

(20)

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é

(21)

V.A. et R.A.

Interaction

Virtualité Augmentée

Entités Physiques

Entités Numériques Utilisateur

Réalité Augmentée

Entités Physiques

Entités Numériques Utilisateur

Augmentation

Interaction

Virtualité Augmentée

Entités Physiques

Entités Numériques Utilisateur

Réalité Augmentée

Entités Physiques

Entités Numériques Utilisateur

Augmentation

(22)

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)

(23)

La réalité mixte

[metroparis]

(24)

Google Glasses

(25)

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.

(26)

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)

(27)

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

(28)

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

(29)

Taxonomies en Réalité Virtuelle

M.K.D. Coomans

Philippe Fuchs

(30)

Développement d’interfaces 3D

(31)

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.

(32)

Geolocalisation

(33)

Reconnaissance de tag

(34)

Reconnaissance de tag : QR code

(35)

Reconnaissance de tag : QR code

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

Chen

(36)

Reconnaissance de tag

(37)

Reconnaissance de tag

(38)

Problème de projection

(39)

Problème de projection

(40)

Problème de projection

(41)

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

(42)

Interaction

Dispositifs « portables »

Gestes

– Mains « nues »

– Mains « équipées »

– Déplacements d’objets reconnus

Objets communicants

(43)

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

(44)

ARToolKit

HIT Lab, University of Washington, USA

Mark Billinghurst, grof@hitl.washington.edu

(45)

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

(46)

L'AR-Toolkit 1

(47)

L'AR-Toolkit 2

(48)

L'AR-Toolkit 3

(49)

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.

(50)

Fonctionnement (2)

(51)

AR toolkit "patterns"

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

(52)

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éo

Code C / C++ Code Java

(53)

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.

(54)

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.

(55)

1. Code pour initialisation

main( ) {

// INITIALISATION

if (arVideoOpen(“”) < 0 ) exit(0); //open the video path

if (arVideoInqSize(&xsize, &ysize) <0) exit(0); // find the size of window

if (arParamLoad(cparaname, 1, &wparam) < 0) // set the initial camera param { exit(0); }

// DEMARRAGE

arParamChangeSize(&wparam, xsize, ysize, &cparam);

arInitCparam ( &cparam);

arParamDisp( &cparam );

argInit( &cparam, 1.0, 0, 0, 0, 0 ); // ouvre la fenetre graphique arVideoCapStart( ); //start video image capture bool m_localiserStarted = true;

… // cf. next slide

(56)

2. Detecter les marqueurs

… // "MAIN LOOP"

while (m_localiserStarted) {

// CAPTURE D'UNE FRAME arVideoCapNext();

if ( (dataPtr = (ARUint8 *) arVideoGetImage( )) == NULL) { arUtilSleep(2);return; } // DETECTION DES PATTERNS PRESENTS

if( 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; }

}

(57)

3. Dessiner sur un marqueur

// AFFICHAGE DE LA VIDEO argDrawMode2D();

argDispImage( dataPtr, 0, 0);

// CALCUL ET AFFICHAGE DU GRAPHIQUE POUR CHAQUE PATTERN DETECTE for( 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 BUFFER argSwapBuffers( );

(58)

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);

} }

(59)

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

(60)

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ène

locale.addBranchGraph(

m_JARToolKit3D.createViewingBranch(canvas));

(61)

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

(62)

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 …

(63)

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

(64)

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

(65)

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

(66)

Geoloc.: Wikitude (Android)

http://www.wikitude.org/developers

l’API Wikitude

(67)

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

(68)

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.

(69)

FIN

Références

Documents relatifs

blurred cotton image and 4 kinds of algorithm recovery image after contour extraction The results of computing time on cotton images that computing time of four algorithms

2012 : Quelques applications en réalité augmentée au service du patrimoine : Cluny-Vision (visite inédite de la cité médiévale), Culture Clic (voyage virtuel dans le temps),

IRVO insiste tout particulièrement sur la modélisation des outils et objets du domaine : ils peuvent être réels ou virtuels selon leur position par rapport à la frontière entre

premiers éléments pour programmer en TI Basic : se référer au cours distribué.

Incurables, la maladie, les douleurs omniprésentes, dans leur constance, semblent tenir en quelque sorte, lieu d’existence : « C’est très dur de devoir demander de l’aide pour

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Pour gérer la forme courante, la couleur courante et l’épaisseur courante du dessin en cours, on utilise trois attributs stockés dans la classe CIHMDoc et on définit les