Vous êtes sur la page 1sur 17

Universit Mohammed Premier Facult des Sciences Dpartement dinformatique Oujda

Master Spcialis Ingnierie Informatique (MII)

Mini Projet Segmentation dune image SPLIT & MERGE

Ralis par : -Mohammed ELBERKANI -Rachid BELMESKINE -Sara DRIEF

encadr par :

Mr. Mohammed Talibi ALAOUI

Anne universitaire: 2010/2011 1

Sommaire :
Introduction :......2 Chapitre 1 : segmentation ; ........3 1. Segmentation par seuillage ....3 1.1. Dtection des valles ......3 1.2. Seuillage entropique ...3 2. Segmentation par rgion 3 2.1. Croissance de rgions (rgion growing) 4 2.2. Segmentation par division/fusion (split/ merge) 4 3. Segmentation par contour ..4 3.1 Mthode de dtection de contour pour les images en niveau de gris......4 A. Mthodes drivatives 4 B. Les modles dformables...4 3.2. Mthode de dtection de contour pour les images couleurs ..5 A. Mthodes drivatives 5 B. Modle dformable : .5 4. Conclusion : ...5 Chapitre 2 : Split and merge ..6 1. Split : dcomposition .....6 2. Merge : fusion 7 3. Algorithme : ...7 4. Evaluation de la segmentation : .8 Chapitre 3 : Conception et mise en uvre : ...9 1. Choix ..9 1.1 Choix technique : .. 9 1.2. Mesure dhomognit : ..9 1.3. Notion de voisinage : ......9 2. Split : 10 2.1. Structures de donnes : .10 2.2. Implmentation : ...10 3. merge : ..11 3.1. Structures de donnes : .11 3.2. Implmentation : ...11 4. Interface utilisateur : 11 Chapitre 4 : Resultats et testes : ...12 Conclusion : .15 Rfrences : ..16
2

Introduction
La vision avec toutes ses proprits a connu un grand intrt avec lapparition de lordinateur. En effet, le dveloppement technologique a permis de franchir un premier pas vers la vision artificielle : la numrisation de limage. Cette numrisation est ltape qui prcde ce qui est connu sous le nom de : traitement dimage. Le traitement dimage qui est un processus comprenant plusieurs tapes, rentre dans le contexte de la vision artificielle. Avec lvolution de la technologie beaucoup de traitements spcifiques ont vu le jour. Le cadre gnral dans lequel s'inscrit ce projet est celui de la segmentation d'images. Cette opration constitue la base de tous les processus d'interprtation d'images et c'est ce titre qu'elle reste encore l'un des principaux thmes de recherche en vision artificielle. En fournissant une description compacte de l'image, la segmentation d'images est une tape importante dans un systme de traitement d'image qui peut tre dfini ainsi: "La segmentation dimages consiste regrouper les pixels de ces images qui partagent une mme proprit pour former des rgions connexes". Les mthodes de segmentation d'images peuvent tre classes en deux grandes approches : La segmentation par dtection de contours qui travaillent sur les discontinuits de la fonction d'intensit dans les images afin de dterminer les contours des rgions. Et la segmentation par rgion qui consiste rechercher des ensembles de pixels qui partagent des proprits similaires. Notre travail est consacr ltude de lalgorithme split and merge qui rentre dans la deuxime catgorie. Le prsent rapport se compose de quatre chapitres : Le premier chapitre : Traitement dimage. Le deuxime chapitre : Segmentation par split & merge, ce chapitre dcrit lapproche de segmentation par split and merge et les diffrentes mthodes de rsolution de ce problme. Le troisime chapitre : Conception et mise en uvre. Le quatrime chapitre : Tests et rsultats, ce chapitre contient les rsultats des tests effectus ainsi que linterprtation de ces rsultats. Et enfin, nous terminons ce document en prsentant une conclusion gnrale et des perspectives sur des amliorations qui pourraient tre apporte notre travail.

Chapitre 1 : segmentation(1)
La segmentation joue un rle prpondrant dans le traitement dimage. Elle est ralise avant les tapes danalyse et de prise de dcision dans plusieurs processus danalyse dimage, tels que la dtection des objets. Elle aide localiser et dlimiter les entits prsentes dans limage. Plusieurs techniques de segmentation existent et quatre grandes catgories peuvent se distinguer : la segmentation par seuillage, par rgions, par contours et enfin la segmentation par coopration rgion-contour. Dans la premire catgorie, limage est segmente en plusieurs classes en n'utilisant que l'histogramme. Dans la deuxime catgorie, limage est segmente en rgions en regroupant les pixels adjacents similaires selon un certain critre dhomognit. Quant la segmentation par contours, elle permet de dtecter les transitions entre les rgions de limage. Les rsultats de cette segmentation sont les pixels candidats des limites des objets de limage. Ces dernires annes plusieurs chercheurs saccordent pour affirmer que la coopration entre les segmentations par rgions et par contours contribue une meilleure prise en compte des caractristiques des entits de limage.

