BE1022562A9 - Procédé de reconnaissance optique de caractères - Google Patents

Procédé de reconnaissance optique de caractères Download PDF

Info

Publication number
BE1022562A9
BE1022562A9 BE20155354A BE201505354A BE1022562A9 BE 1022562 A9 BE1022562 A9 BE 1022562A9 BE 20155354 A BE20155354 A BE 20155354A BE 201505354 A BE201505354 A BE 201505354A BE 1022562 A9 BE1022562 A9 BE 1022562A9
Authority
BE
Belgium
Prior art keywords
characters
character
type
segmentation
probabilities
Prior art date
Application number
BE20155354A
Other languages
English (en)
Other versions
BE1022562A1 (fr
BE1022562B1 (fr
Inventor
Frédéric Collet
Jordi Hautot
Michel Dauw
Meulenaere Pierre De
Olivier Dupont
Günter Hensges
Original Assignee
Iris Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Iris Sa filed Critical Iris Sa
Publication of BE1022562A1 publication Critical patent/BE1022562A1/fr
Publication of BE1022562B1 publication Critical patent/BE1022562B1/fr
Application granted granted Critical
Publication of BE1022562A9 publication Critical patent/BE1022562A9/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/24Character recognition characterised by the processing or recognition method
    • G06V30/242Division of the character sequences into groups prior to recognition; Selection of dictionaries
    • G06V30/246Division of the character sequences into groups prior to recognition; Selection of dictionaries using linguistic properties, e.g. specific for English or German language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/224Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/28Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
    • G06V30/287Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of Kanji, Hiragana or Katakana characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/28Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
    • G06V30/293Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of characters other than Kanji, Hiragana or Katakana

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)

Abstract

Le procédé de reconnaissance optique de caractères applique un premier moteur de ROC pour fournir une identification de caractères d'au moins un premier type de caractères et de zones d'au moins un deuxième type de caractères dans l'image de chaîne de caractères. Un deuxième moteur de ROC est appliqué sur les zones du au moins deuxième type de caractères pour fournir une identification de caractères d'un deuxième type de caractères. Les caractères identifiés par le premier moteur de ROC et par te deuxième moteur de ROC sont combinés dans une étape supplémentaire pour obtenir l’identification des caractères de limage de chaîne de caractères.

Description

Procédé de reconnaissance optique de caractères Domaine de (Invention L’Invention concerne un procédé de reconnaissance optique de caractères. De manière plus spécifique, l’invention concerne un procédé de reconnaissance optique de caractères pour reconnaître plus d'un type de caractères.
Art antérieur de (Invention
Les procédés de reconnaissance optique de caractères (ROC) convertissent l’image d'un texte en code lisible par machine en utilisant un procédé de reconnaissance de caractères pour identifier les caractères représentés sur l image.
Les procédés de reconnaissance optique de caractères débutent avec une image comprenant une chaîne de caractères et fournissent, avec un moteur de ROC, une identification (1D) des caractères présents dans la chaîne de caractères, c’est-à-dire une identification des caractères en code lisible par machine pour obtenir une chaîne consultable de caractères.
Il existe de nombreux moteurs de ROC. Ils doivent travailler rapidement avec des ressources de calcul limitées et reconnaître des caractères avec exactitude. Vitesse, ressources limitées et exactitude sont des exigences contradictoires et, en pratique, un bon moteur de ROC se base sur des compromis entre ces caractéristiques.
Un moteur de ROC conçu pour la reconnaissance de caractères latins (par exemple anglais) est différent d'un moteur conçu pour la reconnaissance de caractères asiatiques (chinois, japonais et coréen) ou de caractères arabes. Par exempte, la base de données d'identification est différente, même si certains caractères comme les signes de ponctuation et les caractères numériques peuvent être présents dans plusieurs bases de données. La base de données de caractères latins peut contenir moins de 100 caractères, tandis que la base de données de caractères asiatiques peut contenir environ 5000 caractères par langue. Par conséquent, un moteur de ROC conçu pour les caractères asiatiques requiert typiquement plus de mémoire qu'un moteur de ROC conçu pour les caractères latins. Les algorithmes qui doivent tenir compte dé la diversité des caractères sont optimisés différemment en raison de cette grande différence du nombre de caractères. Les caractéristiques utilisées pour la reconnaissance de caractères sont différentes parce que les formes des caractères latins sont plus simples que les formes des caractères asiatiques qui peuvent contenir de nombreux traits, mais les formes des caractères latins présentent plus de variations en raison du nombre élevé de polices de caractères latins. En outre, les algorithmes de décision contextuelle qui prennent la décision finale à propos de l'identification des caractères en utilisant des modèles linguistiques et typographiques sont différents. Les modèles linguistiques pour les langues latines utilisent en particulier un dictionnaire de langue avec des probabilités d’occurrence de mots, tandis que les modèles linguistiques pour les langues asiatiques utilisent en particulier des n-g ram mes de caractères avec des probabilités d’occurrence. (Un n-gramme de caractères est une séquence de n caractères consécutifs). Une autre raison pour laquelle les moteurs de ROC sont différents pour les caractères latins et les caractères asiatiques est qu’il n’y a pas d’espaces entre les mots dans les textes chinois ou japonais.
Somme toute, l’utilisation d’un moteur de ROC connu pour de multiples types de caractères tels que les caractères latins et asiatiques ne donne pas le résultat voulu qui est d’être exact, rapide et peu exigeant en ressources .de.-calcul. ..C'esî pourquoi les, moteurs de ROC connus sont ' typiquement conçus pour un sdül "tÿpe de caractères, et .sî un 'moteur de ROC connu comprend la possibilité de reconnaître des caractères d'un autre type, son exactitude pour ce qui est ce reconnaître cet autre type de caractères est typiquement faible. Ce manque d’exactitude constitue en particulier un problème parce que ce nombreux documents contiennent aujourd'hui un mélancs de .différents types ds caractères, comme par exemple une'facture”ou un ordre'd’achat japonais qui contient du'texte japonais mais aussi des noms anglais, des adresses postales en anglais, des adresses emal!, des montants en chiffres,... •Résumé ds Hnvention
Un but da cette invention est da fournir un précédé -d'identification de caractères pour une Identification rapide et exacts cas caractères dans une image de chaîne de caractères.
Un autre but de cette invention est de fournir un produit de programma informatique pour mettra en œuvre ledit système d'identification ce caractères.
Ces buis sont atteints selon l'invention telle que décrits dans les revendications indépendantes.
Dans un prämier aspect, ia présents invention fournit un procédé pour identifier des caractères dans une image ce chaîne de caractères, !s procédé comprenant: (i) facpiicaîlon .d’un premier moteur de ROC pour fournir une identification de caractères d'au moins un premier type de caractères st de 'zones d'au moins un deuxième type da caractères dans l’image -de chaîne de ca racleras, (ii) 1‘appltcation sur tes zones du au moins deuxième typ« de caractères d'un deuxième moteur dé ROC pour fournir une identification de caractères d'un deuxième type de caractères, et (iii) la combinaison des caractères identifiés par le premier moteur de ROC et par le deuxième moteur de ROC pour obtenir l’identification des caractères de l’image de chaîne de caractères, dans lequel le premier moteur de ROC comprend une segmentation de Timage de chaîne de caractères en parties de segmentation et comprend pour chaque partie de segmentation les étapes consistant à (a) appliquer une première classification de caractères pour fournir une première pluralité d'hypothèses sur un au moins un caractère représenté par la partie de segmentation et une première pluralité de probabilités associées aux hypothèses de la première pluralité d'hypothèses, (b) vérifier si la première pluralité d'hypothèses satisfait à au moins une condition, (c) appliquer, si au moins une condition est satisfaite, une deuxième classification de caractères pour fournir une deuxième pluralité d'hypothèses sur !e au moins un caractère représenté par la partie de segmentation et une deuxième pluralité de probabilités associées aux hypothèses de la deuxième pluralité d’hypothèses.
Dans un tel procédé, les caractères du premier type sont directement analysés par la première classification de caractères dans le premier moteur de ROC, leur traitement est rapide et exact. Seuls les caractères pour lesquels un doute existe après la première classification de caractères dans le premier moteur de ROC sont analysés par une deuxième classification de caractères dans le premier moteur de ROC, le doute étant évalué par ia vérification à fétape b). Cette sélection de caractères à analyser par la deuxième classification de caractères rend le procédé particulièrement rapide. Un deuxième moteur de “ROC est alors utilisé uniquement sur des zones où un type de caractères autre que le premier type de caractères a été détecté pour augmenter l'exactitude d'identification des caractères du deuxième type de caractères. Le fait que le deuxième moteur de ROC n'est utilisé que sur des zones où un type de caractères autre que le premier type de caractères a été détecté fait que le deuxième moteur de ROC rfest irtilisé que quand c’est nécessaire. Par exempte, le deuxième moteur de ROC n'est pas utilisé du tout dans un texte comprenant uniquement des caractères du premier type, mais si un texte contient également des caractères du deuxième type de caractères à certains endroits comme une adresse email dans une facture chinoise, l'exactitude de leur identification est élevée.
Somme toute, les caractères du deuxième type de caractères sont analysés deux fois pendant ce processus, à deux niveaux différents (classification de caractères et moteur de ROC complet), ce qui donne une excellente exactitude.
Dans un mode de réalisation selon l'invention, 1e premier moteur de ROC utilise une base de données de caractères comprenant des caractères du premier type de caractères. Le premier moteur de ROC identifie des caractères du premier type de caractères, ce qui se base sur la reconnaissance des formes des caractères par comparaison avec des modèles de caractères présents dans la base de données.
Dans un mode de réalisation selon l'invention, la première classification de caractères utilise une base de données de caractères comprenant des caractères du premier type de caractères. Le but de la première classification de caractères est de classifier les caractères du premier type aussi tôt que possible dans le procédé d'identification parce que plus le nombre d’étapes auxquelles sont soumis ces caractères est rèduît, plus le procédé d’identification est rapide.
Dans un mode de réalisation selon l'invention, la première classification de caractères est capable de détecter des caractères d'au moins un type de caractères aube que le premier type de caractères. C'est particulièrement intéressant parce qu’une détection d'un aube type de caractères dans une partie de segmentation est un fort indicateur qu'une deuxième classification de caractères, conçue pour un autre type de caractères, augmentera l’exactitude du procédé d'identification.
Dans un mode de réalisation selon l’invention, le premier type de caractères est un type asiatique de caractères.
Dans un mode de réalisation selon l'invention, le deuxième moteur de ROC utilise une base de données de caractères comprenant des caractères du deuxième type de caractères. Le deuxième moteur de ROC identifie des caractères du deuxième type de caractères, ce qui se base sur la reconnaissance des formes des caractères par comparaison avec des modèles de caractères présents dans la base de données.
Dans un mode de réalisation selon l'invention, la deuxième classification de caractères utilise une base de données de caractères comprenant des caractères du deuxième type de caractères. Le but de la deuxième classification de caractères est de classifier les caractères du deuxième type, ce qui fournit des hypothèses sur leur identification associées à des probabilités, il est possible de choisir, dans une étape suivante du premier moteur de ROC utilisant des décisions contextuelles, une identification du premier ou du deuxième type.
Dans un mode de réalisation selon l'invention, le deuxième type de caractères est un type latin de caractères.
Dans un mode de réalisation selon l'invention, le premier type de caractères est te type latin de caractères, letype arabe de caractères, le type hébreux de caractères, te type cyrillique de caractères, le type grec de caractères ou le type hiéroglyphe de caractères. Le procédé peut être appliqué è tout type de caractères, comprenant ceux mentionnés ici.
Dans un mode de réalisation selon l'invention, le deuxième type de caractères est le type asiatique de caractères, le type arabe de caractères,letype hébreu de caractères, le type cyrillique de caractères, le type grec de caractères ou le type hiéroglyphe de caractères. Le procédé peut être appliqué à tout type de caractères, comprenant ceux mentionnés ici.
Dans un mode de réalisation salon {Invention, au moins une de la première classification de caractères et de la deuxième classification de caractères est une dassification de caractères individuels.
Dans un mode de réalisation selon l'invention, les zones du au moins deuxième type de caractères sont des groupes de parties de segmentation dans lesquels certaines parties de segmentation satisfont au moins à une des conditions suivantes: • toutes les probabilités des hypothèses fournies par la première classification de caractères pour ladite partie de segmentation sont en dessous d'un seuil donné; • une hypothèse parmi les hypothèses pour la première partie de segmentation concerne un caractère du premier type de caractères connu pour ressembler à un caractère du au moins deuxième type de caractères; • une hypothèse parmi les hypothèses pour ladite partie de segmentation concerne un type de caractères autre que le premier type de caractères; et • un caractère du deuxième type de caractères a été identifié sur ladite partie de segmentation par le premier moteur de ROC.
Pour que l'identification soit rapide, ii est important que le deuxième moteur de ROC ne soit appliqué que sur des zones de texte où des caractères autres que le premier type de caractères sont probablement présents. Si une zone remplit au moins un des critères cités ici, il y a de grandes chances que des caractères autres que le premier type de caractères soient présents.
Dans un mode de réalisation selon l'invention, ladite au moins une condition est une des conditions suivantes: • toutes les probabilités des hypothèses de la première classification de caractères sont en dessous d'un seuil donné; • une hypothèse parmi les hypothèses de la première classification de caractères concerne un caractère du premier type de caractères connu comme un caractère d'un autre type de caractères; et • une hypothèse parmi les hypothèses de ladite première classification de caractères concerne un type de caractères autre que le premier type de caractères.
Four que l’identification soit rapide, il est important que le deuxième moteur de ROC ne soit appliqué que sur des parties de segmentation où des caractères autres que te premier type de caractères sont probablement présents. Si une partie de segmentation remplit au moins un des critères cités ici, il y a de grandes chances que des caractères autres que le premier type de caractères soient présents.
Dans un mode de réalisation selon l'invention, la segmentation de l'image de chaîne de caractères en parties de segmentation comprend les étapes consistant à: • déterminer une première coordonnée de point de départ d'un pixel contrastant avec Tanière-pian, • générer une liste de largeurs de caractère potentielles dépendant d'une largeur de caractère maximale et de caractéristiques de la partie de limage de chaîne de caractères correspondant à la largeur de caractère maximale, et • déterminer une deuxième partie de l'image de chaîne de caractères correspondant à la première coordonnée de point de départ et à la première largeur sur la liste des largeurs de caractères potentielles.
Un procédé de segmentation basé sur la largeur des caractères comme celui-ci est particulièrement efficace pour les textes asiatiques où les caractères ne sont pas groupés en mots.
Dans un mode de réalisation selon l'invention, la première pluralité de probabilités correspond à une première échelle de probabilité, la deuxième pluralité de probabilités correspond à une deuxième échelle de probabilité, et le procédé comprend une étape consistant à transformer au moins une de la première pluralité de probabilités et de la deuxième pluralité de probabilités pour mettre à l'échelle la première ou la deuxième échelle de probabilités de telle manière que la première pluralité de probabilités et la deuxième pluralité de probabilités puissent être comparées pour obtenir une première ou deuxième pluralité de probabilités transformée.
Un problème peut survenir quand les probabilités fournies par les deux classifications ne sont pas dans la même échelle. Une étape de transformation d’une des probabilités est donc nécessaire afin de pouvoir les considérer de la même façon lors d’une étape ultérieure de décision contextuelle.
Dans un mode de réalisation selon l'invention, le premier moteur de ROC comprend en outre une étape consistant à prendre une décision contextuelle pour l’identification de caractères du au moins premier type dé caractères sur la base des hypothèses de là première classification de caractères avec leurs probabilités correspondantes et des hypothèses de la deuxième classification de caractères avec leurs probabilités correspondantes pour toutes les parties de segmentation.
Un grand nombre d'hypothèses peuvent être générées par la classification de caractères de toutes les parties de segmentation de l'image de chaîne de caractères. La dédsion contextuelle détermine, sur la base des probabilités d’hypothèses d'identification de caractères générées par la première classification de caractères et la deuxième classification de caractères, si la deuxième classification de caractères a été utilisée, et sur la base du contexte des caractères, l'identification des caractères qui est le résultat du premier moteur de ROC.
Dans un mode de réalisation selon l'invention, l'étape consistant à prendre une décision contextuelle utilise au moins un des outils de support de décision parmi un graphe de décision, un modèle linguistique et un modèle typographique. On a constaté qu'une décision contextuelle utilisant un ou plusieurs de ces outils de support de décision était particulièrement rapide et exacte en ROC. Par exemple, le fait de chercher le chemin le plus court dans un graphe de décision permet de tenir compte, dans fa décision d'identification des caractères de l'image en entier, des probabilités générées par les classifications de caractères et des probabilités générées par l’application de modèles linguistiques, de modèles typographiques.
Dans un deuxième aspect, la présente Invention fournit un produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères, la logique de commande comprenant: (i ) des premiers moyens de code de programme lisible par ordinateur pour appliquer un premier moteur de ROC pour fournir une identification de caractères d'au moins un premier type de caractères et de zones d’au moins un deuxième type de caractères dans f image de chaîne de caractères, (il) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer sut les zones d’au moins un deuxième type de caractères un deuxième moteur de ROC pour fournir une identification de caractères d’un deuxième type de caractères, et (iîi) des troisièmes moyens de code de programme lisible par ordinateur pour combiner caractères identifiés par le premier moteur de ROC et par le deuxième moteur de ROC pour obtenir Hdentification des caractères de l'image de chaîne de caractères, dans lequel le premier moteur de ROC comprend une segmentation de l'image de chaîne de caractères en parties de segmentation et comprend pour chaque partie de segmentation les étapes consistant à (a) appliquer une première classification de caractères pour fournir une première pluralité d’hypothèses sur un au moins un caractère représenté par la partie de segmentation et une première pluralité de probabilités associées aux hypothèses, (b) vérifier si la première pluralité d’hypothèses satisfait à au moins une condition, et (c) appliquer, si au moins une condition est satisfaite, une deuxième classification de caractères pour fournir une deuxième pluralité d’hypothèses sur le au moins un caractère représenté par la partie de segmentation et une deuxième pluralité de probabilités associées aux hypothèses.
Un tel produit informatique permet d’appliquer l'invention de manière très efficiente en vue de fournir ûne identification dans un code lisible par machine des caractères représentés par l’image de chaîne de caractères.
Dans un troisième aspect, la présente invention fournit un procédé pour identifier des caractères dans une image de chaîne de caractères, le procédé comprenant: (i) l’application d’un moteur de ROC conçu pour les caractères asiatiques pour fournir une identification de caractères asiatiques et de zone de caractères non asiatiques dans l’image de chaîne de caractères, (ii) l'application sur ies zones de caractères non asiatiques d’un moteur de ROC conçu pour ies caractères latins pour fournir une identification de caractères latins, et (îiï) ia combinaison des caractères identifiés par ie moteur de ROC conçu pour les caractères asiatiques et ie moteur de ROC conçu pour les caractères latins pour obtenir fidentification des caractères asiatiques et Satins de limage de chaîne de caractères, dans lequel ie moteur de ROC conçu pour les caractères asiatiques comprend ies étapes consistant à: (A) segmenter l'image de chaîne de caractères en parties de segmentation, (B) appliquer, pour chaque partie de segmentation, une classification de caractères individuels conçue pour les caractères asiatiques pour fournir une première pluralité d’hypothèses sur un au moins un caractère représenté par la partie de segmentation et une première pluralité de probabilités associées aux hypothèses, et (C) prendre une décision contextuelle pour l'identification des au moins caractères asiatiques sur ta base des hypothèses de la classification de caractères individuels conçue pour des caractères asiatiques et leurs probabilités correspondantes pour toutes les parties de segmentation.
Les caractères latins sont analysés au niveau de la classification de caractères individuels dans ce mode de réalisation de llnvention. Étant donné que seules les parties de segmentation où un doute apparaît pendant la classification de caractères individuels conçue pour les caractères asiatiques sont analysées avec fa classification de caractères individuels pour les caractères latins, le procédé complet est rapide.
Dans un mode de réalisation de la présente invention, l'étape (B) comprend en outre, pour chaque partie de segmentation, les sous-étapes consistant à: • vérifier si la première pluralité d'hypothèses satisfait à au moins une condition, et • appliquer, si au moins une condition est satisfaite, une classification de caractères individuels conçue pour les caractères latins pour fournir une deuxième pluralité d’hypothèses sur le au moins un caractère représenté par la partie de segmentation et une deuxième pluralité de probabilités associées aux hypothèses, et dans lequel la décision contextuelle de l'étape (C) est une décision contextuelle pour l'identification de caractères sur la base des hypothèses de la classification de caractères individuels conçue pour les caractères asiatiques et leurs probabilités correspondantes et les hypothèses de la classification de caractères individuels conçue pour les caractères latins et leurs probabilités correspondantes pour toutes les parties de segmentation.
Les caractères latins sont analysés deux fois pendant l’application de ce mode de réalisation de l'invention, à deux niveaux différents {classification de caractères individuels et moteur de ROC complet), ce qui donne une excellente précision. Étant donné que seules les parties de segmentation ôù un doute apparaît pendant la classification de caractères individuels conçue pour les caractères asiatiques sont analysées avec ta classification de caractères individuels pour les caractères latins et éventuellement avec le moteur de ROC complet conçu pour les caractères latins, le procédé complet est rapide.
Selon un quatrième aspect, l'invention fournit un produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères, la logique de commande comprenant: (i ) des premiers moyens de code de programme lisible par ordinateur pour appliquer un moteur de ROC conçu pour les caractères asiatiques pour fournir une identification de caractères asiatiques et de zone de caractères non asiatiques dans limage de chaîne de caractères, (ii ) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer sur les zones de caractères non asiatiques un moteur de ROC conçu pour les caractères latins pour fournir une identification de caractères latins, et (iii ) des troisièmes moyens de code de programme lisible par ordinateur pour combiner les caractères identifiés par le moteur de ROC conçu pour les caractères asiatiques et le moteur de ROC conçu pour les caractères latins pour obtenir l'identification des caractères asiatiques et latins de l'image de chaîne de caractères, dans lequel le moteur de ROC conçu pour les caractères asiatiques comprend les étapes consistant à: (A) segmenter limage de chaîne de caractères en parties de segmentation, (B) appliquer, pour chaque partie de segmentation, une classification de caractères individuels conçue pour les caractères asiatiques pour fournir une première pluralité d'hypothèses sur un au moins un caractère représenté par la partie de segmentation et une première pluralité de probabilités associées aux hypothèses, et (C) prendre une décision contextuelle pour l’identification des au moins caractères asiatiques sur la base des hypothèses de la classification de caractères individuels conçue pour les caractères asiatiques et leurs probabilités correspondantes pour toutes les parties de segmentation.
Un tel produit informatique permet d’appliquer l’invention de manière très efficiente en vue de fournir une identification dans un code lisible par machine des caractères représentés par l'image de chaîne de caractères.
Selon un cinquième aspect, l’invention fournit un procédé pour identifier des caractères dans une image de chaîne de caractères, ie procédé comprenant les étapes consistant à: (A) segmenter l'image de chaîne de caractères en parties de segmentation, (B) pour chaque partie de segmentation, les sous-étapes consistant à: (a) appliquer une première classification de caractères pour fournir une première pluralité d'hypothèses sur un au moins un caractère représenté par la partie de segmentation et une première pluralité de probabilités associées aux hypothèses, (b) vérifier si ia première pluralité d'hypothèses satisfait à au moins une condition, (c) appliquer, si au moins une condition est satisfaite, une deuxième classification de caractères pour fournir une deuxième pluralité d'hypothèses sur ie au moins un caractère représenté par ia partie de segmentation et une deuxième pluralité de probabilités associées aux hypothèses, et (C) {»rendre une décision contextuelle pour l'identification des caractères du au moins premier type de caractères sur la base des hypothèses de la première classification de caractères avec leurs probabilités correspondantes et des hypothèses de la deuxième classification de caractères avec leurs probabilités pour toutes les parties de segmentation.
Dans un tel procédé, les caractères du premier type sont directement analysés par la première classification de caractères, leur traitement est rapide et exact. Seuls les caractères où un doute existe après la première classification de caractères sont analysés par une deuxième classification de caractères, le doute étant évalué par la vérification. Cette sélection de caractères à analyser par ta deuxième classification de caractères rend le procédé particulièrement rapide.
Selon un sixième aspect, l'invention fournit un produit de programme informatique comprenant un support qui peut être utilisé par un l'ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères, la logique de commande comprenant des moyens de code de programme lisible par ordinateur pour segmenter limage de chaîne de caractères en parties de segmentation et comprenant, pour chaque partie de segmentation: (A) des premiers moyens de code de programme lisible par ordinateur pour segmenter limage de chaîne de caractères en parties de segmentation, (B) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer, pour chaque partie de segmentation, les sous-étapes consistant en: (a) une première classification de caractères pour fournir une première pluralité d’hypothèses sur un au moins un caractère représenté par la partie de segmentation et une première pluralité de probabilités associées aux hypothèses, (b) une vérification pour voir si la première pluralité d'hypothèses satisfait è au moins une condition, (c) si au moins une condition est satisfaite, une deuxième classification de caractères pour fournir une deuxième pluralité d’hypothèses sur le au moins un caractère représenté par la partie de segmentation et une deuxième pluralité de probabilités associées aux hypothèses, et (C) des troisièmes moyens de code de programme lisible par ordinateur pour prendre une décision contextuelle pour l’identification des caractères du au moins premier type de caractères sur la base des hypothèses de la première classification de caractères avec leurs probabilités correspondantes et des hypothèses de la deuxième classification de caractères avec leurs probabilités pour toutes les parties de segmentation, Un tel produit informatique permet d’appliquer l’invention de manière très efficiente en vue de fournir une identification dans un code lisible par machine des caractères représentés par l'image de chaîne de caractères.
Selon un septième aspect, l’invention fournit un procédé pour identifier des caractères dans une image de chaîne de caractères, le procédé comprenant: (i) l'application d’un premier moteur de ROC pour fournir une identification de caractères cfau moins un premier type de caractères et de zones d'au moins un deuxième type de caractères dans limage de chaîne de caractères, (H) l'application sur les zones du au moins deuxième type de caractères d'un deuxième moteur de ROC pour fournir une identification de caractères d’un deuxième type de caractères, et (lii) la combinaison des caractères identifiés par le premier moteur de ROC et par le deuxième moteur de ROC pour obtenir l’identification des caractères de l’image de chaîne de caractères.
Dans un tel procédé, les caractères du premier type sont directement analysés par le premier moteur de ROC, leur traitement est rapide et exact. Un deuxième moteur de ROC est utilisé uniquement sur des zones où un type de caractères autre que le premier type de caractères a été détecté pour augmenter l'exactitude d’identification des caractères du deuxième type de caractères. Le fait que le deuxième moteur de ROC n’est utilisé que sur des zones où un type de caractères autre que le premier type de caractères a été détecté fait que le deuxième moteur de ROC n'est utilisé que quand c’est nécessaire. Par exemple, le deuxième moteur de ROC n'est pas utilisé du tout dans un texte comprenant uniquement des caractères du premier type, mais si un texte contient également le deuxième type de caractères, l’exactitude de leur identification est élevée.
Dans un mode de réalisation selon l'invention, le premier moteur de ROC comprend au moins un de ce qui suit: (a) utilisation d’une base de données de caractères comprenant des caractères du premier type de caractères; (b) segmentation conçue pour le premier type de caractères; (c) classification de caractères conçue pour le premier type de caractères; et (d) décision contextuelle conçue pour le premier type de caractères.
Dans un mode de réalisation selon l'invention, le deuxième moteur de ROC comprend au moins un de ce qui suit; (a) utilisation d’une base de données de caractères comprenant des caractères du deuxième type de caractères; (b) segmentation conçue pour le deuxième type de caractères; (c) classification de caractères conçue pour le deuxième type de caractères; et (d) décision contextuelle conçue pour le deuxième type de caractères.
Plusieurs parties d'un moteur de ROC peuvent être spécialement conçues pour un type donné de caractères. Par exemple, une segmentation utilisant des atomes, où les parties de segmentation comprennent entre un et cinq atomes, peut être spécialement appropriée pour les caractères asiatiques, tandis qu'une segmentation basée sur la détection de coupures inter-caractères peut être spécialement appropriée pour les caractères latins. Les classifications de caractères utilisées pour les caractères latins et asiatiques peuvent être différentes parce qu'elles calculent les caractéristiques de façon différente, Les décisions contextuelles sont également différentes. Les modules linguistiques latins utilisent en particulier un dictionnaire de langue, tandis que les modèles linguistiques asiatiques utilisent en particulier des »grammes de caractères. Somme toute, il existe de nombreuses façons de réaliser spécifiquement une ROC pour un type donné de caractères.
Selon un huitième aspect, l'invention fournit un produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères, la logique de commande comprenant: (i) des premiers moyens de code de programme lisible par ordinateur pour appliquer un premier moteur de ROC pour fournir une Identification de caractères d'au moins un premier type de caractères et de zones d'au moins un deuxième type de caractères dans l'image de chaîne de caractères, (ii) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer sur les zones d'au moins un deuxième type de caractères un deuxième moteur de ROC pour fournir une identification de caractères d'un deuxième type de caractères, et (iii) des troisièmes moyens de code de programme lisible par ordinateur pour combineries caractères identifiés par le premier moteur de ROC et par le deuxième moteur de ROC pour obtenir l'identification des caractères de l'image de chaîne de caractères.
Un tel produit informatique permet d'appliquer l'invention de manière très efficiente en vue de fournir une identification dans un code lisible par machine des caractères représentés par l'image de chaîne de caractères.
Brève description des dessins
Pour une meilleure compréhension de la présente invention, il sera maintenant fait référence, à titre d'exemple uniquement, aux dessins joints dans lesquels:
La figure 1 montre un organigramme d'un procédé de ROC selon d'état de la technique.
La figure 2 montre un organigramme d'un moteur de ROC selon l'état de la technique.
La figure 3 montre un organigramme cfune étape de combinaison combinant segmentation et classification de caractères individuels selon un mode de réaiisation de l'invention.
La figure 4 illustre la ressemblance entre certains caractères asiatiques et latins, la ressemblance étant utilisée dans un mode de réalisation de la présente invention.
La figure 5 illustre une segmentatie»! et classification de caractères individuels combinées selon un mode de réalisation de la présente invention.
La figure 6 montre un organigramme d’un procédé de ROC selon un mode de réalisation de l’invention.
Description de l'invention
La présente invention sera décrite en rapport avec des modes de réalisation particuliers et en référence à certains dessins mais l'invention n'y est toutefois pas limitée. Les dessins décrits ne sont que schématiques et sont non limitatifs. Dans les dessins, la taille de certains des éléments peut être exagérée et non dessinée à l'échelle à des fins illustratives.
En outre, les termes premier, deuxième, troisième et similaire dans la description et dans les revendications sont utilisés pour faire la distinction entre éléments similaires et pas nécessairement pour décrire un ordre séquentiel ou chronologique. Les termes sont interchangeables dans les circonstances appropriées et les modes de réalisation de l’invention peuvent fonctionner dans d'autres séquences que celles décrites ou illustrées dans le présent document.
De plus, les divers modes de réalisation, bien que qualifiés de "préférés", doivent être interprétés comme des façons exemplaires dont l'invention peut être mise en œuvre plutôt que comme limitant la portée de l’invention.
Le terme “comprenant", utilisé dans les revendications, ne doit pas être interprété comme étant limité aux moyens ou étapes énumérés ci-dessous; il n'exclut pas d’autres éléments ou étapes. Il doit être interprété comme spécifiant la présence des éléments, nombres entiers, étapes ou composants cités auxquels U est fait référence mais n’exclut pas la présence ou l’ajout d’un ou plusieurs autres éléments, nombres entiers, étapes ou composants ou groupes de ceux-ci. Donc, la portée de l'expression "un dispositif comprenant A et B" ne devrait pas être limitée à des dispositifs comprenant uniquement les composants A et B, au contraire, en ce qui concerne la présente invention, les seuls composants énumérés du dispositif sont A et B, et la revendication devrait également être interprétée comme incluant des équivalents de ces composants.
Le terme caractère, tel qu’utilisé dans le présent document, se réfère à un symbole ou signe utilisé dans l'écriture comme un graphème, un logogramme, une lettre alphabétique, une ligature typographique, un caractère numérique ou un signe de ponctuation.
Les termes "conçu pour", quand on parle par exemple d’un moteur de ROC ou d’une classification conçus pour un type de caractère, se réfèrent au fait que ie moteur de ROC ou la classification a été optimisé en vue d’être particulièrement rapide et exact en termes d’identification ou de classification de ce type de caractère, qui peut être par exemple le type asiatique de caractère, le type latin de caractère, le type arabe de caractère,... Un moteur de ROC ou une classification conçu pour un type de caractères utilise une base de données comprenant des modèles de caractères de ce type de caractères. Tous les types de caractères peuvent comprendre des signes de ponctuation, des caractères numériques et des symboles. Un moteur de ROC ou une classification conçu pour un type donné de caractères peut être capable d'identifier ou de classifier d’autres types de caractères mais un moteur de ROC conçu pour les caractères asiatiques est moins précis pour os qui est de reconnaître les caractères latins que ne le sera un moteur de ROC conçu pour les caractères latins.
Les termes identification et ID tels qu’utiiisés dans le présent document se réfèrent à une reconnaissance d’un ou plusieurs caractères en code lisible par machine pour obtenir un chaîne de caractères consultable. L'identification ou ID est un résultat d’un moteur de ROC.
Le terme classification tel qu’utilisé dans le présent document se réfère à la génération d'une pluralité d'hypothèses sur l'identification d'un ou plusieurs caractères. Chaque hypothèse d'identification, ou hypothèse d'iD, est associée à une probabilité que l'hypothèse d’identification est correcte, c’est-à-dire que limage ou la partie de segmentation qui est soumise à la classification représente effectivement le caractère ou groupe de caractères de Phypothèse d'identification. La classification peut être effectuée par un programme dédié appelé un ciassifieur. Une classification conçue pour classifier des caractères un par un ou des ligatures est appelée dasstfication de caractères individuels. Le terme "classifier" te! qu'utilisé dans le présent document signifie "réaliser une classification". Mène quand l'invention est décrite avec des modes de réalisation comprenant une classification de caractères individuels, il doit être entendu que la portée de la présente invention s'étend à d'autres types de classification, y compris ia classification autre que de caractères individuels.
Les termes hypothèses, hypothèses d’ID et hypothèses dldentification tels qu’utilisés dans le présent document se réfèrent à des solutions alternatives pour l’identification d’un caractère ou groupe de caractères. Une ou plusieurs hypothèses sont le résultat de la classification et une décision doit encore être prise concernant le résultat du moteur de ROC. Une hypothèse correspond â un modèle prédéfini d'un caractère ou groupe de caractères. Les hypothèses peuvent aussi être appelées solutions possibles ou candidats.
Les termes atome et blob tels qu'utilisés dans le présent document se réfèrent à la plus grande partie d’une image qui est constituée de pixels d'une couleur donnée qui se touchent. Par exemple, dans une image en noir et blanc, un atome ou blob est un ensemble de pixels noirs connectés les uns aux autres par des pixels noirs.
Le ternie décision contextuelle tel qu’utilisé dans le présent document se réfère à une décision basée sur le contexte d'un caractère pour décider de l'identification dudit caractère. Par exemple, un mot entier peut être pris en considération pour décider de l'identification de chaque lettre du mot.
La figure 1 montre un organigramme d'un procédé de ROC 100 selon d'état de la technique. Une image 101 d'une chaîne de caractères est prise comme entrée par un moteur de ROC 102. Le moteur de ROC 102 traite l’information contenue dans l'image et fournit une ID 103 des caractères de la chaîne de caractères de l'image 101 comme résultat.
La figure 2 montre un organigramme d'un moteur de ROC 102 selon l'état de la technique. Le moteur de ROC 102 comprend une étape 201 qui combine segmentation 202 et classification de caractères individuels 203.
La segmentation 202 est une division de l'image de la chaîne de caractères 101 en parties de segmentation qui correspondent éventuellement à des caractères. Une partie de segmentation est une partie de l'image de la chaîne de caractères 101 qui est soumise à des processus pour déterminer si elle représente un caractère, un groupe de caractère, une forme,... Des nombreuses divisions alternatives de limage de la chaîne de caractères sont typiquement prises en considération pendant fétape 201 combinant segmentation 202 et classification de caractères individuels 203. Si l’image de la chaîne de caractères 101 est une image d'une ligne de caractères, une partie de segmentation est une partie de cette ligne de caractères, étant donné qu'une partie de segmentation est une partie d'une image, une partie de segmentation est elle-même une image.
La classification de caractères individuels 203 génère, pour une partie de segmentation, une ou plusieurs hypothèses avec leurs probabilités associées. La classification de caractères individuels 203 calcule typiquement, parmi une série de modèles de caractères, les modèles qui ont les plus hautes probabilités de correspondre au caractère représenté sur la partie de segmentation.
La classification de caractères individuels 203 génère, en association avec chaque hypothèse d'ID pour une partie de segmentation donnée, une probabilité que cette hypothèse d'ID est correcte, c'est-à-dire une probabilité que la partie de segmentation représente effectivement ce caractère. La probabilité peut être, par exemple, un pourcentage ou un poids de vraisemblance.
Une classification de caractères plus générale que la "classification de caractères individuels" peut être utilisée dans le moteur de ROC 102. Elle peut identifier des groupes de caractères (p. ex. ligatures), formes, logos, dessins... L'étape de combinaison 201 utilise en alternance la segmentation 202 et la classification de caractères individuels 203 pour générer une série d'hypothèses 204A sur l'ID des caractères de l’image de la chaîne de caractères 101 et de probabilités associées 2048.
La série d'hypothèses 204A sur i’iD des caractères de l'image de la chaîne de caractères 101, associées à leurs probabilités 204B, est alors analysée pendant une étape de décision contextuelle 205 qui détermine, parmi les hypothèses sur l'ID des caractères 204A, les hypothèses avec la probabilité globale la plus élevée pour l'image complète de la chaîne de caractères 101. L'hypothèse avec la probabilité globale la plus élevée est identifiée comme l'ID des caractères 103 et est le résultat du moteur de ROC 102.
La figure 3 montre un organigramme d'une étape 390 combinant segmentation et classification de caractères individuels selon un mode de réalisation de l'invention. Une segmentation 350 génère une partie de segmentation 351. Dans un mode de réalisation de la présente invention, la segmentation 350 est basée sur la détection de coupures intercaractères ou de coupures de mots. Dans un mode de réalisation supplémentaire de la présente invention, la segmentation 350 génère des atomes, qui sont un ensemble de pixels d'une couleur donnée, et une partie de segmentation comprend de un à cinq atomes. Dans un encore autre mode de réalisation de la présente invention, la segmentation 350 comprend les étapes consistant à: • déterminer une première coordonnée de point de départ d'un pixel contrastant avec l'arrière-plan, • générer une liste de largeurs de caractère potentielles dépendant d'une largeur de caractère maximale et de caractéristiques de la partie de l'image de chaîne de caractères correspondant à la largeur de caractère maximale, et • déterminer une deuxième partie de l'image de chaîne de caractères correspondant à la première coordonnée de point de départ et à la première largeur sur la liste des largeurs de caractères potentielles.
La partie de segmentation 351 est alors classifiée par une étape de classification de caractères individuels 300 selon un mode de réalisation de llnvention.
Dans la classification de caractères individuels 300, la partie de segmentation 351 est tout d'abord analysée par une classification de caractères individuels 301 conçue pour les caractères asiatiques pour générer une ou plusieurs hypothèses 302A sur ΓΙΟ du caractère représenté par la partie de segmentation 351 et des probabilités associées 302B. Dans un mode de réalisation de l'invention, la probabilité est un nombre dans l'intervalle [0,1] où 1 indique une excellente correspondance entre une hypothèse d'ID et la partie de segmentation 351 et 0 une très mauvaise correspondance entre une hypothèse d'ID et la partie de segmentation 351. La seule ou les différentes hypothèses 302A sur l'ID du caractère et les probabilités associées 302B sont un résultat de l'étape de combinaison 390.
Dans un mode de réalisation de l'invention, la classification de caractères individuels conçue pour les caractères asiatiques 301 ne comprend pas la possibilité de reconnaître les caractères latins, et toutes les hypothèses 302A concernent des caractères asiatiques. Dans un mode de réalisation de l'invention, la classification de caractères individuels conçue pour les caractères asiatiques 301 comprend la possibilité de reconnaître des caractères latins, et les hypothèses 302A concernent des caractères asiatiques ou latins.
Dans un mode de réalisation de l'invention, la classification de caractères individuels conçue pour les caractères asiatiques 301 comprend une étape d'extraction de caractéristiques qui génère un vecteur de caractéristiques. L'étape d’extraction de caractéristiques fait appel à un filtre de Gabor qui est une onde sinusoïdale multipliée par une fonction gaussienne. Le vecteur de caractéristiques est utilisé pour générer les probabilités de modèles de caractères d’une liste prédéterminée.
Une étape de vérification 303 contrôle si la seule ou les différentes hypothèses 302A sur l'ID du caractère vérifie au moins une condition dans une liste d'une ou plusieurs conditions.
Dans un mode de réalisation de la présente invention, une des conditions de la liste est que toutes les probabilités 302B des hypothèses 302A soient en dessous d'un seuil donné. Un seuil élevé signifie que la condition dans l'étape de vérification 303 est facilement satisfaite et que de nombreuses parties de segmentation 351 seront analysées par la deuxième classification de caractères individuels 305 conçue pour les caractères latins comme cela sera décrit plus loin, ce qui augmente l'exactitude du procédé de ROC global mais diminue sa vitesse. Un seuil bas signifie que la condition dans l'étape de vérification 303 n'est pas facilement satisfaite et que peu de parties de segmentation 351 seront analysées par la classification de caractères individuels 305, ce qui augmente la vitesse du procédé mais diminue son exactitude. Dans un mode de réalisation de l’invention, le seuil est à 0,7, ce qui est un compromis entre vitesse et exactitude.
Dans un mode de réalisation de la présente invention, une des conditions de la liste à l'étape 303 est qu'au moins une hypothèse parmi la seule ou les différentes hypothèses 302A concerne un caractère asiatique connu pour ressembler à un caractère latin. La figure 4 illustre la ressemblance entre certains caractères asiatiques et latins. Le caractère asiatique X 501 (Idéogramme unifié CJC 5DE5) ressemble au I 502 (la lettre majuscule latine i). La partie droite du caractère asiatique 503 (Idéogramme unifié CJC 5317) peut être confondue avec un t 504. Le caractère asiatique B 505 (idéogramme unifié CJC 52F2) ressemble à un 2 (chiffre deux) 506. Le caractère asiatique 507 (idéogramme unifié CJC 8BB8) peut être confondu avec les lettres i et F 508. Le caractère asiatique û| 509 (Syllabe Hangul i) peut être confondu avec les lettres o et 1510 (O et L en minuscules). Par exemple, la classification de caractères individuels 301 conçue pour les caractères asiatiques peut fournir, pour une partie de segmentation donnée 351, le caractère asiatique E 505 comme hypothèse avec une probabilité élevée, même si la partie de segmentation représente en fait le caractère 2. Il est intéressant pour l’exactitude qu'une telle partie de segmentation soit analysée par une classification de caractères individuels pour les caractères latins.
Dans un mode de réalisation de la présente invention, où la classification de caractères individuels 301 conçue pour les caractères asiatiques comprend la possibilité de reconnaître des caractères latins, une des conditions de la liste est qu’une hypothèse parmi les hypothèses 302A concerne un caractère latin.
Dans un mode de réalisation de la présente invention, où la classification de caractères individuels 301 conçue pour les caractères asiatiques comprend la possibilité de reconnaître des caractères latins, une des conditions de la liste est qu'une hypothèse de probabilité égale ou supérieure à un seuil parmi les hypothèses 302A concerne un caractère latin. Dans un autre mode de réalisation de l’invention, le seuil est égal à 50%.
Dans un mode de réalisation de la présente invention, où la classification de caractères individuels 301 conçue pour les caractères asiatiques comprend la possibilité de reconnaître des caractères latins, une des conditions de la liste est qu’une hypothèse de la plus haute probabilité parmi les hypothèses 302A concerne un caractère latin.
Si au moins une des conditions de la liste est satisfaite à l’étape de vérification 303, la classification de caractères individuels 300 continue avec une classification de caractères individuels 305 conçue pour les caractères latins.
Le résultat de la classification de caractères individuels 305 conçue pour les caractères latins est une ou plusieurs hypothèses 306A sur une 10 latine du caractère sur la partie de segmentation 351, associées à des poids 306B. Dans un mode de réalisation de l'invention, les poids 306B sont des nombres dans (Intervalle [0,255] où le nombre 0 indique une excellente correspondance entre une hypothèse d*ID et la partie de segmentation 351 et le nombre 255 une très mauvaise correspondance entre une hypothèse dID et la partie de segmentation 351.
Dans un mode de réalisation de ta présente invention, une étape de mise à l’échelle des poids 307 est nécessaire pour faire correspondre l’échelle des poids latins WL<uln 306B des hypothèses d’ID latine 306A à l’échelle des probabilités asiatiques 302B des hypothèses tflD asiatique 3Ö2A. Une probabilité latine transformée Pte««xreni/ormi<t 3088 est calculée par la formule p__î_ •Latin.transformtd - j + exp(02 * _ 2>6) L'étape de mise à l’échelle des poids 307 a pour résultat les hypothèses 308A sur f ID latine du caractère sur la partie de segmentation, lesquelles sont les mêmes que les hypothèses d’ID latine 306A, mais associées à présent aux probabilités latines transformées 308B qui peuvent être comparées directement aux probabilités 302B que les hypothèses 302A sur HD asiatique du caractère sont correctes. La seule ou les différentes hypothèses 308A sur ΓΙΟ latine du caractère sur la partie de segmentation avec leurs probabilités associées 308B sont un résultat de l'étape de combinaison 390. L’emplacement 312 de la partie de segmentation 351 qui a été soumise à la classification de caractères individuels conçue pour les caractères latins 305 est un autre résultat de l’étape de combinaison 390. L'étape de combinaison 390 utilise alors la partie de segmentation 350 pour générer une partie de segmentation suivante 351.
Dans un mode de réalisation de la présente invention, une fois l'étape de combinaison 390 effectuée sur une image complète de la chaîne de caractères pour générer une ou plusieurs hypothèses 302A sur ND asiatique avec leurs probabilités associées 302B et une ou plusieurs hypothèses 308A sur ND latine avec leurs probabilités associées 308B sur toutes les parties de segmentation, une étape de décision contextuelle est effectuée en vue de déterminer la combinaison des hypothèses 302A et 308A qui fournit l'identification de la chaîne de caractères.
Dans un mode de réalisation de la présente invention, au moins une des classifications de caractères individuels 301 et 305, est effectuée par un classifieur de caractères individuels.
Dans un mode de réalisation de la présente invention, les classifications de caractères individuels 301 et 305 sont étendues pour classifier des groupes de caractères. Dans un mode de réalisation de la présente Invention, les classifications de caractères individuels 301 et 305 sont étendues pour classifier des ligatures. Même si la figure 3 décrit un mode de réalisation de l'invention où la première classification 301 est conçue pour la reconnaissance de caractères asiatiques et la deuxième classification 305 est conçue pour la reconnaissance de caractères latins, l'invention peut être utilisée pour d'autos types de caractères tels que des caractères arabes, des caractères cyrilliques, des caractères grecs, des caractères hébreux, des hiéroglyphes, etc..,
La figure 5 illustre une segmentation et une classification de caractères individuels combinées selon un mode de réalisation de la présente invention.
La segmentation divise premièrement l'image de ia chaîne de caractères 101 en quatre parties de segmentation 602,603,604 et 605 pour générer une première pluralité 601 de parties de segmentation. Puis la classification de caractères Individuels analyse la première partie de segmentation 602 et génère n602 hypothèses Ceœ-i à CW««». chaque hypothèse Coe-i ayant une probabilité associée P«** Puis la classification de caractères individuels analyse la première deuxième de segmentation 603 et génère n603 hypothèses (Wi à chaque hypothèse CW) ayant une probabilité associée Peos-s. La classification de caractères individuels est répétée quatre fois, étant donné que la première pluralité 601 de parties de segmentation contient quatre parties de segmentation 602, 603,604 et 605.
Puis la segmentation divise l'image de la chaîne de caractères 101 en six parties de segmentation 607, 608, 609, 610, 611 et 612 pour générer une deuxième pluralité 602 de parties de segmentation. Puis ia classification de caractères individuels analyse la première partie de segmentation 607 et génère n607 hypothèses CWi à CW*»?» chaque hypothèse CW ayant une probabilité associée P^. Puis ia classification de caractères individuels analyse ia deuxième partie de segmentation 608 et génère n608 hypothèses CWi à CWneoe, chaque hypothèse CW ayant une probabilité associée P«xw· La classification de caractères individuels est répétée six fois, étant donné que la deuxième pluralité 606 de parties de
Segmentation contient six parties de segmentation 607, 606, 609, 610,611 ét512.
La segmentation et ia série de classifications de caractères individuels sont répétées un nombre de fois pour fournir des hypothèses sur l'ID des caractères.
Dans un mode de réalisation de la présente invention, le processus illustré sur la figure 5 est utilisé en combinaison avec l’organigramme de la figure 3.
La figure 6 montre un organigramme d'un procédé de ROC 400 selon un mode de réalisation de l'invention. Une image 401 d'une chaîne de caractères est prise comme entrée par un moteur de ROC 402. Dans un mode de réalisation de l'invention, Pimage 401 d'une chaîne de caractères est une ligne horizontale ou une partie d'une ligne horizontale. Dans un autre mode de réalisation de la présente invention, limage 401 d’une chaîne de caractères est une ligne verticale ou une partie d'une ligne verticale.
Le premier moteur de ROC 402 est conçu pour un premier type de caractères. Dans un mode de réalisation de l'invention, le premier moteur de ROC 402 est conçu pour les caractères asiatiques. Dans un mode de réalisation de l'invention, le premier moteur de ROC 402 est conçu pour les caractères asiatiques et comprend ta possibilité de reconnaître les caractères latins. Dans un mode de réalisation de l’invention, le premier moteur de ROC 402 utilise une étape de combinaison 390 combinant segmentation et classification de caractères individuels utilisant deux dassifieurs de caractères individuels comme illustré sur la figure 3. Dans un mode de réalisation de l'invention, ie premier moteur de ROC 402 utilise une classification de caractères individuels 300 comme illustré sur la figure 3, Le premier moteur de ROC 402 génère une ID 403 pour les caractères du premier type et détermine des zones 404 de caractères d'un autre type dans l'image 401 de la chaîne de caractères,
Dans un mode de réalisation de l'invention, les zones 404 de caractères d'un autre type dans l'image 401 sont des zones où le premier moteur de ROC 402 n'a pas pu identifier des caractères du premier type avec un bon niveau de confiance, le niveau de confiance étant jugé selon un critère prédéfini.
Dans un ifiode de réalisation supplémentaire de l'invention, les zones 404 de caractères d'un autre type dans l'image 401 sont des ensembles de parties de segmentation contiguës. Dans un autre mode de réalisation de l'Invention, ies zones 404 de caractères d'un autre type dans l’image 401 sont des ensembles de parties de segmentation non contiguës.
Dans un mode de réalisation de l'invention, ies zones 404 de caractères d'un autre type dans limage 401 contiennent au moins deux caractères. Dans un mode de réalisation de l'invention, les zones 404 de caractères d'un autre type dans l'image 401 contiennent au moins deux caractères contigus parce que l'étape de décision contextuelle du deuxième moteur de ROC 405 est plus exacte quand elle se fait avec au moins deux caractères.
Dans un mode de réalisation de l'invention, une zone 404 de caractères d'un autre type dans l'image 401 n'est pas plus longue qu'une ligne de texte. Dans un mode de réalisation de l'invention, une zone 404 de caractères d'un autre type dans l'image 401 n'est pas plus longue qu'une colonne de texte.
Dans un mode de réalisation de la présente Invention, ies zones 404 de caractères d'un autre type dans l'image 401 sont sélectionnées aussi grandes que possible parce que le deuxième moteur de ROC 405 est plus précis quand il travaille avec de grandes zones comprenant de nombreux caractères qu'avec des petites zones ne comprenant qu'un ou quelques caractères.
Dans un mode de réalisation de l'invention, les zones 404 de caractères d'un autre type dans limage 401 sont des ensembles de parties de segmentation, au moins une partie de segmentation satisfaisant au moins à une des conditions suivantes qui sont contrôlées par le premier moteur de ROC 402: • un caractère d’un type de caractères autre que le premier type de caractères a été détecté sur la partie de segmentation par le premier moteur de ROC 402; • la probabilité d'identification sur la partie de segmentation par le premier moteur de ROC 402 est en dessous d'un seuil; • l'identification sur la partie de segmentation correspond à un caractère du premier type de caractères connu pour ressembler à un caractère d'un autre type de caractères; et • un caractère du deuxième type de caractères a été identifié sur ladite partie de segmentation par le premier moteur de ROC,
Les zones 404 d'un autre type de caractères sont alors traitées par le deuxième moteur de ROC 405. Dans un mode de réalisation de l’invention, le deuxième moteur de ROC 405 est conçu pour un deuxième type de caractères. Dans un mode de réalisation de l'invention, le deuxième moteur de ROC 405 est conçu pour les caractères latins. Dans un mode de réalisation de l'Invention, le deuxième moteur de ROC 405 détecte la langue des caractères latins. Dans un mode de réalisation de l'Invention, le deuxième moteur de ROC 405 utilise l'anglais comme supposition par défaut pour la langue des caractères latins. Dans un mode de réalisation de l'invention, le deuxième moteur de ROC 405 utilise une langue prédéterminée pour la langue des caractères latins. Dans un mode de réalisation de l'invention, le deuxième moteur de ROC 405 est une ROC multilingue. Dans un mode de réalisation de l'invention, le deuxième moteur de ROC 405 utilise une étape de combinaison 390 combinant segmentation et classification de caractères individuels comme illustré sur la figure 3. Dans un mode de réalisation de l'invention, le deuxième moteur de ROC 405 utilise une classification de caractères individuels 300 comme illustré sur la figure 3. Dans un mode de réalisation de l'invention, le deuxième moteur de ROC 405 utilise seulement un caractère individuel.
Le deuxième moteur de ROC 405 génère une ID 406 pour les caractères du deuxième type. Le résultat 407 du procédé de ROC 400 est une combinaison de PID des caractères du premier type 403 et de i'ID des caractères du deuxième type 406 dans un ordre correspondant à la position des caractères dans l’image de chaîne de caractères 40t.
Dans un mode de réalisation de l'invention, au moins un du premier moteur de ROC 402 et du deuxième moteur de ROC 405 utilise un prétraitement de l'image de chaîne de caractères 401 pour réaliser une amélioration de l'image. Dans un mode de réalisation de l’invention, au moins un du premier moteur de ROC 402 et du deuxième moteur de ROC 405 utilise une binarisatîon de l'image de chaîne de caractères 401 pour séparer l’avant-pian et Panière-plan de l'image de chaîne de caractères 401.
Dans un mode de réalisation de la présente invention, des décisions contextuelles sur des graphes de décision sont utilisées dans au moins un du premier moteur de ROC 402 et du deuxième moteur de ROC 405. Le résultat de l’étape de combinaison combinant segmentation et classification de caractères individuels du moteur de ROC pris en considération, qui est une série d’hypothèses sur I'ID des caractères et de probabilités associées à ces hypothèses, est utilisé pour générer un premier graphe de décision. Dans un graphe de décision, un arc est créé pour chaque hypothèse, associé à sa partie de segmentation et sa probabilité. Un arc pour une partie de segmentation commence â un noeud où la partie de segmentation se termine juste avant ladite partie de segmentation sur l'image de chaîne de caractères 401 et se termine à un nœud où toutes les parties de segmentation commencent Juste après ladite partie de segmentation sur l'image de chaîne de caractères 401.
Plusieurs modèles de décision sont alors utilisés pour améliorer !1 exactitude d'identification. Les modèles de décision analysent les hypothèses émises par l'étape combinant segmentation et classification de caractères individuels, et leur allouent des probabilités d'identification additionnelles qui sont ajoutées dans le graphe de décision. L'iD des caractères de l’image de la chaîne de caractères prise comme résultat du moteur de ROC pris en considération est déterminée en trouvant le chemin dans le graphe de décision qui maximise la probabilité d'identification pour ia chaîne complète de caractères.
Un premier type de modèle de décision est un modèle linguistique. Si le mot "omate" est présent dans l’image de chaîne de caractères à identifier, une étape de combinaison combinant segmentation et classification de caractères individuels peut trouver, par exemple, le mot "omate" et le mot "omate* comme hypothèses avec des probabilités similaires parce que tes lettres rn prises ensemble ressemblent à la lettre m. Un modèle linguistique utilisant un dictionnaire est capable de détecter que le mot "omate" n'existe pas, tandis que le mot "omate" existe.
Dans un mode de réalisation de la présente invention, te modèle linguistique utilise un modèle n-grammes. Si le mot TRESMEUR" est présent dans l’image de chaîne de caractères 401, une étape de combinaison combinant segmentation et classification de caractères individuels peut trouver, par exemple, le mot "TRE5MEUR" et le mot "TRESMEUR* comme hypothèses avec des probabilités similaires parce que ia lettre ’S' peut ressembler à la lettre ’5‘ dans un texte imprimé. Un modèle linguistique utilisant un modèle bigramme (n-gramme avec n«2) préférerait "TRESMEUR* si "ES" et "SM* ont de meilleures probabilités d’occurrence que "E5* et *5M*.
Un autre type de modèle utilisé dans un mode de réalisation de la présente invention est un modèle typographique. Si le mot "Loguivy" est présent dans l’Image de chaîne de caractères 401, une étape de combinaison combinant segmentation et classification de caractères individuels peut trouver, par exemple, le mot "Loguivy" et te mot Toguivv" comme hypothèses avec des probabilités similaires parce que la lettre y peut ressembler à la lettre V dans un texte imprimé. Un modèle typographique utilisant des métriques de police préférerait "Loguivy" parce que la position du bas du caractère final correspond plus vraisemblablement à la position du bas d’un y (dans son modèle) qu'à celle d'un V.
Pans un mode de réalisation de la présente invention, le modèle typographique considère la position du caractère dans l'image pour contrôler si les tailles et positions sont attendues ou non.
Ces exemples de modèles linguistiques et typographiques montrent clairement pourquoi il est avantageux que les zones 404 de caractères d'un autre type dans l’image 401 soient aussi grandes que possible et contiennent au moins deux caractères contigus, étant donné que les modèles contextuels sont plus précis quand ils travaillent sur plusieurs caractères.
Dans un mode de réalisation de ia présente invention, un moteur de ROC conçu pour les caractères asiatiques considère une ligne de caractères dans limage de chaîne de caractères pour son entrée et un graphe de décision est généré pour chaque ligne de caractères. Dans un mode de réalisation de la présente invention, un moteur de ROC conçu pour les caractères latins considère un mot comme limage de chaîne de caractères pour son entrée et un graphe de décision est généré pour chaque moi
Dans un mode de réalisation de ia présente invention, un deuxième moteur de ROC détermine des zones d’un troisième type de caractères dans l’image 401 de chaîne de caractères et un troisième moteur de ROC, conçu poix· le troisième type de caractères, traite les zones du troisième type de caractères. Dans un mode de réalisation supplémentaire de l’invention, plusieurs types de caractères sont pris en considération de manière similaire, avec des moteurs de ROC conçus pour différents types de caractères travaillant l’un après l'autre en cascade ou en parallèle les uns aux autres, et en fonction de la conformité à des conditions données, le procédé de ROC global utilisera plus ou moins de moteurs de ROC pour identifier des caractères.
Un procédé de ROC selon un mode de réalisation de la présente invention peut être décrit comme suit. L’image d'une ligne de caractères, dont on s'attend à qulis soient principalement des caractères asiatiques, est analysée par un premier moteur de ROC. La segmentation du premier moteur de ROC est une segmentation conçue pour les caractères asiatiques. Elle divise limage d’une ligne de caractères en atomes et puis génère des parties de segmentation qui comprennent entre un et cinq atomes. Une partie de segmentation est tout d'abord analysée par une classification de caractères individuels conçue pour les caractères asiatiques mais capable de classifier les caractères latins, pour générer une ou différentes hypothèses asiatiques sur ladite partie de segmentation, avec leurs probabilités associées. Les probabilités sont des nombres dans l’intervalle
La une ou les différentes hypothèses asiatiques sont vérifiées selon trois conditions. Si aucune des conditions n’est satisfaite, la une ou les différentes hypothèses asiatiques, avec leurs probabilités associées, sont prises comme l'unique résultat de la classification de caractères individuels, les conditions étant: • Toutes les probabilités associées aux hypothèses asiatiques sont en dessous de 0,7. • Une des hypothèses asiatiques est en fait un caractère latin avec une probabilité d'au moins 0,5. • Une des hypothèses asiatiques est un caractère asiatique qui est connu pour ressembler à un caractère latin.
Si au moins une de ces conditions est satisfaite, la partie de segmentation est alors analysée par une classification de caractères individuels conçue pour les caractères latins, pour générer une ou différentes hypothèses latines sur ladite partie de segmentation, avec leurs poids associés. Les poids, qui sont des nombres dans l’intervalle [0,255] sont transformés selon la formule
pour générer des probabilités qui peuvent être directement comparées aux probabilités des hypothèses asiatiques.
Les résultats de la classification de caractères individuels sont alors (1) une ou différentes hypothèses asiatiques, avec leurs probabilités associées; (2) une ou différentes hypothèses latines, avec leurs probabilités associées; et (3) les emplacements de la une ou des différentes hypothèses latines.
Puis le processus est répété sur la partie de segmentation suivante.
Une fois que toutes les parties de segmentation de l'image de la chaîne de caractères sont passées par le classifieur de caractères individuels asiatiques, et éventuellement par le classifieur de caractères individuels latins, toutes les hypothèses asiatiques et leurs probabilités et les hypothèses latines et leurs probabilités sont utilisées pour générer un premier graphe de décision. Une décision contextuelle congre pour les caractères asiatiques, mais capable de gérer les caractères iatins, est alors appliquée pour générer un deuxième graphe de décision. Le chemin le long du deuxième graphe de décision qui maximise la probabilité d'identitication de la chaîne complète de caractères est pris comme résultat du premier moteur de ROC. Ce chemin contient des caractères asiatiques et peut aussi contenir des caractères latins.
Si ce chemin contient des caractères iatins, c'est-à-dire si des caractères latins sont identifiés par le premier moteur de ROC, les emplacements de zones de ces caractères latins sont transmis à un deuxième moteur de ROC qui est conçu pour les caractères latins. En effet, étant donné que ces zones contiennent des caractères latins, il est intéressant, afin d'améliorer l'exactitude, d’y appliquer un moteur de ROC complet conçu pour les caractères latins, comprenant une décision contextuelle conçue pour les caractères latins, ce qui n'étalt pas fait jusqu'à présent. Une zone est définie comme la zone la plus grande de l'image de ia ligne de caractères qui ne contient que des caractères iatins. Une zone contient au moins deux caractères, il est préférable que ces zones soient aussi grandes que possible parce que plus les caractères analysés en une fois par les procédés de décision contextuelle sont nombreux, plus ces procédés sont exacts. Le deuxième moteur de ROC identifie alors les caractères latins sur ces zones.
Les caractères asiatiques identifiés par le premier moteur de ROC et les caractères latins Identifiés par le deuxième moteur de ROC sont alors ordonnés d’après leur emplacement sur limage de ta chaîne de caractères pour être l'identification des caractères de limage de la chaîne de caractères.

Claims (28)

  1. REVENDICATIONS:
    1. Procédé pour identifier des caractères dans une image de chaîne de caractères 401, le procédé comprenant: (i) l’application d'un premier moteur de ROC 402 pour fournir une identification 403 de caractères d'au moins un premier type de caractères et de zones 404 d'au moins un deuxième type de caractères dans l'image de chaîne de caractères 401, (ii) l'application sur les zones 404 du au moins deuxième type de caractères d'un deuxième moteur de ROC 405 pour fournir une identification 406 de caractères d'un deuxième type de caractères, et (iii) la combinaison des caractères identifiés par le premier moteur de ROC 402 et par le deuxième moteur de ROC 405 pour obtenir l'identification des caractères de l'image de chaîne de caractères 401, dans lequel le premier moteur de ROC 402 comprend une segmentation 350 de l'image de chaîne de caractères 401 en parties de segmentation 351 et comprend, pour chaque partie de segmentation 351, les étapes consistant à (a) appliquer une première classification de caractères 301 pour fournir une première pluralité d'hypothèses 302A sur un au moins un caractère représenté par la partie de segmentation 351 et une première pluralité de probabilités 302B associées aux hypothèses 302A, (b) vérifier 303 si la première pluralité d'hypothèses 302A satisfait à au moins une condition, (c) appliquer, si au moins une condition est satisfaite, une deuxième classification de caractères 305 pour fournir une deuxième pluralité d'hypothèses 308A sur le au moins un caractère représenté par la partie de segmentation 351 et une deuxième pluralité de probabilités 308B associées aux hypothèses 308A.
  2. 2. Procédé selon la revendication 1, dans lequel un premier moteur de ROC 402 utilise une base de données de caractères comprenant des caractères du premier type de caractères.
  3. 3. Procédé selon la revendication 2, dans fequel la première classification de caractères 301 utilise une base de données de caractères comprenant des caractères du premier type de caractères.
  4. 4. Procédé selon la revendication 3, dans lequel la première classification de caractères 301 est capable de détecter des caractères d'au moins un type de caractères autre que le premier type de caractères.
  5. 5. Procédé selon la revendication 4, dans lequel le premier type de caractères est un type asiatique de caractères.
  6. 6. Procédé selon la revendication 4, dans lequel le deuxième moteur de ROC 405 utilise une base de données de caractères comprenant des caractères du deuxième type de caractères.
  7. 7. Procédé selon la revendication 6, dans lequel la deuxième classification de caractères 305 utilise une base de données de caractères comprenant des caractères du deuxième type de caractères.
  8. 8. Procédé selon la revendication 7, dans lequel le deuxième type de caractères est un type latin de caractères.
  9. 9. Procédé selon la revendication 3. le premier type de caractères est le type latin de caractères, le type arabe de caractères, le type hébreux de caractères, le type cyrillique de caractères, le type grec de caractères ou le type hiéroglyphe de caractères.
  10. 10. Procédé selon la revendication 7, dans lequel le deuxième type de caractères est le type asiatique de caractères, le type arabe de caractères, le type hébreu de caractères, le type cyrillique de caractères, le type grec de caractères ou le type hiéroglyphe de caractères.
  11. 11. Procédé selon la revendication 1, dans lequel au moins une de la première classification de caractères 301 et la deuxième classification de caractères 305 est une classification de caractères individuels.
  12. 12. Procédé selon la revendication 1, dans lequel les zones 404 du au moins deuxième type de caractères sont des groupes de parties de segmentation 351 dans lesquels certaines parties de segmentation 351 satisfont au moins â une des conditions suivantes: • toutes les probabilités 302B des hypothèses 302A fournies par la première classification de caractères pour ladite partie de segmentation 351 sont en dessous d‘un seuil donné; • une hypothèse parmi les hypothèses 302A pour ladite première partie de segmentation 351 concerne un caractère du premier type de caractères connu pour ressembler à un caractère du au moins deuxième type de caractères; • une hypothèse parmi les hypothèses 302A pour ladite partie de segmentation 351 concerne un type de caractères autre que le premier type de caractères; et • un caractère du deuxième type de caractères a été identifié sur ladite partie de segmentation par le premier moteur de ROC 402.
  13. 13. Procédé selon la revendication 1, dans lequel une zone 404 du au moins deuxième type de caractères est un groupe de parties de segmentation 351 qui comprend au moins deux caractères.
  14. 14. Procédé selon la revendication 4, dans lequel ladite au moins une condition est une des conditions suivantes • toutes les probabilités 302B des hypothèses 302A sont en dessous d'un seuil donné; • une hypothèse parmi les hypothèses 302A concerne un caractère du premier type de caractères connu pour ressembler à un caractère du au moins deuxième type de caractères; et • une hypothèse avec une probabilité supérieure à un seuil donné parmi les hypothèses 302A concerne un type de caractères autre que le premier type de caractères.
  15. 15. Procédé selon la revendication 1, dans lequel la segmentation 350 de l'image de chaîne de caractères en parties de segmentation 351 comprend les étapes consistant à: • déterminer une première coordonnée de point de départ d'un pixel contrastant avec l'arrière-plan, • générer une liste de largeurs de caractère potentielles dépendant d'une largeur de caractère maximale et de caractéristiques de la partie de l'image de chaîne de caractères correspondant à la largeur de caractère maximale, et • déterminer une deuxième partie de l'image de chaîne de caractères correspondant à la première coordonnée de point de départ et à la première largeur sur la liste des largeurs de caractères potentielles.
  16. 16. Procédé selon la revendication 1, dans lequel • la première pluralité de probabilités 302B correspond à une première échelle de probabilités, • la deuxième pluralité de probabilités 308B correspond à une deuxième échelle de probabilités, et • le procédé comprend une étape 307 consistant à transformer au moins une de la première pluralité de probabilités 302B et la deuxième pluralité de probabilités 308B pour mettre à l'échelle la première ou la deuxième échelle de probabilités de telle manière que la première pluralité de probabilités 302B et la deuxième pluralité de probabilités 308B puissent être comparées pour obtenir une première ou deuxième pluralité de probabilités transformée.
  17. 17. Procédé selon la revendication 1, dans lequel le premier moteur de ROC 402 comprend une étape consistant à réaliser une décision contextuelle pour l'identification de caractères du au moins premier type de caractères sur la base des hypothèses 302A de la première classification de caractères 301 avec leurs probabilités 302B correspondantes et des hypothèses 308A de la deuxième classification de caractères 305 avec leurs probabilités 308B correspondantes pour toutes les parties de segmentation 351.
  18. 18. Procédé selon ta revendication 17, dans lequel l'étape consistant à prendre une décision contextuelle utilise au moins un des outils de support de décision parmi un graphe de décision, un modèle linguistique, un modèle typographique et un modèle de décision basé sur un modèle n-grammes.
  19. 19. Produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères 401, la logique de commande comprenant: (i) des premiers moyens de code de programme lisible par ordinateur pour appliquer un premier moteur de ROC 402 pour fournir une identification 403 de caractères d'au moins un premier type de caractères et des zones 404 d'au moins un deuxième type de caractères dans l'image de chaîne de caractères 401, (ii) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer sur les zones 404 d'au moins un deuxième type de caractères un deuxième moteur de ROC 405 pour fournir une identification 406 de caractères d'un deuxième type de caractères, et (iii) des troisièmes moyens de code de programme lisible par ordinateur pour combiner les caractères identifiés par le premier moteur de ROC 402 et par le deuxième moteur de ROC 405 pour obtenir l'identification des caractères de l'image de chaîne de caractères 401, dans lequel le premier moteur de ROC 402 comprend une segmentation 350 de l'image de chaîne de caractères 401 en parties de segmentation 351 et comprend, pour chaque partie de segmentation 351, les étapes consistant à (a) appliquer une première classification de caractères 301 pour fournir une première pluralité d'hypothèses 302A sur un au moins un caractère représenté par la partie de segmentation 351 et une première pluralité de probabilités 302B associées aux hypothèses 302A, (b) vérifier 303 si la première pluralité d'hypothèses 302A satisfait à au moins une condition, et (c) appliquer, si au moins une condition est satisfaite, une deuxième classification de caractères 305 pour fournir une deuxième pluralité d'hypothèses 308A sur le au moins un caractère représenté par la partie de Segmentation 351 et une deuxième pluralité de probabilités 308B associées aux hypothèses 308A.
  20. 20. Procédé pour identifier des caractères dans une image de chaîné de caractères 401, le procédé comprenant: (i) l'application d'un moteur de ROC conçu pour les caractères asiatiques pour fournir une identification de caractères asiatiques et de zone de caractères non asiatiques dans limage de chaîne de caractères 401, (ii) l'application sur les zones de caractères non asiatiques d'un moteur de ROC conçu pour les caractères latins pour fournir une identification des caractères latins, et (iii) la combinaison des caractères identifiés par le moteur de ROC conçu pour les caractères asiatiques et le moteur de ROC conçu pour les caractères latins pour obtenir l'identification des caractères asiatiques et latins de l'image de chaîne de caractères 401, dans lequel le moteur de ROC conçu pour les caractères asiatiques comprend les étapes consistant à: (A) segmenter 350 l'image de chaîne de caractères 401 en parties de segmentation 351, (B) appliquer, pour chaque partie de segmentation 351, une classification de caractères individuels conçue pour les caractères asiatiques 301 pour fournir une première pluralité d'hypothèses 302A sur un au moins un caractère représenté par la partie de segmentation 351 et une première pluralité de probabilités 302B associées aux hypothèses 302A, et (C) réaliser une décision contextuelle pour l'identification des au moins caractères asiatiques sur la base des hypothèses 302A de la classification de caractères individuels conçue pour les caractères asiatiques 301 et leurs probabilités 302B correspondantes pour toutes les parties de segmentation 351.
  21. 21. Procédé selon la revendication 20, dans lequel l’étape (B) comprend en outre, pour chaque partie de segmentation 351, les sous-étapes consistant à: • vérifier 303 si la première pluralité d’hypothèses 302A satisfait à au moins une condition, et • appliquer, s» au moins une condition est satisfaite, une deuxième classification de caractères conçue pour les caractères latins 305 pour fournir une deuxième pluralité d'hypothèses 308A sur le au moins un caractère représenté par la partie de segmentation 351 et une deuxième pluralité de probabilités 308B associées aux hypothèses 308A, et dans lequel la décision contextuelle de l'étape (C) est une décision contextuelle pour l'identification de caractères sur la base des hypothèses 302A de la classification de caractères individuels conçue pour les caractères asiatiques 301 et leurs probabilités 302B correspondantes et les hypothèses 308A de la classification de caractères individuels conçue pour les caractères latins 305 et leurs probabilités 308B correspondantes pour toutes les parties de segmentation 351.
  22. 22. Produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères 401, la logique de commande comprenant: (I ) des premiers moyens de code de programme lisible par ordinateur pour appliquer un moteur de ROC conçu pour tes caractères asiatiques pour fournir une identification de caractères asiatiques et de zone de caractères non asiatiques dans l'image de chaîne de caractères 401, (ii ) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer sur les zones de caractères non asiatiques un moteur de ROC conçu pour les caractères latins pour fournir une identification des caractères latins, et (iii ) des troisièmes moyens de code de programme lisible par ordinateur pour combiner les caractères identifiés par le moteur de ROC conçu pour les caractères asiatiques et le moteur de ROC conçu pour les caractères latins pour obtenir l'identification des caractères asiatiques et latins de l'image de chaîne de caractères 401, dans lequel le moteur de ROC conçu pour les caractères asiatiques comprend les étapes consistant à: (A) segmenter 350 l'image de chaîne de caractères 401 en parties de segmentation 351, (B) appliquer, pour chaque partie de segmentation 351, une classification de caractères individuels conçue pour les caractères asiatiques 301 pour fournir une première pluralité d'hypothèses 302A sur un au moins un caractère représenté par la partie de segmentation 351 et une première pluralité de probabilités 302B associées aux hypothèses 302A, et (C) réaliser une décision contextuelle pour l'identification des au moins caractères asiatiques sur ia base des hypothèses 302A de la classification de caractères individuels conçue pour les caractères asiatiques 301 et leurs probabilités 302B correspondantes pour toutes les parties de segmentation 351.
  23. 23. Procédé pour identifier des caractères dans une image de chaîne de caractères 401, le procédé comprenant les étapes consistant à: (A) segmenter 350 l'image de chaîne de caractères 401 en parties de segmentation 351, (B) pour chaque partie de segmentation 351, les sous-étapes consistant à: (a) appliquer une première classification de caractères 301 pour fournir une première pluraiité d'hypothèses 302A sur un au moins un caractère représenté par la partie de segmentation 351 et une première pluralité de probabilités 302B associées aux hypothèses 302A, (b) vérifier 303 si la première pluralité d'hypothèses 302A satisfait à au moins une condition, (c) appliquer, si au moins une condition est satisfaite, une deuxième classification de caractères 305 pour fournir une deuxième pluralité d’hypothèses 308A sur le au moins un caractère représenté par la partie de segmentation 351 et une deuxième pluralité de probabilités 308B associées aux hypothèses 308A, et (C) réaliser une décision contextuelle pour l'identification des caractères du au moins premier type de caractères sur la base des hypothèses 302A de la première classification de caractères 301 avec leurs probabilités 302B correspondantes et les hypothèses 308A de la deuxième classification de caractères 305 avec leurs probabilités 308B pour toutes les parties de segmentation 351.
  24. 24. Produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères 401, la logique de commande comprenant des moyens de code de programme lisible par ordinateur pour segmenter l'image de chaîne de caractères 401 en parties de segmentation 351 et comprenant, pour chaque partie de segmentation 351: (A) des premiers moyens de code de programme lisible par ordinateur pour segmenter 350 l'image de chaîne de caractères 401 en parties de segmentation 351, (B) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer, pour chaque partie de segmentation 351, les sous-étapes consistant en: (a) une première classification de caractères 301 pour fournir une première pluralité d'hypothèses 302A sur un au moins un caractère représenté par la partie de segmentation 351 et une première pluralité de probabilités 302B associées aux hypothèses 302A, (b ) une vérification 303 pour voir si la première pluralité d'hypothèses 302A satisfait à au moins une condition, (c) une deuxième classification de caractères 305, si au moins une condition est satisfaite, pour fournir une deuxième pluralité d'hypothèses 308A sur le au moins un caractère représenté par la partie de segmentation 351 et une deuxième pluralité de probabilités 3088 associées aux hypothèses 308A, et (C) des troisièmes moyens de code de programme lisible par ordinateur pour réaliser une dédsion contextuelle pour l'identification des caractères du au moins premier type de caractères sur la base des hypothèses 302A de la première classification de caractères 301 avec leurs probabilités 302B correspondantes et des hypothèses 308A de la deuxième dassîfication de caractères 305 avec leurs probabilités 308B pour toutes les parties de segmentation 351,
  25. 25. Procédé pour identifier des caractères dans une image de chaîne de caractères 401, le procédé comprenant; (i) l'application d'un premier moteur de ROC 402 pour fournir une identification 403 de caractères d’au moins un premier type de caractères et de zones 404 d’au moins un deuxième type de caractères dans l'image de chaîne de caractères 401, (ii) l'application sur (es zones 404 du au moins deuxième type de caractères d'un deuxième moteur de ROC 405 pour fournir une identification 406 de caractères d’un deuxième type de caractères, et (iii) la combinaison des caractères identifiés par le premier moteur de ROC 402 et par le deuxième moteur de ROC 405 pour obtenir l'identification des caractères de l’image de chaîne de caractères 401.
  26. 26. Procédé selon la revendication 25, dans lequel le premier moteur de ROC 402 comprend au moins un de ce qui suit: (a) utilisation d’une base de données de caractères comprenant des caractères du premier type de caractères; (b) segmentation conçue pour le premier type de caractères; (c) classification de caractères conçue pour le premier type de caractères; et {d) décision contextuelle conçue pour le premier type de caractères.
  27. 27. Procédé selon la revendication 25, dans lequel le deuxième moteur de ROC 405 comprend au moins un de ce qui suit: (a) utilisation d'une base de données de caractères comprenant des caractères du deuxième type de caractères; (b) segmentation conçue pour le deuxième type de caractères; (c) classification de caractères conçue pour ie deuxième type de caractères; et (d) décision contextuelle conçue pour le deuxième type de caractères.
  28. 28. Produit de programme informatique comprenant un support qui peut être utilisé par un ordinateur et dans lequel est stocké une logique de commande pour amener un dispositif informatique à identifier des caractères dans une image de chaîne de caractères 401, la logique de commande comprenant: (i) des premiers moyens de code de programme lisible par ordinateur pour appliquer un premier moteur de ROC 402 pour fournir une identification 403 de caractères d’au moins un premier type de caractères et de zones 404 d'au moins un deuxième type de caractères dans l'image de chaîne de caractères 401, (ii) des deuxièmes moyens de code de programme lisible par ordinateur pour appliquer sur les zones 404 d'au moins un deuxième type de caractères un deuxième moteur de ROC 405 pour fournir une identification 406 de caractères d’un deuxième type de caractères, et (iii) des troisièmes moyens de code de programme lisible par ordinateur pour combiner les caractères identifiés par le premier moteur de ROC 402 et par le deuxième moteur de ROC 405 pour obtenir l'identification des caractères de l’image de chaîne de caractères 401.
BE20155354A 2014-06-09 2015-06-09 Procédé de reconnaissance optique de caractères BE1022562A9 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/299,205 US9798943B2 (en) 2014-06-09 2014-06-09 Optical character recognition method
US14/299,205 2014-06-09

Publications (3)

Publication Number Publication Date
BE1022562A1 BE1022562A1 (fr) 2016-06-02
BE1022562B1 BE1022562B1 (fr) 2016-06-02
BE1022562A9 true BE1022562A9 (fr) 2017-02-07

Family

ID=53373454

Family Applications (1)

Application Number Title Priority Date Filing Date
BE20155354A BE1022562A9 (fr) 2014-06-09 2015-06-09 Procédé de reconnaissance optique de caractères

Country Status (3)

Country Link
US (1) US9798943B2 (fr)
BE (1) BE1022562A9 (fr)
WO (1) WO2015189213A1 (fr)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9524429B2 (en) 2014-08-21 2016-12-20 Microsoft Technology Licensing, Llc Enhanced interpretation of character arrangements
US9805483B2 (en) * 2014-08-21 2017-10-31 Microsoft Technology Licensing, Llc Enhanced recognition of charted data
US9910852B2 (en) * 2015-03-12 2018-03-06 Lenovo (Singapore) Pte. Ltd. Detecting cascading sub-logograms
RU2613846C2 (ru) * 2015-09-07 2017-03-21 Общество с ограниченной ответственностью "Аби Девелопмент" Метод и система извлечения данных из изображений слабоструктурированных документов
JP6655331B2 (ja) * 2015-09-24 2020-02-26 Dynabook株式会社 電子機器及び方法
BE1025006B1 (fr) * 2017-02-27 2018-09-25 I.R.I.S. Procède mis en oeuvre par ordinateur et système de reconnaissance de caractère optique
US10810467B2 (en) 2017-11-17 2020-10-20 Hong Kong Applied Science and Technology Research Institute Company Limited Flexible integrating recognition and semantic processing
KR102478396B1 (ko) * 2017-11-29 2022-12-19 삼성전자주식회사 이미지에서 텍스트를 인식할 수 있는 전자 장치
GB2571530B (en) * 2018-02-28 2020-09-23 Canon Europa Nv An image processing method and an image processing system
JP7338158B2 (ja) * 2019-01-24 2023-09-05 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
JP7338203B2 (ja) * 2019-03-29 2023-09-05 富士フイルムビジネスイノベーション株式会社 文字認識装置及びプログラム
US11481691B2 (en) 2020-01-16 2022-10-25 Hyper Labs, Inc. Machine learning-based text recognition system with fine-tuning model
CN113269009A (zh) 2020-02-14 2021-08-17 微软技术许可有限责任公司 图像中的文本识别
US11741675B2 (en) * 2020-03-10 2023-08-29 Niantic, Inc. Determining traversable space from single images
JP2022018202A (ja) * 2020-07-15 2022-01-27 株式会社リコー 情報処理装置およびプログラム
CN113160222A (zh) * 2021-05-14 2021-07-23 电子科技大学 一种针对工业信息图像的生产数据识别方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060277A (en) * 1985-10-10 1991-10-22 Palantir Corporation Pattern classification means using feature vector regions preconstructed from reference data
GB2306739B (en) * 1995-10-17 1999-10-13 Ibm Improvements relating to computerized correction of numeric data
US6047251A (en) * 1997-09-15 2000-04-04 Caere Corporation Automatic language identification system for multilingual optical character recognition
DE10126835B4 (de) * 2001-06-01 2004-04-29 Siemens Dematic Ag Verfahren und Vorrichtung zum automatischen Lesen von Adressen in mehr als einer Sprache
RU2251737C2 (ru) * 2002-10-18 2005-05-10 Аби Софтвер Лтд. Способ автоматического определения языка распознаваемого текста при многоязычном распознавании
US7649838B2 (en) * 2003-03-31 2010-01-19 Adknowledge, Inc. System and method for ranking the quality of internet traffic directed from one web site to another
JP5324743B2 (ja) * 2003-07-01 2013-10-23 カーディオマグ イメージング、 インコーポレイテッド 心磁図の分類のための機械学習の使用
US7289123B2 (en) * 2004-09-30 2007-10-30 Microsoft Corporation Simplifying complex characters to maintain legibility
US7805004B2 (en) * 2007-02-28 2010-09-28 Microsoft Corporation Radical set determination for HMM based east asian character recognition
US9141607B1 (en) * 2007-05-30 2015-09-22 Google Inc. Determining optical character recognition parameters
US8385652B2 (en) * 2010-03-31 2013-02-26 Microsoft Corporation Segmentation of textual lines in an image that include western characters and hieroglyphic characters
US20130039589A1 (en) * 2011-08-11 2013-02-14 I. R. I. S. Pattern recognition process, computer program product and mobile terminal
JP2013164728A (ja) * 2012-02-10 2013-08-22 Canon Inc 画像内の文字に係る言語を判定する情報処理装置
US9043349B1 (en) * 2012-11-29 2015-05-26 A9.Com, Inc. Image-based character recognition
US9183636B1 (en) * 2014-04-16 2015-11-10 I.R.I.S. Line segmentation method

Also Published As

Publication number Publication date
BE1022562A1 (fr) 2016-06-02
US20150356365A1 (en) 2015-12-10
US9798943B2 (en) 2017-10-24
BE1022562B1 (fr) 2016-06-02
WO2015189213A1 (fr) 2015-12-17

Similar Documents

Publication Publication Date Title
BE1022562A9 (fr) Procédé de reconnaissance optique de caractères
BE1024194B1 (fr) Procédé d&#39;indentification d&#39;un caractère dans une image numérique
CN107133622B (zh) 一种单词的分割方法和装置
Sabbour et al. A segmentation-free approach to Arabic and Urdu OCR
BE1025503B1 (fr) Procede de segmentation de ligne
US8401293B2 (en) Word recognition of text undergoing an OCR process
US10643094B2 (en) Method for line and word segmentation for handwritten text images
Zahedi et al. Farsi/Arabic optical font recognition using SIFT features
WO2018090011A1 (fr) Système et procédé de reconnaissance de caractères à l&#39;aide de réseaux de neurone entièrement convolutifs
Feild et al. Improving open-vocabulary scene text recognition
US11270143B2 (en) Computer implemented method and system for optical character recognition
Gómez et al. Scene text recognition: No country for old men?
Ramirez et al. Automatic recognition of square notation symbols in western plainchant manuscripts
Rajnoha et al. Offline handwritten text recognition using support vector machines
BE1026159B1 (fr) Système de traitement d’image et procede de traitement d’image
Feild et al. Scene text recognition with bilateral regression
Fateh et al. Enhancing optical character recognition: Efficient techniques for document layout analysis and text line detection
Phong et al. Mathematical variable detection based on convolutional neural network and support vector machine
Chamchong et al. A combined method of segmentation for connected handwritten on palm leaf manuscripts
Zatsepin et al. Fast Korean syllable recognition with letter-based convolutional neural networks
Ray et al. Character recognition using conditional random field based recognition engine
Zheng et al. Chinese/English mixed character segmentation as semantic segmentation
Idziak et al. Scalable handwritten text recognition system for lexicographic sources of under-resourced languages and alphabets
Del Gobbo et al. Unconstrained text detection in manga
Sharma et al. Gujarati Script Recognition