Vous êtes sur la page 1sur 10

IVRG

Image and Visual Representation Group

Projet en Digital Photography


Image Segmentation

Responsable : Patrick Vandewalle

Sylvain PASINI
Bertrand GRANDGEORGE le 2 juin 2003
Digital Photography Image Segmentation

Table des matières


Table des matières __________________________________________________________ 2
1. Introduction _____________________________________________________________ 3
1.1 Description du problème ______________________________________________________ 3
1.2 Idée du fonctionnement de l’outil _______________________________________________ 3
1.3 Objectifs et Méthodes proposées ________________________________________________ 3
1.3.1 Prétraitement _____________________________________________________________________ 3
1.3.2 Segmentation _____________________________________________________________________ 3
1.3.3 Post-traitement____________________________________________________________________ 3
2. Sommaire des résultats_____________________________________________________ 4
3. Travail réalisé ____________________________________________________________ 5
3.1 Prétraitement _______________________________________________________________ 5
3.1.1 Filtre Médian _____________________________________________________________________ 5
3.1.2 Algorithme de Nagao et al. __________________________________________________________ 5
3.2 Segmentation________________________________________________________________ 5
3.2.1 Edge-based segmentation ___________________________________________________________ 5
3.2.2 K-means clustering ________________________________________________________________ 7
3.2.3 Algorithme by Nagao et al. __________________________________________________________ 8
3.2.4 Algorithme Watershed______________________________________________________________ 8
3.3 Post traitement ______________________________________________________________ 9
4. Principaux résultats ______________________________________________________ 10
5. Conclusion _____________________________________________________________ 10
Bibliographie _____________________________________________________________ 10

Sylvain Pasini – Bertrand Grandgeorge Page 2 sur 10


Digital Photography Image Segmentation

1. Introduction
1.1 Description du problème
De nos jours, le nombre d’images stockées devient de plus en plus grand. Chacun publie ses images sur le Web
sans pour autant y ajouter de bons mots clés. Il est maintenant difficile de réaliser une recherche précise. Les
moteurs de recherche actuels se basent sur les mots clés compris dans le texte ou dans le nom du fichier image.
Un meilleur moteur serait vraiment très utile, par exemple basé sur l’image elle-même. Vu la quantité
d’informations, il serait évidemment impensable de concevoir ce type d’outil non automatique !

1.2 Idée du fonctionnement de l’outil


Pour pouvoir rechercher avec une grande puissance, un ordinateur devrait découper chaque image en plusieurs
objets et ensuite les classifier. La première opération est faite par les spécialistes du traitement d’images, la
segmentation. Il est possible de voir qu’une bonne classification dépend directement d’une excellente
segmentation.

1.3 Objectifs et Méthodes proposées


L’objectif de ce projet est de ce concentrer sur la partie de segmentation. Il existe une grande quantité de
méthodes permettant de réaliser une découpe. Chacune a évidemment des avantages et des inconvénients. Il
serait donc bien d’énumérer ses caractéristiques.

Trois phases seront utiles pour mener à bien cette segmentation


• Il y aura tout d’abord un prétraitement permettant d’améliorer les caractéristiques de l’image à
segmenter.
• Il y aura ensuite la segmentation proprement dite.
• Pour terminer un post-traitement sera réalisé afin d’améliorer les régions segmentées.

1.3.1 Prétraitement
En général, cette étape consiste à filtrer l’image. Deux méthodes seront abordées :
- Le filtre médian
- L’algorithme de Nagao et al.

1.3.2 Segmentation
Les méthodes de segmentation sont sub-divisées en deux types :
1. La segmentation basée sur les flancs
Ce type d’algorithme recherche les bords séparants les différents objets.
Une seule méthode de segmentation sera traitée profondément (edge based).

2. La segmentation basée sur les régions


Ce type d’algorithme recherche les similarités entre les pixels voisins afin d’extraire une région.
En fait, il cherche des régions homogènes.
Trois méthodes de segmentation seront abordées en détails :
- Le K-means clustering
- L’algorithme de Nagao et al.
- L’algorithme Watershed

1.3.3 Post-traitement
Ce projet ne contient pas de méthode de post-traitement. Toutefois, quelques idées seront proposées.

Sylvain Pasini – Bertrand Grandgeorge Page 3 sur 10


Digital Photography Image Segmentation

2. Sommaire des résultats


Il s’agit ici de pré visualiser les différents résultats en fonctions des différentes méthodes :

Originale

Filtre médian

Nagao et al.

Edge-based K-means Algorithme Algorithme


Clustering Nagao et al. Watershed
(6 régions)

