ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO...

24
ARToolkit Augmented Reality Augmented Reality Toolkit Toolkit N N G G U U K K Y Y E E E E T T N N T T Y Y P P O O N N J J R R O O O O N N Y Y A A T T H H A A N N

Transcript of ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO...

Page 1: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 2: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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 =

Page 3: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 4: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 5: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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 =

Page 6: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 7: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 8: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 9: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 10: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

....

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

Page 11: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

....

/* 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

Page 12: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 13: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 14: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 15: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 16: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 17: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 18: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 19: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 20: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 21: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 22: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

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

Page 23: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.

DEMODEMO

NGUYEN Ketty & PONROY Jonathan= 23 =

Qu’est-ce Architecture Installation Développement Possibilités Outils Limitations Demo

Page 24: ARToolkit Augmented Reality Toolkit NG NNGGUKUKYEYEETETNTNTYYNNGGUKUKYEYEETETNTNTYYY PO PPOONJNJROROONONYAYATTHHAANNPPOONJNJROROONONYAYATTHHAANNTHAN.