PDF Archive

Easily share your PDF documents with your contacts, on the Web and Social Networks.

Share a file Manage my documents Convert Recover PDF Search Help Contact



main .pdf



Original filename: main.pdf

This PDF 1.5 document has been generated by TeX / MiKTeX pdfTeX-1.40.14, and has been sent on pdf-archive.com on 08/12/2014 at 17:40, from IP address 163.5.x.x. The current document download page has been viewed 481 times.
File size: 1.9 MB (39 pages).
Privacy: public file




Download original PDF file









Document preview


´
Ecole
pour l’informatique et les techniques avanc´ees

L.A.S.S.O

Rapport de projet
Un projet de Avyx
Ann´ee scolaire 2014-2015
Projet d’InfoSp´e
Villejuif, le 26 octobre 2014

Laure Daumal

Alexandre Doussot

Alexandre Manuel

daumal l

dousso a

manuel d

lasso

Page 2 sur 39

Sommaire
1

Introduction

4

2

Le groupe

5

2.1

Alexandre Doussot . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2

Laure Daumal . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.3

Alexandre Manuel . . . . . . . . . . . . . . . . . . . . . . . . . .

7

3

4

5

6

7

8

Extraction des caract`eres

8

3.1

Chargement de l’image . . . . . . . . . . . . . . . . . . . . . . .

8

3.2

Corrections manuelles . . . . . . . . . . . . . . . . . . . . . . .

8

3.3

Binarisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.4

D´ecoupage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

R´eseau de neurones

11

4.1

Qu’est-ce ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2

Perceptron multi-couches . . . . . . . . . . . . . . . . . . . . .

15

4.3

Impl´ementation . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

Extraction de feature

18

5.1

Probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

5.2

R´esolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

Interface Graphique

22

6.1

Biblioth`eques . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

6.2

Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

6.3

Principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

6.4

Appels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

Outils de developpement

24

7.1

git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

7.2

GTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

7.3

SDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

Site Internet

26

8.1

26

Avyx

Responsive Design . . . . . . . . . . . . . . . . . . . . . . . . .

2

lasso

8.2
9

Page 3 sur 39

Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Conclusions personnelles

28

9.1

Alexandre Doussot . . . . . . . . . . . . . . . . . . . . . . . . .

28

9.2

Laure Daumal . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

9.3

Alexandre Manuel . . . . . . . . . . . . . . . . . . . . . . . . .

30

10 Conclusion

31

Annexes

32

A Comment lire ce rapport ?

32

B Avancement

33

C R´ef´erences

34

D Glossaire

35

Avyx

3

lasso

1

Page 4 sur 39

Introduction
´
Dans le cadre de nos e´ tudes a` Epita,
nous avons eu a` r´ealiser

un projet en groupe pendant maintenant un mois pour notre premier
semestre d’Infosp´e. Ce projet a pour but de nous permettre d’appliquer
ce qui a` e´ t´e vu durant nos e´ tudes, que ce soit en TP, en algorithmique,
en m´ethodologie ou en SI.
Notre groupe, Avyx, est actuellement compos´e des membres suivants : Alexandre Doussot, Laure Daumal, Alexandre Manuel.
Le sujet nous a cette fois e´ t´e impos´e : un OCR. C’est un sujet qui,
en plus d’ˆetre int´eressant a` un niveau personnel, requiert un tr`es vaste
domaine de comp´etence. Ce projet pluri-disciplinaire n’est donc qu’`a
but purement didactique.
Le projet a e´ t´e r´ealis´e en C a` l’aide de la s´erie d’outils GTK et la
librairie SDL.
Les multiples facettes interd´ependantes que composent ce projet
ˆ
sont e´ galement parfaites pour affuter
notre sens de travail en groupe.
C’est ainsi que nous avons r´ealis´e un r´eseau de neurones, un algorithme de d´etection et d´ecoupe des caract`eres, ainsi qu’une interface
graphique.

Avyx

4

lasso

Page 5 sur 39

2

Le groupe

2.1

Alexandre Doussot
Un jour, en 5e , m’a e´ t´e pos´e la question suivante : ”Que vas-tu faire

