ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO...
-
Upload
marrok-jourdain -
Category
Documents
-
view
140 -
download
27
Transcript of ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO...
ARToolkit
Augmented Reality Augmented Reality ToolkitToolkit
NN
GG
UU KK
YY EE
EE TT
NN TT
YY
PP
OO
NN JJ
RR OO
OO NN
YY AA
TT
HH
AA
NN
Ce que nous allons présenter…Ce que nous allons présenter…
• IntroductionIntroduction• ArchitectureArchitecture• InstallationInstallation• Principes de développementPrincipes de développement• Tout ce qu’on peut faire avec…Tout ce qu’on peut faire avec…• LimitationsLimitations• Outils autour de ARToolkitOutils autour de ARToolkit• DemoDemo
NGUYEN Ketty & PONROY Jonathan= 2 =
En quelques mots…En quelques mots…
• Librairie C/C++ avec des outils vidéoLibrairie C/C++ avec des outils vidéo– Fonctions prédéfinies– Utilisation des différents outils
• Réalité augmentée en temps réelRéalité augmentée en temps réel
Introduction d’objets 3D dans le monde réel par marqueurs
NGUYEN Ketty & PONROY Jonathan= 3 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
ArchitectureArchitecture• OpenGL pour le renduOpenGL pour le rendu• GLUT pour les évènements et GLUT pour les évènements et
dépendance hardware de la librairie dépendance hardware de la librairie videovideo
• API standard sur chaque platform (e.g API standard sur chaque platform (e.g win32 pour Windows)win32 pour Windows)
NGUYEN Ketty & PONROY Jonathan= 4 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
StructureStructure• L’utilisateur peut facilement L’utilisateur peut facilement
remplacer un module par un autreremplacer un module par un autre
• Flux de données
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
NGUYEN Ketty & PONROY Jonathan= 5 =
InstallationInstallation• Le site Le site http://www.hitl.washington.edu/artoolkit/
(section documentation (section documentation setup ARToolkit) setup ARToolkit) donne la liste des éléments à télécharger donne la liste des éléments à télécharger
ARToolkit Glut Librairies pour la webcam
• ReadMe disponible pour chaque ReadMe disponible pour chaque application expliquant toute la procédure à application expliquant toute la procédure à suivresuivre
• Multi-plateforme : Windows, Linux et MacMulti-plateforme : Windows, Linux et Mac
NGUYEN Ketty & PONROY Jonathan= 6 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Le fonctionnement globalLe fonctionnement global
Principes de développementPrincipes de développement
NGUYEN Ketty & PONROY Jonathan= 7 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
static void mainLoop(void){ static int contF = 0; ARUint8 *dataPtr; ARMarkerInfo *marker_info; int marker_num; int j, k;
/* grab a vide frame */ if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL )
{ arUtilSleep(2); return; } if( count == 0 ) arUtilTimerReset(); count++;
argDrawMode2D(); ...
Chargement d'une imageChargement d'une image
NGUYEN Ketty & PONROY Jonathan= 8 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Détection du marqueurDétection du marqueur.....
/* grab a vide frame */ if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL )
{ arUtilSleep(2); return; } if( count == 0 ) arUtilTimerReset(); count++;
argDrawMode2D(); argDispImage( dataPtr, 0,0 );
/* detect the markers in the video frame */ if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) { cleanup(); exit(0); }
arVideoCapNext();
.....
NGUYEN Ketty & PONROY Jonathan= 9 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
....
if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) { cleanup(); exit(0); }
arVideoCapNext();
/* check for object visibility */ k = -1; for( j = 0; j < marker_num; j++ ) { if( patt_id == marker_info[j].id ) { if( k == -1 ) k = j; else if( marker_info[k].cf < marker_info[j].cf ) k = j; } } if( k == -1 ) {
....
Reconnaissance du symboleReconnaissance du symbole
NGUYEN Ketty & PONROY Jonathan= 10 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
....
/* check for object visibility */
....
/* get the transformation between the marker and the real camera */ arGetTransMat(&marker_info[k], patt_center, patt_width, patt_trans); draw();
argSwapBuffers();}
Calcul de la matrice de transformationCalcul de la matrice de transformation
NGUYEN Ketty & PONROY Jonathan= 11 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
static void draw( void ){ .... /* load the camera transformation matrix */ argConvGlpara(patt_trans, gl_para); glMatrixMode(GL_MODELVIEW); glLoadMatrixd( gl_para );
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glLightfv(GL_LIGHT0, GL_AMBIENT, ambi); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash); glMaterialfv(GL_FRONT, GL_SHININESS, mat_flash_shiny); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMatrixMode(GL_MODELVIEW); //glTranslatef( 0.0, 0.0, 25.0 );
glTranslatef( 0, 0, 25.0 ); glutSolidCube(50.0); glDisable( GL_LIGHTING );
glDisable( GL_DEPTH_TEST );
Ajout des objets 3DAjout des objets 3D
NGUYEN Ketty & PONROY Jonathan= 12 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Tout ce qu'on peut faire avec ...Tout ce qu'on peut faire avec ...
Ex:#pattern1coneData/patt.hiro80.00.0 0.0
• Un fichier contient l’ensemble des Un fichier contient l’ensemble des patterns à reconnaître pendant la patterns à reconnaître pendant la sessionsession
Description du pattern comme suitDescription du pattern comme suit
– Nom– Fichier du pattern– Largeur du marqueur– Centre du marqueur
Utiliser plusieurs patterns Utiliser plusieurs patterns simultanémentsimultanément
NGUYEN Ketty & PONROY Jonathan= 13 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Créer ses propres patterns avec Créer ses propres patterns avec bin/mk_pattbin/mk_patt
NGUYEN Ketty & PONROY Jonathan= 14 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Utilisation du pattern au niveau du Utilisation du pattern au niveau du codecodechar *patt_name = "Data/patt.hiro";
.....
static void init( void ){ .... arParamChangeSize( &wparam, xsize, ysize, &cparam ); arInitCparam( &cparam ); printf("*** Camera Parameter ***\n"); arParamDisp( &cparam );
if( (patt_id=arLoadPatt(patt_name)) < 0 ) { printf("pattern load error !!\n"); exit(0); }
/* open the graphics window */ argInit( &cparam, 1.0, 0, 0, 0, 0 );}
NGUYEN Ketty & PONROY Jonathan= 15 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Calibrer la caméraCalibrer la caméra
Deux types de calibration (one Deux types de calibration (one step, two step)step, two step)
• Two stepTwo step– Imprimer calib_cpara.pdf et
calib_dist.pdf
– Lancer calib_dist avant calib_cparaNGUYEN Ketty & PONROY Jonathan
= 16 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
calib_distcalib_dist
NGUYEN Ketty & PONROY Jonathan= 17 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
• Prendre une autre image et répéter le processus 5 à 10 fois avec des angles de vues différents pour avoir une calibration plus précise
• Ce programme donne le facteur de distorsion et les coordonnées du centre de l'image
calib_cparamcalib_cparam
– Pour trouver la focale et autres paramètres
– Entrer les données fournies par calib_dist
– Reculer l’image de la caméra– Répéter le processus 5 fois
NGUYEN Ketty & PONROY Jonathan= 18 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Par défaut
Espacement entre les points : 40mm Distance d’éloignement à la caméra : 100mmNombre de fois à répéter la procédure : 5
inter_coord[k][j][i+7][0] = 40.0*i;inter_coord[k][j][i+7][1] = 40.0*j; inter_coord[k][j][i+7][2] = 100.0*k;
*loop_num = 5;
Pour personnaliser…Pour personnaliser…
NGUYEN Ketty & PONROY Jonathan= 19 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Limitations
NGUYEN Ketty & PONROY Jonathan= 20 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
• Limitations matériellesLimitations matérielles• Reconnaissance de patternReconnaissance de pattern
– Ne pas cacher la moindre zone du pattern– Etre dans de bonnes conditions lumineuses – Avoir des patterns simples
• Une vue proche du pattern révèle des Une vue proche du pattern révèle des sauts si la fonction d'historique n'est sauts si la fonction d'historique n'est pas utiliséepas utilisée
• Détection de patterns2D et pas Détection de patterns2D et pas patterns3Dpatterns3D
Outils de création de nouveaux patterns
Modules Modules supplémentairessupplémentaires
AdaptationsAdaptations
AmélioratioAméliorationsns
Module de support du VRML
Adaptation pour java
Adaptation pour pocket pc
Version pour matlab
Version améliorée de ARToolkit
Outils autour de ARToolkit
NGUYEN Ketty & PONROY Jonathan= 21 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
Améliorations
• Site sur ARToolkit Plus :Site sur ARToolkit Plus :– Amélioration sur conditions de luminosité
http://studierstube.icg.tu-graz.ac.at/handheld_ar/artoolkitplus.php
• Real-time Augmented Reality:Real-time Augmented Reality:– Système de tracking robuste
http://www.cv.iit.nrc.ca/research/ar
NGUYEN Ketty & PONROY Jonathan= 22 =
Qu’est-ce Architecture Installation Développement Possibilités Limitations Outils Demo
DEMODEMO
NGUYEN Ketty & PONROY Jonathan= 23 =
Qu’est-ce Architecture Installation Développement Possibilités Outils Limitations Demo