Vous êtes sur la page 1sur 5

1

Etude de mthodes de Clustering pour la segmentation dimages en couleurs


DHondt Frdric, El Khayati Brahim Facult Polytechnique de Mons, 5me Electricit, Certificat Applicatifs Multimdia
Rsum Ce projet consiste en lvaluation des performances de deux algorithmes de segmentation dimages en couleur : Fuzzy C-means et K-means. Dans un premier temps, nous prsentons le fonctionnement des deux mthodes, ainsi que leurs avantages et inconvnients. Dans un second temps, nous utilisons les algorithmes implments sous Matlab afin dvaluer les performances dune part, de manire subjective et dautre part, de manire objective, par lutilisation dun logiciel de reconnaissance optique de caractres. Mots clefsClustering Methods, Clusters, Fuzzy C-Means, KMeans.
I.

INTRODUCTION

Le clustering, ou segmentation, est une tape de base du traitement dune image. Cette opration a pour but de sparer diffrentes zones homognes dune image, afin dorganiser les objets en groupes (clusters) dont les membres ont en commun diverses proprits (intensit, couleur, texture, etc). On peut regrouper les mthodes de segmentation en deux catgories : la segmentation non supervise, qui vise sparer automatiquement limage en clusters naturels, cest--dire sans aucune connaissance pralable des classes ; et la segmentation supervise, qui sopre partir de la connaissance de chacune des classes dfinies par une approche probabiliste. Dans le cadre de ce projet, nous nous limiterons ltude des deux mthodes de segmentation non-supervise suivantes : le Fuzzy C-means et le k-means. Nous prsenterons tout dabord une brve description du fonctionnement de ces algorithmes, ainsi quune comparaison de leurs performances. Nous prsenterons ensuite les toolbox Matlab disponibles. Nous mettrons finalement en application les deux algorithmes par une srie dexemples tests laide des fonctions implmentes sous Matlab.

donnes appartient chaque cluster avec un certain degr, et tous les clusters sont caractriss par leur centre de gravit. Comme les autres algorithmes de classification non supervise, il utilise un critre de minimisation des distances intra-classe et de maximisation des distances inter-classe, mais en donnant un certain degr dappartenance chaque classe pour chaque pixel. Cet algorithme ncessite la connaissance pralable du nombre de clusters et gnre les classes par un processus itratif en minimisant une fonction objective. Ainsi, il permet d'obtenir une partition floue de l'image en donnant chaque pixel un degr d'appartenance (compris entre 0 et 1) une classe donne. Le cluster auquel est associ un pixel est celui dont le degr dappartenance sera le plus lev. Les principales tapes de lalgorithme Fuzzy C-means sont : 1. La fixation arbitraire dune matrice dappartenance. 2. Le calcul des centrodes des classes. 3. Le rajustement de la matrice dappartenance suivant la position des centrodes. 4. Calcul du critre de minimisation et retour ltape 2 sil y a non convergence de critre. Lalgorithme k-means est lalgorithme de clustering le plus connu et le plus utilis, du fait de sa simplicit de mise en uvre. Il partitionne les donnes dune image en K clusters. Contrairement dautres mthodes dites hirarchiques, qui crent une structure en arbre de clusters pour dcrire les groupements, k-means ne cre quun seul niveau de clusters. Lalgorithme renvoie une partition des donnes, dans laquelle les objets l'intrieur de chaque cluster sont aussi proches que possible les uns des autres et aussi loin que possible des objets des autres clusters. Chaque cluster de la partition est dfini par ses objets et son centrode. Le k-means est un algorithme itratif qui minimise la somme des distances entre chaque objet et le centrode de son cluster. La position initiale des centrodes conditionne le rsultat final, de sorte que les centrodes doivent tre initialement placs le plus loin possible les uns des autres de faon optimiser lalgorithme. K-means change les objets de cluster jusqu' ce que la somme ne puisse plus diminuer. Le rsultat est un ensemble de clusters compacts et clairement spars, sous rserve qu'on ait choisi la bonne valeur K du nombre de clusters. Les principales tapes de lalgorithme k-means sont : 1. Choix alatoire de la position initiale des K clusters. 2. (R-)Affecter les objets un cluster suivant un critre de minimisation des distances (gnralement selon une mesure de distance euclidienne).

II.

DESCRIPTION DES ALGORITHMES

Fuzzy C-Means (FCM) est un algorithme de classification non-supervise floue. Issu de lalgorithme des C-moyennes (C-means), il introduit la notion densemble flou dans la dfinition des classes : chaque point dans l'ensemble des