1. Segmentation par seuillage :


Le seuillage a pour objectif de segmenter une image en plusieurs classes en n'utilisant que l'histogramme. On suppose donc que l'information associe l'image permet elle seule la segmentation. A chaque pic de l'histogramme est associe une classe.

1.1. Dtection des valles :


Cette technique est la plus intuitive. On suppose que chaque classe correspond une gamme distincte de niveaux de gris. La position des minima Si de l'histogramme H permet de fixer les (m-1) seuils ncessaires pour sparer les m classes. Cette mthode, bien que simple, est trs peu applique car les histogrammes traits sont le plus souvent bruits et uni modaux

1.2. Seuillage entropique :


Le seuillage entropique est une technique drive de la thorie de l'information. Les seuils sont dtermins de manire maximiser l'entropie E rsultant du dcoupage de l'histogramme H en plusieurs classes. Pour un nombre de seuils fixe, on cherche ce que les classes rsultantes portent le maximum d'information.

2. Segmentation par rgion :


Les mthodes de l'approche rgion cherchent regrouper directement des pixels ayant une proprit commune. Lensemble des regroupements de pixels dfinit la fin une segmentation de l'image. La croissance de rgions, la fusion, la division et la division-fusion sont des techniques courantes de cette catgorie.

2.1. Croissance de rgions (rgion growing) :


Les mthodes de croissance de rgions utilisent la connexit des pixels pour former des rgions homognes. L'ide est de slectionner, au dbut du traitement, plusieurs pixels qu'on appelle germes initiaux ensuite les pixels connexes un germe respectant un certain critre de
4

similarit (niveau de gris, texture,..) sont intgrs dans le germe. Ce dernier s'tend alors pour devenir une rgion. Ce processus est effectu pour tous les germes jusqu' ce que tous les pixels soient traits. A la fin du traitement, l'image est dcoupe en un ensemble de rgions issues de la croissance des germes.

2.2. Segmentation par division/fusion (split/ merge) :


Tout dabord, limage est divise en rgions homognes, puis les rgions adjacentes qui rpondent des critres de fusion sont fusionnes. On va dtailler cet algorithme dans le chapitre suivant.

3. Segmentation par contour :


Lapproche contour consiste identifier les transitions entre les rgions. Une discontinuit dans l'image n'est pas forcment lie une variation gomtrique ou physique de la surface observe mais elle peut tre due galement une diffrence dclairage, par exemple un effet d'ombre. On distingue deux catgories de mthodes : lune est adapte pour la dtection des contours dimages en niveaux de gris et lautre est adapte pour la dtection des contours dimages couleurs.

3.1 Mthode de dtection de contour pour les images en niveau de gris :


Dans cette catgorie, on peut distinguer les mthodes drivatives et les mthodes fonde sur les modles dformables. A. Mthodes drivatives : Les mthodes drivatives sont les plus utilises pour dtecter des transitions dintensit par diffrenciation numrique. Ce sont des mthodes locales qui balayent limage avec un masque dfinissant la zone dintrt. A chaque position, un oprateur est appliqu afin de dtecter les transitions significatives au niveau de lattribut de discontinuit choisi. Le rsultat est une image binaire constitue de points de contours et de points non-contours. Etant donn que les oprateurs de drivation sont trs sensibles au bruit, les images bruites doivent tre lisses au pralable. Le lissage et la drivation sont en pratique runie dans un seul filtre. De nombreuses techniques dextraction de contours existent dans la littrature. Elles peuvent tre classes dans les catgories suivantes : - Les algorithmes bass sur le gradient (ou oprateurs du premier ordre). - Les algorithmes bass sur le Laplacien (ou oprateurs du second ordre). - Les algorithmes multi-chelles. - Les algorithmes utilisant des filtres sophistiqus. B. Les modles dformables : Les algorithmes de segmentation fonds sur les modles dformables ont lavantage, par rapport aux mthodes drivatives, de fournir des contours ou surfaces ferms. Ces mthodes sont connues sous le nom du contour actif ou snake . Un contour actif est dfini comme une courbe minimisant une nergie et voluant de manire itrative partir dune position initiale proche du contour recherch jusqu convergence (obtention de contour recherch).
5

3.2. Mthode de dtection de contour pour les images couleurs :