Figure 2.1 : Sommaire des résultats

Sylvain Pasini – Bertrand Grandgeorge Page 4 sur 10


Digital Photography Image Segmentation

3. Travail réalisé
3.1 Prétraitement
3.1.1 Filtre Médian
L’algorithme est relativement simple. Le filtre remplace chaque pixel par la valeur médiane du pixel et de ses
voisins. Le nombre de voisins peut être déterminés à l’aide d’un paramètre. Cette variable indique la taille du
carré dans lequel seront effectués les calculs. L’algorithme est appliqué sur chaque composante RGB
indépendamment. Voici un exemple d’une image choisie, de gauche à droite, l’originale aerial.jpg, filtrée avec
une taille de 3, filtrée avec une taille de 5 :

Figure 3.1 : Exemple filtre médian

3.1.2 Algorithme de Nagao et al.


L’algorithme de Nagao est un peu plus complexe. Il permet d’adoucir l’image sans pour autant rendre les bords
flous. Dans un carré de 5x5 entourant le pixel à traiter, la variance de 9 différentes régions est calculée. La valeur
du pixel central est remplacée par la valeur moyenne de la région qui a la plus faible variance.
L’implémentation est la suivante :
o Pour chaque pixels de l’image :
o Filtrer l’image par chacune des 9 matrices de Nagao
o Calculer la variance des 9 résultats ci-dessus
o Rechercher l’ensemble qui a la plus faible variance
o Remplacer la valeur du pixel par la moyenne de l’ensemble ci-dessus
Comme dans le cas du filtre médian, le filtre de Nagao est appliqué sur les trois composantes RGB
indépendamment.
Ceci paraît facile, mais les boucles imbriquées sont très lentes. Par conséquent, cet algorithme fonctionne
relativement lentement sous Matlab. Ceci peut devenir un inconvénient majeur si le nombre d’images à traiter est
important. Voici un exemple du filtre de Nagao sur la même image que ci-dessus :

Figure 3.2 : Exemple du filtre de Nagao

3.2 Segmentation
3.2.1 Edge-based segmentation
Il suffit d'utiliser la fonction "edge" de Matlab. Cet outil détecte automatiquement les flancs. Il existe cependant
plusieurs méthodes. Afin de savoir laquelle utiliser, des tests ont été réalisés :

Sylvain Pasini – Bertrand Grandgeorge Page 5 sur 10


Digital Photography Image Segmentation

Figure 3.3 : Test des méthodes de la fonction "edge"


Sur ces 6 images, il est possible de constater que la méthode "Canny" est la plus sensible. Il est important de
savoir que plus il y a de flancs, plus il y a aura de régions. Dans le cas où il y a trop de régions, il est possible
d'en supprimer, et au contraire s'il n'y en a pas assez, il est impossible de les inventer.

L'image "discs" est utilisée comme exemple. Elle est en fait une image relativement simple.

Figure 3.4 : Image originale et résultante


Sur le résultat des images ci-dessus, il est possible de constater que les flancs ne sont pas continus. L'affectation
des régions ne sera alors pas efficace. Une série d'opérations sont réalisées sur les images afin de palier à ce
défaut.
Premièrement, les bords sont élargis. Ceci est réalisé simplement par une dilatation en utilisant un carré de
dimension 3 comme élément structurant. Ensuite les petits éléments isolés sont supprimés. Ils ne forment pas
réellement des frontières. Cette opération est réalisée par une ouverture de surface.

Figure 3.5 : Frontières élargies, puis sans les éléments isolés


Finalement, les frontières sont rétrécies afin quelles n'empiètent pas trop sur les régions. L'affectation des régions
peut alors être effectuée, mais l'image doit tout d'abord être inversée.

Sylvain Pasini – Bertrand Grandgeorge Page 6 sur 10


Digital Photography Image Segmentation

Figure 3.6 : Frontières rétrécies, puis inversée, avec les régions affectées
A présent, il est possible de comparer l'effet d'un prétraitement sur le résultat de la segmentation :

Figure 3.7 : Comparaison des prétraitements (sans, médian 3, médian 5, Nagao filter)
La première constatation est que dans tous les cas, l'image est sur-segmentée. Un filtre médian diminue le
nombre de région car l'image contient moins de transitions rapides donc moins de contours.

3.2.2 K-means clustering


Le critère de segmentation est ici la couleur des pixels.
On choisit k régions de couleur différentes. Chaque point est affecté à la région ayant la couleur la plus proche,
ensuite on recalcule la couleur de chaque région, jusqu'à ce qu'elles soient plus distinctes.

