• Aucun résultat trouvé

D EVELOPPEMENT D ’ UN SYSTEME DE RECONNAISSANCE DE L ’ ECRITURE MANUSCRITE ( CARACTERES ISOLES ) EN LIGNE A

N/A
N/A
Protected

Academic year: 2022

Partager "D EVELOPPEMENT D ’ UN SYSTEME DE RECONNAISSANCE DE L ’ ECRITURE MANUSCRITE ( CARACTERES ISOLES ) EN LIGNE A "

Copied!
4
0
0

Texte intégral

(1)

Master M1 UPMC Module MQIA

1

D EVELOPPEMENT D UN SYSTEME DE RECONNAISSANCE DE L ECRITURE MANUSCRITE ( CARACTERES ISOLES ) EN LIGNE A

L AIDE DE M ODELES DE M ARKOV C ACHES

Attention : Les quantités pour lequel le nom est précédé d’un # (par exemple, #NIV, #NE etc), sont susceptibles d’être modifiées lors des tests que vous effectuerez pour mettre au point votre système.

Vous devez donc faire attention, pour ces variables particulièrement, à utiliser des noms de variables dans vos programmes.

1. ACQUISITION DE DONNEES

But : Affichage de tracés de lettres isolées acquis avec une tablette graphique. On vous fournit des fichiers Lettre_Numéro.sig où Lettre est le caractère écrit (« a » à « z »), Numéro est le numéro du tracé (1 à 10). Ces fichiers contiennent le signal prétraité de la façon suivante :

• Prétraitements des données (Pour information car déjà faits)

But : Transformer les signaux acquis dans l’étape 1. de façon à les normaliser, avant de les traiter dans le système de reconnaissance. Plusieurs étapes sont nécessaires.

o Il faut d’abord lisser le signal par un filtre interpolateur du type : Point(t)= [Point(t-1)+2*Point(t)+Point(t+1)]/4

o Il faut normaliser le signal par la méthode des boîtes englobantes. Pour cela, il faut déterminer les ordonnées minimum et maximum du signal, ymax et ymin, puis déterminer l’échelle de la normalisation pour que le signal après normalisation soit compris entre les ordonnées 0 et 1, enfin mettre à l échelle le signal en appliquant la mise à échelle sur les points du tracé (en abscisse et en ordonnée).

o Il faut ré-échantillonner le signal spatialement. Cela consiste à sélectionner les points dans le tracé de façon à ce que deux points consécutifs soient distants l’un de l’autre d’une valeur fixe, égale à 1/8. Cela signifie qu’un tracé vertical sera représenté par 9 points. L’algorithme est le suivant :

Le principe est de considérer la trace écrite étirée selon l’axe des x, puis de répartir les points de manière uniforme. Si size est la distance entre les points, alors le nombre de segments égaux (i.e.

le nouveau nombre de points) est donné par :

_ Lmax

n steps ceil size

⎛ ⎞

= ⎜⎝ ⎟⎠

où : max

(

max

)

max

(

1

)

1

,

j

i i

i

L long j d P P

=

= =

représente la longueur cumulée totale de la trace

écrite. Puis, on réestime la distance entre deux points à partir de n_steps connaissant Lmax :

max

_ step L

n steps

=

(2)

Master M1 UPMC Module MQIA

2 L’algorithme est le suivant :

BEGIN

Pour chaque nouvelle abscisse (le long de la trace étirée) donnée par : pour : 0,..., _ 1

pos= ∗k step k n steps

chercher le point Pj+1 de la trace le plus proche de cette position et vérifiant : ( 1)

pos<long j+

Estimer alors les coordonnées du nouveau point P x y′ ′ ′

(

,

)

ayant la position pos sur l’axe des longueurs, par interpolation linéaire :

(

( 1)j j 1 ( )

) (

( )

)

j

P P P P pos long j

long j long j

′ = + ∗ −

+ − uuuuuur uuuur

END

o Extraction de caractéristiques.

Nous utiliserons ici des caractéristiques extrêmement simples consistant à calculer en chaque point du tracé une estimation de l’angle du tracé avec l’horizontale.

A FAIRE

1 Discrétisation des angles

Les angles sont codés entre 0 et 360° . Vous devez quantifier ces angles, ce qui permettra d’utiliser des HMMs discrets beaucoup plus simples à mettre en oeuvre. On discrétise les angles de 0° à 360°

en #NIV (par exemple 12) niveaux répartis uniformément entre 0 et 360°.

