Brevet FR2719140A1 — publié le 19951027

La présente invention concerne une méthode pour l'analyse d'écriture cursive, dans laquelle on reconnaît dans un mot écrit en écriture cursive des formes élémentaires et on reconstitue, à partir de ces formes, des lettres ou des groupes de lettres et on cherche, dans un dictionnaire de groupes de lettres possibles, des groupes identiques aux groupes constitués à partir des formes extraites de l'écriture ou ressemblant à ces groupes, ce qui fournit une pluralité de chaînes de caractères susceptibles de correspondre au mot à reconnaître. La reconnaissance automatique de caractères manuscrits permet une communication plus naturelle entre un utilisateur et un ordinateur, sans utiliser de clavier. La fonction consiste à transformer des tracés cursifs ou en "script" en une chaine de caractères. Dans ce contexte, la demanderesse a cherché à reconnaître l'écriture en enregistrant le mouvement du stylo et en reconnaissant des mots avec l'aide d'un lexique. Un procédé pour l'analyse d'écriture cursive est décrit dans le document EP-A-0 564 827 (International Business Machines). Dans ce procédé, les mots écrits sont comparés à ceux d'un dictionnaire et ceux qui se ressemblent suffisamment sont consisidérés comme possibles, ce qui fournit une liste de mots. A chaque mot de la liste est assignée une appréciation. Le mot ayant la meilleure appréciation est choisi. Les stratégies courantes en matière de reconnaissance d'écriture se focalisent sur le sens de l'écriture (de la droite vers la gauche dans les écritures occidentales). Néanmoins la complexité du problème ne permet pas de définir une stratégie d'analyse évidente. En fait, il y a un manque important d'informations à priori. L'invention a pour but d'améliorer la vitesse de calcul et les performances de reconnaissance d'une telle méthode. Selon l'invention, à partir d'une population de chaînes "candidates", c'est-à-dire susceptibles de correspondre au mot à reconnaître, est réalisé un processus de reproduction, c' est-à-dire sont constituées des descendantes, au sens génétique du terme, une chaîne descendante étant obtenue par croisement, c'est-à-dire combinaison d'éléments pris dans deux des dites chaînes de la population, et au moins certaines des chaînes descendantes sont ajoutées à la population de départ. Avantageusement, la population de départ est constituée d'une sélection des seules chaînes les plus appropriées, et seules les plus appropriées sont à leur tour choisies parmi les descendantes pour être ajoutées à la sélection de départ La population obtenue à la suite d'un premier processus de reproduction peut à son tour être soumise à un processus de reproduction. Selon un mode de réalisation avantageux, chacune des chaînes "parentes" est prise au hasard dans la population de départ et, dans chacune des chaînes "parentes", celui des éléments qui y est pris pour constituer une descendante, y est pris aussi au hasard. Dans le but d'agrandir l'espace des solutions qui est exploré, des mutations sont avantageusement réalisées lors de certains des croisements. Ces aspects de l'invention ainsi que d'autres aspects plus détaillés apparaîtront plus clairement grâce à la description suivante d'un mode de réalisation non limitatif. La figure 1 est une vue schématique de l'ensemble d'un système de mise en oeuvre du procédé selon l'invention. La figure 2 représente des morceaux de lettres utilisés dans la détermination des éléments de mots, La figure 3 illustre le codage des éléments graphiques de base du mot "this". La figure 4 représente schématiquement la manière d'engendrer un descendant à partir de deux individus. Pour la reconnaissance d'une séquence de mots écrits, on suppose à priori que l'on est dans une langue spécifiée (Français, Anglais, etc). Une vue schématique de l'ensemble d'un système est présentée par la figure 1. D'un texte écrit à la main sont extraites des informations au moyen d'une tablette graphique 1. Une telle tablette enregistre la vitesse et la direction de déplacement d'un stylo sur une tablette, pendant qu'une personne écrit. Pour que l'on puisse représenter les caractéristiques de l'écriture par des codes, une phase de pré-traitement est réalisée dans une unité de traitement 2. Un lissage des signaux enregistrés permet de s'affranchir des variations locales dues notamment aux organes d'acquisition, par exemple au moyen d'un filtre qui remplace les composantes à l'instant Ti par la moyenne pondérée des composantes aux temps T i-i, 1 Ti, Ti+l. Ce filtre est à trois composantes, afin de procurer un filtrage des courbes représentant la vitesse horizontale, la vitesse verticale, et l'angle de direction. Les courbes ainsi obtenues permettent de reconnaître des primitives, à savoir des formes de base, représentant une façon d'écrire une partie d'une lettre. Des exemples de primitives sont une pointe vers le haut, une pointe vers le bas, une boucle, un dôme, une cuvette. Après le prétraitement décrit ci-dessus, l'unité de traitement 2 réalise une analyse pour trouver des primitives. La position de la zone centrale du mot est estimée en calculant un histogramme des projections des primitives sur une verticale. Chacune des primitives est désignée par un code. Vingt-huit codes différents (que l'on appelle a, ss, y, 6, etc) sont utilisés, basés sur quatre primitives de base (pointe, boucle, dôme ou cuvette, liaison entre deux primitives) et en considérant leur position par rapport au centre du mot. Certaines parties de mot sont isolées ; par exemple les barres des "t" et les points des "i" sont extraites. Des formes plus abouties, appelées allographes, sont formées à partir de primitives pour constituer une lettre ou même un groupe de deux ou trois lettres. Un allographe est donc la représentation d'une façon d'écrire une lettre ou un groupe de lettres codées sur la base de primitives. En considérant plusieurs informations, telles que les parties du mot qui sont situées en dessous ou au dessus de la zone centrale, ou la présence de barres de "t" ou de points de "i" (qui indique que le mot pourrait contenir un "t" ou un "i"), et par l'interprétation des mouvements de plume, un appel à un dictionnaire d'allographes permet de trouver des allographes qui semblent être présents dans l'écriture analysée, et de les assembler pour fabriquer des mots. Les mots ainsi fabriqués peuvent très bien ne pas exister dans la langue spécifiée. Les représentations d'allographes en termes de primitives graphiques sont bâties sur la base d'informations statistiques concernant la façon dont le sujet écrit les 26 lettres ainsi que les bigrammes ou trigrammes utilisés le plus souvent (on appelle bigrammes ou trigrammes des allographes de respectivement deux ou trois caractères). Lorsque la suite des codes correspond à un objet connu d'un dictionnaire d'allographes, défini par la séquence des codes de ses primitives, l'allographe correspondant est reconnu. Souvent une partie seulement des codes d'un allographe à reconnaître correspond à une séquence de codes du dictionnaire, et l'allographe n'est pas reconnu avec certitude. Plusieurs solutions parmi les plus probables sont alors retenues, et de ce fait on traite ensuite une population de solutions possibles. Les individus de la population des solutions possibles sont appelées "chaînes". La représentation d'une chaîne par la liste de primitives décrivant comment le mot s'écrit en écriture cursive est appelée "image graphique". Une chaîne peut aussi être représentée par les codes ASCII qui en définissent les lettres, et cette représentation est appelée "image lexicale". La figure 2 représente les primitives, légèrement écartées les unes des autres par rapport à leur position dans une écriture cursive où elles seraient liées les unes aux autres, de l'allographe "THn", l'indice n indiquant qu'il s'agit d'une nième façon d'écrire le groupe de lettres t,h. Il est constitué d'une grande pointe vers le haut (code ss), suivie d'une cuvette (code u), d'une boucle (code o), d'une petite pointe vers le bas (code X), suivie d'un dôme (code e), et d'une cuvette (code r). Une autre illustration est la chaîne TH112S5 (figure 3), qui est faite de trois allographes, et dont l'image lexicale est le mot "this". Son image graphique est la liste : ss, u, o, X, e, v, x, A, , K. On appelle "aptitude" la similitude entre l'image graphique de la chaîne proposée comme solution et le codage des primitives du mot enregistré par la tablette graphique 1 (figure 1) et fourni sous forme de codes de primitives par l'unité de traitement 2. Par exemple si le mot a reconnaître est "that" la chaine "TH1I2S5 a une plus grande aptitude que "B2L1UE1", parce qu'elle correspond mieux, même si la correspondance n'est pas complète. L'aptitude est évaluée par un module d'évaluation d'aptitude 5 au moyen d'une méthode classique d'évaluation de correspondance entre chaînes, par exemple la méthode dite "modified Levenshtein distance" (4). On utilise un algorithme génétique pour améliorer la population des chaînes. Il s'agit d'un processus dans lequel, à partir d'une sélection de chaînes en quantité limitée, sont constitués des descendantes, au sens génétique du terme, à savoir des chaînes obtenues par combinaison des chaînes de départ, descendantes parmi lesquelles sont à leur tour choisies les plus appropriées, ce qui optimise peu à peu la population. Ainsi le mot retenu en fin de compte est celui qui correspond à la chaîne ayant la meilleure aptitude. La pré-analyse du mot à reconnaître a fourni plusieurs chaînes de primitives, constituant la population initiale que l'on va chercher à améliorer. Un analyseur lexical génère sur la base d'une chaîne de primitives (par exemple aBy8e) une liste de mots possibles (par exemple TH AS S) à partir de mots contenus dans un dictionnaire d'allographes 3. Une façon de représenter chaque lettre ou groupe de lettres est choisie au hasard parmi différentes façons de représenter chaque lettre ou groupe de lettres (par exemple TH1 = première façon d'écrire TH, AS3 = troisième façon d'écrire AS, S5 = cinquième façon d'écrire S), et sont utilisés pour transformer ces mots du lexique en images graphiques (ici oss+yl). La population initiale est ainsi construite avec des codages d'allographes basés sur les mots d'un dictionnaire d'allographes. Habituellement dans les méthodes génétiques, les individus constituant une population ont une taille fixée. Ici au contraire la longueur d'une chalne n'est pas fixée. L'algorithme génétique est mis en oeuvre grâce à des opérateurs 6 à 9. Chacun des opérateurs fait appel au module d'évaluation d'aptitude 5, notamment pour décider si un individu de la population doit être éliminé ou conservé. L'opérateur de sélection 9 permet d'obtenir en moyenne que les meilleures chaînes ne soient pas perdues, et que les moins bonnes disparaissent. Pour chaque chaîne il détermine si elle doit être conservée ou détruite, selon une probabilité reliée à l'aptitude, laquelle est évaluée par le module d'évaluation d'aptitude 5. L'unité de traitement 2 fournit la population de départ au module 9. Deux autres opérateurs sont utilisés : un opérateur de croisement 7, et un opérateur de mutation 8. Chaque chaîne contient une part d'information intéressante qui fait son aptitude. Malheureusement, il est malaisé de localiser cette information dans la chaîne, parce que l'aptitude est une valeur globale concernant toute la chaîne. Une méthode statistique est utilisée dans l'opérateur de croisement 7 pour résoudre ce problème d'abord, des chaînes de la population choisies au hasard sont associées deux à deux, le hasard étant pondéré pour donner une plus grande probabilité d'etre choisies aux chaînes possédant une grande aptitude. Ensuite, chaque paire de chaînes subit un croisement comme représenté en figure 4. La nouvelle chaîne n' a pas forcément une meilleure aptitude que ses "parents", et un appel au module d'évaluation d'aptitude permet de choisir les "enfants" à conserver. Comme la population de départ contient un nombre limité d'allographes, le nombre des solutions qui sera passé en revue est limité. Dans le but d'agrandir l'espace des solutions qui est exploré, l'opérateur de mutation 8 introduit du bruit dans le processus de croisement : un allographe peut être altéré durant le croisement, avec une probabilité fixée au départ. Trois types de mutation peuvent être introduites, avec différentes proportions d'allographes changés par rapport au total des allographes d'une chaîne - une altération, c'est-à-dire qu'un allographe change : par exemple TH3SAN4E1 TH3AT2e1 - une insertion, c'est-à-dire qu'un nouvel allographe est introduit : par exemple TH3SAM4E1 - TH3SAM4AT2E1 - une annulation, c'est-à-dire qu'un allographe disparaît par exemple TH3SAM4E1 TH3E1 La valeur d'une population dépend de la façon dont les nouvelles chaînes sont choisies ou engendrées, et comment s'opèrent leurs mutations. Pour améliorer le processus, des opérateurs génétiques sont définis en vue d'éviter, autant que possible, la perte ou la dégradation d'éléments de mot intéressants. Un élément de mot intéressant est une souschaîne qui possède des caractéristiques possédées par les meilleures chaînes. Ouand l'image lexicale a une mauvaise aptitude, la chaîne doit au moins contenir le plus possible de bigrammes ou de trigrammes valides (un trigramme ou un trigramme est valide s'il est présent dans le dictionnaire d'allographes : cette présence dépend notamment de la langue, par exemple le bigramme "KN" est très rare en Français alors qu'il est fréquent en Anglais). Dans une tentative pour conserver ces éléments intéressants, les opérateurs de mutation ou de croisement 7 et 8 agissent de la façon non déterministe suivante : considérant l'image lexicale d'une chaîne, une transformation d'un bigramme ou d'un trigramme est acceptée (de façon probabiliste) si cela crée un bigramme ou un trigramme valide, ou si cela en évite la destruction. Tant qu'il n'a pas été décidé d'arrêter le processus, chaque chaine issue d'un des opérateurs 7 ou 8 remonte à l'opérateur de selection 9 pour être ajoutée à la population (flèche 11). Le module 6 détermine si le processus doit continuer ou s'arrêter. L'action de l'opérateur de mutation a pour effet que la population n'est jamais tout à fait stable, ce qui entraine que l'on pourrait continuer indéfiniment le processus. Plusieurs critères sont utilisés dans le module de décision d'arrêt 6 pour déterminer si une solution est valide ou pas et décider d'arrêter - la meilleure chaine a une image lexicale qui est dans le dictionnaire de mots possibles 10, - le nombre d'itérations atteint une limite déterminée, - l'aptitude des meilleures chaînes est plus grande qu'une valeur donnée (par exemple, l'image graphique d'une chaine s'accorde parfaitement avec la liste de primitives du mot à analyser), - tous les trigrammes de l'image lexicale de la meilleure chaine sont valides. Une analyse rapide est faite pour decider si, bien que l'image lexicale n'appartienne pas au dictionnaire de mots possibles, il y a suffisamment de raisons pour qu'elle soit valide : par exemple, si tous les quadrigrammes de la forme "X*ZT" ou "XY*T" sont valides, l'image lexicale XYZT est susceptible d'etre une bonne solution, même si XYZT n'appartient pas au dictionnaire. - le nombre des meilleurs représentants de channes dépasse une proportion fixée de la population totale. Il faut noter que les quatre dernières conditions donnent à l'algorithme la possibilité de fournir un résultat qui n'est pas dans le dictionnaire des mots possibles. S'il existe plusieurs chaînes différentes qui sont wpremieres ex-aequo", on ne peut les départager. En général chacune de ces chaînes différentes existe elle même à plusieurs exemplaires, constituant ainsi des populations de plusieurs chaînes identiques. Elles sont alors triées en recherchant celle de ces populations qui est la plus nombreuse : c'est en général la meilleure. REVENDICATIONS 1. Méthode pour l'analyse d'écriture cursive, dans laquelle on reconnaît dans un mot écrit en écriture cursive des formes élémentaires et on reconstitue, à partir de ces formes, des lettres ou des groupes de lettres et on cherche, dans un dictionnaire de groupes de lettres possibles, des groupes identiques aux groupes constitués à partir des formes extraites de l'écriture ou ressemblant à ces groupes, ce qui fournit une pluralité de chaînes de caractères susceptibles de correspondre au mot à reconnaître, caractérisée en ce qu'à partir de cette population de chaînes "candidates" est réalisé un processus de reproduction, c'est-à-dire sont constituées des descendantes, au sens génétique du terme, une chaîne descendante étant obtenue par croisement, c'est-à-dire combinaison d'éléments pris dans deux des dites chaînes de la population, et en ce qu'au moins certaines des chaînes descendantes sont ajoutées à la population de départ. 2. Méthode selon la revendication précédente, caractérisée en ce que la population de départ est constituée d'une sélection des seules chaînes les plus appropriées, et seules les plus appropriées sont à leur tour choisies parmi les descendantes pour être ajoutées à la sélection de départ. 3. Méthode selon l'une des revendications 1 ou 2, caractérisée en ce que la population obtenue à la suite d'un premier processus de reproduction est à son tour soumise à un processus de reproduction. 4. Méthode selon l'une quelconque des revendications précédentes, caractérisée en ce que chacune des chaînes "parentes" est prise au hasard dans la population de départ. 5. Méthode selon l'une quelconque des revendications précédentes, caractérisée en ce que, dans chacune des chalnes "parentes", celui des éléments qui y est pris pour constituer une descendante, y est pris au hasard. 6. Méthode selon l'une quelconque des revendications précédentes, caractérisée en ce que des mutations sont réalisées lors de certains des croisements.