• Aucun résultat trouvé

3.5 Détecteur de points d’intérêt

3.5.2 Détecteur Harris Simplexe

Le calibrage nécessite un nombre de points minimum pour qu’il soit de qualité. Le problème avec le détecteur de Harris, c’est que le nombre de points détecté Npd est

dépendant, naturellement du seuil s, plus il augmente et plus le nombre de points détecté diminue. Il dépend également de la réponse du détecteur, c’est-à-dire qu’en fonction de

Fig.3.6 – Exemple de détection de points par le détecteur de Harris : (a) une des images de la mire de calibrage, (b) image résultat de la réponse du détecteur (en fausse couleur), (c) et résultat des 907 points détectés sur l’image originale (s = 0, 02).

l’image analysée, pour un même seuil, le nombre de points diffère. Nous souhaitons que le calibrage soit automatisé, donc la détection de point d’intérêts doit être mise en œuvre sur plusieurs images. Or dans le cas de ce détecteur on ne peut pas garantir un nombre minimum de points. C’est pour cette raison que nous proposons de modifier le détecteur Harris afin de permettre de déterminer a priori le nombre de points désiré Np∗ dans

une image. Tout le problème réside dans la détermination de la valeur du seuil s∗ qui

nous donne le nombre de points désiré Np∗. Pour déterminer le seuil à sélectionner nous

choisissons une méthode d’optimisation. Le nombre de point Npd est une fonction de la

réponse du détecteur : Npd= f (R(s)). La comparaison entre le nombre de points désiré

N p∗ et le nombre de points détecté f(R(s)) est une fonction de la forme exponentielle

décroissante en fonction de s. Pour déterminer s∗ nous choisissons de minimiser l’erreur

entre Np∗ et Np

d; comme elle est de la forme exponentielle décroissante et qu’il n’y a

créer un minimum local par rapport au nombre de points désiré. Au final nous devons minimiser la fonction suivante :

|Np∗− f (R(s))| (3.14)

Pour effectuer la minimisation de cette fonction nous allons utiliser une méthode d’optimisation par simplexe de type Nelder-Mead (J. Nelder et R. Mead 1965). Cette méthode compare la valeur d’une fonction objectif avec zéro et ne nécessite aucune déri- vation de la fonction contrairement aux méthodes classiques. Un simplexe de dimension n est un polytope de dimension n, c’est-à-dire une enveloppe convexe de n + 1 sommets formant un repère affine dans un espace euclidien Rn. Par exemple, un triangle est un

simplexe de dimension 2. Dans la méthode de Nelder-Mead, le simplexe change de forme d’itération en itération par réflection, expansion, contraction interne et contraction ex- terne. En fonction de l’erreur entre Np∗ et Np

d le simplexe va chercher directement le

seuil correspondant. Pour optimiser la rapidité de la recherche, la réponse du détecteur R propre à l’image est calculée une seule fois. La détermination des points dans R ne dépend que du seuil. La Figure 3.7 montre le schéma bloc de la boucle de recherche du détecteur Harris simplexe.

Fig.3.7 – Le schéma bloc du détecteur Harris simplexe.

Par exemple, avec une des images de notre mire, le détecteur de Harris déterminait 907 points pour un seuil s = 0, 02. Avec le détecteur Harris simplexe pour la même image, nous lui donnons le nombre de points que nous désirons, par exemple Np∗= 200 points,

le simplexe détermine automatiquement le seuil à s = 0, 05725. Une des contraintes de la méthode du simplexe et de l’initialiser au voisinage de la solution pour garantir sa convergence, pour compenser ce problème nous rajoutons une boucle d’incrémentation sur le seuil, si le simplexe ne trouve pas de solution autour de ce seuil, l’incrément se déplace et un nouveau simplexe est initialisé. On peut résumer le Harris simplexe par cet algorithme :

I : Image

N p∗ : Nombre de points désiré

k : Coefficient empirique de valeur 0, 04

R ← (I2

x× Iy2− Ixy× Ixy) − k × (Ix2+ Iy2)2 s ← 0

Tant que(Solution= 0) faire

Tant que (FinDeRecherche = 0) faire Is←seuillage(s,R)

pd← centre des crêtes de Is N pd← card(pd)

² ← |Np∗− Npd|

[s, FinDeRecherche, Solution] =simplexe(²) Fait

s ← s + 0, 1 Fait

pd: Ensemble des points d’intérêt détecté

Algorithme 1: Harris simplexe

Dans l’algorithme présenté, la fonction simplexe donne la nouvelle valeur du seuil s en fonction de l’erreur ². Elle renvoie également une information sur la fin de recherche par la variable F inDeRecherche = 1. Cette information peut prendre la valeur 1 dans deux cas. Soit le simplexe ne trouve pas de solution et s’arrête au bout d’un certain nombre d’itérations pré-défini. Soit il arrête sa recherche car il estime avoir trouvé une solution qui satisfait un critère d’encadrement de précision, à ce moment la fonction retourne l’information supplémentaire Solution = 1. Dans le cas où il ne trouve pas de solution et arrête sa recherche la valeur d’initialisation du seuil s est incrémentée d’un pas de 0, 1 en espérant se rapprocher de la solution recherchée. Appliquons cet algorithme aux trois images de la mire réalisée précédemment. Pour chaque paire d’images qui représente une couche, on contraint un nombre de points désirés à 500 points. Pour chaque couple Iiet Ii

(gauche et droite), des couches de bas (indice 1) en haut (indice 3) de la mire, le Harris simplexe nous renvoie les valeurs de seuil suivantes : pour I1, s = 0, 0635 et I1′, s =

0, 067266 ; pour I2, s = 0, 039125 et I2′, s = 0, 04025 et enfin pour I3, s = 0, 034813

et I′

3, s = 0, 04025. En représentant chaque point pour chaque image, on obtient bien

500 points par image (Figure 3.8). On remarque que les points détectés correspondent seulement aux parties nettes de l’objet, dans la profondeur de champ. Ce qui nous permet de sélectionner un ensemble de points de la mire en fonction des différentes couches de profondeur. Au total pour ce calibrage nous avons un nombre de 3000 points (500 points par couche et par image) qui se situent à différentes profondeurs dans la scène. Il reste à mettre en correspondance les points de chaque couche.

Fig. 3.8 – Exemples de résultat du détecteur Harris simplexe, pour chaque image, la consigne était de 500 points.