Après cette étape de prétraitements, le signal d’une lettre est représenté par une séquence de numéros (compris entre 1 et #NIV).

Vous pouvez invoquer cette procédure de discrétisation à chaque fois que vous traitez un signal de lettre ou bien réaliser cette étape une fois pour toutes, en sauvegardant tous les signaux discrétisés dans de nouveaux fichiers de nom Lettre_Numéro.pre par exemple.

1.2Affichage des tracés

Ecrire une procédure d’affichage d’un tracé, en utilisant le fait que les angles d’un signal correspondent à des angles de la tangente à la courbe en des points équidistants spatialement. Il suffit donc de calculer le sinus et le cosinus d’un angle en un point pour connaître le déplacement en x et en y jusqu’au prochain point. Testez sur quelques tracés.

2. PROGRAMMATION DE MODELE MARKOVIENS EN INFERENCE

On s’intéressera essentiellement à des MMCs de topologie Gauche-Droite, i.e. il existe un état initial, un état final, les transitions autorisées sont d’un état vers lui-même et d’un état vers le suivant. On vous demande d’écrire des fonctions de base d’utilisation de modèles Markoviens cachés de topologie standard et de topologie GD, pour des observations discrètes (la loi d’émission dans un état est une table), ou réelles en dimension 1 (les lois d’émission sont gaussiennes).

On vous demande d’écrire les fonctions suivantes pour les différents types de modèles envisagés : - génération d’une séquence

(3)

Master M1 UPMC Module MQIA

3

- de calcul de la probabilité d’une séquence (approximation par le max, travail en log) - de décodage d’une séquence.

3. TESTS AVEC DES MODELES DEFINIS A LA MAIN

Dans un premier temps vous définirez des modèles à la main et chercherez à définir des paramètres probables pour différents caractères. Vous mettrez en place des fonctions permettant le calcul de performances sur vos données.

Evaluer le comportement de votre système de reconnaissance de lettres isolées en testant d’une part sur les signaux appris (#NA premiers exemples par lettre), d’autre part sur les signaux non appris (autres exemples par lettre).

Présentez vos résultats sous la forme d’une matrice de confusion de la forme suivante [Cij]i,j où Cij est le pourcentage d’exemples de la ième lettre reconnus comme étant la jème lettre. Calculez le taux de reconnaissance global, i.e. le pourcentage d’exemples qui sont bien reconnus.

Evaluez l’importance du nombre d’états, et du nombre de niveaux de discrétisation sur le taux de reconnaissance.

4. APPRENTISSAGE DE MODELE DE LETTRES ISOLEES But : Programmer des Modèles de Markov pour les caractères isolés.

On choisira des MMCs de topologie Gauche-Droite, i.e. il existe un état initial, un état final, les transitions autorisées sont d’un état vers lui-même et d’un état vers le suivant. Le nombre d’états (#NE) est à fixer de façon heuristique, de 3 à 10.

L’apprentissage du système consiste à apprendre indépendamment le modèle de chaque caractère.

Le modèle d’un caractère est appris à partir d’un ensemble de tracés d’apprentissage du caractère, les #NA (5 par exemple) premiers tracés.

L’apprentissage sera réalisé grâce à un algorithme de type Viterbi, qui est une approximation de l’algorithme standard (Baum-Welch) des MMCs. Pour apprendre le modèle MMC d’une lettre, on utilisera l’algorithme suivant :

• Initialiser le modèle MMC

• Itérer (+sieurs passages de la base d’apprentissage) a. Pour chaque exemple de la base d’apprentissage

i. En utilisant le MMC actuel, segmenter le signal de l’exemple avec le MMC (i.e. assigner chaque trame à un état du MMC). Utiliser l’algorithme de Viterbi. Mémoriser les observations associées à chaque état (i.e. « émises dans l’état ») ainsi que les transitions entre états et l’état initial.

b. Ré-estimer les paramètres de chaque état du MMC, ce qui donne un nouvel MMC.

i. On recalcule les probabilités de transition par des comptages. La probabilité de transition d’un état e vers un état s est recalculée par le rapport entre le nombre de transitions observées de l’état e vers l’état s et le nombre de stationnements dans l’état e (i.e. le nombre de transitions à partir de e).

(4)

Master M1 UPMC Module MQIA

4

ii. On ré-estime la probabilité d’émission d’un symbole dans un état par le rapport entre le nombre de fois où le symbole est émis par l’état et le nombre total de symboles émis par l’état.

• Jusqu’à critère d’arrêt (stabilisation de la vraisemblance, #itérations maximum atteint, etc) L’initialisation est une phase essentielle de l’apprentissage de tels modèles. Une bonne façon de faire consiste à faire une première passe en segmentant linéairement les tracés, et à estimer les paramètres du modèle à partir de ces segmentations.

NB : L’initialisation d’un MMC Gauche Droite est généralement réalisée par un alignement linéaire des séquences d’apprentissage sur les états du MMC.

5. PROGRAMMATION DE MODELE DE LETTRES ISOLEES

Evaluer le comportement de votre système de reconnaissance de lettres isolées en testant d’une part sur les signaux appris (#NA premiers exemples par lettre), d’autre part sur les signaux non appris (autres exemples par lettre).

Evaluez l’importance du nombre d’états, et du nombre de niveaux de discrétisation sur le taux de reconnaissance. Utilisez une procédure de cross-validation pour obtenir des résultats plus fiables.

Vous pouvez également relâcher la structure gauche-droite des modèles en autorisant des sauts entre deux états non consécutifs dans un modèle.

Références

Documents relatifs

Denn öffentliche Gelder oder Versicherungsleistungen, die auch dazu eingesetzt werden können, die Hilfe der Angehörigen zu honorieren, stellen einen Anreiz zur familialen

A présent, nous allons nous focaliser sur les enseignants sans contact avec une personne ressource à travers deux tableaux (cf. Dans un premier temps, nous analysons

Synthèse des stéroïdes Cholestérol Progestérone Androgènes Oestrogènes Acides biliaires Vit D Glucocorticoïdes Minéralocorticoïdes. Acetyl CoA

Pour traiter le texte Amazigh diffusé dans les images Web ou de scènes naturelles, nous avons proposé un système à plusieurs étapes qui extrait d’abord les blocs

Notre premier système de détection de mots clefs à partir de requêtes images, transforme dans un premier temps cette requête image en une re- quête textuelle à l’aide

Les paramètres des NSHP − HMM des modèles de lettres sont : hauteur de 20 pixels, voisinage de 3 pixels; le nombre d’états normaux pour un NSHP − HMM correspondant à une lettre

L’objectif de cette recherche est la production de mutants de blé dur aléatoirement qui répondent mieux à la sécheresse, Des mutations physique par l’irradiation gamma ont été

Nous avons utilisé notre approche TRF dans le problème de la segmentation de textes en-ligne pour séparer les espaces intra-mot des espaces inter-mots [93], dans la coopération