2 3. Une fois tous les objets placs, recalculer les K centrodes. 4. Ritrer les tapes 2 et 3 jusqu ce que plus aucune raffectation ne soit faite. III. PRESENTATION DES TOOLBOX Il est possible de tlcharger gratuitement des toolbox Matlab implmentant les fonctions que nous recherchons. Parmi les toolbox que nous avons trouves sur le net, figurent essentiellement les suivantes : - Fuzzy Clustering and Data Analysis Toolbox, de Balazs Balasko, Janos Abonyi et Blazs Feil. Cette toolbox contient une fonction implmentant lalgorithme Fuzzy C-Means, que nous ne sommes toutefois pas parvenus utiliser car elle ncessite lutilisation de Visual Studio. - Fuzzy Logic Toolbox implmente sous Matlab 7. Cette toolbox contient la fonction fcm.m, implmentant le FCM. - Statistics Toolbox implmente sous Matlab 7. Cette toolbox contient la fonction kmeans.m, facile prendre en main et bien documente. Nous utiliserons cette fonction pour effectuer les tests sur lalgorithme k-means. - My Clustering Toolbox de David Corney. Cette toolbox contient entre autre les fonctions dcFuzzy.m, dcKmeans.m qui implmentent les algorithmes que nous tudions. La fonction qui implmente FCM nest pas vidente prendre en main, cest pourquoi notre choix sest port sur la fonction dcrite ci-dessous. - Nous avons trouv un code excutable sous Matlab (disponible sur le site de lEcole Nationale Suprieure des Tlcommunications de Paris, dont le lien est mentionn dans les rfrences), qui implmente lalgorithme FCM. La fonction Matlab fournie, f_seg.m, tant facile utiliser, nous nous en sommes servi pour effectuer les tests. IV. TESTS SUR MATLAB Les tests sont effectus sous Matlab, par lutilisation des fonctions f_seg.m et kmeans.m. Nous comparerons les deux algorithmes dune part, de manire subjective, en commentant les images rsultantes et dautre part, de manire objective, par lutilisation dun logiciel de reconnaissance optique de caractres (OCR). Les tests ont t effectus avec un nombre K de clusters valant systmatiquement 2, 3, 5 et 10. Nous avons pu observer que le meilleur rsultat, tant dun point de vue dtection de caractres que dun point de vue temps de calcul, correspond gnralement la dtection de 2 clusters. Il apparat tout fait logique que cette valeur de K soit la plus adquate, puisque lon constatera dans toutes les images testes, quil y a essentiellement deux objets : le fond et les caractres (chiffres et mots). De ce fait, nous exposerons essentiellement les rsultats pour K=2, les autres ne seront que brivement dcrits. La premire tape pour lutilisation des fonctions est de convertir les images mises notre disposition selon le code RGB, par la fonction Imread(). Pour la fonction kmeans.m, il est ncessaire deffectuer un pr-traitement qui consiste convertir la matrice de pixels en un vecteur constitu des niveaux de gris pour chaque couleur de base (rouge, vert et bleu). Lorsque lalgorithme a t appliqu au vecteur, on peut ensuite le reconvertir en une matrice constitue de la valeur associe chaque cluster, pour chaque pixel de limage. En ce qui concerne f_seg.m, il suffit de coder limage au format RGB, par la fonction Imread() de Matlab. La fonction renvoie une matrice de pixels constitue de la valeur moyenne de la couleur (code en RGB) associe au cluster qui leur correspond. La premire image est constitue caractres qui forment le mot essentiellement du vert. Le fond de plusieurs nuances de bleu. Les tests les rsultats suivants : de 130x42 pixels. Les study contiennent limage est constitu de sur cette image donnent

Figure 1

Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

Les deux algorithmes donnent des rsultats trs similaires (Figure 1). On remarque cependant lapparition dune tche sous le d de study pour le FCM. La reconnaissance laide de lOCR du nom de Fine Reader 8 (disponible gratuitement en version dessai) marche correctement pour FCM, alors que le rsultat est studv pour k-means. Lorsque lon augmente le nombre de clusters, on constate que les contours des caractres forment de nouveaux clusters et le fond de limage est progressivement divis en plusieurs parties. La figure 2 montre le rsultat obtenu par lapplication de k-means avec 2, 3, 5 et 10 clusters sur limage prcdente :

Figure 2

k-means 2, 3, 5 et 10 clusters.

