Détection de contours
Détection de contours
La détection de contour est une étape préliminaire à de nombreuses applica-
tions de l’analyse d’images. Les contours constituent en effet des indices riches,
au même titre que les points d’intérêts, pour toute interprétation ultérieure de
l’image. Les contours dans une image proviennent des :
• discontinuités de la fonction de réflectance (texture, ombre),
• discontinuités de profondeur (bords de l’objet),
et sont caractérisés par des discontinuités de la fonction d’intensité dans les im-
ages. Le principe de la détection de contours repose donc sur l’étude des dérivées
de la fonction d’intensité dans l’image : les extréma locaux du gradient de la fonc-
tion d’intensité et les passages par zéro du laplacien. La difficulté réside dans la
présence de bruit dans les images.
Différents types de contours : marche, toit et pointe.
La fonction d’intensité au voisinage d’un contour en marche et ses dérivées première et seconde.
UFRIMA 1
Détection de contours
1 Définitions
Le filtrage linéaire d’une image
Filtrer une image consiste à convoluer sa fonction d’intensité I(x, y) avec une
fonction h(x, y) appelée réponse impulsionnelle du filtre.
I ′ (x, y) = h(x, y) ∗ I(x, y),
Z +∞ Z +∞
′
I (x, y) = h(u, v)I(x − u, y − v)du dv,
−∞ −∞
Z +∞ Z +∞
I ′ (x, y) = h(x − u, x − v)I(u, v)du dv,
−∞ −∞
Dans le cas discret :
+H/2 +H/2
′
X X
I (x, y) = h(u, v)I(x − u, y − v).
u=−H/2 v=−H/2
où H correspond à la dimension du masque de filtrage.
Le gradient d’une image
Le gradient d’une image est le vecteur ∇I(x, y) défini par :
∂I(x, y) ∂I(x, y) t
∇I(x, y) = ( , ).
∂x ∂y
Il est donc caractérisé par un module m et une direction φ dans l’image :
q ∂I(x, y) 2 ∂I(x, y) 2
m= ( + ),
∂x ∂y
∂I(x, y) ∂I(x, y)
φ = arctan( / ).
∂y ∂x
☞ La direction du gradient maximise la dérivée directionnelle.
☞ La dérivée de I(x, y) dans une direction donnée d s’écrit :
∇I(x, y) · d.
☞ Le gradient d’une image filtrée :
∇I ′ (x, y) = ∇(I(x, y)∗h(x, y)) = ∇I(x, y)∗h(x, y) = I(x, y)∗∇h(x, y).
UFRIMA 2
Détection de contours
Le laplacien d’une image
Le laplacien d’une image d’intensité I(x, y) est défini par :
∂ 2 I(x, y) ∂ 2 I(x, y)
∇2 I(x, y) = + .
∂x2 ∂y 2
☞ Invariant aux rotations de l’image.
☞ Le laplacien est souvent utilisé en amélioration d’images pour accentuer
l’effet de contour :
I ′ (x, y) = I(x, y) − c∇2 I(x, y).
☞ Sensibilité au bruit accrue par rapport au gradient.
☞ Le laplacien d’une image filtrée :
∆I ′ (x, y) = ∆I(x, y) ∗ h(x, y) = I(x, y) ∗ ∆h(x, y).
Les filtres séparables
Un filtre à réponse impulsionnelle h(x, y) séparable selon x et y est un filtre pour
lequel :
h(x, y) = hx (x) hy (y),
ce qui se traduit pour le filtrage d’une image par :
I ′ (x, y) = h(x, y) ∗ I(x, y),
I ′ (x, y) = hy (y) ∗ (hx (x) ∗ I(x, y)),
UFRIMA 3
Détection de contours
et pour les dérivées :
∂I ′ (x, y) ∂hx (x)
= I(x, y) ∗ ( hy (y)),
∂x ∂x
∂I ′ (x, y) ∂hy (y)
= I(x, y) ∗ (hx (x) ),
∂y ∂y
∆I ′ (x, y) = I(x, y) ∗ (∆hx (x)hy (y) + hx (x)∆hy (y)),
Les principaux intérêts des filtres séparables sont :
1. Ramener le problème du filtrage d’un signal bidimensionnel à celui du fil-
trage d’un signal monodimensionnel.
2. Réduire le temps de calcul. Pour une convolution par un masque de filtrage
de dimension H, la complexité est de 2H au lieu de H 2 .
3. Possibilité d’implanter récursivement le filtre.
La détection de contour
Deux approches :
1. Approche gradient : détermination des extréma locaux dans la direction du
gradient.
2. Approche laplacien : détermination des passages par zéro du laplacien.
☞ Ces approches reposent sur le fait que les contours correspondent des dis-
continuités d’ordre 0 de la fonction d’intensité.
☞ Le calcul de dérivée nécessite un pré-filtrage des images. Filtrage linéaire
pour les bruits de moyenne nulle (par exemple bruit blanc Gaussien, filtre
Gaussien). Filtrage non-linéaire pour les bruits impulsionnels (filtre médian
par exemple).
Les différentes approches existantes se classent ensuite suivant la manière
d’estimer les dérivées de la fonction d’intensité :
1. Différences finies.
2. Filtrage optimal.
3. Modélisation de la fonction d’intensité.
UFRIMA 4
Détection de contours
2 Dérivation par différence finies
Une image est discrète par nature. Les premières approches ont donc consisté à
approximer les dérivées par différence :
∇u I(u, v) = I(u, v) − I(u − n, v),
ou :
∇u I(u, v) = I(u + n, v) − I(u − n, v),
avec, en général n = 1.
Ces dérivées sont calculées par convolution de l’image avec un masque de
différences.
2.1 Opérateurs de Roberts (1962)
" # " #
1 0 0 1
h1 = h2 =
0 −1 −1 0
☞ φ = arctan(I ∗ h2/I ∗ h1) + π/4.
☞ Forte sensibilité au bruit en raison de la taille des masques.
2.2 Opérateurs de Prewitt
−1 0 1 −1 −1 −1
h1 = 1/3 −1 0 1 h2 = 1/3 0 0 0
−1 0 1 1 1 1
Masques de calcul du gradient en x et y.
☞ La convolution de l’image par les masques ci-dessus correspond au calculs
des dérivées de l’image pré-filtrée par un filtre h séparable :
h(x, y) = h(x) h(y),
avec : h = 31 [1 1 1] et d = ∇h = [−1 0 1]. En effet :
h1(x, y) = d(x) s(y),
h2(x, y) = s(x) d(y),
UFRIMA 5
Détection de contours
☞ Masques de Prewitt directionnels :
0 1 1 −1 −1 0
h3 = 1/3 −1 0 1 , h2 = 1/3 −1 0 1 ,
−1 −1 0 0 1 1
la direction du gradient est celle du masque donnant la réponse maximale.
L’estimation du laplacien d’une image se fait de la même manière par con-
volution de l’image avec un masque. Le laplacien est approximé par différences
finies : ∇2 = [1 − 2 1].
0 0 0 0 1 0 0 1 0
1 −2 1 + 0 −2 0 = 1 −4 1 .
0 0 0 0 1 0 0 1 0
ou :
1 1 1
1 −8 1 .
1 1 1
masques d’approximation du laplacien.
☞ Le laplacien nécessite une convolution, le gradient deux.
☞ Invariance par rotation.
2.3 Opérateurs de Sobel (1972)
−1 0 1 −1 −2 −1
h1 = 1/4 −2 0 2 h2 = 1/4 0 0 0
−1 0 1 1 2 1
☞ Très populaire.
☞ Correspond à la convolution de l’image par :[1 2 1] ∗ [−1 0 − 1].
☞ Masques directionnels également.
UFRIMA 6
Détection de contours
2.4 Opérateurs de Kirch
−3 −3 5 −3 −3 −3
h1 = 1/15 −3 0 5 h2 = 1/15 −3 0 −3
−3 −3 5 5 5 5
−3 −3 −3 5 5 −3
h3 = 1/15 5 0 −3 h4 = 1/15 5 0 −3
5 5 −3 −3 −3 −3
2.5 Opérateurs de Robinson
−1 1 1 −1 −1 −1
h1 = 1/5 −1 −2 1 h2 = 1/5 1 −2 1
−1 1 1 1 1 1
1 1 1 −1 −1 1
h3 = 1/5 −1 −2 1 h4 = 1/5 −1 −2 1
−1 −1 1 1 1 1
☞ Coût d’implantation des masques directionnels élevés.
UFRIMA 7
Détection de contours
UFRIMA 8
Détection de contours
3 Dérivation par filtrage optimal
Les dérivations présentées consistent à convoluer l’image par des masques de pe-
tites dimensions. Ces approches sont donc dépendantes de la taille des objets
traités, elles sont aussi très sensible au bruit. Un autre type d’approche plus ré-
centes repose sur la définition de critères d’optimalité de la détection de contours
; ces critères débouchant sur des filtres de lissage optimaux.
• Soit h le filtre de lissage alors I(x, y)∗h(x)∗h(y) est l’image lissée, I(x, y)∗
h′ (x) ∗ h(y), I(x, y) ∗ h(x) ∗ h′ (y) sont les images des dérivées suivant x et
y et I(x, y) ∗ (h′′ (x)h(y) + h(x)h′′ (y)) est l’image du laplacien.
• L’implantation se fait de manière récursive (i.e., la valeur de sortie du fil-
tre en un point est déterminée en fonction de celles des voisins) par deux
balayages de l’images (filtres séparables).
3.1 Critères de Canny (1983)
On se place dans le cas monodimensionnel. On suppose que la détection est effec-
tuée en convoluant le signal par un filtre de réponse impulsionnel h, les contours
étant caractérisé par les extréma de la sortie du filtre. Les contours envisagés
ici sont des contours de types marche et le bruit est supposé blanc (de moyenne
nulle). Les critères d’optimalités sont :
• détection : le contour doit être détecté, il faut minimiser les fausses réponses,
• localisation : le contour doit être localisé avec précision, il s’agit de min-
imiser la distance entre les points détectés et le vrai contour.
• réponse unique : il s’agit de minimiser le nombre de réponse pour un seul
contour.
☞ La minimisation des ces critères dans le contexte du modèle proposé débouche
sur une équation différentielle dont la solution est de la forme :
h(x) = a1 eαx cos(ωx) + a2 eαx sin(ωx) + a3 e−αx cos(ωx) + a4 e−αx sin(ωx).
UFRIMA 9
Détection de contours
3.2 Filtres de Shen-Castan
Le filtre de Shen et Castan est obtenu par optimisation d’un critère incluant la
détection et la localisation. La solution obtenue est assez proche de celle de Canny
:
h(x) = c e(−α|x|),
☞ c est choisi de façon à normaliser le filtre :
1 − e−α
c= .
1 + e−α
☞ le filtre de dérivation s’écrit :
(
′ d e(−α|x|) si x ≥ 0,
h (x) =
−d e(−α|x|) sinon
avec d choisi de même de façon à normaliser le filtre ::
d = 1 − e−α .
☞ le paramètre α détermine la largeur du filtre, plus α est petit plus le lissage
est important (perte en localisation).
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−8 −6 −4 −2 0 2 4 6 8
Réponse impulsionnelle du filtre.
UFRIMA 10
Détection de contours
0.8
0.6
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
−8 −6 −4 −2 0 2 4 6 8
Réponse impulsionnelle du filtre de dérivée.
3.3 Filtres de Deriche
Deriche a proposé un filtre de lissage dont la dérivée est la solution exacte de
l’équation de Canny étendue aux filtres à supports infinis. Le filtre de lissage
correspondant est :
h(x) = k(α |x| + 1)e−α|x| ,
avec :
(1 − e−α )2
k= .
(1 + 2αe−α − e−2α )
Et :
h′ (x) = −k ′ xe−α|x| ,
′ (1 − e−α )2
k = .
e−α
☞ Les filtres de Deriche et Shen-Castan sont directionnels (anisotrope).
UFRIMA 11
Détection de contours
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−8 −6 −4 −2 0 2 4 6 8
Réponse impulsionnelle du filtre.
0.4
0.3
0.2
0.1
−0.1
−0.2
−0.3
−0.4
−8 −6 −4 −2 0 2 4 6 8
Réponse impulsionnelle du filtre de dérivée.
UFRIMA 12
Détection de contours
3.4 Filtre Gaussien
Le filtre de lissage Gaussien a pour réponse impulsionnelle :
2 /2τ 2
h(x) = c e−x ,
et donc pour dérivée :
x −x2 /2τ 2
h′ (x) = −c e .
τ2
Canny a montré que la dérivée ce filtre constitue une approximation de la so-
lution du filtre optimal. Ce filtre a été initialement introduit par Marr et Hildreth
dans le cadre du calcul du laplacien (Laplacian of Gaussian LoG).
En posant r = x2 + y 2 :
2 /2τ 2
h(r) = c e−r ,
soit :
r2 2 2
h′′ (r) = c (
2
− 1) e−r /2τ ,
τ
1 x + y2
2
−(x2 +y 2 )/2τ 2
h′′ (x, y) = c 2 ( − 1) e ,
τ τ2
où c normalise la somme des éléments du filtre à zéro.
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
−8 −6 −4 −2 0 2 4 6 8
2 2 /2τ 2
la fonction ( τr 2 − 1) e−r .
☞ L’opérateur LoG est non directionnel (isotrope).
UFRIMA 13
Détection de contours
☞ Le passage par zéro est plus facile à déterminer que des extréma.
☞ Sensibilité accrue au bruit.
☞ Ne donne pas d’information de direction.
4 De l’image des dérivées aux contours
Les différents filtres présentés permettent de calculer le gradient ou le laplacien
d’une image mais ne donnent pas des points de contours. Un traitement ultérieur
est nécessaire, ce traitement étant dépendant du type d’approche choisi.
4.1 Approches gradient
les points de contour dans une image sont caractérisés par des extréma locaux du
gradient. Une première approche consiste donc à :
1. calculer la norme du gradient en tous point de l’image,
2. sélectionner les pixels à l’aide d’un seuil fixé a priori pour la norme du
gradient.
☞ Ne permet pas de différencier efficacement les points de contour du bruit.
L’approche classiquement utilisée se décompose en deux étapes qui sont :
1. Extraction des extréma locaux du gradient dans la direction du gradient.
Cela revient à déterminer, pour un pixel p donné, les valeurs du gradient sur
la droite passant p et de direction celle de son gradient. On vérifie ensuite
que le gradient en p est bien localement maximal sur cette droite.
2. Seuillage par hystérésis des extréma. Cette étape repose sur une hypothèse
de connexité. Le principe est d’utiliser deux seuils pour la norme du gradi-
ent : sb et sh et de sélectionner les pixels pour lesquels :
(a) la norme du gradient est supérieure à sb ,
(b) le pixel donné est connecté, par un chemin constitué de pixels dont la
norme du gradient est supérieure à sb , à un pixel pour lequel la norme
du gradient est supérieure à sh .
UFRIMA 14
Détection de contours
4.2 Approches laplacien
Les points de contour sont caractérisés par des passages par zéro du laplacien. La
détection de ces points s’effectue en deux étapes :
1. Détection des passages par zéros. Les pixels pour lesquels le laplacien
change de signe sont sélectionnés.
2. Seuillage des passages par zéros de fortes amplitudes (par hystérésis par
exemple).
UFRIMA 15
Détection de contours
Figure 1: (a) : image originale, (b) : gradient en x (filtre de Deriche), (c) gradi-
ent en y (filtre de Deriche), (d) extréma locaux de la norme du gradient dans la
direction du gradient.
UFRIMA 16
Détection de contours
Figure 2: Seuillages des extrema locaux pour différentes valeurs du paramètre α
du filtre de Deriche : (a) α = 0.5, (b) α = 1.5.
UFRIMA 17