Zum Hauptinhalt springen
Dieses Thema gilt für FRE für Windows, erfordert jedoch keine Windows Visual Components.
ABBYY FineReader Engine kann Texte in praktisch jeder Schriftart unabhängig von der Druckqualität lesen. Daher ist vor der Erkennung normalerweise kein Training erforderlich. Dennoch bietet ABBYY FineReader Engine für Sonderfälle eine Reihe von Werkzeugen zum Trainieren von Benutzermustern. Das Mustertraining funktioniert wie folgt: Eine oder zwei Seiten werden im Trainingsmodus erkannt, wobei der Benutzer die korrekten Symbolwerte eingibt. Aus diesen Daten wird ein Muster erstellt. Ein Muster ist eine Menge von Paaren „Zeichenbild — das Zeichen selbst“, die während des Mustertrainings erstellt wird. Ein Muster dient während der Erkennung als zusätzliche Informationsquelle. ABBYY FineReader Engine verwendet dieses Muster dann für die Erkennung des restlichen Textes. Manchmal „kleben“ zwei oder sogar drei Zeichen zusammen, und ABBYY FineReader Engine kann dann möglicherweise nicht jedes Zeichen mit einem eigenen Rahmen umschließen, um sie voneinander zu trennen. Ist dies der Fall (d. h., wenn Sie den Rahmen nicht so verschieben können, dass er nur ein vollständiges Zeichen und keine Teile anderer Zeichen enthält), können Sie ABBYY FineReader Engine darauf trainieren, die untrennbare Zeichenkombination als Ganzes zu erkennen. Beispiele für Zeichenkombinationen, die häufig zusammenkleben, sind ff, fi und fl. Solche Kombinationen werden als Ligaturen bezeichnet. Weitere Informationen finden Sie unter Training User Patterns.

Wann verwenden

Der Trainingsmodus für Benutzer-Muster kann hilfreich sein, wenn:
  • Texte in dekorativen Schriften erkannt werden
  • Texte mit ungewöhnlichen Zeichen (z. B. mathematische Symbole) erkannt werden
  • große Mengen (mehr als hundert Seiten) von Texten mit niedriger Druckqualität erkannt werden
Verwenden Sie den Trainingsmodus für Benutzer-Muster nur, wenn einer der oben genannten Fälle zutrifft. In anderen Fällen erreichen Sie möglicherweise eine leichte Verbesserung der Erkennungsqualität, aber der Zeit- und Aufwand überwiegt wahrscheinlich den Nutzen.
  • Ein Muster ist nur nützlich bei Dokumenten, die dieselbe Schriftart, Schriftgröße und Auflösung wie das Dokument haben, das zur Erstellung des Benutzer-Musters verwendet wurde.
  • Das Muster-Training wird für CJK languages nicht unterstützt. Wenn eine dieser Sprachen für die Erkennung ausgewählt wird, werden alle Benutzer-Muster (einschließlich solcher für andere Sprachen) ignoriert.
  • Das Muster-Training kann nicht durchgeführt werden, wenn parallel erkannt wird.
  • Das Muster-Training sollte auf Seiten mit der korrekten Seitenorientierung durchgeführt werden, da die automatische Erkennung der Seitenorientierung in diesem Fall nicht funktioniert.

So führen Sie die Erkennung mit Training durch

  1. Erstellen Sie ein RecognizerParams-Objekt.
  2. Setzen Sie die Eigenschaft IRecognizerParams::TrainUserPatterns auf TRUE.
  3. Erstellen Sie mit der Methode IEngine::CreateEmptyUserPattern eine leere Benutzermusterdatei.
  4. Geben Sie den vollständigen Pfad zu dieser Benutzermusterdatei in der Eigenschaft IRecognizerParams::UserPatternsFile an.
  5. Rufen Sie eine Erkennungsmethode (z. B. IFRDocument::Process) mit diesen Erkennungsparametern auf. Sobald ein unbekanntes Zeichen gefunden wird, öffnet sich der Dialog Pattern Training, in dem das Zeichenbild angezeigt wird.
  6. Trainieren Sie Ihr Muster — erkennen Sie eine oder mehrere Seiten im Modus „Benutzermuster trainieren”. Trainierte Zeichen werden in der Benutzermusterdatei gespeichert.
  7. [Optional] Wenn Sie dieses Muster bearbeiten möchten, rufen Sie die Methode EditUserPattern des Engine-Objekts auf.
  8. Erkennen Sie die Bilder mithilfe dieses Musters.
Wenn die Eigenschaft IRecognizerParams::UseBuiltInPatterns auf TRUE gesetzt ist, verwendet ABBYY FineReader Engine für die Erkennung die eigenen integrierten Muster. Setzen Sie diese Eigenschaft auf FALSE, wenn Sie die standardmäßigen ABBYY FineReader Engine-Muster für die Zeichenerkennung nicht verwenden möchten. Dies kann bei der Erkennung von Texten nützlich sein, die in dekorativen oder nicht standardmäßigen Schriftarten verfasst sind – in diesem Fall können Sie eigene benutzerdefinierte Muster verwenden, die speziell für diese Schriftarten trainiert wurden. Wenn die Eigenschaft UserPatternsFile (in der der Pfad zur benutzerdefinierten Musterdatei gespeichert ist) leer ist, wird die Eigenschaft UseBuiltInPatterns ignoriert.
Benutzermusterdateien, die in ABBYY FineReader Engine 10 oder früher erstellt wurden, können in FineReader Engine 12 Release 6 oder höher nicht geöffnet werden. Um sie weiterhin nutzen zu können, speichern Sie ältere Benutzermusterdateien im neuen Format:
  • Verwenden Sie FineReader Engine 11 oder FineReader Engine 12 Release 5 oder früher.
  • Rufen Sie die Methode MergePatterns des Engine-Objekts auf und übergeben Sie eine String-Sammlung mit dem Namen der älteren Pattern-Datei und dem vollständigen Pfad zur neuen Datei.
    FREngine::IEnginePtr Engine;
    FREngine::IFRDocumentPtr frDocument;
    ...
    // Ein DocumentProcessingParams-Objekt erstellen
    FREngine::IDocumentProcessingParamsPtr dpp = Engine->CreateDocumentProcessingParams();
    // Die Eigenschaft TrainUserPatterns setzen
    dpp->PageProcessingParams->RecognizerParams->TrainUserPatterns = VARIANT_TRUE;
    // Eine leere User-Pattern-Datei erstellen
    Engine->CreateEmptyUserPattern( L"D:\\test.ptn" );
    // Den vollständigen Pfad zur User-Pattern-Datei setzen
    dpp->PageProcessingParams->RecognizerParams->UserPatternsFile = L"D:\\test.ptn";
    // Das Bild verarbeiten
    frDocument->Process( dpp );
    ...
    
    FREngine.IEngine engine;
    FREngine.IFRDocument frdoc;
    ...
    // Ein DocumentProcessingParams-Objekt erstellen
    FREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();
    // Die Eigenschaft TrainUserPatterns setzen
    dpp.PageProcessingParams.RecognizerParams.TrainUserPatterns = true;
    // Eine leere User-Pattern-Datei erstellen
    string patternFile = "D:\\test.ptn";
    engine.CreateEmptyUserPattern( patternFile );
    // Den vollständigen Pfad zur User-Pattern-Datei setzen
    dpp.PageProcessingParams.RecognizerParams.UserPatternsFile = patternFile;
    // Das Bild verarbeiten
    frdoc.Process( dpp );
    ...
    

    Siehe auch

    Training von User Patterns