La deuxime image que nous avons teste comporte 1355x370 pixels. On distingue le mot pepsi en caractres blanc, sur un fond constitu de diverses nuances de bleu, ainsi que du rouge, du noir et du blanc. On peut a priori se douter quune

3 dtection du mot sera difficile, compte tenu de la confusion entre les parties blanches du fond et les caractres. Lapplication des deux algorithmes nous donne le rsultat suivant :

Figure 5 Figure 3 Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

FCM donne une segmentation peu performante (Figure 3), tant donn la similitude entre certaines parties du fond de limage et des caractres. K-means donne un rsultat un peu plus intressant, mais tous deux ne permettent cependant pas didentifier le mot pepsi laide de lOCR utilis. La troisime image teste reprsente une affiche de publicit pour Apple Bank , de rsolution 1280x960.

Le fond de limage tant trs uniforme, la segmentation par FCM et k-means donnent un excellent rsultat (Figure 5). La dtection par OCR nous donne bien le mot RACE . La cinquime (75x55 pixels) est constitue des chiffres 22 . On voit que les contours des chiffres sont trs flous et la partie suprieure de limage est lgrement fonce.

Figure 6

Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

Figure 7

Fuzzy C-means (gauche) et k-means (droite) avec K=3.

Figure 4

Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

Les deux algorithmes donnent un trs bon rsultat. La dtection par OCR permet didentifier tous les caractres. Etant donn la rsolution de limage, les tests effectus pour k-means avec 5 et 10 clusters ncessitent un temps de calcul trs lev. Nous avons remarqu que FCM est un peu plus rapide et ne donne un temps de calcul trop important qu des valeurs de K suprieures environ 15. Le problme du temps de calcul et de la grande quantit de mmoire ncessaire pour les deux algorithmes sexplique par le fait quil sagit de mthodes itratives. Ceci ne porte cependant pas consquence dans notre application, puisque le nombre dobjets prsents sur les images testes nexcde jamais 10. La quatrime image (352x150) est constitue dun fond rose sur lequel on distingue le mot race en bleu. On remarque limage est un peu floue, mais ceci ne pose aucun problme lors de la segmentation.

La partie sombre de limage rend lutilisation des deux algorithmes difficile ; dune part, avec k=2 (Figure 6), on ne distingue pas clairement la partie suprieure de 22 et dautre part, quand on augmente le nombre de clusters (exemple avec k=3 en Figure 7), on rsout ce problme mais on perd alors la dtection de la partie infrieure du 22 , de sorte que le rsultat de la dtection par OCR donne ?? . Laugmentation du contraste, par la fonction Matlab imadjust(), ne permet pas la rsolution de ce problme. Cet exemple illustre le fait que les objets segmenter doivent avoir une couleur suffisamment uniforme pour que la dtection soit envisageable. La sixime image teste (426x94 pixels) contient le mot redback . Intuitivement, on peut dj imaginer que le reflet sur la partie red va avoir un trs mauvais effet sur la dtection. Lapplication de FCM et k-means donne le rsultat suivant (Figure 8) :

4 mthode ; dautre part, ils requirent un temps de calcul souvent lev, du fait de leur nature itrative. Nous avons pu constater que ces deux algorithmes savrent efficaces lorsque les objets de limage (essentiellement le fond et les caractres) sont clairement spars. La cinquime image nous indique que lorsque les contours ne sont pas bien dfinis, la segmentation devient difficile. La sixime image teste montre clairement quune variation trop importante de la luminance (reflet sur une partie de limage,) rend impossible lidentification complte des caractres aprs segmentation. Dans ce cas-ci, le problme a pu tre rsolu en augmentant significativement le contraste de limage. Nous avons mesur le temps dexcution des deux algorithmes pour chaque image et il en ressort que FCM est plus rapide pour les images de grande rsolution et que kmeans est plus appropri dans le cas des images faible rsolution. On remarque que le temps de calcul nest jamais identique pour chaque application des algorithmes, tant donn quil est influenc par la position initiale des centrodes, qui est calcule alatoirement. VI. CONCLUSION
Figure 9 Application de Fuzzy C-means (gauche) et k-means (droite) avec K=2, aprs augmentation du contraste.

Figure 8

Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

On voit une sorte de reflet sur la partie red de limage qui comme explicit prcdemment, lefface littralement de limage rsultant de la segmentation. Ds lors, il nest possible didentifier que les caractres back sur cette image. Laugmentation du nombre de clusters amliore lidentification visuelle des caractres, mais napporte nanmoins aucune amlioration quant la dtection par OCR. Le problme du reflet peut tre rsolu par action sur la luminance sur limage. Aucune fonction Matlab ne permet de modifier la luminance de faon faire disparatre le reflet, mais nous pouvons toutefois agir sur le contraste de limage par la fonction imadjust(). En augmentant le contraste (voir Figure 9), on constate que les caractres sont de plus en plus distincts, de sorte que la segmentation donne un bien meilleur rsultat. Ds lors, la dtection par OCR du mot complet redback devient possible.

