• Aucun résultat trouvé

4.2 M.A.R.T.S : implémentation du prototype expérimental

4.2.1.1 Algorithme

Détection des points d’intérêt

Les points caractéristiques sont des points intéressants contenus dans une image. Bien évidemment, ils présentent des propriétés locales importantes au niveau de l’image. En plus, ils sont généralement insensibles aux changements locaux et glo- baux, tels que l’éclairage, la luminosité et les transformations affines.

En 1988 Harris et al. [Harris 88], introduisent le détecteur de Harris, permet- tant d’extraire les points d’intérêt locaux. Plus précisément, le détecteur d’Harris permet d’extraire les coins, définis par l’intersection des deux arrêtes. Le détecteur d’Harris a l’avantage d’être invariant aux transformations affines. Cependant, son inconvénient majeur réside dans le fait qu’il n’est pas invariant au changement d’échelle. Le détecteur SIFT, introduit par Lowe et al. en 1999 [Lowe 99], est un détecteur invariant au changement d’échelle. Le descripteur SIFT calcule un histo- gramme de gradients situés dans une fenêtre qui entoure le point clé. Ensuite, il les enregistre dans un vecteur de dimensions 128 ou 64, représentant un descripteur relatif à un point d’intérêt SIFT.

Le détecteur SURF, proposé par Bay et al. [Bay 08], est dérivé de SIFT. En revanche, il se distingue de SIFT par la description et la sélection des points clés. SURF se base sur le déterminant de la matrice Hessienne dans l’extraction des points. En effet, la matrice Hessienne se caractérise par une bonne performance en termes du temps de calcul et de précision. Plus précisément, SURF s’appuie sur

11. FLANN est acronyme de « Fast Approximate Nearest Neighbor Search Library » et est intégré dans OpenCV.

4.2 M.A.R.T.S : implémentation du prototype expérimental le déterminent de la matrice Hessienne dans le calcul de position et d’échelle d’un point caractéristique. Etant donné un point X = (x, y) appartenant à l’image I, la matrice Hessienne H(x, σ) en x à l’echelle σ est définie comme suit :

H(X, σ) = " Lxx(x, σ) Lxy(x, σ) Lxy(x, σ) Lyy(x, σ) # (4.2.1)

Lxx(x, σ) représente la convolution de la dérivée seconde de gaussienne δ

2

δx2 g(δ)

avec l’image I, au niveau du point X, et de même pour Lxy(x, σ) et Lyy(x, σ).

L’extraction des descripteurs SURF s’effectue en deux étapes. La première étape consiste à trouver l’orientation de la région circulaire autour du point d’intérêt. En- suite, une zone carrée, alignée à l’orientation précédemment calculée, est construite afin d’y extraire le descripteur SURF.

Le détecteur SURF est plus rapide que les autres détecteurs de points caracté- ristiques, grâce à l’utilisation des images intégrales. Une image intégrale peut être rapidement calculée à partir d’une image initiale en utilisant l’équation suivante :

IP(X) = i≤x X i=0 j≤y X j=0 I(i, j) (4.2.2)

En effet, l’image intégrale I(X)en un point X (x, y)est la somme de tous les pixels de l’image initiale I, situés entre ce point et l’origine. Elle permet d’accélé- rer le calcul des valeurs d’intensité des pixels.

En ce qui nous concerne, nous avons retenu le détecteur SURF. En effet, ce descripteur est principalement reconnu pour sa rapidité de calcul. L’étude compa- rative de Juan et al. [Juan 09], démontre la supériorité du descripteur SURF par rapport à SIFT et PCA-SIFT d’un point de vue de ces performances en temps d’exécution et de sa robustesse aux changements d’illumination.

Appariement des points d’intérêt

