Vous êtes sur la page 1sur 4

Reconnaissance d'criture manuscrite :

segmentation de mots
Sujet propos par Michel Weinfeld
weinfeld@lix

Gnralits
La reconnaissance d'criture manuscrite est la fois un dfi scientifique de fond et un enjeu
conomique d'importance. Alors que la lecture constitue un des apprentissages de base de l'tre
humain, et que cette tche lui semble gnralement facile, on est encore trs loin de savoir faire
extraire une machine le sens qui est contenu dans des textes crits. Il est vrai que cette
opration qui nous semble dans la plupart des cas ne poser aucun problme, et qui ne demande
donc pas d'effort apparent, est constitue d'une multitude de tches cooprantes dans notre
systme cognitif, qui s'enchanent et se rebouclent ventuellement, nous permettant de passer
d'une forme crite sur un certain support aux mots composant des phrases, elles-mmes portant
une signification qui trouve sa reprsentation dans notre conscience. On commence donc
toujours par la perception de formes (une tape purement morphologique) pour expliciter le
sens, en s'appuyant consciemment ou inconsciemment sur des connaissances dj acquises, de
nature syntaxique, grammaticale, smantique, culturelle.
Dans le but de mcaniser ces oprations, il faut quand mme prparer le travail de la machine.
Beaucoup d'efforts ont t consacrs la reconnaissance des lettres successives constituant les
mots. Sparer les lettres constitue une opration dlicate et coteuse, tant les critures sont
varies, et les lettres souvent lies les unes aux autres. Une fois cette opration faite, il reste
reconnatre chaque lettre, ce qui est galement difficile. Cette voie trop analytique ne semble
donc pas trs encourageante. Mais les humains ne lisent pas lettre lettre en gnral, sauf en
cas d'criture vraiment trs mal forme ou quand un mot est inconnu : dans la trs grande
majorit des cas, ce sont les mots qui sont reconnus en tant que tels, sans qu'il soit besoin de les
peler. Cette faon de procder est videmment plus efficace, mais elle suppose bien entendu
--au minimum-- des connaissances lexicales et syntaxiques pralables. La sparation des mots
par des espaces est dans ce cas une aide importante. On constate bien ce fait sur la figure 1 qui
montre une phrase manuscrite dont on a limin les espaces inter-mots.

Figure 1: criture manuscrite sans segmentation inter-mots.

La segmentation des mots


Une des tapes du traitement automatique consiste donc segmenter les mots, c'est dire
sparer les images de ceux-ci partir de l'image globale d'une phrase manuscrite. C'est au
dpart une opration seulement morphologique, qu'il vous est propos de programmer dans cet
esprit.
Les exemples d'criture que nous avons choisis sont extraits de chques bancaires, dont un
assortiment est montr sur la figure 2. On peut remarquer la grande variabilit de ces critures
(droites ou penches, arrondies ou anguleuses, sparant bien ou mal les mots, laissant ou non
des espaces l'intrieur des mots, etc.). Un systme automatique de reconnaissance doit
cependant tre capable de traiter tous ces cas.

Figure 2: Exemples d'critures sur des chques.


Votre tche consistera trouver des mthodes aussi simples et robustes que possible pour :

isoler chaque ligne dans le cas o il y en a plus d'une ;


isoler chaque mot par un rectangle enveloppant minimal (l'un des axes de ce rectangle
tant parallle la direction de la ligne).

Les figures 3, 4 et 5 montrent l'tat initial et les tapes successives du travail demand (notez
que l'exemple illustr ici est relativement facile, car les espaces inter-mots sont nettement plus
larges que les espaces intra-mots, comme entre le v et le i de vingt). Il sera ncessaire, une fois
imagin le ou les algorithmes de traitement, de vrifier qu'ils donnent des rsultats corrects sur
l'ensemble de la base. Ceci ne correspond pas proprement parler un apprentissage, mais
une vrification sur un nombre d'exemples suffisants pour en tirer une confiance raisonnable.

Cela signifie que, dans des cas vraiment difficiles, un systme complet de reconnaissance fera
peut-tre quelques erreurs de segmentation, mais ces erreurs auront une chance d'tre dtectes
plus loin dans le traitement (par exemple au stade lexical), et un rebouclage permettra alors de
faire intervenir des algorithmes de segmentation plus sophistiqus, donc plus coteux, mais
seulement l'endroit de l'erreur.

Figure 3: Deux lignes segmenter.

Figure 4: Dtermination de la direction et du corps des lignes.

Figure 5: Rsultat final de la segmentation.


Vous devrez bien entendu mettre au point des procdures graphiques d'affichage des images
que vous manipulerez. Les chantillons vous seront fournis sous forme d'une base de donnes
(un fichier disque contenant quelques centaines d'exemples) reprsentant des images scannes
de ces chantillons, sous un format binaire ( bitmap) qui vous sera prcis dans un fichier
annexe.
On remarque que les mots sont constitus dans le cas gnral d'un corps, d'o peuvent dpasser
des hampes, des jambages, ou les deux. Il sera ncessaire, dans l'tape d'isolement des lignes

(mme s'il n'y en a qu'une) de sparer les trois zones de hampes, de corps et de jambages
(comme c'est dj le cas de la zone de corps sur la figure 4). En effet (mais cela ne fait pas
partie du prsent projet) la mthode ultrieure de reconnaissance de mots ncessite que ces
zones soient spares. Dans ce travail prliminaire, qui fera intervenir le mme type de
mthodologie que dans la segmentation proprement dite, il faudra trouver des heuristiques pour
dlimiter la zone du corps par rapport aux zones des hampes et des jambages.

Figure 6: Exemple de chevauchement entre deux lignes.


Par ailleurs, il peut y avoir un certain chevauchement entre deux lignes, les jambages de la
ligne suprieure descendant au-dessous du niveau des hampes de la ligne infrieure (voir
figure 6), mais les zones de corps ne peuvent pas se chevaucher. La connaissance de la zone de
corps (et des hauteurs relatives des zones de hampe et de jambages par rapport celle-ci dans
les cas usuels) permet de trouver des heuristiques qui vitent de confondre deux mots
chevauchants en un seul cadre englobant.

Quelques conseils
Dans ce projet, il faudra s'efforcer de trouver des algorithmes simples, ne faisant pas appel
des notions compliques de traitement d'image, ni des outils mathmatiques inutiles.
On attachera de la valeur une programmation bien structure en procdures (avec de
nombreux commentaires), rendant le code source comprhensible et ventuellement modifiable
pour des dveloppements ultrieurs. Cependant, on privilgiera la comprhension et
la rsolution des problmes soumis plutt que l'criture de programmes trop compliqus, dans
lesquels la recherche d'lgance formelle ou d'une interface sophistique n'apporterait pas de
rponses aux questions poses. L'apprciation des rsultats s'appuiera en particulier sur le
fonctionnement du programme de segmentation sur quelques exemples nouveaux ne figurant
pas dans la base de donnes, qui seront fournis par l'examinateur au moment de la soutenance
orale.
Vous pouvez obtenir des informations ou de l'aide (y compris sur le texte de cet nonc) de la
part de l'auteur de ce projet, au poste 4587 (Laboratoire d'informatique, LIX), ou par courrier
lectronique (weinfeld@lix). N'attendez pas le dernier moment...

http://www.enseignement.polytechnique.fr/profs/informatique/Georges.Gonthier/pi97/weinfel
d/separ.html

Vous aimerez peut-être aussi