Implémentation :
o Déterminer k couleurs de manière aléatoire.
o Jusqu'à ce que les régions soient stables:
• Affecter chaque pixel à la région de couleur la plus proche
• Recalculer la nouvelle couleur de la région en prenant la moyenne de la couleur des pixels lui
appartenant.

Exemple sur une image relativement complexe, qui prouve le bon fonctionnement de l'algorithme. Il est aussi
possible de constater l'intérêt du choix du paramètre (le nombre de régions).

Figure 3.8 : Originale, traitée 5-means, traitée 6-means


Un aspect notable de cette segmentation est le fait que deux objets éloignés peuvent appartenir à la même région.
C'est un avantage que seule cette méthode offre. En effet il est plus facile de séparer des objets que de les
rassembler dans une même région.

Sylvain Pasini – Bertrand Grandgeorge Page 7 sur 10


Digital Photography Image Segmentation

Il est aussi possible de comparer l'effet d'un prétraitement sur le résultat de la segmentation (5 régions) :

Figure 3.9 : Comparaison du pré-traitement (sans, médian 3, médian 5, Nagao filter)


On remarque qu'un niveau de pré-traitement plus élevé augmente l'homogénéité des régions. Le filtre Nagao en
revanche n'est pas très adapté à cette méthode de segmentation. Cette constatation est basée sur le bas de l'image,
les arbres sont sur-segmentés. En revanche dans les zones plus homogènes, le résultat est plutôt bon.

3.2.3 Algorithme by Nagao et al.


Cette fois le critère de segmentation est la différence de couleur entre voisins. Un pixel appartient à la même
région que son voisin si la différence de couleur avec celui-ci est inférieure à une certaine limite. Chacune des
trois couleurs du pixel est traitée indépendamment, il y a donc trois paramètres.

Implémentation :
o Répéter les opérations suivantes jusqu'à ce qu'il n'y ait plus de pixels non affecté
• Choisir un pixel non affecté.
• Le mettre dans la liste des pixels à vérifier
• Tant qu'il y a des pixels ajoutés:
§ Pour chacun de ses voisins (connectivité 4), vérifier s'il appartient à la région. Il suffit
de calculer la différence entre la couleur du pixel et son voisin pour chacune des trois
couleur. Si les trois différences sont plus faibles que les seuils correspondants, le pixel
appartient à la région.
§ Dans le cas positif l'ajouter à la liste.

Un exemple est présenté ci-dessous. Il est possible de constater l'importance et la difficulté de déterminer les
seuils.

Figure 3.10 : Originale, Nagao (Tr,Tg,Tb = 20), Nagao (Tr,Tg,Tb = 25), Nagao (Tr,Tg,Tb = 30)
Il est donc évident que les seuils sont déterminants pour avoir un bon résultat lors de la segmentation.

3.2.4 Algorithme Watershed


Le watershed est appelé en français "ligne de partage des eaux". Ce nom vient de la méthode utilisée. Le principe
de la segmentation est le suivant :
En chaque minimum local, une source d'eau est placée. Le niveau d'eau est ensuite augmenté. Une
contrainte doit être alors respectée : "Les eaux de différentes sources ne doivent pas se rejoindre". Par
conséquent, lorsque les eaux montent, des barrages sont érigés afin que les eaux ne se mélangent pas. Le
résultat de la segmentation est l'ensemble des barrages, ce qui représente une image binaire.

L'implémentation est basée sur la fonction "watershed" fournie dans le toolbox de traitement d'images de Matlab.
Cependant, il est possible de donner une image RGB ou une image binaire. Mais attention, le Watershed
interprète l'image RGB comme une image 3D. La segmentation sera alors réalisée dans un volume, ce qui n'a
aucun sens.
Dans le cas du watershed, l'image d'entrée doit mettre en évidence les contours de l'image à segmenter. En
général on choisit l'image du gradient.

La segmentation ci-dessous a été prise comme exemple :

Sylvain Pasini – Bertrand Grandgeorge Page 8 sur 10


Digital Photography Image Segmentation

Figure 3.11 : Originale, Gradient, Watershed


Sur les images ci-dessus, il est très clair que le résultat est sur-segmenté. Pourtant l'image choisie est très simple.
Ceci s'explique facilement, Il y a autant de régions que de sources d'eau. L'image est bruitée et il y a donc
énormément de minimums locaux, par conséquent une très grande quantité de sources.

Les sources d'eau étant placées dans les minima locaux, si l'on veut diminuer leur nombre, il suffit de diminuer le
nombre de minima. Un filtre ne peut alors que améliorer le résultat.

