Passer au contenu principal
L’autodétection permet de déterminer le type d’un fragment de texte reconnu. Elle est lancée si la propriété TextTypes de l’objet RecognizerParams est définie sur plusieurs constantes. Ce mode a été principalement conçu pour la reconnaissance de formulaires. Dans le cas d’une Reconnaissance optique de caractères (OCR) classique, nous recommandons de ne l’utiliser qu’en cas d’absolue nécessité. Lorsque l’autodétection est activée, ABBYY FineReader Engine tente d’abord de détecter le type de texte dans le bloc spécifié ou dans le groupe de blocs spécifié (pour ces blocs, la propriété TextTypes de l’objet RecognizerParams est définie sur plusieurs constantes). ABBYY FineReader Engine choisit parmi les constantes spécifiées dans la propriété TextTypes. Cette propriété contient une combinaison OR des constantes de l’énumération TextTypeEnum, qui indiquent les types de texte possibles pour la reconnaissance. Par exemple, si elle est définie sur TT_Normal | TT_Index, ABBYY FineReader Engine considérera que le texte contient uniquement du texte typographique standard et des chiffres écrits au format code postal, en ignorant toutes les autres variantes. Lors de l’autodétection, ABBYY FineReader Engine exécute la reconnaissance pour tous les types de texte spécifiés dans la propriété TextTypes. Les résultats de l’OCR sont ensuite comparés, et ABBYY FineReader Engine sélectionne le meilleur comme résultat final.

Comment utiliser l’autodétection

L’autodétection doit être utilisée pour un ensemble de blocs contenant tous du texte du même type. Si un type de texte distinct doit être sélectionné pour chaque bloc, vous devez appeler la méthode RecognizeBlocks pour chaque bloc, et l’objet RecognizerParams doit répertorier les types de texte possibles.
Si un même bloc contient du texte de différents types, la reconnaissance sera exécutée pour tous les types de texte, mais un seul résultat sera retenu. L’ensemble du texte du bloc sera donc reconnu comme s’il était d’un seul et même type. C’est pourquoi les résultats de reconnaissance d’un bloc contenant du texte de plusieurs types peuvent différer de ceux d’un bloc contenant du texte d’un seul type. Pour obtenir de meilleurs résultats OCR, tracez des blocs distincts pour chaque type de texte.

Sélection de l’ensemble des types de texte

La vitesse et la précision de l’autodétection dépendent de l’ensemble des types de texte spécifiés dans la propriété TextTypes. L’autodétection est la plus rapide pour les combinaisons des types TT_Normal, TT_Matrix, TT_Typewriter, TT_OCR_A et TT_OCR_B (que l’on peut appeler l’« ensemble d’autodétection rapide »). Dans ce cas, le moteur de reconnaissance n’est lancé qu’une seule fois, l’autodétection est effectuée pendant l’OCR, et des mots isolés plutôt que des blocs sont utilisés pour détecter le type de texte. Si un seul type de texte a été spécifié, l’autodétection n’est pas lancée — l’objet Engine lance alors le moteur de reconnaissance correspondant au type de texte spécifié.
Si la propriété TextTypes correspond à une combinaison quelconque de TT_Matrix, TT_Typewriter, TT_OCR_A et TT_OCR_B, les polices en italique ainsi que les exposants et les indices ne seront pas reconnus, quelles que soient les valeurs des propriétés ProhibitItalic, ProhibitSubscript et ProhibitSuperscript de l’objet RecognizerParams.
Pour les textes qui ne sont pas couverts par l’« ensemble d’autodétection rapide », les types de texte sont détectés par blocs, et non par mots isolés. Cela signifie que l’autodétection est plus lente si l’ensemble des types de texte possibles comprend des types de texte autres que TT_Normal, TT_Matrix, TT_Typewriter, TT_OCR_A et TT_OCR_B. Dans ce cas, l’objet Engine doit effectuer un OCR préliminaire plusieurs fois — une fois pour les types de l’« ensemble d’autodétection rapide » et une session de reconnaissance préliminaire pour chaque type de texte supplémentaire. Les résultats sont ensuite comparés afin de sélectionner le type de texte le plus approprié.
Pour Windows…
  • Veillez à limiter au minimum le nombre de types de texte dans la propriété TextTypes.
  • Si la propriété TextTypes correspond à une combinaison quelconque de TT_Handwritten et TT_Index, la propriété TrainUserPatterns de l’objet RecognizerParams ne peut pas être définie sur TRUE.

Voir aussi

RecognizerParams TextTypeEnum