Professional Documents
Culture Documents
Rapport du stage Master 2 Recherche Pour lobtention du diplme du Master 2 Recherche en Informatique et Tlcommunication DETECTION DES CHANGEMENTS POUR LES OBSERVATOIRES PHOTOGRAPHIQUES DU PAYSAGE Prsent par Mario Youssef GHARIB Directeur de recherche M. Alain CROUZIL M. Jean-Baptiste PUEL Soutenu le 7 Juillet 2011 devant le jury : Responsable du stage M. Bilal CHEBARO Rapporteur M. Ahmad GHADDAR Examinateur M. Mohammad KOBEISSI
Page 1
REMERCIEMENTS
Je tiens en premier lieu remercier Dieu, qui ma toujours donn la force pendant toute la dure de ce stage, et bien qui ma donn le succs en ce master de recherche. Je tiens remercier M. Ali AWADA, qui ma entour pendant la dure de ce stage de recherche. M. Ali AWADA a toujours su mindiquer de bonnes directions de recherche quand il le fallait, me laisser chercher seul quand il le fallait. Mes remerciements vont galement M. Alain CROUZIL, Maitre de confrence luniversit Paul Sabatier et M. Jean-Baptiste PUEL, son collgue, qui sans tre mes directeurs de ce stage de recherche, ont grandement contribu ma formation en rpondant avec patience mes questions de jeune naf. Un grand merci Dr. Antoine CHARBEL et Mme Layla HARB qui mont aid et mont encourag pendant toute cette anne acadmique. Egalement, je remercie profondment Mme Ghada ABI-TAEH pour toutes les corrections dorthographe de ce manuscrit. Je suis galement trs reconnaissant aux membres du jury, M. Bilal CHEBARO, M. Ahmad GHADDAR et M. Mohammad KOBEISSI Christophe pour toutes leurs questions, remarques et suggestions. Un grand merci mes amis, en particulier Dr. Malko DUNYA, M. William MANSOUR, M. Habib, M. Jad et Mlle Mira MRAD, M. Bahjat et Mlle. Caroline BABI, Mlle Marie KELLO, M. Abboud, M. Imad et M. Adel SYRANY, M. Hani MOUKHTAR, M. Charbel GERGES, Mlle Marie et Stphanie DOCTORIAN, Mlle Berna ADWAR, M. Kamil MIRZA et tous les autres amis. Un remerciement spcial Mlle. Lara YOUNES qui maid pendant toute cette anne acadmique, pout tous ses renseignements et ses remarques. Merci ma famille, notamment mes parents Youssef et Samira, mes frres Jean, Imad et Abdel-Massih dont laffection ma rendu la vie vraiment plus agrable, et qui ont eu la gentillesse de toujours sintresser ce que je faisais.
Page 2
RESUME
Une des importantes thmatiques de lanalyse dimages est de dtecter les changements partir dimages prises des moments diffrents. Lobjectif de notre travail est de dtecter des changements partir dun observatoire photographique du paysage, constitu dimages prises au sol des grands intervalles de temps en utilisant des mthodes de classification de pixels. Dans un premier temps, on discutera les diffrentes mthodes de classification, ensuite, on value les performances de ces mthodes sur des sries de clichs dun observatoire photographique du paysage et enfin on proposera une mthode permettant de mettre en vidence les changements significatifs .
ABSTRACT
One of important thematic of image analysis is the detection of changes in images taken at different moments. The objective of this work is to detect changes from a landscape photographic observatory that consists of images taken from the ground with a large scale of time using methods of supervised classification of pixels. First, we discuss different methods of classification, then, we evaluate the performances of these methods on a series of photo from a landscape photographic observatory and finally we propose a method that highlights the significant changes.
MOTS-CLES
Analyse dimages, dtection des changements, mthodes de classification de pixels.
Page 3
Page 4
Page 5
CHAPITRE I
INTRODUCTION
Une des importantes thmatiques de lanalyse dimages est de dtecter les changements partir dimages prises des moments diffrents. Il existe de nombreuses applications, citons la tlsurveillance, limagerie mdicale, etc. Notre objectif est de dtecter des changements significatifs, pour des observatoires photographiques du paysage, dans des sries de clichs, reprsentant un certain territoire, prises au sol des grands intervalles de temps. Ces sries de clichs peuvent tre soit des sries rcentes et homognes ralises ds le dpart, soit des sries qui dmarrent avec des images anciennes. Pour les observatoires photographiques du paysage, la dtection des changements soulve des problmes particuliers. Dune part, les grands intervalles temporels (des carts temporels trs important de plusieurs annes peuvent exister entre deux images successives de la squence) entranent beaucoup de changements dans les images, parmi lesquels il faut extraire ceux qui sont significatifs. Les mthodes habituelles (Simple Differencing, Significance and Hypothesis Tests, etc.), ne donneront peut-tre pas satisfaction puisquelles risquent de dterminer que tous les pixels de limage ont chang. Dautre part, si une image a t prise plusieurs annes aprs une autre image, les positions, les orientations et les rglages des appareils photographiques ne sont pas les mmes (ce qui complique la dtection des changements et soulve les problmes de calibrage de capteur et de recalage dimage troitement lis aux aspects gomtriques). On ajoute le problme de retrouver les points de vue et les cadrages dorigine pour reconduire les prises de vue. La comparaison de clichs d'un mme lieu pris des dates diffrentes, peut faire appel : L'extraction d'indices visuels (routes, btiments, horizon, relief, vgtation, etc.), La reconnaissance d'objets, Des mesures de similarit pour les images, Des comparaisons gomtriques (apparitions, disparitions, transformations, etc.), Du recalage gomtrique, etc.
Page 6
La difficult, qui se pose pour lanalyse dimages existantes, peut tre rduite pour de nouvelles images, en utilisant la technique de rephotographie (la reconduite de prise de vue), qui consiste assister loprateur afin quil puisse procder une prise de vue dans les conditions gomtriques les plus proches possibles de celles dans lesquelles a t prise une photographie ancienne. La dtection des changements partir des mthodes qui sont bases sur les variations du niveau de gris ou de la couleur des pixels, ont tendance dtecter des changements partout dans limage, alors quune alternative consiste commencer par effectuer une classification des pixels en composants du paysage (par exemple : le ciel, les arbres, lherbe, leau, la neige, les rochers, les btiments, les murs en pierre, la chausse, etc.) c'est--dire appliquer une mthode de classification, avant dvaluer lvolution de cette classification. Il existe de nombreuses mthodes de classification supervise, o un oprateur donne des chantillons de diffrentes classes recherches. Cest ce qui explique lide de passer par une classification des images en composants du paysage dans un premier temps et puis de dterminer les pixels o un changement de classe significatif, selon lutilisateur de lobservatoire, sest produit. Les principaux objectifs de ce travail de recherche sont les suivants : 1. effectuer un tat de lart des mthodes de classification des pixels dune image ; 2. valuer les performances de ces mthodes sur des sries de clichs provenant dobservatoires photographiques du paysage ; 3. proposer une mthode permettant de mettre en vidence les changements significatifs dans une srie de photographies. Dans la section II, on prsente les mthodes de classification classiques des pixels dune image. Dans la section III, on va effectuer ltat de lart des mthodes de classification semisupervises : lAuto-Apprentissage (Self Training), le Co-Training (Co Training) et la Machine Vecteurs de Supports semi-supervise (Semi Supervised Support Vector Machines). Dans la section IV, on dfinit ce quest un observatoire photographique du paysage et la technique de rephotographie. Dans la section V, on value les performances de ces mthodes semisupervises sur une srie de clich provenant dun observatoire photographique du paysage. Dans la section VI, on propose une mthode pour mettre en vidence des changements significatifs et enfin, dans la section VII, on propose un travail futur pour amliorer la mthode de dtection des changements significatifs.
Page 7
CHAPITRE II
Comment la classification fonctionne ? En donnant comme entre dun algorithme de classification, un ensemble dapprentissage qui diffre dans chaque cas de classification, et dautres paramtres. Alors lensemble dapprentissage est, dans le cas de la classification [1] Non-supervise : compltement constitu de donnes non libelles :
Page 8
Les donnes que ce soit libelles ou non libelles reprsentent des objets spcifiques (pixels), et ils sont reprsents, chacun, par un vecteur dattribut de dimension , dans lequel chaque dimension est appel un attribut (feature) et reprsente le nombre des attributs. [1] Le vecteur dattributs de dimension reprsente la donne . reprsente le reprsente le attribut de la donne . attribut de la donne . du pixel , est not : , tel que :
Dans les parties ci-dessous on va dfinir les deux types de classifications classiques (la classification non-supervise et la classification supervise), desquelles on dfinit le but de chaque mthode, les diffrentes tches qui peuvent tre ralises et la fin on prcise des algorithmes qui limplmentent.
Tant que le nombre de groupe est plus grand que , faire Trouver la paire de groupes les plus proches minimale au sens de ) Combiner et pour former un nouveau groupe ; , ; (cest--dire dont la distance est
Fin tant que Sortie : un arbre binaire illustrant la manire dont les groupes ont t combins.
Page 9
Lalgorithme fonctionne de la faon suivant : initialement chaque instance/donne est place dans un singleton, ensuite lalgorithme va dcider chaque itration quelle paire de groupes doit tre combine en un nouveau groupe, en fonction de la distance entre chaque groupe, (on choisit la distance minimale entre deux groupes), puis il refait ce travail nouveau tant que le nombre de groupes est plus grand que le nombre de Clusters . Il existe deux manires pour calculer la distance entre les groupes : [1] [19] Dans le cas de singletons : on peut utiliser la distance Euclidienne, qui est dfinie par :
Dans le cas des groupes contenant plus quun lment, on peut utiliser lune des trois possibilits : a. Lien minimal (Single-Linkage) : cest la distance minimale entre les couples dlments de chaque Cluster, dfinie par :
b. Lien Maximal (Complete-Linkage) : idem, mais avec cette fois la distance maximale, dfinie par :
c. Lien Moyenne (Average-Linkage) : cest la distance moyenne entre les couples dlment de chaque Cluster, dfinie par :
Dans notre cas dobservatoire photographique du paysage, on ne sintresse pas ce type de classification puisquil ncessite la prsence dun analyste qui va donner des chantillons de diffrentes types de classes dinformation, cest quon va dfinit dans la partie suivante.
Page 10
Il existe de nombreuses mthodes de classification supervise, o un oprateur donne des chantillons de diffrentes classes recherches, citons : k plus proches voisins, classifieur baysien naf, machine vecteurs de support (SVM), etc. [1] La classification supervise commence donc par lidentification des classes dinformations qui sont ensuite utilises pour dfinir les classes spectrales qui les reprsentent. Soit le domaine des donnes, et distribution de probabilit conjointe sur le domaine des classes et soit une . En donnant un ensemble dapprentissage
, lapprentissage supervis va effectuer lapprentissage dune fonction : . Le but est que lequel . [1] prdise une classe correcte sur des futures donnes , dans
Labrviation signifie que des variables indpendantes et identiquement distribus sont des variables alatoires, o : elles ont toutes la mme loi de probabilit, et elles sont mutuellement indpendantes (cest--dire, nayant aucune influence lune sur lautre). [21] Comme on a dj dit, il existe de nombreux classifieurs, on sintresse au .
Algorithme :
Entre : Ensemble dapprentissage : Un nombre de voisinages : Une fonction de distance : Test de linstance : Trouver les donnes ;
)[1]
au sens de la distance
Sortie :
Pratiquement, lensemble dapprentissage reprsente les pixels (chantillons) quun oprateur identifie, reprsente la distance (ex. Euclidienne) , et reprsente le pixel quon souhaite classifier. Lalgorithme va trouver instances des chantillons les plus proches de au sens de et enfin, la sortie de lalgorithme est de telle faon quon dpartage les ex-quo alatoirement. Notons que dpartager les ex-quo alatoirement signifie quen cas de plusieurs possibilits de valeur gale, lalgorithme va choisir une de ces possibilits de manire alatoire. (Voir figure 2.1.)
Page 11
La bibliothque de Matlab contient la mthode de classification supervise suivante : [29] [ class ] = knnclassify ( Sample , Training , Group , K , Distance , Rule ) ; Cette mthode permet de classifier les donnes non-libelles, en prcisant : Sample : lensemble des donnes non-libelles. Training : lensemble des donnes libelles. Group : les classes correspondant de Training. K : le nombre de voisinage K et les donnes libelles. Distance : la distance mtrique entre les donnes. Rule : identifie la manire dont le partage des ex-quo est effectu.
Lobjectif est dappliquer une classification supervise sur des sries de photographies, aussi loprateur va identifier, dans un premier temps, des pixels de chaque classe (ciel, eau, arbres, etc. sont des classes discrtes), mais cela ncessite beaucoup de temps (pour collecter les donnes), et il est parfois difficile de le faire. Dans notre cas, la taille de lensemble dapprentissage est beaucoup trs leve, notons que la taille minimale dun ensemble dapprentissage est gale la taille dune photo provenant dune srie photographique, alors si on souhaite appliquer une classification supervise, on a besoin davoir une annotation complte de la photographie qui constitue lensemble dapprentissage ce qui est une tche trs difficile faire, cest pour cela que lon va passer une nouvelle mthode de classification qui est une extension de la classification supervise. On parle de la classification semi-supervise.
Page 12
CHAPITRE III
On a cit ces exemples juste pour illustrer que lobtention des donnes non-libelles est trs facile, alors toutes ces donnes sont non-libelles et qui sont faciles obtenir et collecter, en grandes quantits. La difficult rside dans la connaissance des labels de ces donnes pour certaines tches de prdictions, ce qui ncessite une annotation humaine parfois trs couteuse. [2] Dans les parties ci-dessous on va dfinir ce quest une classification semi-supervise, on va voir comment il est possible dapprendre quelque chose de donnes non-libelles et enfin on va dfinir la diffrence entre lapprentissage inductif et transductif. 1. Dfinition La classification semi-supervise est une extension de la classification supervise. La classification supervise est effectue par un apprentissage avec des donnes libelles, tandis que cette nouvelle classification est ralise, non pas seulement avec des donnes libelles, mais aussi avec des donnes non-libelles. Lensemble dapprentissage de la classification semisupervise, est constitu de donnes libelles 2. Hypothse Lhypothse est que le nombre de donnes libelles (difficiles obtenir) va tre beaucoup plus petite que le nombre de donnes non-libelles (disponibles en grandes quantits et sont simple collecter), cela va nous permettre de rduire le travail dtiquetage. Lide de la classification semi-supervise est deffectuer lapprentissage dun classifieur sur des donnes libelles et non-libelles, de telle sorte quelle soit meilleure que la classification supervise. [1] et non libelles . [1]
Page 13
3. Apprentissage Comment la classification semi-supervise est-elle possible ? Quest ce quon peut apprendre de donnes non-libelles ? Dans le cas de photographies, quest ce quon peut apprendre des pixels dont on ne sait pas de quel composant paysager ils proviennent ? Les rponses toutes ces questions rsident dans les hypothses qui font le lien entre la distribution des donnes non-libelles et des classes cibles . 4. Exemple dapprentissage [1] Dans la figure ci-dessous, on prsente un exemple simple pour montrer comment lapprentissage semi-supervis est possible, et pourquoi parfois la dcision est meilleure dans la classification semi-supervise.
-1.5
-1
-0.5
0.5
1.5
Figure 3.1. Un exemple simple illustrant comment lapprentissage semi-supervise est possible. Dans la figure lensemble dapprentissage supervis est uniquement constitu de deux donnes libelles, un libell rouge et lautre bleu, alors la meilleure estimation de la ligne de dcision est pour , donc toutes les donnes non-libelles qui sont gauche de cette ligne vont tre classifies rouge, et les autres vont tre classifies bleu, tandis que lensemble dapprentissage semi-supervis est constitu de toutes les donnes (libelles et non-libelles), or lhypothse est que les donnes dans chaque classe forment un groupe cohrent, aussi lestimation semi-supervise de la ligne de dcision va tre entre les deux groupes pour .
Rsultat de lapprentissage supervis
-1.5
-1
-0.5
0.5
1.5
-1.5
-1
-0.5
0.5
1.5
Page 14
5. Diffrence type dapprentissage semi-supervis (inductif et transductif) [1][2] On dispose dun ensemble dapprentissage de donnes libelles donnes non-libelles tel que : et , . , . et de
Lapprentissage inductif effectue lapprentissage dune classifieur pour que soit une bonne prvision sur les donnes futures, au del de
Lapprentissage transductif effectue lapprentissage dun classifieur pour que soit une bonne prvision sur les donnes non libelles
6. Mthode dapprentissage semi-supervise Il existe de nombreuses mthodes dapprentissage semi-supervis, citons : lAutoApprentissage (Self-Training), le Co-Apprentissage (Co-Training), les Machines vecteur de support (SVM), les Modles Gnratifs (Generative Models), les Modles Base de Graphes (Graph Based SSL). On sintressera seulement au trois premires mthodes. Dans les parties suivantes, on va effectuer ltat de lart des trois premires mthodes de classifications semisupervises.
Page 15
Lalgorithme dauto-apprentissage fonctionne de la faon suivante : il rentre dans une boucle, il entrane avec , puis est utilis pour libeller les donnes de , ensuite ces donnes de vont tre ajoutes aux donnes de (qui sont avec un haut degr de confiance) et enfin le classifieur est r-entran avec les donnes libelles. La procdure est refaite jusqu la satisfaction dun critre darrt, par exemple lorsque est vide. [10] Lhypothse de lauto-apprentissage est que ses propres prdictions, tendent tre correctes. En revanche, une erreur faite par , peut se renforcer elle-mme et gnrer des donns incorrectement libelles ( cause du petit nombre des donnes libelles). Avec ces rsultats incorrects litration suivante va conduire un rsultat encore plus mauvais, cest pour cela quil est ncessaire davoir un nombre grand de donnes libelles dans chaque classe. Une solution heuristique propose pour viter cette erreur est de ne pas libeller certaines donnes non-libelles si la confiance ne dpasse pas un certain seuil de dcision. Lavantage de lauto-apprentissage est quil est simple utiliser et que le choix de la fonction est laiss ouvert (wrapper method), cest--dire que peut tre un algorithme trs simple comme lalgorithme ou bien un algorithme plus compliqu. Voil un exemple [1] concret dauto-apprentissage :
Lalgorithme fonctionne de la faon suivante : il entre dans une boucle (jusqu ce que soit vide) il slectionne de , le-plus-proche-voisin de , puis il libelle la donne , et enfin il retire de et lajoute , et boucle nouveau pour slectionner un autre lment de , leplus-proche-voisin de .
Page 16
Itration 1
Itration 2
Itration 3
Rsultat final
de lapprentissage semi-supervise.
Page 17
Initialement : Chaque donne contient deux vues : On cre deux copies de Tant que est non vide, faire avec avec et ) aux ) aux et avec ; :
Effectuer lapprentissage de deux classifieurs, Appliquer Ajouter Ajouter et sur (ou bien classifier
) sparment ; de de ; ;
Notons que le classifieur de la vue-1, not , sintresse seulement la premire vue et ignore la deuxime vue en lui donnant la donne complte. De mme pour le [1] classifieur de la vue-2, not . Lalgorithme fonctionne de la faon suivante : Initialement on cre deux copies ( et ) de lensemble des donnes libelles de lensemble dapprentissage. Il entre dans une boucle (jusqu ce que soit vide), il effectue lapprentissage des deux classifieurs et avec et , respectivement, puis il va les appliquer sur , il ajoute les -plus fiables donnes procdure nouveau. Le but aprs le Co-Apprentissage, est dutiliser les deux vues ensemble pour permettre aux donnes non-libelles daugmenter un ensemble (beaucoup plus petit) de donnes libelles. et respectivement et enfin il les retire de et refait la
Page 18
Figure 3.3. Un exemple de la frontire de dcision linaire SVM. Cette figure prsente un ensemble dapprentissage de donnes compltement libelles (en rouge et en bleu), dont le but est de sparer ces donnes uniquement en deux classes. 1. Dfinitions La frontire de dcision linaire : dans la figure cest la ligne en gras, permettant de sparer les donnes libelles en deux classes, or cette ligne est utilise de telle faon que la distance entre elle et la plus proche donne (bleu ou rouge) soit maximale. Dans la figure la frontire de la dcision linaire est la ligne noire, et non pas la ligne verte. La marge gomtrique de la dcision : elle est reprsente par deux lignes pointilles. En dautre terme, elle est le double de la valeur absolue de la distance entre la frontire de dcision et les vecteurs de supports. Les vecteurs de supports : ce sont les donnes les plus proches de la frontire de dcision. Ce sont les donnes qui se trouvent sur les deux lignes pointilles.
2. La frontire de dcision Supposons quon dispose de deux classes et que la frontire de dcision est linaire en . Elle est note et dfinie par lensemble suivant : o :
Page 19
reprsente la dimension du vecteur dattribut . reprsente le vecteur de paramtres qui spcifie lorientation et lchelle de la frontire de dcision. dtermine le dplacement de .
On va travailler sur lhypothse que lensemble dapprentissage est spar linairement, (cest--dire, il existe au moins, une frontire de dcision linaire qui peut sparer tous les donnes libelles). La frontire de dcision est toujours perpendiculaire et est dfinie par
De telle faon quelle va couper lespace des attributs en deux moitis, une telle que: (dsignant le ct positif) et lautre telle que (dsignant le ct ngatif). On peut prdire les labels des donnes laide du signe de , dfini par , alors reprsente les donnes positivement libelles, et reprsente les donnes ngativement libelles. La distance entre une donne et la frontire de dcision en valeur absolue est :
Or elle est positive si une donne libelle positivement (respectivement ngativement) et elle se situe dans le ct positif (respectivement ngatif). 3. La marge gomtrique de la dcision linaire La marge gomtrique reprsente la distance minimale (en valeur absolue) entre la frontire de dcision et les vecteurs de supports, et elle est dfinie par:
Le problme est de trouver la frontire de dcision qui va maximise la marge gomtrique, (cest--dire, trouver les paramtres qui vont la maximiser) et est dfinie par :
Page 20
Figure 3.4. Une illustration de la frontire de dcision linaire. On constate quon peut arbitrairement dcaler les paramtres comme exemple : , alors si on multiplie , prenons par , on va
avoir le mme rsultat . Pour liminer cette nuance de degr de libert, on va introduire une condition qui ncessite une donne proche de la frontire de dcision (vecteur de support) doit satisfaire , notons que toutes les donnes libelles doivent satisfait : . Alors lquation peut tre rcrite et dfinie par :
De plus, maximiser
Jusque l, on a admis lhypothse que la frontire de dcision est linaire et que lensemble dapprentissage est spar linairement (cest--dire que les contraintes peuvent tre toutes satisfaites).
Page 21
4. La marge souple de SVM On va passer au cas de nimporte quel ensemble dapprentissage, mme ceux qui ne sont pas spars linairement (cest--dire, au plus une contrainte peut ne pas tre satisfaite). Pour cela, on va allouer la condition pour certaines donnes, mais on va pnaliser le montant, ce qui est effectu par lintroduction de slack variable chaque donne. Le slack variable pour la donn est la mesure de la dviation de lidal: [15]
Lorsque , alors les donnes se trouvent sur le bon ct de la frontire de dcision, au dehors de la marge gomtrique. Lorsque , alors les donnes se trouvent aussi sur le bon ct de la frontire de dcision, mais elles se trouvent au sein de la marge gomtrique. Lorsque , alors les donnes se trouvent sur le mauvais ct de la frontire de dcision, que ce soit au sein ou au dehors de la marge gomtrique.
Figure 3.5. Un exemple de la frontire de dcision linaire SVM, en utilisant slack variable Alors lquation peut tre rcrite et dfinie par :
Notons que est un paramtre qui nous permet de satisfaire la contrainte de la marge gomtrique pour chacune des donnes, en dautre terme si est proche de , on ne paye pas beaucoup pour les donnes qui violent la contrainte de la marge, mais si est proche de , on paye beaucoup pour les donnes qui violent la contrainte de la marge. Alors on va essayer de trouver le maximum de la marge gomtrique, en autorisant quelques donnes dtre sur le mauvais ct de la frontire de dcision, mme au sien de la marge gomtrique.
Page 22
Et on veut le rsoudre en utilisant la mthode classique des multiplicateurs de Lagrange, alors on va introduire une nouvelle variable appel la multiplicateur de Lagrange, pour rcrite le problme en : . Pour rsoudre lquation on va utiliser la mthode classique des multiplicateurs de Lagrange, do lquation est rcrite et dfinie par :
Or cette quation doit tre minimise par rapport 2. Formulation duale de SVM [23]
On va utiliser les multiplicateurs de Lagrange pour faire passer lquation sa formulation duale, donc pour minimiser lquation par rapport et , on va annuler ses drives partielles :
Page 23
Dmonstration :
3. Lastuce du noyau (Kernel trick) [24] On a vue que lorsque lensemble dapprentissage nest pas spar linairement, on peut introduire des slack variables pour rsoudre ce problme (la marge souple de SVM), mais il existe des cases dans lequel il nexiste les classifieurs linaires ne sont pas appropris, alors pour rsoudre ce problme, on va introduire ce que lon appelle lastuce du noyau (en anglais le Kernel Trick). Supposons quon dispose dun ensemble dapprentissage qui nest pas spar linairement, distribu dans un espace de dimension , supposons aussi quil nexiste pas un classifieur linaire appropri qui va le sparer, alors pour rsoudre ce problme, on va utiliser la technique de lastuce du noyau qui consiste utiliser un classifieur linaire pour rsoudre ce problme non-linaire, en transformant lespace de dimension , en un espace de plus grande dimension , alors les donnes de ce nouvel espace peuvent tre spares. En dautres termes, en transforme le problme non rsolue par un classifieur linaire, en un problme rsolu par un classifieur linaire, en transformant lespace initial en un espace de dimension augmente. La fonction de transformation est note par . 4. Rsum Le classifieur et lapprentissage de SVM dans lespace transform sont : Le classifieur en formulation primale :
Page 24
On dnote noyaux employs avec SVM, citons : Le noyau linaire : Le noyau polynomial : Le noyau gaussien :
5. Avantage de la formulation duale [24] La complexit de la rsolution de la formulation primale est , tandis que pour la formulation duale est , donc si la taille de lensemble dapprentissage est beaucoup trs leve que celle de la dimension du vecteur dattributs, alors il est mieux de rsoudre le problme en formulation duale. Lorsquon applique une fonction de transformation de lespace de dimension , pour avoir un nouvel espace de dimension plus leve , on va essayer de rsoudre en formulation primale, dans ce nouvel espace, alors la complexit de la rsolution va tre au lieu de , tandis que la complexit de la rsolution pour la formulation duale va reste la mme . Dans notre problme de classification semi-supervise, on sintresse la formulation duale de SVM et en utilisant le noyau linaire.
Page 25
Alors pour effectuer lapprentissage de S3VM, on va tenir compte des donnes nonlibelles, or ces donnes non pas des labels, et en absence de labels, on ne sait pas si les donnes se trouvent sur le bon ct or non. Lhypothse quon va utiliser est quon va utiliser la prdiction du label dune donne , comme tant le label putatif, en dautres termes on nutilise pas le vraiment label de , mais on utilise un label putatif dterminer compltement laide de , alors les donnes non-libelles vont tre considres toujours sur le bon ct, et est interprt par : . En utilisant le rsultat obtenu, on va avoir les quations ci-dessous : Lapprentissage de S3VM en formulation primale :
Page 26
[27]
Cette mthode permet de retourner une structure svmstruct contenant des informations qui concerne le classifieur SVM : : reprsente lensemble des donnes non-libelles. : reprsente lensemble des donnes libelles. : reprsente les classes correspondant de Training. : reprsente la fonction de noyau.
[28]
Cette mthode permet de classifier les donnes en utilisant la structure de la mthode SVM : : reprsente la structure de classifieur SVM crer en utilisant svmtrain, : reprsente lensemble des donnes non-libelles.
En va essayer dappliquer la mthode S3VM une des sries photographiques provenant dun observatoire photographique du paysage, notons que S3VM spare les donnes uniquement en deux classes, en tenir compte des donnes non-libelles. Comme on a dj dit, une des techniques proposes pour rsoudre ce problme, est dutiliser lapproche un-contre-un (oneversus-one)
allons de jusqu
Fin pour Fin pour Libeller les donnes de , en utilisant le maximum des sommes des lments des lignes de la matrice , afin dajouter tous les donnes de . Sortie : Ensemble dapprentissage beaucoup plus grand.
Page 27
Notons que : reprsente le classifieur qui va tre utilis pour effectuer lapprentissage avec uniquement en deux classes, et ; reprsente les donnes libelles et
Exemple :
Supposons quon dispose de quatre classes ( , , et ), alors on va avoir classifieurs qui vont effecteur lapprentissage des donnes libelles, or chaque classifieur va tre appliqu sur , cest--dire : va effectuer lapprentissage avec (les donnes libelles et ) et il va classifier les donnes non libelles de en deux classe afin dajouter le rsultat dans , etc. va effectuer lapprentissage avec (les donnes libelles et ) et il va classifier les donnes non libelles de en deux classe afin dajouter le rsultat dans . Enfin, la matrice donnes , (de taille gale ), est utilis pour dterminer le label des :
de la matrice
Entre
O R OB RR
Rsultat final
OBO RRO
O O O O O O O O R R R R R OB OB OB OB
OB OB OB OB RB RB RB RB RR OBB OBB
OBB OBB OBB OBB OBB OBB RBB RBB RBB RBB RRB
Exemple 3. Illustration de
Page 28
CHAPITRE IV
LOBSERVATOIRE PHOTOGRAPHIQUE
DU PAYSAGE ET REPHOTOGRAPHIE
Lobjectif de notre travail est de dtecter des changements significatifs, pour des observatoires photographiques du paysage, dans des sries de clichs (sries photographiques), reprsentant un certain territoire, prises au sol, des grands intervalles de temps. Ces sries de clichs peuvent tre soit des sries rcentes ralises de faon homognes ds le dpart, soit des sries qui dmarrent avec des images anciennes. Dans un premier temps, nous allons voir quelques dfinitions, puis on dfinit ce quest un observatoire photographique du paysage idal, son objectif, et enfin on dfinit la rephotographie.
Page 29
Lobjectif de la cration dun observatoire photographique du paysage est constituer un fonds de sries photographiques qui permette danalyser les mcanismes et les facteurs de transformations des espaces ainsi que les rles des diffrents acteurs qui en sont la cause de faon orienter favorablement lvolution du paysage. En dautres termes, lobjectif est de construire une srie photographique pour chaque point de vue initial, or cet observatoire va permettre danalyser les mcanismes et les facteurs de transformations qui modifient lespace. Un observatoire photographique du paysage idal doit tre constitu en reconduisant des prises de vue lidentique, cest--dire en conservant le point de vue exact et le cadrage prcis de limage, ainsi que la lumire, laquelle dpend de la date et de lheure de prise de vue. Cette mthodologie doit nous permette dobtenir des sries photographiques rigoureusement identiques en ce qui concerne le positionnement des lments du paysage, et cela rendra possible une comparaison puisque les seules diffrences entre les images sont le fait des changements ayant affect le territoire dans le temps sparant les prises de vue. Toutes ces informations et ces donnes vont tre enregistres pour tre manipul en appliquant les mthodes de classifications, or pour les enregistrer on a besoin de lexpertise dun photographe qui va utiliser des quipements ncessaires pour rcuprer ces donnes.
Le choix des localisations est fait de telle faon quun photographe puisse revisiter le lieu gographique, pour rcuprer des photos avec certains critres : Point de repre (permanent et distinctif) : permettre de re-photographier (pentes des montagnes, relief, ligne dhorizon et dautres caractristiques gographiques qui restent les mmes pour une long priode de temps). Paramtres de Photo (date et localisation de la prise de vue) : placer dans le Foreground, de telle faon que sa lecture soit facile. Perche de rfrence : pour faciliter linterprtation de la photo dans le futur, il faut le placer la mme distance (cinquantaine de pieds) du point dorigine chaque fois.
Enfin, la dernire tape sera le stockage de ces photos dans un carnet avec ses valuations correspondantes. Des exemples de srie de clichs provenant dobservatoire photographiques du paysage sont consults dans lAnnexe. Page 30
CHAPITRE V
Etape n3. La cration du vecteur dapprentissage : Aprs avoir identifi lensemble dapprentissage, ltape suivante est de conserver tous les pixels des donnes libelles (ou bien leur moyenne et lcart type), dans un vecteur appel le vecteur dapprentissage. (Il existe plusieurs faons pour constituer ce vecteur dapprentissage, en utilisant soit les 3 canaux RGB, soit local-jet, soit FFT, soit ondelettes, etc.).
Page 31
Etape n4. La classification des donnes non-libelles : On va classifier les donnes de laide dun classifieur , en utilisant un des classifieurs de loutil Matlab. (Matlab dispose dun ensemble de mthodes de classifications prdfinis dans sa bibliothque, citons : Mthode de k-plus proche voisin :
Mthode de SVM :
Etape n5. Mise en jour de lensemble des donnes libelles : on ajoute les pixels les plus fiables de lensemble lensemble . La procdure va rpte de nouveau jusqu la satisfaction dun critre darrt. (Ex. soit vide, aprs un certain nombre ditration, etc.). La sortie de lalgorithme : Cest lensemble dapprentissage, qui va tre utilis pour classifier des donnes futures (on parle de lapprentissage Inductif). Dans les parties ci-dessous on discute les diffrentes tapes de ces mthodes de classification semi-supervises pour valuer ses performances, en utilisant les mthodes de loutil Matlab.
3. La cration du vecteur dapprentissage : en conservant la moyenne et lcart-type du niveau de couleur RGB. 4. Classification des donnes non-libelles : en utilisant par exemple le
Page 32
5. Mise jour de lensemble des donnes libelles : en ajoutant un seul pixel chaque itration , et la procdure est rpte de nouveau jusqu ce que soit vide.
3. La cration du vecteur dapprentissage : en conservant la moyenne et lcart-type du niveau de couleur RGB et YCbCr. 4. Classification des donnes non-libelles : en utilisant par exemple le
5. Mise jour de lensemble des donnes libelles : en ajoutant les donnes les plus fiable de , ceux qui sont effectuer par , et ceux qui sont effectuer par , et la procdure va rpte de nouveau jusqu ce que soit vide.
Page 33
procdure est rpte fois. Enfin chaque donne de maximum des sommes des lments de la ligne correspondante de Les diffrentes tapes sont les suivantes : 1. Lecture dune photo : en utilisant les 3 bandes RGB.
2. Appliquer la mthode de classification SVM : effectuer lapprentissage dun classifieur avec , pour classifier les donnes en deux classes, et . Cration de lensemble dapprentissage et du vecteur dapprentissage : un sousensemble est ensuite conserv dans le vecteur dapprentissage. Effectuer lapprentissage de avec :
Appliquer
sur
On conserve le rsultat dans la matrice et la procdure va, de nouveau, effecteur lapprentissage au dautre sous-ensemble , jusqu ce qua un nombre ditration gale .
3. Mise jour de lensemble des donnes libelles : en ajoutant les pixels les plus fiables de lensemble , en utilisant la matrice .
, or
reprsente le
2. Diminuer le nombre ditration : au lieu dajouter tous les pixels de , on peut ajouter la moyenne de chaque classe , dans lequel on effectue une seule itration pour chaque image. 3. La taille de lensemble dapprentissage : la taille est trs grande, ex. pixels sil est constitu dune seule photo (Photographie 1, de la srie photographique est de taille ), ce qui va ralentir la procdure de classification. 4. Le temps ncessaire pour effectuer lapprentissage du classifieur : on a constat que le temps ncessaire, en utilisant , est trs lev. (dizaines de secondes), tandis quil est beaucoup plus petit, en utilisant .
Page 34
La fentre n1 libelle
La fentre n2 libelle
Le changement de masque n1-2 Figure 5.1. Illustration de la mthode dvaluation de la classification. La rfrence n1-2 Aprs ca, on va crer le changement de masque, entre ces deux fentres classifies, en utilisant la technique de la diffrenciation :
Page 35
Une fois quune rfrence est tablie, il existe plusieurs mthodes standard pour valuer la performance des mthodes de classification ( partir de la comparaison de la rfrence avec un changement de masque binaire). On va dfinit ce quest laccuracy dune mthode de classification. Laccuracy permet de mesurer la performance dune mthode de classification. Rosin a dcrit trois mthodes pour quantifier la performance dune classification : 1. Pourcentage de la classification correcte :
2. Coefficient de Jaccard :
3. Coefficient de Yule :
Remarque : Les vrais positifs (True Positives), not TP : cest le nombre des pixels changs dtects correctement. Les faux positifs (False Positives), not FP : cest le nombre des pixels no-changs dtects incorrectement. Les vrais ngatifs (True Negatives), not TN : cest le nombre des pixels no-changs dtects correctement. Les faux ngatifs (False Negatives), not FN : cest le nombre des pixels changs dtects incorrectement.
V.4.2. Rsultat de lexprimente en utilisant PCC et JC. Squence 1-2 SelfTraining CoTraining S3VM JC 0.3110 0.5695 0.1419 0.2581 Tableau 5.1. Rsultat de la PCC pours les squences dimages PCC JC PCC JC PCC 0.8971 0.3444 0.9139 0.2542 0.9034 Squence 2-3 0.9389 0.6202 0.8818 0.4855 0.9184 Squence 3-4 0.9627 0.1601 0.9318 0.1274 0.9574 Squence 4-5 0.9527 0.1947 0.9287 0.1170 0.9681
Page 36
CHAPITRE VI
Jean ARROUYE, professeur de smiologie de limage Universit de Provence, dit : pour les paysages urbains dAnne Favret et Patrick Manez je distinguerai des paysage de biais, des paysages de face, des paysages contrasts et des paysages esthtiques On reconnaitra aussi chez Raymond Depardon . Notons quil existe dautre type de paysage. VI.1.2. Les lments dun paysage [20] Les lments significatifs qui composent un paysage sont les suivants : 1. Le relief : Les plaines, les plateaux, les valles, les collines, les montagnes. 2. La vgtation : dont on distingue les forts, la vgtation arbustive, les landes, les prairies, les cultures. 3. Lhydrographie : Lensemble des eaux douces et sales visible dans le paysage (les mers, les lacs, les fleuves, les rivires, etc.) 4. Les traces de lactivit humaine : les maisons, les usines, les carrires, le rseau de communication avec ses routes, ses voies ferres et ses lignes lectriques modifient laspect du paysage.
Page 38
paysage, citons : le rchauffement climatique, la pollution, le renouvellement des ressources nergtiques, etc. Pour voir si ce changement est significatif ou non, une des mthodes proposes est de prciser la catgorie de paysage de la srie photographique dont on examine (si cest un paysage urbain, rural, naturel, etc.), cela va nous permettre de voir quels sont les lments essentiels qui constituent le paysage et la manire dont ils sont distribus sur le territoire, alors toute transformation/disparition de ces composants paysagers et toute apparition des nouveaux lments paysagers sont considrs des changements significatifs. Notons que, les changements dintensits dun pixel rsultant du mouvement du camra et du changements dans la puissance et la position de la source de lumire, sont virtuellement jamais dsirs dtre dtects comme des changements rels (significatifs). Il existe des fonctions de prtraitement (correction gomtrique et radiomtrique), normalement requises avant lanalyse principale et lextraction dinformation, utilises pour supprimer ces changements non-significatifs. [5]
Page 39
CHAPITRE VII
Page 40
Dans la section IV, on a dfini ce quest un observatoire photographique du paysage et la technique de rephotographie. On a dfinit aussi quelque terme concernant lobservatoire photographique. Dans la section V, on a valu les performances des mthodes de classification semisupervises sur la srie photographique du point de vue n32 Dourges Lieu-dit Les Douchis, laide de loutil Matlab, en prcisant les difficults quon a rencontr et les simplifications proposes. Dans la section VI, on a dfinit ce quest un paysage, les diffrents catgories de paysages selon leurs lments paysagers, les changements significatifs dun paysage, et enfin on a propos une mthode qui va mettre en vidence des changements significatifs.
VII.1. Conclusion
Comme conclusion de notre travail : On a effectu ltat de lart des mthodes de classification supervise. On a implment ces mthodes laide de loutil Matlab sur la srie de Dourges seulement, et on a eu des rsultats intressants de classification (vous pouvez consulter les codes dans lannexe C). Malheureusement, on na pas eu le temps de les appliquer sur dautres sries photographiques. On a choisit de travailler sur cette srie au niveau de couleur, et non pas au niveau de gris, pour faciliter le travail. Dans des cases de sries photographiques en noir et blanche, si on va utiliser les mthodes de classification, on va avoir des mauvais rsultats de classification des images puisque les donnes ne sont pas bien distribues, alors pour rsoudre ce problme une des techniques utilises est la reconnaissance dobjet. On a prsent la manire dont on value les performances de ces mthodes, puisquune valuation correcte ncessite une bonne rfrence, alors que dans ce papier, on a utilis une petite fentre de rfrence et on la libelle manuellement (ce qui est t une tche trs fastidieuse). On a propos une mthode de dtection qui va mettre en vidence des changements significatifs. On a prsent des exemples de sries de clichs dans lannexe.
Page 41
Page 42
Rfrences :
[1]. Xiajoin Zhu and Andrew B. Goldberg. Introduction to Semi-Supervised Learning Synthesis Lectures on Artificial Intelligence and Machine Learning, 2009. [http://pages.cs.wisc.edu/~jerryzhu/hack/ssl.pdf] Xiaojin Zhu. Semi-Supervised Learning, University of Wisconsin-Madison [http://pages.cs.wisc.edu/~jerryzhu/pub/SSL_EoML.pdf] T. Mitchell. The role of unlabeled data in supervised learning. In Proceedings of the Sixth International Colloquium on Cognitive Science, San Sebastian, Spain, 1999. Avrim Blum and Tom Mitchell. Combining labeled and unlabeled data with cotraining. In COLT: Proceedings of theWorkshop on Computational Learning Theory, 1998. R.J. Radke, S. Andra, O. Al-Kofahi, and B. Roysam. Image Change Detection Algorithms: A Systematic Survey. IEEE Trans. Image Processing, vol 14, no. 3, pp. 294-307, March 2005 Sergios Theodoridis, Konstantinos Koutroumbas. Pattern Recognition, Fourth Edition. IEEE Trans. Neural Networks, vol. 19, no. 2, pp. 376, Feb. 2008. Jean. F. Seguin, E. Soufllet-Leclerc. Itinraires photographiques : Mthode de lObservatoire photographique du paysage. 2008. G. Allen Rasmussen ET Kathy Voth. Repeat Photography Monitoring Made Easy. March 2001. Repeat photography monitoring made easy, G. Allen Rasmussen et Kathy Voth, Utah State University, 2001. [http://region8water.colostate.edu/PDFs/RPMME.pdf] Arnaud Revel, Apprentissage Semi-Supervis, [http://perso.univ-lr.fr/arevel/MesPolys/SemiSupervise.pdf] Observatoire du Paysage, [http://www.catpaisatge.net/fra/glossari.php] Elie Allouche, Cours dHistoire-Gographie [http://elie.allouche.pagesperso-orange.fr/biblioRF/siteCours/Paysages.htm] Arief Sabdo Yuwono, Peter Schulze Lammers, Odor Pollution in the Environement and the Decection Instrumentation [http://www.sipcotcuddalore.com/downloads/odour_research.pdf] Etat de lenvironnement Wallon 1996, Paysage, Glossaire p117-118 [http://environnement.wallonie.be/publi/etatenv/paysage/paysage.pdf] Prof. Olga Veksler, Learning and Computer Vision [http://www.csd.uwo.ca/courses/CS9840a/Lecture4-2.pdf]
[2].
[3].
[4].
[5].
[6].
[7].
[8].
[9].
[10].
[11].
[12].
[13].
[14].
[15].
Page 43
[16].
CCRS, Notions fondamentales de tldtection, Classification et analyse des images [http://www.ccrs.nrcan.gc.ca/resource/tutor/fundam/chapter4/07_f.php] Segunei Lamia, Kellal Houda, Sgmentation dimage. [http://www.scribd.com/doc/24339012/Segmentation-Final] A tutorial on clustering algorithm [http://home.dei.polimi.it/matteucc/Clustering/tutorial_html] Cluster Analysis: Tutorial with R. Jari Oksanen January 20, 2010 [http://cc.oulu.fi/~jarioksa/opetus/metodi/sessio3.pdf] ASP, les diffrents lments dun paysage. [http://www.assistancescolaire.com/eleve/5e/svt/reviser-une-notion/les-differentselements-d-un-paysage-5sep01] Wikipedia, Variables indpendantes et identiquement distribues. [http://fr.wikipedia.org/wiki/Variables_ind%C3%A9pendantes_et_identiquement_di stribu%C3%A9es] Frank Meyer, Lapprentissage Semi-Supervis, terminologie. [http://perso.rd.francetelecom.fr/lemaire/cours/ApprentissageSemiSupervise.pdf] Ming-Hsuan Yang & Antoine Cornujols, Introduction to Support Vector Machines. [http://thor.info.uaic.ro/~ciortuz/SLIDES/svm.pdf] Hilary 2011, A. Zisserman, Dual Problems and Kernels. [http://www.robots.ox.ac.uk/~az/lectures/ml/lect3.pdf] E3mLab, Basics for Mathematical Economics. [http://www.e3mlab.ntua.gr/courses/%CE%94%CE%99%CE%91%CE%A6%CE%9 1%CE%9D%CE%95%CE%99%CE%95%CE%A3_%CE%9F%CE%99%CE%9A. %20%CE%91%CE%9D%CE%91%CE%9B%CE%A5%CE%A3%CE%97%20%CE %95%CE%A0%CE%99%CE%A7/BasicMathematicalEconomics.pdf] Ayhan Demiriz & Kristin P. Bennett, Chapter 1 Optimization approaches to semisupervised learning. [homepages.rpi.edu/~bennek/icpp99.ps] Mathworks, svmtrain. [http://www.mathworks.com/help/toolbox/bioinfo/ref/svmtrain.html] Mathworks, svmclassify. [http://www.mathworks.com/help/toolbox/bioinfo/ref/svmclassify.html] Mathworks, knnclassify. [http://www.mathworks.com/help/toolbox/bioinfo/ref/knnclassify.html] SIDE, Jean Arrouye, Interfrences Esthtiques et Smantiques. [http://www.side.developpement-durable.gouv.fr]
[17].
[18].
[19].
[20].
[21].
[22].
[23].
[24].
[25].
[26].
[27].
[28].
[29].
[30].
Page 44
Exemple dune photographie qui est un peu efficace (absence point de repre)
Exemple dune photographie qui est ne sont pas efficace (absence de ple de rfrence et Conseil de photo) Figure 4.1. Exemples de photographies efficaces, un peu efficaces et non pas efficaces
Page 45
Annexe B [30]
Itinraire N 04 : Les infrastructures du Nord-Pas-de-Calais Partenaire/Maitrise douvrage local : Espace naturel rgional Photographie initial : Dominique AUERBACHER Re-photographies : Samuel DHOTE, Olivier COMTE Cet itinraire a t mis en place en : 1993. Srie photographique du point de vue n32 Dourges Lieu-dit Les Douchis.
Page 46
Itinraire N 05 : Les Ctes-Darmor Partenaire/Maitrise douvrage local : CAUE des Ctes dArmor Photographie initial : Thibaut CUISSET Re-photographies : Max GRAMMARE Cet itinraire a t mis en place en : 1995. Srie photographique du point de vue n25 Sainte Trphine RD 05.
Page 47
Itinraire N 06 : Le canton de Saint-Benot-Du-Sault (Indre) Partenaire/Maitrise douvrage local : Commune de Saint-Benot-Du-Sault Photographie initial : John DAVIES Re-photographies : Christian MOLITOR, John DAVIES Cet itinraire a t mis en place en : 1994. Srie photographique du point de vue n23 Vigoux Glissire.
Page 48
Itinraire N 09 : La Commune de Montreuil Partenaire/Maitrise douvrage local : Ville de Montreuil Photographie initial : Anne FAVRET, Patrick MANEZ Re-photographies : Pierre-Luc VACHER, Franck CICHY Cet itinraire a t mis en place en : Srie photographique du point de vue n32 83 rue P. de Montreuil (mur pche).
Page 49
% 4) IDENTIFIER L'ENSEMBLE D'APPRENTISSAGE: L ET U U1=[reshape(r1,N1,1),reshape(g1,N1,1),reshape(b1,N1,1), zeros([N1,1])]; U=U1; L=[]; group=[]; for i=1:length(group1) L=[L; r1(row1(i),col1(i)), g1(row1(i),col1(i)), b1(row1(i),col1(i)), group1(i)]; group=[group; group1(i)]; end L=double(L); % CONVERTIR DE UNIT8 A DOBLE POUR LA CLASSIFICATION U=double(U); class=zeros(N1,1); tic [class] = knnclassify(U,L,group,1,'euclidean','random'); toc % 6) PREPARER LES DONNES NON-LIBELLES POUR LES LIBELLEES U(:,4)=class(:); % 7) AJOUTER LE MOYENNE DES DONNES U DE CHAQUE CLASSE AU L U1=U(1:(nx1*ny1),:); for i=1:5 L = [L; end
Page 50
% 8) VISUALISER L'IMAGE CLASSIFIER class1=class(1:(nx1*ny1)); class1=reshape(class1,nx1,ny1); % Reshapse l'image en nx-ny map = [255, 000, 102, 203, 127, 255, 128, 255, 196, 123, 255; ... 000; ... 102; ... 155; ... 124]/255; % % % % % Group Group Group Group Group 1: 2: 3: 4: 5: Ciel Vgtation Soul Maison Pylne lectrique
figure(1), clf, colormap(map), image(class1), colorbar title('1=Ciel, 2=Vgtation, 3=Soul, 4=Maisons, 5=Pylne lectrique') imwrite(class1, map, 'image1', 'bmp'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % IMAGE 2.jpg z=imread('../Dourges/2.BMP'); r=z(:,:,1); g=z(:,:,2); b=z(:,:,3); nx=size (r, 1); ny=size (r, 2); N=nx*ny; U=[reshape(r,N,1),reshape(g,N,1),reshape(b,N,1), zeros([N,1])]; U=double(U); tic [class]=knnclassify (U,L,double(L(:,4)),1,'euclidean','random'); toc U(:,4)=class(:); class=reshape(class,nx,ny); figure(2),clf,colormap(map), image(class), colorbar title('1=Ciel, 2=Vgtation, 3=Soul, 4=Maisons, 5=Pylne lectrique') imwrite(class, map, 'image2', 'bmp');
Page 51
% Classification par Co-Apprentissage % 1) LECTURE D'UNE IMAGE ET REGARDER LES BANDES z1=imread('../Dourges/1.BMP'); z2=rgb2ycbcr(z1); r1=z1(:,:,1); g1=z1(:,:,2); b1=z1(:,:,3); r2=z2(:,:,1); g2=z2(:,:,2); b2=z2(:,:,3); % 2) TLCHARGEMENT DE L'ENSEMBLE DES DONNES LIBELLES PixApp1=load('label1.m'); % 3) PRPARATION POUR CRER L'ENSEMBLE D'APPRENTISSAGE ET POUR LA CLASSIFICATION row1=PixApp1(:,1); col1=PixApp1(:,2); group1=PixApp1(:,3); ngroup1=max(group1); nx1=size (r1, 1); nx2=size (r2, 1); ny1=size (r1, 2); ny2=size (r2, 2); N1=nx1*ny1; N2=nx2*ny2; % % % % y-value x-value group-value numbre-de-groupe (classe)
% 4) IDENTIFIER L'ENSEMBLE D'APPRENTISSAGE: L ET U U1=[reshape(r1,N1,1),reshape(g1,N1,1),reshape(b1,N1,1)]; U2=[reshape(r2,N2,1),reshape(g2,N2,1),reshape(b2,N2,1)]; U=[double(U1),double(U2),zeros([N1,1])]; L=[]; group=[]; for i=1:length(group1) L=[L; double(r1(row1(i),col1(i))), double(g1(row1(i),col1(i))), double(b1(row1(i),col1(i))), ... double(r2(row1(i),col1(i))), double(g2(row1(i),col1(i))), double(b2(row1(i),col1(i))), ... group1(i)]; group=[group; group1(i)]; end L=double(L); % CONVERTIR DE UNIT8 A DOUBLE POUR LA CLASSIFICATION U=double(U); tic [class1]=knnclassify(U(:,[1, 2, 3, 7]),L(:,[1, 2, 3, 7]),group,1,'euclidean','random'); toc tic
Page 52
[class2]=knnclassify(U(:,[4, 5, 6, 7]),L(:,[4, 5, 6, 7]),group,1,'euclidean','random'); toc % 6) PREPARER LES DONNES NON-LIBELLES POUR LES LIBELLEES U1(:,4)=class1(:); U2(:,4)=class2(:); for i=1:N1 if U1(i,4)==U2(i,4) U(i,7)=U1(i,4); else U(i,7)=U2(i,4); end end % 7) AJOUTER LE MOYENNE DES DONNES U DE CHAQUE CLASSE AU L for i=1:5 L = [L; mean(U(U1(:,4)==i, [1, 2, 3, 4, 5, 6])), i]; group=[group;i]; L = [L; mean(U(U2(:,4)==i, [1, 2, 3, 4, 5, 6])), i]; group=[group;i]; end % 8) VISUALISER L'IMAGE CLASSIFIER class=U(:,7); class1=class(1:(nx1*ny1)); class1=reshape(class1,nx1,ny1); % Reshapse l'image en nx-ny map = [255, 000, 102, 203, 127, 255, 128, 255, 196, 123, 255; ... 000; ... 102; ... 155; ... 124]/255; % % % % % Group Group Group Group Group 1: 2: 3: 4: 5: Ciel Vgtation Soul Maison Pylne lectrique
figure(1),clf,colormap(map), image(class1), colorbar title('1=Ciel, 2=Vgtation, 3=Soul, 4=Maisons, 5=Pylne lectrique') imwrite(class1, map, 'image1', 'bmp'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % IMAGE 2.jpg z1=imread('../Dourges/2.BMP'); z2=rgb2ycbcr(z1); r1=z1(:,:,1); g1=z1(:,:,2); b1=z1(:,:,3); r2=z2(:,:,1); g2=z2(:,:,2); b2=z2(:,:,3); nx1=size (r1, 1); nx2=size (r2, 1); ny1=size (r1, 2); ny2=size (r2, 2); N1=nx1*ny1; N2=nx2*ny2; % longueur-d'image1 % longueur-d'image2 % largueur-d'image1 % largueur-d'image2 % taille de l'image1 % taille de l'image2
Page 53
U1=[reshape(r1,N1,1),reshape(g1,N1,1),reshape(b1,N1,1)]; U2=[reshape(r2,N2,1),reshape(g2,N2,1),reshape(b2,N2,1)]; U=[double(U1),double(U2),zeros([N1,1])]; U=double(U); tic [class1]=knnclassify(U(:,[1, 2, 3, 7]),L(:,[1, 2, 3, 7]),group,1,'euclidean','random'); toc tic [class2]=knnclassify(U(:,[4, 5, 6, 7]),L(:,[4, 5, 6, 7]),group,1,'euclidean','random'); toc % 6) PREPARER LES DONNES NON-LIBELLES POUR LES LIBELLEES U1(:,4)=class1(:); U2(:,4)=class2(:); for i=1:N1 if U1(i,4)==U2(i,4) U(i,7)=U1(i,4); else U(i,7)=U2(i,4); end end % 8) VISUALISER L'IMAGE CLASSIFIER class=U(:,7); class1=class(1:(nx1*ny1)); class1=reshape(class1,nx1,ny1); % Reshapse l'image en nx-ny figure(2),clf,colormap(map), image(class1), colorbar title('1=Ciel, 2=Vgtation, 3=Soul, 4=Maisons, 5=Pylne lectrique') imwrite(class1, map, 'image2', 'bmp');
Page 54
% Classification par S3VM % 1) LECTURE D'UNE IMAGE ET REGARDER LES BANDES z1=imread('../Dourges/1.BMP'); r1=z1(:,:,1); g1=z1(:,:,2); b1=z1(:,:,3); % 2) TLCHARGEMENT DE L'ENSEMBLE DES DONNES LIBELLES PixApp1=load('label1.m'); % 3) PRPARATION POUR CRER L'ENSEMBLE D'APPRENTISSAGE ET POUR LA CLASSIFICATION row1=PixApp1(:,1); col1=PixApp1(:,2); group1=PixApp1(:,3); ngroup1=max(group1); nx1=size (r1, 1); ny1=size (r1, 2); N1=nx1*ny1; % % % % y-value x-value group-value numbre-de-groupe (classe)
% 4) IDENTIFIER L'ENSEMBLE D'APPRENTISSAGE: L ET U U1=[reshape(r1,N1,1),reshape(g1,N1,1),reshape(b1,N1,1)]; U=U1; L=[]; group=[]; for i=1:length(group1) L=[L; r1(row1(i),col1(i)), g1(row1(i),col1(i)), b1(row1(i),col1(i)), group1(i)]; group=[group; group1(i)]; end L=double(L); % CONVERTIR DE UNIT8 A DOUBLE POUR LA CLASSIFICATION U=double(U); tic Svmstr12=svmtrain(L(1:200,[1 2 3]),L(1:200,4)); Svmstr13=svmtrain(L([1:100,201:300],[1 2 3]),L([1:100,201:300],4)); Svmstr14=svmtrain(L([1:100,301:400],[1 2 3]),L([1:100,301:400],4)); Svmstr15=svmtrain(L([1:100,401:500],[1 2 3]),L([1:100,401:500],4)); Svmstr23=svmtrain(L(101:300,[1 2 3]),L(101:300,4)); Svmstr24=svmtrain(L([101:200,301:400],[1 2 3]),L([101:200,301:400],4)); Svmstr25=svmtrain(L([101:200,401:500],[1 2 3]),L([101:200,401:500],4)); Svmstr34=svmtrain(L(201:400,[1 2 3]),L(201:400,4)); Svmstr35=svmtrain(L([201:300,401:500],[1 2 3]),L([201:300,401:500],4)); Svmstr45=svmtrain(L(301:500,[1 2 3]),L(301:500,4)); svm12 svm13 svm14 svm15 svm23 svm24 svm25 svm34 svm35 svm45 = = = = = = = = = = svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify (Svmstr12, (Svmstr13, (Svmstr14, (Svmstr15, (Svmstr23, (Svmstr24, (Svmstr25, (Svmstr34, (Svmstr35, (Svmstr45, U(:, U(:, U(:, U(:, U(:, U(:, U(:, U(:, U(:, U(:, [1 [1 [1 [1 [1 [1 [1 [1 [1 [1 2 2 2 2 2 2 2 2 2 2 3])); 3])); 3])); 3])); 3])); 3])); 3])); 3])); 3])); 3]));
Page 55
toc train = [svm12, svm13, svm14, svm15, svm23, svm24, svm25, svm34, svm35, svm45]; test=zeros(length(train),5); for i=1:size(train) test(i,:) = [sum(train(i,:)==1),sum(train(i,:)==2),sum(train(i,:)==3),sum(train(i,:)==4), sum(train(i,:)==5)]; end % 6) PREPARER LES DONNES NON-LIBELLES POUR LES LIBELLEES U = [U, zeros(length(U),1)]; I=zeros(length(U),1); C=[]; for i=1:length(U) [C,I(i)]= max(test(i,:)); end U(:,4)=I(:); % 7) AJOUTER LE MOYENNE DES DONNES U DE CHAQUE CLASSE AU L U1=U(1:(nx1*ny1),:); for i=1:5 L = [L; end
% 7) VISUALISER L'IMAGE CLASSIFIER class=U1(:,4); class1=class(1:(nx1*ny1)); class1=reshape(class1,nx1,ny1); % Reshapse l'image en nx-ny map = [255, 000, 102, 203, 127, 255, 128, 255, 196, 123, 255; ... 000; ... 102; ... 155; ... 124]/255; % % % % % Group Group Group Group Group 1: 2: 3: 4: 5: Ciel Vgtation Soul Maison Pylne lectrique
figure(1),clf,colormap(map), image(class1), colorbar title('1=Ciel, 2=Vgtation, 3=Soul, 4=Maisons, 5=Pylne lectrique') imwrite(class1, map, 'image1', 'bmp'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % IMAGE 2.jpg z=imread('../Dourges/2.BMP'); r=z(:,:,1); g=z(:,:,2); b=z(:,:,3); nx=size (r, 1); ny=size (r, 2); N=nx*ny; U=[reshape(r,N,1),reshape(g,N,1),reshape(b,N,1), zeros([N,1])]; U=double(U);
Page 56
tic Svmstr12=svmtrain(L(1:200,[1 2 3]),L(1:200,4)); Svmstr13=svmtrain(L([1:100,201:300],[1 2 3]),L([1:100,201:300],4)); Svmstr14=svmtrain(L([1:100,301:400],[1 2 3]),L([1:100,301:400],4)); Svmstr15=svmtrain(L([1:100,401:500],[1 2 3]),L([1:100,401:500],4)); Svmstr23=svmtrain(L(101:300,[1 2 3]),L(101:300,4)); Svmstr24=svmtrain(L([101:200,301:400],[1 2 3]),L([101:200,301:400],4)); Svmstr25=svmtrain(L([101:200,401:500],[1 2 3]),L([101:200,401:500],4)); Svmstr34=svmtrain(L(201:400,[1 2 3]),L(201:400,4)); Svmstr35=svmtrain(L([201:300,401:500],[1 2 3]),L([201:300,401:500],4)); Svmstr45=svmtrain(L(301:500,[1 2 3]),L(301:500,4)); svm12 = svm13 = svm14 = svm15 = svm23 = svm24 = svm25 = svm34 = svm35 = svm45 = toc svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify svmclassify (Svmstr12, (Svmstr13, (Svmstr14, (Svmstr15, (Svmstr23, (Svmstr24, (Svmstr25, (Svmstr34, (Svmstr35, (Svmstr45, U(:, U(:, U(:, U(:, U(:, U(:, U(:, U(:, U(:, U(:, [1 [1 [1 [1 [1 [1 [1 [1 [1 [1 2 2 2 2 2 2 2 2 2 2 3])); 3])); 3])); 3])); 3])); 3])); 3])); 3])); 3])); 3]));
clear train; clear test; train = [svm12, svm13, svm14, svm15, svm23, svm24, svm25, svm34, svm35, svm45]; test=zeros(length(train),5); for i=1:size(train) test(i,:) = [sum(train(i,:)==1),sum(train(i,:)==2),sum(train(i,:)==3),sum(train(i,:)==4), sum(train(i,:)==5)]; end U = [U, zeros(length(U),1)]; I=zeros(length(U),1); C=[]; for i=1:length(U) [C,I(i)]= max(test(i,:)); end U(:,4)=I(:); class=U(:,4); class1=class(1:(nx*ny)); class1=reshape(class1,nx,ny); % Reshapse l'image en nx-ny figure(2),clf,colormap(map), image(class1), colorbar title('1=Ciel, 2=Vgtation, 3=Soul, 4=Maisons, 5=Pylne lectrique') imwrite(class1, map, 'image2', 'bmp');
Page 57
Page 58