Vous êtes sur la page 1sur 169

Ecole dingnieurs de Genve

RECONNAISSANCE DOBJETS PAR RESEAUX DE NEURONES

En collaboration avec le Laboratoire de Systmes dInformations et le groupe Viper du Centre Universitaire Informatique de Genve

Travail de Diplme de

Yannick Evrard
Prsent le 11 dcembre 2003

Professeur de projet :

M Michel Lazeyras

Remerciement

Remerciement
Je tiens tout d'abord remercier mon pre zofingien, Damien Dellea, vulgo Turbo

Asticot, pour m'avoir rvl l'existence des rseaux de neurones, par une nuit fortement embrume de l'hiver 1998. Cette nuit fut le dbut de TOUT. Merci Marc Von Wil, Franois Congedo, Edouardo Basilico, Gabriel Demartine et M Michel Winkenbosch pour les documents prts, qui se sont avrs de la plus grande utilit. Merci Patrick Rosselet et Olivier Loesli pour leur collaboration dans la ralisation de ce projet, et pour m'avoir fournit toute la matire ncessaire sa ralisation Merci M Michel Lazeyras pour la supervision du projet, pour la re-lecture du mmoire, pour les ides fournies, pour son humour. Merci tous mes camarades partageant la mme salle pour le diplme. La bonne humeur et la convivialit sont importantes pour travailler dans les meilleures conditions. Merci ma famille pour son soutien moral, pour ses encouragements. Vous avez vu, le premier finit ses tudes... plus que deux...

Reconnaissance dimages par rseaux de neurones artificiels

Table des matires

Table des matires


Remerciement .................................................................................................................. 3 Table des matires ........................................................................................................... 4 1 Prambule ..................................................................................................................... 8 2 Introduction ................................................................................................................ 11 2.1 Description de la nouvelle reprsentation SVG .................................. 11 2.2 ACSIS ............................................................................................................ 13 2.3 Description du projet ................................................................................. 14 2.4 Organisation et plan de l'ouvrage ........................................................... 15 3 Problmatique de la reconnaissance dimage ........................................................... 18 3.1 Prliminaires ................................................................................................ 18 3.2 Pr traitement ............................................................................................... 19 3.3 Reprsentation ............................................................................................. 20 3.3.1 Reprsentation d'un exemplaire............................................................. 21 3.3.2 Reprsentation des classes..................................................................... 21 3.4 Lapprentissage ........................................................................................... 22 3.5 Ressemblance .............................................................................................. 23 3.6 Rsum .......................................................................................................... 26 3.7 Remarques .................................................................................................... 27 4 Comparaison MATLAB / SNNS ................................................................................ 29 4.1 Avantages/dsavantages SNNS .............................................................. 29 4.2 Avantage/dsavantage de MATLAB ..................................................... 36 4.3 Choix pour la suite du projet.................................................................... 38 5 Application aux logos noir et blanc ........................................................................... 39 5.1 Problmatique .............................................................................................. 39 5.2 Reprsentation des entres. ...................................................................... 41 5.3 Topologie ...................................................................................................... 46 5.4 Mise en oeuvre ............................................................................................ 47

Reconnaissance dimages par rseaux de neurones artificiels

Table des matires

5.4.1 Couche rductrice .................................................................................. 47 5.4.2 Couche auto organisatrice ..................................................................... 50 5.5 Conclusion .................................................................................................... 53 6 Application aux images couleur................................................................................. 54 6.1 Problmatique .............................................................................................. 54 6.2 Reconstruction des contours, architecture et reprsentations .......... 57 6.2.1 Choix de l'architecture........................................................................... 57 6.2.2 Choix des Reprsentations .................................................................... 60 6.2.2.1 Informations topologiques.................................................................. 61 6.2.2.2 Informations chromatiques................................................................. 66 6.3 Reconstruction des contours, mise en oeuvre................................................... 67 6.3.1 Rcapitulation et architecture adopte................................................... 67 6.3.2 Apprentissage ........................................................................................ 69 6.3.3 Reconnaissance...................................................................................... 72 6.4 Limites et difficults .................................................................................. 74 6.4.1 Premire bauche de solution, gnralisation........................................ 74 6.4.2 Deuxime bauche de solution, classification et identification............. 76 6.5 Reconnaissance d'objets, architecture, reprsentations ..................... 77 6.6 Conclusion .................................................................................................... 81 7 Ouverture et conclusion ............................................................................................. 83 Annexe A : Introduction thorique............................................................................... 87 A.1 Neurone formel .......................................................................................... 87 A.2 Perceptron une couche.............................................................................. 89 A.2.1 Introduction .......................................................................................... 89 A.2.2 Description mathmatique .................................................................... 89 A.2.3 Algorithme du perceptron une couche.................................................. 90 A.2.4 Limitations et proprits fondamentales............................................... 91 A.3 Perceptron multicouches .......................................................................... 93 A.3.1 Introduction .......................................................................................... 93 A.3.2 Notation ................................................................................................ 93 A.3.3 Description Mathmatique // vers lalgorithme de rtro-propagation .. 94 A.3.3.1 Vers la couche de sortie..................................................................... 95 A.3.3.2 Vers une couche cache..................................................................... 96 A.3.3.3 Formule gnrale ............................................................................... 98 A.3.4 Algorithme du perceptron multicouches .............................................. 99 A.3.5 En rsum ........................................................................................... 100

Reconnaissance dimages par rseaux de neurones artificiels

Table des matires

A.4 Fonction de transfert ............................................................................... 101 A.5 La fonction d'erreur ................................................................................. 103 A.6 Le pas d'apprentissage ............................................................................ 104 A.7 Autre modles connexionnistes............................................................ 105 A.8 Cartes auto-organisatrices et algorithme de Kohonen .................... 106
A.8.1 Introduction ........................................................................................ 106 A.8.2 Topologie............................................................................................ 106 A.8.2 Algorithme dapprentissage................................................................ 108 A.8.3 Illustrations ......................................................................................... 111 A.9 Mise en oeuvre du modle connexionniste ....................................... 112 A.9.1 Les entres pertinentes........................................................................ 112 A.9.2 La collecte des donnes ...................................................................... 113 A.9.3 Prparation des donnes ..................................................................... 113 A.9.4 Le nombre de neurones cachs ........................................................... 115 A.9.5 La ncessit de la parcimonie ............................................................. 115 Annexe B Utilisation de l'interface SIR ..................................................................... 119 B.1 Avant propos ............................................................................................. 119 B.2 Prsentation, donnes d'usage ............................................................... 120 B.2.1 Introduction......................................................................................... 120 B.2.2 Configuration minimum ..................................................................... 121 B.3 Exemple d'utilisation ............................................................................... 122 B.3.1 Slection d'un stack............................................................................. 123 B.3.2 Navigation dans les images................................................................. 124 B.3.3 Slection des rgions fusionner........................................................ 125 B.3.4 Type de sauvegarde............................................................................. 127 B.3.5 Choix d'un mot.................................................................................... 128 B.3.6 Apprentissage...................................................................................... 130 B.3.7 Reconnaissance ................................................................................... 132 B.4 Options supplmentaires ........................................................................ 135 B.4 Conclusion ................................................................................................. 140 Annexe C Rsultats...................................................................................................... 142 C.1 Logos noir et blanc .................................................................................. 143 C.2 Images couleur .......................................................................................... 145 C.2.1 Arbres bien analyss ........................................................................... 145 C.2.2 Arbres moyennement bien analyss.................................................... 148

Reconnaissance dimages par rseaux de neurones artificiels

Table des matires

C.2.3 Arbres mal analyss ............................................................................ 151 C.2.4 Visages bien analyss ......................................................................... 152 C.2.5 Visages moyennement bien analyss.................................................. 154 C.2.6 Visages mal analyss .......................................................................... 156 Table des figures .......................................................................................................... 160 Table des formules....................................................................................................... 164 Rfrences.................................................................................................................... 167 Bibliographie ........................................................................................................ 167 Internet.................................................................................................................. 168

Reconnaissance dimages par rseaux de neurones artificiels

Chapitre : 1 Prambule

1 Prambule

Depuis prs d'un demi-sicle, les chercheurs en intelligence artificielle et les informaticiens dveloppent des machines capables d'effectuer des tches qui requirent de l'intelligence. Par exemple, la reconnaissance de formes, le contrle de processus industriel, la conduite automatique de robots, data-mining,... Tous ces objectifs ambitieux ont stimul l'inventivit des chercheurs et ont donn lieu de nombreuses ralisations poustouflantes. Cependant, programmer des machines qui, comme les humains ou encore les animaux, seraient capables de s'adapter et d'voluer en fonction de nouvelles situations est difficile. L'enjeu importe beaucoup, car il amne mieux comprendre le comment de nos facults d'adaptation et de reconnaissance. Aujourd'hui, l'ingnieur sait doter une machine de capacits d'apprentissage et d'volution, lui permettant de tirer parti de son exprience. A ce stade, plusieurs approches sont possibles; d'un cot, le concepteur d'une machine apprenante peut s'inspirer du monde biologique et tenter de reproduire certains comportements thologiques ou le fonctionnement de groupes de cellules. D'un autre ct, une dmarche mathmatique s'impose pour permettre un travail rigoureux et

Reconnaissance dimages par rseaux de neurones artificiels

Chapitre : 1 Prambule

cohrent. Mais dans tous les cas, le dveloppeur doit adopter une approche fonctionnaliste de l'esprit selon laquelle celui-ci peut-tre considr comme une fonction calculable, c'est dire ralisable par une machine de Turing. A ce niveau, deux courants de penses s'opposent et se compltent mutuellement; d'une part une approche cyberntique, d'autre part, une approche cognitive. Le cognitivisme propose le dcouplage de l'aspect matriel (hardware) et de l'aspect software. C'est sur le logiciel que se reporte toutes les proprits cognitives du systme (sujet). Mais le cognitivisme va plus loin: Ce courant considre que les symboles manipuls ont le statut de reprsentation d'tat du monde . Pour le dire autrement, les symboles envisags par le cognitivisme ont la fois une ralit matrielle et une valeur smantique. [...] les calculs oprs par la machine deviennent une simulation qui prserve la structure de la ralit. [...] Selon cette approche, la pense modliser procde partir de propositions portant sur le monde, dots d'une syntaxe, et manipul par des rgles d'infrence strictes d'un langage formel, parmi lesquelles figurent au premier plan la dduction, l'abduction, la gnralisation, etc ..., c'est dire des rgles d'infrences lies la logique ( Apprentissage artificiel, p.11, Antoine Cornujols Laurent Miclet, 2002 ). L'approche cyberntique considre, comme pour les cognitivistes, que l'esprit s'assimile l'activit du cerveau, et que le cerveau doit tre considr comme une machine. Norbert Wiener (1894-1964), Allan Turing(1912-1954) et C.E Shannon (1916-2001) sont trois figures emblmatiques de ce mouvement. Le modle cyberntique s'appuie avant tout sur une dimension dynamique de l'apprentissage et sur la simulation et la reproduction de comportements, thologiques par exemple. Ce courant s'applique surtout dcrire l'volution d'un systme adaptatif: comment ragit un systme confront de nouvelles conditions? En revanche, une telle approche exprimentale nuit la construction de modles mathmatiques et thoriques de l'apprentissage. Il s'agit donc, dans la problmatique connexionniste de l'apprentissage artificiel, d'aborder les questions de l'induction, de l'analogie, de la gnralisation et de l'abduction de faon thorique (cognitivisme), sans perdre de vue la ralisation dynamique et la simulation de cet apprentissage par comparaison avec la neurobiologie, par exemple (cyberntique). Le projet suivant se veut partie des deux philosophies, cyberntique et cognitive, dans le souci de bnficier des avantages de chacune, et de mieux comprendre, interprter et mettre en oeuvre le phnomne de l'apprentissage artificiel. Il est mme

Reconnaissance dimages par rseaux de neurones artificiels

Chapitre : 1 Prambule

plus juste de parler de cognitivisme Idal, car dans le cas de la prsente ralisation, les symboles intrinsques utiliss pour l'apprentissage seront considrs par l'auteur comme noumnes (chose-en-soi), au sens de Kant ou Platon. L'idalisme modr de Kant considre que s'il y a des objets dont notre connaissance pourrait ventuellement tre directe, donc sre, (il n'est pas dit qu'il y en ait!), de tels objets ne sauraient tre que de nature mentale: ides, donnes immdiates des sens, etc. Ce ne peuvent tre des choses du monde extrieur , puisque la connaissance de celles-ci passent par l'intermdiaire de sens toujours susceptibles de nous tromper. En consquence, l'idalisme maintient que nous n'avons accs qu' des reprsentations du monde extrieur, des phnomnes . De mme pour Platon qui pense que nous ne voyons finalement que les ombres des Ides, des choses-en-soi, projetes sur un mur au fond d'une grotte (allgorie de la caverne). La position Idaliste se justifie bien dans le sens o une machine apprenante ou un programme n'a accs qu' des reprsentations de son environnement et n'agit efficacement que par traitement de ses donnes internes (oprations mentales). L'ingnieur devient, dans cette optique, un tre transcendantal au sens de Kant; un tre en dehors des reprsentations de la machine, capable d'apprhender la ralit-en-soi du monde extrieur. Il sait modifier les sens de la machine, choisir les reprsentations adquates pour un fonctionnement dsir. Il se place mme en dehors de l'espace et du temps de la machine. L'idalisme prsente ainsi un lien troit avec la dmarche de l'informaticien dans le cadre d'un projet ax sur les rseaux de neurones. L'analyse dveloppe dans les prochains chapitres dcrit justement toutes ces parents en exposant les activits et les difficults de l'ingnieur: l'tude des informations provenant de la ralit, choix des reprsentations adquates, laboration d'un modle, valuation de la qualit du systme.

En dfinitive, le choix philosophique dirige grandement la dmarche du chercheur pour l'approche d'un projet. Dans le prsent cas, une rflexion cognitive associe des identifications avec les sciences neurobiologiques sont le fil conducteur de la recherche permettant d'aboutir un modle dfinitif. Alors que la pense idaliste, modre ou objective1, garantit la cohsion de tout un projet et donne un cadre logique chaque nouvelle approche ou mise en uvre.

1En rfrence l'idalisme 'modr' de Kant et l'idalisme 'objectif' de Platon

Reconnaissance dimages par rseaux de neurones artificiels

10

Chapitre :2 Introduction

2 Introduction

2.1 Description de la nouvelle reprsentation SVG


SVG : Scalable Vector Graphics. Ce langage approuv par le W3C permet d'crire des graphiques vectoriels 2D en XML visualisables sur le Web. Ce format introduit le graphisme interactif en temps rel, en agissant directement sur les autres lments d'un document HTML. Il a t invent en 1998 par un groupe de travail (comprenant Microsoft, Adobe, IBM, Sun, Xerox, Apple, Corel ...) pour rpondre un besoin de graphiques lgers, dynamiques et interactifs. Une premire bauche du langage est sortie en octobre 1998 et en juin 2000 apparat dj la premire version du Viewer Adobe (plug-in permettant de visualiser le SVG). Le SVG s'est trs vite plac comme un concurrent de Flash et ce titre, Adobe a intgr ce langage dans la plupart de ses diteurs. Le langage SVG compte de nombreux avantages, notamment au niveau de la conception et au niveau du rendu graphique:

Reconnaissance dimages par rseaux de neurones artificiels

11

Chapitre :2 Introduction

Au niveau de la conception - Il s'agit d'un langage libre de droit (aucune licence demande). - Etant issu du XML, il offre la possibilit d'utiliser tous les outils XML dont les parsers, les outils de transformations et les bases de donnes. - Le langage est support par les technologies d'Internet les plus communes (HTML, GIF, JPEG, PHP, Java script,... ). - le SVG peut crer du SVG. - Il est possible de compresser un fichier SVG jusqu'a 95% (en utilisant la compression gzip, car le fichier SVG nest que du texte).

Au niveau du rendu graphique - Intgration des trois types d'objets graphiques : formes vectorielles, images, texte. - Utilisation de nombreux effets graphiques. - Les balises SVG sont considres comme des objets et peuvent ainsi recevoir des proprits ou des attributs de styles ; - chaque lment du SVG peut tre group, transform et compos en objet. - Possibilit de zoomer et de retailler une zone de vision. - Les graphiques SVG peuvent intgrer des scripts internes ou externes (ECMAscript ou java script).

