FR 2437034 A1 19800418 FR 7827328 A 19780925 La présente invention concerne un procédé et un dispositif de reconnaissance optique et automatique de caractères ou formes préalablement définis et catalogués et leur application à la lecture automatique de textes. Les procédés et dispositifs de reconnaissance automatique de formes, caractères ou tracés ont des applications multiples et peuvent être utilisés en particulier dans la saisie ou la lecture de textes imprimés en vue de leur stockage dans les mémoires d'un système de traitement informatique (ordinateur). Malheureusement tous les dispositifs connus de saisie de textes sont trop complexes, trop onéreux, et trop peu maniables pour être utilisables actuellement d'une manière industrielle. En effet, ces dispositifs procèdent d'abord à une saisie numérique de toute l'image et ensuite à un traitement de lecture automatique au moyen d'un logiciel approprié. Ceci nécessite une capacité de mémoire et conduit à un temps de traitement qui sont incompatibles avec une utilisation industrielle du procédé. L'invention vise à créer un procédé et un dispositif de saisie de formes ou de textes qui, tout en ayant une précision convenable et analogue à celle des dispositifs connus, soit d'un prix de revient modéré et d'une utilisation aisee et rapide. A cet effet, l'invention a pour objet un procédé de lecture automatique d'un texte comportant au moins une ligne horizontale de caractères, caractérisé en ce qu'on dispose ledit texte dans le champ de visée d'une caméra de télévision, en ce qu'on exporte ladite ligne de texte au moyen d'un balayage vertical représentant la hau tueur de la ligne et dtun balayage horizontal repré sentant au moins la longueur de la ligne, la vitesse de balayage horizontal étant relativement lente de telle sorte qu'un seul caractère au maximum de la ligne de texte est exploré au cours de chaque balayage vertical,en ce qu'on compare le signal vidéo de la caméra à au moins une tension de seuil pour distinguer les zones blanches des zones sombres du texte, en ce qu'on code numériquement ledit signal de sortie en engendrant une valeur binaire distincte suivant que son amplitude est supérieure où inférieure à ladite tension de seuil, en ce qu'on détecte la fin de l'exploration de chaque caractère pour interrompre ledit codage, en ce qu'on transfère à la fin de chaque exploration d'un caractère le nombre binaire représentatif de ce caractère dans une mémoire, et en ce qu'on identifie ledit caractère par décodage dudit nombre binaire. Suivant une caractéristique de l'invention,la ligne de texte est divisée fictivement en un certain nombre de domaines identifiés par leur position dans un système de coordonnées à deux dimensions, une surface géométrique définie comprenant un nombre donné de domaines et dans laquelle chaque caractère du'texte peut être inclu étant déterminée et chaque type de caractère étant identifié et catalogue en mémoire sous forme d'un nombre binaire ayant un nombre de bits égal à celui des domaines de ladite surface géométrique, la valeur de chaque bit étant fonction de la présence ou de l'absence d'un tracé de caractère dans le domaine associé, ladite opération de codage consistant à explorer successivement lesdits domaines et à engendrer à chaque exploration d'un domaine le bit dont la valeur binaire est fonction de la valeur relative de l'amplitude du signal de sortie de la caméra et de la tension de seuil dans ledit domaine. L'invention a également pour objet un dispositif pour la mise en oeuvre du procédé défini ci-dessus, ce dispositif comprenant au moins une caméra de télévision, une série de circuits basculeurs disposés aux entrées respectives d'une matrice logique, un circuit à seuil pour engendrer ladite valeur binaire en fonction de l'amplitude du signal vidéo, et une série de cellules mémoires con nectées respectivement aux intersections des lignes et des colonnes de la matrice logique, lesdits circuits basculeurs appliquant le signal de sortie du circuit à seuil successivement auxdites cellules mémoires en fonction de la position du balayage. L'invention permet de ne pas numériser l'image et de procéder à la reconnaissance et l'identification des formes au fur et à mesure de leur saisie, ce qui autorise une diminution de la capacité de mémoire et du temps de traitement nécessaires D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre d'un dispositif de lecture automatique de texte destiné à la lecture et au stockage sur ordinateur de textes imprimés, faite en se référant aux dessins annexés sur lesquels - La Fig. 1 est un schéma synoptique du dispositif suivant l'invention - La Fig. 2 est une vue schématique de la logique de commande de balayage - La Fig.3 est une vue schématique du circuit d' identificåtion de lignes - La Fig. 4 est une vue schématique du circuit d'exploration de lignes ;; - La Fig. 5 est une vue montrant le découpage des lignes en domaines - La Fig. 6 est une vue analogue à la Fig. 5 montrant comment les domaines peuvent être identifiés par leurs coordonnées ; - La Fig. 7 est une vue schématique du circuit de codage de caractères - La Fig 8 est une vue montrant une variante de découpage des lignes pour la lecture de caractères en italiques - La Fig. 9 est un diagramme montrant l'allure du balayage horizontal et du balayage vertical dans le cas de caractères en italiques ; et - La Fig. 10 est un diagramme montrant une variante de balayage. En se référant à la Fig. 1, le dispositif automatique de lecture de textes suivant l'invention comprend une caméra de télévision 1 dans le champ de visée de laquelle est disposé un support 2 portant un texte constitué de caractères, préalablement définis et catalogués, disposés suivant des lignes horizontales. La caméra 1 est commandée par un circuit logique de commande 3 pour effectuer deux explorations du texte, une première exploration au cours de laquelle la position des lignes du texte est déterminée et une seconde exploration ligne de texte par ligne de texte au cours de laquelle les caractères sont lus et identifiés. Le nombre de lignes télévision par ligne de texte dépend de la précision cherchée, de la régularité des écritures et de la précision dans la position des lignes du texte. Une vingtaine de lignes télévision par ligne de texte permet une analyse très fine même en cas de légers défauts d'impression. La caméra 3 posséde deux types de balayage correspondant respectivement aux deux types d'exploration. Le premier type de balayage est classique et comprend un balayage vertical relativement lent (balayage image en 1/25ème de seconde > et un balayage horizontal comportant 625 lignes par image, et donc par vingt-cinquième de seconde. Le second type de balayage est commandé de la mani ère qui sera décrite ci-après dans la description pour effectuer l'exploration d'une seule ligne de télévision par ligne de texte. Ce second type de balayage comprend un balayage horizontal dont la vitesse est ralentie par rapport à celui de.la première exploration.Par exemple, si n est le nombre de lignes télévision normales par ligne de texte dans la première exploration avec une vitesse de balayage V, la vitesse au cours de la deuxième ex ploration ligne par ligne pourra être de t . Pendant le balayage horizontal ralenti, un balayage ou analyse verticale de la hauteur de la ligne explorée est engendré en réponse à des signaux de commande issus d'informations prélevées au cours de la première exploration, comme cela sera également décrit dans la suite. La logique de commande 3 est essentiellement cons tituée de deux bascules 31 et 32 disposées en cascade et qui ont été représentées symboliquement à la Fig. 2 pour en illustrer le fonctionnement. La bascule 31 comprend une première entrée qui reçoit un signal CMD de commande manuelle de départ appliqué en réponse à la fermeture d'un interrupteur par l'utilisateur du dispositif. La bascule 31 est commandée à sa seconde entrée par le signal de base de temps image du premier type de balayage. Enfin, les deux bascules comportent des entrées RAZ en vue de leur remise à zéro à la fin de l'exploration ligne de texte par ligne de texte ou lecture. La sortie de la bascule 32 peut donc prendre 4 positions, à savoir 00,01,10 et 11. A l'arrêt, les bascules sont sur la position 00. L'application du signal CMD à la bascule 31 place les bascules sur la position 01 et cette position commande le départ de la première exploration pour la détermination de la position des lignes de texte. Quandla première exploration est terminée, la fin de l'analyse, c'est-à-dire le retour du signal de base de temps image, commande le passage des bascules de la posi tion 01 à la position 10 qui commande la deuxième exploration, c'est-à-dire le processus de balayage "lecture". La fin du balayage "lecture" commande le retour à 00 des bascules. L'identification des lignes de texte est effectuée pendant la première exploration au moyen du circuit 4 représenté plus en détails à la Fig. 3. Un comparateur de niveau 401 compare le signal video direct SVD de la caméra à sa valeur moyenne calculée par un circuit moyenneur.402. I1 sort du comparateur 401 un niveau 1 quand la différence dépasse un certain seuil. Ce niveau 1 débloque une porte ET 403 qui applique alors les impulsions d'une horloge 404 à un compteur 405 auquel est appliqué le signal de syncnronisation ligne SSL à son entrée de remise à zéro RAZ.Soit N le nombre d'impulsions comptées. N est comparé à une valeur de seuil No dans un comparateur 406 qui sort un niveau 1 dès que N= > No. Ce niveau 1 est appliqué à une porte ET 407 qui, par ailleurs, reçoit toujours la tension de balayage vertical Uv. Quand N > No,Uv est appliqué à une mémoire tampon 408 et à un comparateur 409. Le comparateur 409 calcule Uv max et Uv min et un circuit moyenneur 410 calcule Uv moyen + Uv min Uv moyen = Uv max + Uv min Le résultat est placé dans une mémoire lignes 411 stockant pour chaque ligne de texte (donc chaque zone horizontale sombre) les tensions de balayage vertical correspondant à la partie supérieure de la ligne de texte (Uv min), la partie inférieure (Uv max) et le centre Uv moyen. Le comparateur 409 sort un niveau 0 quand le niveau actuel de son entrée 1 est différent du niveau passé ob- tenu par un circuit à retard 412. Le passage à zéro de la sortie du circuit à retard 412 commande le stockage dans la mémoire 411 des résultats (fin d'analyse d'une ligne de texte). L'exploration des lignes de texte détectées au moyen du circuit 4 est assurée sous la commande d'un cicuit 5 représenté plus en détail-à la Fig. 4. Un système de détection de fin de ligne 501 constitué par un detecteur de tensions classique fournit une impulsion lorsque la tension d'entrée qui est la tension de balayage'ligne Uh atteint une valeur donnée. Le détecteur 501 commande un générateur de balayage horizontal 502 qui attaque les électrodes de déviation horizontale de la caméra et un dispositif 503 de lecture séquentielle de la mémoire 411. Le dispositif 503 envoie la valeur moyenne Uv moy. pour la même ligne à un dispositif 504 qui utilise cette tension comme commande de la position verticale d'analyse Les valeurs Uv max et Uv min de la mémoire 411 sont appliqués par le dispositif 503 à un dispositif 505 qui calcule Uv max - Uv min de manière à déterminer la hauteur de ligne du texte et commander en conséquence l'amplitude du balayage vertical d'analyse fourni par un générateur de dent de scie classique 5Q6 qui attaque les électrodes de déviation verticale de la caméra. Le signal video est appliqué à un intégrateur 507 puis à un comparateur de type bascule 508 qui sort un niveau 1 quand la sortie de l'intégrateur est supérieure à un seuil S. L'apparition à l'entrée video d'un niveau 0 à la suite de niveaux différents de zéro indique la fin d'une lettre et commande l'application d'un signal à une matrice de codage décrite ci-après dans la description par 1 'in- termédiaire d'une porte 509. L'analyse d'une lettre est effectuée de la manière suivante au cours de la lecture des lignes Comme représenté à la Fig. 5, l'espace occupé par une lettre est divisé en domaines rectangulaires : 3 domaines dans la direction horizontale (1 domaine est occupé par les lettres i et I, deux domaines par a,b,c,d,e,f,g ; trois domaines par m et w et la plupart des majuscules) et en 4 domaines verticaux, 2 dans le corps de la ligne et 1 de part et d'autre (les dimensions des divers domaines ne sont pas forcément identiques), représentant la hauteur d'une ligne. Comme représenté à la Fig. 6, dans le cas envisagé ci-dessus de trois domaines dans la direction horizontale et de quatre domaines dans la direction verticale délimités respectivement par des divisions de coordonnées Xo,Xl, X2,X3 d'une. part et Yo,Yl,Y2,Y3,Y4 d'autre part, chaque domaine peut être identifié par ses coordonnées et chaque lettre peut être codée en 12 bits 0 ou 1 correspondant à la détection d'un blanc ou d'un noir dans chaque domaine exploré. En l'absence de lettre ou entre deux lettres le faisceau ne rencontre pas de noir. Le faisceau de balayage se déplace de gauche à droite (bien que l'on puisse envisager une lecture de droite à gauche) et de bas en haut (distance d'un interligne avec 1/2 vers le haut et 1/2 vers le bas). Les coordonnées des divers domaines d'analyse sont indiquées-par des compteurs de temps, mis à zéro à chaque blanc (séparation entre les lettres). Dès qu'un noir supérieur au seuil de bruit est détecté, un compteur horizontal est déclenché ainsi qu'un ou des compteurs verticaux. L'invention prévoit aussi l'utilisation de comparateurs de tension électrique à la place de compteurs de temps. Dans le mode de réalisation le plus simple, le compteur vertical bascule à chaque changement de domaine (dimensions identiques) et le compteur horizontal compte le nombre de balayages verticaux. I1 détermine la position du domaine à partir des nombres comptés (par exemple. 5 balayages par domaine). On obtient ainsi les coordonnées x et y, lettre par lettre. Un circuit 6 permet de mettre en oeuvre le principe de codage de lettre décrit ci-dessus. Un exemple particulier d'un tel circuit est représenté à la Fig.7. Des modules 601, 602, 603-, 604 constitués par des comparateurs de niveaux sortent un niveau 1 quand la tension de balayage vertical de lecture produite par le générateur 506 est comprise entre deux valeurs données correspondant à la portion verticale de lettre en cours de lecture. De même, des modules 605, 606, 607 sortent un niveau 1 quand la position horizontale de lecture correspond à l'abcisse x de la portion de lettre en cours de lecture. Cette position est indiquée par un compteur 608 initialisé à chaque début de lettre et comptant les dents de scie verticales fournies par ce générateur 506. L'initialisation est commandée par un circuit 609, qui reçoit le signal video. Ce circuit 609 est classique et sort un niveau 1 quand le signal video reste inférieur à un seuil pendant un ou plusieurs balayages verticaux de lecture, ce qui correspond à une détection des blancs entre les lettres imprimées. Les modules 601 à 607 commandent une matrice 610 de portes ET symbolisées par des cercles qui, par ailleurs, reçoivent toutes le signal video par l'intermédiaire de la porte ET 509. Les portes ET de la matrice 610 produisent ainsi successivement chacune un bitlouO selon qu'un trait a été détecté ou non dans le domaine associé et ce bit est stocké dans une cellule mémoire associée (non représen- tée). Les mots binaires correspondant à chaque lettre de texte sont stockés dans une mémoire d'ordinateur par des procédés classiques soit directement, soit après transcodage avec réduction éventuelle du nombre de bits. Puisque 12 bits permettraient de distinguer 212 = 4096 caractères différents, on dispose donc d'une certaine redondance. Les opérations de transcodage sont effectuées d'une manière courante par logiciel ou par logique cablée et ne seront donc pas décrites ici. Bien entendu, de nombreuses modifications peuvent être apportées à l'exemple de réalisation décrit ci-dessus. C'est ainsi que, dans certains textes imprimés, la séparation entre deux lettres successives dans un mot n'est pas très marquée, et la technique décrite dans l'exemple ci-dessus ne convient pas pour les détecter. Dans ce cas, le système de reconnaissance procède à la manière d'un automate séquentiel fini de type usuel. Les mesures effectuées par la caméra constituent les entrées successives de l'automate et commandent ses propres transitions d'état. Ainsi l'automate découvre lui-même la fin d'une lettre. Dans certains cas la détection de la fin d'une lettre pourra s'opérer par une combinaison des en trées (blanc) et de l'état de l'automate. Enfin, l'utilisation d'un automate fini opérant une identification dès que les signaux apparaissent permet un recodage rapide et efficace. L'automate peut être cablé (rapidité) ou programmé(microprocesseur) ou mixte. D'autre part, dans le cas de textes imprimés en italiques, les balayages ralentis peuvent être modifiés de manière à tenir compte d'un découpage des lignes en domaines ayant la forme de parallèlogrammescomme repré senté à la Fig. 8 et non de rectangles ou carrés comme décrit précédemment. Dans ce cas, on peut adopter un balayage horizontal Uh et un balayage vertical Uv ayant les allures représentées à la Fig.9 ou, en variante, des balayages du type représenté à la Fig. 10. Par ailleurs, étant donné les défauts ou les irrégu larités possibles d'impression, des erreurs restent possibles, en particulier au niveau de la séparation des lettres. Les erreurs peuvent être corrigées ensuite par logiciel comme dans les procédés classiques. L'avantage essentiel de l'invention est l'économie de place mémoire puisque l'identification des formes (lettres) siopère à la lecture même.Une première détection d'erreurs peut être opérée au niveau du recodage, mais la vitesse d'analyse pouvant atteindre 900 caractères en 40 ou 80 ms ne laisse pas beaucoup de temps. Par contre, un traitement peut être opéré ensuite par comparaison des mots obtenus à un vocabulaire type (un stock de quelques 16 000 mots environ peut être suffisant).En effet, le dispositif peut détecter le début et la fin d'un mot et le nombre de lettres de chaque mot, ou sa longueur, et ces diverses informations peuvent être utilisées pour la détection des erreurs. Enfin, dans certaines applications, le vocabulaire peut être réduit. Dans ces conditions, il peut être pré férable d'analyser mot par mot et non lettre par lettre. Le codage de 16 000 mots divers ne demande que 14 digits binaires2l4 = 16 384. Un système d'analyse de même type que celui decrit dans la présente invention permet une lecture directe L'utilisation simultanée des deux sys tèmes (analyse par lettres et analyse par mots) peut également être utilisée en particulier pour la lecture des textes manuscrits ou mal écrits. D'une manière générale, il peut être prévu d'autres critères d'identification des lettres que celui décrit cidessus comme, par exemple, la mesure de la surface totale de la partie noire d'une lettre ou la mesure de la surface comprise entre les traces ou.entre les tracés et le bord d'image. A cet effet, on peut utiliser la technique décrite dans le brevet français nO 76 38 405. On peut encore mesurer une surface écrite verticale pour la détection des traits verticaux de certaines lettres. REVENDICATIONS 1 - Procédé de lecture automatique d'un texte comportant au moins une ligne horizontale de caractères, caractérisé en ce qu'on dispose ledit texte dans le champ de visée d'une caméra de télévision, en ce qu'on explore ladite ligne de texte au moyen d'un balayage vertical représentant la hauteur de la ligne et d'un balayage horizontal représentant au moins la longueur de la ligne, la vitesse de balayage horizontal étant relativement lente de telle sorte qu'un seul caractère au maximum de la ligne de texte est exploré au cours de chaque balayage vertical, en ce qu'on compare le signal video de la caméra à au moins une tension de seuil pour distinguer les zones blanches des zones sombres du texte, en ce qu'on code numériquement le signal de sortie en engendrant une valeur binaire dïstincte suivant que son amplitude est supérieure ou inférieure à ladite tension de seuil, en ce qu'on détecte la fin de l'exploration de chaque caractère pour interrompre ledit codage, en ce qu'on transfère à la fin de chaque exploration d'un caractère le nombre binaire représentatif de ce caractère dans une mémoire, et en ce qu'on identifie ledit caractère par décodage dudit nombre binaire. 2 - Procédé suivant la revendication 1, caractérisé en ce que la ligne de texte est divisée fictivement en un certain nombre de domaines identifiés par leur position dans un système de coordonnées à deux dimensions, une surface géométrique définie comprenant un nombre donné de domaines et dans laquelle chaque caractère du texte peut être indu étant déterminéeet chaque type de caractère étant identifie et catalogue en mémoire sous -forme d'un nombre binaire ayant un nombre de bits égal à celui des domaines de ladite surface géométrique, la valeur de chaque bit étant fonction de la présence ou de l'absence d'un tracé de caractère dans le domaine associé, ladite opération de codage consistant à explorer successivement lesdits domaines et à engendrer à chaque exploration d'un domaine le bit dont la valeur binaire est fonction de la valeur relative de l'amplitude du signal de sortie de la caméra et de la tension de seuil dans ledit domaine. 3 - Procédé suivant la revendication 2, caractérisé en ce-qu'à chaque domaine d'une zone géométrique définie est associée une cellule mémoire, lesdits bits engendrés étant appliqués successivement auxdites cellules mémoires correspondantes en fonction de la position du balayage. 4 - Procédé suivant la revendication 3, caractérisé en ce que lesdites cellules mémoires sont connectées successivement au moyen d'une matrice logique aux entrées de laquelle sont appliqués des signaux de commande représentatifs des coordonnées des domaines dans ledit système de coordonnées. 5 - Procédé suivant l'une quelconque des revendications 1 à 4, caractérisé en ce que, dans le cas où ledit texte comporte plusieurs lignes, on effectue une première exploration à balayage horizontal rapide dudit texte pour identifier la position desdites lignes de texte, et on explore ensuite successivement chaque ligne. 6 - Procédé suivant la revendication 5, caractérisé en ce qu'au cours de la première exploration on mémorise les valeurs de la tension de balayage vertical correspondant respectivement à la limite supérieure et à la limite inférieure de chaque ligne, et on explore ensuite chaque ligne en faisant varier ladite tension de balayage vertical entre les valeurs mémorisées pour ladite ligne. 7-Dispositif de lecture automatique de texte pour la mise en oeuvre du procédé suivant l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comprend au moins une caméra de télévision, une série de circuits basculeurs disposés aux entrées respectives d'une matrice logique, un circuit à seuil pour engendrer ladite valeur binaire en fonction de l'amplitude du signal.vldéo, et une série de cellules mémoires connectées respectivement aux intersections des lignes et des colonnes de la matrice logique, lesdits circuits basculeurs appliquant le signal de sortie du circuit à seuil successivement auxdites cellules mémoires en fonction de la position du balayage. 8 - Dispositif selon la revendication 7, caracterisé en ce que les circuits basculeurs associés aux lignes de la matrice logique sont commandés par la tension de rDalayage-vertical et les circuits basculeurs associés aux colonnes de la matrice sont commandés par un compteur qui compte le nombre de dents de scie du balayage vertical à partir du début de l'exploration de chaque caractère. 9 - Dispositif suivant la revendication 8, carac térisé en ce que chaque cellule mémoire est commandée par une porte ET qui reçoit à son entrée les signaux de sortie du circuit à seuil et des circuits basculeurs de la ligne et de la colonne associées. 10 - Dispositif suivant l'une quelconque des revendications 7 à 9 lorsqu'elle dépend de la revendication 6, caractérisé en ce qu'il comprend un dispositif d'identification de lignes de textes qui comporte un circuit d'établissement de moyenne auquel est appliqué le signal vidéo de la caméra, un comparateur auquel est appliqué la sortie du circuit d'établissement de moyenne et le signal vidéo direct et qui produit un niveau binaire "1" quand la différence dépasse un certain seuil, et des moyens pour stocker en mémoire les valeurs de la tension de balayage ver tical correspondant aux passages du comparateur de l'un de ses états à son état onnosd. 11 - Dispositif suivant la revendication 10, carac térisé en ce qu'il comprend un circuit pour commander, à la fin de ladite première exploration, la mise en fonctionnement d'un circuit générateur dudit balayage horizontal à vitesse relativement lente, et pour commander un balayage vertical dont la tension est comprise entre lesdites tensions correspondant aux lignes de textes identifiés.