plus tard ?”. Ayant longtemps refl´echi, et ne pouvant me d´ecider,
ˆ par une abnon pas par une trop grande h´esitation, mais plutot
sence d’envies, je finis par e´ crire ”Programmeur de jeux vid´eo”, e´ tant,
comme la plupart de mes contemporains, assez vers´e dans le m´edium
vid´eoludique. C’est ainsi que je me mis a` m’interesser de plus pr`es a`
l’informatique et plus particuli`erement au langage C, un des langages
les plus vieux et les plus matures utilis´e aujourd’hui. Progressant donc
a` l’aide du Site du Z´ero, aujourd’hui renomm´e en OpenClassrooms, je
me mis ensuite au Java, qui me fit d´ecouvrir le potentiel e´ blouissant
de la Programmation Orient´ee Objet, dont je ne maˆıtrise, mˆeme aujourd’hui, qu’une infime fraction. C’est par la suite que je m’int´eressai
au C++, qui pour moi, r´eunit les avantages d’un langage fort dans un
environnement de d´eveloppement e´ prouv´e et de la Programmation
Orient´ee Objet.
` mon grand d´epit, mon lyc´ee n’offrit pas l’option ISN. CepenA
dant, e´ tant en Terminale S-SI, je profitai du projet pluri-disciplinaire
pour effectuer un sujet le plus proche possible de l’informatique, et
ˆ
finis par cr´eer un logiciel controlant
un robot Lego, et lui permettant
d’emprunter un trajet pr´ed´etermin´e.
C’est me rapprocher durant la fin de l’ann´ee-scolaire 2012-2013
de personnes faisant parti de la future promotion 2018 et de la promotion 2017 qui me poussa a` essayer les syst`emes UNIX, et plus
particuli`erement GNU/Linux. Je fus conquis par la puissance du
syst`eme et suis aujourd’hui l’heureux possesseur d’une distribution
linux nomm´ee Arch.
` l’Epita,
´
A
j’ai d´ecouvert le Caml, et, nonobstant mon amour pour
l’orient´e objet, la programmation fonctionnelle m’a introduit a` un tout
nouveau mode de pens´ee que je trouve grandement int´eressant.
Avyx

5

lasso

Page 6 sur 39

Dans ce rapport, tout ce que j’ai r´ealis´e sera en bleu.
2.2

Laure Daumal
Alors que le monde e´ tait tiraill´e par des conflits haineux et les

e´ ternels d´ebats, alors que les populations ne savaient qui mettre sur le
ˆ entre Vi et Emacs depuis des ann´ees, j’´evoluais tranquillement
trone
dans le milieu de l’informatique. Bien jeune, l’attrait de la r´eputation et
de l’esth´etique m’ont amen´ee a` apprendre a` r´ealiser des designs pour
mes forums pr´ef´er´es, et plus tard, a` coder pour eux. Plus tard encore,
alors que ni Photoshop ni le HTML ou le CSS n’avaient de secrets
pour moi, je suis partie dans le milieu de l’animation. J’ai commenc´e
a` faire des gifs, puis a` d´ecouvrir que mˆeme le Flash utilisait du code,
me forc¸ant ainsi a` faire la connaissance du javascript. Parall`element, je
faisais aussi des montages vid´eos, puis j’apprenais comment r´ealiser
des effets sp´eciaux. Ensuite, mon entr´ee en Terminale ISN m’a arrang´e
quelques rendez-vous avec le python, et ensemble, nous avons fait
un accordeur num´erique ! Cependant, je n’ai pas eu de nouvelles de
lui depuis... Ayant ainsi toujours e´ t´e tr`es dispers´ee, mes r´eels d´ebuts
dans la programmation ont eu lieu a` Epita. Ils ont e´ t´e doux et faciles
l’ann´ee derni`ere, mais aujourd’hui, avec l’aide de mon arm´ee de pandas roux d’Avyx, nous avons a` faire face a` un nouveau fl´eau : l’OCR
en C. Heureusement, notre e´ quipe est motiv´ee, et n’a pas comme
philosophie d’abandonner. En tant que chef des pandas, j’ai bien vu
la situation tourner au dramatique lors du tragique accident d’un de
nos pandas. L’espoir faiblissait, se fissurant comme un bambou s´ech´e.
Mais ensemble, nous sommes forts, et nous ferons face au deuil pour
relever le d´efi et atteindre notre objectif. C’est cet objectif que l’on
ˆ pour une
va vous pr´esenter aujourd’hui. Bonne lecture, et a` bientot
d´emonstration ”live” !
Dans ce rapport, tout ce que j’ai r´ealis´e sera en orange.

Avyx

6

lasso

2.3

Page 7 sur 39

Alexandre Manuel
Depuis mes d´ebuts en programmation, je trouve certains domaines

fascinants comme la g´en´eration de musique al´eatoire ou la reconnaissance de caract`eres. Ma joie fut immense quand j’ai su que nous allions
a` Epita, en Sp´e, devoir faire un OCR. Ce projet est donc l’occasion pour
moi de d´emystifier la reconnaissance optique de caract`eres. Durant
tout mon lyc´ee la programmation a guid´e ma vie. Elle a repr´esent´e la
quasi totalit´e de mes nuits pendant trois ans. Programmer la nuit et
compl`etement mort de fatigue m’a je pense bien pr´epar´e a` Epita. C’est
en seconde que le C a anim´e la p´eriode nocturne de ma vie. J’ai tent´e
(vainement) de r´ealiser un RPG avec la SDL. Si ce projet n’est toujours
pas a` bout aujourd’hui, j’estime n´eanmoins qu’il m’a appris foule de
choses sur le langage C et sur la programmation en g´en´eral. En arrivant a` Epita j’ai duˆ me servir du C#. L`a j’ai d´ecouvert XNA qui e´ tait
pour moi une avanc´ee majeure en ce qui concerne les biblioth`eques
graphiques par rapport a` la SDL. Apr`es avoir pass´e presque toute ma
sup avec le C#, je reviens plus en forme que jamais sur le langage
C. Pendant longtemps tous les algorithmes dans ma pens´ee se sont
dessin´es en C. C’est vous dire mon attachement a` ce langage. . . Ce
projet est e´ galement pour ma part l’occasion de mieux me plonger
dans les environnement Unix. Adepte de Windows depuis ma plus
petite enfance et ayant fortement pratiqu´e la programmation dessus,
il n’est pas simple du tout de changer ses habitudes pour arriver sur
un syst`eme Unix, quel qu’il soit. Voyons donc ensemble comment ce
projet a e´ t´e r´ealis´e plus en d´etails.
Dans ce rapport, tout ce que j’ai r´ealis´e sera en violet.

Avyx

7

lasso

3

Page 8 sur 39

Extraction des caract`eres
La premi`ere e´ tape dans la reconnaissance de caract`eres a e´ t´e de