La septime et dernire image teste (de rsolution 315x67) est compose dun fond noir et du mot DANCE , de couleur orange. La segmentation donne les rsultats suivants (Figure 9) :

Figure 10

Image originale (au dessus), application de Fuzzy C-means (gauche) et k-means (droite) avec K=2.

Cette image est lune des plus faciles segmenter. En effet, il suffit de crer un cluster pour le fond noir et un cluster pour les caractres oranges. Le nombre de clusters le plus logique dans ce cas-ci est donc K=2. Ceci se confirme par les rsultats obtenus aprs segmentation ; on distingue clairement le mot DANCE et on peut ds lors dtecter par OCR le mot prcit. V. OBSERVATIONS GENERALES De manire gnrale, les deux algorithmes tudis donnent un bon rsultat mais prsentent cependant deux inconvnients : dune part, ils ncessitent le choix pralable du nombre K de clusters, ce qui rend impossible lautomatisation de la

Nous avons test les segmentations Fuzzy C-means et Kmeans sur une srie dimages en couleur, sous Matlab. Aprs un traitement des fonctions utilises, nous avons pu observer que, de manire gnrale, les algorithmes tudis permettent une bonne segmentation. Nanmoins, les images comportant des dfauts (reflet, partie sombre, flou,) donnent un rsultat qui semble visuellement correct mais ne permet pas une bonne dtection des caractres par OCR. Nous avons constat que les deux algorithmes ncessitent une connaissance pralable du nombre de clusters dterminer, ce qui rend impossible une ventuelle automatisation du processus. Par leur caractre itratif, ils savrent inefficaces lorsque le nombre de clusters devient important. Nous pouvons donc conclure que les algorithmes Fuzzy Cmeans et K-means sont efficaces pour la dtection de caractres, mais ne sont pas appropris des images contenant un grand nombre dobjets. Dun point de vue temps de calcul, FCM savre tre plus efficace pour des images haute rsolution alors que k-means est plus adapt aux images de faible rsolution.

5 REFERENCES
- Mohamed Hachama et Bohoua-Nasse Franck-Olivier, Une segmentation grossire et rapide des images en couleurs, Ecole Nationale Suprieure des Tlcommunications de Paris, DEA MVA 2003-2004. http://www.tsi.enst.fr/tsi/enseignement/ressources/mti/gric/discuss.htm - Samuel Drulhe et Martial Hue, Segmentation des images couleurs : mthode dOhlander, Price et Reddy, Telecom Paris, 2004. http://www.tsi.enst.fr/tsi/enseignement/ressources/mti/OPR/index.php#opr - David Corney, Clustering with Matlab, UCL Computer Science Department. http://www.cs.ucl.ac.uk/staff/D.Corney/ClusteringMatlab.html - Martine Collard et Nicolas Pasquier, Fouille de donnes : Classification non supervise, Universit de Nice Sophia-Antipolis, Laboratoire I3S. http://deptinfo.unice.fr/~pasquier/m2miage/fd/clustering.pdf - Jean-Marie Beaulieu, Reconnaissance des formes : Classification et regroupement, dpartement dinformatique, Universit Laval, 2002. http://www.ift.ulaval.ca/Info_Courante/Vitrine/Syllabus_IFT64321.pdf - H. D. Cheng, X.H. Jiang, Y. Sun & J. Wang, Color image segmentation : advances and prospects, Pattern Recognition, vol. 34, no. 9, 2001, pp. 22592281. http://www.mathworks.com/products/fuzzylogic/demos.html?file=/products/d emos/shipping/fuzzy/fcmdemo_codepad.html - P. Lambert, H. Grecu, A quick and coarse color image segmentation, ICIP, 14-17 Septembre, 2003. http://www.elsevier.com/wps/find/bookdescription.cws_home/675242/descrip tion#description - Lilia Lazli et Mohamed Tayeb Laskri, Nouvelle mthode de fusion de donnes pour lapprentissage des systmes hybrides, Universit Badji Mokhtar dAnnaba, 2003. http://www-direction.inria.fr/international/arima/CARI04/pdf/CARI04_07.pdf

Vous aimerez peut-être aussi