Détection de points caractéristiques dans les images

Samuel Loyson et David Cohen-Steiner

 

I- Présentation et enjeux du problème

Pour le système visuel humain, l'essentiel de l'information pertinente dans une image est contenue dans ses singularités. Il nous est en effet très difficile de reconnaître une image dont on aurait coupé les hautes fréquences. Les singularités les plus fréquentes et les plus pertinentes sont les coins, c'est-à-dire les extrémités de secteurs angulaires homogènes. Dans le cas des images réelles, ceux-ci peuvent provenir de trois origines différentes :

Les premiers et surtout les deuxièmes se révèlent particulièrement utiles :

L'algorithme que nous avons implémenté est à peu de choses près celui qui est présenté dans l'article de Rachid Deriche et Gérard Giraudon "A computational approach for corner and vertex detection". Les coins, tels qu'ils y sont modélisés, induisent des maximums locaux de la courbure gaussienne de l'image -vue comme une nappe. Nous allons maintenant montrer comment ce critère est utilisé pour réaliser un détecteur.

 

 

II- Approche pratique

Nous avons donc vu l'intérêt que présente la détection de coins dans une image. Avant de pouvoir passer a la mise en œuvre, il faut nous fixer un modèle mathématique du "coin".

Nous nous limitons ici au cas des images à niveau de gris. Une image est alors une fonction f(x,y) d'une partie de R² ou Z² dans R, ou Z, ou [0,255], selon la représentation choisie. On se place tout d'abord dans le cas continu : une image est alors une nappe dans R3. Les coins peuvent alors être interprétés comme les maximums locaux de courbures.

Dans le cas discret, on adoptera donc une mesure "d'angularité" d'un point de l'image, et les coins seront les maxima locaux de cette mesure. Suivant [1], nous choisirons donc comme mesure la courbure gaussienne, qui est aussi le produit des courbures principales :

(Kmin.Kmax)=(Ixx.Iyy - Ixy²)/(1 + Ix² + Iy²)

La détection de coins sur une image se fait donc simplement par un calcul de dérivées à un certain ordre, puis par extraction des maxima locaux.

Image initiale

Image courbure

Image initiale avec localisation des coins

 

NB: On peut déjà remarquer qu'un coin de l'image se traduit par deux maximums de courbures,

quasi confondus : un positif (en blanc) et un négatif (en noir)

 

Cette approche extrêmement simple, et hélas aussi extrêmement limitée. En effet, pour une image non synthétique, le bruit présent dans l'image nous force à effectuer un filtrage préliminaire à la recherche de maximums locaux de courbure, sous peine de voir apparaître partout des coins sans aucune signification.

Nous effectuons donc un filtrage gaussien. Cette opération de filtrage est caractérisée par l'écart-type sigma de la gaussienne utilisée pour la convolution. Pour différents facteurs sigma, on obtient une succession d'images issues de l'original. On parle alors de représentation à différentes échelles, ou de facteur d'échelle.

Une telle opération de filtrage se traduit par un lissage de l'image en général, et des coins en particulier. Les angles nets deviennent doux, et les coins ne sont plus aussi bien localisés. On observe notamment que les maximums de courbures positifs et négatifs ne sont plus confondus, mais s'éloignent l'un de l'autre. Les figures ci-dessous donnent une interprétation simple de ce phénomène à une dimension, et le résultat sur notre image "d'école".

Sur l'échelon d'origine, les deux maxima de courbure sont bien confondus, et donc le sommet bien localisé.

Après filtrage gaussien, l'échelon est devenu une "pente douce", on a deux maxima de courbure bien séparés, et l'emplacement du vrai coin (avant filtrage) se trouve quelque part entre ces deux maximums.

Après le filtrage, les coins sont arrondis.

On retrouve cela sur l'image de courbure, avec des zones dilatées de courbure positive et négative, et des maxima éloignés.

Sur l'image d'origine, pour un seul coin, on se retrouve avec deux maximums de courbures, délocalisés.

 

 On a donc deux problèmes issus de ceux phénomène :

Dans le cas d'un coin simple, on peut alors remarquer que les deux maxima se déplacent sur une droite avec le facteur d'échelle, et que cette droite est la "bissectrice" du coin. Ce dernier se trouve donc quelque part sur la droite qui relie les deux extremums qui en sont issus. On pourra alors utiliser la propriété que l'emplacement réel du coin correspond aussi à un zero-crossing du Laplacien, et que les zeros-crossing sont eux des invariants par rapport au facteur d'échelle.

Une première approche algorithmique consiste donc à trouver les extremums de la courbure gaussienne, à reformer les couples issus d'un même coin, puis à rechercher le coin sur le segment de droite qui joint ces deux points grâce au Laplacien.

Le problème essentiel est celui du matching : comment identifier correctement les couples d'extremums issus d'un même coin ? Un simple critère de distance s'avère insuffisant. En effet, l'extremum de signe opposé le plus proche conduit très souvent à un mauvais matching. Pour améliorer les résultats, on est amené a mettre en place des conditions de distances minimale entre les deux maxima en fonction du facteur d'échelle, puis à comparer leur valeur respective que l'on peut contraindre à un certain rapport. Voici quelques résultats.

 

Tout d'abord avec une image de synthèse bruitée :

Ici on voit l'image filtrée, d'où son aspect "floue".

Ici, l'image de la courbure, avec les extremums de courbure positifs (croix rouges) et négatifs (croix blanches). On note les dédoublements des extremums négatifs, qui peuvent poser des problèmes de couplage.

