• Aucun résultat trouvé

sch´ ema de fonctionnement d’un d´ etecteur de contour

5.5 Pr´ esentation de quelques r´ esultats

6.1.2 sch´ ema de fonctionnement d’un d´ etecteur de contour

Dans la section 3.1 nous avons pr´esent´e un point de contour comme une diff´erence significative de l’intensit´e lumineuse. Dans notre mod`ele o`u l’image num´erique est le r´esultat de la discr´etisation de la fonction If = I ×f cela revient `a

rep´erer les brusques variations de cette fonction. Il y a plusieurs types de variations auxquels correspondent plusieurs types de contours (voir figure 6.3). Nous nous

crˆete

marche rampe toit

Fig. 6.3 – Diff´erents types de contours

int´eresserons principalement aux contours de type marche. ´Etant donn´e que nous avons une approche interpixel et que nous voulons ´egalement obtenir en d´efinitive une description de l’image en terme de r´egions, les autres types de contours tels que les lignes (crˆete et toit ) ne font pas partie de nos pr´eoccupations. En effet une ligne sera pour nous une r´egion fine avec deux fronti`eres que nous pouvons alors consid´erer comme un contour de type marche2.

Pour rep´erer les variations de la fonction If, il suffit de rep´erer les points

d’inflexion, c’est `a dire les maximaux de la d´eriv´ee premi`ere (approche du type gradient) ou les passages `a z´ero de la d´eriv´ee seconde (approche laplacien)3. On appelle op´erateur du premier ordre les d´etecteurs travaillant `a partir des d´eriv´ees partielles premi`eres, et op´erateur du second ordre ceux travaillant `a partir des d´eriv´ees partielles secondes. Pratiquement ces deux types d’op´erateurs fournissent des r´esultats proches. En fait, th´eoriquement en 1D, les contours obtenus seront les mˆemes. Mais en 2D il n’en est pas de mˆeme. Ainsi on remarquera par exemple qu’un op´erateur du second ordre fournira des contours ferm´es. Par contre il sera tr`es sensible au bruit et fournira alors beaucoup de faux contours. Pour d´etecter les contours du type marche on utilisera essentiellement les deux types d’op´erateur (directionnels ou non directionnels) suivants :

– l’op´erateur directionnel du premier ordre, c’est `a dire le vecteur gradient calcul´e en chaque point de l’image :

~

∇I =t(∂If(x, y)

∂x ,

∂If(x, y)

∂y ) not´e ~∇I =

t (I x, Iy)

2L’application d’un filtre de lissage peut mettre en d´efaut cette hypoth`ese, la quantit´e de

signal exprimant la valeur haute de la marche ´etant nettement moins importante que la quantit´e basse.

3On remarquera que l’approche gradient consiste en fait `a d´eterminer les passages par z´ero

de la d´eriv´ee seconde dans la direction du gradient. Ce qui est diff´erent des passages par z´ero du laplacien.

6.1 Mod`ele g´en´eral des d´etecteurs de contours. 121

θ ~ ∇I(x, y)

x

Fig. 6.4 – Direction θ du gradient en un point d’une image.

On calculera ´egalement le module || ~∇I|| de ce vecteur afin de connaˆıtre «la force» du contour. Ce module pourra ˆetre calcul´e par exemple des deux mani`eres suivantes :

q

Ix2+ Iy2 et |Ix| + |Iy|

En fait on utilisera g´en´eralement la premi`ere formulation car c’est la plus simple pour laquelle le module est invariant par rotation. La direction du vecteur gradient est normale par rapport au contour. On peut donc obtenir la direction θ du contour (voir figure 6.4 par le calcul suivant :

θ = arctan(∂If(x, y) ∂y /

∂If(x, y)

∂x )

– l’op´erateur non-directionnel du second ordre. Par exemple le laplacien dont les valeurs `a z´ero donnent les points de contour. En chaque point de l’image on calculera la valeur suivante :

52I f(x, y) = ∂I2 f(x, y) ∂x2 + ∂I2 f(x, y) ∂y2

Cet op´erateur est ´egalement invariant par rotation.

On appelle cette ´etape d’application d’un tel op´erateur, la diff´erentiation de l’image. On a pu voir dans la section 6.1.1 qu’une image discr`ete contenait toujours du bruit inh´erent au proc´ed´e d’acquisition. Afin d’en r´eduire la quantit´e pr´esente dans l’image, mˆeme dans le cas de l’utilisation d’un op´erateur du premier ordre, on va donc pr´ec´eder la recherche des discontinuit´es par une ´etape de filtrage. Les proc´ed´es modernes se ram`enent `a la d´etermination d’un filtr de lissage ; l’´etape de

image originale contours avec lissage contours avec lissage `

a haute ´echelle `a faible ´echelle

Fig. 6.5 – Effet du lissage `a diff´erentes ´echelles sur la d´etection de contours