Dans cette partie nous prsentons les diffrentes mthodes mise en uvre pour dtecter les contours dans les images couleurs. A. Mthodes drivatives : En imagerie mono-composante, il existe de nombreuses mthodes qui sont abordes afin de pallier au problme de la dtection des contours, ces mthodes sont reprises sous deux structures pour dtecter les contours dans une image multi-composantes. Cette mthode contient deux approches pour lextraction des contours dans une image en couleurs : marginale et vectorielle. B. Modle dformable : Pour la dtection des contours dans des images en couleurs en utilisant les modles dformables, le mme principe que les images en niveaux de gris est appliqu. La diffrence rside au niveau du calcul de lnergie externe o la notion de gradient apparat.

4. Conclusion :
Dans ce chapitre, quelques notions fondamentales lies la segmentation et leurs diffrentes approches. Dans le prochain chapitre, on va dcrire de manire dtaille une des techniques de segmentation dimage savoir la segmentation par division/fusion (split & merge).

Chapitre 2 : Split and merge(2)


L'algorithme split and merge a t prsent la premire fois en 1974 par Pavlidis et Horowitz. Il est clair que lalgorithme split and merge est compos de deux phases : 1. Split : dcomposition La mthode de dcoupage de l'image utilise dans cet algorithme est base sur la notion de quadtree . Cette structure de donnes est un arbre quaternaire qui permet de stocker l'image plusieurs niveaux de rsolution. On part d'une rgion initiale qui est l'image tout entire. Si cette image vrifie un critre d'homognit de couleur, l'algorithme s'arrte. Sinon, on dcoupe cette rgion en quatre parties de mme taille et on lance la procdure rcursivement dans ces quatre parties. La rgion initiale va tre stocke comme un nud dans un graphe et les sous parties comme des fils de ce nud. La figure 1 montre une image en noir et blanc 8x8 et le dcoupage correspondant chaque niveau. La structure d'arbre associe ce dcoupage est illustre figure 2.

FIG. 1. Dcoupage par quadtree d'une image 8x8.

Fig.2.La structure d'arbre associe au dcoupage prcdent.

