Détection de Contours et Segmentation Génie électrique 2017
Chapitre 3
Détection de Contours
3.1Introduction
La détection de contours est une technique de réduction d'information dans les images, qui
consiste à transformer l'image en un ensemble de courbes, pas forcément fermées, formant les
frontières significatives de l'image.
Si les structures extraites sont simples à manipuler (courbes fines, régulières, stables...), elles
peuvent être utiles pour la mise en correspondance d'images (robotique, indexation,...).
Définitions
Discontinuités de l’image
Les contours forment des segments, courbes, motifs
Frontière qui sépare 2 objets (ou 1 objet du fond) dans une image.
Le contour permet la réduction de l’information:
Information de toute l’image résumée dans les contours des diffèrent objets,
Contour : partie la plus informative d’une image,
Applications
Reconnaissance d’objets, de formes, classifications de scènes
Mise en correspondance : calibration, reconstruction 3D
Compression
Souvent utile pour toute application de traitement d’image.
3.2 Modèle de contour
Il existe plusieurs modèles de contours, le modèle le plus courant : Marche d’escalier,
Exemple de différents modèles de contours : marche d’escalier, rampe et toit :
51
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Figure 3.1 : Modèles des contours
Figure 3.2 : Largeur et Hauteur du contour
3.3 Approches de détection de contour
Il existe plusieurs approches de détection de contour, Deux approches sont les plus utilisées:
Approches par dérivée premières : approximations du Gradient
Approches par dérivée secondes : approximations du Laplacien.
Remarque: la détection de contour de tout objet dans n’importe quel type d’image est un
problème qui est loin d’être résolu.
3.3.1 Approches par dérivées premières
Pour détecter les contours d’une image, il faut procéder de la sorte :
1. Approximations discrète du gradient par différences finies
Filtres de convolution (masques)
2. Calcul de la norme
Maxima locaux dans la direction du gradient
3. Suppression directionnelle du non-maxima local
4. Seuillage
5. Chaînage
52
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
3.3.1.1 Gradient
Dans le cas 2D des images, le vecteur gradient est défini au point de coordonnées x, y par :
f x , y f x , y
f x, y , (3.1)
x y
Où f représente l’image.
Le gradient peut être représente en coordonnées polaires par un module et une direction
dans l’image.
Le module du gradient permet de quantifier l'importance du contour mis en évidence,
c'est-à-dire l'amplitude du saut d'intensité relevé dans l'image :
f x , y f x, y
2 2
f x, y x y (3.2)
La direction du gradient permet de déterminer l'arête présente dans l'image. En effet, la
direction du gradient est orthogonale à celle du contour :
f x, y / y
x, y ar tan g (3.3)
f x, y / x
Le module du gradient mesure la force du contour
Le gradient est un vecteur perpendiculaire au Contour
Un contour apparait comme une ligne où sont localisées les très fortes variations de
f x, y .
Un contour est alors défini comme le lieu des maximas de la dérivée première dans la
direction du gradient.
53
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Figure 3. 3 : gradient
Image originale Image originale sous forme surfacique
Gradient et orientation
Figure 3. 4 : Exemple du gradient d’une image
54
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Figure 3. 5 : Principe du gradient
Cas discret
On estime le gradient en calculant une variation monodimensionnelle dans une direction
« donnée »
m n
G x, y f h x, y h i , j f x i, y j
i m j n
(3.4)
La taille de l’opérateur (autour de la position x, y ) est donnée par le couple m, n
Pour estimer le gradient, on choisit deux directions privilégiées orthogonales (les lignes
et les colonnes) sur lesquelles on le projette
Gx est le gradient vertical
Gy est le gradient horizontal
La norme du gradient est donnée par :
G x, y f x, y G x , y G x, y
2 2
x y (3.5)
La direction du gradient en un point est donnée par :
55
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
G y x, y
x, y ar tan g (3.6)
Gx x, y
On approche les dérivées directionnelles en utilisant les opérateurs anisotropes
Gx i, j x f i, j f i 1, j f i, j f i, j * hx
Gy i, j y f i, j f i, j 1 f i, j f i, j * hy
Ce qui correspond à une convolution avec les masques :
1
hx 1 1 et hy
1
Malheureusement, ces dérivées sont très sensibles au bruit
Nécessite un filtrage préalable.
Figure 3. 6: Exemple d’application des masques gradient
3.3.1.2 Filtres dérivatifs du premier ordre
Un filtre est composé de deux masques :
hx Détecte les contours verticaux
hy Détecte les contours horizontaux
Dans le domaine spatial : convolution linéaire de l’image avec les filtres
Image des contours verticaux, ou gradient vertical : Gx f * hx
56
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Image des contours horizontaux, ou gradient horizontal : Gy f * hy
Gx Gy
2 2
Module du gradient : G
Filtres courants : Roberts, Prewitt, Sobel, Kirch
3.3.1.3 Opérateurs du premier ordre
Opérateur de Roberts :
0 1 1 0
Filtres : hx hy
1 0 0 1
Opérateurs de Sobel (c = 2) et Prewitt (c = 1)
1 0 1 1 c 1
hx c 0 c hy 0 0 0
1 0 1 1 c 1
Ces masques opèrent tout d’abord un lissage de l’image, suivi d’une opération
de dérivation : ils sont dits séparables
1 0 1 1 1 c 1 1
hx c 0 c c . 1 0 1 hy 0 0 0 1 0 1 . c
1 0 1 1 1 c 1 1
On combine à la fois un filtrage et une dérivée
Moins sensible au bruit que le calcul direct des dérivées.
Le lissage permet d’atténuer le bruit dans l’image, pouvant être interprété comme un
contour :
Prewitt : filtre moyenneur +Dérivée
Sobel : filtre gaussien + Dérivée.
57
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Figure 3. 7: Détection de contour par le masque de Sobel
Figure 3. 8: Détection de contour par le masque de Sobel
Le principal avantage de ces masques est leur facilite de mise en œuvre ainsi que la
rapidité de leur traitement.
Leur inconvénient est leur grande sensibilité au bruit. De plus les contours obtenus sont
souvent assez larges,
58
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
3.3.1.4 Post-Traitements
De l’image des dérivées aux contours
Pour extraire les contours de l’image :
1. Suppression de non maxima dans la direction du gradient ;
2. Seuillage ;
3. Chaînage des contours.
3.3.1.4.1 Suppression directionnelle des non maxima locaux
Extraction des maximas locaux dans la direction du gradient
o Opération sur un voisinage de l’image de la norme du gradient
o On compare le gradient d’un point P avec celui de ses deux voisins P1 et
P2 dans la direction perpendiculaire au contour
Un point P est un maximum local si :
f P f P1 et f P f P .
2
Figure3. 9: Maximal local
On arrondit la direction du gradient au multiple de 45° le plus proche.
Le point P1 est le pixel voisin de P situé dans cette direction, et P2 est le pixel opposé par
rapport à P. Voire figure 3.9
3.3.1.4.2 Le seuillage
Le seuillage est le traitement permettant de sélectionner les contours les plus significatifs dans
l'image représentant le module du gradient. Une fois la norme du gradient G i, j calculée en
chaque point de l’image, il faut seuiller cette norme pour décider si un pixel fait partie ou non
d’un contour. Cette opération nécessite le réglage d'un paramètre : le seuil S.
59
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Si la valeur du module du gradient en un pixel de l'image dépasse le seuil fixe, la
valeur résultante du pixel est 1.Tous les pixels possédant une norme supérieure à un
seuil S sont déclarés appartenir à un contour.
Dans le cas contraire, la valeur du pixel est fixée a 0 :
1 si G i, j S
G i, j
0 sin on
Tout le problème réside alors dans le choix du seuil :
Un seuillage trop bas nous amène à une sur- détection : on détectebeaucoup de bruit et
des contours épais apparaissent
Un seuillage trop haut amène à une sous-détection : contours non fermés.
3.3.1.5 Méthodes de seuillage
Les méthodes précédentes ont permis de déterminer le module du gradient d'une image
qui permet effectivement de mettre en évidence les contours présents.
L’image obtenue s'exprime en niveaux de gris indiquant l'importance de chaque rupture
d'intensité.
Une nouvelle étape est alors nécessaire de façon à aboutir à une information plus
tranchée.
L'image fb i, j (l’image contour) résultant de ce traitement est en noir et blanc.
Les pixels blancs (de valeur 1) attestent de la présence d'un contour, les pixels noirs (de
valeur 0) de l'absence du contour.
3.3.1.5.1 Le seuillage fixe
Le seuillage fixe est le plus simple, on passe un seuil critère en paramètre de la
fonction, on parcourt notre image du gradient et si la norme est supérieure au seuil
critère alors c’est un contour, sinon on continue.
NB: Une fois le calcul du gradient termine, on doit normaliser les valeurs de celui-ci pour
qu’il soit compris entre 0 et 255 G 255
f min f .
max f min f
60
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Figure 3. 10: exemple de seuillage fixe
3.3.1.5.2 Le seuillage global
Le seuillage global fait appel à la fonction de seuillage fixe mais en fixant le seuil en
calculant la moyenne globale de la norme de l’image gradient,
On additionne toutes les normes pour diviser le tout par le nombre de pixels de l’image
originale,
Ce seuillage s'avère plutôt décevant, la moyenne est souvent trop faible pour obtenir des
contours corrects.
Figure 3. 11: Seuillage global
3.1.3.1.5.3 Seuillage global par histogramme
La valeur du seuil S est alors déterminée en tenant compte de l'histogramme de l'image,
L'idée est de sélectionner un pourcentage des contours les plus significatifs,
61
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Exemple :
On peut désirer garder 20 % des contours les plus forts. Dans ce cas, en détermine
l'histogramme cumule du module du gradient,
Le choix d'un pourcentage de pixels et donc des contours les plus significatifs conduit
à la valeur du seuil S à utiliser dans la binarisation de l'image.
Figure 3. 12: Exemple de seuillage global par histogramme
3.3.1.5.4 Le seuillage local
Le seuillage local calcul aussi une moyenne mais une moyenne locale au pixel visite.
On passe en paramètre un voisinage qui sert à déterminer quels points on doit utiliser
pour calculer cette moyenne.
Exemple: Avec un voisinage de 1 on calcule la moyenne avec les 8 points qui entourent le
point courant.
Figure 3. 13: Seuillage local voisinage de 1.
62
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
3.3.1.5.5 Seuillage avec hystérésis
Il s’agit de diminuer l’importance du seuil lors du seuillage du gradient
Avant, il y avait un seuil unique qui amenait soit à des fausses alarmes, soit à des
lacunes. Il était très difficile, voire impossible, de trouver un seuil adapté à toute l’image.
On introduit maintenant 2 seuils : un seuil haut et un seuil bas.
Si norme > seuil haut contour sur 1
Si norme < seuil bas pas de contour 0
Si seuil bas < norme < seuil haut contour de fermeture 2
Les contours hypothétiques de fermeture sont transformés en contours sûrs s’ils sont adjacents
à un contour déjà codé à 1.
3.3.1.5.6 Chaînage des contours
Nécessaire pour beaucoup d’applications, avoir un ensemble de composantes connexes
Pour extraire droites, cercles, formes géométriques être présentations plus complexes.
Fermeture des contours par extrapolation
Suppression des contours non fermés
Suppression des branches pendantes des contours fermés.
Figure 3. 14: Exemple de post-traitements sur les contours.
63
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
3.3.2 Approximations du Laplacien
Une autre approche pour trouver les contours de l'image est d'utiliser la seconde dérivée de
l'image. Pour cela, on utilise le Laplacien comme operateur.
Aux points contours, la dérivée seconde est nulle.
Plus précisément, les points contours sont caractérisés par un passage par zéro (ang.
«zero crossing ») de la dérivée seconde.
Figure 3. 15: Laplacien d’une image
3.3.2.1 L’opérateur Laplacien
L’opérateur Laplacien, défini par :
2 f 2 f
f
x 2 y 2
Remarque : le Laplacien est un opérateur scalaire et isotrope.
3.3.2.2 Utilisation du Laplacien pour la détection des points contours
Les passages par zéro de la dérivée seconde directionnelle f '' coïncident généralement
avec ceux du Laplacien f 0 .
En particulier: P x0 , y0 est point contour si
2 f x0 , y0 2 f x0 , y0
f x0 , y0 0
x 2 y 2
64
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Un passage par zéro du Laplacien correspond donc à une dérivée seconde directionnelle
nulle dans la direction du gradient.
3.3.2.3 Dérivées secondes discrètes
2 f x, y 2 f x, y
f x, y
x 2 y 2
f x 1, y f x, y f x, y 1 f x, y
x y
f x 1, y f x, y f x 1, y f x, y f x, y f x 1, y
x
f x 1, y 2 f x, y f x 1, y
Masque associé à la dérivée seconde selon x :
1 2 1
De même
f x, y 1 f x, y f x, y 1 f x, y f x, y f x, y 1
y
f x, y 1 2 f x, y f x, y 1
Masque associé à la dérivée seconde selon y:
1
2
1
D'où l'approximation discrète du Laplacien ...
f x, y f x 1, y f x 1, y 4 f x, y f x, y 1 f x, y 1 .
Qui se calcule donc grâce au masque de convolution :
0 1 0
1 4 1 .
0 1 0
Autres approximations possibles du Laplacien :
1 1 1 1 2 1 1 4 1
1 8 1 , 2 12 2 , 4 20 4 .
1 1 1 1 2 1 1 4 1
65
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
3.3.2.4 Du Laplacien aux images des dérivées
Détection des passages par zéro du laplacien
En pratique :
Prendre une fenêtre centrée 3 3 sur le pixel i, j , et calculer max f L et
min f L dans ce voisinage.
Le passage par 0 sera détecté si max f L 0 , min f L 0 et
max f L min f L S .
Exemples d’images
Image originale Laplacien
Figure 3. 16: Exemple d’application de le Laplacien
Source Seuil bas Seuil moyen Seuil haut
Figure 3. 17: Exemple d’application de le Laplacien avec seuillage
Passage par zéro du Laplacien : seuiller l’amplitude des variations.
66
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
3.3.2.5 Réduction de la sensibilité au bruit
Du fait du double dérivation, le Laplacien est très sensible au bruit.
On préfère utiliser le Laplacien à partir de dérivées de gaussiennes :
Avant d'utiliser le Laplacien pour détecter les points contours.
Possibilité de réaliser ces deux opérations en une seule :
1 x2 y 2
g x, y exp .
2 2 2 2
g f g f LoG f
Expression du l’opérateur LoG
g x, y x x2 y 2
exp
x 2 4 2 2
2 g x, y 1 x2 x2 y2
1 exp
x2 2 4 2 2 2
D’où
1 x2 y 2 x2 y2
LoG x, y g x, y 1 exp .
2 4 2 2 2
3.3.2.5.6 Approximation de LoG par différence de gaussiennes (DoG)
Le filtre LoG peut être approché par la différence de deux gaussiennes d'écarts-types proches :
LoG x, y DoG x, y, 1 , 2 g x, y, 1 g x, y, 2
Avec
1 2 .
Localiser les contours aux passages par 0 de LoG f .
Algorithme
Convolution de l'image avec LoG (approché par un masque de taille n x n).
Autre possibilité : utiliser DoG x, y, 1 , 2 (avantage : filtres gaussiens séparables).
Détection des passages par 0 de l'image résultante.
67
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
(Éventuellement :) Seuillage des passages par 0.
Avantage : prise en compte des seuls passages par 0 significatifs.
Inconvénient : on perd la propriété de fermeture présentée par les lignes de passages par
0 du Laplacien.
Limites :
Pour élevé, localisation médiocre et points d'intérêt saillants « perdus ».
3.4 Comparaison Gradient / Laplacien
Gradient
Calcul des dérivées partielles (lissées)
Calcul de la norme et de la direction du gradient
Suppression des non-maximas locaux de la norme du gradient dans sa direction
Seuillage par hystérésis des maximas locaux de la norme du gradient.
Avantages
Fournit l'orientation du contour
Bonne localisation malgré le lissage
La suppression des non-maximas locaux fournit des contours fins
Inconvénients
Assez sensible au bruit
Nécessite un lissage
Le seuillage fournit des contours non fermés.
Laplacien
Lissage de l'image en utilisant LoG ou DoG
Calcul du Laplacien
Détection des passages par 0 du Laplacien
Seuillage des passages par 0 du Laplacien.
Avantages
Proche du système visuel humain
La détection des passages par 0 fournit des réseaux de lignes fermées
Inconvénients
Grande sensibilité au bruit
nécessite un lissage fort
affecte la localisation
68
BelmeguenaïAïssa Université 20 Août 1955
Détection de Contours et Segmentation Génie électrique 2017
Pas d'info sur l'orientation du contour
Le seuillage des passages par 0 crée des lacunes (« ouvertures ») dans les contours.
3.5 Conclusion
Pas d'opérateur parfait pour détecter les contours
On obtient en pratique des contours incomplets (ouverts)
Détection incorrecte : pixels superflus, pixels manquants
Localisation incorrecte : erreurs dans la position des points contours,
l'orientation
La détection des points contours n'est que la première étape dans la chaîne de
segmentation.
69
BelmeguenaïAïssa Université 20 Août 1955