Saltar al contenido principal
En el caso del reconocimiento a nivel de campo, se reconocen fragmentos breves de texto para capturar datos de determinados campos. La calidad del reconocimiento es crucial en este escenario. Este escenario también puede utilizarse como parte de escenarios más complejos en los que es necesario extraer datos significativos de documentos (por ejemplo, para capturar datos de documentos en papel en sistemas de información y bases de datos, o para clasificar e indexar automáticamente documentos en sistemas de gestión documental). En este escenario, el sistema reconoce varias líneas de texto solo en algunos campos, o bien el texto completo de una imagen pequeña. El sistema calcula un nivel de confianza para cada carácter reconocido. Estos niveles de confianza pueden utilizarse después al comprobar los resultados del reconocimiento. Además, el sistema puede almacenar varias variantes de reconocimiento de palabras y caracteres del texto, que luego pueden utilizarse en algoritmos de votación para mejorar la calidad del reconocimiento. El procesamiento de pequeños fragmentos de texto en este escenario difiere en algunos aspectos de los mismos pasos en otros escenarios:
  1. Preprocesamiento de imágenes escaneadas o fotografías Las imágenes que se van a reconocer pueden incluir marcas y ruido de fondo, ambos capaces de dificultar el reconocimiento. Por esta razón, en esta etapa se eliminan las marcas no deseadas y el ruido de fondo.
  2. Reconocimiento de pequeños fragmentos de texto Al reconocer pequeños fragmentos de texto, el tipo de datos que se va a reconocer se conoce de antemano. Por lo tanto, la calidad del reconocimiento puede mejorarse mediante el uso de diccionarios externos, expresiones regulares, idiomas de reconocimiento personalizados y alfabetos, así como imponiendo restricciones al número de caracteres de una cadena. Los campos de texto pueden contener texto impreso, letra de imprenta y manuscrito.
  3. Trabajo con los datos reconocidos Este escenario requiere la máxima precisión de reconocimiento para reducir al mínimo el trabajo de verificación de datos. El sistema puede calcular un nivel de confianza para cada palabra o carácter reconocido y proporcionar varias variantes de reconocimiento, entre las que varios motores pueden elegir después la mejor opción aplicando algoritmos de votación.

Implementación del escenario

Los ejemplos de código proporcionados en este tema son específicos de Windows.
A continuación se presenta una descripción detallada del método recomendado para usar ABBYY FineReader Engine 12 en este escenario. El método sugerido utiliza la configuración de procesamiento que se considera más adecuada para este escenario.
Para comenzar a trabajar con ABBYY FineReader Engine, es necesario crear el objeto Engine. El objeto Engine es el objeto de nivel superior en la jerarquía de objetos de ABBYY FineReader Engine, y proporciona diversas configuraciones globales, algunos métodos de procesamiento y métodos para crear los demás objetos.Para crear el objeto Engine, puede usar la función InitializeEngine. Consulte también otras formas de cargar el objeto Engine (Win).

C#

C++ (COM)

La configuración más adecuada puede seleccionarse mediante el método LoadPredefinedProfile del objeto Engine. Este método recibe el nombre del perfil como parámetro de entrada. La configuración más adecuada puede seleccionarse mediante el perfil predefinido denominado FieldLevelRecognition. Para obtener más información sobre los perfiles, consulte Trabajo con perfiles.

C#

C++ (COM)

Si desea cambiar la configuración utilizada para el procesamiento, use los objetos Parameter correspondientes. Consulte la sección Optimización adicional, más abajo, para obtener más información.
ABBYY FineReader Engine proporciona un objeto FRDocument para procesar documentos de varias páginas. Para cargar las imágenes de un documento y preprocesarlas, debe crear el objeto FRDocument y agregarle imágenes. Puede hacer una de las siguientes acciones:

C#

C++ (COM)