2. Merge : fusion
La solution, qui correspond la phase merge de l'algorithme, est de procder une fusion de rgions aprs le dcoupage. L'implmentation la plus simple de cette fusion cherche tous les couples de rgions adjacentes dans l'arbre issu du dcoupage et cherche les fusionner si leur couleur est assez proche. Pour raliser cette fusion, il faut d'abord tenir jour une liste des contacts entre rgions (chaque rgion dispose d'un pointeur sur une liste chane de rgions avec lesquelles elle est en contact). On obtient ainsi un graphe d'adjacence de rgions ou Rgion Adjacency Graph Ensuite, l'algorithme va marquer toutes les rgions comme non-traites et choisir la premire rgion R non traite disponible. Les rgions en contact avec R sont empiles et sont examines les unes aprs les autres pour savoir si elles doivent fusionner avec R. Si c'est le cas, la couleur moyenne de R est mise jour et les rgions en contact avec la rgion fusionne son ajouts la pile des rgions comparer avec R. La rgion fusionne est marque traite . Une fois la pile vide, l'algorithme choisi la prochaine rgion marque non traite et recommence, jusqu' ce que toutes les rgions soient traites.

3. Algorithme :
i. ii. On commence par le premier bloc B dans la liste des blocs homogne et on lajoute une nouvelle rgion R Pour tout bloc B voisin B Si la runion de B et R est homogne alors : On retire B de la liste des blocs homogne ; On ajoute B R ; On recommence ltape (ii) avec les voisins de B ; Sils restent des blocs dans la liste des blocs homognes on recommence ltape (i), si non le Merge est termin.
8

iii.

Fig.3.Graphe d'adjacence de rgions

4. Evaluation de la segmentation :
Soit I_originale notre image quon veut segmenter et I_segmente lmage segmente. Soit le nombre des rgions dans limage segmente.
ces rgions et la variance de la rgion correspondante sur limage

Soit I_originale ; Soit

Lvaluation de la segmentation est donne par :

Chapitre 3 : Conception et mise en uvre


1. Choix :
1.1 Choix technique :
Nous avons choisi de programmer cet algorithme avec le langage C++ et OpenCV qui est une bibliothque graphique libre spcialise dans le traitement d'images. Ce langage est rput pour sa puissance du fait de son rapprochement du langage machine. Nous avons fait en sorte que notre programme soit le moins dpendant possible de librairies externes. Pour la partie "interface utilisateur" nous avons utilis les MFC. Celle-ci nous permet d'intgrer notre programme avec une interface graphique facile d'utilisation. Notre source en C++ est donc accessible depuis le code de l'interface graphique. Le code de notre programme est compltement spar du code de l'interface graphique, il est conu sous forme d'une bibliothque rutilisable. Dans notre projet nous avons regroup lensemble des fonctions dans 3 classes : La classe Traitement : pour les images couleurs. La classe Traitement1 : pour les images en niveau de gris. La classe Prtraitement : qui regroupe les fonctions de prtraitements (tirement dhistogramme, application dun filtre).

1.2. Mesure dhomognit :


Il est ncessaire de dfinir un critre dhomognit, ce critre permet de tester si un bloc ou une rgion (ensemble des blocs adjacentes) est homogne il existe plusieurs critres. On choisit dutiliser la variance. Pour lopration de split : on calcule la variance pour chaque bloc, si cette variance est inferieur un seuil donn on dit que ce bloc est homogne. Pour lopration de merge : lorsquon veut ajouter un bloc une rgion, on calcule la variance entre les deux (sans prendre en considration le nombre de pixel), si cette variance est inferieur un seuil donn on ajoute ce bloc cette rgion.

1.3. Notion de voisinage :


Le voisinage d'un pixel est un bloc des pixels situs autour de lui. Ici on utilise deux types de voisinage. Voisinage de 8 pixels Voisinage de 4 pixels

10

Voisinage de 8

Voisinage de 4

Fig.4. voisins dun pixel

2. Split :
2.1. Structures de donnes :
Voici les structures utilises qui sont choisies de faon tre les plus performantes possibles : Un bloc est reprsent par un enregistrement qui contient ses coordonnes dans l'image. Nous avons choisi de conserver les coordonnes x1, y1 du coin suprieur gauche et celles du point infrieur droite x2, y2, la moyenne, la variance, le nombre des pixelsetc. Il est important de garder une trace en mmoire des diffrents blocs homognes pour l'opration de fusion par la suite, comme solution on conserve ces blocs dans une liste chane (Chaque lment de cette liste contient un pointeur vers un bloc). cette occasion, une liste chane simple avec accs directe au premier lment a t implmente ainsi que les diffrentes fonctions qui la traitent. L'utilisation d'une liste est prfre l'utilisation d'un tableau (que nous pouvons allouer de faon contenir au maximum un nombre de blocs gal au nombre de pixels dans l'image). En effet, nous verrons qu'outre le gain en mmoire, des oprations de suppressions des blocs ncessitant des dcalages coteux dans le cas d'un tableau. Les blocs qui sont voisins pourront tre fusionns. Notre but c'est d'viter des parcours coteux dans l'ensemble des blocs pour retrouver ceux qui sont voisins. On pourrait penser l'utilisation d'un graphe d'adjacence qui relie chaque bloc ces voisins. Mais cette technique ncessite la construction du graphe qui entrane une perte en performances. Comme solution nous avons utilis une matrice M deux dimensions de pointeurs vers des blocs de la mme taille que l'image I est alloue. Chaque lment M[i][j] de la matrice, correspondant au pixel I[i][j], pointe vers le bloc qui contient le pixel I[i][j]. Ceci garantit un accs direct tous les voisins d'un bloc. En effet, ayant un bloc x1, y1, x2, y2, ses voisins gauches sont les blocs M[x1 - 1][y] o y varie de y1 y2 (en supposant que x1 - 1 reste dans l'image) De la mme manire, on obtient les voisins dans les 3 autres cots ( dans le cas de voisinage de 4 pixels ). De point de vue performance, l'initialisation de la matrice est quivalente un seul parcours de la matrice (ou de l'image) et affectation d'une valeur chaque lment. Plus prcisment, pour chaque bloc homogne x1, y1, x2, y2 nouvellement gnr, les lments M[x][y] avec x1 <= x <= x2 et y1 <= y <= y2 reoivent l'adresse du bloc.

2.2. Implmentation :
Nous pouvons implmenter l'algorithme "Split" de deux manires diffrentes. Utiliser une fonction rcursive. Utiliser une boucle avec une pile (nous pouvons nous servir de la liste chane comme une pile)
11

Nous avons choisi d'utiliser la rcursivit pour sa simplicit. Voici l'algorithme simplifi de cette fonction :

Choisir un seuil Split : Si le bloc est homogne on lajoute la liste des blocs homognes Si non on le divise en quatre sous-blocs et on applique le split sur chaque sous-bloc non homogne.