Cependant, comme tous les langages rcents, le plug-in SVG (viewer) est encore trs peu implant sur les navigateurs actuels (il devrait tre intgr dans les futures versions d'Internet Explorer). De plus, il n'existe pas aujourd'hui de version pour Netscape. On notera aussi que le SVG risque de se confronter Flash, qui lui est devenu un vrai standard.

Reconnaissance dimages par rseaux de neurones artificiels

12

Chapitre :2 Introduction

2.2 ACSIS
L'image occupe une place de plus en plus prpondrante en informatique, surtout dans le monde de l'internet. Aujourd'hui, il est ncessaire de proposer de nouvelles mthodes de reprsentation d'une image afin d'accder plus directement son contenu ou son sens. Dans ce cadre de recherche, le projet ACSIS, Accs au Contenu Smantique dImages Segmentes, tudie deux directions: - D'une part, la recherche d'images par similarit selon le contenu, dans des banques de donnes. Par exemple, pouvoir identifier des images par l'ensemble des objets contenus dans chacune. - D'autre part, l'accs par des non voyants l'information contenue dans une image complexe. Il s'agit donc de donner un sens au contenu (objets) de l'image. Le projet ACSIS se propose de dvelopper deux diteurs pour chacune des voies choisies. Ces diteurs sont en cours d'laboration, conjointement au groupe Vision par Ordinateur et Multimdia du Centre Informatique de l'Universit de Genve (CUI). Plus prcisment, le premier est labor en relation avec l'quipe 'Viper' dirige par M. Marchand-Maillet, alors que le deuxime est une collaboration avec le groupe 'ABWEB', reprsent par M. David Richoz. Le projet ACSIS s'appuie sur la technologie SVG dcrite au chapitre 2.1. L'intrt d'utiliser SVG rside dans le fait qu'il existe des viewers comme BATIK qui permettent de dfinir des actions lies un graphique ou une image. Il est ainsi possible de dfinir de manire standard un lien entre une action et chaque objet d'une image segmente. La segmentation est au cur du projet. En effet, il est possible de dfinir plusieurs niveaux de segmentation: du plus fin au plus grossier, du plus bas au plus haut. Le niveau le plus fin consiste en un dcoupage de l'image en de nombreuses petites zones indivisibles. Il est alors possible de regrouper les rgions unitaires, tape par tape, afin de remonter au niveau le plus grossier (peu de zones). Cette opration de dcoupage et de regroupement s'appelle le Split and merge et fournit une reprsentation pyramidale de la segmentation. La mthode fait ressortir de l'information chaque niveau. Le projet ACSIS s'applique ainsi donner une reprsentation SVG de la pyramide de segmentation, afin que l'utilisateur, au travers d'une reprsentation interactive puisse facilement faire un choix parmi les diffrents tages de la pyramide. Le projet est original plus d'un titre.

Reconnaissance dimages par rseaux de neurones artificiels

13

Chapitre :2 Introduction

.- Dune part, la dmarche propose offre l'utilisateur le choix d'une segmentation modulable, et donc modifiable. .- Par ailleurs, le choix de la technologie SVG permet d'anticiper une standardisation de l'accs aux contenus smantiques d'images. Dvelopp sur plus d'une anne, le projet ACSIS a rellement dbut en mai 2003 par l'tudes des premiers algorithmes et se prolongera jusqu'en avril 2004 pour donner naissance deux produits; l'un permettant la gnration de code SVG, et l'autre pour la segmentation interactive d'images compltant le produit du groupe 'Viper' et permettant la recherche d'images selon leur contenu.

2.3 Description du projet


Les mthodes de dtections de contours dans une image tons de gris ou en couleurs sont multiples et varies. Pour ne citer que les plus connues, on retrouve la segmentation par watershed (ligne de partage des eaux), la mthode du snake et du waterSnake , les cartes autos-organisatrices, analyse par arbres de dcisions ou graphes,... Le but de ce projet n'est pas de formuler une nouvelle mthode de dtection de contours. Sa spcificit est de chercher une mthode base sur les rseaux de neurones pour raliser un systme capable de r-associer diffrentes zones segmentes d'une image, dans le but de reconstruire des objets entiers et leur donner un sens. Ainsi, une fois que les recherches sur une architecture adquate auront t menes, il sera possible de proposer deux analyses diffrentes: 1 Un programme capable d'identifier des logos noirs blancs par ressemblance avec une banque de donnes connue. Le but est de pouvoir prsenter au programme un nouveau logo, et de savoir s'il est unique ou s'il ressemble trop d'autres logos, et lesquels. 2 Un programme capable de retrouver dans une banque d'images toutes celles contenant un arbre par exemple, ou un visage. De plus, le projet ralis sera capable d'identifier l'arbre ou le visage sur l'image en indiquant le contour de l'objet.

Reconnaissance dimages par rseaux de neurones artificiels

14

Chapitre :2 Introduction

La ralisation de l'ensemble passe avant tout par une tude des outils informatiques disposition, notamment les deux programmes MATLAB et SNNS, et donne naissance un logiciel interfac pour la simulation du projet, ainsi qu'au prsent document.

2.4 Organisation et plan de l'ouvrage

Le document s'agence en diffrentes sections qui peuvent avoir plus ou moins d'intrt pour le lecteur. Le chapitre prsent a pour but de mieux signifier la porte de chaque chapitre du document, et donne un rsum succinct des thmes abords. Chapitre 3 Problmatique de la reconnaissance dimage Des mthodes gnrales ont t dveloppes en reconnaissance des formes pour extraire automatiquement des informations des donnes sensibles afin de caractriser les classes de formes (apprentissage) et d'assigner automatiquement des donnes ces classes (reconnaissance). Il s'agit, dans le chapitre 3, de proposer une mthode gnrale pour l'approche de notre projet, avec brve description des diffrentes parties de la dmarche, comme le pr-traitement, la ressemblance, l'valuation de la qualit... Chapitre 4 Comparaison MATLAB/SNNS Plusieurs outils confirms sont disposition pour permettre l'ingnieur de raliser un projet connexionniste. Le chapitre 4 se veut une comparaison rapide de deux produits performants actuellement sur le march, dans le but d'en slectionner un pour la suite de projet: MATLAB et SNNS (Stuttgart Neuronal Network System). On y dcouvrira une analyse des qualits et des dfauts de chacun. On y trouve galement la mise en oeuvre d'un simple et mme rseau de neurones avec les deux logiciels Chapitre 5 Application logos noir/blanc La mthodologie dcrite au chapitre 3 et le choix des outils fait au chapitre 4 permettent une premire mise en oeuvre avec la reconnaissance de logos noir/blanc. Le chapitre 5 relate la procdure adopte et prsente quelques performances. Pour de plus amples rsultats, le lecteur pourra consulter l'Annexe C.

Reconnaissance dimages par rseaux de neurones artificiels

15

Chapitre :2 Introduction

Chapitre 6 Applications aux images couleurs Cette section reprend galement la dmarche propose au chapitre 3 et 4, mais propose cette fois une application sur des images en couleur. Ce chapitre explique comment il a t opr une reconnaissance de forme par reconstruction des contours. Chapitre 7 Ouverture Le projet peut s'inscrire dans un cadre plus grand de recherche, et le chapitre 7, intitul Ouverture , propose une vision d'avenir du diplme ralis et donne certaine ides d'amlioration, d'applications industrielles possibles,... Chapitre 8 Conclusion Cette section clt simplement le projet et reprenant les diffrents intrts du dveloppement ralis. Annexe A Introduction thorique La premire annexe est thorique. Elle prsente une approche mathmatique du neurone simple, ainsi que la gnralisation un ensemble ou rseau de neurones. Diffrentes architectures neuronales sont dcrites, comme les perceptrons multicouches et les rseaux de Kohonen, ainsi que les algorithmes de convergence (apprentissage) de ces structures. Annexe B Interface utilisateur Le dveloppement des chapitres 5 et 6 a donn naissance une interface utilisateur, SIR (Segmented Images Recognising), permettant de simuler la reconnaissance d'images et l'apprentissage d'objets dans cette image. L'annexe 2 est une aide l'utilisateur qui voudrait se familiariser avec cette interface et l'on y trouve un petit guide dcrivant chaque fonctionnalit du produit au travers d'un exemple d'utilisation. Annexe C Rsultats Cette annexe prsente des rsultats sous forme de liste d'images illustrant les capacits et les limites du projet. Annexe D Codes sources Pour attaquer la ralisation dans toute sa profondeur, le lecteur courageux ou le programmeur pourra se reporter cette section pour dcouvrir le code complet et

Reconnaissance dimages par rseaux de neurones artificiels

16

Chapitre :2 Introduction

comment du projet.

Reconnaissance dimages par rseaux de neurones artificiels

17

Chapitre :3 Problmatique de la reconnaissance dimage

3 Problmatique de la reconnaissance dimage

3.1 Prliminaires

Le problme que cherche rsoudre la reconnaissance des formes est d'associer une tiquette une donne qui peut se prsenter sous forme d'une image ou d'un signal. Des donnes diffrentes peuvent recevoir la mme tiquette, ces donnes sont les ralisations ou les exemplaires de la classe identifie par l'tiquette. Par exemple, le son /a/ prononc par diffrents locuteurs conduit des signaux diffrents mais ces diffrences ne sont pas significatives du point de vue de l'identification du son, ces signaux sont des ralisations ou des reprsentations de la classe /a/. De mme, l'criture manuscrite du caractre A varie d'un scripteur l'autre mais le lecteur identifiera le caractre A pour chacune de ces ralisations. Des mthodes gnrales ont t dveloppes en reconnaissance des formes pour

Reconnaissance dimages par rseaux de neurones artificiels

18

Chapitre :3 Problmatique de la reconnaissance dimage

extraire automatiquement des informations des donnes sensibles afin de caractriser les classes de formes (apprentissage) et d'assigner automatiquement des donnes ces classes (reconnaissance). Paralllement aux travaux sur les mthodes de reconnaissance, se dveloppaient le traitement d'image, la vision par ordinateur, et le traitement de la parole. Ces domaines ont focalis le problme de la reconnaissance sur des donnes spcifiques, mais par ailleurs ils ont permis de situer la reconnaissance dans un processus plus vaste d'interprtation d'images ou de comprhension de la parole. La reconnaissance de forme, de ce fait, se doit de suivre une schmatisation claire et prcise, dont chaque partie mne un traitement spcifique. Ce chapitre a pour but de prsenter les diffrentes facettes dun processus dinterprtation dimages dont les parties intgrantes doivent ncessairement : - obtenir une reprsentation des donnes traiter qui soit manipulable en machine. - limination des bruits, normalisation, re-chantillonnage, amlioration des contrastes, segmentation, etc... - obtenir une reprsentation des donnes compatible avec les outils d'apprentissage et de dcision utiliss. - partir d'un ensemble d'exemplaires et dun modle, construire une reprsentation des classes (apprentissage). - valider les dcisions de l'analyse sur la base des classes connues, pour une ventuelle modification du systme, ou de certaines de ses parties.

3.2 Pr traitement
Les donnes brutes issues de capteurs sont les reprsentations initiales de la ralit partir desquelles des traitements permettent de construire les donnes qui seront utilises pour la reconnaissance. Les entres brutes sont bruites, elles contiennent des informations parasites, et elles n'explicitent pas les informations utiles pour la reconnaissance. Par exemple, l'information sur la forme des objets reconnatre est contenue dans le tableau de pixels rsultant de la numrisation d'une image mais des

Reconnaissance dimages par rseaux de neurones artificiels

19

Chapitre :3 Problmatique de la reconnaissance dimage

traitements seront ncessaires pour, par exemple, sparer une premire fois certaines formes du fond et suivre leurs contours.

Figure 3.1 : schma type de la numrisation et du pr-traitement

Pour les pr-traitements, le concepteur s'aide des connaissances qu'il possde sur les capteurs, les types donnes, le problme pos et les mthodes d'apprentissage et de reconnaissance qu'il utilisera. Le traitement du signal et de l'image sont les principales sources pour les mthodes de pr-traitement : filtrage (des bruits hautes frquences, par exemple), amlioration des contrastes, extraction de contours ou de squelettes, modlisation du signal temporel, extraction des primitives, etc. Les pr-traitements et l'apprentissage ont des buts communs qui consistent liminer les informations parasites et conserver les informations pertinentes pour la reconnaissance. La limite entre pr-traitement et apprentissage relve des possibilits des mthodes d'apprentissage utilises.

3.3 Reprsentation
Le systme de reconnaissance de formes doit possder des reprsentations des

Reconnaissance dimages par rseaux de neurones artificiels

20

Chapitre :3 Problmatique de la reconnaissance dimage

formes classer et des classes associer. Les types de reprsentation sont dtermins par les mthodes utilises. Les contenus des reprsentations sont dtermins par les buts de la reconnaissance.

3.3.1 Reprsentation d'un exemplaire Plusieurs choix sont possible et dpendent, comme indiqu au chapitre prcdent, des buts et mthodes de la reconnaissance. Nanmoins, il est possible de citer quelques choix: - Un vecteur de dimension n. Chaque dimension correspond la mesure d'une caractristique sur l'exemplaire. Chaque exemplaire est alors un point de Rn. - Une organisation de primitives sous forme de squences, de graphes ou de rgles de composition. - Un ensemble de proprits, une description logique. - Des fonctions, quations paramtriques des contours etc. On appelle caractristique (ou descripteur) une information qui peut tre mesure sur la donne reconnatre. Par exemple : l'amplitude moyenne d'un signal sur une fentre temporelle, l'nergie dans une bande de frquence, le rapport hauteur sur largeur d'un caractre manuscrit, le niveau de gris moyen d'une zone d'image etc.

3.3.2 Reprsentation des classes Dans le cas o l'on disposerait d'un ensemble d'exemplaires tiquets, on distingue les dmarches qui pratiquent un apprentissage supervis pour induire la reprsentation des classes de celles qui ne pratiquent pas d'apprentissage. Dans tous les cas, on recherche des reprsentations des classes qui permettront d'obtenir les meilleures performances en reconnaissance.

Reconnaissance dimages par rseaux de neurones artificiels

21

Chapitre :3 Problmatique de la reconnaissance dimage

Figure 3.2 : Schma type du calcul des reprsentations

3.4 Lapprentissage
L'apprentissage a pour but de gnraliser l'information porte par les exemplaires de l'ensemble d'apprentissage pour faire merger les reprsentations des classes. Ces reprsentations doivent permettre de s'affranchir de la variabilit des exemplaires d'une classe lors de la prise de dcision. La validation de l'apprentissage est faite par les taux de reconnaissance obtenus sur un ensemble test constitu d'exemplaires diffrents de ceux de l'ensemble d'apprentissage.

Le type de reprsentation choisi pour les exemplaires (un vecteur de Rn, une composition de symboles...) va conditionner le type de reprsentation des classes (un sous-espace de Rn, une grammaire...).

Reconnaissance dimages par rseaux de neurones artificiels

22

Chapitre :3 Problmatique de la reconnaissance dimage

Figure 3.3 : Schma type d'un apprentissage

3.5 Ressemblance
Ce qui fait problme pour reconnatre des formes comme tant des exemplaires d'une classe est d'une part la variabilit intra-classe et d'autre part la sparabilit des classes. Les exemplaires d'une classe ne sont pas identiques, ils se ressemblent, alors que les exemplaires appartenant des classes diffrentes ne se ressemblent pas. Le problme sera donc de formaliser cette ressemblance. On peut supposer que la ressemblance des exemplaires d'une classe est due la prsence d'invariants caractristiques de la classe. Par exemple, les rectangles ont toujours quatre cts qui forment des angles droits. En fait, les ralisations main leve de rectangles s'loignent fortement de cette dfinition. Ce qui conditionne la dcision est le fait que la figure ressemble d'avantage un rectangle qu' une autre figure gomtrique, elle en est plus proche au sens d'une mtrique dfinir.

Reconnaissance dimages par rseaux de neurones artificiels

23

Chapitre :3 Problmatique de la reconnaissance dimage

La rpartition des exemplaires dans l'espace de reprsentation fait rarement apparatre une parfaite sparation entre les diffrentes classes, ce qui provoque une ambigut dans les dcisions. On peut associer une valeur la dcision pour indiquer avec quelle confiance elle a t prise.

Figure 3.4 : Schma type pour l'valuation de la qualit

La ressemblance peut tre mesure : - par la distance d'un exemplaire inconnu un prototype, c'est l'appariement de formes (Pattern Matching). Mthodes : Programmation dynamique pour la comparaison de chanes, de graphes, masques lastiques ...

Reconnaissance dimages par rseaux de neurones artificiels

24

Chapitre :3 Problmatique de la reconnaissance dimage

- par la distance d'un exemplaire inconnu des exemplaires dont on connat la classe d'appartenance: mthode des k-plus-proches-voisins. Dans le cas o les classes sont reprsentes par des sous espaces de Rn, des langages, des descriptions logiques, la ressemblance est donne par la position de l'exemplaire inconnu par rapport aux espaces dfinis par les reprsentations des classes. Mthodes : thories statistiques de la dcision pour un espace Rn, analyse syntaxique pour des classes reprsentes par des langages,...

Reconnaissance dimages par rseaux de neurones artificiels

25

Chapitre :3 Problmatique de la reconnaissance dimage

3.6 Rsum
Les chapitres prcdents ont permis de mettre en place une stratgie dapproche pour lanalyse et la reconnaissance de formes et dobjets. Le schma suivant s'impose de lui-mme:

Figure 3.5 : Schma type du projet de reconnaissance d'image

Reconnaissance dimages par rseaux de neurones artificiels

26

Chapitre :3 Problmatique de la reconnaissance dimage

Buts des tapes du schma :

Numrisation : obtenir une reprsentation des donnes traiter qui soit manipulable en machine. Pr-traitement : limination des bruits, normalisation, re-chantillonnage, amlioration des contrastes, segmentation, etc... Calcul des reprsentations : obtenir une reprsentation des donnes compatible avec les outils d'apprentissage et de dcision utiliss. Apprentissage : partir d'un ensemble d'exemplaires et dun modle, construire une reprsentation des classes. Analyse : Validation: assigner une forme inconnue une classe. valider les dcisions de l'analyse sur la base des classes connues, pour une ventuelle modification du systme, ou de certaines de ses parties (en rouge).

3.7 Remarques
Le prsent projet prend naissance ltape caractrise par le calcul des reprsentations. Les images analyses sont effectivement pr-traites, mais cette tape constitue un travail part entire, ralis dans le cadre du projet ACSIS par MM Patrick Rosselet et Olivier Loesli. Les images sont avant tout segmentes, selon lalgorithme de Prime, et reprsentes selon la nouvelle norme SVG. Un fichier SVG contient des informations sur la segmentation de limage, savoir : - Un identifiant de chaque zone segmente. - La taille de chaque zone segmente. - une reprsentation RGB et HSB de la couleur de la zone. - La liste des contours de chaque zone segmente.

Reconnaissance dimages par rseaux de neurones artificiels

27

Chapitre :3 Problmatique de la reconnaissance dimage

- La liste des voisins de chaque zone segmente.

A chaque zone est ainsi associe une balise <path> de la forme suivante :

<path id="groupe1" no="71" onclick="click(evt)" fill="rgb(187,169,170)" stroke="black" d="M 99 75,102 75,102 78,102 81,102 84,99 84,z"/> <!--Voisins 70 72 80 85 27 64 --> <!--Taille 40 --> <!--CouleurHSB 0.99444443 0.09625668 0.73333335 --> Exemple de rgion dune image dfinie selon la norme SVG

La suite de ltude sera base sur les informations fournies par des fichiers SVG pour simuler une reconnaissance dobjets.

Il existe beaucoup de modles dapprentissage, et il serait vain de vouloir tous les citer. Mais parmi tous, le modle connexionniste a t retenu et prsente le centre du prsent travail.

Reconnaissance dimages par rseaux de neurones artificiels

28

Chapitre :4 Comparaison MATLAB / SNNS

4 Comparaison MATLAB / SNNS

Le travail de l'ingnieur commence toujours par le choix des outils qu'il va utiliser pour la ralisation d'un projet. Ce choix est de premire importance, car c'est lui qui va dcider notamment du temps et du cot de dveloppement, de la portabilit du projet, de la qualit du traitement ainsi que de son type,... Ces critres sont ceux qui seront tudis pour les programmes MATLAB et SNNS.

4.1 Avantages/dsavantages SNNS


SNNS est un outil puissant et optimis offrant une grande flexibilit au niveau de la simulation. Sa comprhension passe par l'analyse de sa structure. Le logiciel s'agence en quatre grandes parties, comme illustr sur la figure 4.1: le noyau du simulateur, Une interface utilisateur graphique, une grammaire permettant l'excution de scripts Batchman, et un compilateur de rseaux de neurones SNNS2c.

Reconnaissance dimages par rseaux de neurones artificiels

29

Chapitre :4 Comparaison MATLAB / SNNS

Le noyau du simulateur opre sur la structure interne du rseaux de neurones et gre toutes les oprations ce niveau. L'interface graphique (XGUI) donne une reprsentation intressante des rseaux et permet directement de crer, manipuler, visualiser et tester un rseau de neurones de diffrentes manires. Le langage Batchman est model entre des langages comme PASCAL, C, MODULA2 et permet de faon trs instinctive, de simuler un rseau de neurones, de l'diter, de modifier sa structure de sauvegarder ses rsultats, comme pour XGUI. Le compilateur SNNS2c donne l'occasion de compiler un fichier de description SNNS d'un rseau de neurones en code source C. Le fichier .c gnr par SNNS2c ne bnficie plus des fonctionnalits de SNNS (dition, modification,...). Ce code gnr en C sert surtout pouvoir implanter le rseau dans un projet plus grand.

Figure 4.1 : Schma du logiciel SNNS

Reconnaissance dimages par rseaux de neurones artificiels

30

Chapitre :4 Comparaison MATLAB / SNNS

La simulation d'un projet avec SNNS s'agence en trois parties: 1.-Edition d'une architecture de rseau de neurones par l'interface XGUI : cration d'un fichier .net (Net_work). 2.-Ecriture de la liste des entres et des sorties qui seront prsentes au rseau de neurones pour un apprentissage : cration d'un fichier .pat (Pat_tern). 3.-Ecriture d'un script de modlisation de l'apprentissage, et de stockage des rsultats : cration d'un fichier .bat (Bat_chman).

Le logiciel SNNS propose la cration de diffrents modles connexionnistes. Parmi les plus courants, on reconnat les perceptrons multicouches, les rseaux dynamiques et boucls, Kohonen,... SNNS offre galement, pour chacun de ces modles, une panoplie d'algorithmes d'apprentissage, citons en quelques uns, les plus connus: - Back-propagation - Back-percolation - K-moyennes - Apprentissage dynamique par quantification vectorielle - Monte Carlo - ... Un exemple simple permet de bien illustrer les mcanismes du logiciel SNNS: Il s'agit pour cet exemple de crer un compteur 4-bit modulo 4. D'entre, nous pouvons choisir une structure de perceptron (une couche ou multicouches) contenant une couche d'entre 4 neurones et d'une couche de sortie deux neurones. L'interface XGUI de SNNS permet de crer trs vite une telle structure neuronale qui sera stocke dans le fichier Exemple_Net.net .

Reconnaissance dimages par rseaux de neurones artificiels

31

Chapitre :4 Comparaison MATLAB / SNNS

Le fichier Exemple_Net.net contient l'tat de chaque connexion entre neurones du rseau, ainsi que les vecteurs de biais, et des informations relatives l'initialisation du rseau, sa fonction de transfert et son algorithme d'apprentissage. Le fichier Exemple_Net.net a l'allure suivante:

Exemple de code 4.1 : Exemple_Net.net


SNNS network definition file V1.4-3D generated at Fri Sep 26 14:25:52 2003 network name : NetTestBat1 source files : no. of units : 8 no. of connections : 12 no. of unit types : 0 no. of site types : 0

learning function : Rprop update function : Topological_Order

unit default section : act | bias | st | subnet | layer | act func | out func ---------|----------|----|--------|-------|--------------|------------0.00000 | 0.00000 | h | 0 | 1 | Act_Logistic | Out_Identity ---------|----------|----|--------|-------|--------------|-------------

unit definition section : no. | typeName | unitName | act | bias | st | position | act func | out func | sites ----|----------|----------|----------|----------|----|----------|----------|----------|------1 | | | 1.00000 | 0.02064 | i | 2,2,1 ||| 2 | | | 0.00000 | -0.36342 | i | 2,3,1 ||| 3 | | | 0.00000 | -0.73386 | i | 2,4,1 ||| 4 | | | 1.00000 | -0.38463 | i | 2,5,1 ||| 5 | | | 0.23284 | 1.56220 | h | 5,2,1 ||| 6 | | | 0.00000 | 16.11093 | h | 5,3,1 ||| 7 | | | 0.00001 | 7.99998 | o | 8,2,1 ||| 8 | | | 0.99997 | 10.50436 | o | 8,3,1 ||| ----|----------|----------|----------|----------|----|----------|----------|----------|-------

connection definition section : target | site | source:weight -------|------|---------------------------------------------------------------------------------------------5 | 6 | 7 | | 1:-0.01448, 2:-0.00614, 3:-32.17827, 4:-2.74005 | 1:-2.17056, 2: 4.64729, 3: 7.93761, 4:-31.77466 | 5:-82.95226, 6:48.33743

Reconnaissance dimages par rseaux de neurones artificiels

32

Chapitre :4 Comparaison MATLAB / SNNS

Une fois le fichier .net cr, il faut indiquer dans le formalisme SNNS la liste des entres, ainsi que les sorties qui leur sont associes. Cette tche s'effectue au travers du fichier Exemple_Pattern.pat . Le formalisme SNNS est trs simple et le fichier Exemple_Pattern.pat s'agence ainsi:

Exemple de code 4.2 : Exemple_Pattern.pat


SNNS pattern definition file V4.2 generated at Fri Sep 26 14:25:52 2003 /* Description du type de formalisme (SNNS V4.2) /* Ces deux lignes sont obligatoires

No. of patterns : 10 No. of input units : 4 No. of output units : 2

/* Nombre de patterns dcrit dans le fichier /* Dimension des entres /* Dimension des sorties

/* Description des patterns d'entre et les sorties respectives leur associer #Input No 1 : 0 0 0 0 #Output No 1 : 0 0 #Input No 2 : 0 0 0 1 #Output No 2 : 0 1 #Input No 3 : 0 0 1 0 #Output No 3 : 1 0

[...]
#Input No 10 : 1 0 0 1 #Output No 10 :

Reconnaissance dimages par rseaux de neurones artificiels

33

Chapitre :4 Comparaison MATLAB / SNNS

Il s'agit maintenant de relier le rseau de neurones ( .net ) avec les entres/sorties ( .pat ) pour raliser l'apprentissage du rseau stock dans le fichier .net . Cela s'effectue grce la rdaction du fichier Exemple_Batch.bat , crit dans la grammaire propose par SNNS. Cette grammaire permet de charger facilement un fichier .net ainsi qu'un fichier .pat , et de crer l'apprentissage dsir, de travailler sur le rseau de neurones lui-mme,... Le fichier Exemple_Batch.bat s'organise de la faon suivante:

Exemple de code 4.3 : Exemple_Batch.bat


#EVRARD YANNICK 26.09.2003 #Test d'utilisation de Batchman #Les affectations preliminaires automatiques ############################################ LearningSet Net NetBest = "Exemple_Pattern.pat" = "Exemple_Net.net" = "NetBest.net"

#Declaration des paramtres d'apprentissage et d'optimisation ############################################################# InitMin = -1.0 InitMax = 1.0 MaxCycle = 1000 Threshold = 0.000001 TrainSSE = 3.0e+15 BestSSE = 3.0e+15 #Chargement des fichiers ".net" et ".pat" ######################################### loadNet ( Net ) loadPattern ( LearningSet ) #Initialisation du NN ##################### setInitFunc ( "Randomize_Weights" , InitMax , InitMin ) setSeed () initNet () #Choix de la fonction d'apprentissage ##################################### setLearnFunc ( "Rprop" , 0.0 , 0.0 , 0.0 ); #Apprentissage et optimisation ############################## while TrainSSE > Threshold and CYCLES < 1000 do trainNet () TrainSSE=SSE if CYCLES mod 10 == 1 then print("TRAIN CYCLE : ", CYCLES, " ERREUR INSTANTANEE : ", SSE) endif endwhile #Sauvegarde des rsultats ######################### saveResult( "./Exemple_Resultat.res" , 1 , PAT , TRUE , TRUE , "create") saveNet(NetBest)

Reconnaissance dimages par rseaux de neurones artificiels

34

Chapitre :4 Comparaison MATLAB / SNNS

Le mme script Batchman permet galement de simuler le rseau de neurones aprs apprentissage et de stocker les rsultats dans le fichier Exemple_Resultat.res . Le fichier .res a l'allure suivante:

Exemple de code 4.4 : Exemple_Resultat.res


SNNS result file V1.4-3D generated at Fri Sep 26 14:25:52 2003 No. of patterns : 10 No. of input units : 4 No. of output units : 2 startpattern : 1 endpattern : 10 input patterns included teaching output included #1.1 /* Numro du pattern prsent en entre. 0 0 0 0 /* Pattern prsent 0 0 /* Sortie espre 0 0.00001 /* Sortie effective du perceptron comparer avec la sortie espre #2.1 0 0 0 1 0 1 0.00001 0.99997 #3.1 0 0 1 0 1 0 1 0.00001 #4.1 0 0 1 1 1 1 0.99967 0.99997 #5.1 0 1 0 0 0 0 0.00001 0.00001 #6.1 0 1 0 1 0 1 0.00001 0.99997 #7.1 0 1 1 0 1 0 1 0.00001 #8.1 0 1 1 1 1 1 0.99996 0.99993 #9.1 1 0 0 0 0 0 0.00001 0.00001 #10.1 1 0 0 1

Reconnaissance dimages par rseaux de neurones artificiels

35

Chapitre :4 Comparaison MATLAB / SNNS

4.2 Avantage/dsavantage de MATLAB

MATLAB est un outil trs puissant offrant une grande panoplie de paquetages contenant nombre de fonctionnalits intressantes. Parmi ces paquetages, nous trouvons le NN_ToolBox ainsi que le Som_ToolBox . le NN_ToolBox est gratuit et inclus dans toute version standard de MATLAB. Il se compose d'une interface utilisateur (malheureusement pauvre et mal construite), ainsi que d'un jeu de fonctions trs complets pour crer, simuler, modifier un rseau de neurones. MATLAB propose, tout comme SNNS, la possibilit de mettre en oeuvre maint architectures neuronales, ainsi que divers algorithmes d'apprentissage. le Som_ToolBox permet, quand lui, de raliser des classements par carte auto-organisatrices rapidement et efficacement. Il est compos d'un jeu de fonctions complet permettant d'initialiser une SOM (Self-Organising Map), de l'entraner, de la reprsenter, ainsi qu'une grande panoplie de fonctions auxiliaires offrant la possibilit de normaliser les vecteurs d'entres, d'obtenir grand nombre de rsultats intermdiaires, etc. ... La cration d'un projet sous MATLAB est relativement diffrente de la mthode sous SNNS, et par comparaison, nous nous proposons de prsenter le mme rseau de neurones mis en oeuvre avec SNNS, savoir un compteur 4-bit modulo 4 l'aide d'un perceptron une couche d'entre de 4 neurones et une couche de sortie de 1 neurone. Voici le script MATLAB qui ralise cette action:

Reconnaissance dimages par rseaux de neurones artificiels

36

Chapitre :4 Comparaison MATLAB / SNNS

Exemple de code 4.5 : Exemple MALTAB


% %Exemple de mise en oeuvre d'un perceptron une couche cache de 2 %neurones, pour apprendre compter modulo 4 % %Mise jour du Workspace en le nettoyant, et fermeture de toutes les %fenetres actives: clear all; close all;

%Cration du ENTREE = [ 0 0 0 0

lot 1 0 0 1 0 0 0 0

d'entres: les entier 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1

de 0 15 sous forme binaire: 0 1 ; ... 1 1 ; ... 1 1 ; ... 1 1 ]

%Les sorties associer chaque entre: 0, 1, 2, 3, 0, 1, ... SORTIE = [ 0:3 0:3 0:3 0:3 ];

%Paramtres topologiques: One_NetSize = [ 2 , 1 ]; mima=[zeros(4,1) ones(4,1)];

%Taille du premier rseau %MINMAX des entres

%Cration d'un nouveau PMC avec les paramtres topologiques indiqus: net=newff(mima,One_NetSize,{'tansig','purelin'},'trainrp');

%Ralisation d'un apprentissage pour le rseau de neurone "net" avec les %paramtres ENTREE et SORTIE: net = train ( net , ENTREE , SORTIE ) ;

%Simulation du rseau de neurones et stoquage des rsultats dans la %variable RESULTAT: RESULTAT = round ( sim ( net , ENTREE ) ) ;

Reconnaissance dimages par rseaux de neurones artificiels

37

Chapitre :4 Comparaison MATLAB / SNNS

4.3 Choix pour la suite du projet

MATLAB et SNNS sont deux outils de dveloppement possdant chacun leur intrt: SNNS offre une grande facilit pour implmenter des rseaux de topologies complexes, alors que MATLAB permet de dvelopper et simuler rapidement un projet. Les temps d'excutions ne sont pas tout fait similaires pour les deux logiciels. SNNS s'excute en C, ce qui lui fournit une grande efficacit, alors que MATLAB est un langage vectoris, se qui est un avantage pour la cration de modles connexionnistes, car la majeure partie des oprations mises en oeuvres sont des produits scalaires et matriciels. Cependant, il semble que MATLAB soit plus efficace pour des lots d'apprentissage infrieur 5'000 vecteurs, alors que SNNS est plus rapide en calcul pour des lots d'apprentissages suprieur 5'000 exemplaires.

Mais chacun des logiciels soulvent quelques difficults: Ainsi, il est difficile d'implmenter un modle non-supervis (Kohonen, kmoyennes,...) avec SNNS de manire cohrente, alors que MATLAB permet la construction de telles architectures avec une facilit dconcertante. Sous MATLAB, par contre, la ralisation de modles superviss (perceptrons,...) complexes, relvent du domaine de l'acrobate. Deux lments majeurs interviennent cependant: le premier, est que le projet ACSIS est actuellement dvelopp en JAVA sous WINDOWS. MATLAB tourne sur environnement WINDOWS galement, ce qui est dj une facilit. De plus, il est possible, et cela trs simplement, d'interfacer MATLAB avec le langage JAVA. En effet, MATLAB fonctionne sur la base d'une Machine Virtuelle Java. Ainsi, un script MATLAB peut appeler une classe JAVA, ou mme tout un paquetage. Le deuxime lment majeur provient des considrations sur la taille du lot d'apprentissage. Ce lot dpassera rarement les 5'000 exemplaires.

Ainsi, le choix est fait d'utiliser MATLAB comme outil de dveloppement pour la suite du projet.

Reconnaissance dimages par rseaux de neurones artificiels

38

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

5 Application aux logos noir et blanc

5.1 Problmatique
Le chapitre 3 a pos un cadre pour la reconnaissance d'images, que nous allons reprendre et appliquer pour l'identification de logos noir et blanc. Il s'agit ainsi de proposer une reprsentation de l'image, puis une mthode d'apprentissage lie la reprsentation, et finalement, une srie de tests et vrifications pour valider le modle choisi. Mais avant tout, il est essentiel de bien comprendre le problme. Une formulation plus complte de celui-ci permettra d'laborer plus vite une architecture. Il faut pouvoir dire d'un nouveau logo s'il est unique ou s'il ressemble par trop un exemplaire dj existant. C'est dire qu'il va falloir le classer par rapport un groupe de logos dj connus et tous dj associs une classe. Si la classe dans laquelle entre le nouveau logo est trop proche des classes dj existantes, alors on pourra dire que le nouvel exemplaire n'est pas original. Il sera galement intressent de retrouver les logos les plus proches d'une image choisie ( connue ou inconnue). D'ors et dj, une structure de rseau de neurones s'impose: les cartes auto-

Reconnaissance dimages par rseaux de neurones artificiels

39

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

organisatrices ou rseaux de Kohonen, comme dcrits dans l'annexe thorique section A.8. Une carte auto-organisatrice est fonde sur le schma de l'illustration 5.1: le rseau se compose de :

Figure 5.1 : Schma dune carte auto organisatrice

1 d'une couche d'entre de N neurones qui reoivent toutes les composantes d'un vecteur d'entre x normalis appartenant RN. 2 d'une couche de sortie figure par un treillis sur N1 N2 ou N3 habituellement. La reprsentation 2D de la couche de sortie est souvent la plus commode. Chaque neurone de la seconde couche est reli toutes les entres par un poids ik. Chacun des ces neurones caractrise une classe laquelle peut appartenir le vecteur d'entre.

Reconnaissance dimages par rseaux de neurones artificiels

40

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

La particularit des cartes auto-organisatrices de Kohonen rside dans la notion de voisinage d'un neurone. Chaque neurone possde un ensemble de voisins directs, c'est dire de classes proches. Ainsi, deux patterns d'entre classs par deux neurones topologiquement proches appartiendront deux classes spares mais similaires. La distance entre les sorties sur un treillis 2D caractrise la distance entre deux vecteurs X1 et x2 de Rn. Cette reprsentation a donc le mrite de gnraliser un ensemble de vecteurs de R , et de diminuer le nombre de dimensions des reprsentations (on passe par exemple de N 2 dimensions )
n

Le choix d'une carte auto-organisatrice garantit ainsi de pouvoir dfinir une distance entre tous les logos, ce qui rpond entirement au problme de leur reconnaissance et identification. La distance entre deux exemplaires sur la carte de Kohonen renseigne immdiatement sur la ressemblance ou la dissemblance des deux.

5.2 Reprsentation des entres.


Toute l'information du fichier SVG est trop consquente pour permettre quelconque apprentissage. Il faut donc, dans un premier temps, sparer l'information en sous-groupe. Il est possible, ainsi, de donner une reprsentation incomplte de l'image en ne considrant que le graphe des voisins de chaque zone segmente. Une autre reprsentation consiste en les contours de chaque zones uniquement. La premire reprsentation offre une connaissance topologique de l'image ( rapprocher de la branche mathmatique qui porte le mme nom), alors que la deuxime reprsentation fournit une connaissance gographique du logo. La connaissance de la topologie d'un logo ne permet malheureusement son identification que dans de trs rares cas. D'autant plus que les proprits topologies d'identit de deux formes sont applicables ici, savoir que deux objets sont identiques si l'un peut tre obtenu de l'autre par transformation continue, sans dchirement . L'exemple habituel, dcrit largement dans de nombreux d'ouvrages, indique qu'un carr est identique un cercle, mais pas un tore. De mme, une tasse de caf et un Donut (tore) sont topologiquement identiques, car tous deux n'ont qu'un trou , et donc, par dformation continue du Donut, on peut obtenir une tasse de caf. Mais on ne peut pas

Reconnaissance dimages par rseaux de neurones artificiels

41

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

gnrer un Donut partir d'une sous-tasse sans dchirer cette sous-tasse un moment ou un autre.

Figure 5.2 : Dformation continue d'une tasse de caf pour obtenir un donut (tore)1

Figure 5.3 : Transformation discontinue due une topologie diffrente entre une tasse et un disque

Ainsi, les deux logos (c) et (d) de la figure 5.4 sont topologiquement identiques, et les deux logos(a) et (b) sont topologiquement trs diffrents, et ceci pour un pixel de diffrence.

Reconnaissance dimages par rseaux de neurones artificiels

42

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Figure 5.4 : Contres-exemples extrmes pour lanalyse de la topologie

Il faut observer que sur l'image (a) le disque est disjoint de la structure en P, mais pas dans l'image (b), et ceci pour un pixel de diffrence. Les images (a) et (b) sont topologiquement diffrentes. Par contre, les images (c) et (d) ont la mme topologie: un seul objet blanc comportant un trou unique La connaissance topologique du logo de sera pas retenue, car deux images trs dissemblables peuvent avoir un mme graphe, tout comme deux images trs proches peuvent avoir deux graphes fortement diffrents. L'information la plus consquente s'obtient partir des contours de chaque zones segmentes. Celle-ci conserve en effet une information sur la rpartition gographique des zones, et donc, indirectement, de sa topologie. Cependant, un problme subsiste: si l'on dcide de reprsenter un logo comme tant une image 100x100, toute noire, et ne contenant que les contours des domaines du logo en blanc, on obtient gnralement une image noire plus de 99% : en moyenne, moins de 1% des pixels sont blanc. Ds lors que toutes les reprsentations sont identiques 99%, toutes seront identifies dans une mme classe par la SOM (Self Organising Map). Il s'avre ainsi difficile de ne travailler qu'avec les contours. Dans le cadre des logos noir et blanc, il est alors dcid de travailler directement partir de l'image JPG.

Reconnaissance dimages par rseaux de neurones artificiels

43

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Cependant, il faut rappeler que les logos sont des images TIF de dimension 100x100; c'est dire 10'000 composantes par pattern d'entre. C'est beaucoup trop. Il faut donc rduire la taille de l'image. Le choix est fait d'utiliser galement des rseaux de neurones pour la rduction de l'image. On se propose de spliter l'image en sous-rgions carres de 5 pixels de ct. On obtient ainsi 400 petits dcoupages du logo original. Maintenant, un petit rseau de neurones peut recevoir chaque carr de 5x5 ( vecteur 25 composantes) et l'identifier une seule valeur. Cette valeur peut ne pas tre la moyenne des 25 pixels du carr. Cela serait mme triste. Il est par contre possible d'associer des valeurs des dispositions diffrentes des 25 pixels. On obtient finalement une image de 20x20 pixel reprsentant un logo. Cela permet d'effectuer une division par 25 du nombre de variables du systme (de 10'000 400). La figure 5.5 prsente un schma pour l'illustration du dcoupage du logo et de l'analyse par 400 rseaux de neurones.

Reconnaissance dimages par rseaux de neurones artificiels

44

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Figure 5.5 : Rduction dune image avec 400 rseaux des neurones analysant chacun une petite partie du logo

Les 400 petits rseaux peuvent tre implments de diffrentes faons. Deux mthodes on t testes, et toutes deux donnent des rsultats similaires au niveau de la qualit et des temps d'apprentissages et d'excution. - Implmentation comme carte de Kohonen - Implmentation comme perceptron multicouches Les deux mthodes sont reprises dans le chapitre suivant.

Reconnaissance dimages par rseaux de neurones artificiels

45

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

5.3 Topologie
Maintenant que nous possdons une reprsentation rduite du logo, il est possible de raliser un apprentissage non supervis sur ces nouvelles images 20x20, l'aide d'une structure comme illustre sur la figure 5.1. Chaque logo rduit doit videment tre transform nouveau en vecteur de 400 composantes. Si l'on inclut le schma de la carte auto organisatrice de l'illustration 5.1 au schma 5.5 de la page prcdente, on obtient le modle gnral propos pour la reconnaissance et l'identification de logos noir et blanc, reprsent sur la figure suivante (figure 5.6) :

Figure 5.6 : Modle gnral de reconnaissance de logos noir/blanc

Reconnaissance dimages par rseaux de neurones artificiels

46

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

5.4 Mise en oeuvre


5.4.1 Couche rductrice A la section5.2, il a t simplement cit deux mthodes pour laborer un rseau de neurones qui reoit chaque petite partie d'image (5x5): soit par une SOM, soit par un perceptron multicouches (PMC). Observons la ralisation des deux:

Implmentation comme carte de Kohonen Pour cette mthode, il est ncessaire de crer avant toute chose un ensemble de configurations d'un carr de 5x5 significatif et suffisamment grand afin d'adapter une carte par apprentissage non supervis sur cet ensemble. Voici en exemple sur l'illustration 5.7 les exemplaires de bases choisis. Ils sont au nombre de 65.

Figure 5.7 : 65 exemplaires de carrs 5x5

Reconnaissance dimages par rseaux de neurones artificiels

47

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Sur la base d'apprentissage de la figure 5.7, il a t possible d'entraner un rseau de Kohonen (SOM) de 25 neurones, pour russir dfinir 22 classes spares. Ainsi, chaque petite rgion de 5x5 sera associe une valeur entre 1 et 22. on obtient le genre d'entre suivante:

Logo 1941

Rduction 1941

Logo 1943

Rduction 1943

Logo 1944

Rduction 1944

Figure 5.8 : Exemples de rponse de la couche rductrice avec une SOM

Il faut constater que les rgions toute noir ou toute blanche sont mises une mme valeur. Cela permet d'identifier les logos autant que leur ngatif.

Reconnaissance dimages par rseaux de neurones artificiels

48

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Implmentation comme perceptron multicouches Le choix d'utiliser un PMC pour l'analyse d'un carr de 5x5 du logo de base implique galement la cration d'une base d'apprentissage. Pour cela, la base prsente sur la figure 5.7 est reprise. La diffrence avec la mthode par SOM est que cette fois il va falloir associer soimme une classe chaque vecteur de la base d'apprentissage. Cela permet en fait de pouvoir identifier les 65 vecteurs possibles comme tous diffrents. Ainsi, toute autre configuration sera rapproche de l'une des 65 connues. On utilise pour cette mthode un perceptron une couche cache de 10 neurones et un neurone de sortie. Il ne reste ainsi plus qu' entraner le PMC avec la base d'apprentissage, puis le simuler sur chacune des 400 petites dcoupes du logo. Les sorties ont l'aspect suivant:

Logo 2986

Rduction 2986

Logo 2987

Rduction 2987

Logo 2991

Rduction 2991

Figure 5.9 : Exemples de rponse de la couche rductrice avec un PMC

Reconnaissance dimages par rseaux de neurones artificiels

49

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

5.4.2 Couche auto organisatrice Cette couche reprend simplement l'image rduite issue de la premire couche rductrice. Sur la base d'un lot suffisamment grand de logos rduits, la SOM de la couche auto organisatrice peut classer tous les exemplaires par similarit. Il est dcid d'utiliser pour la carte un treillis 2D de topologie rectangulaire, c'est dire que chaque neurone a 4 voisins directs. La carte a une dimension de 30x30 (900 neurones). Cela permet de bien diffrentier les logos, sachant que la base de logos est forte de 2809 exemplaires. Il est videment possible de choisir une carte plus grande ou plus petite, selon la taille du lot d'exemplaires. Aprs apprentissage non supervis, la carte s'active chaque prsentation d'un exemplaire. Tous les neurones sont plus ou moins activs, mais parmi tous, un l'est plus que les autres. C'est le neurone gagnant. On peut voir sur l'illustration 5.10 ce qu'il se passe au niveau de l'activation de la carte auto organisatrice pour diffrents logos: les figures vont par triplet et les images du centre et de droite montrent l'tat de la carte auto organisatrice. Plus le pixel est blanc, plus l'activation est forte. Les reprsentations 2D et 3D de la SOM en couleurs chaudes (nuance de jaunes et de rouges) permettent de bien souligner la similarit entre les deux premiers logos (235 et 239). De mme, on constate facilement la diffrence avec le troisime logo (240). Il est trs simple d'identifier le maximum de la carte pour chaque logo.

Reconnaissance dimages par rseaux de neurones artificiels

50

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Figure 5.10 : les logos 235 et 239 (a.1 et b.1) sont semblables. On l'observe galement sur la reprsentation 2D ou 3D de l'tat du rseau de Kohonen

Reconnaissance dimages par rseaux de neurones artificiels

51

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

Voici titre d'exemples sur la figure 5.11, parmi les 1000 premiers logos de la banque de donnes, ceux qui appartiennent la mme classe que le logo 235. dj prsent sur la figure prcdente, l'illustration 5.10.

Figure 5.11 : Liste des logos de la mme classe que le logo 235 (premier en haut gauche)

La figure 5.11 permet d'ailleurs de constater que certains logos sont mme identiques: par exemple les logos 260 et 390. Les temps d'excutions sont acceptables. Par acceptable, il faut entendre que pour une analyse complte sur les 2809 logos de la banque de donnes, le calcul dure pendant environ 1h30, dont la plus part du temps pass la rduction de l'image par la premire couche de rseaux de neurones. Rappelons que pour chaque image, l'opration de reconnaissance sur un carr de 5x5 doit tre rpte 400 fois. Ainsi, chaque image est analyse pendant deux secondes, c'est dire 5 [ms] par PMC pour l'analyse d'une petite dcoupe du logo. Ensuite, tous les rsultats de la premire couche sont r-analyss par la SOM, et le calcul dure environ une minute pour une carte de 900 neurones et 1000 exemplaires

Reconnaissance dimages par rseaux de neurones artificiels

52

Chapitre :5 Application aux logos noir et blanc Chapitre :6 Application aux images couleur

prsents. De plus amples rsultats sous forme de classes d'images sont disponibles en annexe C.

5.5 Conclusion
L'architecture propose donne de bons rsultats, mais malheureusement pas toujours trs interprtable. Cela est en partie d la grande variabilit des logos parmi le lot propos de 2809 exemplaires. Tous sont assez diffrents des autres, en gnral. On peut quen mme se rjouir d'une nouvelle application pour les rseaux de neurones. La mthode utilise sera en partie reprise au chapitre 6, pour la reconnaissance d'images en couleurs, bien que ce problme comporte ses propres spcificits et difficults.

Reconnaissance dimages par rseaux de neurones artificiels

53

Chapitre :6 Application aux images couleur

6 Application aux images couleur

6.1 Problmatique

Le problme de la reconnaissance d'image n'est pas ais, comme prsent dans le chapitre 3. La difficult vient essentiellement de la forme que devront adopter les vecteurs d'entre prsenter au rseau de neurones. La question est en partie similaire celle rencontre pour les logos noir et blanc. Ici encore, il s'agit d'extraire toute l'information pertinente un bon apprentissage partir d'un fichier SVG reprsentant une image. Cependant, contrairement la problmatique des logos, la majeure partie du fichier va s'avrer utile pour la reconnaissance d'images en couleur. Chaque tape de l'utilisation de ses informations sera dveloppe dans les prochains chapitres, mais avant, prenons le temps de rflchir une architecture possible pour le rseau de neurones. La segmentation applique des objets de couleur plus ou moins homogne sur

54

Chapitre :6 Application aux images couleur

fond uni est extrmement efficace. Les applications industrielles sont nombreuses (contrle dans des chanes de productions,...). Cependant, cette mme segmentation sur des images couleur riches en informations s'avre peu effective. Il est difficile de fixer automatiquement un seuil d'arrt l'algorithme de segmentation. De ce fait un objet sera souvent sur-segment, c'est dire que cet objet sera dcoup en plusieurs zones, alors que nous aurions voulu obtenir un seul contour pour cet objet. Par exemple, un arbre sera rarement segment en un seul contour, comme figur sur la figure 6.1. En effet, celui-ci possde avant tout un tronc et un feuillage de couleur diffrente, donc il y aura au moins segmentation des deux zones. De plus, le feuillage est vari, les jeux d'ombres et autres artefacts sont nombreux. Il est nouveau difficile de fusionner ensemble les diffrentes parties du feuillage, sans prendre le risque de fusionner la prairie avec, ainsi que le ciel.

Figure 6.1 : Exemple de segmentation d'une image couleur

Le prsent projet se propose de dcouvrir une mthode pour reconnatre des objets dans une image, et d'associer un mot chacun.

55

Chapitre :6 Application aux images couleur

Le premier problme est alors de pouvoir reconstruire les objets partir du sousensemble constitu des zones de cet objet tel qu'un humain le peroit. C'est dire une mthode pour forcer la fusion de certaines zones de l'image segmentes, de faon reconstruire un objet rel tel que notre arbre de tout l'heure. Cette mthode ne doit videmment pas fusionner la prairie avec le feuillage, uniquement les diffrentes parties du feuillage ainsi que le tronc. De plus, le systme qui sera mis en oeuvre devra tre indpendant de la taille des entits, ou de leurs positions dans l'image. Il ne s'agit pas d'tablir une mthode connectiviste pour trouver les contours de zones homognes, mais bien de dcouvrir une technique permettant de raccorder diffrentes zones de l'image, ces zones n'tant pas forcment de trames ou de couleurs identiques... Cette difficult sera reprise dans les sections 6.2 et 6.3; une solution sera apporte, dcrite et illustre. La deuxime difficult est de pouvoir associer un mot ou un concept un objet. Deux arbres trs diffrents doivent pouvoir tre reconnus comme tant des arbres, de mme qu'un visage et un arbre doivent tre dissocis. Il ne faut pas seulement reconstruire des objets, il faut galement tre conscient ce qui a t reconstruit. Estce un visage, une voiture? L'approche de cette difficult sera dcrite dans les sections 6.4 et 6.5.

56

Chapitre :6 Application aux images couleur

6.2 Reconstruction des contours, architecture et reprsentations


6.2.1 Choix de l'architecture Le choix est fait de travailler sur des images sur-segmentes, car celles-ci n'ont pas dfinitivement perdu les contours d'un objet que l'on chercherait identifier. On voit par exemple sur les figures 6.2a, 6.2b et 6.2c que l'image qui contient trop peu de zones ne peut plus tre analyse pour reconnatre un arbre.

Figure 6.2 (a, b et c) : exemple de bonne segmentation et de sous-segmentation

Il s'agit donc de proposer un algorithme connexionniste permettant de fusionner les diffrentes parties de l'arbre pour n'en obtenir plus que son contour. Pour choisir un bon modle neuronal, il faut bien interprter la tche accomplir. L'algorithme doit apprendre fusionner des zones, mme si celles-l ne sont pas toutes similaires. Le toit de la maison n'a pas la mme couleur ni la mme forme que les murs, ou encore, une voiture et ses pneus n'ont strictement rien voir; pourtant, ces zones appartiennent une mme entit. Mais attention, le tronc brun et la pelouse verte ne doivent pas tre associs; le tronc brun et le feuillage vert, oui. En rsum, l'algorithme doit pouvoir identifier les zones de l'image, deux par deux et par voisines, et fournir en rponse si les deux zones doivent tre fusionnes ou pas. Mathmatiquement, cela revient considrer l'espace des vecteurs d'entre de dimension N appartenant Rn. Chaque vecteur P est compos d'informations sur

57

Chapitre :6 Application aux images couleur

chacune des deux zones. Le systme propos doit pouvoir gnraliser des vecteurs proches, mais galement associer ensemble des vecteurs trs distants au sens d'une mtrique rgulire dans Rn. Dans un mme lan, le systme devra pouvoir apprendre dissocier des vecteurs parfois proches (feuillage vert et pelouse verte). Le comportement que devra adopter le systme est fortement non-linaire. Un algorithme de classement par carte auto-organisatrices ne peut pas tre mis en oeuvre pour un pareil travail, car il n'est pas question de n'associer que des zones dont les reprsentations dans Rn sont proches. Par contre, une mthode d'apprentissage supervis pourrait s'adapter la rsolution du problme. Un perceptron multicouches apprend sparer des classes non-linaires. Le choix de l'architecture s'oriente donc sur celle d'un perceptron multicouches capable d'apprendre rassembler des ensembles de zones disparates pour reconstruire des objets, par reconnaissance et identification avec les apprentissages passs. Ce choix reste pour l'instant trop vague, car il dpend encore du type de reprsentation pour les vecteurs d'entre. Si diffrents formalismes sont possibles pour les exemples apprendre, il est intressant de les relier ensemble. C'est dire que l'on peut utiliser un premier perceptron pour analyser un type de reprsentation et obtenir une rponse approprie du rseau de neurones, puis un deuxime perceptron (ou autre architecture...) pour l'analyse d'un deuxime formalisme, etc, jusqu' obtenir par exemple N perceptrons multicouches travaillant en parallle (la programmation est squentielle, mais les rseaux de neurones fonctionnent indpendamment les uns des autres). Chaque PMC fournit une rponse qui peut tre compare avec celles des autres PMC, puisque tous travaillent sur un mme concept, mais avec des reprsentations diffrentes. On peut donc rcolter toutes les sorties des PMC pour les rinjecter sur un nouveau perceptron qui fait alors une r-analyse des rsultats de chaque PMC de l'tape prcdente.

58

Chapitre :6 Application aux images couleur

Figure 6.3 : Schma gnral d'une architecture plusieurs PMC

En rsum, l'architecture gnrale du systme se dcrit par le schma de la figure 6.3: une premire couche de N PMC reoit les diffrentes reprsentations d'un vecteur d'entre et fournit en sortie N rponses. Chaque rponse est envoye sur la couche

59

Chapitre :6 Application aux images couleur

suivante et r-analyse pour obtenir la sortie dfinitive.

6.2.2 Choix des Reprsentations Les images ou les informations sur les rgions de l'image ne peuvent pas tre fournies de manire brute au rseau de neurones. Il va falloir dterminer une reprsentation de ces donnes. La dcision d'utiliser une reprsentation plutt qu'une autre est le choix le plus difficile dans l'agencement d'un systme connexionniste. En effet, un vecteur symbolisant une zone segmente doit tre proche d'une zone similaire en terme de distance dans Rn, et deux zones trs diffrentes doivent galement avoir deux reprsentations loignes l'une de l'autre dans Rn. De plus, l'information de chaque vecteur doit tre la plus complte possible et signifier au mieux les caractristiques relles d'une zone, ou couple de zones. Au paragraphe 6.2.1, il a t propos de prsenter au rseau de neurones deux zones voisines et de lui apprendre dcider si ces deux rgions doivent tre fusionnes ou pas. Ainsi, chaque vecteur d'entre se composera de l'information des deux rgions voisines. La question est maintenant quelle information d'une zone est pertinente, et comment la reprsenter? Les informations ncessaires se dcouvrent des proprits que devrait possder le systme quant l'apprentissage que l'on veut effectuer. - La couleur est importante. Des zones de trames et de couleurs similaires devront tre fusionnes: les diffrentes parties du feuillage de l'arbre doivent tre associes ensemble. Le rseau doit galement apprendre fusionner des rgions de couleurs diffrentes, mais pas toutes. Cela dpend de la situation, de l'objet trait... Donc la couleur est un critre ncessaire, mais pas suffisant pour la reconstruction des formes d'une image. - La position et la forme d'une zone par rapport sa voisine est importante. Toujours pour reprendre l'exemple de l'arbre, une zone brune plutt rectangulaire oriente verticalement (tronc), surmonte d'une zone verte, plutt grande et dchire (feuillage) doivent tre r-associes, alors qu'une zone verte, plutt grande et dchire (prairie), surmonte d'une zone brune plutt rectangulaire oriente verticalement (tronc), ne doivent pas tre fusionnes. Idal pour en perdre son Latin. La seule diffrence entre le couple Feuillage/Tronc et Prairie/Tronc rside surtout dans la position relative des rgions, et dans leur forme.

60

Chapitre :6 Application aux images couleur

Chacun des paramtres, couleur et topologie, doivent tre tudis plus en dtail. Tous deux amnent de nouvelles questions et difficults rsoudre.

6.2.2.1 Informations topologiques Nous cherchons prsent trouver une reprsentation intressante des informations topologiques d'un couple de zone. Les donnes brutes proviennent du fichier SVG reprsentant la segmentation d'une image couleur. Les contours sont exprims sous forme de couples de coordonnes indiquant un point du contour d'une zone. Les points sont donns dans l'ordre sur le contour, dans le sens horaire, le premier point tant celui situ le plus haut gauche du contour. Les descriptions sont donc de tailles variables.

Exemple de deux contours:

Image du contour1

Image du contour2

Figure 6.4 : Exemple du contour de deux zones diffrentes (a et b)

61

Chapitre :6 Application aux images couleur

Coordonnes du contour 1 : 45, 87,51, 93,36, 93,15, 90,15, 90,36, 78,48, 87,51, 93,33, 93,12, 90,18, 90,36, 78,51, 90,48, 93,30, 93,9, 90,21, 87,39, 78,51, 90,48, 93,27, 93,6, 90,24, 87,42, 81,54, 93,45, 93,24, 93,6, 90,27, 87,42, 81,54, 93,42, 93,21, 90,9, 90,30, 90,45, 84,54, 93,39, 93,18, 90,12, 90,33, 90,45,

Coordonnes du contour 2 : 138, 75,144, 87,156, 87,168, 90,147, 87,138, 69,138, 63,141, 78,144, 87,159, 90,165, 90,147, 84,138, 69,138, 63,141, 81,147, 87,162, 90,162, 87,144, 81,138, 66. 66,141, 81,147, 87,165, 90,159, 87,144, 78,138, 69,141, 84,150, 87,165, 90,156, 90,141, 75,135, 72,141, 84,153, 84,168, 90,153, 90,138, 75,135, 75,144, 84,153, 84,168, 90,150, 90,138, 72,135,

Deux voies d'exploitation s'ouvrent: les contours peuvent tre reprsents soit directement par la liste des coordonnes, soit par la reprsentation 2D de l'image de ce contour. Cependant, dans chacun des cas, il sera ncessaire de redimensionner tous les couples de zones voisines, afin que chaque paire entre dans un cadre fixe dtermin. Cela est ncessaire, car les rgions sont toutes de tailles diffrentes, et le perceptron ne peut pas modifier le nombre de ses entres en cours d'application. Les entres doivent toutes avoir la mme dimension. Mais surtout, ce changement d'chelle apporte un grand avantage: il permet de s'affranchir du problme de l'homothtie et de la translation. En effet, il semble pertinent d'exiger de notre systme qu'il sache reconnatre aussi bien le petit arbre en bas gauche que le grand arbre en haut droite. La reconnaissance doit tre indpendante de la position des objets, ainsi que de leur taille respective. Par contre, on perd videment de l'information, mais les contours sont simplifis.

62

Chapitre :6 Application aux images couleur

Figure 6.5 (a et b): Exemples de rgions originales (a) et redimensionnes (b)

La mme opration peut s'appliquer aux contours dcrit directement par le fichier SVG.Cela diminue en tout cas la dimension des vecteurs d'entre, et allge le systme entier. L'opration de changement d'chelle sera considre comme essentielle dans la chane des traitements. Dans le prsent projet, tous les couples de zones voisines seront redimensionns dans un cache de 30X30 pixels. Un aspect essentiel diffrencie pourtant les deux reprsentations possibles: La reprsentation par liste des coordonnes des contours ne permet pas d'indiquer leur contenu prcis. L'autre reprsentation, par image du contour, fournit cette information supplmentaire.

63

Chapitre :6 Application aux images couleur

Figure 6.6 (a et b) : Contours sans (a) et avec (b) contenu

Le choix est fait, pour la reprsentation par image des contours, de fournir galement le contenu de la zone comme prsent sur l'image b de la figure 6.6. Le contenu de la rgion segmente provient de l'image de base. Pour cette reprsentation, il reste encore savoir comment reprsenter la couleur d'un pixel. La rponse est apporte dans le paragraphe suivant (6.2.2.2).

Quant la reprsentation par liste des coordonnes des contours, nous ne l'abandonnons pas. L'ide la plus simple d'utilisation de ces informations est de faire figurer dans un vecteur d'entre, les coordonnes de la premire zone et de la deuxime zone. Les coordonnes sont videment redimensionnes par rapport un mme cadre de 30X30 pixels. Un seul PMC suffit pour ce traitement. Cependant, comme indiqu et illustr dans un prcdent travail de l'auteur sur la gestion de robots par rseaux de neurones artificiels [Evr03], un dcouplage de l'information permet de dcouvrir diffrents aspects d'une mme ralit, respectivement classs et associs par plusieurs rseaux. De ce dcouplage rsulte un meilleur apprentissage. Le dcouplage peut se raliser de bien des faons. La mthode mise en oeuvre consiste dcouper la liste des coordonnes en sous-ensembles disjoints du vecteur principal. Nous pouvons ainsi crer quatre sous-vecteurs constitus respectivement des coordonnes X/Y de la premire/deuxime zone. Mais ces quatre vecteurs ne reprsentent aucun lien entre les deux rgions dont il faut dcider de la fusion ou pas. Il

64

Chapitre :6 Application aux images couleur

s'impose alors de re-coupler les sous-vecteurs en les associant deux par deux, un vecteur X/Y d'une zone avec un vecteur X/Y de l'autre zone. Nous obtenons finalement les quatre vecteurs suivants: V1 ( Region1x , Region2x ) V2 ( Region1x , Region2y ) V3 ( Region1y , Region2x ) V4 ( Region1y , Region2y )

La taille de chaque vecteur est de 450 composantes. 450, car cette valeur est le norme maximum de composantes non nulles que pourrait compter un vecteur. En effet, les deux rgions voisines sont rduites ensemble dans un mme cadre de 30X30. La situation la plus extrme amnerait ce que les contours passent par tous les points du cadre, c'est dire 900 points et 1800 coordonnes (x et y). Cette situation est aberrante, et aprs de nombreuses observations (plusieurs centaines), il a t constat que les contours occupent trs rarement plus de 50% du cadre. Ainsi, les deux zones comptabilisent au plus 900 coordonnes (50%), et chaque vecteur V1 V4 compte exactement moiti moins de composantes, c'est dire 450, pour le cas le plus dfavorable (50% du cadre occup par des contours). Si les deux contours n'ont pas une longueur ensemble de 450, le reste des composantes des vecteursV1 V4 sont mises zro.

Nous sommes ds lors en possession de cinq reprsentations diffrentes pour l'information topologique. Cela permet, comme indiqu au paragraphe 6.2.1, de faire adopter plusieurs PMC des comportements diffrents pour un mme traitement, et donc d'amliorer l'apprentissage, et d'illustrer des volets complmentaires de la reconnaissance d'images.

65

Chapitre :6 Application aux images couleur

6.2.2.2 Informations chromatiques L'information porte par la couleur se lit partir du fichier SVG, comme presque toutes les autres informations. Cependant, SVG propose deux espaces diffrents de dfinition des couleurs. RGB et HSB.

Figure 6.7 (a et b) : Reprsentation RBG (a) et HSB (b) de l'espace des couleurs

La reprsentation RGB est linaire, contrairement la reprsentation HSB. Le choix se porte donc sur l'utilisation de RGB. Au paragraphe 7.2.2.1, il est fait mention des couleurs l'intrieur d'une zone; un problme persiste: la couleur est reprsente par trois entiers compris entre 0 et 255. Cependant, un triplet ne peut pas tre une composante d'un vecteur d'entre, il faut donc rabattre la reprsentation des couleurs d'un espace 3 dimensions (N3) sur un espace une dimension (N) par une relation linaire. Si les niveaux de RGB varient de 0 255, on peut proposer une relation du type C = 2552*R + 255*G + B , (1)

ou R, G et B sont les niveaux de rouge de vert et de bleu, et ou C est l'image dans N du triplet (R,G,B) de N3 . C est donc la nouvelle couleur du pixel concern. De plus, le calcul est immdiat pour trouver qu'il y a au total 16 millions de couleurs (224). La variance induite dans un pattern d'entre est gigantesque, et il va de soit de rduire cette variance en diminuant le nombre de couleurs. Par exemple, on peut ramener le nombre de niveaux de 255 25 (ou 10) pour Red, pour Green, et pour Blue,

66

Chapitre :6 Application aux images couleur

ce qui ramne le nombre de couleurs 16'000 environ (ou 1'000). Le codage impliqu par la relation (1) et la rduction par 25 du nombre de niveaux d'intensit RGB sera celui utilis pour la couleur l'intrieur des zones pour la reprsentation topologique. L'information du fichier SVG quant la couleur peut galement tre utilise pour simuler un perceptron directement. L'ide est de crer un nouveau vecteur de reprsentation pour chaque couple de rgions voisines, partir des niveaux R, G et B moyens de chaque zones. Nous obtenons ainsi pour chaque couple, un vecteur six composantes [R1, G1, B1, R2, G2, B2] qui peut stimuler un perceptron en vue d'un apprentissage ventuel.

6.3 Reconstruction des contours, mise en oeuvre


6.3.1 Rcapitulation et architecture adopte Tout au long de la section 6.2, nous avons mis en place la structure des reprsentations fournir diffrents perceptrons. Nous rcapitulons: Nous avons trois reprsentations parallles: -L'image du couple de zones voisines en vraies couleurs, mais re-normalises de 0 16'275 (=253+252+25) et recadre dans un cache de 30X30. Donc, un vecteur de dimension 900, et de Minmax [0 ; 16'275]. -La liste des coordonnes des deux contours, redimensionns, contenue dans 4 vecteurs de dimension 450 et de Minmax [1 ; 30]. -La couleur moyenne RGB des deux rgions, contenue dans un vecteur de dimension 6 et de Minmax [0 ; 255]. Ces reprsentations conduisent tout naturellement une architecture neuronale pour l'apprentissage et la reconnaissance d'objets par fusion.

67

Chapitre :6 Application aux images couleur

Figure 6.8 : Architecture neuronale

Le rseau propos se compose d'une premire couche de trois units de traitement, chacun fournissant une sortie 1 ou 0, selon qu'il faut fusionner ou pas le couple de zones prsent. La premires unit compte 900 entres, une couche cache de 500 neurones et une sortie (1 neurone). La deuxime unit se compose de 5 perceptrons: les 4 premiers reoivent les reprsentations et ont 450 entres, 50 neurones cachs et une sortie. Le cinquime reoit les sorties des 4 premiers et compte 10 neurones cachs ainsi qu'une sortie. La troisime unit, celle traitant des couleurs, a 6 entres, 5 neurones cachs et un neurone de sortie. Le modle comporte galement une deuxime couche de une unit de traitement, qui reoit simplement les sorties de la premire couche pour reprendre une dcision par rapport au trois sorties. Cette unit est galement un PMC 3 entres, 5 neurones cachs et un neurone de sortie. Le rseau de neurones propos fonctionne en deux tapes: une tape d'apprentissage et une tape de reconnaissance, qui seront dcrite dans les deux prochains paragraphes.

68

Chapitre :6 Application aux images couleur

6.3.2 Apprentissage Lors de cette phase de fonctionnement, chaque couche va devoir appliquer son apprentissage l'une aprs l'autre. D'abord la premire couche: il suffit d'appliquer l'algorithme de rtro propagation du gradient avec un lot de n vecteurs d'entre et les n sorties respectives associer. Cela pour les trois units de la premire couche. Ensuite, il faut re-simuler la premire couche de PMC avec tout le lot d'entres pour obtenir le lot des n rponses correspondantes de chacune des trois premires units. Pour la deuxime couche, il faut maintenant simuler la rtro propagation avec les n rponses de la premire couche, et le lot des n sorties, le mme qu'utilis pour l'apprentissage de la premire couche. La structure est adapte!

Ci-dessous, quelques graphiques pour illustrer l'apprentissage de toute la structure. Il y a quatre graphiques qui contiennent chacun deux courbes. La premire en bleu est la suite de rponses attendue pour un apprentissage sur 500 zones, et la deuxime en vert et la rponse du PMC indiqu (1er, 2me,...)

69

Chapitre :6 Application aux images couleur

(a) Rponse du rseau traitant de limage (b) Rponse du rseau traitant des contours

(a) Rponse du rseau traitant des couleurs (b) Rponse du rseau de la deuxime couche Figure 6.9 : Graphique de la rponse de chaque partie du systme compare la rponse idale. Le rseau traitant de limage (a) rend une moyenne

Les graphiques montrent que le premier rseau est inefficace: celui ci rpond la moyenne exacte des entres dsires ( 1/n * (si) ), ce qui peut arriver lorsque l'on travaille avec l'erreur quadratique moyenne. Une autre mesure de cette inefficacit se ralise par le gradient instantan de l'algorithme de rtro propagation: si cette valeur est grande, c'est que le systme est loin d'avoir atteint un puits de stabilit. La pente (le gradient) qui mne ce puits est forte. Par contre, si le gradient est proche de zro, c'est que le rseau n'apprend plus, que ses coefficients synaptiques ne se modifient plus, et que le rseau a atteint un tat stable. Mais cet tat n'en est pas pour autant intressant. A chaque pas d'itration de l'algorithme de la rtro propagation, le gradient diminue pour tendre asymptotiquement vers zro. Mais plus la chute du gradient est brutale, plus

70

Chapitre :6 Application aux images couleur

l'apprentissage est mauvais. C'est ce critre en drive seconde (drive du gradient) qui indique la qualit de l'apprentissage. L'algorithme d'apprentissage appliqu au premier PMC provoque une chute spectaculaire du gradient ds les premires itrations pour descendre en dessous des 10-6 en moins de 50 pas de calculs, alors que plusieurs centaines, voire milliers d'itrations sont ncessaires habituellement. Pour la suites du travail, il est dcid de ne plus tenir compte du PMC traitant des donnes topologiques sous formes d'image 2D. Celui-ci n'est d'aucune utilit, et surtout alourdit et ralentit fortement le systme entier. La topologie utilise ds lors devient celle de la figure 6.10.

71

Chapitre :6 Application aux images couleur

Figure 6.10 : Topologie de base pour la reconstruction des contours

6.3.3 Reconnaissance Lors de cette phase, une image est choisie, et partir de cette image et du fichier SVG correspondant, on tablit la liste des couples de zones, et pour chaque couple, on calcule les vecteurs d'entres du systme. Chaque n-uplets de vecteurs est prsent au rseau de neurones et en sortie, on obtient finalement la liste des couples re-fusionner. La re-fusion des zones n'est cependant pas vidente: comme illustr sur les exemples de

72

Chapitre :6 Application aux images couleur

la figure 6.11, on voit que les rgions peuvent s'associer en groupes diffrents, voire mme contours communs, et pourtant il s'agit de reconstruire ces groupes de connexit sans les confondre. Par exemple, supposons que le rseau reconnaisse les domaines formant l'arbre de la figure 6.11, ainsi que les zones de la maison accole l'arbre, sans toute fois associer l'arbre et la maison. Il est important de diffrencier les deux ensembles de rgions. Un algorithme a t mis en oeuvre pour rsoudre ce problme.

Figure 6.11 : Les fusions de zones voisines sont indiques sur la premire image (traits rouges, verts et bleus). Lidal est de reconstruire les objets comme sur la deuxime image. La troisime image est un mauvais exemple.

73

Chapitre :6 Application aux images couleur

6.4 Limites et difficults


Plusieurs apprentissages et simulations ont t menes avec diffrents groupes d'objets, notamment des visages, des arbres, des maisons et des voitures. Le systme ragit bien tant que l'on reste dans un mme groupe d'objets, par exemple les arbres. Aprs un apprentissage sur une vingtaine d'images, le rseau ragit relativement bien pour retrouver le contours d'autres arbres sur de nouvelles images, Cependant, le systme ragit trs mal ds que l'on cumule des entits des types diffrents. Par exemple, l'apprentissage cumul de visages et d'arbres amne le rseau fusionner presque toutes les zones, et ne permet plus de travailler correctement.

6.4.1 Premire bauche de solution, gnralisation La solution au problme du chapitre prcdent s'impose d'elle-mme: il suffit de cumuler les systmes: un rseau de neurones qui reconnat exclusivement des visages, une autre architecture qui identifie uniquement des voitures,... Cela offre de rendre encore plus modulaire le fonctionnement du rseau. En effet, pour que le systme reconnaisse une classe supplmentaire d'objet, il suffit de rajouter un nouveau rseau spcialis dans ce traitement. Les avantages vidents de cette mthode sont multiples: - Pour l'analyse d'un nouvel objet ou concept, seul une sous partie du systme doit subir un apprentissage. Et rappelons que l'apprentissage est de loin la partie la plus longue du traitement. - Le niveau de fiabilit du systme s'en trouve amlior. Il y a moins de risque de fusionner des groupes de zones qui n'auraient pas d. - Le temps de traitement de la simulation du rseau de neurones est rapide, et l'adjonction d'un nouveau module simuler ne ralentit que trs peu le traitement. - La base des vecteurs d'entre et des classes associer sera galement plus simple tablir:

74

Chapitre :6 Application aux images couleur

On peut ainsi proposer un schma final pour le systme de reconstruction des contours, le schma de la figure 6.12:

Figure 6.12 : schma pour le systme de reconstruction des contours

Mais attention, cette structure demande un apprentissage adapt: l'ensemble des 7 PMC qui analysent les arbres doit viter tout pris de reconstruire d'autre objets. Ainsi, cet effet, il faudra lui prsenter aussi autre chose que des arbres et lui apprendre ne rien fusionner dans cette image sans arbre.

75

Chapitre :6 Application aux images couleur

La nouvelle mthode propose ne donne toujours pas de rsultats satisfaisants, mme si l'amlioration des performances se ressent. Il est difficile de quantifier ce progrs. Celui-ci demande de vrifier les traitements du systme pour de nombreuses images avec contrle par un humain. Le travail est fastidieux mais permet tout de mme une analyse qualitative. Prenons par exemple la structure qui reconstruit les contours des arbres. Elle sait reconnatre un chne plutt bien. Mais elle fusionne encore d'autres zones que l'arbre et reconstruit souvent plusieurs objets par image. Supposons que la structure dcouvre 3 objets diffrents. Parmi ceux-l figure l'arbre, bien reconstruit dans plus de la moiti des cas. Les deux autres objets sont des regroupements de zones qui n'auraient pas d avoir lieu, des erreurs. Manifestement, le traitement par PMC uniquement est incomplet. Il convient de raffiner les mprises du systme de reconstruction des contours.

6.4.2 Deuxime bauche de solution, classification et identification La structure propose au paragraphe prcdent (6.4.1) a le dfaut persistant de raliser des fusions malheureuses et de dcouvrir des objets qui n'en sont pas. Toutes les tentatives pour liminer ces objets superflus par un traitement direct s'avouent inefficaces. Par contre, il est envisageable de rajouter une couche de traitement pour classer et identifier les objets trouvs . Ce traitement se doit d'tre connexionniste, videmment. Les mots classement et identification inspirent tout de suite une carte auto-organisatrice, comme utilis pour le travail sur les logos noir et blanc au chapitre 5. Le traitement est assez simple: reprenons une fois encore l'exemple de la structure qui reconstruit les arbres, ainsi que les trois objets dcouverts (un arbre et deux objets insenss). Chaque entit sera compare une banque de donnes contenant toutes sortes d'objets: des arbres, des maisons, des visages,... Si l'un de ceux dcouverts par la structure est prsent la SOM (Self Organising Map), il sera class par rapport tous ceux dj connu. S'il est plus proche d'un arbre, alors on considre que l'objet est bien un arbre. Sinon, on l'ignore. L'opration est ritre pour tous les objets trouvs par tous

76

Chapitre :6 Application aux images couleur

les sous-systmes. Il ne reste plus qu' dfinir la structure de la carte auto-organisatrice.

6.5 Reconnaissance d'objets, architecture, reprsentations

L'architecture retenue est un systme deux SOMs superposes. Voici la raison: Considrons une premire carte ou rseau de Kohonen. Celui-ci doit avoir une structure assez grande, car les objets sont trs variables. Les visages ne seront pas tous regroups parfaitement au mme endroit, de mme pour les arbres ou les autres objets. Si une quantit trop faible de neurones est utilise, par exemple 16 (4x4), alors des arbres seront classs trop proche des visages et les objets seront indiscernables. Cependant, il ne faut pas perdre de vue que, comme expliqu dans l'annexe thorique A.8, le temps de convergence d'un rseau de Kohonen est excessivement long. Un nombre exessif de neurones rendrait le systme inexploitable. 400 semble un bon compromis. Une carte de 20x20 permet dj de diffrencier les quelques objets qui ont pu tre trait dans le cadre du projet (arbres, visages, maisons, voitures). Cependant cette diffrentiation n'est pas vidente, au regard des rsultats prsents la figure 6.13. On y observe l'tat de la carte pour six arbres connus, dix visages connus, et le dernier pour un nouvel objet qu'il faut identifier. On constate que l'activation des six premires cartes est en gnral plus sombre, avec des pics plus marqus. Alors que les cartes des dix visages sont toutes plus disparates, plus floues. La dix-septime carte, celle d'un objet inconnu, ressemble plutt la 7ime, 15ime et 16ime carte, donc un visage.

77

Chapitre :6 Application aux images couleur

Figure 6.13 : Etat de la SOM pour 6 arbres(1 6), 10 visages (7 16) et un objet inconnu (17)

Et voici sur l'illustration 6.13 l'image et tous les contours gauche (a) et droite, entour en rouge, l'objet inconnu qui ressemble des visages:

(a) : Image et tous les contours

(b) : Lobjet inconnu tait un visage

Figure 6.14 : Recherche dun objet inconnu

78

Chapitre :6 Application aux images couleur

Habituellement, on identifie la classe des patterns analyss selon la position du neurone le plus activ. Pour les rponses prsentes l'illustration 6.13, il n'y pas un neurone ou voisinage de neurones spcialement activs. Les similarits entre les cartes sont diffrentes.. C'est pourquoi il s'avre ncessaire d'effectuer un nouveau traitement pour identifier les cartes par ressemblance. Une deuxime SOM sait effectuer ce travail. Elle s'agence exactement comme la premire, et se superpose elle comme prsent sur l'illustration 6.15:

Figure 6.15 : Deux SOM superposes pour le classement et lidentification des objets

Les objets sont ainsi mieux identifiables. Comme il se peut qu'il y ait encore certaines confusions, il est dcid de considrer un voisinage de taille 3 pour le neurone le plus activ de la carte de l'objet inconnu. Si se voisinage contient le neurone d'activation maximum d'autres cartes, alors on choisit l'objet qui est le plus souvent reprsent dans ce voisinage. Ainsi, l'objet reconstruit par le systme pour les arbres peut trs bien tre proche de deux arbres et de trois visages diffrents. Alors celui-ci est interprt comme visage, et se voit abandonn, puisque ce n'est pas un arbre. Au final, l'architecture gnrale propose pour le systme entier se dcouvre la figure 6.16.

79

Chapitre :6 Application aux images couleur

Figure 6.16 : Schma gnral pour tout le systme de reconnaissance dimages couleur

80

Chapitre :6 Application aux images couleur

6.6 Conclusion

Les rsultats du systme complet mis en oeuvre donne quelques bons rsultats pour des images relativement simples. Sur des images plus complexes, la reconnaissance d'objets pose encore problme. Il est par exemple difficile de travailler sur un lot d'images telles que les quatre proposes la figure 6.17.

(a)

(b)

(c)

(d)

Figure 6.17 : Exemples dimages trop complexes et non traitables

La partie de systme qui reconstruit les contours, base de PMC, ne donne pas toujours de trs bons rsultats. Il ne fusionne pas des objets au hasard, loin de l. Il a plutt tendance dborder un peu, c'est dire englober les zones voisines d'un objet. Par exemple, il arrive assez souvent qu'un visage soit reconstruit avec quelques rgions qui l'entoure, comme sur l'image suivante, qui est une capture de l'interface ralise dans le cadre du projet, et dcrite dans l'annexe B.

81

Chapitre :6 Application aux images couleur

Figure 6.18 : Exemple de dbordement

Cependant, plus les lots d'apprentissages sont nombreux, meilleurs sont les traitements. Les chances du projet ont permis de raliser des apprentissages sur environ 150 images. Si l'on prsente une image dj apprise ou trs proche au systme, celui-ci ragit relativement bien. Pour les nouvelles images, le rsultat reste un peu incertain. Mais une fois de plus, les performances vont en s'amliorant au fur et mesure d'apprentissages de nouveaux objets. L'annexe C prsente de plus amples rsultats sous forme d'images.

82

Chapitre :7 Ouverture et conclusion

7 Ouverture et conclusion

Les recherches menes pendant 12 semaines donnent plusieurs bons rsultats, ainsi que quelques-uns illustrant les limites de la reconnaissance dimages par rseaux de neurones telle que ralise pour le prsent mmoire. Le travail sur les logos noir et blanc savre concluant. Ceux-l sont classs par ressemblance dans une mesure plutt correcte. Quant aux images en couleur, leur traitement se rvle plus difficile et limit. Les temps de cration de lots dapprentissages sont relativement longs. Dans le cadre de ce projet, les photos brutes ont dabord dues tre analyses par un premier tiers pour raliser lopration de dcoupage de limage (Split). Lopration peut durer plusieurs heures pour une centaine dexemplaires. Ensuite, une deuxime personne reoit ces images splites pour effectuer une opration de Merge. A nouveau, une heure au moins est ncessaire au regroupement des rgions (segmentation) et leur stockage dans un fichier SVG. En troisime partie, les images peuvent tre analyses pour leur reconnaissance. Ensuite, il faut passer un temps pour valuer la qualit de la segmentation et ainsi,

83

Chapitre :7 Ouverture et conclusion

les fichiers SVG qui seront traites. Cependant, le travail qui consiste slectionner sur un grand lot dimages les zones formant un mme objet est trs long, et svalue en jours. Ces dlais inhrents tout modle connexionniste nont permis de raliser des tests que sur un lot de 400 exemplaires de segmentations diffrentes. Les rsultats dun rseau de neurones sont directement lis la taille de sa base dapprentissage et la taille des vecteurs dentres. Si les vecteurs sont grands, il faut une base dapprentissage consquente. Au regard des rsultats obtenus, lamlioration est franche entre un lot de 20 images et un autre de 100 images. Il est tout fait pensable que ces rsultats soient encore meilleurs avec des lots plus nombreux. Cela na malheureusement pas pu tre vrifi, et la recherche sest limite sur le nombre dimages. Cependant, au regard des graphiques (b) (c) et (d) de la figure 6.9, on constate que les apprentissages sont de trs bonne qualit. Les tests ont t mens avec un maximum de plus de 12000 vecteurs dentres. La qualit de lapprentissage est pareille avec une erreur quadratique relative toujours infrieure 1%, donc trs bonne. Le systme propos peut ainsi samliorer encore en dehors du cadre du projet actuel. Il suffit de continuer crer des lots de vecteurs dentres et raliser des apprentissages. Le modle connexionniste est volutif et adaptatif. Il nest pas fig. En outre, il est possible que dautres architectures donnent de meilleurs rsultats. Ou alors une autre approche. Une ide exploitable est de travailler sur plusieurs tages de la pyramide de segmentation en mme temps. Actuellement, le modle mis en uvre ne travaille que sur un tage. Il semble que lon puisse apprendre quelque chose de la faon dont fusionnent les rgions dun tage lautre. Le projet accomplit repose avant tout sur la recherche. Il est maintenant intressant de proposer des applications o les analyses effectues peuvent savrer utiles. La ralisation autours des logos noir et blanc permet finalement de regrouper, de classer, dassocier toutes sortes de reprsentations noir et blanc. Le systme peut alors sintgrer dans toute chane de production au niveau du contrle de la qualit, de pices fabriques par exemples. Le modle propos peut reconnatre facilement une pice qui serait trop distante des caractristiques de fabrication requises, et cela avec une bonne rsistante au bruit. Finalement, le modle propos sait reconnatre et classer toutes sortes dimages noir et blanc et peut ainsi tre appliqu autre chose que des logos noir et blanc. Par

84

Chapitre :7 Ouverture et conclusion

exemple des images mdicales (radiologie, IRM), astronomiques, nuclaires, Le systme cr pour la reconnaissance dimages en couleur permet quant lui dannoter des images et de dfinir des informations supplmentaires sur son contenu. Un peu ds lors imaginer une application pour des moteurs de recherches dimages, comme Google, mais plus performants. Aujourdhui, le fameux Google effectue une recherche sur des images en scrutant le titre de ces images. Ainsi, une recherche sur le mot arbre fournit non seulement des plantes, mais galement des arbres gnalogiques, des schmas, Ce ne serait pas le cas avec un moteur bas sur la reprsentation SVG des images. Ce dernier scruterait les images selon une certaine borne <--object par exemple. Le projet ralis permet lannotation automatique de ces images. Par contre, il est difficilement envisageable dintgrer le modle dans un projet robotique, car les temps de traitement ne sont pas adapts. Finalement, tout cest droul dans de bonnes conditions et les objectifs ont t atteints. Cela grce la toute premire rflexion de louvrage, savoir la position philosophique adopter pour la ralisation dun projet connexionniste. Il est bon, pour ces dernires lignes de se remmorer les choix de lauteur, de prendre un peu de recul et de constater dans quelle mesure ils se sont rvls importants. La rflexion cognitive a permis de bien saisir le modle en tant que sujet , cest dire dapprhender son fonctionnement direct : la topologie des rseaux, les algorithmes dapprentissages, lanalyse pralable de sa capacit de classement, La rflexion cyberntique a galement beaucoup apport. En effet, elle a permis damliorer les qualits du systme au travers de la considration dynamique de sa simulation : comment ragit le rseau de neurones si lon rajoute un nouveau mot ? Y at-il des vecteurs dentres quil est prfrable de ne pas prsenter ? Quel est le nombre de neurones cachs ncessaire ? En dernier lieu, lapproche idaliste de Kant et Platon a offert un cadre rigoureux et cohrent de recherche, surtout au travers des diffrents dcoupages du travail, et de la rflexion de base sur le comment de la reconnaissance dimages, au chapitre 3. Encore loin de la fameuse intelligence artificielle , le Graal des connexionnistes, les rseaux de neurones nen sont pas moins livrs un bel avenir. Les constructions poustouflantes et nouvelles qui naissent essentiellement dans les centres de recherches commencent offrir des outils techniques de premier choix rellement utiles sur le march. Un rseau de neurones gagnera-t-il un jour le grand concours de Turing ?

85

Chapitre :7 Ouverture et conclusion

86

Annexe A : Introduction thorique

Annexe A : Introduction thorique

A.1 Neurone formel


La figure 4.1 prsente le fonctionnement d'un neurone formel . Il s'agit d'un composant calculatoire faisant la somme pondre des signaux reus en entre (calculant la quantit h) laquelle on applique une fonction de transfert, ici la fonction seuil (fonction de Heavyside), afin d'obtenir la rponse de la cellule (note y).

Figure A.1 : Identification entre neurone biologique et neurone formel

87

Annexe A : Introduction thorique

La figure A.2 donne les notations que nous utilisons dans cet ouvrage.

Figure A.2 : Notations d'un neurone artificiel

En reprenant les notations de l'illustration A.2, la sortie d'un neurone est dfinie par : (1) o u dsigne le seuil de la fonction de transfert H (Heavy-side, sigmode,...). Il est possible d'une part de gnraliser ce comportement n'importe quelle cellule i, il suffit de rajouter un indice supplmentaire toutes les quantits afin de spcifier leur relation avec i, d'o l'on obtient : (2)

. Certains modles, comme les rseaux RBF (Radial Basis Function) utilisent pour hi la quantit : (3)

88

Annexe A : Introduction thorique

A.2 Perceptron une couche

A.2.1 Introduction Mis au point partir du milieu des annes 50 (57-61) par Rosenblatt, le perceptron se veut un modle de l'activit perceptive. Il s'agit d'associer des configurations prsentes en entre sur la rtine des rponses. Constitu de 2 couches de cellules (et donc une couche de connexions), l'une pour la saisie (la rtine), l'autre pour la rponse. Imaginons un perceptron constitu d'une rtine 6X6 et d'une couche de sortie de 26 cellules. La tche du perceptron sera de reconnatre les lettres prsentes sur la rtine, chaque lettre sera associe une cellule de sortie. Ainsi, lorsque l'on prsente un A on souhaite que la premire cellule soit active et toutes les autres inactives.

A.2.2 Description mathmatique Le nombre de cellules (de chaque couche) est adapt la dimension de l'espace des valeurs. chaque cellule de la couche de sortie on associe une valeur i appele seuil d'activation, ainsi qu'une fonction de transfert fi qui renvoie la valeur +1 si la somme pondre des entres est suprieure au seuil et 0 sinon (on se place dans l'hypothse de cellules binaires i.e. deux tats au choix, 0 et 1 ou -1 et 1). Plus formellement, si on note ij la connexion de la cellule j (rtine) vers la cellule i (sortie), on pose (4) o sj dsigne le signal transitant entre les cellules j et i . L'objectif est d'entraner le rseau jusqu' ce que la valeur obtenue en sortie soit gale la valeur dsire (on est dans le cadre d'un apprentissage supervis). Pour cela on utilise la rgle de Hebb (du nom de son inspirateur Donald Hebb) qui consiste renforcer les connexions entre deux cellules si elles rpondent similairement et diminuer cette valeur sinon. On pose :

89

Annexe A : Introduction thorique

(5) ou encore, si on rend le temps explicite dans l'quation (6)

dans laquelle ai(t) dsigne la valeur calcule (au temps t) par le rseau sur la sortie i, tandis que di correspond la valeur dsire ; sj(t) correspond au signal transitant sur la connexion de j i de poids ij(t), (t) tant le pas (ou coefficient) d'apprentissage au temps t. Ce pas sert moduler l'impact de l'erreur sur la connexion.

A.2.3 Algorithme du perceptron une couche L'algorithme d'apprentissage est donn de manire informelle ci-aprs, une version plus informatique tant donne par la suite : Algorithme dapprentissage du perceptron simple : Rpter jusqu ce que le rseau ait appris Pour chaque donne de la base faire Propager linformation jusqu la sortie Si la sortie obtenue est diffrente de la sortie attendue Alors Modifier les poids des connexions Se rappeler que le rseau na pas appris correctement FinSi finRpter Le passage la version plus informatique repose sur la transformation de la boucle Rpter ... Jusqu' en une boucle Tant que ... Faire. Cette transformation ncessite l'introduction d'une variable qui va tre positionne 1, pour pouvoir entrer dans la boucle. Une fois dans la boucle, on va supposer que l'apprentissage est correct, on positionne ainsi une valeur diffrente de 1, par exemple 0. Puis lorsque l'on comparera la valeur attendue avec la valeur dsire, si les deux informations sont

90

Annexe A : Introduction thorique

diffrentes, on positionnera 1, pour assurer une nouvelle itration sur l'ensemble des donnes apprendre. :=1 ; Tant que ==1 faire /* chaque dbut de cycle, on rinitialise */ :=0 Pour chaque donne apprendre faire Pour chaque cellules de la couche de sortie faire Calculer ai Si ai!= di Pour chaque cellules appartenant la rtine Mettre jour ij FinPourChaque :=1 finSi finPourChaque finPourChaque finTantQue est un marqueur qui permet de savoir si le rseau a subi au moins une modification au cours d'un cycle (ou poque) durant lequel on a prsent toutes les donnes de la base d'apprentissage. Bien entendu, si une donne provoque une modification du rseau (mise jour d'une ou plusieurs connexions), lorsque l'on prsente la donne suivante, elle passera dans le rseau modifi.

A.2.4 Limitations et proprits fondamentales Rosenblatt a dmontr la convergence de l'algorithme d'apprentissage du perceptron : Si le problme admet une solution, alors l'algorithme trouvera une solution au problme en un temps fini et ce indpendamment de l'ordre de prsentation des donnes . L'ordre de prsentation des donnes n'influe pas sur la dcouverte de la solution mais sur les tapes du traitement.

91

Annexe A : Introduction thorique

Le perceptron ne rsout que des problmes linairement sparables. Tout problme non linairement sparable peut tre transform en un problme quivalant linairement sparable, mais il n'existe pas d'algorithme permettant d'automatiser la transformation. la fin des annes 1960 on ne connaissait pas d'algorithme permettant d'effectuer l'apprentissage d'un Perception Multicouches tel que celui permettant de rsoudre le problme du OU exclusif. Cet argument a servi L. Minsky et S. Papert pour tayer le fait que le domaine de recherche sur les rseaux de neurones soit sans avenir.

92

Annexe A : Introduction thorique

A.3 Perceptron multicouches

Figure A.3 : Rseau couches multiples

A.3.1 Introduction La sparation linaire propose par le perceptron une seule couche nest pas suffisante pour toute une classe de problmes. Le perceptron multicouches offre une alternative intressante et trs utilise.

A.3.2 Notation On considre un rseau possdant l +1 couches de connexions, c'est--dire avec l

couches caches H1 ...H l, auxquelles on rajoute la rtine, note R et la couche de sortie note S. Chaque couche de cellules contient un certain nombre de cellules, nots N0, N1, N2, , Nl, Nl +1. Une connexion joignant une cellule i une cellule j sera note kji si elle appartient la kme couche de connexions. La sortie de la cellule i appartenant la kme couche de cellules sera note ski=fi(aki); lorsque k=0, (la cellule appartient la rtine) on pose s0i = xi, lorsque k= l +1 (la cellule appartient la couche de sortie) on pose ski=ai. On appelle activation de la cellule i de la kme couche la valeur : (7)

93

Annexe A : Introduction thorique

Enfin on notera, dip la valeur dsire sur la cellule i pour le pattern p , et oip la valeur obtenue pour le pattern p sur la sortie i.

A.3.3 Description Mathmatique // vers lalgorithme de rtro-propagation Maintenant que les notations sont dfinies, nous allons voir comment on peut gnraliser la rgle delta dans le cadre du PMC. On considrera que toutes les fonctions de transfert utilises sont continues et drivables. On dfinit l'erreur globale du systme comme la somme des erreurs partielles obtenues pour chaque pattern fourni en entre. En d'autre terme :

(8)

On cherche maintenant minimiser l'erreur quadratique instantane du systme, par la mthode du gradient stochastique. On dfinit la variation sur un poids ij pour un pattern p par :

(9)

Il est maintenant ncessaire de calculer cette expression. Nous allons scinder le calcul en deux parties, d'une part pour les connexions allant vers la couche de sortie (conditions aux bords), et d'autre part pour les connexions aboutissant sur une couche cache.

94

Annexe A : Introduction thorique

A.3.3.1 Vers la couche de sortie Dans ce cas, on rappelle que si=oip . On dfinit les notations suivantes :

(10)

On peut dcomposer la variation du poids ij en deux terme, par la rgle de la drive de fonction composes:

(11)

Le premier terme s'value directement de la relation (8): (12) Le second terme ncessite une deuxime dcomposition, car la sortie si est encore fonction de l'activation ai du neurone i.

(13) Le premier terme de cette dcomposition n'est autre que la drive de la fonction de transfert value pour l'activation ai du neurone i: (14)

95

Annexe A : Introduction thorique

Le deuxime terme vient directement de la relation (7):

(15) En rsum on trouve : (16)

A.3.3.2 Vers une couche cache Il va falloir maintenant exprimer la modification des poids pour une connexion qui ne va pas sur la couche de sortie. On suppose que l'on souhaite modifier le poids d'une connexion ij appartenant une couche c, 1<c<l. Il s'agit donc d'arriver exprimer Ep en fonction de cij, on va le faire en utilisant la composition des drives. Regardons comment cela fonctionne pour c=l avant de gnraliser n'importe quelle valeur de c. En analysant les formules, on constate que ijl sert au calcul de ail qui lui-mme permet le calcul de sil , cette valeur est injecte au niveau des connexions kil+1 et contribue donc aux erreurs obtenues lors du calcul de chaque okp . Ce qui nous permet d'crire :

(17)

Il est possible maintenant de calculer chacun des termes intervenants dans la somme:

96

Annexe A : Introduction thorique

Le premier terme s'value directement de la relation (8):

(18) Le deuxime terme n'est autre que la drive de la fonction de transfert du kime neurone de la couche l+1, value pour l'activation de ce mme neurone: (19)

Le troisime terme s'obtient par drivation de l'expression gnrale de l'activation d'un neurone, dcrite par la relation (7): (20)

le quatrime terme, comme pour le deuxime, est la drive de la fonction de transfert, mais value pour le neurone i de la couche l

(21) Le dernier terme, enfin, dcoule comme le troisime de la drivation de la relation d'activation (7):

(22)

partir de l, il est immdiat d'tendre l'galit pour une couche quelconque c telle que 1<c<l. Et ainsi btir la formule gnrale mise en uvre dans le cadre de la rtro-propagation du gradient. Pour une couche c quelconque, il suffit de dire que cij

97

Annexe A : Introduction thorique

participe au calcul de aci, ce dernier permet de calculer sci, cette valeur tant ensuite injecte sur les connexions issues de i et aboutissant sur les cellules k de la couche c+1, contribuant ainsi aux erreurs de la couche c+1, d'o l'expression suivante :

(23)

A.3.3.3 Formule gnrale On va maintenant synthtiser la formule pour l'adapter n'importe quelle couche de connexions. Pour cela on va poser : (24) Ce qui va nous permettre de reformuler la variation de poids : (25)

avec : (26) (27)

Cette rcriture nous permet ainsi d'obtenir une procdure rcursive pour le calcul des pour chaque cellule du rseau et nous rend possible la dfinition de l'algorithme gnral de rtro-propagation du gradient pour l'apprentissage dans un PMC.

98

Annexe A : Introduction thorique

A.3.4 Algorithme du perceptron multicouches

1.- Choix de la valeur n, du seuil minimal, du nombre d'itrations. 2.-Initialisation alatoire des poids des petites valeurs. 3.-Choix d'un pattern d'entre xp. 4.- Propagation (en avant) dans le rseau pour obtenir op. 5.-Calculer il+1 sur la sortie avec ail+1 l'activation de la cellule i de la couche l+1 6.- Calculer les de la couche prcdente par propagation arrire de l'erreur: pour c allant de l 1 faire

endFait

7.- Mettre jour les poids en utilisant

8.- retourner en 3) et rpter pour l'entre suivante, jusqu' ce que l'erreur en sortie soit infrieure la limite fixe ou que le nombre maximum d'itrations soit atteint.

99

Annexe A : Introduction thorique

A.3.5 En rsum Tout ce passe comme si on utilisait le rseau dans deux directions, un calcul ``en avant'' pour dterminer la rponse du rseau une ``stimulation'', puis un calcul en ``arrire'' pour valuer les modifications apporter aux connexions afin d'amliorer le comportement global du systme. Il est important de remarquer que le rseau ne peut influer que sur les poids des connexions et (ventuellement) sur les seuils des cellules. Il ne peut, en aucun cas modifier son architecture ni les fonctions de transferts utilises. De plus pour que le calcul soit possible il est impratif que les fonctions de transfert soient continues (et donc drivables). Par ailleurs, du fait mme des proprits sur le calcul du gradient on n'a plus la garantie de la convergence, c'est pourquoi on a besoin d'introduire une borne sur le nombre d'itrations (poques). De plus, comme on effectue des calculs sur machine, on sait que ces calculs sont entachs d'erreur, il devient donc illusoire de vouloir atteindre les valeurs optimales, d'o la ncessit d'introduire un seuil minimal d'erreur (). Enfin, comme le processus d'apprentissage est initialis alatoirement, il est ncessaire d'effectuer plusieurs simulations avec les mmes paramtres initiaux - ceci nous assure une stabilit statistique de l'apprentissage. On peut remarquer que le rseau est sujet de trs nombreux paramtres, la plupart sont la charge du concepteur et peu de latitude est laisse au rseau. Une fois choisies l'architecture (nature du rseau, nombre de couches, nombre de cellules par couches) et les bases d'apprentissage, de test et de validation, il reste encore de nombreux paramtres dterminer, parmi ceux-ci on peut citer : 1.-La fonction de transfert 2.-La fonction d'erreur 3.-Le pas d'apprentissage

100

Annexe A : Introduction thorique

A.4 Fonction de transfert


Il existe de nombreux candidats dans le domaine des fonctions continues, la figure 4.4 prsente l'allure gnrale des fonctions (pas toutes continues) les plus utilises.

Figure A.4 : Format des fonctions de transfert les plus courantes

La premire fonction (a) correspond la fonction de Heaviside (H). la fonction (b) est une fonction qui est linaire entre deux valeurs (elle est continue par morceaux). les fonctions (c) et (d) correspondent deux sigmodes:

101

Annexe A : Introduction thorique

(30) Et: Ainsi que leur drive respective: (32) (31)

Et:

(33)

la fonction (e) tant une gaussienne: (34)

D'autres fonctions sont possibles.

102

Annexe A : Introduction thorique

A.5 La fonction d'erreur

L'objectif de l'apprentissage est de minimiser la distance entre la valeur dsire et la valeur obtenue (par calcul). La fonction la plus utilise dans les textes est l'erreur quadratique (celle que nous avons utilise). Le problme majeur de cette fonction est d'avoir une drive ``cubique'' en l'activation, elle admet donc trois racines ( ai = 0 , ai = 1 , ai = di) dont seule la dernire possde un intrt pour l'apprentissage. Ce qui provoque une faible vitesse de convergence en fin d'apprentissage. Plusieurs mthodes ont t tudies pour circonvenir le problme, actuellement on s'oriente, dans la pratique vers d'autres fonctions d'erreur telle que la fonction de corrlation croise : (35)

dont la drive (partielle) par rapport ai est : (36)

Ce qui est gal : (37) qui a le bon got de minimiser l'esprance de l'erreur (comme l'erreur quadratique) tout en ayant une drive linaire par rapport ai . Un gain d'un facteur 10 a t constat en pratique et, une fois entran, le rseau possde des performances accrues.

103

Annexe A : Introduction thorique

A.6 Le pas d'apprentissage

La rtro-propagation est une technique de descente de gradient qui doit converger vers la solution, sous rserve que la surface d'erreur soit continue. Habituellement, on fait varier le pas au cours du temps (intuitivement, il s'agit de reproduire un phnomne constat en psychologie sur des sujets apprenants, o lorsque les sujets sont ``neufs'' ils ont tendance absorber l'information avec trs peu d'esprit critique, alors que des sujets plus expriments sont plus rticents acqurir de nouveaux concepts remettant en cause leur ``culture''), en prenant au dbut de l'apprentissage des valeurs proches de 1, et en faisant tendre ce coefficient vers 0. Une autre technique consiste ajouter un terme inertiel (backpropagation with momentum) dans la correction : (38)

Cette technique, propose l'origine par Rumelhardt et al. (1986), attnue les effets d'un pas d'apprentissage trop important (mais rajoute un paramtre). Le coefficient 0<a(t)<1 tant souvent accru au cours du temps. D'autres techniques ont t labores pour rsoudre ce problme (QuickProp, Delta-bar-Delta).

104

Annexe A : Introduction thorique

A.7 Autre modles connexionnistes

Il existe beaucoup d'autres modles de rseaux de neurone, et tous ne peuvent pas tre dcrits. Ici ne seront cit que les plus communes des topologies. -On parle parfois de rseau connexions rcurrentes : les connexions rcurrentes ramnent l'information en arrire par rapport au sens de propagation dfini dans un rseau multicouche. Ces connexions sont le plus souvent locales (fig. 6).

Figure A.5 : Rseau connexions rcurrentes

-Rseau connexion complte : c'est la structure d'interconnexion la plus gnrale (fig. 4.6). Chaque neurone est connect tous les neurones du rseau (et lui-mme).

Figure A.6 : Rseau connexions complte

105

Annexe A : Introduction thorique

Les Rseaux de neurones prsents dans le prochain chapitre sont des rseaux connexions compltes. Il s'agit des rseau comptitions, des cartes auto-organisatrices et des rseaux de Kohonen.

A.8 Cartes auto-organisatrices et algorithme de Kohonen

A.8.1 Introduction Dans un apprentissage non supervis, il n'y a pas de tuteur, plus exactement le rseau ne reoit aucune information de l'environnement lui indiquant quelles devraient tre ses sorties ou mme si celles-ci sont correctes. Le rseau doit donc dcouvrir par lui-mme les corrlations existant entre les patterns d'apprentissage. Les cellules et les connexions doivent dgager un certain degr d'auto-organisation. Manifestement, pour permettre un tel apprentissage, il est ncessaire que les donnes contiennent un certain degr de redondance.

A.8.2 Topologie La topologie d'un rseau de Kohonen et relativement simple: elle ne comporte pas vraiment de couche cache. Le rseau se compose:

106

Annexe A : Introduction thorique

Figure A.7 : Schma d'un rseau de Kohonen

- d'une couche d'entre de N neurones qui reoivent chacun les composantes d'un vecteur d'entre x normalis appartenant RN. - d'une couche de sortie figure par un treillis sur N1 N2 ou N3 habituellement. La reprsentation 2D de la couche de sortie est commode pour une premire visualisation de la topologie, du fonctionnement et de la raison d'tre des rseaux de Kohonen. Chaque neurone de la seconde couche est reli toutes les entres par un poids ik. Chacun des ces neurones caractrise une classe laquelle peut appartenir le vecteur d'entre. La particularit des cartes auto-organisatrices de Kohonen rside dans la notion de voisinage d'un neurone. Chaque neurone possde un ensemble de voisins directs, c'est dire de classes proches. Ainsi, deux patterns d'entre classs par deux neurones topologiquement proches appartiendront deux classes spares mais similaires. La distance entre les sorties sur un treillis 2D caractrise la distance entre deux vecteurs X1 et x2 de Rn.

107

Annexe A : Introduction thorique

Cette reprsentation a donc le mrite de gnraliser un ensemble de vecteur de Rn, et de diminuer le nombre de dimensions des reprsentations (on passe par exemple de N 2 dimensions )

A.8.2 Algorithme dapprentissage

Nous notons x lentre de la carte et k les poids des synapses arrivant sur le neurone (voir figure A.7). Lalgorithme dapprentissage est le suivant :
x k

1.-Initialisation des poids des neurones de sortie (valeurs alatoires faibles). 2.-Prsentation dun exemple de la base et dtermination du neurone de sortie le plus proche de lexemple prsent (neurone lu). A cette fin, on dtermine la distance euclidienne entre lexemple prsent et tous les neurones de sortie caractriss par leurs poids. Le neurone lu est celui pour lequel :
k

(39) 3.-Adaptation de poids selon la formule : (40)


(t) est le taux dapprentissage et V(j,k,t) la fonction de voisinage. Seuls les poids

des neurones dans le voisinage de llu sont modifis. Le taux dapprentissage est une fonction qui diminue avec le temps. Il existe plusieurs expressions pour le coefficient :
(t)

(41)
Ou e ncore:

108

Annexe A : Introduction thorique

(42) La fonction de voisinage V(j; k; t) est gnralement une fonction de la famille des Mexican-hat ou DOG (Difference Of Gaussians) telle que reprsente sur la figure A.8.

Figure A.8 : Difference of Gaussians (DOG)

Pour la description thorique, il est plus convenable de considrer une simple gaussienne, voluant avec le temps, de la forme :

(43) La distance entre llu (dindice j) et le neurone dindice k peut tre dfinie de plusieurs manires. Nous retenons la city-block distance :
d(j; k)

(44)

109

Annexe A : Introduction thorique

pour une carte de dimension 2 (x et y). La fonction de voisinage se rtrcit au court du temps. Cela est cens rapporter un phnomne physiologique observ sur des sujets apprenant: plus un sujet rvis un savoir, plus il est difficile pour lui de reformer son esprit une autre discipline. Le sujet prouve une certaine rticence abandonner sa propre culture pour une nouvelle culture. Le rtrcissement de la fonction de voisinage au cours du temps symbolise ce durcissement du systme, qui perd sa plasticit de dpart. Cette variation temporelle est caractrise par le coefficient (t) dfini par :

(45) Si lapprentissage nest pas termin, on adapte (t) et V(j; k; t) et on reprend au point 2. Larrt de lalgorithme est obtenu si l'erreur descend sous un certain seuil. reprsente la somme des diffrences, pour les N exemples de la base, entre chaque entre et llu correspondant :

(46)

Les simulations ralises montrent qu'il y a deux phases dans le droulement de l'algorithme: - une phase initiale assez courte, pendant laquelle le voisinage et le taux sont grands, conduit une modification rapide des poids et la formation d'une discrtisation grossire de l'espace d'entre ; - une deuxime phase de convergence 10 100 fois plus longue permet d'affiner la reprsentation et d'obtenir la carte finale grce des paramtres et plus faibles.

110

Annexe A : Introduction thorique

A.8.3 Illustrations Les planches suivantes sont prsentes uniquement titre d'illustration. Elles n'ont pas de rapport direct avec le projet en court, mais permettent de symboliser au mieux le fonctionnement des cartes auto-organisatrices. L'exemple est repris de la littrature et figure dans la thse de Jean-Luc Buessler [BUS99]:

Figure A.9 (a e): Exemple de formation d'une carte auto-organisatrice

111

Annexe A : Introduction thorique

A.9 Mise en oeuvre du modle connexionniste

Comment mettre en uvre ces rseaux de neurones ? Plusieurs tapes doivent tre respectes. La mise en uvre dun rseau de neurones ncessite: de dterminer les entres pertinentes, cest--dire les grandeurs qui ont une influence significative sur le phnomne que lon cherche modliser, de collecter les donnes ncessaires lapprentissage et lvaluation des performances du rseau de neurones, de trouver le nombre de neurones cachs ncessaires pour obtenir une approximation satisfaisante, destimer les valeurs des paramtres correspondant un minimum de la fonction de cot, cest--dire deffectuer un apprentissage, dvaluer les performances du rseau de neurones lissue de lapprentissage. En fonction des rsultats obtenus, il peut tre ncessaire deffectuer plusieurs itrations de tout ou partie de cette procdure. Nous allons aborder successivement ces diffrents points.

A.9.1 Les entres pertinentes Le problme de la dtermination des entres pertinentes se pose de manire trs diffrente selon les applications envisages. Si le processus que lon veut modliser est un processus industriel conu par des ingnieurs, le problme est important mais pas crucial, car, en gnral, on connat bien les grandeurs qui interviennent et les relations causales entre celles-ci. Ainsi, dans un procd de soudage par points, on fait fondre localement les deux tles souder en faisant passer un courant lectrique trs important (quelques kilo-ampres) pendant quelques milli-secondes, entre deux lectrodes qui exercent une pression mcanique sur les tles. La qualit de la soudure dpend videmment de lintensit du courant, de la dure pendant laquelle il est appliqu, de leffort exerc par les lectrodes pendant le passage du courant et pendant la phase de

112

Annexe A : Introduction thorique

solidification, de ltat de surface des lectrodes, de la nature des tles, et de quelques autres facteurs qui ont t trs largement tudis en raison de limportance industrielle du procd. On connat donc la nature des entres dsirables pour un modle ; il peut tre nanmoins utile de faire un choix parmi ces grandeurs, en ne prenant en considration, en entre du modle, que celles qui agissent de manire trs significative sur le processus En revanche, si le processus modliser est un processus naturel complexe (cologique par exemple), ou un processus conomique, social ou financier, la dtermination des entres pertinentes peut tre beaucoup plus dlicate. Ainsi, si lon veut prdire une proprit chimique dune molcule, le choix des descripteurs pertinents nest pas vident ; de mme, pour dterminer le concept de ressemblance d'objets. Ce problme (et, plus gnralement, le problme de la slection de modle) nest pas spcifique aux rseaux de neurones : il se pose pour toutes les techniques de modlisation, quelles soient linaires ou non.

A.9.2 La collecte des donnes Nous avons vu que, pour pouvoir effectuer lapprentissage, il faut disposer de donnes. Celles-ci doivent tre en nombre suffisant, et tre suffisamment reprsentatives des donnes qui seront prsentes au modle lors de son utilisation. Lorsque la grandeur que lon veut modliser dpend de nombreux facteurs, cest--dire lorsque le modle possde de nombreuses entres, il nest pas possible de raliser un pavage rgulier dans tout le domaine de variation des entres : il faut donc trouver une mthode permettant de raliser uniquement des expriences qui apportent une information significative pour lapprentissage du modle : il faut raliser un plan dexpriences . Pour les modles linaires, llaboration des plans dexpriences est bien matrise ; ce nest pas le cas pour les modles non linaires. Et les systmes mis en uvre pour le prsent projet sont fortement non-linaires.

A.9.3 Prparation des donnes Cette prparation inclut plusieurs tapes pour convertir un ensemble de donnes brutes en donnes traitables par un rseau. Ces transformations doivent tre appliques sur chaque variable d'entre et chaque variable de sortie. - Classification des types de donnes

113

Annexe A : Introduction thorique

- Evaluation statistique Pour les donnes numriques, on se doit de calculer la moyenne, l'cart type, le minimum et le maximum. Pour les valeurs nominales, on s'intressera au nombre de valeurs possibles, et au nombre de valeurs pour chaque catgorie. - Suppression des donnes atypique Il faut tout pris viter les apprentissages contradictoires. La structure entire du rseau s'croule dans de telles situations -Contrle qualit Il existe de nombreux facteurs liant la quantit de donnes ncessaire l'apprentissage dans un rseau. L'un d'entre eux est la dimension des donnes. Plus le modle contient de variables, plus on aura besoin de donnes, c'est pourquoi on est parfois amener soit rduire la dimension de l'espace des donnes, soit augmenter l'chantillon. -Construire la base d'exemples Lorsque l'on dispose d'un vaste chantillon, il est raisonnable de n'en considrer qu'une partie (slectionne alatoirement), mais il faut que le sous-ensemble respecte les proprits de l'chantillon total. Pour cela on comparera les moyennes et variances des deux ensembles. Les points suivants seront appliqus au sous-ensemble slectionn et non la base initiale. Pour construire un modle quilibr, il faut que l'chantillon soit reprsentatif et quilibr. -Rduction des dimensions : Plus la taille de la rtine est importante, plus le nombre de connexions du rseau augmente. Les poids tant les variables du systme, il faudra un chantillon trs important (ventuellement, exponentiel en le nombre de connexions). La thorie de l'chantillonnage nous dit qu'il existe une relation exponentielle entre la taille de l'espace des donnes et le nombre ncessaire pour tre reprsentatif de l'espace. -Transformation Les valeurs dsires pour chaque donne doivent appartenir Im(f) o f est la fonction de transfert utilise. Certaines sigmodes sont valeur dans [0..1] d'autres dans [-1..1]. Il est souvent pratique de r-chelonner les donnes pour appartenir au mme ensemble de valeurs. Cette transformation peut, suivant le cas, tre linaire ou pas en fonction de la distribution initiale.

114

Annexe A : Introduction thorique

-Encodage Une fois traites, les donnes doivent tre encodes pour satisfaire les besoins du rseau. Les valeurs numriques peuvent tre utilises telles quelles ou tre transformes. Les donnes de nature nominale doivent toujours tre codes.

A.9.4 Le nombre de neurones cachs Lcart entre lapproximation ralise par un rseau de neurones et la fonction approcher est inversement proportionnelle au nombre de neurones cachs [BARRON 1993] ; malheureusement, ce rsultat, comme dautres considrations nest pas constructif, en ce sens quil ne peut que donner des estimations, ou des bornes larges, du nombre de neurones cachs ncessaires. Il nexiste pas, lheure actuelle, de rsultat thorique permettant de prvoir le nombre de neurones cachs ncessaires pour obtenir une performance spcifie du modle, compte tenu des donnes disponibles.

A.9.5 La ncessit de la parcimonie Lide la plus naturelle consisterait choisir le nombre de neurones cachs le plus grand possible, puisque cest ce qui assure la plus grande prcision lapproximation uniforme dune fonction. Ce serait oublier que le problme rel que lon se pose nest pas un problme dapproximation uniforme, mais un problme dajustement dune fonction un nombre fini de points ; il faut donc, non seulement que la fonction ralise par le rseau de neurones passe le plus prs possible , au sens des moindres carrs, des points utiliss pour lapprentissage (lensemble de ces points est appel ensemble dapprentissage ), mais galement quil soit capable de gnraliser de manire satisfaisante. Si le rseau de neurones possde un nombre de paramtres excessif, en raison dun nombre excessif de neurones cachs, sa sortie peut passer avec une trs grande prcision par tous les points dapprentissage, mais fournir des rsultats dpourvus de signification entre ces points ; sil possde un nombre de paramtres trop restreint, le modle nest pas suffisamment riche pour rendre compte de la complexit de la fonction de rgression inconnue. Ce dilemme (appel dilemme biais-variance ) est le problme essentiel que doit affronter le concepteur de modles : il rsulte du fait que la modlisation bote noire entre dans la catgorie des problmes dits mal

115

Annexe A : Introduction thorique

poss , en ce sens quils ne peuvent pas tre rsolus compltement en fonction des donnes dont on dispose.

Figure A.10 : Problme de la parcimonie

La figure A.10 prsente le rsultat de lapprentissage, partir des mme points de mesure, de deux rseaux une couche cache de neurones fonction dactivation sigmode : lvidence, le rseau le plus parcimonieux en neurones cachs est celui qui prsente les meilleures capacits de gnralisation, tandis que le rseau qui a trop de paramtres conduit au phnomne classique de sur-ajustement (en anglais overfitting). En pratique, on sefforcera toujours de faire en sorte que le nombre de paramtres ajustables soit petit devant le nombre dexemples. Si, au vu des rsultats ports sur la figure A.10, le choix entre les deux rseaux est vident, il nen va pas de mme lorsque le modle possde plusieurs entres, car il nest alors pas possible de reprsenter graphiquement le rsultat de manire aussi simple. Il faut donc trouver un critre global de jugement des performances du rseau. Pour ce faire, il convient de constituer, outre lensemble dapprentissage utilis pour le calcul des poids du rseau, un ensemble de test, constitu de donnes diffrentes de celles de lensemble

116

Annexe A : Introduction thorique

dapprentissage, partir duquel on estime les performances du rseau aprs un apprentissage. Lindice de performance le plus frquemment utilis est lerreur quadratique moyenne commise sur lensemble de test (ou ensemble destimation des performances), dsigne par EQMT :

(47)

117

Annexe B Utilisation de l'interface SIR

118

Annexe B Utilisation de l'interface SIR

Annexe B Utilisation de l'interface SIR

B.1 Avant propos

Le projet de recherche donn naissance une interface utilisateur. Le programme ralis offre plusieurs fonctionnalits tant pour l'apprentissage, la cration des patterns d'entres, la simulation du rseau de neurones, l'affichage des rsultats. L'interface propose s'est ainsi avre des plus utiles pour le dveloppement du projet. A l'intention du futur utilisateur, l'annexe 2 se veut un descriptif du logiciel SIR (Segmented Images Recognising) au travers d'un exemple simple d'utilisation. La prsentation se divise en trois sections qui sont la cration des lots d'apprentissages, l'apprentissage et la reconnaissance.

119

Annexe B Utilisation de l'interface SIR

B.2 Prsentation, donnes d'usage


B.2.1 Introduction Mais avant tout, dcrivons un peu l'utilit gnrale de l'interface. Le logiciel dvelopp s'applique exclusivement la recherche sur les images couleur. Le but du programme est de mettre en oeuvre de faon abordable toute la structure du rseau de neurones dcrite dans le chapitre 6. Il s'agit donc visualiser des images .jpg ainsi que leurs reprsentations segmentes. Avec quelques simples clicks sur la photo, l'utilisateur peut slectionner des zones associer et crer des lots d'apprentissages pour diffrents mots. Par exemple, crer un lot de vecteurs d'entres pour le rseau qui doit reconnatre des arbres, un autre pour les visages, etc; cela de la manire la plus automatique. Maintenant, l'interface permet de raliser diffrents types d'apprentissages pour un rseau de neurones avec le lot d'entres appropri, et mme de simuler la totalit du systme d'un seul click. Chaque rseau de neurones est en fait compos de 7 perceptrons multicouches et il est possible, soit de crer de nouveaux rseaux avec les paramtres dsirs, soit d'diter les paramtres d'apprentissage de n'importe quel PMC en cours de travail. Le programme permet mme d'diter la topologie d'un PMC quelconque (nombre de neurones cachs, minmax des sorties,...), au prix videment de la rinitialisation du PMC. La deuxime partie de l'interface met en oeuvre un rseau de neurones et permet deux modes de fonctionnement: -L'utilisateur choisit un image. Le systme reconnatra les objets de cette image. -L'utilisateur choisit un objet. Le systme reconnatra toutes les images contenant cet objet. L'affichage des rsultats est simple et explicite. Ainsi, en rsum, il est naturel de dfinir trois actes pour l'utilisation de l'interface:

120

Annexe B Utilisation de l'interface SIR

Acte 1. Acte 2. Acte 3.

Cration de lots d'apprentissages partir d'images. Apprentissage et ventuellement modifications des paramtres d'apprentissage. Simulation et affichage des rsultats.

B.2.2 Configuration minimum Actuellement, l'interface SIR fonctionne sous environnement WINDOWS 98/2000/XP, et requiert la prsence de la version 6.5 R13 de MATLAB. Certaines fonctionnalits d'affichages des fentres ne sont pas compatibles avec les versions prcdentes de MATLAB. En outre, la prsence du SDCToolBox est essentielle au bon droulement du programme. Certains algorithmes utilisent quelques fonctions de ce toolbox trs pratique pour amliorer les temps de calcul. Malheureusement, cet outil n'est pas gratuit et n'est pas fourni avec les versions mme compltes de MATLAB. Il est cependant possible d'en tlcharger une version complte valable un mois sur le site officiel du SDC_ToolBox , l'adresse suivante: http://www.mmorph.com/ Pour l'installation du toolbox, toutes les indications sont bien donnes sur site ou dans le document Howtoinstall.txt , dans la racine du rpertoire d'installation. Il faut encore possder le SOM_ToolBox, et linstaller la racine du disque C. Ce jeu de fonction se tlcharge depuis le site : http://www.cis.hut.fi/projects/somtoolbox/

Lancement de l'interface Depuis un shell MATLAB, il faut se placer dans le rpertoire o se trouve le fichier SIR.m et excuter la commande > SIR et presser sur retour.

121

Annexe B Utilisation de l'interface SIR

B.3 Exemple d'utilisation


Au lancement, le programme s'ouvre sur la fentre suivante:

Figure B.1 : Fentre d'ouverture de l'interface SIR

122

Annexe B Utilisation de l'interface SIR

B.3.1 Slection d'un stack Ds lors, il est possible d'accomplir plusieurs actions, mais commenons par nous familiariser avec le logiciel. La fentre est vide, c'est dire que aucun rseau de neurones n'est charg, ni aucune image. Commenons par indiquer un stack d'images sur lequel travailler. Pour cela, il suffit de cliquer sur le bouton NEW STACK, le seul qui ne soit pas gris. Une fentre modale vous indique qu'il s'agit de votre premier stack. Un click sur OK ouvre un explorateur. Il suffit alors d'indiquer une image dans un rpertoire, et le lot d'image de tout le rpertoire sera charg. Par exemple, la slection d'un fichier dans la figure B.4 charge tous les fichiers du mme dossier. Cliquer sur OPEN pour charger le stack et revenir la fentre de base. Attention, le dossier indiqu doit contenir les images ainsi que les fichiers SVG respectivement associs portant le mme nom que l'image (mis part l'extension, bien sur).

