3.4. Conclusion
En fin de compte, notre réseau de neurones est
composé de trois couches, à savoir : la rétine, le
gradient et l'aire de sortie. Chaque couche comprend un nombre
déterminé de neurones nécessaires à la fonction qui
est la sienne dans l'algorithme générale de reconnaissance. Par
ailleurs, il importe de remarquer qu'il n'y a pas de connexion entre les
neurones appartenant à une même couche. Par contre, entre les
neurones des différentes couches, il existe bel et bien une ou plusieurs
connexions. Et le nombre de connexions entre une couche et la suivante
dépend du nombre de neurones (de cette couche) dont les sorties sont
reliées à l'entrée d'un neurone de la couche suivante. 
C'est à travers cette structure du réseau que,
après un procédé de prétraitement, l'algorithme
parvient à détecter d'abord le tableau en localisant ses
éléments de structuration (Cf. les 11 éléments de
structuration évoqués dans le chapitre précédent)
et à comprendre la structure du tableau détecté en
générant un document html ou un fichier Microsoft Word. 
  
66 
CHAPITRE IV. IMPLEMENTATION DU RESEAU ET RESULTATS
4.1. Objectifs et but
Afin de marier la théorie à la pratique, nous
nous proposons de traduire, dans ce chapitre, les algorithmes
précédemment décrites dans un langage
compréhensible par l'ordinateur. Il est évident que plusieurs
langages de programmations se prêtent bien à cette traduction.
Cependant, pour des raisons de souplesse et surtout à cause de sa
rigueur et de sa portabilité, nous avons choisi d'implémenter
notre réseau de neurones en langage Java. Ainsi, ayant la
réalisation de notre système de reconnaissance comme toile de
fond, ce chapitre a pour but de détailler d'une manière beaucoup
plus précise les différents modules qui constituent notre
programme de reconnaissance des tableaux. Pour ce faire, nous étalerons
d'abord l'implémentation du procédé de
prétraitement, ensuite nous implémenterons le réseau de
neurones et enfin, nous analyserons le résultat des tests du programme
sur quelques documents. 
4.2. Architecture logiciel de l'application
Avant d'examiner en détail l'implémentation en Java
des algorithmes du chapitre précédent, nous présentons
d'abord l'architecture de notre application dans le diagramme des classes
ci-dessous : 
  
Reseau 
quit : Button dem : Batton alp : Button 
handleCvent° : boolean main° :void 
1 
1 
1 
Aire Sortie 
grad : Graillent n : Arad M : irt 
lignes : Int colonnes : int 
3radient 
7G : Ngrad 7eu : Ngrad  Ret : Reline 7F-et : Neurone 7s :
Ngrad 
etNeurone0(po3N01 : irt,posNO2 : int) : Ngrad
getNeurones(nombreN1 : int,nombreN2 : int) : Ngradpp 
Aid 
quit : Buffo 
handleEvent° : boolean 
Refine 
nR : Neurone 
neuR : Neurone 
nR  · Naiirnna 
image : Bufferedlmage  
irnageTvpee : Bufferedlmacie  
trame : WritableRaster 
pi:tel : int 
y: int 
rgb : int 
getNeuroneR(posNR1 : int,posNR2 : int) : Neurone
cletNeuronesR(nornbreNR1 : int,nornbreNR2 : int) : Neuronelll 
| 
 1 
 | 
 1 
 | 
   | 
 
| 
 Neurone 
 | 
   | 
   | 
 
   | 
 Pretraitement 
 | 
 
| 
 entree : in1 sortie : int 
 | 
   | 
 
   | 
 Image : Burreredlmage imgRB : Bufferedlmage filename : String 
 | 
 
| 
 getEntree(p : intp) : intp setSortie(pix : intp) : int
getSortie(n : Neurone) : int 
 | 
   | 
 
   | 
 reduir=Taille(img : Bufferedlmage) : Bufferedlmage
binarisation(irng : void) : Bufferedlmage gotlmagoRB° : BufforolImago 
 | 
 
  
Ng ad 
entree : Veurone 
sortie : int 
E:int 
vint 
:int 
  
68 
 |