Figure 3.12 : Pré-traitée avec un filtre médian de 5


Il est évident que le nombre de région a fortement diminué.

D'après le livre de P. Soille[3], il est possible de voir qu'il existe une manière d'améliorer cela. Toujours dans le
but de diminuer le nombre de minima, il existe un procédé permettant d'imposer ceux-ci. C'est-à-dire qu'il n'y
aura un minimum que si l'on a décidé de le placer. La fonction utilisée est "imimposemin". Il faut lui donner
l'image d'entrée ainsi qu'une image binaire contenant la position des minima. Dans le cas de l'image utilisée ici,
un marqueur au centre du disque ainsi qu'un à l'extérieur suffisent :

Figure 3.13 : Image des marqueurs, Watershed


La segmentation est alors presque parfaite. Le problème de cette méthode est qu'il faut trouver une bonne image
de marqueurs ce qui n'est pas évident. Il serait par exemple possible d'utiliser une segmentation du type k-means
pour ensuite l'utiliser comme image de marqueurs du watershed.

3.3 Post traitement


La segmentation n’est en général pas parfaite, le post-traitement est donc censé améliorer le résultat.
1. Dans tous les cas, les frontières ne font partie d'aucune région. Il est alors possible de les affecter à une
région proche selon un critère, par exemple la différence de couleur.
2. Dans les cas de sur-segmentions, les petites régions peuvent être regroupées à d'autres.
3. Il serait aussi possible d'utiliser plusieurs méthodes de segmentation et de les unir afin d'obtenir un
résultat plus satisfaisant.

Sylvain Pasini – Bertrand Grandgeorge Page 9 sur 10


Digital Photography Image Segmentation

4. Principaux résultats
Nom Paramètres Avantage(s) Inconvénients(s) Rapidité

Filtres
Filtre médian n : taille du filtre Paramétrable Image floue Rapide
Nagao et al. - Automatique Cadre noir dû au padding Lent

Segmentations
Edge-based - Automatique Rapide
K-means k : nbr de régions Nbr limité de régions Deux objets éloignés peuvent Moyen
appartenir à la même région
s'ils ont la même couleur
K difficile à déterminer
Nagao et al. Tr, Tg, Tb : Seuils RGB Seuils difficiles à déterminer Lent
Watershed - Automatique Sur-segmentation Rapide
Our Watershed Image de marqueurs Excellent résultat Dépend fortement des marqueurs Rapide

5. Conclusion
Il est possible de constater qu'un prétraitement est indispensable dans certains cas (K-means), mais à proscrire
dans d'autres (Watershed). Les résultats dépendent beaucoup de cette étape.

Chacune des méthodes de segmentation a ses avantage, mais a également ses inconvénients. Comme dans la
plupart des problèmes, c'est une histoire de compromis.
Les méthodes demandant des paramètres sont très délicates à manipuler. Elles fonctionnent correctement dans le
cas où les paramètres sont choisis judicieusement. L'idéal serait de développer des algorithmes permettant de
déterminer ces paramètres de façon optimale. Il pourrait par exemple agir sur le prétraitement, les paramètres de
la segmentation, ainsi que le post-traitement. Mais ceci demande l'élaboration de critères permettant de savoir si
le résultat est bon ou pas. Ceci est un énorme problème. Il est évident pour une personne de savoir si la
segmentation est correcte, mais pour une machine cela pose réellement de grandes difficultés.

Un aspect important lors du choix de l'une de ces méthodes est le temps d'exécution. En effet, si l'on veut
appliquer la segmentation à toutes les images sur le Web, il faut que cela puisse être effectué en un temps
raisonnable.

Un bon post-traitement serait envisageable. Il permettrait d'améliorer considérablement le résultat final. Chaque
méthode impose de concevoir un post-traitement adapté à celle-ci.

L'apport de connaissance durant ce projet a été très grand. La segmentation est un des sujets les plus captivants
du traitement d'images. Les méthodes analysées sont très intéressantes, non seulement du point de vue du
concept mais aussi du point de vue de la programmation.
A ce stade du développement, les algorithmes sont relativement lent, surtout les deux méthodes de Nagao et Al.
Un travail futur pourrait consister à optimiser ces différentes méthodes de segmentation.

Le traitement d’images en est encore à ces débuts, il reste et restera encore une grande source de développement
pour les années à venir…

Bibliographie
[1] "Digital Photography Cours", Prof. Sabine Süsstrunk, EPFL 2003
[2] Help de Matlab
[3] “Morphological Image Analysis”, Pierre Soille, Springer 1999

Sylvain Pasini – Bertrand Grandgeorge Page 10 sur 10