Figure B.3 : Ouverture d'un nouveau stack d'images

123

Annexe B Utilisation de l'interface SIR

Figure B.4 : Explorateur: slection d'un rpertoire

B.3.2 Navigation dans les images Une fois qu'un stack d'images est slectionn, les boutons NEXT et PREV sont dgriss et peuvent tre utiliss pour se dplacer dans un lot d'images. Il est ainsi possible de disposer d'une premire image pour travailler en cliquant par exemple sur le bouton NEXT.

Figure B.5 : Bouton NEXT

Apparaissent alors dans la partie suprieure de l'interface, l'image originale sur la gauche, et la mme image mais segmente sur la droite. La reconstruction de l'image segmente peut prendre du temps en fonction de la taille de l'image, et le nombre se segmentations, mais gnralement, pas plus de quelques secondes, pour les plus gros fichiers.

124

Annexe B Utilisation de l'interface SIR

Figure B.6 : Image originale (gauche) et image segmente (droite)

Une analyse qualitative de la segmentation de l'image permet dj de choisir si l'on peut continuer travailler avec cette image. Si le cas d'une mauvaise segmentation se prsente, il est plus judicieux de ne pas travailler avec et de charger la suivante. Lorsque l'utilisateur choisi un exemplaire sur lequel effectuer un apprentissage, il peut alors slectionner des zones de cette image pour reconstruire un objet entier. Plus tard, un rseau de neurones apprendra fusionner les zones indiques par l'utilisateur, par exemple un arbre.