La reconnaissance d’objet en vision par ordinateur, s’appuie essentiellement sur la recherche des correspondances entre deux images d’un même objet ou d’une même scène. Une fois que les caractéristiques visuelles sont extraites d’une image, elles sont appariées avec un ensemble de caractéristiques extraites d’une autre image. Comme nous venons de le voir, les descripteurs des points caractéristiques sont des vecteurs contenants des nombres réels. Bien évidement, la manière la plus simple de comparer deux points caractéristiques, revient à calculer la distance euclidienne (ou le carrée de la distance euclidienne) entre leurs descripteurs asso-

Chapitre 4 Système M.A.R.T.S : Mobile Augmented Reality Touring System (Conception et Expérimentation)

ciées. Etant donné deux vecteurs p et q, leur distance euclidienne est calculée de la manière suivante : dist(p, q) = v u u t 64 X i=1 (pi− qi)2 (4.2.3)

Il est clair que calcul de distance euclidienne serait très lent, dans le cas où la dimension de la base de données d’images est importante. Dans ce cas, il est préférable de choisir les descripteurs SURF de petite taille (vecteurs de dimension 64) au lieu des larges descripteurs SURF (vecteurs de dimension 128).

La recherche linéaire du plus proche voisin est couteuse pour les applications temps réel. Par conséquent, plusieurs méthodes se sont intéressées à la recherche approximative du plus proche voisin. En fait, c’est ce dernier type de recherche que nous avons utilisé pour le calcul de correspondances de points SURF. Dans cette optique, nous nous sommes appuyés sur le travail de Muja et al. [Muja 09], intitulé «Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration ». Muja et al. [Muja 09] proposent une bibliothèque d’algorithmes appelée FLANN (Fast Library for Approximate Nearest Neighbors), que nous avons employée dans notre publication intitulée « Mobile Augmented Reality Applications to Discover New Environments » [Ghouaiel 13b]. En effet, FLANN contient une collection d’al- gorithmes permettant de résoudre le problème de recherche approximative de plus proche voisin. Cette collection, fait appel, entre autres, à l’algorithme hiérarchique des K-moyennes (hierarchical k-means tree) [Arai 07] et à l’algorithme des arbres- KD randomisés multiples (multiple randomized kd-trees) [Duch 98]. FLANN per- met de sélectionner l’algorithme adéquat, en fonction de l’ensemble des données et en fonction d’autres facteurs tels que le temps de calcul et la précision.

Comme le met en évidence les tests d’évaluation présentés à la section sui- vante, FLANN génère énormément des faux positifs « outliers ». Par conséquent, le nombre de correspondances n’est pas significatif et ne permet pas de sélectionner la bonne image modèle. En ce sens, nous avons trouvé que dans la majorité des cas, le nombre de correspondances qui est le plus élevé n’appartient pas à cette dernière. Nous proposons donc d’effectuer une étape de filtrage suite à l’exécution de l’al- gorithme de recherche approximative du plus proche voisin. Le filtrage consiste à sélectionner les bonnes correspondances. Dans cette optique, deux points d’intérêts sont considérés comme appariés si la distance euclidienne entre leurs descripteurs est strictement inférieure à un seuil donné. Le seuil que nous employons est la médiane des distances euclidiennes minimales, obtenues suite à une première exé- cution de FLANN. Ainsi, l’appariement de points d’intérêt mettant en œuvre notre

4.2 M.A.R.T.S : implémentation du prototype expérimental principe de filtrage se résume en ces étapes :

Étape initiale

1. Appliquer l’algorithme de recherche approximative du plus proche voisin sélectionné par la bibliothèque FLANN.

Étape de filtrage

1. Pour chaque image modèle, enregistrer la distance euclidienne minimale ob- tenue.

2. Calculer la médiane des distances minimales.

3. Appliquer une deuxième fois l’algorithme de recherche approximative de plus proche voisin. Cette étape ne concerne que les images modèles ayant une dis- tance euclidienne minimale inférieure à la médiane, précédemment calculée. 4. Pour chaque image modèle, enregistrer le nombre de correspondances de

points SURF.

Sélection de l’image de référence

Nous supposons que suite à l’étape de filtrage, le nombre de correspondances devient significatif. L’image de référence liée à l’objet recherché se rapporte donc au nombre maximal de correspondances.