diff´erentiation consistant alors en l’application de la d´eriv´ee du filtre de lissage (voir plus loin `a la section 6.2.2). Ces filtres seront construits sur l’hypoth`ese d’un bruit blanc gaussien4. On pourra voir un filtre comme une fonction f

α o`u α est l’´echelle

du filtre. `A haute ´echelle, l’image sera fortement liss´ee et la d´etection des contours sera bonne (forte probabilit´e de marquer un vrai contour et faible probabilit´e de marquer un faux contour) mais la localisation sera mauvaise. Inversement `a faible ´echelle la localisation sera bonne mais la d´etection mauvaise car l’image contiendra trop de d´etails. La figure 6.5 pr´esente des contours d´etect´es par le filtre de Deriche (voir section 6.2.2.3) avec seuillage par hyst´er´esis (voir plus loin les explications concernant ce type de seuillage) `a haute et basse ´echelle. L’inconv´enient majeur du lissage est, comme on peut le voir sur les images de la figure 6.5, l’´elimination et le d´eplacement5 de certains contours, ainsi que la cr´eation de faux contours. Les variations d’un signal `a diff´erents lissages peuvent ˆetre repr´esent´ees grˆace `a l’espace ´echelle. Dans le cas monodimensionnel, il d´ecrit un plan x − α o`u α correspond `a l’´echelle de lissage et x d´ecrit la valeur du signal correspondant. Le lecteur int´eress´e pourra se reporter par exemple `a [Wit83, SMCM91]. Pour palier ces variations, A. Rosenfeld a le premier propos´e d’utiliser diff´erentes tailles de filtres et de combiner

4Ce qui est faux dans la plupart des cas r´eels.

6.1 Mod`ele g´en´eral des d´etecteurs de contours. 123

Image liss´ee

Image Lissage Diff´erentiation Contours Correction Image finale

Fig. 6.6 – Sch´ema de fonctionnement d’un d´etecteur de contours.

les r´esultats obtenus [RT71]. Sur ce principe s’est d´evelopp´ee une classe particuli`ere de filtres appel´es d´etecteur multi-´echelle. On citera par exemple les travaux de [Zio91, LJ92, Tab94]. Des m´ethodes d’extraction multi-´echelle de r´egions ont mˆeme ´et´e propos´ees (voir par exemple [BA89]). On voit donc `a travers ces travaux que le choix de l’´echelle est primordial.

Il existe deux sortes de filtres, les filtres lin´eaires et les non-lin´eaires. L’avan- tage d’un filtre lin´eaire est qu’il est caract´eris´e par sa r´eponse impulsionnelle. L’op´eration de filtrage se traduit alors de mani`ere analytique par un produit de convolution, dans le cas discret :

If = I ∗ fα = +K/2

X

t=−K/2

I(x − t)fα(t)

o`u K est la largeur du filtre. Le sch´ema de fonctionnement d’un d´etecteur de contour peut donc ˆetre repr´esent´e par la figure 6.6. Le principal inconv´enient des filtres lin´eaires est que la r´eduction du bruit entraˆıne un ´etalement des transitions du signal. Les filtres non-lin´eaires n’ont pas cet inconv´enient, par contre ils in- troduisent g´en´eralement des modifications irr´eversibles de l’image. De plus pour la plupart d’entre eux, les pixels ne contribuent pas de la mˆeme fa¸con au lissage. Cette contribution d´ependra de sa position spatiale dans l’image.

On remarquera que sur le sch´ema de la figure 6.6 r´eside une ´etape suppl´ementaire dont nous n’avons pas encore parl´e : la correction. En fait cette ´etape n’est pas toujours pr´esente. En pratique elle s’exprimera par un dernier filtrage de l’image. En fait elle consiste `a essayer d’augmenter une derni`ere fois le rapport signal/bruit en ´eliminant si possible les faux contours d´etect´es. On pourra ´egalement essayer de supprimer les « trous » dans les contours par un algorithme de fermeture des contours. Ce dernier type de correction n’est pas couramment utilis´e alors que le filtrage de l’image lui est syst´ematiquement fait. Ainsi par exemple dans le cas d’un d´etecteur bas´e sur un op´erateur du premier ordre, on peut le faire d’une

mani`ere simple en supprimant tous les contours dont le module du gradient est inf´erieur `a une certaine valeur. Un seuillage plus performant est ´egalement utilis´e : le seuillage par hyst´er´esis. Il consiste `a garder tous les contours au-dessus d’un seuil haut, et tous ceux dont la valeur du module est sup´erieure `a un seuil bas tout en ´etant connexes6 `a un contour dont la valeur du gradient est sup´erieure au

seuil haut. C’est ce type de seuillage que nous utiliserons. Le sujet de cette th`ese n’´etant pas centr´e sur la d´etection de contours, nous avons choisi de travailler `a partir d’un type particulier de d´etecteurs `a cause des avantages qu’ils pr´esentent (voir section 6.1.3) : ceux ´etablis `a partir d’un filtre lin´eaire s´eparable.