0 Détection de Contours
0 Détection de Contours
0 Détection de Contours
JEAN-HUGH THOMAS
Table des matières
3
Bibliographie 63
4
Cours
I
I-
La mise en évidence des points représentant les contours d'objets dans une image peut servir à reconnaître
des objets présents dans une scène, à différencier des zones de l'image, à faire de la segmentation d'images, à
extraire une information réduite souvent pertinente pour caractériser l'image.
Un contour se matérialise par une rupture d'intensité dans l'image suivant une direction donnée. Plusieurs
méthodes existent pour détecter cette rupture, les unes plus ou moins complexes, les autres plus ou moins
gourmandes en calculs. Dans la plupart des cas et en particulier pour ceux présentées ici, la même
méthodologie est employée. Elle s'applique en deux étapes : la première permet de localiser les contours à
partir d'un calcul de Gradient ou de Laplacien dans des directions privilégiées tout en quantifiant
l'importance du contour (voir figure ci-après). La seconde étape va permettre d'isoler les contours du reste de
l'image à partir d'un seuillage judicieux. Plusieurs méthodes permettent de déterminer le Gradient ou le
Laplacien d'une image. Il en est de même des techniques de seuillage. Ces deux étapes sont indépendantes, il
existe donc un grand nombre de combinaisons calcul de Gradient-opération de seuillage conduisant à la
mise en évidence des contours. Le rôle de l'ingénieur est souvent de choisir les opérateurs les mieux à même
de satisfaire les exigences associées à l'image à traiter.
5
Cours
1. Principes
En considérant l'image dans un repère orthogonal (Oxy) tel que (Ox) désigne l'axe horizontal et (Oy) l'axe
vertical, le Gradient de l'image (ou plutôt de la luminance f ) en tout point ou pixel de coordonnées (x,y)
est désigné par :
∂f
f= ∂x
f =∇
Grad
∂f
∂y
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 :
6
Cours
2 2
f ∥= ∂f ∂f
∥∇
∂x ∂y
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 /∂ y
0=arctan
∂ f /∂ x
Le principe de la détection de contours par l'utilisation du gradient consiste à calculer d'abord le gradient
de l'image dans deux directions orthogonales puis le module du gradient. Il s'agira ensuite d'effectuer une
sélection des contours les plus marqués, c'est-à-dire les points de plus fort contraste par un seuillage adéquat,
les directions des contours étant orthogonales à la direction α 0 déterminée en tout pixel de l'image (voir ci-
dessous).
Synoptique d'une détection de contours par gradient. Les contours sont finalement représentés par des pixels blancs sur fond noir.
a) Introduction
Ces opérateurs sont à considérer comme des filtres qui vont être corrélés à l'image. Les réponses
impulsionnelles de ces filtres peuvent se présenter sous la forme de fonctions analytiques souvent d'une seule
variable ou bien sous la forme de masques bi-dimensionnels. Dans les deux cas le filtrage a lieu en deux
étapes : un filtrage suivant les lignes de l'image puis suivant les colonnes dans le cas d'une expression
monodimensionnelle de la réponse impulsionnelle du filtre, une corrélation bi-dimensionnelle de l'image avec
deux masques modélisant deux contours dans des directions orthogonales dans l'autre cas.
Pour chaque opérateur, deux masques sont utilisés de façon à déterminer le gradient de l'image dans deux
directions orthogonales.
7
Cours
ii Approximation de base
Il s'agit bien d'un calcul de gradient suivant l'axe horizontal. En faisant subir une rotation de /2 au premier
masque, il apparaît le filtre suivant dont l'origine est le point 1 :
1
-1
8
Cours
Ce masque proposé en 1965 permet de calculer un gradient le long des diagonales de l'image :
0 1
-1 0
1 0
0 -1
L'origine est le point du haut à droite si bien que la réponse impulsionnelle est telle que :
h(-1,0) = 1
h(0,-1) = -1
La sortie obtenue après filtrage est :
2
∇ f = f x 1, y f x−1, y f x , y1 f x , y−1−4 f x , y
La figure suivante propose une illustration de l'application de ces masques.
9
Cours
Le calcul de gradient est mené par l'intermédiaire de deux masques, le premier effectuant un gradient
horizontal, le second un gradient vertical. Là encore, le deuxième masque se déduit du premier par une
rotation de /2 . Les masques sont donnés ci-dessous pour les contours horizontaux puis verticaux.
1 c 1 -1 0 1
0 0 0 -c 0 c
-1 -c -1 -1 0 1
1
c2
Lorsque c=1, il s'agit des opérateurs de Prewitt, lorsque c=2, de ceux de Sobel. Par rapport aux précedents,
ces masques ont l'avantage de produire deux effets. Outre le calcul du gradient dans une direction, ces
masques effectuent un lissage dans la direction orthogonale. Ce lissage rend ces masques un peu moins
sensibles au bruit que les précédents.
L'origine de ces masques est toujours le pixel central. La réponse impulsionnelle h(m,n) des filtres de Prewitt
et Sobel pour la mise en évidence des contours horizontaux est telle que :
h(-1,1) = h(1,1) = 1
h(-1,-1) = h(1,-1) = -1
h(0,1) = c
h(0,-1) = -c
La sortie obtenue après filtrage est :
10
Cours
1 1
1
∑ ∑ h m , n f mi , n j=
c2
h−1,1 f i−1, j1h0,1 f i , j1
m=−1 n=−1
1
h 1,1 f i1, j1h −1,−1 f i−1, j−1
c2
1
h−1,0 f i−1, jh −1,1 f i−1, j1
c2
1 1
1
∑ ∑ h m , n f mi , n j=
c2
f i−1, j1c f i , j1 f i1, j1
m=−1 n=−1
1
− f i−1, j−1c f i−1, j f i−1, j1
c2
L'équation laisse apparaître la double action avec un moyennage horizontal sur trois pixels sur les lignes au
dessus et au dessous du pixel central et un calcul de gradient vertical entre les deux lignes.
Pour la mise en évidence des contours verticaux, c'est l'autre masque qui est utilisé. La sortie obtenue après
filtrage peut se mettre sous la forme :
1 1
1
∑ ∑ h m , n f mi , n j=
c2
f i1, j1− f i−1, j1
m=−1 n=−1
1
c f i1, j−c f i−1, j
c2
1
f i1, j−1− f i−1, j−1
c2
Cette écriture permet elle aussi de mettre en évidence la double action : un gradient horizontal est en effet
calculé sur trois lignes puis un lissage vertical est opéré.
Les deux écritures employées montrent bien que les deux actions, lissage et dérivation, du filtrage de Prewitt
ou de Sobel sont séparables.
La figure suivante propose une illustration de l'application des masques de Sobel.
11
Cours
Le lecteur intéressé pourra consulter l'ouvrage [3] [1] qui entreprend des études comparatives de plusieurs
masques à partir d'images de test.
Le principal intérêt de ces masques est leur facilité 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.
D'après l'ouvrage [2] [2] [2] , le filtre de Sobel est le plus utilisé dans les applications industrielles nécessitant
des contraintes temps-réel.
v Opérateur gradient boussole
Les opérateurs dits boussole mesurent le gradient dans des directions sélectionnées. L'image est
successivement filtrée par un ensemble de masques mk(i,j) dont chacun représente une approximation discrète
d'un contour idéal dans une orientation spécifique (voir figure ci-après). Le résultat du filtrage de l'image f(i,j)
avec le kième masque est gk(i,j).
Il s'agit alors de garder les contours correspondant à l'orientation du masque ayant conduit au maximum des
fonctions gk(i,j) avec k allant de 0 à 7, représentatif des huit principales directions d'une boussole. Un autre
critère possible revient à chercher le masque correspondant à la direction du contour dont le coefficient de
corrélation avec l'image initiale est le plus fort. Il s'agit de minimiser rk(i,j) l'inverse du coefficient de
corrélation.
critère 1 :
Max∣g k i , j ∣
k
critère 2 :
Min∣r k i , j∣
k
avec
r i , j=
∑f
i,j
2
i , j ∑ mk i , j
i, j
2
k
∑ f i , j mk i , j
i,j
Plusieurs masques peuvent être utilisés. La démarche consiste à choisir un type de masque puis à effectuer des
permutations circulaires dans les huit directions possibles du gradient. Des exemples d'opérateurs gradient
boussole dans la direction Nord sont présentés ci-dessous en recourant aux masques de Prewitt, de Kirsch, de
Robinson de niveau 3 ou 5. Le terme de niveau désigne le nombre de valeurs différentes présentes dans le
masque.
1 1 1 1
-1 0 1 5 5 5 1 1 1 1 2 1
5 -c 0 15 3 4
c -3 0 -3 0 0 0 0 0 0
-1 0 1 -3 -3 -3 -1 -1 -1 -1 -2 -1
Prewitt Kirsch Robinson Robinson
(niveau 3) (niveau 3) (niveau 5)
12
Cours
c) Filtrage de Canny
i Principe
Les approches précédentes par masques étaient basées sur une modélisation assez simple d'un contour idéal.
Pour le calcul du filtre de Canny, une approche analytique plus élaborée est employée. Il s'agit d'une technique
de filtrage optimal. Canny a en effet cherché à déterminer de façon analytique en 1986 un filtre à partir de
trois critères :
un critère de bonne détection garantissant une réponse forte en sortie du filtre même en présence de
faibles contours sur l'image d'entrée,
un critère de bonne localisation du contour,
un critère d'unicité de la réponse permettant d'assurer une seule détection pour un contour et ainsi
d'éviter les effets de rebond.
Canny définit ces trois critères de façon mathématique. L'optimisation des trois critères proposés permet de
définir le filtre linéaire optimal pour la détection d'une marche d'escalier sous l'hypothèse d'un bruit additif
indépendant du signal. Il s'agit de trouver la réponse impulsionnelle h(x) du filtre optimal qui permet
d'obtenir une valeur maximum en sortie lorsqu'un contour est présenté en entrée. Canny souhaite un filtre à
réponse impulsionnelle finie.
Le modèle de contour utilisé est une marche d'escalier :
e x = A Y x n x
où A représente l'amplitude du saut d'intensité, n(x) un bruit blanc additif indépendant de l'arête et Y(x) la
fonction d'heaviside définie telle que :
{
Y x= 1 si x0
0 sinon
La définition de l'arête est telle que le saut d'intensité se situe en x=0. Les hypothèses concernant le bruit
additif sont :
{ E [n x ]=0
E [n x n y ]= 20 x− y
où E[.] désigne l'espérance mathématique.
La moyenne des échantillons est nulle et les échantillons sont décorrélés. La sortie g(x) s'écrit comme la
convolution de l'entrée e(x) par la réponse impulsionnelle du filtre recherché h(x) :
∞
g x=e x∗h x= ∫ h y e x− y dy
−∞
13
Cours
∞ ∞
g x= ∫ A h y Y x − y dy ∫ h y n x− y dy
−∞ −∞
or
{
Y x− y = 1si y x
0 sinon
d'où
x ∞
g x=∫−∞ A h y dy∫−∞ h y n x− y dy
Le premier terme correspond au signal utile, le second au bruit. Du premier terme, on déduit :
g ' x ≈h x
Le filtre est donc un dérivateur.
Or pour mettre en évidence le contour, la sortie g(x) doit être maximale à l'endroit du contour, c'est-à-dire en
x=0. Cette sortie sera donc paire et on en déduit que la réponse impulsionnelle h(x) du filtre optimal est
impaire.
ii Critère de bonne décision
amplitude du signal
RSB x=0=
variance du bruit
Canny obtient le critère suivant à maximiser (cf exercice « Critère de bonne décision ») :
A
h
0
14
Cours
avec
0
∫−∞ h y dy
h= ∞
∫−∞ h2 y dy
iii Critère de bonne localisation
1
E[X 2
0 ]
Canny cherche donc bien à minimiser la variance de l'écart entre la position du maximum en sortie de filtrage
et la position réelle du contour. Le critère s'écrit finalement (cf exercice «Critère de bonne localisation»)
A
h
0
avec
∣h ' 0∣
h=
∫ ∞
−∞
h ' 2 y dy
Canny cherche à obtenir une faible multiplicité des maxima dus au bruit en décidant de maximiser la distance
entre deux maxima de la sortie.
15
Cours
∞
∫−∞ h ' 2 y dy
x=2 ∞
∫−∞ h ' ' 2 y dy
L'exercice «Critère d'unicité de la réponse » permet d'obtenir le critère à partir de l'illustration.
v Obtention de la réponse impulsionnelle optimale
Complément
Le filtre est obtenu par optimisation des trois critères précédents : le premier Σ consiste à maximiser le
rapport signal sur bruit et à garantir une réponse forte en sortie du filtre même en cas de contours faibles, le
second Λ assure que les contours détectés par l'opérateur sont bien localisés sur les vrais contours, le
troisième x vise à l'obtention d'une réponse unique pour un contour en évitant de multiples détections. Canny
impose à la réponse impulsionnelle recherchée h(x) d'être à support borné sur l'intervalle [-w, w].
Le problème d'optimisation consiste à majorer le produit sous la contrainte x=kw avec :
0
∫−w h y dy ∣h ' 0∣
= w
∫−w h2 y dy ∫−w h ' 2 y dy
w
et
1/ 2
w
∫−w h ' y dy
2
x=2 w
=k w
∫−w h' ' 2 y dy
En considérant que h(x) est une fonction impaire :
w 0
∫−w h2 y dy =2∫−w h 2 y dy
0
le problème d'optimisation devient un problème de minimisation de ∫−w h2 y dy sous les différentes
contraintes :
16
Cours
0
c 1=∫−w h y dy
0
c 2=∫−w h ' y dy
2
c 3=h' 0
0
c 4=∫−w h ' ' y dy
2
∂
=2 h1
∂h
∂
=2 2 h'
∂h '
∂
=2 3 h ' '
∂h ' '
L'équation différentielle résultante à résoudre est :
2h1 −2 2 h ' ' 2 3 h 4=0
La solution de cette équation s'écrit pour x ∈[−w , 0] :
17
Cours
réponse impulsionnelle optimale h(x) par celle de la dérivée d'une Gaussienne notée hG(x) :
x −x /2
2 2
h G x =− 2
e
En effet, la forme de la dérivée de Gaussienne s'approche assez bien de celle du filtre optimal pour une valeur
du critère =0,92 avec k = 0.51 et une performance moindre de 20 %.
La détection de contour par calcul du gradient est sensible au bruit. Une idée avancée permettant d'atténuer
ce problème consiste à filtrer passe-bas l'image avant d'appliquer l'opérateur Gradient. Mathématiquement
cela revient à convoluer l'image initiale inchangée f(x,y) avec la dérivée de la réponse impulsionnelle h(x,y) du
filtre passe-bas comme le montre l'écriture suivante dans le cas monodimensionnel :
∂ [ f x , y ∗h x , y ]= ∂ f x , y ∗ h x , y= f x , y ∗ ∂ h x , y
∂x ∂x ∂x
Il reste à déterminer le filtre passe-bas pour h(x,y). Dans le cas d'un filtre gaussien, l'application du gradient
consiste finalement à filtrer l'image initiale par une dérivée de Gaussienne hG(x) . C'est en fait à peu de chose
près l'approche du filtrage de Canny.
vii Étapes d'une détection de contours par filtrage de Canny
L'objectif est bien de calculer le module du gradient de l'image analysée. Souvent avant d'appliquer le filtre de
Canny, un filtrage préalable est opéré sur l'image au moyen d'un filtre gaussien. Les différentes étapes sont
énumérées ci-après :
convolution de l'image initiale avec un filtre passe-bas gaussien bi-dimensionnel (ou convolution 1D
dans chacune des deux directions),
convolution de l'image lissée avec le filtre de Canny ou la dérivée de gaussienne dans les directions
horizontale et verticale,
calcul du module du gradient à partir des deux images représentant les gradients de l'image filtrée
passe-bas dans les directions horizontale et verticale.
18
Cours
B. 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. A ce niveau, l'image obtenue s'exprime en niveaux
de gris indiquant ici l'importance de chaque rupture d'intensité. Une nouvelle étape est alors nécessaire de
façon à aboutir à une information plus tranchée : y-a-t-il présence de contours ou non ? L'image Ib(i,j)
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. Le traitement permettant de sélectionner les contours les
plus significatifs dans l'image représentant le module du gradient est le seuillage. Il s'agit de binariser l'image
IM(i,j) du module du gradient. Cette opération nécessite le réglage d'un paramètre : le seuil S. Si la valeur du
module du gradient en un pixel de l'image dépasse le seuil fixé, la valeur résultante du pixel est 1. Dans le cas
contraire, la valeur du pixel est fixée à 0 :
{
I b i , j =
1si I M i , jS
0 sinon
1. Seuillage global
La première solution pour fixer le seuil est de procéder par tâtonnement à partir de l'image en noir et blanc
résultante censée mettre en évidence les contours. Le seuil correspond à une valeur réelle dans l'intervalle
[0,1]. Au préalable, il est nécessaire de normaliser l'image du module du gradient afin que tous les pixels se
19
Cours
trouvent également dans l'intervalle [0, 1]. Cette méthode est très simple mais peu efficace.
La valeur du seuil S est alors déterminée en tenant compte de l'histogramme de l'image, c'est-à-dire de la
distribution des différentes valeurs des pixels de l'image du module du gradient. L'idée est de sélectionner un
pourcentage des contours les plus significatifs. Par exemple, on peut désirer garder 20 % des contours les plus
forts. Dans ce cas, en déterminant l'histogramme cumulé 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.
Remarque
Une animation dans l'étude de cas permet de montrer l'influence du seuil choisi sur les contours représentés
dans l'image résultante.
3. Amincissement
L'objectif de cette technique est d'amincir les contours. La définition d'un contour n'est plus uniquement
subordonnée au dépassement d'un seuil mais dépend des voisins. Dans une zone où les valeurs de plusieurs
pixels (et donc des modules du gradient) sont supérieures au seuil, seul le maximum de ces pixels pour une
direction donnée du gradient est conservé.
20
Cours
Exemples d'amincissement à partir de modules de gradient obtenus par filtrage de Sobel ou de Canny
Remarque
Les amincissements des modules de gradient peuvent être observés en fonction du seuil choisi dans une
animation de l'étude de cas.
21
Cours
Dans cette technique de seuillage contrairement aux précédentes, le traitement n'est pas identique en tout
point de l'image. On s'intéresse ici aux pixels avoisinant les contours les plus significatifs de l'image. L'idée est
de garder les contours les plus forts de l'image mais en essayant d'assurer leur continuité. Deux seuils sont
nécessaires pour implanter la technique : un seuil haut Sh et un seuil bas Sb. Le seuil haut va servir à
sélectionner les contours les plus significatifs dans l'image du module du gradient. Ces contours sont
contenus dans l'image résultante en noir et blanc. Le seuil bas permet de mettre en évidence des contours
moins forts de l'image. Ces contours sont conservés dans l'image résultante seulement s'ils sont situés dans le
voisinage des contours les plus significatifs mis en évidence par le seuillage avec S h. Généralement le voisinage
est défini par les huit voisins.
Algorithme
Extraction des pixels de niveau supérieur à Sh. Ce sont les pixels P1.
Extraction des pixels de niveau compris entre Sb et Sh. Ce sont les pixels P2.
Sélection pour représenter les contours des pixels P1 et des pixels P2, connexes aux pixels P1.
La difficulté de cette technique réside dans le choix des seuils Sb et Sh. Parfois il peut être pratique d'imposer
une relation entre les deux seuils afin de diminuer le nombre de degrés de liberté (par exemple Sb=0.4 Sh).
Remarque
Une animation dans l'étude de cas permet de mieux comprendre l'hystérésis : il y a ajout de contours par
rapport à l'image seuillée haut et suppression de contours en regard de l'image seuillée bas.
5. Seuillage local par extraction des maxima du gradient dans une direction
L'objectif est de conserver uniquement les maxima locaux dans une direction du gradient. Le principe est de
comparer la norme du gradient en tout point M(i,j) de l'image avec celles de ses deux voisins M1 et M2 situés
dans la direction du gradient à une distance unitaire de part et d'autre de M. Les modules des gradients en M 1
22
Cours
et M2 ne sont pas connus a priori et sont interpolés à partir des gradients calculés en deux pixels de l'image
dans le voisinage de M1 et M2 . L'algorithme met donc en évidence les maxima locaux dans des directions
privilégiées (quatre directions dans l'exemple proposé). Il reste ensuite à sélectionner les maxima à conserver
en utilisant une des techniques de seuillage présentées précédemment.
Seuillage local : identification des directions à partir des gradients horizontal et vertical
Exemple de visualisation des maxima locaux dans les quatre directions séparément puis simultanément
Complément
Afin d'obtenir l'image binaire exhibant les contours, il est nécessaire de seuiller l'image comportant les
23
Cours
maxima locaux dans les quatre directions privilégiées. En effet, seuls les maxima locaux les plus significatifs,
sélectionnés par seuillage, conduisent aux contours.
Remarque
Sur la base de cette illustration, une animation dans l'étude de cas permet de juger de la variabilité de l'image
résultante des contours en fonction de la valeur du seuil utilisé.
1. L'opérateur Laplacien
Les opérateurs de gradient vus précédemment exploitent le fait qu'un contour dans une image correspond au
maximum du gradient dans la direction orthogonale au contour. Or le passage par zéro de la dérivée seconde
d'une rupture d'intensité permet également de mettre en évidence le contour. La dérivée seconde est donc
déterminée par le calcul du Laplacien :
2 2
2 ∂ f ∂ f
∇ f = 2 2= ∂
∂x
∂f
∂ y ∂ x ∂x
∂
∂f
∂y ∂y
qui peut s'écrire :
∇ 2 f =∇ x f x1, y − f x , y ∇ y f x , y1− f x , y
or on peut définir :
24
Cours
0 1 0
1 -4 1
0 1 0
0 -1 0 -1 -1 -1 1 -2 1
-1 4 -1 -1 -8 -1 -2 4 -2
0 -1 0 -1 -1 -1 1 -2 1
Après le filtrage de l'image au moyen d'un de ces filtres, il s'agit de détecter les passages par zéro en
conservant uniquement les passages les plus marqués. En effet, la technique est particulièrement sensible au
bruit en raison de la double dérivation. Il s'agit donc de ne pas considérer le bruit, qui peut très bien se
traduire par des oscillations autour de zéro, comme un contour. C'est le rôle du seuil S qui va être utilisé dans
cette approche pour ne prendre en compte que les passages par zéro d'amplitude relativement élevée
correspondant à des vrais contours de l'image.
Exemple d'obtention des contours par utilisation du Laplacien suivi d'un seuillage
Remarque
Une animation dans l'étude de cas permet de paramétrer le seuil après le calcul du Laplacien.
De même que lors de l'utilisation de l'opérateur gradient, l'idée consiste d'abord à filtrer passe-bas l'image
avant d'appliquer l'opérateur Laplacien. Mathématiquement cela revient à convoluer l'image initiale inchangée
f(x,y) avec la dérivée seconde de la réponse impulsionnelle h(x,y) du filtre passe-bas comme le montre
25
Cours
2 2 2
∂ f x , y∗h x , y = ∂ f x , y ∗ h x , y = f x , y ∗ ∂ h x , y
∂ x2 ∂ x2 ∂ x2
Le remède contre la sensibilité au bruit de la double dérivation est à la base des travaux de Marr qui ont
débouché sur l'utilisation d'un filtre gaussien en guise de filtre passe-bas pour h(x,y). Le choix de ce filtre a été
établi en raison du principe d'Heisenberg qui stipule que l'on ne peut pas améliorer en même temps la
résolution spatiale ∆x et la résolution fréquentielle ∆f :
1
x f
4
Dans le cas d'une détection d'un contour, celui-ci étant localisé spatialement et en fréquence, il est clair que
les intervalles ∆x et ∆f doivent être petits. Détecter une rupture d'intensité implique une analyse des pixels
voisins mais le voisinage ne doit pas être trop étendu. Filtrer l'image a pour conséquence de réduire les
variations d'intensité, ce qui doit être raisonnable. Le filtre doit en effet avoir une largeur spectrale limitée. Or
c'est la fonction gaussienne qui permet d'obtenir l'égalité dans le principe d'Heisenberg, d'où ce choix qui se
traduit par :
1 2 2 2
hx , y = 2
e− x y / 2
2
La dérivée de la fonction gaussienne bi-dimensionnelle s'écrit alors :
x y − x y / 2
2 2 2
h ' x , y = − e
2 4
Et la dérivée seconde s'exprime :
2 2
x y
2 2
1 x y −
2
2
h' ' x , y =− 4
1− 2
e
2
L'allure de h''(x,y), réponse impulsionnelle du filtre Laplacien de Gaussienne (LOG), lui a valu l'appellation «
chapeau mexicain ». La mise en œuvre d'une détection de contours avec le filtre LOG nécessite les étapes
suivantes :
Convolution de l'image avec le filtre LOG (filtre 2D) ;
Détection des passages par zéro de l'image résultante ;
Seuillage de l'image afin de ne considérer que les passages par zéro d'amplitude suffisante.
26
Cours
[ ]
2 2
1 x y −
2
2
h' ' x , y =− 4
1− e
2 2
Le traitement repose sur cinq paramètres :
N représente la taille du masque (matrice carrée) implantant le filtre LOG. N est impair.
σ permet d'ajuster la taille du chapeau mexicain.
∆x et ∆y sont les pas d'échantillonnage utilisés pour discrétiser h''(x,y). Généralement ∆x = ∆ y
S est le seuil qui permet de sélectionner les contours les plus marqués.
Remarque
Il est à noter que le choix des paramètres N, σ et ∆x ne doit pas se faire de façon indépendante. En effet, le
masque, même de taille réduite, doit ressembler à un chapeau mexicain. Le problème ici est le même que celui
que l'on rencontre lors de l'échantillonnage d'une fonction gaussienne. Le nombre de points N à considérer
doit être tel que l'étendue occupe l'intervalle [-3σ , 3σ].
27
Cours
Remarque
Une animation dans l'étude de cas permet d'étudier l'influence du choix de la taille du masque et de l'écart-
type σ .
* *
*
Nous avons présenté quelques approches permettant d'extraire les contours d'une image. Ces méthodes sont
basées sur la détection des maxima du gradient de l'image ou sur celle des passages par zéro du laplacien.
Nous avons également détaillé les différents types de seuillage pouvant être utilisés notamment pour
sélectionner les contours de plus forte importance. Certaines méthodes sont simples à mettre en œuvre et
donnent des résultats assez corrects (filtrage de Sobel). D'autres méthodes comme le Laplacien de Gaussienne
ou le filtrage de Canny plus complexes, permettent généralement une meilleure approche des contours. Il
existe néanmoins plusieurs autres méthodes non abordées ici qui offrent des perspectives très intéressantes.
Nous encourageons donc les étudiants à explorer la littérature de manière à aborder ces autres méthodes
telles que :
le filtrage de Deriche (construit suivant la même approche que Canny mais pour un filtre à réponse impulsionnelle infinie) [4] ,
les ondelettes bi-dimensionnelles [5] ,
le gradient morphologique [2] ,
les contours actifs ou snakes [1] [1] [1] [1] .
28
Etude de cas
II
II -
Dans ce chapitre, plusieurs animations sont présentées dans le but de faciliter la compréhension des
traitements décrits dans les autres parties. Il s'agit d'apprécier l'influence des techniques mises en œuvre, des
réglages de seuil sur les images résultantes censées mettre en évidence les contours.
Puisque toute technique de seuillage peut être employée une fois que les contours sont ressortis, il peut
apparaître intéressant de comparer les modules de gradient obtenus par différentes méthodes, à savoir le
filtrage de Canny, celui de Sobel, celui de Roberts. On pourra en particulier comparer les modules issus d'un
filtrage de Canny et de celui d'une dérivée de Gaussienne. L'influence d'un éventuel filtrage passe-bas de
l'image avant application du filtre de Canny, ainsi que son importance liée à l'écart-type σ peut également être
soulignée.
29
Etude de cas
Le module du gradient de l'image a été calculé par filtrage de Sobel. Il s'agit ensuite de ne garder que les
contours les plus significatifs en recourant à la technique de seuillage par histogramme. Plusieurs seuils sont
possibles : un seuil à 90 % signifie que seulement 10 % des contours les plus significatifs sont conservés.
L'animation permet de montrer l'influence du seuil sur la qualité des contours obtenus (en cliquant sur les
points rouges dans l'histogramme cumulé en bas à gauche).
3. Amincissement de contours
Le module du gradient de l'image est déterminé par deux techniques : le filtrage de Sobel et le filtrage de
Canny. Ensuite le traitement conduisant à un amincissement des contours est employé sur les deux images.
L'animation permet de modifier le seuil (en cliquant sur les boutons à droite indiquant le pourcentage des
contours non sélectionnés). Cette technique d'amincissement apparaît plus efficace, associée au filtrage de
Sobel.
Après calcul du module du gradient, un seuillage par hystérésis est employé. L'animation permet de montrer
l'intérêt de cette technique. L'idée est d'obtenir un compromis entre contours trop sélectifs et contours pas
assez sélectifs, compromis qui ne serait pas atteignable avec un seuil unique. En cliquant successivement sur
les deux boutons de gauche, la capacité du seuillage par hystérésis à ajouter des contours par rapport à l'image
très sélective est soulignée. Par des clics similaires sur les boutons de droite, la capacité du seuillage par
hystérésis à réduire le nombre de contours par rapport à une image pas assez sélective est mise en évidence
(seuils utilisés : seuil haut à 72 %, seuil bas à 60 %).
Le module du gradient de l'image est déterminé par un filtrage de Canny suivi d'une extraction des maxima
locaux (méthode décrite dans le chapitre du cours sur les méthodes de seuillage). Certains contours sont alors
conservés en fonction d'un seuil dont trois valeurs sont proposées.
Ces quelques images permettent d'étudier l'influence de la valeur du seuil pour éliminer certains maxima
locaux pas assez significatifs. L'influence d'un filtrage passe-bas à l'aide de gaussiennes de différentes
variances peut également être appréciée. Enfin, les résultats semblent attester de la proximité entre le filtre de
Canny et le filtre dérivée de gaussienne.
30
Etude de cas
L'animation permet d'évaluer l'influence du seuil sur les contours obtenus après calcul du Laplacien (en
cliquant sur les différents seuillages proposés). Plus le seuil est faible, plus les contours sont bruités. Cette
technique apparaît clairement très sensible au bruit.
La technique utilisée est le filtrage de l'image au moyen d'une dérivée seconde de Gaussienne suivi d'une
détection des passages par zéro. L'animation permet de jouer sur la taille du filtre utilisé et sur la « largeur » du
chapeau (en cliquant sur l'une des quatre cases colorées).
C. Comparaison de contours
Quelques images de contours obtenus par l'association réussie de deux traitements : un calcul de gradient ou
de Laplacien et un seuillage, sont à comparer. A partir de ces résultats, les traitements associés filtrage de
Canny-seuillage des maxima locaux et filtrage de Sobel-amincissement semblent présenter des résultats
particulièrement efficaces.
31
Etude de cas
* *
*
Nous avons présenté quelques approches permettant d' extraire les contours d'une image. Ces méthodes sont
basées sur la détection des maxima du gradient de l'image ou sur celle des passages par zéro du Lapacien.
Nous avons également détaillé les différents types de seuillage pouvant être utilisés notamment pour
sélectionner les contours de plus forte importance. Certaines méthodes sont simples à mettre en oeuvre et
donnent des résultats assez corrects ( filtrage de Sobel ) . D'autres méthodes comme le Lapacien de
Gaussienne ou le filtrage de Canny plus complexes, permettent généralement une meilleure approche des
contours. Il exitre néanmoins plusieurs autres méthodes non abordées ici qui offrent des perspectives très
intéressantes. Nous encourageons donc les étudiants à explorer la littérature de manière à aborder ces autres
méthodes telles que :
Le filtrage de Deriche (construit suivant la même approche de Canny mais pour un filtre à réponse impulsionnelle
infinie), [4]
Les ondelettes bi-dimensionnelles, [5]
le gradiens morphologique, [2]
les contours actifs ou snakes. [1]
32
Exercices
III
III -
amplitude du signal
RSB=
variance du bruit
On rappelle l'écriture de la sortie g(x) du filtrage que l'on souhaite maximum :
x ∞
g x=∫−∞ A h y dy∫−∞ h y n x− y dy
qui représente la partie bruitée de la sortie, calculer l'espérance mathématique E[N] puis la variance qui s'écrit
dans le cas présent E[N2].
Question 3
[Solution n°3 p 37]
En déduire le premier critère de Canny.
33
Exercices
1
E[X 2
0 ]
Question 1
[Solution n°4 p 38]
Le maximum de la sortie issue du filtrage optimal du modèle de contour en marche d'escalier est obtenu en x
= x0. Cette sortie maximale correspond à g'(x0)= 0.
Ecrire g'(x) puis en posant :
∞
N x=∫−∞ h ' y n x− y dy
x m =
−R g 0
Rg ' ' 0
où R g est la fonction d'autocorrélation de g(x) :
34
Exercices
R g = E [ g x g x ]
avec
∞
g x=∫−∞ h y n x− y dy
Question 1
[Solution n°8 p 39]
Calculer R g et R g ' ' .
Question 2
[Solution n°9 p 40]
En déduire Rg(0) et Rg''(0) . Simplifier alors le deuxième terme par une intégration par partie.
Question 3
[Solution n°10 p 40]
En remarquant qu'ici on s'intéresse à la distance moyenne entre deux passages par zéro de la dérivée g'(x) de
la sortie du modèle de contour filtré par h(x), déduire en utilisant la formule de Rice, le troisième critère de
Canny.
où
1 2 2
G x = e−x / 2 1
1
2 1
et
2 = 1
avec
≪1
35
Solution des exercices de TD
L'espérance est :
∞
E [ N ]=∫−∞ h y E n − y dy=0
E [ N 2 ]=E ∫∞
−∞
∞
h y n− y dy ∫−∞ h u n−u du
∞
E [ N ]=∬−∞ h y h u E n − y n −u dy du
2
or
2
E [ n −y n−u ] = 0 y−u
donc
∞
E [ N ]= 0 ∫−∞ h y dy
2 2 2
37
Annexes
Calculons la dérivée de la sortie du filtrage optimal du contour en marche d'escalier. Avec la notation
proposée, il vient :
x ∞
g ' x =∫−∞ A h' y dy∫−∞ h' y n x− y dy
En effet,
−N x 0
x 0=
A h ' 0
La variance de x0 s'écrit :
Var [ N x 0]
Var [ x 0 ]=
A2 h ' 2 0
Il reste à déterminer Var[N(x0)] en remarquant que E[N(x0)]=0.
Ainsi la variance à calculer s'écrit :
38
Annexes
2
E [ N x 0 ]=E ∫ ∞
−∞
∞
h ' y n x0 − y dy ∫−∞ h ' u n x 0 −u du
∞
E [ N x 0 ]=∬−∞ h ' y h ' u E n x 0− y n x 0−u dy du
2
or
A A ∣h ' 0∣
=
0 0
∫ ∞
−∞
h' 2 y dy
R g = E ∫ ∞
−∞
∞
h y n x− y dy ∫−∞ h u n x −u du
∞
R g =∬−∞ h y h u E n x− y n x−u dy du
or
2
E n x− y n x−u = u−− y
donc
∞
R g =∫−∞ h y h y dy
et par suite :
∞
R g ' ' =∫−∞ h y h ' ' y dy
39
Annexes
et :
∞
R g ' ' 0=∫−∞ h y h ' ' y dy
∞ ∂
R g ' ' 0=∫−∞ h y h' y dy
∂y
En intégrant par partie :
∞ ∞
2
R g ' ' 0= h y h' y −∞ −
2
∫−∞ h' 2 y dy
Or le filtre recherché par Canny a une réponse impulsionnelle finie,
Donc
et
Finalement :
∞
R g ' ' 0=−
2
∫−∞ h ' 2 y dy
> Solution n°10 (exercice p. 35)
∞
∫−∞ h y dy
2
x m = ∞
∫−∞ h ' 2 y dy
Ici on s'intéresse à la distance moyenne entre deux passages par zéro de la dérivée g'(x) de la sortie du modèle
de contour filtré par h(x), c'est-à-dire à un bruit blanc filtré par h'(x) et non pas par h(x). La valeur x m
recherchée s'exprime donc ainsi :
1/ 2
∞
∫−∞ h ' y dy 2
x m = ∞
∫−∞ h ' ' 2 y dy
40
Annexes
Finalement le critère d'unicité de la réponse à maximiser s'écrit :
1/ 2
∞
∫−∞ h ' y dy
2
x=2 ∞
∫−∞ h ' ' 2 y dy
1 −x / 2
2
1 2
−x /2
2 2
DOG x = e − e
2 1
2 2 2 1
1 − x / 2
2
1 2
− x / 2
2 2
DOG x = e − 1
e 1
2 1 2 1
DOG x = f 1− f 1
avec
1 2 2
f 1 = e−x /2 1
2 1
DOG x = f ' 1
DOG x = ∂ 1 e−x / 2
2 2
1
2 ∂ 1
DOG x =
2 −
1 −x /2 x 2 −x /2
12
e 4e
1
2 2
1
2 2
1
DOG x = −
2 2 x 2 −x /2
1− 4 e
1
2 2
1
41
Annexes
42
Bibliographie
Cocquerez J.-P., Philipp S., Analyse d'images : filtrage et segmentation, Masson, -, 1995.
[2] Le traitement des images
Canny J., A computational approach to edge detection, IEEE trans. on pattern analysis and machine intelligence, -,
-, 1986, vol(8), n°6.
[4] International Journal of Computer Vision
Deriche R., International Journal of Computer Vision, -, -, 1987, using Canny's criteria to derive a recursively
implemented optimal edge detector (p.pages 167-187), .
[5] A wavelet tour of signal processing
43