UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS …w4.uqo.ca/dii/etudMaitrise/uploads/4.pdftechnique optimale...
Transcript of UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS …w4.uqo.ca/dii/etudMaitrise/uploads/4.pdftechnique optimale...
UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS
DÉTECTION EFFICACE DE CONTOURS D’IMAGES
MÉMOIRE
PRÉSENTÉ
COMME EXIGENCE PARTIELLE
DE LA MAÎTRISE EN INFORMATIQUE
PAR
GUESDON VINCENT
OCTOBRE 2004
UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS
Département d’informatique et d’ingénierie
Ce mémoire intitulé :
DÉTECTION EFFICACE DE CONTOURS D’IMAGES
présenté par
Vincent Guesdon
pour l’obtention du grade de maître ès sciences (M.Sc.)
a été évalué par un jury composé des personnes suivantes :
Rokia Missaoui………….Directrice de recherche
Marek Zaremba………..………Président du jury
Nadia Baaziz………………..…..Membre du jury
Mémoire accepté le : 12 octobre 2004
ii
Remerciement
- Madame Rokia Missaoui pour son soutien et ses conseils tout au long
de ce mémoire.
- Mr Sarifuddin Madenda pour son aide dans le domaine du traitement
d’image
- Les musées du Québec pour les images qu’ils nous ont fournies
- Ganaël de l’équipe du laboratoire LARIM (Laboratoire de Recherche
en Information Multimédias) de l’UQO
- Céline, Guitta, Radhoine et Ghislaine du laboratoire LATECE de
l’UQAM
- Au Consortium CoRIMedia pour son soutien financier.
iii
Résumé
La détection des contours d’une image est une opération non triviale puisqu’il
existe un grand nombre de détecteurs et que chaque détecteur a des performances
différentes suivant les caractéristiques de l’image et les valeurs affectées aux paramètres
du détecteur. Les caractéristiques retenues dans cette étude sont le bruit, le flou,
l’homogénéité, les niveaux de détail et l’entropie.
Puisqu’une image peut comporter un ensemble de zones avec des caractéristiques
distinctes, ce mémoire de maîtrise propose une approche automatisée de détection de
contours qui décompose d’abord une image en zones homogènes, puis applique le
détecteur le plus approprié aux caractéristiques de chacune des zones identifiées. La
première étape fait appel aux arbres quaternaires et à des estimateurs des caractéristiques
de l’image pour la décomposition de l’image en zones homogènes. La deuxième étape est
rendue possible grâce à un travail préliminaire d’analyse et d’expérimentation d’une
sélection de détecteurs de contours et d’identification d’un ensemble de règles
heuristiques de détermination du détecteur le plus approprié aux caractéristiques de
l’image.
L’approche est validée sur un banc d’essai d’images et s’est avérée plus
performante que l’application d’un seul détecteur sur la totalité de l’image.
iv
Abstract
Edge detection in digital images is a non trivial operation because there are a lot
of detectors and each detector has different performances according to image
characteristics (noise, blur, homogeneity, levels of detail and entropy) and parameter
values of the selected detectors.
Since an image can contain a lot of regions with distinct characteristics, this
document proposes an automatic approach to edge detection, which decomposes a
picture into homogeneous zones and applies the best detector to the identified regions
based on the own characteristics. The first step of the approach makes use of quadtrees
and estimators of image characteristics to decompose images into homogeneous regions.
The second step is made possible due to a preliminary experimental study that aims to
construct a set of heuristic rules for the determination of the detectors that are more
appropriate to (and more performant according to) the characteristics of a given image.
The approach is validated on a image benchmark and proved to be more powerful
and efficient than the application of a unique detector on the whole image.
Table des matières
Table des figures………………………………...…………………………….………….vi
Chapitre 1............................................................................................................................ 1 Introduction......................................................................................................................... 1 Chapitre 2............................................................................................................................ 4 État de l’art.......................................................................................................................... 4
2.1 – Caractéristiques des images et des contours .......................................................... 4 2.2 – Détecteurs de contours ......................................................................................... 12 2.3 – La transformée en ondelettes ............................................................................... 19
Chapitre 3.......................................................................................................................... 22 Détection de contours ....................................................................................................... 22
3.1 – Le banc d’essai..................................................................................................... 22 3.2 – Estimation du bruit............................................................................................... 24 3.3 – Estimation du flou................................................................................................ 29 3.4 – Niveau de détail et entropie ................................................................................. 33 3.5 – Découpage d’une image en arbre quaternaire...................................................... 35 3.6 – Choix d’un détecteur............................................................................................ 40
Chapitre 4.......................................................................................................................... 45 Analyse expérimentale...................................................................................................... 45
4.1 – Analyse des résultats............................................................................................ 45 Chapitre 5.......................................................................................................................... 51 Conclusion ........................................................................................................................ 51 Bibliographies ................................................................................................................... 52 ANNEXE A ...................................................................................................................... 55 Résultats des détecteurs usuels ......................................................................................... 55 ANNEXE B ...................................................................................................................... 62 Tableaux d’analyse de détecteurs ..................................................................................... 62 ANNEXE C ...................................................................................................................... 73 Résultats DECAP.............................................................................................................. 73
vi
Table des figures
Figure 2.1 : Profil de contours : marche, rampe, toit, pic 7 Figure 2.2 : Triangle invisible pour un ordinateur 8 Figure 2.3 : Exemples d’erreur sur les contours 9 Figure 2.4 : Exemple d’un filtrage des hautes fréquences 12 Figure 2.6 : Schéma de filtrage pour les ondelettes 20 Figure 2.7 : ondelette de Haar 20 Figure 3.1 : Images du cameraman, du babouin et de Lena 23 Figure 3.2 : Résultats des images les plus connues 23 Figure 3.3 : Image Lena et image Lena bruitée 24 Figure 3.4 : Dérivation Image Lena et dérivation Lena bruitée 25 Figure 3.5 : Image Simple 26 Figure 3.6 :Image Hétérogène (Flou par endroit) 26 Figure 3.7 :Image avec beaucoup de détails 26 Figure 3.8 : Bruit de force 35 et bruit de force 85 27 Figure 3.9 :Estimation du bruit pour la figure 3.5 27 Figure 3.10 : Estimation du bruit pour la figure 3.6 28 Figure 3.11 : Estimation du bruit pour la figure 3.7 28 Figure 3.12 : Effet du flou sur une image 29 Figure 3.13, 3.14 et 3.15 : Graphes liés à l’image 3.12 30 Figure 3.16, 3.17 et 3.18 : Estimation du flou pour les figures 3.5, 3.6 et 3.7 32 Figure 3.19 : Représentation d’une image en arbres quaternaires 36 Figure 3.20 : Découpage de la figure 3.6 38 Figure 3.21 : Absence de découpage des figures 3.5 et 3.7 38 Figure 3.22 : Image dont la zone sud-Est est bruitée 39 Figure 3.23 : Arbre de l’image de la figure 3.22 39 Figure 3.24 : Arbre Quaternaire et indexation par points 40 Figure 3.25 : Image Lena et image Cellules 41 Figure 3.26 : Remarque sur le contour de type marche 42 Figure 3.27 : contours pour un contour de type impulsion 43 Figure 3.28 : Exemple de contour sur un dessin au crayon papier 43 Figure 4.1 : Contours marche, rampe, impulsion et rampe 45 Figure 4.2 : Tableau de résultats de notre détecteur 45 Figure 4.3 :Lena avec tache de bruit 47 Figure 4.4 : image avec zone sud ouest bruitée 47 Figure 4.5 : Détecteur Prewitt sur les figures 4.3 et 4.4 47 Figure 4.6 : Détecteur MIRA avec variance de 1.0 sur les figures 4.3 et 4.4 48 Figure 4.7 : Détecteur MIRA avec variance = 1.5 sur les figures 4.3 et 4.4 48 Figure 4.8 : Détecteur MIRA avec variance 2.5sur les figures 4.3 et 4.4 49 Figure 4.9 : découpage des images des figures 4.3 et 4.4 49 Figure 4.10 : résultats obtenu à partir du découpage des figures 4.3 et 4.4 50
Chapitre 1
Introduction
La détection de contours au sein d’une image est une caractéristique importante
du processus de recherche d’images selon le contenu. Face à un nombre important de
techniques et filtres de détection de contours, il peut être difficile de choisir l’approche la
plus adaptée à une collection spécifique d’images d’autant plus qu’il n’existe pas de
technique optimale pour tous les cas de figures. Par ailleurs, les techniques de détection
de contours analysent souvent une image dans sa globalité sans tenir compte des
spécificités des composantes de l’image.
Pour mener à bien cette opération de détection de contours et remédier à cet état
de fait, il est utile d’étudier dans un premier temps un ensemble de techniques et
d’analyser leur performance et adaptabilité selon les caractéristiques des images dans leur
globalité (image synthétique ou réelle, floue ou nette, bruitée) et selon leurs composantes
(zones de haute fréquence versus basse fréquence). Ensuite, une nouvelle approche de
détection de contours sera proposée et comparée avec l’ensemble de détecteurs retenus.
Introduction
2
Finalement, les résultats de l’analyse seront présentés sous forme de règles heuristiques
de sélection de détecteurs.
L’extraction des contours est utilisée, dans la majorité des cas, pour faciliter
l’étude des détails de l’image. L’application la plus simple est le rehaussement des
contours lorsque ceux-ci sont trop flous. Cependant, l’utilisation de ces techniques sert
aussi à la recherche d’image selon le contenu, au repérage d’objets spécifiques dans des
images ou encore à reconstruire des objets en trois dimensions. Pour ce genre
d’application, il est indispensable d’extraire les contours des objets présents afin de
pouvoir les reconnaître ou les reconstruire. Extraire les contours est donc souvent un
prétraitement indispensable de l’image avant la réalisation d’autres traitements.
Lorsque l’on souhaite extraire des contours, nous remarquons très rapidement que
le nombre de techniques existantes est très grand et que chaque détecteur possède ses
propres caractéristiques. Cela est d’autant plus contraignant que les performances de ces
détecteurs varient suivant les caractéristiques des contours de l’image et des paramètres
associés aux détecteurs. Il faut donc essayer d’identifier le détecteur le plus adéquat à une
image donnée. Pour cela, il est nécessaire de déterminer les caractéristiques de bruit, de
netteté ou encore de continuité des contours. Autant de paramètres qu’il peut paraître
subjectif de déterminer à l’œil nu. Ziou et Koukam [10] ont traité de ce problème en
proposant une approche permettant de choisir un détecteur et ses paramètres en fonction
des caractéristiques des contours présents dans l’image. Cependant, depuis cette époque,
les techniques en matière de détection de contours ont évolué, en particulier avec la
méthode des ondelettes [3,4] qui a permis le développement des « curvelets » [12,13] et
des « contourlets » [5,6,9].
Dans le présent document, nous présentons le problème et les avantages qui
découlent de la résolution de ce problème, ensuite nous abordons le sujet des
caractéristiques des images, en particulier les caractéristiques des contours. Enfin, nous
faisons un état de l’art des différents détecteurs que nous avons choisi pour faire nos
comparaisons. Finalement, le but de notre travail est de déterminer les caractéristiques
Introduction
3
des contours et le ou les détecteurs le(s) plus adapté(s) à une image donnée. Une étude
empirique complète le mémoire et sert de validation de l’approche proposée.
Chapitre 2
État de l’art
2.1 – Caractéristiques des images et des contours
Afin de pouvoir choisir au mieux un détecteur, il est important de bien connaître
le principe des images numériques et aussi la nature des contours dans ces mêmes
images. Pour cela, nous allons présenter dans cette partie les caractéristiques de bas
niveau des images, et des moyens pour les extraire. Dans notre travail nous nous
intéressons essentiellement aux caractéristiques suivantes :
- Le bruit blanc Gaussien
- Le flou Gaussien
- L’entropie
- L’homogénéité de l’image
- Le niveau de détail.
État de l’art
5
2.1.1 – Représentation d’une image
Elle peut s’effectuer selon diverses caractéristiques comme la couleur ou selon des
coefficients tels les coefficients de Fourier ou d’ondelette. En informatique, le plus petit
élément visuel représentable à l’écran se nomme pixel. Une image est donc représentée
comme un tableau de pixels de différentes couleurs ou niveaux de gris.
La couleur :
La façon la plus simple de représenter une image numérique est de considérer des
matrices où chaque case représente une composante de la couleur de l’image. Il existe
ensuite plusieurs manières de coder la couleur d’une image, la plus connue étant le
codage RVB (où les composantes rouge, vert et bleu de chaque pixel sont codées). Mais
il existe aussi les représentations CMY (Cyan, Magenta, Yellow), YCbCr (Luminance,
Chrominances) qui sont très utilisées en détection de contours, surtout pour la
composante qui représente l’intensité lumineuse du pixel. Chacun des éléments de la
matrice est codé sur un certains nombre de bits ce qui correspond à un certain nombre de
niveaux. Par exemple, pour un pixel en niveaux de gris codé sur 8 bits, on a 28 = 256
niveaux de gris différents, donc chaque élément du tableau est compris entre 0 et 255.
Le système de couleur RGB n’est pas un espace uniforme dans le sens où la
distance euclidienne entre deux couleurs RGB ne correspond pas à une différence de
couleur perceptible par un être humain. Pour cette raison, la Commission Internationale
de l’Éclairage (CIE) a défini deux espaces de couleur uniforme Lab et Luv. Nous allons
présenter ici l’espace Lab [26] (luminance, teinte, saturation) car ce système va être
utilisé dans le cadre de ce travail. Pour convertir une couleur de l’espace RGB vers Lab,
il faut passer par un espace intermédiaire défini par le CIE de la façon suivante :
BGRZBGRYBGRX
950227.0119193.0019334.0(1) 072169.0715160.0212671.0
180423.0357580.0412453.0
++=++=++=
On définit ensuite :
État de l’art
6
(4) )()(200
(3) )()(500
(2) 16)(116
⎥⎦
⎤⎢⎣
⎡−=
⎥⎦
⎤⎢⎣
⎡−=
−=
nn
nn
n
ZZf
YYfb
YYf
XXfa
YYfL
Où (5) sinon
11616787.7
0.008856q si )(
31
⎪⎩
⎪⎨
⎧
+
>=
q
qqf
nX , nY et nZ représentent un blanc de référence défini par la CIE et obtenu avec R = G =
B = 100.
Les coefficients de Fourier
La deuxième représentation la plus utilisée consiste à calculer les coefficients de
Fourier de l’image et à stocker ces coefficients dans une matrice. On obtient donc une
représentation fréquentielle de l’image. Cela revient aussi à considérer l’image comme un
signal 2D. Pour obtenir ces coefficients, on applique l’algorithme de la transformée de
Fourier directement aux pixels de l’image avec la formule suivante [8] :
(6) ),(),(0 0
)(2
∑∑= =
+−
=p
y
q
x
Nvyxui
eyxfvuFπ
Avec f un signal 2D, x et y les coordonnées dans l’espace, p et q les dimensions du
signal et N = p*q, et u,v les coordonnées dans l’espace de Fourier. Pour des raisons
d’efficacité, on utilisera l’algorithme de la transformée de Fourier rapide [8] qui n’est pas
expliqué dans ce document.
Les coefficients d’ondelette
La représentation par la transformée en ondelette devient de plus en plus un élément
important en traitement d’image. Elle permet une représentation fréquentielle d’un signal
État de l’art
7
mais permet de connaître éventuellement les variations temporelles des composantes
fréquentielles. De plus, il est possible d’appliquer la transformée en ondelette à la
résolution voulue.
C’est à partir de ces différentes représentations de l’image que nous allons essayer
par la suite de déterminer les contours d’une image.
2.1.2 – Les contours
Définition :
Dans une image, un contour peut être considéré de différentes manières. Nous
allons décrire ici trois principales manières de considérer un contour :
Premièrement, un contour peut être vu comme un changement brusque de l’intensité
de l’image [2,8]. Il existe plusieurs types de variations comme le montre la figure 2.1.
figure 2.1 : Profil de contours : marche, rampe, toit, pic
Deuxièmement, une façon très proche de celle citée ci-dessus est de considérer les
contours comme une différence sur la couleur.
Troisièmement, si on considère l’image comme étant un signal 2D, on peut passer
dans le domaine fréquentiel (par transformée de Fourier ou d’ondelette par exemple).
Dans ce cas, un contour peut être vu comme représentant les hautes fréquences du signal.
Cependant, ces représentations sont parfois insuffisantes pour représenter un
contour. À titre d’exemple, nous remarquons que parfois notre cerveau est capable de
repérer des contours invisibles sur l’image car il a la capacité d’utiliser ses connaissances
pour extraire des formes d’une image. Par exemple, le cerveau humain est capable de voir
le triangle dans l’image suivante.
État de l’art
8
figure 2.2 : Triangle invisible pour un ordinateur
Cependant, nous verrons que dans certains cas nous pouvons quand même
détecter le triangle grâce à des techniques spécifiques comme par exemple les
algorithmes de Hough [2] ou des algorithmes d’objets saillants [25].
Caractéristiques des contours
Au même titre que les caractéristiques visuelles de couleur et texture, les contours
ont également leurs particularités qu’il ne faut pas négliger. D’une part, il peuvent être de
différents types (cf. figure 2.1) et d’autre part, tous les détecteurs n’ont pas la même
performance face à chaque type de contour. Pour cela, nous allons définir une nouvelle
approche d’extraction des particularités des contours et de l’image afin de prévoir quel
détecteur sera le plus efficace.
Afin d’estimer l’efficacité des détecteurs, Ziou et Nguyen ont référencé six erreurs
[15] rencontrées lors de la détection de contours :
- Omission de certains pixels sur le contour à détecter. Elle se mesure en comptant
le nombre de pixels oubliés par rapport au nombre total de pixels du contour idéal
(cf. figure 2.3 b).
- Réponses multiples par la détection de plusieurs contours. Elle se mesure en
comptant le nombre de pixels ambigus par rapport à ceux qui ne le sont pas (cf.
figure 2.3 d).
État de l’art
9
- Localisation : cette erreur se produit quand un pixel d’un contour idéal non
ambigu n’est pas à la bonne place. Elle se mesure en comptant la distance totale
entre le contour détecté et le contour idéal. (cf. figure 2.3 c).
- Sensibilité : Cette erreur est souvent liée au bruit et correspond à de faux contours
détectés à proximité du contour idéal. Elle se mesure en comptant le nombre de
faux contours et le nombre total de contours détectés (cf. figure 2.3 e).
- Fausses suppressions de contours à la suite généralement d’un seuillage. Cette
erreur peut être évitée en s’assurant que l’intensité lumineuse d’un vrai contour
est plus forte que celle d’un faux contour.
- Orientation : Cette erreur survient quand l’orientation d’un contour n’est pas
correcte. Elle se mesure en calculant la différence entre l’orientation estimée et la
vraie orientation pour tous les vrais contours.
Les deux dernières erreurs sont difficiles à représenter.
Pour pouvoir connaître avec précision le contour idéal, Ziou et Nguyen [15] ont
utilisé des images synthétiques définies à partir de fonctions mathématiques. Ainsi, ils
peuvent choisir le type de contour (marche, rampe, toit, pic) et connaître sa position
exacte.
figure 2. 3 : Exemples d’erreur sur les contours, a: contour idéal, b: Omission, c:
délocalisation, d: réponses multiples, e: sensibilité.
État de l’art
10
Enfin, pour l’estimation des erreurs sur les contours, Zhu [24] a proposé une
évaluation des détecteurs sans connaître a priori les contours et a défini un ensemble de
règles. Ces dernières peuvent être estimées à partir des pixels voisins de ceux considérés
comme faisant partie d’un contour par le détecteur. Les règles retenues sont :
- Les contours ne doivent pas être trop épais et l’épaisseur sera préférablement de la
taille d’un pixel.
- Les contours doivent avoir une certaine continuité. Par exemple, la taille
minimum d’un contour correct doit être de deux pixels alors qu’un contour de
taille égal à un pixel représente du bruit dans l’image.
- La connexion entre les contours doit être assez importante. On propose que 90 %
des contours soient reliés à un autre contour, et que seulement 10 % aient des
bouts qui terminent le contour.
- La séparation des contours : les contours doivent être facilement identifiables les
uns par rapport aux autres, il ne faut pas que deux contours différents se touchent
de façon parallèle sur toute leur longueur. Ainsi, deux contours doivent être
séparés par au moins un pixel.
L’évaluation de Zhu des détecteurs se base ensuite sur l’image des contours détectés
et sur un ensemble de fenêtres de taille 3*3 qui permettent d’analyser chaque point
contour et ses voisins. Pour faire cette analyse, l’auteur détermine, sur la base des règles
précédemment décrites, quels cas sont viables pour un contour et quels cas ne le sont pas,
et ceci pour tous les cas possibles sur une fenêtre 3*3.
Pour le choix d’un bon détecteur, Ziou et Koukam [10] ont proposé une approche
utilisant principalement l’erreur de localisation, l’erreur d’omission, la continuité des
caractéristiques des points formant le contour ainsi que des caractéristiques du détecteur
comme le temps d’exécution et le rapport signal sur bruit (SNR). Ce dernier se calcule
sur la base de la formule ci-après en considérant une image dont les contours idéaux sont
connus :
∑∑
=
yx
rx
yxe
yxfSNR
,
2,
2
),(
),(
avec ),(),(),( yxfyxfyxe −′= (8)
)log(10 SNRSNRdB = (9)
État de l’art
11
où f représente l’image des contours idéaux, e l’erreur et f ′ l’image des contours
réels. Les variables x et y sont les coordonnées dans l’espace. Lorsque SNR tend vers
l’infini, la qualité de la détection est considérée parfaite, et quand 0=dBSNR (c’est à dire
SNR = 1) la qualité de la détection est mauvaise.
Dans ce travail, nous visons à identifier les détecteurs et les paramètres les plus
appropriés à divers cas de figures d’images. Pour cela, on s’intéresse à identifier des
caractéristiques de l’image par une estimation du flou et du bruit. Puis, par des
expérimentations sur une variété d’images et de détecteurs, on essaie d’établir des règles
de choix de détecteurs. La validation de l’approche se base sur les coefficients de Zhu et
sur les calculs d’erreurs sur les contours.
2.1.3 – Définition du filtrage
Afin de détecter les contours, nous allons, dans la majorité des algorithmes,
utiliser un filtrage linéaire afin d’appliquer les équations de détection à l’image [2,8]. Le
filtrage d’un signal consiste à éliminer certaines fréquences dans ce signal (cf. figure 4).
Il y a deux principales techniques pour appliquer un filtrage linéaire à une image :
La première consiste à faire une convolution de l’image avec le filtre. Si on
considère le filtre h de taille n*m et une image I de taille p*q, alors la convolution s’écrit :
∑ ∑−= −=
++=2/
2/
2/
2/),(),(),)(*(
n
nk
m
mllkhljkiIjihI (10)
Ou i varie dans [0,p-1] et j varie dans [0,q-1].
La deuxième technique consiste à passer par la transformée de Fourier. On peut
alors montrer que :
)()()*( hTFITFhITF = (11)
Dans la pratique, lorsque cela est possible, on essaie d’estimer le filtre dans ce
qu’on appelle un masque de convolution ce qui est équivalent à faire la convolution. Dans
le cas des images, il s’agit d’un tableau contenant les valeurs de h(k,l).
État de l’art
12
Figure 2.4 : Exemple d’un filtrage des hautes fréquences
2.1.4 – Résultats
En vue de valider les travaux qui seront effectués dans le cadre de ce mémoire,
nous utiliserons une collection d’image naturelles (fleurs, personnages, médicales,
paysages) et synthétiques (issues de fonctions mathématiques). Ainsi, il est possible de
définir les principales caractéristiques des détecteurs grâce aux images synthétiques dont
nous connaissons les propriétés et la localisation exacte des contours [15,10]. Nous
pourrons ensuite déterminer les performances sur des images réelles [24] ce qui nous
permettra d’estimer les performances suivant le type d’image (bruit, flou, peu de détails,
beaucoup de détails etc…). Cette étape nous permettra par la suite de choisir plus
facilement et de manière objective un détecteur par rapport à certaines propriétés de
l’image.
2.2 – Détecteurs de contours
Dans cette partie, nous présentons un aperçu des détecteurs les plus connus et les
plus représentatifs. La majorité des détecteurs sont basés sur des principes similaires et
proposent des convolutions de l’image avec des filtres de lissage et de dérivation. Nous
présenterons ici des détecteurs issus des techniques de dérivation des images (Robert,
Sobel, Prewitt, Kirsch. Canny et Dériche) en expliquant leurs différences au niveau des
filtres utilisés.
État de l’art
13
2.2.1 – Principe de la détection par dérivation
Lorsque l’on considère un contour comme une variation de l’intensité lumineuse,
on pense tout naturellement à la dérivation pour déterminer les variations de l’image.
Dans ce cas, on applique généralement la dérivation à la luminance de l’image. Cette
dérivation va donc annuler les zones de faibles variations (intensités uniformes) et
retourner de forts coefficients lors de variations importantes (contours) [2,8].
Tout d’abord, afin de pouvoir effectuer une dérivation à l’image, il va falloir
discrétiser les équations de dérivation car on ne peut appliquer une dérivation continue
sur une fonction discrète. L’élément minimal étant le pixel, les dérivées premières dans
les directions x et y s’écrivent :
),(),1(),( yxIyxIyxdxdI
−−= et ),()1,(),( yxIyxIyxdydI
−−= (12)
Nous allons présenter des filtres qui une fois appliqués à l’image selon le principe
de filtrage défini au paragraphe 2.1.3, donnent une image résultante correspondant à des
dérivées. Par exemple, les filtres correspondant aux dérivées partielles en x et en y
d’ordre 1 sont :
[ ]11 − et ⎥⎦
⎤⎢⎣
⎡−11
Les deux principales techniques de détection de contour utilisant les dérivations sont :
- L’approche du gradient qui consiste à extraire les zéros de la dérivée seconde dans
la direction du gradient.
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛=
dydI
dxdI
G (13)
- L’approche Laplacien qui revient à chercher les pixels où le Laplacien s’annule.
2
2
2
2
),(dy
Iddx
IdyxL += (14)
État de l’art
14
On peut calculer le Laplacien grâce aux filtres d’approximation suivants :
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−
010141
010 ou
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−−−−
111181111
Dans la suite, nous verrons plusieurs détecteurs basés sur la dérivation discrète
d’une image. Comme la manière de faire cette dérivation n’est pas unique, il existe un
grand nombre de filtres permettant d’approcher les résultats. Ce sont ces filtres que nous
présentons maintenant.
2.2.2 – Détecteur Robert
La technique de détection proposée par Robert [8] est une application directe du
calcul du gradient et consiste à utiliser deux filtres linéaires pour calculer les dérivées
dans les directions π/4 et 3π/4 :
⎥⎦
⎤⎢⎣
⎡−1001
et ⎥⎦
⎤⎢⎣
⎡− 01
10
Ce détecteur est malheureusement très localisé et donc très sensible au bruit, ce
qui nuit grandement à ses performances. Les autres sont moins sensibles au bruit et
offrent de meilleurs résultats.
2.2.3 – Détecteurs Sobel et Prewitt
Ces détecteurs [8] utilisent un filtre linéaire qui a l’avantage d’effectuer deux
opérations en même temps, soit un lissage de l’image et une dérivation. Ils restent
sensibles au bruit mais donnent de bons résultats sur des images non bruitées. Voici les
deux filtres impliquant un opérateur horizontal et un opérateur vertical.
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−− 1100011
α
α et
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
1010
101αα
État de l’art
15
α = 1 pour Prewitt
α = 2 pour Sobel
Ces opérateurs calculent les variations dans seulement deux directions et ont
tendance à donner des contours légèrement épais, ce qui dans certains cas peut être
gênant. Cependant, il existe des détecteurs qui font des rotations sur les coefficients des
filtres pour inclure des dérivées dans d’autres directions. C’est ce que fait le détecteur
suivant.
2.2.4 – Détecteur de Kirsch
Lorsque plusieurs contours se rejoignent en un point, la détection sur seulement
deux directions peut être insuffisante. La détection de Kirsch utilise huit filtres calculant
les contours dans huit directions différentes. Cependant, les faibles résultats et la lourdeur
de ce détecteur font qu’il est peu utilisé.
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−
335305335
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−
333305355
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−
333303
555 …
Les autres filtres sont obtenus en continuant la rotation des coefficients.
Il est aussi possible d’utiliser les huit filtres dans ces mêmes directions pour les
dérivations de Sobel et Prewitt.
Les techniques suivantes utilisent des filtres différents pour calculer les contours. Plutôt
qu’une simple dérivation, on filtre l’image avant de la dériver.
2.2.5 – Méthode de Marr et Hildreth
Marr et Hildreth [1] ont développé une technique permettant de régler le problème
du bruit dans les images dont on veut détecter les contours. Ils ont fait une convolution de
l’image avec un Laplacien d’une gaussienne (LoG filter). Cela permet de supprimer du
bruit qui aurait été détecté par le Laplacien seul. Mais il faut cependant ajuster la variance
État de l’art
16
de la Gaussienne en fonction du type d’image à traiter. Un filtre de variance trop large
dégrade trop l’image (en la rendant trop floue et en éliminant les contours) et une
variance trop faible conduit à une détection de bruit trop importante.
Dans le cas continu, l’opérateur de Marr et Hildreth correspond à la convolution
de l’image de coordonnées x et y par l’opérateur dérivée seconde d’une Gaussienne de
varianceσ .
En deux dimensions, le filtre Gaussien s’écrit :
2
22
222
1),( σσ πσ
yx
eyxG+
−= (15)
2.2.6 – Filtre de Canny
Canny a proposé un filtre optimal pour la détection d’un contour idéal noyé dans
un bruit blanc Gaussien [18,19]. Le filtre proposé est optimal en localisation et maximise
le rapport signal sur bruit. Dans ce contexte, un contour idéal est représenté par une
fonction de Heaviside :
⎩⎨⎧
=10
)(tH sisi
00
≤>
tt
La solution à ce problème est la fonction suivante :
(16) )cos()sin()cos()sin()( 4321 cstewteawteawteawteatC tttt ++++= −− αααα
Canny a proposé des conditions qui permettent de trouver les coefficients de la solution.
Cependant cette solution étant difficile à mettre en œuvre, il l’a approchée par la fonction
dérivée première d’une Gaussienne.
Par la suite, Dériche [20,21] a repris les travaux de Canny et a proposé une solution
exacte au problème avec une qualité bien meilleure.
Filtre de dérivateur : t
D etCtF α−−= ..)( 1 (17)
État de l’art
17
Filtre de lissage : t
D etKtH αα −+= |)|1()( (17a)
Dériche a ensuite proposé une implémentation de cette solution sous forme
récursive en implémentant un lissage de l’image puis une dérivation avec les équations
suivantes :
Lissage :
MmmymymiMmmyemyemxemxeKmy
MmmyemyemxemxKmy
,..,1 )()()(1,.., ),2()1(2 )]2()1()1([)(
,..,1 ),2()1(2)]1()1()([)(22
2
=+=
=−−−++−++=
=−−−+−−+=
−+
+−+−−−−
+−+−−+
αααα
ααα
α
α
(18)
Dérivateur :
Mmmymymi
MmmyemyemxCmy
MmmyemyemxCmy
,..,1 )()()(
1,.., )2()1(2)1()(
,..,1 )2()1(2)1()(2
1
21
=+=
=+−+++=
=−−−+−=
−+
−−−−−
+−+−+
αα
αα
(19)
où αα
α
α 2
2
21)1(
−−
−
−+−
=ee
eK et ααα 21 211
−− −+=
eeC
Avec x une ligne ou une colonne de l’image, y+ et y- des signaux
intermédiaires pour les calculs et i est la ligne ou la colonne résultante.
2.2.7 – Le détecteur MIRA
Le détecteur MIRA (Multimedia Information Retrieval Application) a été
développé dans le laboratoire LARIM de l’Université du Québec en Outaouais (UQO)
[29]. Ce détecteur utilise comme Canny le filtre Gaussien et sa dérivée première,
cependant il propose une détection directionnelle plus élaborée qui permet une meilleure
identification des contours en forme de ligne directionnelle, en coin et de forme
circulaire. On rappelle les formules de la Gaussienne et de sa dérivée :
État de l’art
18
2
2
2
2
23
2
2)('
21)( σσ
πσπσ
xx
exxfetexf−− −
== (20)
Où σ représente la variance et x représente les coordonnées d’un signal à une dimension.
Afin de détecter les contours dans une image (2D), le détecteur MIRA définit plusieurs
filtres bidimensionnels de la façon suivante :
22
22
22
22
..)().('),(
..)(').(),(
22
11
σ
σ
yx
yx
exCyfxfyxF
eyCyfxfyxF+
+
−
−
−==
−==(21)
Où x et y représentent les coordonnées d’un pixel de l’image, F1 représente le filtre dans
la direction x et F2 le filtre dans la direction y. Enfin, pour détecter les contours en
forme de ligne directionnelle, en coin ou en forme circulaire, il suffit d’introduire une
rotation dans les coordonnées des filtres pour obtenir des filtres circulaires :
22
22
22
22
)cos.sin..()','(
).sin.cos..()','(
11
22
σ
σ
θθ
θθyx
yx
eyxCyxF
eyxCyxF+
+
−
−
+−−=
+−=(22)
θ représente un angle entre 0 et 90 degrés, et C1 et C2 sont des constantes de
normalisation des filtres. Ainsi, nous pouvons maintenant appliquer les filtres dans toutes
les directions souhaitées afin de détecter au mieux les contours.
2.2.8 – Affinage des contours
Tous les détecteurs cités précédemment offrent des contours épais qui ne
correspondent pas aux critères de Zhu de bons contours. Puisque nous avons décidé
d’utiliser les critères de Zhu pour mesurer l’efficacité des détecteurs, nous allons utiliser
sur tous nos détecteurs un algorithme d’affinage des contours développé dans le
laboratoire LARIM de l’UQO [29]. Cet affinage s’effectue suivant la direction de
détection des contours sur chacun des filtres d’un détecteur. Ainsi, la formule suivante
donne l’affinage des contours détectés par le filtre dans la direction θ :
État de l’art
19
( )( ) )23(
)(),(),(),()(),(),(0
),(⎪⎩
⎪⎨⎧
++>
++≤=
byaxEyxEsiyxEbyaxEyxEsi
yxEϕϕϕ
ϕϕϕ
et
( )( )⎪⎩
⎪⎨⎧
−−>
−−≤=
)(),(),(),()(),(),(0
),(111111
111111 byaxEyxEsiyxE
byaxEyxEsiyxE
ϕϕϕ
ϕϕϕ (24)
Avec ., 11 yhyetxwx −=−= Les paramètres w et h sont respectivement la largeur et
la hauteur d’image,ϕ représente la direction du contour, ϕE est l’image avec les
contours de cette direction. Les valeurs a et b sont déterminées selon la direction de
contours comme suit : - contours horizontaux a = 0 et b = 1,
- contours verticaux a = 1 et b = 0,
- contours diagonaux 450 a = -1 et b = 1
- contours diagonaux 1350 a = 1 et b = 1
2.3 – La transformée en ondelettes
Dans cette partie, nous n’allons pas nous intéresser directement à des détecteurs
de contours. Nous aborderons une technique récente d’analyse du signal nommée
transformée en ondelette qui permet de représenter les hautes fréquences de l’image à
différentes résolutions. Puisque les contours d’une image peuvent être considérés comme
les hautes fréquences, la transformée en ondelette peut alors permettre d’afficher les
contours. Nous n’aborderons par la théorie au complet mais seulement la manière
d’utiliser ces ondelettes.
2.3.4 - L’analyse multi résolution
De même qu’il existe une implémentation efficace de la transformée de Fourier
dans le domaine discret, il existe une implémentation discrète de la transformée en
ondelette. Son avantage, en plus de donner une représentation temps – fréquences est
d’avoir une complexité en O(N), où N est le nombre d’échantillons du signal [ 3, 4, 7].
État de l’art
20
L’analyse multi-résolution consiste à utiliser deux filtres complémentaires h
(passe haut) et g (passe bas) calculés à partir des fonctions d’échelle (pour réduire ou
augmenter la résolution d’étude du signal) et d’ondelette (pour calculer les coefficients
d’ondelette). On applique ensuite le filtrage suivant le schéma ci-après :
Figure 2.6 : Schéma de filtrage pour les ondelettes
La figure 2.7 montre le résultat de l’application de la transformée en ondelette de
Haar à une image et identifie les groupes de fréquence (BB, HB, BH et HH) obtenus à
chacune des deux premières résolutions. BB représente les basses fréquences du filtrage
des lignes et des colonnes alors que HB exprime les hautes fréquences des lignes et les
basses fréquences des colonnes. BH délimite les hautes fréquences des colonnes et les
basses fréquences des lignes alors que HH représente les hautes fréquences du filtrage des
lignes et des colonnes.
Figure 2.7 : deux premiers niveaux de résolutions d’une ondelette de Haar
État de l’art
21
Les ondelettes de Mallat qui seront utilisées dans notre travail utilisent les filtres h
et g discrets suivant :
}265571.468858,0.0.265571,0{}0.2655710.531142,--0.265571,{
==
hg
(25)
Cette analyse du signal va nous permettre d’extraire des contours par les
ondelettes. En effet, nous remarquons que la zone HB correspond aux contours verticaux,
BH aux contours horizontaux et HH aux contours diagonaux. Par la suite, la détection des
contours par ondelette reviendra essentiellement à choisir une ondelette appropriée ainsi
que la bonne résolution. Afin de conserver au mieux les contours, nous n’effectuerons pas
de sous-échantillonnage lors des filtrages.
Chapitre 3
Détection de contours
Nous allons dans cette partie expliquer les algorithmes et techniques que nous
avons utilisé pour extraire les caractéristiques des images comme le bruit, le flou
l’homogénéité, le niveau de détail et l’entropie. Ensuite nous décrirons la structure de
données employée pour stocker nos images et leurs caractéristiques et présenterons la
méthode de sélection d’un détecteur en fonction de ces caractéristiques.
3.1 – Le banc d’essai
Afin de tester notre application de manière efficace, nous avons conçu un banc
d’essai contenant 123 images qui ont été sélectionnées suivant les critères suivants :
- Les images contiennent des objets de domaines très différents (vie courante,
paysages, dessins, radiographies, images de musée, images synthétiques …)
- Certaines images contiennent du flou ou des zones floues
- Certaines images contiennent du bruit ou des zones bruitées.
Détection de contours
23
Nous avons aussi ajouté à notre banc d’essai des images très connues en détection
de contours (Lena, le cameraman, la tête de babouin) car ces images ont l’avantage
d’avoir servi de nombreuses fois pour tester des détecteurs de contours. Elles nous offrent
donc certaines références.
Figure 3.1 : Images du cameraman, du babouin et de Lena
Voici les résultats obtenus sur ces trois images avec l’application développée dans le
cadre de ce travail. D’autres résultats sont visibles en Annexe C.
Détection de contours
24
Figure 3.2 : Résultats des images les plus connues
3.2 – Estimation du bruit Il sera essentiel dans notre travail d’avoir une certaine estimation du bruit. Cela
nous permettra, entre autres, de choisir la variance la plus appropriée à l’élimination du
bruit dans l’image. Le bruit étant dans les hautes fréquences de l’image, nous allons
utiliser un filtre passe haut afin de laisser passer uniquement les hautes fréquences, c'est-
à-dire le bruit et les contours. Le filtre le plus simple qui permet de laisser passer les
hautes fréquences est la dérivation. Nous allons donc dériver notre image puis essayer
d’en extraire une information utile.
Figure 3.3 : Image Lena et image Lena bruitée
Le bruit analysé est un bruit blanc Gaussien additif. Maintenant regardons le résultat de la
dérivation de chacune de ces images.
Détection de contours
25
Figure 3.4 : Dérivation Image Lena et dérivation Lena bruitée
Nous avons utilisé le filtre Robert pour calculer la dérivée de l’image. Ce dernier laisse
effectivement passer les contours et le bruit de l’image. Ensuite nous allons utiliser des
formules de moyenne et d’écart type pour calculer la variance des variations du signal.
NM
yxDx
N
i
M
j∑∑−
=
−
==
1
0
1
0_
),( (26)
Où _x est la moyenne des variations du signal D (signal dérivé), x et y sont les
coordonnées d’un pixel dans l’image, N est le nombre de lignes de l’image et M est le
nombre de colonnes. À partir de cette moyenne nous allons calculer la variance du signal
avec la formule suivante :
NM
xyxDN
i
M
j∑∑−
=
−
=
−=
1
0
1
0
2_
2
)),(( σ (27)
2σ représente la variance du signal D. Enfin, on va normaliser notre estimation en
divisant cette variance par la variance maximale qui est :
2_
2max )255( += xσ (28)
Dans cette dernière, le 255 représente le nombre de niveaux de gris possibles dans
l’image.
Détection de contours
26
Résultats de cet estimateur
Nous avons testé l’estimateur sur trois images différentes pour avoir un premier aperçu
avant de l’utiliser sur notre benchmark.
Figure 3.5 : image simple Figure 3.6 : Image hétérogène (Flou par endroit)
Figure 3.7 : Image avec beaucoup de détail.
Afin de tester notre estimateur, nous avons appliqué à l’image originale un bruit blanc
Gaussien additif de plus en plus fort suivant la formule suivante :
Pour chaque pixel (x,y) de l’image :
- On utilise un générateur pseudo-aléatoire pour obtenir un nombre aléatoire à
partir d’une distribution de probabilité Gaussienne
- On multiplie cette valeur par le poids que l’on souhaite pour notre bruit (un
nombre entre 1 et 100 valable pour toute l’image).
Détection de contours
27
- On ajoute le résultat au pixel courant.
Figure 3.8 : Bruit de force 35 et bruit de force 85
Maintenant nous allons appliquer le bruit avec une force de plus en plus élevée allant de
1 à 100 pour tracer la courbe de notre estimateur de bruit.
Estimation/bruit
0
0,05
0,1
0,15
0,2
0,25
0 20 40 60 80 100 120
bruit
estim
atio
n
Series1
Figure 3.9 : Estimation du bruit pour l’image de la figure 3.5
Détection de contours
28
Estimation/bruit
00,050,1
0,150,2
0,250,3
0,350,4
0 20 40 60 80 100 120
bruit
Estim
atio
n
Series1
Figure3.10 : Estimation du bruit pour l’image de la figure 3.6
estimation/bruit
00,050,1
0,150,2
0,250,3
0,350,4
0 20 40 60 80 100 120
bruit
estim
atio
n
Series1
Figure 3.11 : Estimation du bruit pour l’image de la figure 3.7
On remarque que le niveau de détail de l’image (la quantité de contours) n’influence pas
la forme de la courbe mais influence le point de départ. Cependant, l’estimateur évolue de
manière régulière avec l’augmentation du bruit. Nous allons par la suite essayer de
déterminer automatiquement le paramètre de variance capable de filtrer le bruit
correspondant à l’image à traiter.
Détection de contours
29
3.3 – Estimation du flou Afin d’obtenir une estimation globale du flou dans une image, il nous a fallu
élaborer une formule. Dans la majorité des cas, lorsque l’on souhaite quantifier du flou, il
est nécessaire de connaître les paramètres de prise de vue de l’image (focal de la lentille,
distances) [27]. Cependant, lorsque nous avons affaire à des images dont les paramètres
ne sont pas connus, il faut trouver une autre solution. L’estimation que nous allons
utiliser se base sur une remarque très simple et permet d’estimer globalement la quantité
de flou gaussien dans une image.
Le principe que nous allons utiliser est le suivant : Plus une image est floue, moins
elle sera affectée par un filtre gaussien. Ou encore, plus un signal est lisse moins le
lissage aura d’effet sur lui.
Figure 3.12 : (a) – image originale, (b) – image (a) après un filtrage gaussien de
variance 2, (c) - même image que (b) , (d) – image (c) après une filtrage Gaussien de 2.
Gaussienne Variance = 2
Gaussienne Variance =
a a b
c a d
Détection de contours
30
Regardons maintenant les graphes des variations des niveaux de gris de la ligne centrale
de ces images.
Figure 3.13 : graphe image (a)
Figure 3.14 : Graphes images (b) et (c)
Figure 3.15 : Graphe image (d)
Détection de contours
31
On remarque que la différence entre les images (a) et (b) est plus importante que
celle entre les images (c) et (d) alors que le filtrage est le même. Ceci est dû uniquement
au fait que (c) est plus floue que (a).
Pour observer cette différence de manière plus concrète nous procèderons avec la logique
suivante : supposons f(x,y) représentant l’image originale, f’(x,y) représente l’image
filtrée par une gaussienne et e(x,y) est la différence entre f et f’. Nous calculons ensuite le
rapport entre l’image originale f(x,y) et l’effet d’une gaussienne e(x,y) comme suit :
∑∑
=
yx
rxff yxe
yxfdiff
,
2,
2
', ),(
),(
avec ),(),(),( yxfyxfyxe −′= (29)
Nous rappelons que plus les images sont similaires, plus le e(x,y) tendra vers zéro et donc
EF sera grand. Ici nous avons :
18.50, =badiff
43.143, =dcdiff (plus de flou)
Enfin plutôt que d’estimer le flou directement sur l’image originale, nous avons préféré
estimer l’évolution du flou de l’image entre deux variances, ceci pour mesurer l’évolution
de l’effet de la gaussienne par rapport aux mêmes références quelque soit l’image à
analyser. Ainsi pour estimer le flou d’une image I, nous allons la filtrer par une
gaussienne de variance 1 ce qui donnera une image I1, puis nous filtrerons I par une
gaussienne de variance 4 qui donnera l’image I2. Notre estimateur de flou est alors
calculé par :
Estimation du flou EF = 2,1 IIdiff (30)
Résultats de cet estimateur
Nous avons effectué un test préliminaire de l’estimateur de flou sur trois images
différentes (cf. figures 3.5, 3.6 et 3.7) avant de l’utiliser sur notre banc d’essai.
Détection de contours
32
Nous avons appliqué à l’image originale un filtre Gaussien de variance de plus en
plus élevée (la variance varie de 1 à 5). Ensuite nous estimons le flou de chaque résultat.
0
100
200
300
400
500
600
700
800
1 1,5 2 2,5 3 3,5 4 4,5 5
Variance
Est
imat
ion
du fl
ou
Série1
Figure 3.16 : Estimation du flou pour la figure 3.5
0
200
400
600
800
1000
1200
1 1,5 2 2,5 3 3,5 4 4,5 5
Variance
Estim
atio
n du
flou
Série1
Figure 3.17 : Estimation du flou pour la figure 3.6
Détection de contours
33
0
50
100
150
200
250
300
350
400
450
500
1 1,5 2 2,5 3 3,5 4 4,5 5
Variance
Estim
atio
n du
flou
Série1
Figure 3.18 : Estimation du flou pour la figure 3.7
Il est important de retenir que cet estimateur est global et ne permet pas de savoir
où se situent les zones floues. Il permet juste de savoir si l’image dans sa globalité
contient du flou. L’estimation peut donc donner des résultats difficiles à analyser dans le
cas où l’image contient des zones très nettes et des zones très floues.
3.4 – Niveau de détail et entropie Il est important lorsque nous allons étudier nos images de pouvoir savoir si elles
contiennent beaucoup ou peu de détails. Une image contenant beaucoup de détails sera
traitée différemment d’une image très homogène. Pour cela nous allons calculer deux
coefficients, l’entropie et le niveau de détail.
L’entropie
L’entropie est très utilisée en compression de données. Elle permet de quantifier
la quantité d’information contenue dans une donnée. Si on prend une image de N pixels
où chaque pixel varie entre 0 et 255 niveaux de gris, on appelle in le nombre de pixels
pour le niveau de gris i. Alors la probabilité qu’un pixel x soit de la couleur i est :
Détection de contours
34
Nn
ixP i=∈ )( (31)
On définit l’entropie de l’image par la formule suivante :
∑=
∈∈−=255
0
))(log(*)()Image(i
ixPixPH (32)
Prenons maintenant quelques images et analysons leur entropie. Nous appelons I1
l’image de la figure 3.6, I2 l’image de la figure 3.5 et I3 l’image de la figure 3.7.
On trouve comme résultats : H(I1) = 5.16 , H(I2) = 1.51 et H(I3) = 5.31
On en déduit donc facilement que l’image I2 contient beaucoup moins
d’information que les images I1 et I3. Ceci nous servira dans le choix des détecteurs de
contours, puisque lorsqu’une image contient très peu d’information, il suffira d’utiliser un
détecteur de contour très simple (comme Robert par exemple).
Niveau de détails
Le niveau de détails de l’image est une donnée supplémentaire que nous utilisons
pour estimer la quantité de contours présents dans l’image. Pour cela, nous examinons
l’histogramme des niveaux de gris de l’image. Plus l’image contient de niveaux de gris
différents plus le niveau de détail va être important. On calcule donc cette valeur avec la
formule suivante :
gris deniveau de Nombre imagel' de ehistogramml' dans nulsnon gris deniveaux de Nombre)Image( =D (33)
On obtient les résultats suivants sur les trois images précédentes :
D(I1) = 0.65 , D(I2) = 0.003 et D(I3) = 0.88.
Homogénéité
L’homogénéité de l’image est une donnée qui va nous permettre de savoir si les
niveaux de gris présents dans l’image sont très dispersés dans l’image ou s’ils forment
des zones de couleur homogène. Pour cela, on va analyser chaque pixel avec ses 8 plus
proches voisins. S’il existe une différence de niveau de gris supérieure à un seuil entre le
pixel et l’un des ses voisins, alors on incrémente le résultat de 1. On divise le résultat
final par le nombre de pixels afin d’obtenir un coefficient entre 0 et 1.
Détection de contours
35
Les résultats obtenus sur les trois images sont :
Homog(I1) = 0.27, Homog(I2) = 0.89 et Homog(I3) = 0.03.
Le premier avantage de ces calculs est de pouvoir déterminer approximativement
le type d’image à laquelle nous avons affaire. Ainsi, nous pouvons à partir de ces valeurs
déterminer que l’image I2 contient peu de détails et des zones très homogènes tandis que
l’image I3 contient beaucoup de détails et peu de zones homogènes (donc un grand
nombre de contours ou beaucoup de bruit). Maintenant que nous avons extrait les
caractéristiques, il va falloir utiliser une structure adaptée pour découper nos images et
conserver l’information.
3.5 – Découpage d’une image en arbre quaternaire
Puisqu’une image peut comporter un ensemble de régions avec des propriétés
distinctes au niveau des caractéristiques, il serait intéressant de procéder à un découpage
automatique de l’image.
Pour cela, nous nous baserons sur une structure d’arbre quaternaire. Il s’agit d’un
arbre où chaque nœud possède 4 fils au plus. C’est une structure de données hiérarchique
qui trouve son application dans plusieurs domaines tels que l’infographie, le traitement
d’images, les systèmes d’information géographiques…
Une telle structure utilise la décomposition récursive pour délimiter des régions
d’un objet (ex. images) telle que les régions d’une image. Les arbres quaternaires peuvent
être différenciés selon :
- le type de données représentées
- le critère de décomposition
- la résolution (le nombre de décompositions à réaliser) : variable ou non
Implantation hiérarchique :
L’un des types d’arbres quaternaires les plus connus est celui basé sur les régions. Selon
le critère de décomposition qui peut être l’homogénéité de la couleur ou de la texture
d’une région d’une image, cette dernière est récursivement décomposée jusqu'à
Détection de contours
36
l’obtention de zones homogènes. Par exemple, chaque région va être décomposée en
quatre quadrants (carrés) identiques. Chaque quadrant est représenté par un nœud qui
aura quatre nœuds fils correspondant aux quatre sous-quadrants (NO :Nord-Ouest,
NE :Nord-Est, SO :Sud-Ouest et SE :Sud-est) du quadrant initial si ce dernier est
décomposé. La racine de l’arbre quaternaire représente l’image initiale.
Pour savoir à quelle partie de l’image correspond un nœud de l’arbre, on a besoin d’une
fonction d’identification des nœuds. Un façon de faire est de numéroter les nœuds par des
séquences de numéros compris entre 0 et 3 : 0 correspond au quadrant NO, 1 au NE, 2 au
SO et 3 au SE. Le nœud racine est identifié par 0. Ses 4 fils sont identifiés respectivement
par 00, 01, 02 et 03. La figure 3.19 illustre ce qui précède.
Figure 3.19 : Représentation d’une image en arbres quaternaires
Détection de contours
37
Avec cette structure, on a la possibilité d’effectuer des opérations rapidement comme par
exemple, un zoom sur une région, en stockant dans les nœuds internes le niveau de gris
représentant la moyenne des couleurs des nœuds fils.
Dans le cadre de ce travail nous allons utiliser l’arbre quaternaire pour
décomposer les images suivant la quantité de floue et de bruit de chaque quadrant.
Algorithme de découpage
Afin de découper notre image, nous allons procéder comme suit :
- L’image entière est la racine de l’arbre
- On découpe l’image du nœud courant en quatre images égales qui représentent
les quatre fils du nœud.
- On analyse les caractéristiques de chaque fils (bruit, flou, entropie, niveau de
détails, niveau d’homogénéité)
- On compare les caractéristiques des fils. Si une différence notable1 apparaît
entre deux fils, alors on découpe la racine en ces quatre fils. Sinon, on ne
découpe pas le nœud
- On agit récursivement de la même manière sur chacun des fils.
L’algorithme s’arrête quand toutes les feuilles sont homogènes en caractéristiques ou
quand la taille de l’image du nœud devient trop petite (inférieure à 16 pixels).
Seuils de découpage
Nous allons ici définir ce que représente pour nous une différence notable dans les
caractéristiques des zones de l’image. Une fois l’image découpée, nous souhaitons utiliser
différents détecteurs de contours sur chacune des zones. Il va donc falloir différencier les
zones qui utiliseront des détecteurs différents.
Pour cela, nous avons procédé de deux manières : empirique et graphique. La
façon empirique consiste à choisir approximativement les seuils de différences à respecter
en fonction des résultats visibles. Voici les seuils obtenus par cette méthode sur les trois
images utilisées précédemment:
- Seuil pour le flou : 27.0
- Seuil pour le bruit : 0.02
1 Nous préciserons plus tard ce que signifie notable pour chaque caractéristique
Détection de contours
38
La deuxième méthode est basée sur les graphiques obtenus pour les estimateurs de
bruit et de flou. Pour ce faire, nous avons calculé la pente des estimateurs entre chaque
point de contrôle2 et fait une moyenne de cette pente, la valeur obtenue est notre seuil de
différence. Nous obtenons alors les résultats suivants sur les mêmes trois images
précédentes.
- Seuil pour le flou : 31.45
- Seuil pour le bruit : 0.015
Voici maintenant les résultats du découpage de quelques images avec notre algorithme.
Figure 3.20 : Découpage de la figure 3.6
Figure 3.21 : Absence de découpage des figures 3.5 et 3.7
2 Un écart entre les points de contrôles de 5 pour la force du bruit et de 0.15 sur la variance du flou Gaussien
Détection de contours
39
On remarque que les images ayant des caractéristiques homogènes ne sont pas découpées
quelque soit le niveau de détail de l’image. Le même détecteur sera alors utilisé pour
toute l’image. Tel est le cas de la figure 3.21.
Maintenant, observons le découpage d’une image comportant une zone bruitée.
Figure 3.22 : Image dont la zone sud-Est est bruitée
Figure 3.23 : Arbre de l’image de la figure 3.22
Détection de contours
40
La zone bruitée a été considérée comme ayant des caractéristiques homogènes et
n’a pas été découpée. Il faudra probablement utiliser un détecteur de contour résistant au
bruit et choisir judicieusement les paramètres des filtres pour détecter correctement les
contours de chaque zone découpée.
L’arbre quaternaire non régulier
Il existe une structure d’arbre quaternaire où les fils n’ont pas forcement tous les
mêmes dimensions. Il s’agit en effet de découper les quadrants en fonctions d’un point de
l’image plutôt que de découper toujours au centre comme le montre la figure 3.24.
Figure 3.24 : Arbre quaternaire et indexation par points
Cette structure est plus adaptée à notre travail puisqu’elle permettrait de découper
les zones de caractéristiques encore plus précisément. Cependant, le calcul du point de
découpage est particulièrement difficile et coûteux en temps de calcul ce qui rend nos
algorithmes inefficaces. Pour cette raison, nous avons préféré conserver la structure
d’arbre avec découpage régulier.
3.6 – Choix d’un détecteur Une fois le découpage de l’image effectué, il va falloir choisir un détecteur et ses
paramètres en fonction des caractéristiques de la zone. Pour cela, nous allons tout d’abord
Détection de contours
41
effectuer une série de tests sur un banc d’essai d’images de divers types afin de repérer
les principaux avantages de chaque détecteur. Le banc d’essai comporte 123 images dont
des images synthétiques contenant des contours de type marche, pic, rampe et impulsion
ainsi que des image fréquemment utilisé en détection de contours (Lena, singe et
cameraman).
Figure 3.25 : Image Lena et image Cellules
Nous allons soumettre ces images à tous les détecteurs implémentés dans le cadre
de notre travail : Robert, Sobel, Prewitt, Kirsch, Canny, Dériche, ondelettes de Mallat,
ondelettes de Haar et MIRA [29].
Avant d’être soumises aux détecteurs, les images seront traitées de plusieurs
façons, par l’ajout de bruit et de flou.
Enfin nous allons traiter les résultats avec les mesures d’erreur de localisation,
l’erreur d’omission, le calcul du rapport signal sur bruit (SNR) et les mesures d’efficacité
de Zhu.
Nous obtenons donc un tableau récapitulatif des performances des détecteurs suivant
différents cas de figure (cf. résultats en Annexe B). Les résultats empiriques permettent
d’émettre les observations suivantes :
1. L’erreur de localisation présente un problème majeur puisque dans le cas d’un contour
de type marche, il faut décider arbitrairement où se trouve le contour puisque dans
Détection de contours
42
l’absolu il se trouve entre les deux pixels ayant des couleurs différentes comme le montre
la figure 45.
Figure 3.26 : image a : Un contour de type marche, image b : premier contour possible,
image c : Deuxième contour possible.
Il se trouve que certains détecteurs utilisent le schéma 3.26.b alors que d’autres utilisent
le schéma 3.26.c. Lorsque nous calculons l’erreur de localisation, nous utilisons un
contour idéal selon le schéma 3.26.b. Cela signifie que certains détecteurs indiquent une
erreur de localisation alors qu’en fait il s’agit juste d’une différence de positionnement du
contour.
2. En analysant les résultats en fonction de la remarque précédente, on constate que
certains détecteurs sont plus efficaces quel que soit le cas. Par exemple, dans le cas des
images nettes, le détecteur Prewitt3 est toujours meilleur que Robert, Sobel ou Kirsch.
Ceci va en partie simplifier le choix du détecteur par la suite. De même, dans le cas des
images bruitées, le détecteur MIRA se comporte mieux que celui de Canny et Dériche et
sera donc préféré à ces deux détecteurs. Les détecteurs de Shen, ainsi que ceux issus des
ondelettes de Haar et Mallat seront utilisés dans des cas très précis.
3. Les contours de type impulsion et pic doivent-ils être considérés comme étant un seul
contours ? Ce problème vient essentiellement du fait que le pixel possède une épaisseur et
donc un contour de chaque côté comme le montre la figure 3.27.
3 Il s’agit d’une implémentation performante du détecteur Prewitt.
a b c
Détection de contours
43
Figure 3.27 : contours pour un contour de type impulsion
Ce problème du contour de type impulsion est surtout gênant lorsque l’on souhaite
obtenir les contours d’un dessin comme dans le cas de la figure 3.28.
Figure 3.28 : Exemple de contour sur un dessin au crayon papier.
À partir de ces constatations, nous allons maintenant sélectionner nos détecteurs et
leurs paramètres de la façon suivante :
Choix de la variance :
Pour choisir la variance, nous allons analyser les résultats de l’estimateur de bruit.
Pour un bruit quasi nul, nous utiliserons une variance de 1.5. Si le bruit atteint ou
dépasse une valeur de 0.3 (valeur moyenne pour le bruit de force 100) alors nous
Détection de contours
44
utiliserons une variance de 4. Au delà de 4, la variance devient trop forte et les contours
sont très délocalisés. De plus, un bruit supérieur à cette valeur suppose que l’image est
trop bruitée pour permettre une détection de contour efficace. Enfin, pour les estimations
de bruit intermédiaire, nous ferons une interpolation linéaire entre ces valeurs.
Le flou peut aussi venir influencer la variance. Les détecteurs Canny, Dériche et
MIRA offrent des résultats souvent plus performants quand les contours sont légèrement
flous. C’est pour cette raison qu’une image sans bruit et sans flou donnera de bons
résultats avec une variance de 1.5 plutôt que 1.0. Cependant, lorsque l’image est floue, il
faut diminuer la variance pour éviter de perdre des contours lors du lissage. Pour cela,
nous diminuons la variance selon des paliers de flou choisis en fonction des graphiques
de l’estimateur sur le banc d’essai.
Règles de sélection du détecteur :
D’après les remarques précédentes et en nous référant à l’Annexe B relative aux
résultats expérimentaux, nous avons établi les règles heuristiques de sélection suivantes :
- Si l’homogénéité est supérieure à 90% et le niveau de détail inférieur à 1% alors
nous utilisons le détecteur issu des ondelettes de Mallat
- Si l’image contient peu de bruit (estimateur inférieur à 0.02) et une homogénéité
moyenne (supérieure à 50%) alors nous utilisons le détecteur de Prewitt.
- Sinon, nous utilisons le détecteur MIRA en calculant la variance suivant la
formule d’interpolation décrite précédemment.
Variance = 1.5+8.58*Estimation Bruit (34)
Nous avons seulement utilisé les détecteurs Mallat, Prewitt et MIRA car ils
offrent chacun les meilleurs résultats. MIRA a été préféré à Canny ou Dériche car son
efficacité sur les contours en forme de ligne directionnelle, en coin et de forme circulaire
est meilleure. Maintenant, nous allons montrer et analyser les résultats pour expliquer en
quoi notre démarche offre de meilleurs résultats et pourquoi.
Chapitre 4
Analyse expérimentale
4.1 – Analyse des résultats
En premier lieu, nous allons chercher à savoir si les contours détectés grâce à
notre méthode donnent de meilleurs coefficients et des erreurs plus faibles que si on avait
appliqué un détecteur seul sur toute l’image. Notre détecteur se nomme DECAP pour
Détection Efficace des Contours Avec Prétraitement.
Les quatre images de contours synthétiques utilisées sont les suivantes :
Figure 4.1 : Contours marche, rampe, impulsion et rampe
DÉTECTEUR IMAGE TRAITÉE BRUIT SNR LOCALISATION OMISSION
ZHU
TOTAL COMMENTAIRES
DECAP
Contour
MARCHE 0
0,5
ou
53.5
0,58 ou 0.0 si
on tiens compte
de la première 0 0,71
MIRA variance 1 pour toute
l'image
Analyse expérimentale
46
remarque
DECAP Contour RAMPE 0
0,88
ou
2.5 0,58 ou 0.0 0 0,71
MIRA variance 1 pour toute
l'image
DECAP Contour PIC 0 0,86 0,58 0 0,71
MIRA variance 1 pour toute
l'image
DECAP
Contour
IMPULSION 0 0,49 0,58 0 0,71
MIRA variance 1 pour toute
l'image
DECAP Lena fig. 43 0 0,57
découpage en nombreuses
zones
DECAP Cellules fig. 44 0 0,53
découpage en nombreuses
zones
DECAP
Contour
MARCHE 20 0,22 0,18 0 0,38 découpage en 4 zones
DECAP Contour RAMPE 20 0,22 0,43 0 0,43
MIRA variance 1,5 pour toute
l'image
DECAP Contour PIC 20 0,21 0,77 0 0,49
MIRA variance 1,5 pour toute
l'image
DECAP
Contour
IMPULSION 20 0,72 0 0,39
MIRA variance 1,5 pour toute
l'image
DECAP Lena fig. 43 20 0,52
MIRA variance 1,5 pour toute
l'image
DECAP Cellules fig. 44. 20 0,54
MIRA variance 1,3 pour toute
l'image
Figure 4.2 : Tableau de résultats de notre détecteur
Visuellement, on constate que les résultats sont bons et donnent correctement les
contours des objets de l’image. Cependant, on constate aussi qu’il n’y a pas véritablement
de différence avec certains détecteurs utilisés seuls. Le premier avantage que l’on
constate est le choix automatique du détecteur et surtout le calcul automatique de la
variance.
Un deuxième avantage de notre méthode est l’apparition plus nette des contours
flous. En effet, lorsqu’une image contient des zones nettes et des zones floues, le
découpage isole les différents types de zone et choisit le détecteur et la variance en
conséquence.
Analyse expérimentale
47
Cependant le gain est plus significatif lorsque les images présentent des
caractéristiques hétérogènes comme sur les images des figures 4.3 et 4.4.
Figure 4.3 :Lena avec tache de bruit figure 4.4 : image avec zone sud ouest bruitée
En effet ces images contiennent des zones très floues, des zones très nettes, des zones
bruitées, des zones avec beaucoup de détails et des zones plus homogènes. Il est d’abord
intéressant de regarder les résultats d’un détecteur utilisé seul sur l’ensemble de l’image.
On peut voir sur la figure 4.5 le résultat d’un détecteur Prewitt et sur les figures 4.6 et 4.7
le détecteur MIRA avec plusieurs variances différentes.
Figure 4.5 : Détecteur Prewitt sur les figures 4.3 et 4.4
Analyse expérimentale
48
Figure 4.6 : Détecteur MIRA avec variance de 1.0 sur les figures 4.3 et 4.4
Figure 4.7 : Détecteur MIRA avec variance = 1.5 sur les figures 4.3 et 4.4
Analyse expérimentale
49
Figure 4.8 : Détecteur MIRA avec variance 2.5sur les figures 4.3 et 4.4
Des résultats corrects sont obtenus avec le détecteur MIRA à partir d’une variance
de 1.5. Cependant, le bruit est totalement éliminé avec une variance de 2.5 ce qui
introduit malheureusement une délocalisation des contours situés dans des zones n’ayant
pas de bruit.
Regardons maintenant le résultat obtenu grâce au découpage (cf. figure 4.9 et
4.10). D’abord, nous constatons que lors du découpage en arbre quaternaire, l’application
propose un grand nombre de zones différentes donc des caractéristiques très hétérogènes
comme le montre la figure 4.9.
Figure 4.9 : découpage des images des figures 4.3 et 4.4
Analyse expérimentale
50
Le but de ce découpage est surtout d’appliquer un filtre très résistant au bruit sur
les zones bruitées et un filtre plus simple sur les zones non bruitées afin de conserver au
mieux les contours. Nous obtenons alors les résultats de la figure 4.10.
Figure 4.10 : résultats obtenu à partir du découpage des figures 4.3 et 4.4
On constate que sans aucune intervention de l’utilisateur, nous obtenons un résultat où
tous les contours essentiels apparaissent et où l’intensité des contours est bonne. De plus,
le bruit a été en grande partie éliminé sans avoir à choisir une variance et les zones non
bruitées offrent moins de délocalisation que si on avait appliqué la même variance4 sur
toute l’image. Les résultats de notre application sur quelques images de notre banc
d’essai sont visibles en Annexe C.
4 La variance est élevée à cause de la présence de bruit
Chapitre 5
Conclusion
A l’issue de ce travail, nous avons réussi à développer une application capable de
découper automatiquement des images suivant des zones homogènes au niveau de
quelques caractéristiques et de choisir automatiquement les détecteurs de contours les
plus adéquats et les plus efficaces pour les caractéristiques de chacune des zones. Les
caractéristiques utilisées sont le bruit blanc, le flou Gaussien, le niveau de détails,
l’homogénéité et l’entropie. Cependant, il est possible d’améliorer encore les résultats en
étudiant des caractéristiques plus spécifiques ou en développant de meilleurs détecteurs
de contours ou de meilleurs estimateurs.
Nous pourrions aussi envisager d’utiliser certaines techniques spécifiques et
récentes pour traiter les zones avant de détecter les contours, comme par exemple
effectuer un débruitage à l’aide de l’outil Contourlet. Cependant, ces techniques
nécessitent un travail à part entière et n’ont donc pas pu être traitées dans ce document.
Finalement, notre travail présente des avantages certains en détection de contours
mais les possibilités d’extension sont encore très vastes, que ce soit au niveau des
caractéristiques ou au niveau des détecteurs de contours.
52
Bibliographies
[1] David Marr et E. Hildreth : “Theory of Edge Detection”, Proc. R. Soc. London, B
207, pp :187-217, 1980
[2] Radu Horaud et Olivier Monga – « Vision par Ordinateur » - Deuxième édition –
édition Hermes, 1995.
[3] Stéphane G Mallat – « A theory for multiresolution signal decomposition : The
wavelet representation » - IEEE transactions on pattern analysis and machine
intelligence VOL II. No 7 11(7):674-693 Juillet 1989.
[4] Albert Cohen et Jelena Kolacevic – « Wavelets : the mathematical background » -
Proceedings of the IEEE, 8(4):514—522 , octobre 1996.
[5] Duncan D-Y Po et Minh N. Do. - « Directionnel multiscale modeling of images
using the contourlet » - Coordinated Science Lab and Beckman Institute, University
of Illinois at Urbana-Champaign - Urbana IL 61801 , 2003.
[6] M. N. Do et M. Vetterli, “The contourlet transform: an efficient directional
multiresolution image representation”. IEEE Transactions Image Processing, 2003.
[7] Geert Uytterhoeven, Dirk Roose et Adhemar Bultheel – « Wavelet Transforms
Using the lifting scheme » - Report ITA – Wavelet-WP1.1 (Revised version) Avril
1997. site web : http://www.cs.kuleuven.ac.be/~wavelets/ dernier accès le 20 janvier
2004
[8] R. C. Gonzales et R. E. Woods “Digital Image Processing” Second edition.
Prentice Hall 2002
[9] M. N. Do et M. Vetterli, « Contourlets ». Beyond Wavelets, G. V. Welland ed.,
Academic Press, 2003.
[10] D. Ziou et A. Koukam. “ Knowledge-based assistant for the selection of edge
detectors”, Pattern Recognition (31)5, pp. 587-596, 1998.
[11] D. Ziou et S. Tabbone. « Edge detection techniques - An overview » Technical
Report AI Memo 833, Massachusette Institute of Technology, Artifical Intelligence
Laboratory, 1997.
53
[12] D. L. Donoho et M. R. Duncan. « Digital curvelet transform : Strategy,
Implementation and experiments » . Proc Aerosense 2000, Wavelet applications VII,
SPIE 2000, vol. 4056, pp. 1229.
[13] E. J. Candes et D. L. Donoho. « Curvelets – A surprisingly effective
nonadaptive representation for objects with edges » Curves and surfaces IV ed P.-J.
Laurent. 1999
[14] M. N. Do et M. Vetterli. « The finite ridgelet transform for image
representation » IEEE transaction on image processing., 2002.
[15] D. Ziou et T. B. Nguyen, “Contextual and non-contextual performance
evaluation of edge detectors Pattern” Recognition Letters 21(9), 2000.
[16] J. H. Elder et S. W. Zucker, « Local scale control for edge detection and blur
estimation » IEEE transaction on pattern analysis and machine intelligence Vol 20 No
7, Juillet 1998.
[17] F. Matùs et J. Flusser, « Image representation via the finite radon transform » ,
IEEE transaction on pattern analysis and machine intelligence Vol 15 No 10, Octobre
1993.
[18] J. F. Canny, “finding edges and lines in image” technical report No 720 , 1983
[19] J. F. Canny, “A computational approach to edge detection” , IEEE transaction on
pattern analysis and machine intelligence, Novembre 1986
[20] R. Dériche, “using Canny’s criteria to derive a recursive implemented optimal
edge detector”, The international journal of computer science, 1987
[21] R. Dériche, “Optimal edge detection using recursive filtering”, Proceedings of
the first international conference in computer vision, 1987.
[22] P. J. Burt et E. H. Adelson , “The Laplacian Pyramid as a Compact Image Code”
IEEE Transactions on Communications, 1983.
[23] R. H. Bamberger et M. J. T. Smith. « A filter bank for the directional
decomposition of images: Theory and design”. IEEE Trans. Signal Proc., pp 882 –
893, Avril 1992.
[24] Q. Zhu, « Improving edge detection by an objective edge evaluation » , 1992
ACM/SIGAPP Symposium on Applied Computing, Kansas City, MO. pp. 459-468.
54
[25] Roman M. Palenichka, Rokia Missaoui & Marek B. Zaremba. Extraction of
Salient Features for Image Retrieval Using Multi-scale Image Relevance Function.
Poster Paper In Proceedings of the International Conference on Image and Video
Retrieval (CIVR), Dublin, Ireland, July 2004.
[26] George Paschos – “ Perceptually Uniform Color Spaces for Color Texture
Analysis: An Empirical Evaluation ” – IEEE Transaction on image processing, VOL
10, NO 6, Juin 2001
[27] Djemel Ziou et Francois Deschenes – “Depth From Defocus Estimation in
Spatial Domain” - Computer Vision and Image Understanding 81, pp. 143--165, 2001
[28] Yitzhak Yitzhaky et Eli Peli – “A Method for Objective Edge Detection
Evaluation and Detector Parameter Selection” – IEEE transactions on pattern analysis
ans machine intelligence, vol. 25 No 8 - Août 2003
[29] Rokia Missaoui, M. Sarifuddin, N. Baaziz et V. Guesdon – “Détection de
contours par décomposition de l’image en régions homogènes” – Rapport technique,
UQO, novembre 2004.
ANNEXE A
Résultats des détecteurs usuels
Les figures contenues dans cette annexe fournissent le résultat de l’application d’un seul
détecteur sur l’ensemble de l’image. Tous les détecteurs utilisés sont présentés ici.
Figure A-1 : Contours Robert
ANNEXE A
57
Figure A-4 : Contours Marr et Hildreth σ = 4
Figure A-5 : Contours Canny σ = 1 , seuil = 0.7
ANNEXE A
58
Figure A-6 : Contours par ondelette, Coefficients de Mallat - résolution 2
Figure A-7 : Contour par ondelette, Coefficients de Haar – résolution 2
ANNEXE A
59
Figure A-8 : Contours par filtre de Dériche, 3.1=α avec seuillage
Figure A-9 : Contours par filtre du système MIRA5, 2=σ , avec affinage par recherche
des maxima
5 Il s’agit d’un filtre développé par notre équipe de recherche et intégré dans le prototype MIRA.
ANNEXE B
Tableaux d’analyse de détecteurs
Cette annexe présente les résultats des calculs d’erreur de localisation et d’omission ainsi que les coefficients de Zhu pour quatre
images synthétiques (figure 4.1) et deux images réelles (Figure 3.25). Ce tableau tient aussi compte de l’affinage des contours et de la
quantité de bruit introduit dans l’image. On y voit aussi les paramètres des détecteurs utilisés.
DÉTECTEUR IMAGE TRAITÉE AFFINAGE BRUIT VARIANCE RÉSOLUTION SNR LOCALISATION OMISSION
ZHU TOTAL COMMENTAIRES
ROBERT Contour MARCHE NON 0 AUCUNE AUCUNE 1,01 0,99 0,99 0
intensité extrêmement faible
ROBERT Contour MARCHE NON 0 AUCUNE AUCUNE 256 0 0 0,71
avec le seuillage automatique
ROBERT Contour RAMPE NON 0 AUCUNE AUCUNE 1,69 0 0 0,71
ROBERT Contour PIC NON 0 AUCUNE AUCUNE 1,51 0 0 0,36
ANNEXE B
63
ROBERT Contour IMPULSION NON 0 AUCUNE AUCUNE 1,12 0 0 0,36
ROBERT Lena NON 0 AUCUNE AUCUNE 0,28 ROBERT Cellules NON 0 AUCUNE AUCUNE 0,21
ROBERT Contour MARCHE NON 20 AUCUNE AUCUNE 0,08 0,17 0 0,26
ROBERT Contour RAMPE NON 20 AUCUNE AUCUNE 0,05 0,03 0 0,07
ROBERT Contour PIC NON 20 AUCUNE AUCUNE 0,05 0,04 0 0,08
ROBERT Contour IMPULSION NON 20 AUCUNE AUCUNE 0,05 0,11 0 0,08
ROBERT Lena NON 20 AUCUNE AUCUNE 0,07 ROBERT Cellules NON 20 AUCUNE AUCUNE 0,05
SOBEL Contour MARCHE NON 0 AUCUNE AUCUNE 1 0 0 0,36
SOBEL Contour RAMPE NON 0 AUCUNE AUCUNE 1,31 0 0 0,18
SOBEL Contour PIC NON 0 AUCUNE AUCUNE 0,51 0,71 0 0,24 double
SOBEL Contour IMPULSION NON 0 AUCUNE AUCUNE 0,33 0,58 0 0,71 double
SOBEL Lena NON 0 AUCUNE AUCUNE 0,15 SOBEL Cellules NON 0 AUCUNE AUCUNE 0,11
SOBEL Contour MARCHE OUI 0 AUCUNE AUCUNE 0,5 0,58 0 0,71
SOBEL Contour RAMPE OUI 0 AUCUNE AUCUNE 0,72 0,58 0 0,71
SOBEL Contour PIC OUI 0 AUCUNE AUCUNE 0,56 0,58 0 0,71 double
SOBEL Contour IMPULSION OUI 0 AUCUNE AUCUNE 0,33 0,58 0 0,71 double
SOBEL Lena OUI 0 AUCUNE AUCUNE 0,64 SOBEL Cellules OUI 0 AUCUNE AUCUNE 0,69
SOBEL Contour MARCHE NON 20 AUCUNE AUCUNE 0,03 0 0 0,07
ANNEXE B
64
SOBEL Contour RAMPE NON 20 AUCUNE AUCUNE 0,02 0,008 0 0,01
SOBEL Contour PIC NON 20 AUCUNE AUCUNE 0,02 0,04 0 0,01
SOBEL Contour IMPULSION NON 20 AUCUNE AUCUNE 0,02 0,05 0 0,01 double
SOBEL Lena NON 20 AUCUNE AUCUNE 0,009 SOBEL Cellules NON 20 AUCUNE AUCUNE 0,008
SOBEL Contour MARCHE OUI 20 AUCUNE AUCUNE 0,03 0,46 0 0,62
SOBEL Contour RAMPE OUI 20 AUCUNE AUCUNE 0,02 0,29 0 0,6
SOBEL Contour PIC OUI 20 AUCUNE AUCUNE 0,02 0,41 0 0,6
SOBEL Contour IMPULSION OUI 20 AUCUNE AUCUNE 0,02 0,43 0 0,6 double
SOBEL Lena OUI 20 AUCUNE AUCUNE 0,62 SOBEL Cellules OUI 20 AUCUNE AUCUNE 0,64
PREWITT Contour MARCHE NON 0 AUCUNE AUCUNE 1 0 0 0,36
PREWITT Contour RAMPE NON 0 AUCUNE AUCUNE 1,45 0 0 0,18
PREWITT Contour PIC NON 0 AUCUNE AUCUNE 0,65 0,71 0 0,24 double
PREWITT Contour IMPULSION NON 0 AUCUNE AUCUNE 0,33 0,58 0 0,71 double
PREWITT Lena NON 0 AUCUNE AUCUNE 0,16 PREWITT Cellules NON 0 AUCUNE AUCUNE 0,16
PREWITT Contour MARCHE OUI 0 AUCUNE AUCUNE 0,5 0,58 0 0,71
PREWITT Contour RAMPE OUI 0 AUCUNE AUCUNE 0,82 0,58 0 0,71
PREWITT Contour PIC OUI 0 AUCUNE AUCUNE 0,69 0,58 0 0,71 double
PREWITT Contour IMPULSION OUI 0 AUCUNE AUCUNE 0,33 0,58 0 0,71 double
PREWITT Lena OUI 0 AUCUNE AUCUNE 0,56
ANNEXE B
65
PREWITT Cellules OUI 0 AUCUNE AUCUNE 0,56
PREWITT Contour MARCHE NON 20 AUCUNE AUCUNE 0,05 0 0 0,13
PREWITT Contour RAMPE NON 20 AUCUNE AUCUNE 0,03 0,01 0 0,02
PREWITT Contour PIC NON 20 AUCUNE AUCUNE 0,03 0,06 0 0,02
PREWITT Contour IMPULSION NON 20 AUCUNE AUCUNE 0,03 0,05 0 0,02 double
PREWITT Lena NON 20 AUCUNE AUCUNE 0,02 PREWITT Cellules NON 20 AUCUNE AUCUNE 0,01
PREWITT Contour MARCHE OUI 20 AUCUNE AUCUNE 0,06 0,2 0 0,53
PREWITT Contour RAMPE OUI 20 AUCUNE AUCUNE 0,03 0,25 0 0,48
PREWITT Contour PIC OUI 20 AUCUNE AUCUNE 0,04 0,57 0 0,48
PREWITT Contour IMPULSION OUI 20 AUCUNE AUCUNE 0,04 0,58 0 0,48 double
PREWITT Lena OUI 20 AUCUNE AUCUNE 0,48 PREWITT Cellules OUI 20 AUCUNE AUCUNE 0,47
KIRSCH Contour MARCHE NON 0 AUCUNE AUCUNE 1 0 0 0,36
KIRSCH Contour MARCHE OUI 0 AUCUNE AUCUNE 0,5 0,58 0 0,71
KIRSCH Contour RAMPE NON 0 AUCUNE AUCUNE 0,54 0 0 0,14
KIRSCH Contour RAMPE OUI 0 AUCUNE AUCUNE 0,5 0,58 0 0,71
KIRSCH Contour PIC NON 0 AUCUNE AUCUNE 0,27 0 0 0,08 KIRSCH Contour PIC OUI 0 AUCUNE AUCUNE 0,33 0,58 0 0,71 double
KIRSCH Contour IMPULSION NON 0 AUCUNE AUCUNE 0,5 0 0 0,24
KIRSCH Contour IMPULSION OUI 0 AUCUNE AUCUNE 0,33 0,58 0 0,71 double
ANNEXE B
66
KIRSCH Lena NON 0 AUCUNE AUCUNE 0,02 KIRSCH Lena OUI 0 AUCUNE AUCUNE 0,35 KIRSCH Cellules NON 0 AUCUNE AUCUNE 0,004 KIRSCH Cellules OUI 0 AUCUNE AUCUNE 0,33
KIRSCH Contour MARCHE NON 20 AUCUNE AUCUNE 0,003 0 0 0,004
KIRSCH Contour MARCHE OUI 20 AUCUNE AUCUNE 0,004 0,72 0 0,24
KIRSCH Contour RAMPE NON 20 AUCUNE AUCUNE 0,002 0 0 0,003
KIRSCH Contour RAMPE OUI 20 AUCUNE AUCUNE 0,003 0,29 0 0,2
KIRSCH Contour PIC NON 20 AUCUNE AUCUNE 0,002 0 0 0,002 KIRSCH Contour PIC OUI 20 AUCUNE AUCUNE 0,003 0,45 0 0,2
KIRSCH Contour IMPULSION NON 20 AUCUNE AUCUNE 0,02 0 0 0,003
KIRSCH Contour IMPULSION OUI 20 AUCUNE AUCUNE 0,003 0,63 0 0,2
KIRSCH Lena NON 20 AUCUNE AUCUNE 0,002 KIRSCH Lena OUI 20 AUCUNE AUCUNE 0,23 KIRSCH Cellules NON 20 AUCUNE AUCUNE 0,002 KIRSCH Cellules OUI 20 AUCUNE AUCUNE 0,27
CANNY Contour MARCHE NON 0 1 AUCUNE 0,77 0,003 0 0,24
CANNY Contour MARCHE OUI 0 1 AUCUNE 0,82 0,85 0 0,71
CANNY Contour MARCHE OUI 0 1,5 AUCUNE 0,81 0,85 0 0,71
CANNY Contour RAMPE NON 0 1 AUCUNE 0,81 0,71 0 0,24
CANNY Contour RAMPE OUI 0 1 AUCUNE 0,96 0,85 0 0,71
CANNY Contour OUI 0 1,5 AUCUNE 0,97 0,85 0 0,71
ANNEXE B
67
RAMPE CANNY Contour PIC NON 0 1 AUCUNE 0,94 0,004 0 0,48 CANNY Contour PIC OUI 0 1 AUCUNE 1,16 0,004 0 0,71 CANNY Contour PIC OUI 0 1,5 AUCUNE 0,97 0,58 0 0,71 double
CANNY Contour IMPULSION NON 0 1 AUCUNE 1,03 0,003 0 0,48 double
CANNY Contour IMPULSION OUI 0 1 AUCUNE 1,32 0,003 0 0,71 double
CANNY Contour IMPULSION OUI 0 1,5 AUCUNE 0,93 0,58 0 0,71 double
CANNY Lena OUI 0 1 AUCUNE 0,65 CANNY Cellules OUI 0 1 AUCUNE 0,63
CANNY Contour MARCHE NON 20 1 AUCUNE 0,008 0,006 0 0,23
CANNY Contour MARCHE OUI 20 1 AUCUNE 0,01 0,34 0 0,63
CANNY Contour MARCHE NON 20 1,5 AUCUNE 0,07 0,03 0 0,31
CANNY Contour MARCHE OUI 20 1,5 AUCUNE 0,12 0,68 0 0,48
CANNY Contour RAMPE NON 20 1 AUCUNE 0,27 0,27 0 0,53
CANNY Contour RAMPE OUI 20 1 AUCUNE 0,33 0,59 0 0,59
CANNY Contour RAMPE OUI 20 1,5 AUCUNE 0,75 0,81 0 0,28
CANNY Contour PIC NON 20 1 AUCUNE 0,29 0,24 0 0,54 CANNY Contour PIC OUI 20 1 AUCUNE 0,35 0,39 0 0,56 CANNY Contour PIC OUI 20 1,5 AUCUNE 0,77 0,58 0 0,35
CANNY Contour IMPULSION NON 20 1 AUCUNE 0,3 0,003 0 0,54
CANNY Contour IMPULSION OUI 20 1 AUCUNE 0,37 0,003 0 0,56
CANNY Contour IMPULSION OUI 20 1,5 AUCUNE 0,84 0,33 0 0,37
ANNEXE B
68
CANNY Lena OUI 20 1 AUCUNE 0,64 CANNY Cellules OUI 20 1 AUCUNE 0,68
DERICHE Contour MARCHE NON 0 1 AUCUNE 0,17 0 0 0,12
DERICHE Contour RAMPE NON 0 1 AUCUNE 0,36 0 0 0,13
DERICHE Contour PIC NON 0 1 AUCUNE 0,47 0.71 0 0,23
DERICHE Contour IMPULSION NON 0 1 AUCUNE 0,51 0 0 0,15
DERICHE Lena NON 0 1 AUCUNE 0,15 DERICHE Cellules NON 0 1 AUCUNE 0,09
DERICHE Contour MARCHE OUI 0 1 AUCUNE 0,21 0,58 0 0,47
DERICHE Contour RAMPE OUI 0 1 AUCUNE 0,41 0,58 0 0,48
DERICHE Contour PIC OUI 0 1 AUCUNE 0,52 0,72 0 0,53 double DERICHE Contour PIC OUI 0 1,5 AUCUNE 0,52 0,58 0 0,47
DERICHE Contour IMPULSION OUI 0 1 AUCUNE 0,52 0,58 0 0,48
DERICHE Lena OUI 0 1 AUCUNE 0,64 DERICHE Cellules OUI 0 1 AUCUNE 0,68
DERICHE Contour MARCHE NON 20 1 AUCUNE 0,17 0 0 0,12
DERICHE Contour RAMPE NON 20 1 AUCUNE 0,31 0,29 0 0,15
DERICHE Contour PIC NON 20 1 AUCUNE 0,39 0,57 0 0,20
DERICHE Contour IMPULSION NON 20 1 AUCUNE 0,42 0 0 0,15
DERICHE Lena NON 20 1 AUCUNE 0,17 DERICHE Cellules NON 20 1 AUCUNE 0,10
DERICHE Contour MARCHE OUI 20 1 AUCUNE 0,21 0,58 0 0,45
DERICHE Contour OUI 20 1 AUCUNE 0,37 0,63 0 0,4
ANNEXE B
69
RAMPE
DERICHE Contour RAMPE OUI 20 0,5 AUCUNE 0,41 0,64 0 0,47
DERICHE Contour PIC OUI 20 1 AUCUNE 0,46 0,54 0 0,45
DERICHE Contour IMPULSION OUI 20 1 AUCUNE 0,49 0,31 0 0,4
DERICHE Lena OUI 20 1 AUCUNE 0,58 DERICHE Cellules OUI 20 1 AUCUNE 0,66
SHEN Contour MARCHE NON 0 1 AUCUNE 0,19 0 0 0,16
SHEN Contour RAMPE NON 0 1 AUCUNE 0,29 0,71 0 0,23
SHEN Contour PIC NON 0 1 AUCUNE 0,43 0 0 0,26
SHEN Contour IMPULSION NON 0 1 AUCUNE 0,48 0 0 0,26
SHEN Lena NON 0 1 AUCUNE 0,19 SHEN Cellules NON 0 1 AUCUNE 0,12
SHEN Contour MARCHE OUI 0 1 AUCUNE 0,2 0,58 0 0,47
SHEN Contour RAMPE OUI 0 1 AUCUNE 0,3 0,58 0 0,48
SHEN Contour PIC OUI 0 1 AUCUNE 0,41 0,58 0 0,47
SHEN Contour IMPULSION OUI 0 1 AUCUNE 0,39 0,58 0 0,47
SHEN Lena OUI 0 1 AUCUNE 0,58 SHEN Cellules OUI 0 1 AUCUNE 0,64
SHEN Contour MARCHE NON 20 1 AUCUNE 0,15 0 0 0,37
SHEN Contour RAMPE NON 20 1 AUCUNE 0,18 0,29 0 0,45
SHEN Contour PIC NON 20 1 AUCUNE 0,22 0,11 0 0,45
SHEN Contour IMPULSION NON 20 1 AUCUNE 0,23 0 0 0,45
ANNEXE B
70
SHEN Lena NON 20 1 AUCUNE 0,32 SHEN Cellules NON 20 1 AUCUNE 0,21
SHEN Contour MARCHE OUI 20 1 AUCUNE 0,18 0,59 0 0,23
SHEN Contour RAMPE OUI 20 1 AUCUNE 0,22 0,6 0 0,25
SHEN Contour RAMPE OUI 20 0,5 AUCUNE 0,32 0,62 0 0,32
SHEN Contour PIC OUI 20 1 AUCUNE 0,27 0,38 0 0,26
SHEN Contour IMPULSION OUI 20 1 AUCUNE 0,29 0,23 0 0,26
SHEN Lena OUI 20 1 AUCUNE 0,42 SHEN Cellules OUI 20 1 AUCUNE 0,52
MIRA Contour MARCHE NON 0 1 AUCUNE 0,77 0,008 0 0,18
MIRA Contour RAMPE NON 0 1 AUCUNE 1,39 0,008 0 0,15
MIRA Contour PIC NON 0 1 AUCUNE 0,77 0,71 0 0,24 double
MIRA Contour IMPULSION NON 0 1 AUCUNE 0,44 0,71 0 0,36 double
MIRA Lena NON 0 1 AUCUNE 0,12 MIRA Cellules NON 0 1 AUCUNE 0,1
MIRA Contour MARCHE OUI 0 1 AUCUNE 0,5 0,58 0 0,71
MIRA Contour RAMPE OUI 0 1 AUCUNE 0,88 0,58 0 0,71
MIRA Contour PIC OUI 0 1 AUCUNE 0,86 0,58 0 0,71 double
MIRA Contour IMPULSION OUI 0 1 AUCUNE 0,49 0,58 0 0,71 double
MIRA Lena OUI 0 1 AUCUNE 0,6 MIRA Cellules OUI 0 1 AUCUNE 0,52
MIRA Contour MARCHE NON 20 1 AUCUNE 0,14 0,008 0 0,33
ANNEXE B
71
MIRA Contour RAMPE NON 20 1 AUCUNE 0,09 0,01 0 0,21
MIRA Contour PIC NON 20 1 AUCUNE 0,09 0,22 0 0,2
MIRA Contour IMPULSION NON 20 1 AUCUNE 0,08 0,21 0 0,21 double
MIRA Lena NON 20 1 AUCUNE 0,12 MIRA Cellules NON 20 1 AUCUNE 0,08
MIRA Contour MARCHE OUI 20 1 AUCUNE 0,27 0,14 0 0,5
MIRA Contour MARCHE OUI 20 1,5 AUCUNE 0,62 0,15 0,003 0,33
MIRA Contour RAMPE OUI 20 1 AUCUNE 0,18 0,33 0 0,6
MIRA Contour RAMPE OUI 20 1,5 AUCUNE 0,43 0,43 0,004 0,38
MIRA Contour PIC OUI 20 1 AUCUNE 0,17 0,63 0 0,6
MIRA Contour IMPULSION OUI 20 1 AUCUNE 0,15 0,57 0 0,6 double
MIRA Lena OUI 20 1 AUCUNE 0,6 MIRA Cellules OUI 20 1 AUCUNE 0,58
HAAR Contour MARCHE NON 0 AUCUNE 2 0,55 0,71 0 0,54
HAAR Contour RAMPE NON 0 AUCUNE 2 0,71 0,99 0,99 0,71
HAAR Contour PIC NON 0 AUCUNE 2 0,87 0 0 0,71
HAAR Contour IMPULSION NON 0 AUCUNE 2 1,22 0 0 0,42
HAAR Lena NON 0 AUCUNE 2 0,4 HAAR Cellules NON 0 AUCUNE 2 0,31
HAAR Contour MARCHE NON 20 AUCUNE 2 0,28 0,63 0 0,48
HAAR Contour RAMPE NON 20 AUCUNE 2 0,23 0,49 0 0,56
ANNEXE B
72
HAAR Contour PIC NON 20 AUCUNE 2 0,24 0,22 0 0,55
HAAR Contour IMPULSION NON 20 AUCUNE 2 0,26 0 0 0,55
HAAR Lena NON 20 AUCUNE 2 0,54 HAAR Cellules NON 20 AUCUNE 2 0,46
MALLAT Contour MARCHE NON 0 AUCUNE 2 46,5 0,004 0 0,71
MALLAT Contour RAMPE NON 0 AUCUNE 2 1 0,99 0,99 0
MALLAT Contour PIC NON 0 AUCUNE 2 1 0,99 0,99 0
MALLAT Contour IMPULSION NON 0 AUCUNE 2 0,2 0,76 0 0,36 double
MALLAT Lena NON 0 AUCUNE 2 0,5 Il manque beaucoup de contours
MALLAT Cellules NON 0 AUCUNE 2 0,55
MALLAT Contour MARCHE NON 20 AUCUNE 2 0,006 0,014 0 0,58
MALLAT Contour RAMPE NON 20 AUCUNE 2 0,004 0,38 0 0,56
MALLAT Contour PIC NON 20 AUCUNE 2 0,004 0,55 0 0,56
MALLAT Contour IMPULSION NON 20 AUCUNE 2 0,005 0,5 0 0,56
MALLAT Lena NON 20 AUCUNE 2 0,56 MALLAT Cellules NON 20 AUCUNE 2 0,57
ANNEXE C
Résultats DECAP Résultat du détecteur DECAP sur quelques images du banc d’essai.
Figure A.13 : Image 90 du benchmark