B.3.3 Slection des rgions fusionner Pour cela, il faut cliquer sur le bouton SELECT ZONES.

Figure B.7 : Bouton SELECT ZONES

125

Annexe B Utilisation de l'interface SIR

Cela fait, deux lignes, horizontale et verticale, se positionnent au niveau du curseur de la souris. L'utilisateur est en mode slection. Il peut maintenant cliquer sur des zones de l'image de droite (image segmente) et voir chaque clique le contour de la rgion slectionne se redessiner en rouge sur l'image de gauche (image originale), comme prsent sur la figure B.8.

Figure B.8 : prsence d'un nouveau curseur et affichage des contours slectionn sur l'image originale (gauche)

Aprs avoir indiqu toutes les rgions de l'arbre, un simple clique en dehors de l'image met fin la phase de slection des rgions fusionner. A la fin de cette phase, deux checkboxs ainsi qu'un bouton SAVE SELECTION apparaissent en dessous du bouton SELECT. Le bouton SAVE SELECTION n'est pas encore activ, car toutes les informations n'ont pas t donnes.

126

Annexe B Utilisation de l'interface SIR

Figure B.9 : Bouton SAVE SELECTION gris

B.3.4 Type de sauvegarde En effet, il existe deux modes possibles pour sauver une slection. D'un ct, on peut simplement dcider que les zones indiques sont les rgions fusionner, et en rester l (liste de fusion). Il faut alors cocher la case Only selected D'un autre cot, on peut estimer que les rgions non slectionnes sont des rgions qu'il ne faut absolument pas fusionner (liste de non-fusion). Dans ce cas l, il faut cocher la case All couples , cela sauvegardera les 2 ensembles de zones: celles associer, et celles dissocier. Ce choix permet d'viter les problmes avec une image contenant deux arbres par exemple. Dans une telle situation, si l'on indique les rgions du premier arbre, il ne faut pas que le rseau apprenne ne pas fusionner le deuxime arbre, cela fausserait compltement sa simulation.

