Saltar al contenido principal
La autodetección detecta el tipo de un fragmento de texto reconocido. La autodetección se inicia si la propiedad TextTypes del objeto RecognizerParams se establece en varias constantes. Este modo se diseñó principalmente para el reconocimiento de formularios. En el caso del Reconocimiento óptico de caracteres (OCR) habitual, recomendamos usarlo solo si es absolutamente necesario. Cuando la autodetección está activada, ABBYY FineReader Engine primero intentará detectar el tipo de texto en el bloque especificado o en un grupo de bloques (para estos bloques, la propiedad TextTypes del objeto RecognizerParams se establece en varias constantes). ABBYY FineReader Engine elegirá entre las constantes especificadas en la propiedad TextTypes. Esta propiedad contiene una combinación OR de las constantes de la enumeración TextTypeEnum, que indican los posibles tipos de texto usados para el reconocimiento. Por ejemplo, si se establece en TT_Normal | TT_Index, ABBYY FineReader Engine asumirá que el texto contiene únicamente texto tipográfico normal y dígitos escritos con formato de código postal, e ignorará todas las demás variantes. Durante la autodetección, ABBYY FineReader Engine ejecuta el reconocimiento para todos los tipos de texto especificados en la propiedad TextTypes. Luego se comparan los resultados del OCR y ABBYY FineReader Engine selecciona el mejor como resultado final.

Cómo usar la autodetección

La autodetección debe utilizarse para un conjunto de bloques, todos ellos con texto del mismo tipo. Si es necesario seleccionar un tipo de texto distinto para cada bloque, debe llamar al método RecognizeBlocks para cada bloque, y el objeto RecognizerParams debe enumerar los tipos de texto posibles.
Si un mismo bloque contiene texto de distintos tipos, el reconocimiento se ejecutará para todos los tipos de texto, pero solo se seleccionará un resultado. Por lo tanto, todo el texto del bloque se reconocerá como si fuera del mismo tipo. Por eso, los resultados del reconocimiento para un bloque que contiene texto de varios tipos pueden diferir de los de un bloque que contiene texto de un solo tipo. Para obtener mejores resultados de Reconocimiento óptico de caracteres (OCR), dibuje bloques independientes para cada tipo de texto.

Selección del conjunto de tipos de texto

La velocidad y la precisión de la autodetección dependen del conjunto de tipos de texto especificado en la propiedad TextTypes. La autodetección es más rápida para las combinaciones de los tipos TT_Normal, TT_Matrix, TT_Typewriter, TT_OCR_A y TT_OCR_B (que pueden denominarse el “conjunto de autodetección rápida”). En este caso, el reconocedor se inicia una sola vez, la autodetección se lleva a cabo durante el OCR y, para detectar el tipo de texto, se usan palabras individuales en lugar de bloques. Si solo se ha especificado un tipo de texto, la autodetección no se inicia: el Engine inicia el reconocedor correspondiente al tipo de texto especificado.
Si la propiedad TextTypes equivale a cualquier combinación de TT_Matrix, TT_Typewriter, TT_OCR_A y TT_OCR_B, no se reconocerán las fuentes en cursiva ni el superíndice/subíndice, independientemente de los valores de las propiedades ProhibitItalic, ProhibitSubscript y ProhibitSuperscript del objeto RecognizerParams.
En el caso de textos que no están cubiertos por el “conjunto de autodetección rápida”, los tipos de texto se detectan por bloques, no por palabras individuales. Esto significa que la autodetección es más lenta si el conjunto de posibles tipos de texto incluye tipos distintos de TT_Normal, TT_Matrix, TT_Typewriter, TT_OCR_A y TT_OCR_B. En este caso, el Engine debe realizar un OCR preliminar varias veces: una vez para los tipos del “conjunto de autodetección rápida” y una sesión de reconocimiento preliminar por cada tipo de texto adicional. A continuación, se comparan los resultados y se selecciona el mejor tipo de texto.
Para Windows…
  • Asegúrese de mantener al mínimo el número de tipos de texto en la propiedad TextTypes.
  • Si la propiedad TextTypes equivale a cualquier combinación de TT_Handwritten y TT_Index, la propiedad TrainUserPatterns del objeto RecognizerParams no puede establecerse en TRUE.

Consulte también

RecognizerParams TextTypeEnum