Saltar al contenido principal
Este tema se aplica a FRE for Windows, pero no requiere Windows Visual Components.
ABBYY FineReader Engine puede leer textos en prácticamente cualquier fuente, independientemente de la calidad de impresión. Por lo tanto, normalmente no se necesita entrenamiento previo para realizar el reconocimiento. No obstante, ABBYY FineReader Engine incluye varias herramientas de entrenamiento de patrones de usuario para casos especiales. El entrenamiento de patrones funciona de la siguiente manera. Se reconocen una o dos páginas en modo de entrenamiento, mientras el usuario introduce los símbolos correctos. Estos datos se utilizan para crear un patrón. Un patrón es un conjunto de pares “una imagen de carácter — el propio carácter” creado durante el entrenamiento de patrones. Un patrón se utiliza como fuente de información adicional durante el reconocimiento. ABBYY FineReader Engine utiliza después este patrón para reconocer el resto del texto. En ocasiones, dos o incluso tres caracteres pueden quedar “pegados” entre sí, y ABBYY FineReader Engine puede no ser capaz de encerrar cada carácter en un marco individual para separarlos. Si este es el caso (es decir, si no puede mover el marco para que contenga solo un carácter completo y ninguna parte de otros caracteres), puede entrenar ABBYY FineReader Engine para reconocer como un todo la combinación inseparable de caracteres. Algunos ejemplos de combinaciones de caracteres que con frecuencia aparecen pegadas son ff, fi y fl. Estas combinaciones se denominan ligaduras. Puede encontrar información adicional en Training User Patterns.

Cuándo usarlo

El modo Train User Pattern puede ser útil cuando:
  • se reconocen textos con fuentes decorativas
  • se reconocen textos que contienen caracteres poco habituales (p. ej., símbolos matemáticos)
  • se reconocen grandes volúmenes (más de cien páginas) de textos de baja calidad de impresión
Use el modo Train User Pattern solo si se cumple una de las condiciones anteriores. En otros casos, puede obtener una ligera mejora en la calidad del reconocimiento, pero probablemente el tiempo y el esfuerzo necesarios superen el beneficio obtenido.
  • Un patrón solo resulta útil en documentos que tienen la misma fuente, el mismo tamaño de fuente y la misma resolución que el documento utilizado para crear el patrón de usuario.
  • El entrenamiento de patrones no es compatible con idiomas CJK. Si se selecciona uno de estos idiomas para el reconocimiento, se ignorarán todos los patrones de usuario (incluidos los de otros idiomas).
  • El entrenamiento de patrones no puede realizarse durante el reconocimiento en procesos paralelos.
  • El entrenamiento de patrones debe realizarse en páginas con la orientación correcta, ya que en este caso la detección automática de la orientación de la página no funciona.

Cómo realizar el reconocimiento con entrenamiento

  1. Cree un objeto RecognizerParams.
  2. Establezca la propiedad IRecognizerParams::TrainUserPatterns en TRUE.
  3. Cree un archivo de patrón de usuario vacío mediante el método IEngine::CreateEmptyUserPattern.
  4. Especifique la ruta completa de este archivo de patrón de usuario en la propiedad IRecognizerParams::UserPatternsFile.
  5. Llame a un método de reconocimiento (por ejemplo, IFRDocument::Process) con estos parámetros de reconocimiento. Cada vez que se detecte un carácter desconocido, se abrirá el cuadro de diálogo Pattern Training, con la imagen del carácter mostrada en su interior.
  6. Entrene su patrón — reconozca una o varias páginas en el modo Train User Pattern. Los caracteres entrenados se guardan en el archivo de patrón de usuario.
  7. [Opcional] Si desea editar este patrón, llame al método EditUserPattern del objeto Engine.
  8. Reconozca las imágenes usando este patrón.
Si la propiedad IRecognizerParams::UseBuiltInPatterns está establecida en TRUE, ABBYY FineReader Engine utilizará sus propios patrones integrados para el reconocimiento. Establezca esta propiedad en FALSE cuando no desee usar los patrones estándar de ABBYY FineReader Engine para el reconocimiento de caracteres. Esto puede resultar útil para reconocer textos escritos con fuentes decorativas o no estándar; en ese caso, puede usar sus propios patrones definidos por el usuario, entrenados específicamente para esas fuentes. Si la propiedad UserPatternsFile (donde se almacena la ruta al archivo de patrón definido por el usuario) está vacía, la propiedad UseBuiltInPatterns se ignora.
Los archivos de patrones de usuario creados en ABBYY FineReader Engine 10 o versiones anteriores no se pueden abrir en FineReader Engine 12 Release 6 o versiones posteriores. Para seguir utilizándolos, guarde los archivos de patrones de usuario antiguos en el nuevo formato:
  • Utilice FineReader Engine 11 o FineReader Engine 12 Release 5, o una versión anterior.
  • Llame al método MergePatterns del objeto Engine y pase una colección de string con el nombre del archivo de patrón anterior y la ruta completa del archivo nuevo.
    FREngine::IEnginePtr Engine;
    FREngine::IFRDocumentPtr frDocument;
    ...
    // Crear un objeto DocumentProcessingParams
    FREngine::IDocumentProcessingParamsPtr dpp = Engine->CreateDocumentProcessingParams();
    // Establecer la propiedad TrainUserPatterns
    dpp->PageProcessingParams->RecognizerParams->TrainUserPatterns = VARIANT_TRUE;
    // Crear un archivo de patrón de usuario vacío
    Engine->CreateEmptyUserPattern( L"D:\\test.ptn" );
    // Establecer la ruta completa al archivo de patrón de usuario
    dpp->PageProcessingParams->RecognizerParams->UserPatternsFile = L"D:\\test.ptn";
    // Procesar la imagen
    frDocument->Process( dpp );
    ...
    
    FREngine.IEngine engine;
    FREngine.IFRDocument frdoc;
    ...
    // Crear un objeto DocumentProcessingParams
    FREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();
    // Establecer la propiedad TrainUserPatterns
    dpp.PageProcessingParams.RecognizerParams.TrainUserPatterns = true;
    // Crear un archivo de patrón de usuario vacío
    string patternFile = "D:\\test.ptn";
    engine.CreateEmptyUserPattern( patternFile );
    // Establecer la ruta completa al archivo de patrón de usuario
    dpp.PageProcessingParams.RecognizerParams.UserPatternsFile = patternFile;
    // Procesar la imagen
    frdoc.Process( dpp );
    ...
    

    Consulte también

    Entrenamiento de patrones de usuario