Figure B.10 : Checkbox pour le type de sauvegarde

Ainsi, la premire checkbox apparue propose de ne sauvegarder que la liste de fusion, alors que la deuxime offre de sauvegarder les listes de fusion et de non-fusion. Une fois que ce choix est fait, le bouton SAVE SELECTION est encore inactif, car il reste indiquer le nom de l'objet slectionn, et donc par-l mme, dans quel fichier vont tre sauvegards les nouvelles listes slectionnes par l'utilisateur.

127

Annexe B Utilisation de l'interface SIR

B.3.5 Choix d'un mot Pour ce faire, on observe sur la droite de la partie suprieure (en haut droite) une listbox (General Type), vide pour l'instant, ainsi qu'une case pour diter un texte (New Type). La listbox contient l'ensemble des objets dj slectionns, et la case de texte permet d'entrer un nouveau mot qui ne serait pas prsent dans la listbox. Pour l'exemple que nous traitons ici, la listebox est vide et il va falloir indiquer un mot dans le text-edit infrieur.

Figure B.11 : Choix d'un mot dans la listbox General type ou saisie dans la case New type

Aprs criture dans la case, ne pas oublier d'appuyer sur ENTER pour valider le mot. Cette action dgrise enfin le bouton SAVE SELECTION.

128