s´eparer les caract`eres les uns des autres. Nous avons choisi une approche intuitive du probl`eme. Pour cela, binarisation et d´ecoupe ont
e´ t´es au rendez-vous.
3.1

Chargement de l’image
C’est pour le moment a` l’aide de la SDL et plus pr´ecis´ement a`

l’aide d’SDL Image que nous g´erons l’ouverture d’un fichier image.
Nous avons finis par accepter le fait d’int´egrer la SDL au projet malgr´e
sa lourdeur vu le peu de choses que l’on utilise avec la SDL. Afin de
ne pas eˆ tre limit´es aux choix d’impl´ementations d’une biblioth`eque
en particulier, nous avons cr´ee´ notre propre structure d’image avec
laquelle nous travaillons au sein de l’extraction et de la reconnaissance
de caract`eres. C’est seulement a` l’affichage qu’une conversion est
effectu´ee pour la rendre affichable par GTK. Nous avons ainsi la
plupart du syst`eme qui est ind´ependant de la biblioth`eque utilis´ee
par le projet. Toutes nos op´erations de traitement d’images se font sur
notre structure d’image et nous avons cod´e des convertions vers et
depuis les images de GTK et de la SDL.
3.2

Corrections manuelles
On laiss´e a` l’utilisateur la possibilit´e d’effectuer des rotations de 90

degr´es sur l’image, ceci afin de corriger une e´ ventuelle image a` l’envers. Malheureusement, nous n’avons pas eu le temps d’impl´ementer
ensuite une d´etection d’angle plus fine.
3.3

Binarisation
Afin d’avoir des informations faciles a` exploiter pour notre r´eseau

de neurones, il a fallu se d´ecider a` rendre chaque pixel de notre image
soit noir soit blanc. Pour cela, je me suis reservi du premier TP sur
Avyx

8

lasso

Page 9 sur 39

la SDL de cette ann´ee. L’id´ee a e´ t´e de commencer par passer chaque
pixel en niveaux de gris, puis de d´ecider du seuil qui d´eterminerait si
un pixel serait blanc ou noir. Le seuil est d´etermin´e par la moyenne
de couleur de tous les pixels de l’image. Cela nous permet de d´etecter
le texte a` partir du moment ou` le texte est de couleur assez unie et le
fond e´ galement.
3.4

D´ecoupage
La phase de d´ecoupage s’organise en quatre parties, qui se res-

semblent plus ou moins. Je commence par d´ecouper mon document en
paragraphes, puis chaque paragraphe en lignes, puis chaque ligne en
mots, puis chaque mot en caract`eres. Cette d´ecoupe me permet de garder la structure du document intacte. Cette technique pose n´eanmoins
des probl`emes sur les mises en page complexes. Le d´ecoupage en paragraphes actuel ne me permet pas certaines choses, comme la d´etection
d’un paragraphe flottant a` droite d’un autre ou encore la conservation
de la taille de l’´ecart entre chaque paragraphe.
3.4.1 D´ecoupage en paragraphes
L’id´ee est de parcourir chaque ligne pour savoir s’il existe un
pixel noir dessus comme illustr´e sur la Figure 1. Apr`es avoir “applati”
chaque ligne, je regarde quel est la taille de chaque e´ cart blanc entre
chaque e´ cart noir. Je commence par rogner les grands e´ carts blancs
en bordure, puis je me penche plus en d´etail sur les e´ carts restants. Si
l’´ecart est plus grand que les autres alors il y a un saut de paragraphe.
Si l’´ecart est petit alors c’est qu’il y a juste retour a` la ligne.
3.4.2 D´ecoupage en lignes
Je reprend mes intervalles et je coupe mon paragraphe au niveau
ˆ de ne rien perdre de mes lignes.
des pixels blancs, pour eˆ tre sur
Attention, si l’interligne est trop faible cette technique ne marchera
pas.
Avyx

9


Related documents


PDF Document fr kids pop press kit web
PDF Document henri lepage le departement de la meurthe
PDF Document Edition 1
PDF Document main
PDF Document brochure smart dezign
PDF Document newsletter n 15 biodocs lyon fevrier 2017 2


Related keywords