Interface Homme-Machine Cours 5



Documents pareils
Réalité augmentée smartphone et données géolocalisées

Interface Homme-Machine. Philippe Gaussier Alexandre Pitti

Balises : Motif Qrcode Image Objet

Interaction et Vis ualis ation en Géosicence

des outils disponibles et des performances possibles

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

MANUEL TBI - INTERWRITE

µrv : Realité Virtuelle

Cours. Cours 8 : Révisions. Importance. Interface homme-machine

Pour les futurs développeurs Sommaire

La visio-conférence holographique : Pourquoi? Comment?

Réalité Augmentée Best practices

Les enjeux de la mobilité et de la réalité augmentée dans les jeux éducatifs localisés. GéoEduc3D

Sommaire. Leap motion Technologie Fonctionnement Langages utilisés Possibilités d utilisation... 4

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP Interfaces Multimodales

Programme scientifique Majeure INTELLIGENCE NUMERIQUE. Mentions Image et Réalité Virtuelle Intelligence Artificielle et Robotique

MANUEL TBI - STARBOARD

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Android 4 Les fondamentaux du développement d'applications Java

Utilisation du visualiseur Avermedia

Intervenants. Thomas d'erceville Project Manager. Christian NGUYEN Practice Manager IT Quality

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

as Architecture des Systèmes d Information

Perspectives en matière de portails géographiques et de 3D

Les PowerToys pour Windows XP

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Un exemple avec WORKSPACE d'interwrite

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Immersion - Vision 3D dans la RV.

LES TABLETTES TACTILES

Le stockage local de données en HTML5

Pratiques et usages du web, la «culture internet» moderne

Travail collaboratif à distance

Création d'une interface graphique

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

Utilisation du logiciel Epson Easy Interactive Tools

Analyse de performance, monitoring

ISTIA INNOVATION. 62, Ave ND du Lac F Angers

Java3D. Généralités sur la synthèse d'images temps réel. Généralités sur Java3D. d 'après P.Reignier, UJF

PHOTOSHOP - L'AFFICHAGE

Les tablettes numériques en EPS. Repères. Les différents types de tablettes et leurs caractéristiques.

Table des matières ENVIRONNEMENT

Créateur d innovation 3D

Système de vidéosurveillance pour Pocket PC

ACTIVITÉ DE PROGRAMMATION

Chapitre 2 : Abstraction et Virtualisation

L OUTIL NUMERIQUE CARACTERISTIQUES ET FONCTIONNALITES

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

TP Blender n 2 : Importation d un modèle SketchUp et animation

Les enjeux de la réalité augmentée

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

GUIDE D UTILISATION DU TABLEAU BLANC INTERACTIF EBEAM EDGE

Lenovo TAB A7-40/ Lenovo TAB A7-50

Interface Humain-Machine

Edutab. gestion centralisée de tablettes Android

LES TABLETTES : GÉNÉRALITÉS

Installation et prise en main

TP : Gestion d une image au format PGM

YOGA TABLET 8. Manuel d utilisation V1.0

contact@nqicorp.com - Web :

Microsoft Windows XP. Movie Maker 2

Manual de l utilisateur

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Projet MDMA - Rapport L2

Jay-Tech. Tablette PC 799

Nb. De pages : 24 MANGO. Manuel d'utilisation. Version 1.2. décembre 2010

1 JBoss Entreprise Middleware

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

Tutoriel : logiciel de présentation Openoffice Impress

Guide d utilisation en réseau et sans ordinateur PowerLite 1830

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure

A- Observez la vidéo A présentant le fonctionnement de deux objets techniques que nous

Opérations de base sur ImageJ

L ergonomie de vos formulaires web permet-elle une expérience utilisateur optimale? QAS Intuitive Search

Bluetooth pour Windows

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Retrospect 7.7 Addendum au Guide d'utilisation

Qu'est-ce que le BPM?

Utilisation d un Tableau Numérique Interactif en Mathématiques

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

+33 (0) Sarl ISB Altipolis2 av. Du Général Barbot Briancon - France

Fabriquer son TBI avec une manette de jeu WII

ORUXMAPSDESKTOP v.1.4 EN PREMIER, TU DOIS AVOIR LA MACHINE VIRTUELLE JAVA DANS TON PC, PUISQUE ORUXMAPSDESKTOP EST UNE APPLICATION JAVA.

DMRAlert STREET. Présentation générale. Géolocalisation Urgences - Statuts- Zones Opération Tranquillité Vacances OTV - POI

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

Société de Geo-engineering

Cours / Formation pour débutant en informatique, bureautique, Internet etc... (pour débutants)

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Sophos Mobile Encryption pour Android Aide. Version du produit : 1.3

Formation : WEbMaster

Modules Multimédia PAO (Adobe)

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

N importe qui possédant un code MS valide peut initier la rencontre. Néanmoins, il serait préférable de laisser cette

Travail collaboratif et à distance. DFGSM 2 Pr. F. Kohler 2012/2013

Chapitre 4 Pierre, papier, ciseaux

Transcription:

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

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

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)

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

Plan de la situation Environnement réel Réalité augmentée Environnement virtuel Réalité virtuelle 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).

ex. the eye of judgment n o i t c a r e t n I Ca m In te er a q r a M r u ue g a /T n a r c É ra c t io n

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

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

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

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

Augmenter l'utilisateur [Ultraseven]

Augmenter l'environnement [Total Immersion]

Augmenter l'objet un livre [Livre Augmenté]

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

Publicité IKEA Réalité Augmentée [Ikea]

Apprentissage RA

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)

COMMENT CRÉER DE LA RÉALITÉ AUGMENTÉE? Google Sketchup, pluggin

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

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é

V.A. et R.A. Virtualité Augmentée Entités Physiques Interaction Utilisateur Réalité Augmentée Entités Physiques Augmentation Entités Numériques Entités Numériques Utilisateur

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)

La réalité mixte [metroparis]

Google Glasses

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.

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)

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

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

Taxonomies en Réalité Virtuelle M.K.D. Coomans Philippe Fuchs

Développement d interfaces 3D

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.

Geolocalisation

Reconnaissance de tag

Reconnaissance de tag : QR code

Reconnaissance de tag : QR code a. Row scanning b. Column scanning c. Adjusting to center position Transformation affine Chen

Reconnaissance de tag

Reconnaissance de tag

Problème de projection

Problème de projection

Problème de projection

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

Interaction Dispositifs «portables» Gestes Mains «nues» Mains «équipées» Déplacements d objets reconnus Objets communicants

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

ARToolKit HIT Lab, University of Washington, USA Mark Billinghurst, grof@hitl.washington.edu

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

L'AR-Toolkit 1

L'AR-Toolkit 2

L'AR-Toolkit 3

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.

Fonctionnement (2)

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

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

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.

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.

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

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

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

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

Utilisation de l'ar-toolkit en Java (1) Différentes versions GL4Java JOGL En baisse A voir (sensiblement similaire à la suivante) Java 3D Illustrée ici

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

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

Configuration de la machine Classpath Dll ARToolkit (JNI) Copiées dans le répertoire d'exécution Path Contient le java3d-utils-src.jar Ajouter le jartoolkit\bin NOTE : c'est du java pour PC

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

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

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

Geoloc.: Wikitude (Android) http://www.wikitude.org/developers l API Wikitude

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

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 cube associé à change de couleur., le

FIN