Détection de contours

L'objectif de la détection de contours est de repérer les points d'une image numérique qui correspondent à un changement brutal de l'intensité lumineuse.



Catégories :

Traitement d'image

Page(s) en rapport avec ce sujet :

  • LA D ´ETECTION DES CONTOURS DANS LES IMAGES. Une excellente comparaison et analyse des filtres de détection des contours est donnée dans [Cocquerez et ... (source : perso.telecom-paristech)
  • Comparaison d'images de module de gradient pour la détection de contours.... Application du filtre de Canny à la détection de contours.... (source : unit)
  • L'objectif du projet est la détection des contours d'une image par splines.... Nous voyons dans l'image filtre avec le filtre de lissage comme effectivement... (source : tsi.enst)

L'objectif de la détection de contours est de repérer les points d'une image numérique qui correspondent à un changement brutal de l'intensité lumineuse. Ces changements de propriétés de l'image traduisent généralement des événements importants ou des changements dans les propriétés du monde. Ils incluent des discontinuités dans la profondeur, dans l'orientation d'une surface, dans les propriétés d'un matériau et dans l'éclairage d'une scène. La détection de contour est un champ de la recherche qui appartient au traitement d'image ainsi qu'à la vision par ordinateur, en particulier dans le domaine de l'extraction de caractéristiques.

La détection des contours d'une image réduit de manière significative la quantité de données et élimine les informations qu'on peut juger moins pertinentes, tout en préservant les propriétés structurelles importantes de l'image. Il existe la plupart de méthodes de détection de l'image mais la majorité d'entre elles peuvent être regroupées en deux catégories. La première recherche les extremums de la dérivée première, généralement les maximums locaux de l'intensité du gradient. La seconde recherche les annulations de la dérivée seconde, généralement les annulations du laplacien ou d'une expression différentielle non-linéaire.

Exemple de détection de contours (Sobel)

Généralités

Dans une image en niveaux de gris, un contour est caractérisé par un changement brutal de la valeur. L'objectif de l'opération est de transformer cette image en une autre dans laquelle les contours apparaissent par convention en blanc sur fond noir.

Dans une section horizontale (ou verticale) de l'image rectangulaire, les variations de la valeur sont décrites par une courbe. Sur celle-ci un point d'un contour est associé à un maximum de la pente, c'est-à-dire à un extremum (maximum ou minimum) de la dérivée première. Cet extremum peut aussi s'interpréter comme un zéro de la dérivée seconde.

Dans une image numérisée, à chaque pixel est associée une valeur qui est généralement différente de la valeur des pixels voisins. La notion de dérivée correspondant à une variation illimitément petite doit par conséquent être remplacée par l'approximation différence finie utilisée en calcul numérique. Le problème est simplifié car on ne s'intéresse ici qu'aux comparaisons entre dérivées indépendamment de leurs valeurs. Ainsi la dérivée première au niveau d'un pixel se réduit à la différence entre les valeurs des deux pixels voisins, la dérivée seconde étant la différence entre les dérivées moyennées aux frontières des pixels.

Si on considère désormais l'image rectangulaire, les dérivées premières dans les deux directions perpendiculaires s'écrivent pour le pixel centre suivant les valeurs des pixels aux quatre points cardinaux :

Matrice contour.png

Dx = E - W   Dy = N - S

Les dérivées secondes sont données par

D2x = E - 2C + W  D2y = N - 2C + S

Enfin, il faut remarquer qu'en considérant classiquement les fonctions comme des sommes de sinusoïdes, la dérivation multiplie leur amplitude par leur pulsation : c'est par conséquent un filtre passe-haut qui introduit un bruit haute fréquence à l'origine de faux contours. Les dérivées ne sont par conséquent habituellement pas utilisées telles quelles mais associées à des filtres passe-bas (voir Lissage de l'image). L'utilisateur peut effectuer lui-même un prétraitement avec un filtre gaussien par exemple. Des méthodes plus élaborées incluent ce prétraitement dans le filtre.