Ahora debe crear bloques que contengan sus campos y, para cada uno, especificar el tipo de bloque y las características conocidas de los datos que contiene.Realice el análisis de la estructura del documento mediante el método Analyze, o agregue manualmente bloques que contengan los campos que necesita reconocer. Consulte Trabajo con Layout y bloques para obtener instrucciones.Para cada campo, ahora puede especificar sus propios parámetros de reconocimiento. Por ejemplo, si un campo contiene texto, use la propiedad ITextBlock::RecognizerParams:
  • establezca el tipo de texto con ayuda de la propiedad TextTypes del objeto RecognizerParams. Por ejemplo, si el campo contiene dígitos escritos con el formato de un código postal, use el tipo de texto TT_Index.
  • establezca el idioma mediante el método SetPredefinedTextLanguage. El uso de idiomas predefinidos especiales (solo para Windows) puede resultar útil si conoce el tipo de información contenida en el campo. Por ejemplo, si el campo contiene una dirección de EE. UU., seleccione el idioma predefinido English_US_Address. Esto garantizará un reconocimiento más fiable del texto.
  • establezca las propiedades SaveCharacterRecognitionVariants y SaveWordRecognitionVariants del objeto RecognizerParams si necesita usar las variantes de reconocimiento para verificar posteriormente el resultado, como se describe más adelante en el paso 6. Tenga en cuenta que esta configuración no está disponible para textos manuscritos o escritos en letra de imprenta.
Para obtener más información sobre el reconocimiento de distintos tipos de campos, consulte las secciones Reconocimiento de marcas de verificación, Reconocimiento de textos manuscritos, Reconocimiento de códigos de barras y Reconocimiento de palabras con espacios.

C#

C++ (COM)

Como el diseño del documento ya se analizó y usted además lo modificó, no vuelva a llamar a los métodos de análisis. Use el método Recognize, que realiza el reconocimiento y la síntesis de páginas de todo el documento. En este escenario, debe extraer los datos de los campos y no exportar el documento reconocido; por lo tanto, no necesitará la síntesis del documento.

C#

C++ (COM)

Use el objeto Text para acceder al fragmento de texto reconocido (puede obtener este objeto para un bloque de texto mediante la propiedad ITextBlock::Text). Use la propiedad Paragraphs para obtener la colección de párrafos del fragmento y el método IParagraphs::Item para acceder a cada párrafo. La propiedad IParagraph::Text permite acceder al texto reconocido de un párrafo.Puede usar IParagraph::Words para obtener la colección de palabras de un párrafo. Use el método IWords::Item para acceder a cada palabra de la colección. La propiedad IWord::Text devuelve la línea que contiene la palabra reconocida. Use el método GetRecognitionVariants del objeto Word o el método GetWordRecognitionVariants del objeto Paragraph para obtener las variantes de reconocimiento de una palabra.Puede acceder a los atributos de cada carácter mediante el método GetCharParams del objeto Paragraph. Este método proporciona acceso al objeto CharParams, que contiene los parámetros del carácter reconocido. Puede acceder a las variantes de reconocimiento de un carácter mediante la propiedad ICharParams::CharacterRecognitionVariants.Para obtener información detallada sobre cómo trabajar con texto, consulte Working with Text. Para obtener información sobre cómo usar Engine en algoritmos de votación, consulte Using Voting API.Cuando haya terminado de trabajar con el objeto FRDocument, libere todos los recursos utilizados por este objeto. Use el método IFRDocument::Close.
Después de terminar de trabajar con ABBYY FineReader Engine, debe descargar el objeto Engine. Para ello, use la función exportada DeinitializeEngine.

C#

C++ (COM)

Recursos necesarios

Puede usar el archivo FREngineDistribution.csv para crear automáticamente una lista de los archivos necesarios para que la aplicación funcione. Para el procesamiento en este escenario, seleccione en la columna 5 (RequiredByModule) los siguientes valores: Core Core.Resources Opening Opening, Processing Processing Processing.OCR Processing.OCR, Processing.ICR Processing.OCR.NaturalLanguages Processing.OCR.NaturalLanguages, Processing.ICR.NaturalLanguages Si modifica el escenario estándar, cambie los módulos necesarios según corresponda. También debe especificar los idiomas de la interfaz, los idiomas de reconocimiento y cualquier función adicional que use la aplicación (como, por ejemplo, Opening.PDF si necesita abrir archivos PDF, o Processing.OCR.CJK si necesita reconocer texto en idiomas CJK). Consulte Working with the FREngineDistribution.csv File para obtener más información.

Optimización adicional

Estas son las secciones del archivo de ayuda en las que puede encontrar información adicional sobre la configuración de los parámetros para las distintas etapas de procesamiento:

Consulte también

Implementación de escenarios de uso básicos