3. merge :
3.1. Structures de donnes :
On ajoutant aux structures de donnes dj prsentes dans la partie de split : Dans l'algorithme de division, si un bloc homogne est gnr, alors il est ajout de suite la premire rgion homogne voisine qui reste homogne aprs l'ajout. On utilise une liste chaine pour stocker, et chaque lment de cette liste (rgion) pointe sur une autre liste des blocs qui apparient cette rgion.

3.2. Implmentation :
On construit les rgions une une. Partant d'une rgion contenant un seul bloc, on l'tend en lui ajoutant progressivement les blocs voisins qui conservent l'homognit de la rgion. Voici l'algorithme simplifi : On prend le premier rectangle r libre (qui nest pas ajout une rgion) et on lajoute une nouvelle rgion reg (liste vide) Pour tout rectangle r voisin r Si {r} U reg est homogne alors On retire r de la liste des rectangles libres On ajoute r reg On recommence ltape 2 avec les voisins de r Sils restent des rectangles libres alors on recommence ltape 1, sinon le Merge est fini

4. Interface utilisateur :
L'interface graphique a t programme avec les MFC. Elle permet un utilisateur d'exploiter facilement les fonctionnalits de notre programme. Voici les possibilits proposes par l'interface graphique : -L'ouverture de diffrents types d'images (pnm, jpeg, png, gif etc.) ; -Le paramtrage du "Split & Merge" (seuil, type de voisinage) ; -Choix du type d'affichage : etc.
12

Chapitre 4 : Rsultats et testes


Dans ce chapitre nous donnerons des rsultats obtenus par notre application ainsi linterface graphique de notre application.

1. Interface graphique :

Fig.5 : interface graphique.

13

2. Tests :
Dans les differents test limage a gauche est limage originale et a droite limage segmente.

2.1 : Test 1 :

Fig.6 : segmentation split and merge avec seuil=500.

2.2 : Test 2 :

Fig.7 : segmentation split and merge avec seuil=100.

14

2.3 : Test 3 :

Fig.8 : segmentation split and merge avec seuil=10.

3. Rsultats :
Le tableau suivant reprsente les paramtres avec lesquels on a effectu chaque test. Test 1 seuil Nombre des rgions Evaluation Temps dexcution (s) 500 187 0,976732 0,562 Test 2 100 628 0,978466 0,610 Test 3 10 2474 0,979682 0,719

4. Comparaison :
Nous remarquons que le nombre des rgions obtenu et lvaluation de la segmentation sont inversement proportionnels la valeur du seuil choisi. Alors on peut dire quon obtient des bonnes rsultats tant que on diminuer la valeur du seuil. Donc lutilisateur peut choisir un seuil de valeur assez grand sil veut dtecter des rgions assez grandes (en gros) dans limage. Cependant il peut choisir une petite valeur pour le seuil dans le cas ou il veut dtecter des petits objets dans limage segmente.

15

Conclusion
Il est vident que le point critique dans l'algorithme "Split and Merge", de point de vue performance, est la fonction d'homognit. En effet, cette fonction est appele chaque essai d'ajout d'un quadrant une rgion. Pour la fonction utilisant la variance, tous les pixels de la rgion doivent tre reperceurs. Un allgement est introduit concernant le calcul du nombre de pixels et la somme de leurs valeurs puisque ces informations sont sauvegardes avec la rgion elle mme. Il apparat que les traitements des images ayant des grandes rgions de couleur uni (un fond noir par exemple) sont les plus gourmands en temps d'excution. Ceci s'explique par la gnration de grandes rgions homognes qui sont parcourues plusieurs fois. Une solution (implmente en partie) serait de sauvegarder dans ces rgions une autre information qui indiquerait qu'il s'agit d'une rgion colore avec la mme couleur qui serait mmorise (le parcours est alors remplac par une simple multiplication en gnral) Nous constatons que le "Split and Merge" est une mthode de segmentation efficace puisqu'elle runie les deux oprations division et fusion. Des algorithmes efficaces grce au choix des structures de donnes nous ont permis d'implmenter cette mthode. Toutefois, nous avons vu que des solutions donnant des rsultats moins convenables existent. La solution finale adopte ne donne pas des rsultats aussi performants possibles que nous les voulons. Ceci s'explique par la simple raison que le "Split and Merge" commence par l'opration de division qui produit des quadrants homognes plus ou moins bien placs sur les parties homognes de l'image (telles que nous les apercevons).

16

Rfrences :

Bibliographie : [1]: BELAHMRA Hadjira & MELZI Soumia. La segmentation dimage par croissance des rgions (mmoire de fin dtude). Algerie 2009/2010 [2] : Jean-Christophe Baillie. Traitement dimage et vision artificielle. 2003

17