Annexe B Utilisation de l'interface SIR

Figure B.12 : Mot choisi et bouton SAVE SELECTION dgris

Le bouton SAVE SELECTION effectue plusieurs tches. Premirement, il calcule tous les patterns d'entres qui dcoule de la slection de l'utilisateur, ainsi que les sorties associer chacun de ces patterns. Ensuite, il effectue une sauvegarde de tous ces rsultats dans le fichier qui porte le mme nom que l'objet indiqu, par exemple dans le fichier arbre.mat . Si le fichier arbre.mat n'existe pas, il le cre. Sinon, il le charge simplement pour y ajouter les nouvelles informations. Finalement, si le mot est un mot prsent pour la premire fois, alors le bouton SAVE SELECTION cre galement un nouveau rseau de neurone qui travaillera exclusivement sur cet objet. C'est le cas dans l'exemple suivi: le mot arbre est prsent pour la premire fois, donc il y a cration d'un rseau de neurone qui sera associ tous les arbres, et qui effectuera un apprentissage uniquement partir du fichier arbre.mat . On peut ainsi ajouter autant de mots que l'on veut, l'interface crera un fichier et un rseau de neurones par mot. Si l'image analyse contient un objet dont le type a dj t prsent, alors il est possible de slectionner le mot correspondant dans la listbox. Cette action dgrise galement le bouton SAVE SELECTION.

