poly segmentation ensta baillie

Upload: mariem-cheikhrouhou

Post on 10-Apr-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    1/42

    SEGMENTATION

    Module D9

    ES322 - Traitement dImage et Vision Artificielle

    Jean-Christophe Baillie

    2003

    1

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    2/42

    Segmentation

    1 Description du problme

    Fondamentalement, la segmentation est un processus qui consiste dcouperune image en rgions connexes prsentant une homognit selon un certain cri-tre, comme par exemple la couleur. Lunion de ces rgions doit redonner limageinitiale ([8, 7, 11, 10, 14]).

    La segmentation est une tape importante pour lextraction des informationsqualitatives de limage. Elle fournit une description de haut niveau : chaque rgionest connecte ses voisines dans un graphe et chaque rgion porte une tiquettedonnant des informations qualitatives comme sa taille, sa couleur, sa forme, sonorientation. Limage se rduit donc un graphe de noeuds tiquets qui contientpresque toute linformation utile au systme. Les arcs du graphe peuvent tre va-lus prcisant si les deux rgions connectes sont en simple contact ou si luneest incluse dans lautre. Dautres informations topologiques peuvent galementtre stockes comme par exemple le fait quune rgion est au dessus dune autre.Selon les techniques de segmentation utilises, la construction de ce graphe peuttre plus ou moins complexe.

    On regroupe gnralement les algorithmes de segmentation en trois grandesclasses (voir [14])1 :

    1. Segmentation base sur les pixels2. Segmentation base sur les rgions

    3. Segmentation base sur les contours

    La premire catgorie travaille sur des histogrammes de limage. Par seuillage,clustering ou clustering flou, lalgorithme construit des classes de couleurs quisont ensuite projetes sur limage. La segmentation est implicite puisquon sup-pose que chaque cluster de lhistogramme correspond une rgion dans limage.En pratique, ce nest pas forcment le cas et il faut sparer les rgions de limagequi sont disjointes bien quappartenant au mme cluster de couleur. Ces algo-

    rithmes sont assez proches des algorithmes de rduction de couleur.1On peut galement considrer une quatrime classe qui serait constitues des algorithmes

    bass sur les rgions+contours, voir par exemple [2, 15, 1]

    2

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    3/42

    La deuxime catgorie correspond aux algorithmes daccroissement ou de d-coupage de rgion. Laccroissement de rgion est une mthode bottom-up : on partdun ensemble de petites rgions uniformes dans limage (de la taille dun ou dequelques pixels) et on regroupe les rgions adjacentes de mme couleur jusquce quaucun regroupement ne soit plus possible. Le dcoupage de rgion est lependant top-down des mthodes daccroissement : on part de limage entire quelon va subdiviser rcursivement en plus petites rgions tant que ces rgions neseront pas suffisamment homognes. Les algorithmes dit split and merge sontun mlange de ces deux approches et nous en dcrirons deux exemples : le splitand merge classique et lalgorithme CSC.

    La troisime catgorie sintresse aux contours des objets dans limage. Laplupart de ces algorithmes sont locaux, cest dire fonctionnent au niveau dupixel. Des filtres dtecteurs de contours sont appliqus limage. Le rsultat esten gnral difficile exploiter sauf pour des images trs contrastes. Les contoursextraits sont la plupart du temps morcels et peu prcis et il faut utiliser des tech-niques de reconstruction de contours par interpolation ou connatre a priori laforme de lobjet recherch. Formellement, ce type dalgorithme est proche destechniques daccroissement de rgion fonctionnant au niveau du pixel. Ces tech-niques purement locales sont en gnral trop limites pour traiter des images brui-tes et complexes.

    Les algorithmes que nous allons prsenter et commenter sont :

    1. Accroissement de rgion fonctionnant au niveau du pixel.

    2. Split and merge classique (daprs [9]).

    3. Algorithme CSC (daprs [12]) : un algorithme de merge and split quidonne dexcellents rsultats et qui possde un certain nombre de propritsintressantes.

    2 Accroissement de rgion

    Les mthodes daccroissement de rgion sont les mthodes de segmentationles plus simples. Le principe est bas sur une approche bottom-up : lalgorithmepart de petits lments de limage quil va tenter de regrouper en lments plus im-

    portants. Nous prsentons ici la version de base de lalgorithme daccroissementde rgion qui fonctionne en agrgeant des pixels.

    3

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    4/42

    2.1 Principe de fonctionnement

    Supposons une rgion de couleur homogne R. Initialement, R = 1 pixel.On va tendre la rgion R en incluant les pixels situs sur la frontire et dont lacouleur est proche de celle de

    R(la variation de couleur est infrieure un seuil

    ,caractristique de ce type dalgorithmes). En rptant cette procdure jusqu cequil ny ai plus de pixels de couleur assez proche sur la frontire, on obtient unergion de couleur homogne maximale autour du pixel de dpart. La rgion ini-tiale gonfle en absorbant des pixels de la frontire, jusqu stabilit par rapport la proprit dhomognit2.

    Cette mthode prsente deux limitations svres qui nen font pas une mthodetrs efficace :

    1. Les rgions obtenues dpendent fortement des pixels damorage choisis etde lordre dans lequel les pixels de la frontire sont examins.

    2. Le rsultat final est trs sensible la valeur du seuil .

    Pour illustrer le premier problme, considrons trois pixels adjacents a, b et c dontles intensits respectives sont 8,10 et 11 (par exemple, lintensit en niveaux degris). Le seuil est 2. La rgion initiale est constitue du pixel b. Deux schmas deregroupement pour les points frontire a et c sont possibles (fig 1)

    Le pixel central b est lamorce. Compte tenu du seuil = 2, a et c sur lafrontire devraient tre ajouts lamorce b. Si lon commence par tenter daggr-ger a, le rsultat du regroupement, not [ab], a pour intensit moyenne 9 et c sy

    ajoute ensuite puisque |11 9| . On a donc regroup a, b et c. Si maintenantlalgorithme commence par examiner le point frontire c, le groupement de b etc donne [bc] dont lintensit est 10, 5. Le point frontire a dintensit 8 est troploign et il est considr comme appartenant une autre rgion. On obtient doncdeux groupements au lieu dun.

    Ce petit exemple illustre combien lordre dexamen des points sur la frontirepeu influencer sur le rsultat de lalgorithme. A fortiori, cet algorithme est gale-ment trs sensible au choix des amorces.

    Par ailleurs, comme nous allons le voir, le rsultat final dpend trs sensible-ment du seuil. Une petite variation de ce seuil peu conduire des modifications

    importantes.2Cette mthode est trs gnrale est peu tre applique avec nimporte quel critre permettant

    de dcider si lon doit ajouter ou non un point de la frontire la rgion.

    4

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    5/42

    10 118

    =2

    a b c

    10 118

    a b c

    9 11

    ab c

    10

    abc

    10 118

    a b c

    8 10,5

    a bc

    8 10,5

    a bc

    FIG . 1 Deux schmas de regroupement pour des pixels a, b et c

    Cet algorithme fait parti de la classe dalgorithmes de segmentation dit lo-caux. Lopration lmentaire consiste manipuler des pixels adjacents et lal-gorithme na aucune vision globale du rsultat quil obtient. Par exemple, il estincapable de dtecter que la rgion quil vient de construire est inhomogne 3, cequi est souvent le cas.

    2.2 Implmentation

    Nous prsentons ici une mthode classique pour implmenter cet algorithme.On associe chaque pixel de limage un index qui est un nombre entier. Le but delalgorithme va tre de donner chaque pixel une valeur dindex qui corresponde un numro de rgion. Pour connatre ensuite ltendu de la rgion n, il suffiradextraire tous les pixels dont lindex vaut n.

    Lindex de chaque pixel est initialement fix -1, valeur indiquant que lin-dex na pas encore t attribu. On parcourt limage de haut en bas et de gauche

    droite. Plaons nous en cours dexcution : pour chaque pixel c examin, onconsidre les pixels adjacents c1, c2, c3 qui ont dj t examins :

    3Lalgorithme prsent ici ne tient compte que de la valeur moyenne de la couleur. il est donc

    possible dobtenir des rgions avec un trs fort cart type. Une amlioration possible de lalgo-

    rithme permet de tenir compte de lcart type sur lequel est fix un second seuil.

    5

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    6/42

    C3

    C1 C2

    C

    position courante

    sens de parcours

    NB : Certaines implmentations de lalgorithme nutilisent pas c1. Les rgionsconstruites peuvent alors prsenter des coupures sur des points de connection ar-ticuls autour de deux pixels en diagonale.

    On va ensuite choisir parmi c1, c2, c3 lensemble des pixels dont la couleur estidentique celle de c, un facteur de tolrance prs. Si cet ensemble est vide,on cre un nouvel index que lon attribue au pixel courant c (il existe un compteurdindex qui permet de savoir quel est le prochain nouveau numro dindex libre).

    Si cet ensemble nest pas vide et que chaque pixel le constituant a le mme indexk, il suffit dattribuer lindex k au pixel courant c. Dans le cas contraire, la situationest un peu plus complexe. Supposons que c1 et c ont la mme couleur ( prs)et lindex de c1 est 4. De mme supposons que c2 et c ont la mme couleur et quelindex de c2 est 7. Une possibilit est de reparcourir limage dj traite et dechanger tous les index de valeur 7 en index de valeur 4 et dattribuer la valeur 4 lindex de c. Cette solution nest pas satisfaisante du point de vue de la complexit(algorithme en N2, N tant la taille de limage). Le plus efficace est de tenir jourun chanage qui indique les quivalences entre indexes. Par exemple ici, 4 7.Les chanes peuvent ensuite sallonger, par exemple : 4 7 11 3 19.La technique algorithmique correspondante est lutilisation dun tableau next.

    Initialement next[i]=i. Quand on souhaite chaner p et q, on procde de lafaon suivante :

    while (next[p] !=p)

    p = next[p] ;

    next[p] = q ;

    Ce qui attache q lextrmit de la chane contenant p. Ceci tablit lquivalenceentre p et q. Il suffit ensuite dattribuer lindex q au pixel courant c.

    La phase finale consiste balayer nouveau toute limage une seule fois pour

    remplacer les numros dindex par leur quivalent en extrmit de chane. Lersultat final est une image indexe, chaque index valant un numro de rgion. Lacomplexit globale est de lordre de N, la taille de limage.

    6

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    7/42

    2.3 Exemples

    Voici un exemple dont limage test a t emprunte au site internet de LImageRecognition Laboratory de luniversit Koblenz-Landau (fig 2).

    (www.uni-koblenz.de/~lb/lb_images/segmentation.html)

    FIG . 2 Image originale avant accroissement de rgion

    Nous avons appliqu un algorithme daccroissement de rgion avec un seuilde 6 puis de 7 sur le maximum de variation de RGB (max(R, G, B) < ).Les images segmentes sont prsentes en fausses couleurs cest dire que chaquergion est colorie dune manire alatoire de sorte quon parvienne la distinguernettement des rgions adjacentes (fig 3).

    A gauche, limage avec un seuil de 6. On constate que les fleurs sont correc-tement extraites mais la base en bas se confond avec le fond. Ce problme estcaractristique des algorithmes de segmentation dit locaux qui nont pas de vuedensemble ou de description de plus haut niveau que le pixel. Dans le cas delaccroissement de rgion, entre deux points de deux rgions connexes, il existepresque toujours une chane de pixels connexes pour laquelle lcart de couleurentre deux pixels adjacents est infrieur au seuil. Cela se traduit par des effetsde ponts entre zones, particulirement sensibles dans les zones de dgrad. Laconsquence est que les rgions ont tendance se mlanger au del dun certainseuil, et ceci mme si les rgions en question sont trs diffrentes du point de vuede la couleur. Par exemple, il est facile de crer un pont de pixels entre un carrrouge et un carr bleu en utilisant un dgrad continu de rouge vers bleu. Les

    7

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    8/42

    FIG . 3 Accroissement de rgion : A gauche, seuil=6. A droite, seuil=7

    algorithmes globaux comme le split and merge ou lalgorithme CSC que nousprsenterons plus loin nont pas ce problme.

    A droite, la mme image est segmente avec un seuil de 7. On constate quela fleur du milieu est confondue avec le fond (il existe visiblement un pont depixels pour le seuil 7 entre cette rgion et le fond). Ceci met en lumire lun desprincipaux problmes lis laccroissement de rgion : la sensibilit au seuil. Enpratique, il est presque toujours possible de trouver un seuil qui segmente bienune image donne. Le problme vient que si lon augmente dune unit ce seuil,

    limage est mal segmente (fusion de rgions, problme des ponts), si on di-minue ce seuil dune unit, limage est sur-segmente. Il nexiste pas de seuilqui fonctionne correctement pour toute une classe dimages, ce qui rend lauto-matisation des algorithmes trs difficile. A titre dexemple, la figure 4 montre lasegmentation de limage prcdente avec un seuil de 3 ( gauche) et de 4 ( droite)et un filtre pour supprimer les rgions de taille infrieure 100.

    Le rsultat est correct pour le seuil de 4 et devient beaucoup trop morcel pourle seuil de 3. Le seuil optimal de cette image est donc 4. Pour une autre image,la bonne valeur de seuil sera en gnral diffrente et il faut recommencer cesestimations, ce qui rend lalgorithme peu utilisable dans un environnement bruit

    et complexe.

    8

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    9/42

    FIG . 4 Accroissement de rgion : A gauche, seuil=3. A droite, seuil=4

    3 Mthodes du type "split and merge"

    Lalgorithme split and merge a t prsent la premire fois en 1974 parPavlidis et Horowitz ([9]). Cet algorithme sapparente dans son principe lal-gorithme daccroissement de rgion que nous venons de prsenter. La diffrenceprincipale provient de la nature des rgions lmentaires agrges. Dans lalgo-rithme split and merge, les rgions agrges proviennent dune premire phase(split) de traitement de limage qui construit de manire rcursive des rgions car-

    res de taille variable mais homognes.

    3.1 Split

    La mthode de dcoupage de limage utilise dans cet algorithme est bas surla notion de quadtree. Cette structure de donnes est un arbre quaternaire quipermet de stocker limage plusieurs niveaux de rsolution. On part dune rgioninitiale qui est limage tout entire. Si cette image vrifie un critre dhomognitde couleur, lalgorithme sarrte. Sinon, on dcoupe cette rgion en quatre partiesde mme taille et on lance la procdure rcursivement dans ces quatre parties. La

    rgion initiale va tre stocke comme un noeud dans un graphe et les sous partiescomme des fils de ce noeud. La figure 5 montre une image en noir et blanc 8x8 etle dcoupage correspondant chaque niveau.

    La structure darbre associe ce dcoupage est illustre figure 6.

    9

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    10/42

    image 8x8 original (1bpp)

    quadtreeniveau 0

    niveau 1

    niveau 2

    niveau 3

    FIG . 5 Dcoupage par quadtree dune image 8x8. Traitement avec seuil=100%

    Dans cet exemple, le critre dhomognit est absolu : une zone est dite ho-mogne si elle ne contient que des pixels de mme couleur (seuil=100%). On peuttre plus tolrant et accepter quune zone soit dclare homogne ds que plus de75% dune couleur domine. La figure 7 montre le dcoupage correspondant.

    La structure darbre associe ce dcoupage est plus simple (fig 8).

    De manire plus gnrale, on va appliquer ce principe de rduction desimages colores. Le critre dhomognit est fix par un seuil sur la variancede la couleur dans la zone en cours dexamen. Au dessus de ce seuil, la zone estdcoupe en quatre, en dessous, elle est conserve et constitue un noeud terminalde larbre. On lui attribue alors la couleur de la moyenne des pixels la constituant.

    3.2 Merge

    La procdure de dcoupage dcrite prcdemment aboutit un nombre dergions trop lev. La cause fondamentale de cette sur-segmentation est que lal-gorithme dcoupe les rgions de manire arbitraire. Il se peut quil coupe de cettefaon une zone homogne en deux ou quatre parties (fig 9).

    10

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    11/42

    noeud non uniforme

    noeud uniformment blanc

    noeud uniformment noir

    quadtreeniveau 0

    niveau 1

    niveau 2

    niveau 3

    ordre de prsentation:

    1 2 3 4

    1 2

    34

    FIG . 6 Quadtree sur une image 8x8, seuil=100%

    11

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    12/42

    image 8x8 original (1bpp)

    quadtreeniveau 0

    niveau 1

    niveau 2

    niveau 3

    image segmente par quadtree

    FIG . 7 Dcoupage par quadtree dune image 8x8. Traitement avec seuil=75%

    noeud non uniforme

    noeud uniformment blanc

    noeud uniformment noir

    quadtreeniveau 0

    niveau 1

    niveau 2

    ordre de prsentation:

    1 2 3 4

    1 2

    34

    FIG . 8 Quadtree sur une image 8x8, seuil=75%

    12

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    13/42

    1 2

    4 3

    FIG . 9 Problme de dcoupage arbitraire de rgions dans la phase de split

    Les parties 1,2,3 et 4 de cette image par exemple, appartiennent des branchesdiffrentes du quadtree. Elles sont donc considres comme des rgions diff-rentes bien que leur couleur soit identique.

    La solution, qui correspond la phase merge de lalgorithme, est de proc-der une fusion de rgions aprs le dcoupage. Limplmentation la plus simplede cette fusion cherche tous les couples de rgions adjacentes dans larbre issu dudcoupage et cherche les fusionner si leur couleur est assez proche.

    Pour raliser cette fusion, il faut dabord tenir jour une liste des contacts entrergions (chaque rgion dispose dun pointeur sur une liste chane de rgions aveclesquelles elle est en contact). On obtient ainsi un graphe dadjacence de rgionsou Region Adjacency Graph (NB : Ce graphe de contact doit se construire enmme temps que larbre de dcoupage). Ensuite, lalgorithme va marquer toutesles rgions comme non-traites et choisir la premire rgion R non traite dis-ponible. Les rgions en contact avec R sont empiles et sont examines les unesaprs les autres pour savoir si elles doivent fusionner avec R. Si cest le cas, lacouleur 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 fusion-ne est marque traite. Une fois la pile vide, lalgorithme choisi la prochainergion marque non traite et recommence, jusqu ce que toutes les rgions

    13

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    14/42

    soient traites4.

    Des amliorations substantielles cet algorithme existent (entre autres, [5, 4,3, 6]) et nous navons prsent ici que la version la plus lmentaire du split andmerge.

    3.3 Exemple

    Voici le rsultat du traitement de limage prcdente (image originale fig 10)par lalgorithme de split and merge . Nous donnons la segmentation en faussescouleurs sur la gauche et la segmentation en vraies couleurs droite (fig 11).

    FIG . 10 Image originale avant split and merge

    Ces images sont empruntes au site web de luniversit Koblenz-Landau. Leseuil utilis nest pas prcis mais on constate que le nombre de rgions extraitesest trop lev. Il y a une multitude de petites rgions isoles. On peut amliorerce rsultat en augmentant le seuil mais quoi quil en soit, le rsultat final prsen-tera toujours une forme morcele en escaliers, caractristique du pr-traitement enquadtree. On touche ici au principal dsavantage de la mthode split and mergequi a beaucoup de difficults restituer des rgions aux contours naturels. Lesrgions ont toujours cette apparence carre. De plus, cette mthode souffre duproblme gnral des algorithmes daccroissement de rgion (dont la phase mer-ge est un cas particulier) : le rsultat final dpend de lordre dans lequel sont

    4Il existe de nombreuses variantes plus subtiles de la phase de regroupement de cet algorithme.

    Nous ne prsentons ici que lide gnrale.

    14

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    15/42

    FIG . 11 Split and merge : A gauche, la segmentation en fausses couleurs. Adroite limage avec couleurs relles.

    examines les rgions adjacentes lors du regroupement. Il sen suit que la seg-mentation obtenue est peu stable dune image sur lautre et le processus manquede robustesse en gnral.

    Lalgorithme CSC que nous prsentons prsent combine beaucoup des avan-tages des mthodes prcdentes mais ne prsente pas les limitations que nousavons soulignes.

    4 Algorithme CSC

    Lalgorithme CSC (Color Structure Code) a t prsent en 1993 par Rehr-mann et Priese [12]. Il repose sur lutilisation dune structure hexagonale hirar-chique de codage de limage. Il sagit dun algorithme de merge and split par-ticulirement efficace et robuste. Lune des proprits de cet algorithme est quilest compltement paralllisable et quil ne dpend pas dun ordre de traitement delimage comme les algorithmes daccroissement de rgion.

    4.1 Hirarchie hexagonale

    Lalgorithme repose sur lutilisation dune topologie hirarchique particuliredes pixels. La topologie hirarchique est constitue dlots hexagonaux disposs

    15

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    16/42

    diffrents niveaux. Les lots de niveau 0 sont des groupements hexagonaux desept pixels (fig 12).

    pixels

    ilot de niveau 0

    FIG . 12 ALgorithme CSC : Exemple dlot de niveau 0 bas sur la topologie

    hexagonale

    La disposition lgrement dcale des pixels de rang pair et de rang impairpeut tre soit interpole soit simule par lintermdiaire dune topologie lgre-ment diffrente plaque sur le rseau orthogonal de limage (fig 13).

    topologie idaletopologie apparente

    rangs pairs

    topologie apparente

    rangs impairs

    FIG . 13 Algorithme CSC : Relations de contact dun rseau orthogonal qui-valent une topologie hexagonale

    Cette topologie est rcursive, cest dire quun lot de niveau n + 1 est consti-

    tu de sept lots de niveau n, disposs hexagonalement de la mme manire queles pixels constituant un lot de niveau 0 (fig 14). On remarquera que les lotsdun niveau donn se recouvrent partiellement. Cette proprit est particulire-ment importante pour lalgorithme puisquelle permet des simplifications et desoptimisations significatives.

    16

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    17/42

    ilot niveau 0

    ilot niveau 1ilot niveau 2

    pixel

    FIG . 14 Algorithme CSC : Structure hexagonale hirarchique

    La construction rcursive des lots sarrte lorsquun lot recouvre toute limage.Le nombre dlots dcrot dun facteur 4 dun niveau lautre.

    4.2 Initialisation

    La premire phase de lalgorithme consiste appliquer un simple algorithmedaccroissement de rgion localement dans chaque lot de niveau 0. Cette premiretape construit entre 1 et 7 rgions de niveau 0, contenues dans chaque lot. Nousappellerons ces rgions des lments (fig 15). Ltape de construction de ces l-ments de niveau 0 peut sexcuter en parallle sur plusieurs processeurs puisquele traitement effectu dans un lot ignore compltement celui de llot voisin, bienquils partagent un pixel un commun.

    La mthode utilise pour comparer la couleur des pixels est plus complexequune simple distance euclidienne entre les composantes rouges, vertes et bleues.

    Nous prsenterons cette technique un peu plus loin.

    17

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    18/42

    Initialisation: accroissement de rgionsur les pixels dun ilot de niveau 0

    FIG . 15 Algorithme CSC : Phase dinitialisation

    4.3 Phase de groupement

    Dans la phase de regroupement, des lments de niveaun

    sont regroups enlments de niveau n + 1. Cette opration seffectue lintrieur dun lot deniveau n + 1. Les lments de niveau n sont regroups si ils sont connects et decouleur proche. Le test de connectivit est particulirement efficace et utilise lersultat suivant :

    Proprit : Deux lments de niveau n sont connects sils ont au moinsun lment de niveau n 1 en commun.

    Au niveau 0, cette proprit signifie simplement que les deux lments ont un pixelen commun. On notera que deux lments de niveau n connects appartiennent

    forcment deux lots adjacents de niveau n et leurs sous-lments communs setrouvent dans llot de niveau n 1 commun.

    Lopration est rpte de niveau en niveau jusquau niveau recouvrant toutelimage. Le rsultat est un arbre et le groupement de k lments de niveau n enun lment de niveau n + 1 se fait uniquement par lutilisation de pointeurs. Lors-quun lment de niveau n ne trouve aucun autre lment auquel se lier, il devientla racine dun arbre correspondant une rgion termine de limage et peut trestock. Lexemple suivant illustre le processus de regroupement. On considre lessept lots de niveau n constituant llot de niveau n + 1 en cours de traitement (fig16).

    Chaque lot de niveau n contient un ensemble dlments de niveau n, issus dutraitement rcursif ltape prcdente (fig 17). La figure 18 montre les lmentsde niveau n dans une disposition clate, tels quils apparaissent localementpour chaque lot de niveau n.

    18

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    19/42

    ilot de niveau n

    FIG . 16 Example dlots de niveau n regroups dans un lot de niveau n + 1

    lment de niveau n

    FIG . 17 Example dlments de niveau n

    19

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    20/42

    FIG . 18 Example dlments de niveau n (disposition clate)

    20

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    21/42

    Les lments de niveau n sont ensuite considrs par llot de niveau n + 1auquel ils appartiennent (fig 19).

    FIG . 19 Example dlments de niveau n vus au niveau n + 1

    Finalement, les lments de niveau n sont regroups au sein dlments deniveau n + 1 (fig 20).

    La figure 21 illustre la structure darbre rsultant du regroupement.

    4.4 Phase de dcoupage

    Lerreur caractristique des algorithmes daccroissement de rgion est de connec-ter deux rgions de couleurs diffrentes parce quil existe un pont ou chane depixels de la premire rgion vers la deuxime (cf 2.3). Le long de cette chane,chaque pixel a une couleur proche de celle de son voisin, ce qui fait que lalgo-rithme ne voit pas la drive qui mne dune couleur lautre. Ces algorithmesutilisent uniquement de linformation locale et ne sont pas capables de dtecterdes contours au contraste trop faible. Lalgorithme CSC utilise la fois des infor-

    mations locales (phase de regroupement) et globales (phase de dcoupage).La phase de dcoupage a lieu simultanment la phase de regroupement.

    Lorsque deux lments de niveau n sont connects et de couleur similaire, ilssont regroups dans un lment de niveau n + 1. Dans le cas o ils sont connects

    21

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    22/42

    FIG . 20 Example dlments de niveau n + 1

    mais de couleur incompatible ils ne vont pas tre regroups, bien que tous les l-ments de niveau n 1 les constituant soient de couleurs homognes et proches.Lanalyse au niveau n est une analyse globale des proprits colorimtriques deslments de niveau n 1. Grce ce traitement, le problme des chanes de pixelsest supprim.

    Lorsque deux lments connects ne sont pas regroups parce que leurs cou-

    leurs sont trop loignes, ils partagent cependant un ensemble de sous lmentspuisquils sont connects (ceci est d la structure partiellement recouvrante des

    lots). Il va donc falloir les sparer pour obtenir deux lments sans recouvrementet partager la rgion commune. Cette opration peut tre ralise de manire co-nomique et lgante grce la structure hexagonale hirarchique qui a t miseen place.

    Considrons le cas gnral de la figure 22.

    C1 et C2 sont deux lments de niveau n +1. Ils sont constitus dun ensembledlments de niveau n. Les lots de niveau n contenant ces lments sont marqusdun cercle (voir le haut de la figure 22). Puisque C1 et C2 sont connects, ilspartagent (au moins) un lment de niveau n, que nous noterons s. La couleur des est alors compare celle de C1 et de C2 et s est alors li llment (C1 ouC2) dont la couleur est la plus proche. Supposons que ce soit C2, s doit donc treeffac de la liste des fils de C1 (il sagit dune simple suppression de pointeur).

    22

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    23/42

    niveau n+1

    niveau n

    FIG . 21 Algorithme CSC : Structure arborescente rsultant de la phase de grou-pement

    23

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    24/42

    C1 C2s

    ss1

    s2

    niveau n+1

    niveau n

    FIG . 22 Rsultat de la phase de dcoupage rcursif de lalgorithme CSC

    24

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    25/42

    s nest pas pour autant intgralement attribu C2. Bien quil ait t supprimde C1, il reste encore attach cet lment par les connections qui lattachentavec les lments s1 et s2 de niveau n dans C1 (cest une consquence directe dela structure en recouvrement). Il sagit donc de sparer s de s1 et s2, ce qui estralis de manire rcursive en reprenant la mme procdure que celle que nousvenons de dcrire pour la sparation de C1 et C2. La seule diffrence est que lescouleurs utilises pour dterminer de quel ct bascule la rgion commune sontles couleurs de C1 et de C2, qui reprsentent linformation la plus globale.

    NB : Lors de la subdivision rcursive de s, il est tout fait possible que la rgioncommune s et s1 soit assigne s1. Ce qui indique que, bien que s aitt attribue C2, cela ne signifie pas que tous les pixels constituant s serontfinalement attribus C2. s peut perdre des sous rgions dans la descentercursive.

    Cette procdure simple et lgante (il sagit de simples dltions de pointeurs)conduit des frontires trs prcises entre rgions.

    Remarque : Lalgorithme prsent peut poser problme dans certains cas trsrares o la phase de dcoupage peut conduire des lments non connexes,cest dire des rgions disjointes. Les mthodes possibles pour prendre encompte ce problme sont complexes et coteuses. En pratique, la situationne se prsentant presque jamais, il est tout fait acceptable dignorer leproblme.

    4.5 Taille et couleur moyenne des lments

    Une question dlicate que nous navons pas abord est celle du calcul de lacouleur moyenne dun lment. Compte tenu de la structure en recouvrement dela hirarchie hexagonale, certains pixels communs deux lments regroups se-ront compts en double si lon effectue une simple moyenne. Pour simplifier laquestion, on peut ramener le calcul de la couleur moyenne celui du nombre depixels effectivement couverts par un lment donn. Lorsquon regroupe deux l-ments (qui partagent donc un sous lment commun), le plus simple semble trede sommer le nombre de pixels de chaque lment et de soustraire le nombre de

    pixels du sous lment commun compt en double. On peut reprendre les nota-tions de la figure 22, en supposant prsent que lon cherche regrouper C1 etC2. Le problme lorsque lon fait le calcul C1 + C2 s est que lon soustraitabusivement des sous lments communs s et s1 dune part et s et s2 dautrepart. Il faut donc ajouter ces sous lments et poursuivre rcursivement le calcul

    25

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    26/42

    vers les sous-sous-lments de s1 et s2, en alternant somme et soustraction. Cetteopration est similaire en terme de complexit lopration de dcoupage quenous venons de prsenter. Le cot en temps est considrable car lopration de re-groupement est trs frquente (le dcoupage est un vnement rare, comme nousle verrons plus loin, ce qui rend son cot global ngligeable). Le calcul exact dela taille des lments est donc trop lourd et il est important dutiliser une approxi-mation.

    Considrons la situation de la figure 23.

    2

    12

    1

    C1

    C2

    FIG . 23 Algorithme CSC : problme du mlange des couleurs C1 et C2

    Deux rgions R1 et R2 de taille 1 et 2 et de couleur moyenne C1 et C2doivent tre regroupes. La zone commune est de taille 12. Comme on ne disposepas dinformations autres que les informations statistiques concernant la couleur

    moyenne C1 et C2 des deux zones, on ne peut valuer la couleur moyenne de lin-tersection au mieux que comme tant gale (C1 + C2)/2. tant donn que lesdeux couleurs sont proches puisque les deux rgions sont amenes tre regrou-pes, lerreur commise est faible. On pose a priori que :

    max(|C2 C1|

    C2,

    |C2 C1|

    C1) =

    |C2 C1|

    min(C1, C2)

    est donc le pourcentage de variation de couleur maximum autoris. Lerreurcommise en prenant (C1 + C2)/2 comme couleur pour lintersection est donc auplus de 1/2 min(C1, C2). Dans la suite, nous noterons C = min(C1, C2).

    Nous allons montrer quune bonne approximation consiste ignorer la rgioncommune et considrer R1 et R2 comme disjointes, cest dire (en notant H(R)la couleur dune rgion) :

    26

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    27/42

    H(R1 R2) =1C1 + 2C2

    1 + 2= Happrox

    Une proprit importante de lalgorithme CSC est que la variance sur la taille

    des lments dun niveau donn est assez faible. Cela signifie que les tailles de R1et de R2 sont proches. Cette proprit est facilement vrifiable exprimentalementet nous avons constat sa validit en pratique. Pour la suite, nous poserons donc2 = 1(1 + ). Nous poserons galement que 12 2 et, symtriquement12 1, ce qui mne 12 1

    +22

    .En pratique, est de lordre de 1/7et reprsente la proportion de surface recouvrante de deux lots adjacents dans latopologie. Dans ce cas, le calcul exact du mlange des couleurs donne :

    H(R1 R2) =(1 12)C1 + (2 12)C2 + 1/2 12(C1 + C2)

    1 + 2 12

    = 1C1(1 ) + 2C2(1 ) + 1/4 (1 + 2)(C1 + C2)(1 + 2)(1 /2)

    =(1C1 + 2C2)(1 )

    (1 + 2)(1 /2)

    +1/4 (1C1 + 2C2 + 1C2 + 2C1)

    (1 + 2)(1 /2)

    =(1C1 + 2C2)(1 )

    (1 + 2)(1 /2)

    +1/4 [2(1C1 + 2C2) (1C1 + 2C2) + 1C2 + 2C1]

    (1 + 2)(1 /2)

    = (1C1 + 2C2)(1 + /2)

    (1 + 2)(1 /2)

    +1/4 [(1C2 + 2C1) (1C1 + 2C2)]

    (1 + 2)(1 /2)

    = Happrox + (1C2 + 2C1) (1C1 + 2C2)

    4(1 + 2)(1 /2)

    = Happrox + (C1 C2)

    4(1 /2)(2 + )

    Ce qui peut encore scrire aprs quelques manipulations :

    H(R1 R2) = Happrox

    1 +

    (C1 C2)

    4(1 /2)(C1 + C2 + C2)

    = Happrox(1 + )

    27

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    28/42

    Avec :

    || |C1 C2|

    4(1 /2)(C1 + C2 + C2)

    |C1 C2|

    4(1 /2)(min(C1, C2) + min(C1, C2) + min(C1, C2))

    |C1 C2|

    4(1 /2)(1 + )C

    4(1 /2)(1 + )

    Lerreur relative commise est donc trs faible. Avec = 1/7, = 20% et = 4 (valeur trs pessimiste puisque, en pratique on observe plutt 0), onobtient :

    || 6, 15 103

    Ce qui valide compltement lapproximation ralise. On utilise donc les for-mules approches suivantes :

    (R1 R2) = (1

    2) ((R1) + (R2)) (1)

    H(R1 R2) =

    (R1)C(R1) + (R2)C(R2)

    (R1) + (R2) (2)

    4.6 Pr-traitement : filtrage SNN

    Pour amliorer les performances de lalgorithme, il est intressant dutiliserun filtre rducteur de bruit en entre. Plusieurs mthodes classiques ont t es-sayes : filtre gaussien, filtre mdian, filtre knn (k-Nearest-Neighbor). Le plusefficace dans le cadre de lalgorithme CSC est le filtre snn (Symmetric NearestNeighbor, [11]), comme le prouvent les tests de reconnaissance de forme effec-tus par Rehrmann ([13]). Cest galement le plus rapide puisquil implique le

    plus faible de nombre de calculs.

    Le fonctionnement du filtre snn est simple. Chaque pixel est examin dans lecadre de la topologie hexagonale mise en place pour lalgorithme CSC (voir figure24).

    28

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    29/42

    c4

    c5

    c6

    c0

    c1

    c2 c3

    FIG . 24 Disposition des pixels dans le rseau hexagonal

    On considre les trois paires de pixels symtriques autour de c0 : (c1, c6),(c2, c5)et (c3, c4). Dans chaque paire, on va choisir le pixel dont la couleur est la plusproche de celle de c0. On obtient trois pixels ci1 , ci2, ci3 .La couleur de c0 est alorsremplace par la moyenne des couleurs de ces trois pixels.

    Ce filtre a lavantage de renforcer les contours de limage (pas de flou) etsupprime le bruit de manire efficace.

    4.7 Similarit de couleurs

    Un des aspects importants de lalgorithme CSC est la mesure de similarit decouleurs utilise. La plupart des mthodes classiques utilisent une distance eucli-dienne sur les composantes de couleurs dans un espace comme RGB. Le dsa-vantage de ces mthodes est quelles sont en gnral assez loignes des mesuresde similarit de loeil humain. La segmentation qui en rsulte est de moins bonne

    qualit.La mthode propose ici repose sur lutilisation dun prdicat de couleur D.

    tant donnes deux couleurs c1 et c2, on pose :

    D(c1, c2) =

    vrai : c1et c2 sont de couleur similaire

    faux : sinon

    Lespace de couleur utilis ici est HSV (Hue, Saturation, Value). Lavantagede cet espace est quil permet de sparer clairement linformation colorimtriquede linformation de luminance ou de saturation. En particulier,

    hue(r,g,b) = hue(r,g,b)

    = hue(r + , g + , b + )

    29

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    30/42

    Idalement donc, pour comparer des couleurs en ignorant les variations dues lillumination (V) ou la saturation (S), il suffit de mesurer lcart de valeur de H.Le problme de la mesure de couleur dans lespace HSV est li lexistence dunesingularit en (0, 0, 0). Lorsque S ou V deviennent trop faibles, la valeur de H estextrmement instable ( la limite, quand S=0 ou V=0, H nest pas dfini). Dans cecas, une mesure de distance euclidienne sur S et V devient bien plus efficace pourcomparer les couleurs. La mesure D propose ici tient compte de ces domainesde validit en utilisant des seuils variables pour les tolrances dcart sur H, S etV. La valeur des trois seuils associs ces trois composantes est fonction de S etde V. Ainsi, le seuil de H va devenir trs tolrant quand S ou V diminue, ce quirevient ignorer H. Plus prcisment :

    D(h1, s1, v1, h2, s2, v2) = vrai

    h1 h2 Hseuil|s1 s2| Sseuil

    |v1 v2| V seuil

    avec

    Hseuil = Htab[min(s1, s2)][max(v1, v2)]

    Sseuil = Stab[min(s1, s2)][max(v1, v2)]

    V seuil = V tab[min(s1, s2)][max(v1, v2)]

    Loprateur reprsente la diffrence modulo 2, cest dire :

    h1 h2 =

    |h1 h2| : si |h1 h2|

    2 |h1 h2| : sinon

    Les tableaux Hseuil, Sseuil et V seuil sont des tableaux 16x16. Les barresau dessus des composantes (s1,v2,...) signifient que lon prend la valeur quantifiede la composante entre 0 et 15. Pour une composante k dont la valeur varie entre0 et 255, on a k = k div 16.

    Les tableaux Hseuil, Sseuil et V seuil ont t dtermins exprimentalement.Nous en donnons ici une table est une reprsentation graphique (fig 25).

    Hseuil

    30

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    31/42

    S V 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    0 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360

    1 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360 360

    2 360 360 360 125 125 125 125 125 125 125 125 125 125 125 125 125

    3 360 360 100 35 10 10 10 10 10 10 10 10 10 10 10 10

    4 360 360 35 10 10 10 10 10 10 10 10 10 10 10 10 10

    5 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    6 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    7 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    8 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 109 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    10 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    11 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    12 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    13 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    14 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    15 360 360 10 10 10 10 10 10 10 10 10 10 10 10 10 10

    SseuilS V 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    0 56 40 32 24 24 24 24 24 24 24 24 24 24 24 24 24

    1 56 40 32 24 24 24 24 24 24 24 24 24 24 24 24 24

    2 56 40 32 24 24 24 24 24 24 24 24 24 24 24 24 24

    3 56 49 41 34 34 34 34 34 34 34 34 34 34 34 34 34

    4 56 49 41 34 34 34 34 34 34 34 34 34 34 34 34 34

    5 64 49 41 34 34 34 34 34 34 34 34 34 34 34 34 34

    6 64 49 41 34 34 34 34 34 34 34 34 34 34 34 34 34

    7 64 49 41 41 41 41 41 41 41 41 41 41 41 41 41 41

    8 64 49 41 41 41 41 41 41 41 41 41 41 41 41 41 41

    9 64 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49

    10 64 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49

    11 64 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56

    12 64 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56

    13 64 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56

    14 64 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56

    15 64 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56

    V seuilS V 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    0 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16

    1 16 16 17 18 18 18 18 18 18 18 18 18 18 18 18 18

    2 16 17 18 19 20 20 20 20 20 20 20 20 20 20 20 20

    3 16 18 19 20 21 22 22 22 22 22 22 22 22 22 22 22

    4 16 20 22 24 25 25 25 25 25 25 25 25 25 25 25 25

    5 16 20 24 28 30 30 30 30 30 30 30 30 30 30 30 30

    6 16 20 28 32 35 35 35 35 35 35 35 35 35 35 35 35

    7 16 20 32 36 40 40 40 40 40 40 40 40 40 40 40 40

    8 16 20 32 36 40 40 40 40 44 44 44 44 44 44 44 44

    9 16 20 32 36 40 44 44 44 48 48 48 48 48 48 48 48

    10 16 20 32 36 40 44 48 52 52 52 52 52 52 52 52 52

    11 16 20 32 36 40 44 48 52 56 56 56 56 56 56 56 56

    12 16 20 32 36 40 46 52 56 56 56 56 56 56 56 56 56

    13 16 20 34 38 42 46 52 56 56 56 56 56 56 56 56 56

    14 16 20 34 38 42 46 52 56 56 56 56 56 56 56 56 56

    15 16 20 34 38 42 46 52 56 56 56 56 56 56 56 56 56

    On constate qu faible intensit, les seuils de H et de S sont trs levs (cequi revient les ignorer dans lvaluation du prdicat D). Lorsque la saturation estfaible, il y a peu de colorisation donc le seuil de H est trs lev. Cette mthodedonne de trs bons rsultats et permet dattnuer fortement leffet des variationsdillumination (ombres, reflets). En pratique, il est intressant de rendre la valeurdes seuils variable dun niveau lautre dans le fonctionnement de lalgorithme.

    31

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    32/42

    0

    2

    4

    6

    8

    10

    12

    14

    16

    value

    02

    46

    810

    1214

    16saturation

    0

    50

    100

    150

    200

    250300

    350

    400

    Hseuil

    02

    46

    810

    1214

    16

    value

    02

    46

    810

    1214

    16

    saturation

    20

    25

    30

    35

    40

    45

    50

    55

    60

    65

    Sseuil

    02

    46

    810

    1214

    16

    value

    02

    46

    810

    1214

    16

    saturation

    15

    20

    25

    30

    35

    40

    45

    50

    55

    60

    Vseuil

    FIG . 25 Reprsentation graphique des tableaux de seuil Hseuil, Sseuil etV seuil

    32

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    33/42

    Les lments de niveau n seront examins avec plus de tolrance que ceux deniveau n + 1. Pour raliser cette variation, on modifie la valeur du palier le plusbas du tableau Htab et des bordures extrmes des tableaux Stab et Vtab.

    4.8 Complexit

    La complexit de lalgorithme CSC est linaire en le nombre de pixels. Cestun trs bon rsultat pour un algorithme la fois global et local.

    Notons N le nombre de pixels de limage. La phase de pr-traitement (filtragesnn) est linaire en N. Les deux principales oprations des phases dinitialisationet de regroupement sont lvaluation du prdicat D pour le calcul de la similaritde couleur et le test de connectivit entre deux lments. Dans la phase dini-tialisation, tous les pixels voisins doivent tre compars. Il y a donc N6

    2= 3N

    comparaisons. Dans cette phase qui se situe au niveau des pixels, les tests deconnectivit sont implicitement donns par la structure hexagonale. Le nombrede comparaisons de couleurs dans la phase de regroupement dpend du nombredlments dans chaque lot, qui varie dune image lautre. Comme le nombredlots dcrot dun facteur 4 dun niveau lautre, il est raisonnable de considrerque le nombre dlments dcrot galement dun facteur 4 en moyenne. Cettesituation est exactement vrifie dans le cas dune image parfaitement homogneou chaque lot contient exactement un lment qui le recouvre entirement. Lenombre dlments diffrents aux niveaux les plus bas est directement fonctiondu nombre de rgions de couleurs diffrentes existant au niveau des pixels. Plusce nombre est lev, plus ces rgions seront de petite taille en moyenne et moins il

    faudra monter dans la hirarchie pour trouver un lment les couvrant totalement.Donc, dans ce cas, il y aura moins dlments dans les plus hauts niveaux. Cesconsidrations se vrifient exprimentalement et on constate que le nombre dl-ments chaque niveau correspond peu prs au nombre dlots plus une constante(petite). On peut donc estimer le nombre total de comparaisons de couleur, phasedinitialisation comprise, pour une image de 512x512 (moins de 8 niveaux) par :

    3 N 8

    n=0

    1

    4

    n 3 N

    4

    3= 4 N

    Les lments appartenant des lots voisins ne sont pas ncessairement connects.Il faut donc vrifier cette connectivit. Par le mme raisonnement que celui quenous venons de dtailler, on aboutit au fait que le nombre de tests de connectivitdans la phase de regroupement est de lordre de N. Deux lments sont connec-ts sils partagent un mme sous-lment. Le test correspondant se fait en temps

    33

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    34/42

    constant, en vrifiant si les deux lments possdent un pointeur commun dansleur liste de sous-lments5.

    En gnral, le temps ncessaire pour les phases de pr-traitement, dinitiali-sation et de regroupement est presque constant et ne dpend pas de limage. Ce

    nest pas le cas de la phase de dcoupage. Le cot dun appel la procdure dedcoupage rcursif dpend du niveau o il est effectu et de la taille de la frontireentre les deux lments sparer. Le nombre de dcoupages dpend de la naturede limage mais en pratique, le temps consacr ces oprations est de lordre de5% du temps total de calcul. Il peut donc tre considr comme ngligeable. Ceciest d au fait que le nombre de dcoupages ncessaires est faible.

    4.9 Sensibilit aux paramtres

    Une proprit trs importante de lalgorithme CSC, et qui en fait un trs bonalgorithme de segmentation, est sa faible sensibilit aux variations de paramtres.Le traitement effectu est donc robuste et ne ncessite pas lutilisation dune va-leur ad hoc de paramtre comme cest souvent le cas pour les algorithmes dac-croissement de rgions.

    Nous avons voulu illustrer cette sensibilit laide dimages concrtes. Repre-nons lexemple dj utilis pour laccroissement de rgion et lalgorithme splitand merge (fig 26).

    Les deux paramtres que nous allons faire varier sont :

    h : La valeur plancher de Hseuil (cest la valeur de seuil sur H correspondant la zone de validit de H o S et V ne sont pas trop petits)

    h : la variation du plancher h dun niveau lautre. Une valeur ngativeva avoir tendance sur-segmenter limage. Une valeur positive va regrouperplus facilement les rgions. NB : la variation considre ici est une varia-tion arithmtique. On peut considrer une variation gomtrique mais lesrsultats sont moins intressants.

    On fixe s = v = 0, ce qui signifie que les tableaux Sseuil et Vseuil restent in-changs dun niveau lautre. Les images suivantes montrent diffrentes valeurs :

    Pour les valeurs raisonnables (et conseilles) de h et h qui sont respective-

    ment autour de 20 et de 0, il est quasiment impossible de distinguer les diffrences5Ce test efficace nest possible que grce la structure hexagonale hirarchique avec recouvre-

    ment. Dans une structure sans recouvrement, ce test doit tre effectu au niveau du pixel, ce qui

    est extrmement coteux.

    34

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    35/42

    FIG . 26 Image originale avant algorithme CSC

    FIG . 27 Segmentation CSC avec h = 20 et h = 0

    35

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    36/42

    FIG . 28 Segmentation CSC avec h = 20 et h = 2

    FIG . 29 Segmentation CSC avec h = 20 et h = 2

    36

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    37/42

    FIG . 30 Segmentation CSC avec h = 30 et h = 2

    FIG . 31 Segmentation CSC avec h = 1 et h = 2

    37

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    38/42

    FIG . 32 Segmentation CSC avec h = 1 et h = 0

    entre deux images. Elles existent cependant, et on peut les rvler en effectuantune diffrence et en amplifiant le rsultat. Ce nest que prs de valeurs exagrescomme h = 1 (cest dire une quasi rduction du prdicat D lidentit) que lonobserve des diffrences sensibles et une perte de qualit. Dautres exemples surdautres images sont prsents au paragraphe 4.11. Dans tous les cas, lalgorithmemontre la mme robustesse. Une fois les rgions de petite taille filtres, on obtientgnralement un dcoupage en rgions stable et relativement consistant mme surune image qui bouge lgrement ou pour laquelle la luminosit varie.

    4.10 Implmentation et calcul parallle

    Nous avons ralis une implmentation de lalgorithme CSC en C++ sur un PCAthlon 1.2GHz, 256Mo RAM. Un certain nombre doptimisations ont t misesen place : pr-calcul des transformations RGBHSV, pr-calcul de la topologiehexagonale, rduction au minimum des appels de fonction (fonction inline),pr-allocation des zones mmoires pour le stockage des arbres dlments, rem-placement systmatique des listes chanes par des tableaux dynamiques,... Unedernire optimisation reste mettre en place qui consiste obtenir limage de la

    camra directement en coordonnes HSV. Actuellement, la camra est utilise enmode RGB et le temps de conversion pourrait tre conomis.

    Nous arrivons une vitesse de traitement de lordre de 10Hz pour des images160x120 en provenance dune camra RGB. Nous navons pas cherch travailler

    38

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    39/42

    avec des images de plus haute rsolution puisque dans notre application (trackingdobjets colors) les dtails ne sont pas importants. Il est intressant de noter quele rsultat de lalgorithme sur une image de rsolution rduite et quasi identique celui obtenu sur limage originale (fig 33). Cest une des proprits de lal-gorithme CSC de ntre pas sensible lchelle, ce qui permet daugmenter larapidit de lalgorithme simplement en rduisant la rsolution. Ce nest pas le casde lalgorithme daccroissement de rgion dont les performances passent par unoptimum une chelle donne.

    FIG . 33 Segmentation CSC avec h = 20 et h = 0. En haut, 512x512, en bas100x100

    Nous projetons damliorer la vitesse dexcution en implmentant une ver-sion paralllise de lalgorithme. Comme chaque traitement chaque niveau sef-

    39

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    40/42

    fectue localement dans un lot, lalgorithme est naturellement parallle. Len-semble des lots peut tre divis en deux ou quatre parties attribues chacune unprocesseur. La gestion des priorits daccs aux donnes est relativement simpledans ce cas.

    4.11 Exemples

    Les exemples ci-dessous illustrent le comportement de lalgorithme sur desimages difficiles. De gauche droite sont disposes limage originale, la segmen-tation en vraies couleurs et la segmentation en fausses couleurs :

    40

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    41/42

    Rfrences

    [1] Barba D. Benois J. Image segmentation by region-contour cooperation forimage coding. In ICPR92, La Haye, pages vol C :pp 331334, 1992.

    [2] Largarde-Menet S. Bonin P. Segmentation cooprative rgion/contour basesur des critres danalyse texturelle en vue dune application la stereovi-sion. In RFIA89, pages pp 645660, 1989.

    [3] L. Brun and J. Domenger. A new split and merge algorithm with topologicalmaps and inter-pixel boundaries. To be published in WSCG97, 1996.

    [4] F. Cheevasuvut, H. Maitre, and D. Vidal-Madjar. A robust method for picturesegmentation based on a split and merge procedure. CVGIP, 34 :268281,1986., 1986.

    [5] P. Chen and T. Pavlidis. Segmentation by texture using a co-occurence ma-trix and a split and merge algorithm. Computer Graphics, and Image Pro-cessing, 10 :172182., 1979.

    [6] S. Chen, W. Lin, and C. Chen. Split-and-merge image segmentation basedon localized feature analysis and statistical tests. CVGIP : Graph. Models

    Image Process., vol. 53, pp. 457475, 1991.

    [7] A.R. Hanson and E.M. Riseman. Segmentation of natural scenes. In Com-puter Vision Systems, A. R. Hanson, and E. M. Riseman (Eds.), New York :

    Academic Press, pages 129163, 1978.

    41

  • 8/8/2019 Poly Segmentation ENSTA Baillie

    42/42

    [8] Haralick and Shapiro. Image segmentation techniques. Applications of Ar-tificial Intelligence II, 1985 April 9-11.

    [9] S.L. Horowitz and T. Pavlidis. Picture segmentation by a directed split andmerge procedure. In CMetImAly77, pages 10111, 1977.

    [10] Y. Ohta. Knowledge-based interpretation of outdoor natural color scenes ,pitman. LONDON, 85 :1985, 1985.

    [11] M. Pietikainen and D. Harwood. Segmentation of color images using edge-preserving filters. In V. Cappellini and R. Marconi, editors, Advances in

    Image Processing and Pattern Recognition, pages 9499. North-Holland.,1986.

    [12] L. Priese and V. Rehrmann. A fast hybrid color segmentation method. In S.J. Poppl and H. Handels, editors, Mustererkennung 1993, pages 297304.

    Springer Verlag, 1993. 15. DAGM-Symposium, Lubeck, 27.-29., 1993.

    [13] V. Rehrmann. echtzeitf ahige farbbildauswertung. Volker Rehrmann, Stabile,echtzeitf ahige Farbbildauswertung, Verlag Folbach., 1994.

    [14] Wladyslaw Skarbek and Andreas Koschan. Colour image segmentation a survey . Technical report, Institute for Technical Informatics, TechnicalUniversity of Berlin, October 1994.

    [15] Monga O. Wrobel B. Segmentation dimages naturelles : coopration entreun dtecteur-contour et un dtecteur-rgion. In GRETSI87, pages pp 539542, 1987.

    42