Ici on a l'image originale (non filtrée), avec la position reconstruite des coins. On voit que certains sont bien placés, mais que la méthode ne fonctionne pas bien pour les angles aigus, alors que l'on a raté un coin ayant un angle assez faible.

 

Explications :

Du fait de cette difficulté de matching, nous ne sommes pas parvenus à des résultats satisfaisants sur les images réelles avec cette méthode. En effet, dans les images réelles, le nombre et la densité des coins sont généralement beaucoup plus élevés que sur les images vues jusqu'à présent (les superpositions d'objet dans l'espace, les ombres, les textures donnent naissance à de nombreux "coins").

Comme remarqué précédemment, les maximums se déplacent sur une même droite avec les changements d'échelle. Une deuxième idée consiste donc à coupler les maximums d'un même signe à deux niveaux d'échelle différents pour en déduire la direction de la bissectrice, puis rechercher encore une fois la position du coin d'origine sur cette droite grâce au zero-crossing du Laplacien.

Cette méthode possède l'avantage d'un matching beaucoup plus robuste : en effet, les maximums se déplacent continûment en fonction du facteur d'échelle. Le compromis devient alors d'avoir un écartement assez important pour avoir une indication fiable sur la direction de la droite de recherche.

Voici tout d'abord les résultats obtenus sur la même image de synthèse, avec un bruit de même importance.

Ici on voit l'image filtrée, d'où son aspect "floue".

Ici, l'image de la courbure, avec les extremums de courbure positifs uniquement. Maintenant, les croix rouges désignent les maximums au premier facteur d'échelle, les croix vertes au deuxième. On a plus les problèmes de dédoublements. Comme on le verra plus tard, des maximums peuvent cependant fusionner quand le facteur d'échelle augmente, ce qui peut amener à la perte de coins, mais pas à une mauvaise localisation.

Ici on a l'image originale (non filtrée), avec la position reconstruite des coins. Il y a toujours un coin qui manque, mais tous les autres coins sont bien placés.

 

Enfin, voyons maintenant ce que donne la méthode sur deux images réelles :

Une table avec des jouets.

 

 

 

 

Un zoom sur l'empilement "badaboum"…il manque toujours des coins, mais il n'y a pas (ou quasi-pas) de fausses alertes.

Un deuxième zoom sur la grue. Encore une fois des coins ratés, mais pas de faux coins (ou presque).

Une image d'architecture, catégorie qui se prête bien à ce type de traitement.

Un gros zoom sur la "piscine", avec des coins vraiment bien localisés.

 

III- Limites et améliorations possibles

 

L'écart delta entre les deux valeurs de l'écart-type utilisées donne l'éloignement standard entre les deux maxima de courbure correspondant à un même coin (celui-ci dépend également de l'acuité du coin). Plus delta est grand, plus le risque d'erreurs dans l'appariement des maxima est grand. D'un autre côté, si delta est trop petit, on aura à cause de la discrétisation de l'image une grande imprécision sur la direction de la droite joignant les deux maxima. Le coin détecté risque donc d'être mal localisé, voire totalement erroné. Le réglage de delta implique donc de trouver un bon compromis. Les résultats montrent que delta doit être supérieur à 2. Par conséquent, la grande échelle est au moins égale à 3. Il en résulte que les maxima trouvés à grande échelle peuvent provenir de la "fusion" de maxima induits par des coins trop proches, comme le montre l'exemple suivant :

 

 

 

Les quatre coins de la fenêtre donnent bien quatre maxima à petite échelle (les quatre points rouges), mais à grande échelle il n’en subsiste plus qu’un (le point vert). De ce fait, un seul coin est détecté, résultant de l’appariement du maximum à grande échelle avec le maximum à petite échelle le plus proche, en l’occurrence en bas à droite.

Une solution à ce problème serait de trouver les maxima de courbure pour une gamme d’échelles allant de la petite à la grande, et d’opérer un chaînage de ceux-ci. Si le pas définissant la gamme d’échelles est suffisamment petit, il est facile d’établir une filiation entre les maxima au différentes échelles. A partir de là, en appariant un père avec tous ses fils, on récupère les coins que l’on ne détectait pas précédemment. Cette méthode semble en fait régler tous les problèmes d’appariement de maxima.

Un autre problème est celui des coins très aigus ou très obtus. Les coins obtus donnent lieu à des maxima de faible amplitude, et donc trop facilement éliminés par l’étape de seuillage. D’autre part, les coins aigus fournissent des maxima éloignés, ce qui rend leur appariement difficile.

Enfin, les portions rectilignes de l’image peuvent, à cause de la discrétisation, présenter des sauts. Les maxima de courbure correspondants sont proches et d’intensité significative. Si on veut les éliminer par seuillage, on risque donc d’éliminer également certains coins obtus. Voici une illustration sur une image synthétique :

 

Toutefois, l’amplitude des maxima de courbure dûs à la discrétisation diminue plus vite que celle des maxima de courbure induits par des angles obtus lorsque l’échelle augmente. On pourrait donc résoudre le problème en chaînant les maxima et en ne conservant que les chaînes qui comportent des maxima à suffisamment grande échelle.

 

Pour conclure, nous pensons que notre implémentation d'un algorithme simple démontre l'intérêt et le potentiel du principe d'une analyse multi-échelles. Il devrait prendre tout son sens dans une mise en œuvre utilisant toute une gamme d'échelles plutôt que simplement deux.