129

Annexe B Utilisation de l'interface SIR

Aprs la sauvegarde, le mot arbre de notre exemple va se placer dans la listbox avec les autre mots dj sauvegards, comme prsent sur la figure B.13.

Figure B.13 : Nouveau mot insr dans la listbox

Maintenant, l'utilisateur peut recommencer les manipulations depuis la navigation dans les images, ou dcider d'effectuer un premier apprentissage. Proposons-nous de raliser un premier apprentissage sur l'arbre que l'on vient de traiter.

B.3.6 Apprentissage Pour raliser un apprentissage, il faut videmment indiquer quel mot il va falloir apprendre. Pour cela, l'utilisateur slectionne un mot dans la listbox de la partie suprieure, par exemple arbre , et clique simplement sur le bouton LEARN OBJECTS (attention, si le mot slectionn est arbre, l'apprentissage va se raliser pour le rseau de neurones spcifique aux arbres). Lors de cette action, une nouvelle fentre modale apparat, comme sur la figure B.14.

130

Annexe B Utilisation de l'interface SIR

Figure B.14 : Choix du type d'apprentissage

Le logiciel demande l'utilisateur quel type d'apprentissage raliser. Il peut choisir entre : - apprendre uniquement le dernier objet dont on a indiqu les zones. - apprendre tous les objets qui correspondent un arbre, c'est dire raliser un apprentissage de tout le fichier arbre.mat . - apprendre tous les objets (arbre, visage, maison, voiture,...) et donc adapter tous les rseaux de neurones avec tous les fichiers respectifs arbre.mat , visage.mat , maison.mat ... Il ne reste plus qu' slectionner le type d'apprentissage dsir et appuyer su OK. L'apprentissage s'effectue! Attention, lors de l'apprentissage de ne pas faire apprendre un objet au mauvais rseau de neurone, par exemple de faire apprendre un visage au rseau prvu pour les arbre. Cette situation peut survenir lorsque l'utilisateur dcide de n'effectuer un apprentissage que sur les dernires rgions slectionnes. Ainsi, s'il a indiqu par quelques clicks que l'objet tait un visage, et qu'ensuite l'utilisateur slectionne le mot arbre dans la listebox, alors c'est le rseau prvu pour les arbres qui va subir l'apprentissage d'un visage. Ce phnomne est relativement grave, puisque le rseau associ aux arbres va soudain faire des apprentissages incohrents. Il apprend par exemple ne jamais fusionner deux zones roses, puis fusionner deux zones roses. Idal pour en perdre son Latin. Lentranement prend beaucoup de temps: de quelques secondes pour un objet ou deux quelque heures, pour un apprentissage de tous les objets pour tous les rseaux de