Filtrage optimal

Les opérations décrites auparavant se traduisent par des filtres à appliquer à l'image. Canny[1] a cherché à définir des critères afin d'obtenir un filtre optimal pour la détection de contour. Ces critères sont les suivants :

Ces critères se traduisent par des conditions sur la réponse impulsionnelle du filtre et débouchent sur des détecteurs de contours particulièrement performants.

Dérivée première

Méthode de base

L'opérateur de Roberts décrit dans une image rectangulaire, ayant un contour rampe, les dérivées premières elles-mêmes sont d'un intérêt limité car la pente maximale a peu de chances de se trouver sur l'une des deux directions reconnues. Ce qui importe c'est la longueur du vecteur gradient dont elles sont les composantes. Cette longueur se calcule habituellement par le théorème de Pythagore au prix d'un calcul sur les réels et on l'accélère énormément en utilisant une approximation entière :|G| = |E - W| + |N - S|

Indépendamment de la précision du calcul, il faut transformer ce résultat en un filtre numérique. La notion physique de filtre correspond à la notion mathématique de convolution. Quand il s'agit de données numérisées comme dans le cas du traitement d'images, la relation entre les valeurs des pixels de sortie et celle des pixels d'entrée est décrite par un tableau de nombres nommé matrice de convolution.

Filtre de Prewitt

La matrice qui correspond au filtrage horizontal, faisant ressortir principalement les contours verticaux, selon l'opérateur de Prewitt, s'écrit hx = [-1 0 1] alors que la matrice verticale hy est sa transposée. Les deux convolutions avec le tableau de valeurs initiales créent deux tableaux Gx et Gy à l'origine du tableau G sur lequel on peut localiser les maximums.

Filtre de Sobel

On obtient un meilleur résultat en remplaçant le filtre rectangulaire par un filtre triangulaire.

Filtre de Canny

Le filtre de Sobel est apprécié pour sa simplicité et sa rapidité d'exécution. Ces qualités posent des problèmes quand il s'agit de traiter une image complexe. Le filtre de Canny a été bâti autour de l'algorithme de Sobel pour perfectionner ses résultats.

D'une part, les filtres triangulaires utilisés par Sobel étant peu efficaces face à une image fortement bruitée, un filtre gaussien est utilisé.

D'autre part, c'est là l'originalité de la méthode, elle permet d'éliminer des faux contours. En considérant non seulement l'intensité du gradient mais également sa direction, il est envisageable d'éliminer un pixel qui pointe vers deux pixels de valeur supérieure car ce n'est pas un maximum local. Il faut ensuite effectuer un seuillage par hystérésis. Pour cela on fixe deux seuils, un seuil haut sh et un seuil bas sb. On débute par sélectionner les points qui dépassent le seuil haut et on applique ensuite le seuil bas en ne conservant que les composantes connexes qui contiennent un point au-dessus de sh. En d'autres termes à partir de chaque point au-dessus de sh on "suit" un chemin constitué de points au-dessus de sb, ce chemin est le contour recherché.

Dérivée seconde

A priori, l'utilisation des dérivées secondes est plus commode que celle des dérivées premières : au lieu de chercher les maximums de l'intensité du gradient, on cherche l'annulation du laplacien, somme des dérivées secondes dans deux directions, soit N + S + E + W - 4C. La contrepartie de la simplicité est l'augmentcation du bruit par la seconde dérivation. Ce bruit est atténué par l'adjonction d'un filtre gaussien mais les méthodes du second ordre ne semblent pas compétitives avec celles du premier ordre évoquées auparavant.

Applications

La détection de contour est particulièrement utile en traitement d'images, c'est par exemple une étape indispensable à la reconnaissance de formes. Ces algorithmes sont aussi utilisés en imagerie médicale, cartographie, ...

Voir aussi

Références

Recherche sur Amazon (livres) :



Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/D%C3%A9tection_de_contours.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu