Bei der Felderkennung werden kurze Textfragmente erkannt, um Daten aus bestimmten Feldern zu erfassen. Die Erkennungsqualität ist in diesem Szenario entscheidend. Dieses Szenario kann auch als Teil komplexerer Szenarien verwendet werden, in denen aussagekräftige Daten aus Dokumenten extrahiert werden sollen (zum Beispiel, um Daten aus Papierdokumenten in Informationssysteme und Datenbanken zu übernehmen oder Dokumente in Dokumentenmanagementsystemen automatisch zu klassifizieren und zu indizieren). In diesem Szenario erkennt das System entweder mehrere Textzeilen in nur einigen Feldern oder den gesamten Text in einem kleinen Bild. Das System berechnet für jedes erkannte Zeichen einen Konfidenzwert. Diese Konfidenzwerte können dann bei der Überprüfung der Erkennungsergebnisse verwendet werden. Außerdem kann das System mehrere Erkennungsvarianten für Wörter und Zeichen im Text speichern, die anschließend in Abstimmungsalgorithmen verwendet werden können, um die Erkennungsqualität zu verbessern. Die Verarbeitung kleiner Textfragmente unterscheidet sich in diesem Szenario in mancher Hinsicht von denselben Schritten in anderen Szenarien:Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
- Vorverarbeitung gescannter Bilder oder Fotos
- Erkennung kleiner Textfragmente
- Arbeiten mit den erkannten Daten
Implementierung des Szenarios
Die in diesem Thema bereitgestellten Codebeispiele sind Windows-spezifisch.
Schritt 1. ABBYY FineReader Engine laden
Schritt 1. ABBYY FineReader Engine laden
Um mit ABBYY FineReader Engine zu arbeiten, müssen Sie zunächst das Engine-Objekt erstellen. Das Engine-Objekt steht an der Spitze der Objekthierarchie von ABBYY FineReader Engine und stellt verschiedene globale Einstellungen, einige Verarbeitungsmethoden sowie Methoden zum Erstellen weiterer Objekte bereit.Um das Engine-Objekt zu erstellen, können Sie die Funktion InitializeEngine verwenden. Siehe auch andere Möglichkeiten zum Laden des Engine-Objekts (Win).
C#
C++ (COM)
Schritt 2. Laden der Einstellungen für das Szenario
Schritt 2. Laden der Einstellungen für das Szenario
Die am besten geeigneten Einstellungen lassen sich mit der Methode LoadPredefinedProfile des Objekts Engine auswählen. Diese Methode erhält den Profilnamen als Eingabeparameter. Für diesen Zweck eignet sich das vordefinierte Profil FieldLevelRecognition. Weitere Informationen zu Profilen finden Sie unter Working with Profiles.Wenn Sie die für die Verarbeitung verwendeten Einstellungen ändern möchten, verwenden Sie die entsprechenden Parameter-Objekte. Weitere Informationen finden Sie unten im Abschnitt Additional optimization.
C#
C++ (COM)
Schritt 3. Laden und Vorverarbeiten der Bilder
Schritt 3. Laden und Vorverarbeiten der Bilder
ABBYY FineReader Engine stellt das Objekt FRDocument für die Verarbeitung mehrseitiger Dokumente bereit. Um die Bilder eines Dokuments zu laden und vorzuverarbeiten, sollten Sie ein FRDocument-Objekt erstellen und ihm Bilder hinzufügen. Sie können dabei eine der folgenden Vorgehensweisen wählen:
- Erstellen Sie ein FRDocument-Objekt mit der Methode CreateFRDocumentFromImage des Objekts Engine. Diese Methode erstellt ein FRDocument-Objekt und lädt Bilder aus einer angegebenen Datei.
- Erstellen Sie ein FRDocument-Objekt mithilfe der Methode CreateFRDocument des Objekts Engine und fügen Sie dann die Bilder aus einer Datei zum erstellten FRDocument-Objekt hinzu (verwenden Sie dazu die Methode AddImageFile, AddImageFileWithPassword oder AddImageFileWithPasswordCallback des Objekts FRDocument).
C#
C++ (COM)
Schritt 4. Einrichten der zu erkennenden Felder
Schritt 4. Einrichten der zu erkennenden Felder
Nun müssen Sie Blöcke erstellen, die Ihre Felder enthalten, und für jeden davon den Blocktyp sowie bekannte Merkmale der darin enthaltenen Daten angeben.Führen Sie die Layout-Analyse des Dokuments mit der Methode Analyze durch, oder fügen Sie die Blöcke mit den Feldern, die Sie erkennen möchten, manuell hinzu. Anweisungen dazu finden Sie unter Working with Layout and Blocks.Für jedes Feld können Sie nun eigene Erkennungsparameter angeben. Wenn ein Feld beispielsweise Text enthält, verwenden Sie die Eigenschaft ITextBlock::RecognizerParams:
- legen Sie den Texttyp mithilfe der Eigenschaft TextTypes des Objekts RecognizerParams fest. Wenn das Feld z. B. Ziffern im Stil einer Postleitzahl enthält, verwenden Sie den Texttyp TT_Index.
- legen Sie die Sprache mit der Methode SetPredefinedTextLanguage fest. Die Verwendung spezieller vordefinierter Sprachen (nur unter Windows) kann hilfreich sein, wenn Sie wissen, welche Art von Informationen das Feld enthält. Wenn das Feld z. B. eine Adresse in den USA enthält, wählen Sie die vordefinierte Sprache English_US_Address. Dadurch wird sichergestellt, dass der Text zuverlässiger erkannt wird.
- legen Sie die Eigenschaften SaveCharacterRecognitionVariants und SaveWordRecognitionVariants des Objekts RecognizerParams fest, wenn Sie die Erkennungsvarianten zur weiteren Überprüfung des Ergebnisses benötigen, wie unten in Schritt 6 beschrieben. Beachten Sie, dass diese Einstellung für handschriftliche oder in Druckschrift geschriebene Texte nicht verfügbar ist.
C#
C++ (COM)
Schritt 5. Erkennung
Schritt 5. Erkennung
Da das Dokumentlayout bereits analysiert und zusätzlich von Ihnen geändert wurde, rufen Sie die Analysemethoden nicht noch einmal auf. Verwenden Sie die Methode Recognize, die für alle Seiten im Dokument die Erkennung und Seitensynthese durchführt. In diesem Szenario müssen Sie die Daten aus Feldern extrahieren und das erkannte Dokument nicht exportieren, daher benötigen Sie keine Dokumentsynthese.
C#
C++ (COM)
Schritt 6. Mit den erkannten Daten arbeiten
Schritt 6. Mit den erkannten Daten arbeiten
Verwenden Sie das Objekt Text, um auf das erkannte Textfragment zuzugreifen (Sie können dieses Objekt für einen Textblock über die Eigenschaft ITextBlock::Text abrufen). Verwenden Sie die Eigenschaft Paragraphs, um die Sammlung der Absätze im Fragment abzurufen, und die Methode IParagraphs::Item, um auf einzelne Absätze zuzugreifen. Die Eigenschaft IParagraph::Text bietet Zugriff auf den erkannten Text eines Absatzes.Sie können IParagraph::Words verwenden, um die Wortsammlung eines Absatzes abzurufen. Verwenden Sie die Methode IWords::Item, um auf einzelne Wörter in der Sammlung zuzugreifen. Die Eigenschaft IWord::Text gibt die Zeile zurück, die das erkannte Wort enthält. Verwenden Sie die Methode GetRecognitionVariants des Word-Objekts oder die Methode GetWordRecognitionVariants des Paragraph-Objekts, um die Erkennungsvarianten für ein Wort abzurufen.Auf die Attribute einzelner Zeichen kann über die Methode GetCharParams des Paragraph-Objekts zugegriffen werden. Diese Methode bietet Zugriff auf das Objekt CharParams, das die Parameter des erkannten Zeichens enthält. Auf die Erkennungsvarianten eines Zeichens kann über die Eigenschaft ICharParams::CharacterRecognitionVariants zugegriffen werden.Ausführliche Informationen zur Arbeit mit Text finden Sie unter Arbeiten mit Text. Informationen zur Verwendung der Engine in Voting-Algorithmen finden Sie unter Verwenden der Voting API.Nachdem Sie Ihre Arbeit mit dem Objekt FRDocument abgeschlossen haben, geben Sie alle von diesem Objekt verwendeten Ressourcen frei. Verwenden Sie dazu die Methode IFRDocument::Close.
Schritt 7. ABBYY FineReader Engine entladen
Schritt 7. ABBYY FineReader Engine entladen
Nachdem Sie die Arbeit mit ABBYY FineReader Engine beendet haben, müssen Sie das Engine-Objekt entladen. Verwenden Sie dazu die exportierte Funktion DeinitializeEngine.
C#
C++ (COM)
Erforderliche Ressourcen
Zusätzliche Optimierung
- Erkennung
- Arbeiten mit Sprachen
Verwendung integrierter und benutzerdefinierter Erkennungssprachen. - Arbeiten mit Wörterbüchern
Verwendung von Wörterbüchern zur Verbesserung der Erkennungsqualität. - Erkennen von Wörtern mit Leerzeichen
Verwendung von Wörterbüchern zum Erkennen von Wörtern mit Leerzeichen (z. B. New York). - Erkennen handschriftlicher Texte
Verwendung von ICR (Intelligent Character Recognition). - Erkennen von Häkchen
Einrichten der Erkennung von Häkchen und Häkchengruppen. - Spezielle vordefinierte Sprachen in ABBYY FineReader Engine - Windows
Liste der Erkennungssprachen, die spezielle Spracheinheiten enthalten: Adressen, Datum und Uhrzeit, Personennamen usw. Diese Sprachen können für die Felderkennung verwendet werden.
- Arbeiten mit Sprachen
- Arbeiten mit den erkannten Daten
- Arbeiten mit Text
Arbeiten mit erkanntem Text, Absätzen, Wörtern und Zeichen. - Verwenden der Voting API
Arbeiten mit Wörtern und Alternativen der Zeichenerkennung.
- Arbeiten mit Text