131

Annexe B Utilisation de l'interface SIR

neurones.

B.3.7 Reconnaissance La partie du logiciel qui traite de la reconnaissance se trouve dans la partie infrieure de l'interface. Cette section peut fonctionner sous deux modes diffrents: -Reconnaissance des objets dans une image -Reconnaissance d'un objet dans des images

Figure B.15 : Section infrieure de l'interface, prvue pour la reconnaissance des objets.

Dans les deux modes, il est impratif d'indiquer dans un premier temps un dossier contenant des images. Pour ce faire, la manuvre est identique celle de la partie prvue pour l'apprentissage: il suffit de cliquer sur le bouton NEW STACK et d'indiquer une image quelconque du dossier choisi.

132

Annexe B Utilisation de l'interface SIR

Figure B.16 : Bouton NEW STACK

Cela fait, l'utilisateur doit choisir entre l'un des deux modes de fonctionnement.

N objets dans 1 image Dans ce mode, il est possible d'utiliser les deux boutons NEXT et PREV pour naviguer parmi les images du dossier. Lorsque l'utilisateur a choisi une image analyser, il n'y plus qu' presser sur le bouton ANALYSE droite dans la section RECOGNISING de l'interface. A ce moment prcis, les rseaux de neurones associs chaque mot connus analysent l'image. Ainsi, chacun reconnat uniquement l'objet pour lequel il est prvu.

Figure B.17 : Bouton ANALYSE

La liste des objets dcouverts est alors affiche dans la deuxime listbox, et l'utilisateur peut volont cliquer sur un mot de la listbox pour voir s'afficher sur l'image de droite le contour de l'objet slectionn.

133

Annexe B Utilisation de l'interface SIR

Figure B.18 : Rsultat de lanalyse : les contours de lobjet dcouvert en rouge sur limage de droite

il est possible de recommencer l'opration autant de fois que l'on veut.

1 objet dans N images Maintenant, l'utilisateur peut dcider de trouver toutes les images du dossier qui contiennent un arbre. Dans ce cas l, il n'y pas besoin de naviguer parmi les images. Il suffit de choisir un objet entre tous ceux dj connus par le systme. La liste de ces objets se trouve dans la troisime listbox, en-bas droite. Un click sur le mot arbre de la listbox dgrise le bouton FIND OBJECT, sur lequel on peut alors presser pour lancer la recherche.

134

Annexe B Utilisation de l'interface SIR

Figure B.19 : Bouton FIND OBJECT

Attention, la recherche dure plus ou moins longtemps, selon le nombre et la taille des images. Au moment ou une recherche est lance, une barre apparat au fond droite, sous la troisime listbox, et indique la progression de l'analyse. De plus, un signal sonore annonce que le traitement est fini. A ce moment, les deux boutons NEXT et PREV sont nouveau actif et l'utilisateur peut naviguer parmi les images qui contiennent un ou plusieurs arbres. Plusieurs exemples de rsultats sont prsents dans lannexe C

B.4 Options supplmentaires

Comme indiqu dans l'introduction de cette annexe, il est possible d'diter en tout temps chaque paramtre du systme entier. videmment ceux-l sont nombreux. Par exemple, si le systme en cours d'utilisation connat 10 mots, alors 10 rseaux de neurones sont en oeuvres. Chaque rseau est compos de 7 perceptrons multicouches, et chaque PMC compte pas moins de 15 paramtres: 12 pour l'apprentissage et 3 pour la topologie. On compte donc au total 15x7x10 = 1050 paramtres ajustables pour le systme. L'interface prsente propose une navigation simple parmi ces paramtres pour l'utilisateur tmraire qui voudrait en modifier certains. Pour cela, il faut commencer par presser sur le bouton SET PARAMETERS droite de la fentre principale de

135

Annexe B Utilisation de l'interface SIR

l'interface. Cette action ouvre une nouvelle fentre intitule Set Network Parameters . Cette fentre est spare en deux parties.

Figure B.20 : Fentre d'dition des paramtres

La section suprieure prsente, outre un texte d'avertissement, une listbox contenant la liste des mots connus du systme, c'est dire des rseaux correspondants. Si l'utilisateur slectionne l'une des entres de la listbox, toujours le mot arbre, la section infrieure de la fentre change et affiche les paramtres du rseau de neurones qui reconnat les arbres.

136

Annexe B Utilisation de l'interface SIR

Figure B.21 : Section infrieure de la fentre d'dition des paramtres

La section infrieure permet de naviguer aisment parmi les paramtres d'apprentissage de chacun des 7 PMC du rseau slectionn. La partie suprieure de cette section compte 7 toggle-boutons qui sont les 7 PMC du rseau en question. - toggles 1 4 : CNT1, CNT2, CNT3 et CNT4: ils sont les quatre PMC qui reoivent les reprsentations des contours. - toggle 5 : CNT LAY.2 : voil le PMC qui reoit ses entres des quatre PMC prcdents assigns aux contours. - toggle 6 : RGB : reprsente le PMC qui traite des informations RGB. - toggle 7 : LAYER 3 : le dernier PMC qui reoit ses entres des rseaux CNT LAY.2 et RGB.

Le reste de cette section prsente la liste des paramtres d'apprentissages du PMC en question, dont voici une brve description pour les plus importants: 2 Nb iterations : permet de choisir le nombre de pas pour l'apprentissage 3 Display : offre la possibilit d'afficher la courbe d'volution de l'erreur globale du PMC. Si la valeur 50 est indique, alors la courbe se raffiche tous les 50 pas d'itrations. Ainsi, si on ne veut pas d'affichage, il suffit de spcifier une valeur plus leve que le nombre d'itrations. 4 Global error limit : premier critre d'arrt de l'algorithme d'apprentissage: la valeur indique prsente la borne infrieure de l'erreur globale. C'est dire qu'en

137

Annexe B Utilisation de l'interface SIR

dessous de cette valeur, on estime que le PMC a ralis un bon apprentissage. 5 Perform time limit : deuxime critre d'arrt: il indique aprs combien de temps, en seconde, l'algorithme d'apprentissage s'arrte. Ce paramtre est habituellement fix INF, car les autres critres d'arrts, ou le nombre d'itrations sont suffisant. 6 Minimal gradient : Ce paramtre indique partir de quand on estime que le rseau de neurones n'apprend plus. Plus le gradient est petit, moins le rseau s'adapte. En dessous d'une certaine valeur, il est raisonnable de considrer que le rseau fini de converger et d'apprendre.

Figure B.22 : Liste des paramtres d'apprentissage

12 Alpha : C'est le coefficient d'apprentissage: plus cette valeure est petite, plus vite le rseau adapte ses connexions, mais moins il est capable d'apprendre de nouvelles relations. Au contraire, si le coefficient est lev, alors le rseau peut facilement se radapter un nouvel apprentissage, par contre il lui est difficile de bien apprendre les choses. C'est la diffrence entre une structure trop plastique et une structure trop rigide. La section infrieure des paramtres prsente encore quatre boutons au fond de la fentre: CANCEL, SET TOPOLOGY, APPLY et OK.

Figure B.23 : Boutons de la fentre des paramtres

Le bouton CANCEL quitte simplement la fentre sans enregistrer les derniers paramtres modifis. Le bouton APPLY applique les nouveaux paramtres au PMC concern sans quitter la fentre. Le bouton OK enregistre les nouveaux paramtres et

138

Annexe B Utilisation de l'interface SIR

quitte la fentre. Il reste un bouton: SET TOPOLOGY. Ce bouton permet de modifier la structure topologique d'un rseau. Evidement, cela va rendre caduque tous les apprentissages prcdents pour ce PMC et peut en partie dstabiliser le systme entier, bien que l'architecture propose au chapitre 6 ait la capacit d'emmagasiner de telles dstabilisations: l'information est traite par 7 chemins diffrents, ainsi lorsque l'un des chemins est initialis ou dfectueux, les six autres continuent de travailler et pallient en partie le manque de l'un d'entre eux. Lorsque l'utilisateur presse sur le bouton SET TOPOLOGY, une nouvelle fentre s'ouvre

Figure B.24 : Fentre pour l'dition des paramtres topologiques

Il y a moyen ici de modifier - Le nombre de neurones de la couche cache. Pour l'instant, le programme ne permet que d'diter des PMC une couche cache. - Le minmax des entres. - La fonction de transfert des neurones. Aprs modification d'un paramtre, ne pas oublier de presser sur enter. Cela rend

139

Annexe B Utilisation de l'interface SIR

le bouton OK actif et permet de valider les modifications une fois celles-ci termines. Les paramtres d'apprentissage du PMC modifi sont conservs et repris du PCM avant rinitialisation.

B.4 Conclusion

A prsent, tout est dit sur linterface SIR. Lutilisateur peut maintenant crer des lots dapprentissages, entraner le systme entier ou seulement une partie, le simuler selon diffrents modes. Lutilisateur peut mme modifier pratiquement tous les paramtres du systme en tout temps (mis part les phases de calcul, videmment). Le programme est un programme de recherche et de dveloppement. La version propose nest certainement par optimise et peut galement prsenter parfois quelques problmes. Par exemple, si le logiciel est laiss ouvert plus dun jour sans utilisation, celui-ci ne fonctionne tout simplement plus, tout comme MATLAB. Une autre difficult non rsolue se situe lors dune analyse pour retrouver les objets dune image. Si aucun objet nest dcouvert, il arrive (mais pas rgulirement) que la listbox prvue cet effet se bloque avant son raffichage. Rien de grave, si ce nest un aspect esthtique diminu dans ce cas l.

140

Annexe C Rsultats

141

Annexe C Rsultats

Annexe C Rsultats

Voici une liste non exhaustive de rsultats sous forme d'images. Ceux si sont prsents pour les logos noir et blanc et pour des arbres et des visages en couleur. Pour les logos noir et blanc, des classes de regroupement sont prsentes. On trouve ainsi quelques ensembles de logos bien et moins bien class par similarit. Les images couleur vont toujours par 4, un peu comme pour les photomatons. La premire image est l'original. La deuxime est l'image segmente. La troisime reprsente l'originale accompagne par les contours de toutes les zones en rouge. La dernire image figure un objet dcouvert par le systme, entour en rouge.

142

Annexe C Rsultats

C.1 Logos noir et blanc

Voici pour commencer quelques classes ou le systme a bien ragi. Une ligne spare chaque classe :

143

Annexe C Rsultats

Et voici quelques exemples de classes apparemment males construites. La ressemblance des logos des classes suivantes est difficile trouver et comprendre :

144

Annexe C Rsultats

C.2 Images couleur

C.2.1 Arbres bien analyss

Commenons par prsenter quelques bons rsultats:

145

Annexe C Rsultats

146

Annexe C Rsultats

147

Annexe C Rsultats

C.2.2 Arbres moyennement bien analyss

Voici quelques rsultats estims comme passables, acceptables, mais pas trs bien tout de mme: On constate que les images moyennement traites sont des images en gnral plus complexe, avec plus de dtails.

148

Annexe C Rsultats

149

Annexe C Rsultats

150

Annexe C Rsultats

C.2.3 Arbres mal analyss

Et voici quelques mauvais traitements pour les arbres. Les objets dcouverts n'ont rien voir avec un arbre, ou sont des arbres mal dtects:

151

Annexe C Rsultats

C.2.4 Visages bien analyss

Comme pour les arbres, prsentons quelques visages bien analyss, puis moins bien, et finalement les checs, les mauvais rsultats:

152

Annexe C Rsultats

153

Annexe C Rsultats

C.2.5 Visages moyennement bien analyss

Quelques rsultats de visages un peu moins bons; ces images sont celles ou quelques zones en trop ont t fusionnes:

154

Annexe C Rsultats

155

Annexe C Rsultats

C.2.6 Visages mal analyss

Et finalement voici prsents quelques erreurs du systme pour la dtection de visages:

156

Annexe C Rsultats

157

Annexe C Rsultats

158

Table des figures

159

Table des figures

Table des figures


Figure 3.1 : schma type de la numrisation et du pr-traitement 20 Figure 3.2 : Schma type du calcul des reprsentations . 22

Figure 3.3 : Schma type d'un apprentissage 23 Figure 3.4 : Schma type pour l'valuation de la qualit.. 24 Figure 3.5 : Schma type du projet de reconnaissance d'image 26

Figure 4.1 : Schma du logiciel SNNS. 30

Figure 5.1 : Schma dune carte auto organisatrice.. 40 Figure 5.2 : Dformation continue d'une tasse..42 Figure 5.3 : Dformation discontinue d'une tasse. 42 Figure 5.4 : Contres-exemples pour lanalyse de la topologie..43 Figure 5.5 : Schma rduction dune image 45 Figure 5.6 : Modle gnral de reconnaissance de logos noir/blanc 46 Figure 5.7 : 65 exemplaires de carrs 5x5 47 Figure 5.8 : Rponse de la couche rductrice avec une SOM.. 48 Figure 5.9 : Rponse de la couche rductrice avec un PMC.49 Figure 5.10 : Reprsentation 2D et 3D de la SOM... 51

160

Table des figures

Figure 5.11 : classe du logo 235... 52

Figure 6.1 : Exemple de segmentation d'une image couleur 55 Figure 6.2 : bonne segmentation et sous-segmentation 57 Figure 6.3 : Schma gnral d'une architecture plusieurs PMC.59 Figure 6.4 : Exemple du contour de deux zones diffrentes. 61 Figure 6.5 : Rgions originales et redimensionnes. 63 Figure 6.6 : Contours sans et avec contenu.. 64 Figure 6.7 : Reprsentation RBG et HSB de l'espace des couleurs.. 66 Figure 6.8 : Architecture neuronale.. 68 Figure 6.9 : Rponse aprs apprentissage. 70 Figure 6.10 : Topologie de base pour la reconstruction des contours.. 72 Figure 6.11 : Groupes de connexit.. 73 Figure 6.12 : schma pour le systme de reconstruction des contours. 75 Figure 6.13 : Etat de la SOM pour plusieurs objets.. 78 Figure 6.14 : Recherche dun objet inconnu.. 78 Figure 6.15 : Deux SOM superposes.. 79 Figure 6.16 : Schma gnral final... 80 Figure 6.17 : Exemples dimages trop complexes et non traitables..81 Figure 6.18 : Exemple de dbordement 82

Figure A.1 : Neurone biologique et formel... 87 Figure A.2 : Notations d'un neurone artificiel... 88 Figure A.3 : Rseau couches multiples...93

161

Table des figures

Figure A.4 : Format des fonctions de transfert les plus courantes 101 Figure A.5 : Rseau connexions rcurrentes.. 105 Figure A.6 : Rseau connexions compltes .. 105 Figure A.7 : Schma d'un rseau de Kohonen.. 107 Figure A.8 : Difference of Gaussians (DOG)....................................................... 109 Figure A.9 : Exemple de formation d'une carte auto-organisatrice... 111 Figure A.10 : Problme de la parcimonie.. 116

Figure B.1 : Fentre d'ouverture de l'interface SIR.. 122 Figure B.3 : Ouverture d'un nouveau stack d'images 123 Figure B.4 : Eplorateur: slection d'un rpertoire. 124 Figure B.5 : Bouton NEXT................................................................................... 124 Figure B.6 : Image originale et image segmente. 125 Figure B.7 : Bouton SELECT ZONES. 125 Figure B.8 : affichage des contours slectionns . 126 Figure B.9 : Bouton SAVE SELECTION gris.... 127 Figure B.10 : Checkbox pour le type de sauvegarde.127 Figure B.11 : Choix d'un mot dans la listbox General type ... 128 Figure B.12 : Mot choisi et bouton SAVE SELECTION dgris.129 Figure B.13 : Nouveau mot insr dans la listbox 130 Figure B.14 : Choix du type d'apprentissage 131 Figure B.15 : Section reconnaissance des objets...132 Figure B.16 : Bouton NEW STACK..................................................................... 133 Figure B.17 : Bouton ANALYSE 133

162

Table des figures

Figure B.18 : Objet dcouvert.. 134 Figure B.19 : Bouton FIND OBJECT............................................................... 135 Figure B.20 : Fentre d'dition des paramtres. 136 Figure B.21 : Section infrieure 137 Figure B.22 : Liste des paramtres d'apprentissage.. 138 Figure B.23 : Boutons de la fentre des paramtres..138 Figure B.24 : Fentre pour l'dition des paramtres topologiques.... 139

Figure C.1 fin : rsultats sous forme de lots d'images143-157

163

Table des formules

Table des formules


(1) : sortie d'un neurone.. 88 (2) : Gnralisation de la sortie.. 88 (3) : Sortie modle radial.... 88 (4) : Activation d'un neurone.. 89 (5) : Variation des poids synaptiques.. 90 (6) : Variation des poids synaptiques.. 90 (7) : Activation d'un neurone dans un PMC... 93 (8) : Erreur du systme... 94 (9) : Variation des poids synaptiques.. 94 (10) : Dfinition des notations.... 95 (11) : Rtro propagation pour la couche de sortie... 95 (12) : Rtro propagation pour la couche de sortie... 95 (13) : Rtro propagation pour la couche de sortie... 95 (14) : Rtro propagation pour la couche de sortie... 95 (15) : Rtro propagation pour la couche de sortie... 96 (16) : Formule finale pour la couche de sortie.... 96 (17) : Dcomposition de la variation des poids.. 96 (18) : Rtro propagation pour une couche cache.. 97 (19) : Rtro propagation pour une couche cache.. 97 (20) : Rtro propagation pour une couche cache.. 97

164

Table des formules

(21) : Rtro propagation pour une couche cache.. 97 (22) : Rtro propagation pour une couche cache.. 97 (23) : Reformulation de la dcomposition.. 98 (24) : Formule gnrale de la rtro propagation..98 (25) : Formule gnrale de la rtro propagation......98 (26) : Formule gnrale de la rtro propagation......98 (27) : Formule gnrale de la rtro propagation..98 (30) : Sigmode type I......................................................................................... 102 (31) : Sigmode type II.................................................................................... 102 (32) : Drive de la sigmode type I.... 102 (33) : Drive de la sigmode type II.. 102 (34) : Gaussienne.....102 (35) : Fonction de corrlation croise. 103 (36) : Drive de la fonction de corrlation croise.... 103 (37) : Drive de la fonction de corrlation croise 103 (38) : Le pas d'apprentissage... 104 (39) : Kohonen: lection du meilleur neurone.... 108 (40) : Kohonen: adaptation des poids..108 (41) : Variation du coefficient alpha type I..... 108 (42) : Variation du coefficient alpha type II... 109 (43) : Fonction de voisinage... 109 (44) : Distance entre neurone :city-block distance..109 (45) : Variation de la fonction de voisinage.... 110 (46) : Erreur quadratique. 110

165

Table des formules

(47) : Erreur quadratique..... 117

166

Rfrences

Rfrences

Bibliographie
Dreyfus G., (2002). Rseaux de neurones, Mthodologie et applications, Eyrolles Cornujols A. - Miclet L., (2002). Apprentissages artificiels, Concept et algorithmes, Eyrolles Demartines P., (1995). Analyse de donnes par rseaux de neurones auto-organiss, thse de l'Institut National Polytechnique de Grenoble Blanger H. (1998). Rseau de Kohonen pour la dtection des contours d'objets dans une image niveau de gris, thse de l'Ecole de Technologie Suprieure de l'Universit du Qubec Buessler J-L, (1999). Architectures neuro-mimtiques modulaires, Application l'asservissement visuel de systmes robotiques, thse de l'Universit de Haute-Alsace, U.F.R. Des Sciences et Techniques Evrard Y., (2003). Rapport du concours robot legos Mindstorm, rapport de lEcole dingnieurs de Genve. Blayo F. et Verleysen M., (1996). Que sais-je ? Les rseaux de neurones, Presse Universitaires de France dEspagnat B., (1998). Physique et ralit, Diderot Editeur Penrose R. (1993). Lesprit, lordinateur et les lois de la physique, InterEditions

167

Rfrences

Internet
Apprentissage partir d'exemples (notes de cours): http://www.grappa.univ-lille3.fr/polys/apprentissage/

Introduction aux rseaux de neurones: http://www.sm.u-bordeaux2.fr/~corsini/Cours/mainRNA/mainRNA.html

CADCOM/Manuel d'utilisation, Reseaux Kohonen: http://pro.chemist.online.fr/cours/koho1.htm

Cours IFT6266, Introduction aux rseaux de neurones artificiels: http://www.iro.umontreal.ca/~bengioy/ift6266/neuron/neuron.html

Les logiciels de traitement de l'information, quelques dfinitions: http://mist.univ-paris1.fr/logiciel/def.htm#acp3

Back-propagation neural network tutorial: http://pcrochat.online.fr/webus/tutorial/

Ingnierie de la cognition: http://www.etis.ensea.fr/~revel/html/cours_IA/cours_IA.html

168

Rfrences

Site officiel du logiciel SNNS: http://www-ra.informatik.uni-tuebingen.de/SNNS/

Site pour le tlchargement du SDC_ToolBox : http://www.mmorph.com/

Site pour le tlchargement du SOM_ToolBox : http://www.cis.hut.fi/projects/somtoolbox/

169