RecognitionOCRA-Aktionen

Die Aktionsbibliothek 'OCR_A' führt eine vollständige Erkennung von Bildern auf Seiten- und Feldebene aus.

Die Aktionsbibliothek 'OCR/A' stellt Aktionen bereit, mit denen die Erkennung vollständiger Seiten auf Feldebene, die Drehung von Bildern, Erstellung von PDF-Dateien und weitere Operationen mithilfe der OCR/A-Engine ausgeführt werden können.

Es kann die Erkennung auf Seiten- oder Feldebene ausgeführt werden, die dann von Aktionen in anderen Aktionsbibliotheken verarbeitet und letztendlich dem Benutzer zur Verifizierung angezeigt oder in externe Repositorys oder Dateisystemen exportiert werden kann.

Es werden von Maschinen geschriebene und handgeschriebene Texte erkannt. Kursiver Text wird nicht unterstützt.

Es wird dringend empfohlen, den Leitfaden "Best Practices for optimal text recognition in IBM Datacap" (Bewährte Verfahren für optimale Texterkennung in IBM Datacap) zu lesen, um zu verstehen, wie die besten Ergebnisse bei der Erkennung erzielt werden können.

Unterstützte Sprachen

Für eine korrekte Erkennung muss die erwartete Sprache festgelegt sein. Wenn eine Seite mehrere Sprachen enthalten kann, ermöglicht die Spracherkennung auch die Ermittlung mehrerer Sprachen. Die Angabe von Sprachen, die nicht auf der Seite vorkommen, kann die Qualität der Erkennung reduzieren. Nach Abschluss des OCR-Prozesses wird ein Bericht zur Anzahl der erkannten Sprachen und der Anzahl der in jeder Sprache erkannten Wörter generiert. Dieser Bericht wird im Laufzeit-DCO in Form von Variablen gespeichert und befindet sich auch in der XML-Layoutdatei.

So aktivieren Sie die automatische Spracherkennung:
  • Legen Sie mit rrSet oder einer ähnlichen Aktion für die Variable "y_lg" eine durch Kommas getrennte Liste mit mindestens drei Sprachen aus dem weiter unten folgenden Abschnitt "Von der Spracherkennung unterstützte Sprachen" fest.
  • Rufen Sie nach der Festlegung der Sprachen eine Erkennungsaktion wie 'RecognizePage', 'Recognize', 'RecognizePageFields', usw. auf.

Hinweis: Es wird empfohlen, in der Liste der Sprachen nur die Sprachen anzugeben, die tatsächlich durch die Anwendung verarbeitet werden. Dies liegt daran, dass die Angabe vieler Sprachen die Verabeitungsgeschwindigkeit beeinträchtigt und die Erkennungsqualität durch die Angabe von Sprachen, die nicht auf der Seite vorkommen, reduziert werden kann.

Von der Spracherkennung unterstützte Sprachen

Wichtig: Wenn Sie die durch Kommas getrennte Liste der Sprachen festlegen, müssen Sie sicherstellen, dass die Sprachen genau in der unten angegebenen Schreibweise ohne Leerzeichen angegeben werden. Ein ungültiger Sprachenname führt dazu, dass die Aktion abgebrochen wird. Der Text nach dem Doppelpunkt (:) dient nur der Information und sollte nicht in die Sprachenspezifikation eingeschlossen werden. Sprachen, für die auch die Handschrift unterstützt wird, werden durch 'ICR' gekennzeichnet.
  • Afrikaans : ICR
  • Agul
  • Albanian : ICR
  • Arabic: Arabisch (Saudi-Arabien)
  • ArmenianWestern: Armenisch (westlich)
  • AzeriLatin : Aserbaidschanisch (Lateinisch), ICR
  • Bashkir : ICR
  • Bulgarian : ICR
  • Catalan : ICR
  • ChinesePRC: Vereinfachtes Chinesisch
  • ChineseTaiwan: Traditionelles Chinesisch
  • Croatian : ICR
  • Czech : ICR
  • Danish : ICR
  • Dutch : Niederländisch, ICR
  • DutchBelgian : Belgien, ICR
  • English : ICR
  • Esperanto
  • Estonian : ICR
  • Finnish : ICR
  • French : ICR
  • German : ICR
  • GermanLuxembourg : Deutsch (Luxemburg), ICR
  • GermanNewSpelling : Deutsch (neue Rechtschreibung), ICR
  • Greek : ICR
  • Hebrew
  • Hungarian : ICR
  • Indonesian : ICR
  • Irish : ICR
  • Italian : ICR
  • Japanese
  • JapaneseModern : Erweiterter Zeichensatz, der englische Zeichen enthält
  • Korean
  • Korean+English: Koreanisch und Englisch
  • KoreanHangul: Koreanisch (Hangul)
  • Latin : ICR
  • Latvian : ICR
  • Lithuanian : ICR
  • Mathematical : Englische und allgemeine mathematische Symbole wie ±¼½¾×÷ΣΩαβ≈≠≡≤≥≪≫usw.
  • Norwegian : Nynorsk-Norwegisch und Bokmal-Norwegisch, ICR
  • NorwegianBokmal : Norwegisch (Bokmal), ICR
  • NorwegianNynorsk : Norwegisch (Nynorsk), ICR
  • OldEnglish : ICR
  • OldFrench : ICR
  • OldGerman : ICR
  • OldItalian : ICR
  • OldSpanish : ICR
  • Polish : ICR
  • PortugueseBrazilian : Portugiesisch (Brasilien), ICR
  • PortugueseStandard : Portugiesisch (Portugal), ICR
  • Romanian : ICR
  • RussianOldSpelling
  • Russian : ICR
  • RussianWithAccent : Russisch (mit Akzenten zur Kennzeichnung der Betonung)
  • Slovak : ICR
  • Slovenian : ICR
  • Spanish : ICR
  • Swedish : ICR
  • Tatar
  • Thai
  • Turkish : ICR
  • Ukrainian : ICR
  • Vietnamese

Die Sprache kann an das DCO-Objekt gebunden werden, indem sie auf der Registerkarte 'OCR_A' der Registerkarte zu den Zonen von Datacap Studio ausgewählt wird. Nach der Auswahl auf der Registerkarte 'OCR_A' wird die Variable y_lg auf die Sprache gesetzt. Die Sprache kann auch innerhalb der Regeln festgelegt werden, indem die Variable y_lg mit der Aktion rrSet auf die gewünschte Sprache gesetzt wird. Beispiel: Mit rrSet("Italian", "@X.y_lg") wird Italienisch als Sprache festgelegt.

Wenn die Variable s_lg für das aktuelle DCO-Objekt nicht festgelegt ist, wird die erkannte Sprache über die aktuelle Ländereinstellung bestimmt, die in der Variablen hr_locale festgelegt ist. Wenn mit der Ländereinstellung rrSet("de-DE", "@X.hr_locale") beispielsweise Deutschland festgelegt ist, wird der Text als deutscher Text erkannt.

Wenn beide Variablen 'hr_locale' und 'y_lg' festgelegt sind, hat der Wert der Variablen y_lg Vorrang über die Ländereinstellung. Wenn y_lg festgelegt ist, die Engine stattdessen aber den Wert verwenden soll, der für hr_locale festgelegt ist, kann der Variablen dco_uselocale durch das Setzen von "1" Vorrang vor hr_locale gegeben werden.

Beispiele zum Festlegen mehrerer Sprachen:
  • rrSet("English,French,German", @P.y_lg") - Automatische Erkennung von Englisch, Französisch oder Deutsch
  • rrSet("English,German,GermanNewSpelling,Norwegian", @P.y_lg") - Automatische Erkennung von Englisch, Französisch, Deutsch oder Norwegisch
  • rrSet("ChinesePRC+@CHR(43)+English", "@P.y_lg") - Eine Ausnahme für die Angabe von vereinfachtem Chinesisch und Englisch, um die Interpretation von + durch intelligente Parameter zu verhindern.
  • rrSet("@STRING(ChinesePRC+English)", "@P.y_lg") - Eine Ausnahme für die Angabe von vereinfachtem Chinesisch und Englisch, um die Interpretation von + durch intelligente Parameter zu verhindern.

Handschrifterkennung

Die OCR/A-Aktionen können handgeschriebene Texte erkennen. Die korrekte Erkennung von Handschrift ist viel schwieriger als die Erkennung von Texten, die von Maschinen generiert werden, und der Erfolgt ist in erheblichem Maß von der Qualität der Zeichen abhängig. Die Verwendung von strukturierten Formularen zur Begrenzung des möglichen Zeichenbereichs, zusammen mit Zonenebenenfiltern und der Prüfung einzelner Zeichen kann die Genauigkeit erheblich verbessern. Ihre Anwendung muss die reduzierte Genauigkeit von handgeschriebenen Texten im Vergleich zu der hohen Qualität der maschinell geschriebenen Texte bearbeiten. Zusätzlich zum Festlegen von Einschränkungen für den erkannten Text, korrigieren die Anwendungen den Text in der Regel mit einer Kombination aus Regeln und Prüfung. Die Erkennung von handschriftlichen Zeichen dauert länger als die Erkennung von maschinell gedrucktem Text.

Handgeschriebener Text hat die folgenden Voraussetzungen für die beste Erkennung:
  • Der Text sollte aus vorgedruckten Formularen stammen; Blindfarben funktionieren am besten. Hierbei kann es sich um Kammfelder oder Kästchen mit Blindfarben handeln.
  • Die Buchstaben dürfen sich nicht berühren.
  • Blockelemente funktionieren am besten.
  • Die Liste der Sprachen und Symbole, die für die Handschrift unterstützt werden, ist kleiner als die für maschinell erstellte Texte.
  • Felder mit mehreren Zeilen werden unterstützt, aber Sie erhalten bessere Ergebnisse bei Feldern mit einzelnen Zeilen.
  • Schreiben Sie Zeichen mit einheitlicher Größe und einheitlichem Abstand.
  • Verwenden Sie bei Blindfarben keinen Stift in der gleichen Blindfarbe.
  • Mit der Bildverbesserung kann die Erkennung unterstützt werden, indem Linien, Kammlinien und dunkle handschriftliche Zeichen entfernt werden.
  • Bleistifte und Filzstifte erzielen schlechtere Ergebnisse.
  • Kursiver Text wird nicht unterstützt.
  • Der Text muss sich in einem Feld befinden.
  • Durch das Festlegen eines regulären Ausdrucks im Eigenschaftendialog, der dem Feld zugeordnet ist, mit dem die erwarteten Zeichen angegeben werden, kann die Erkennung verbessert werden.
  • Das automatische Drehen wird nicht unterstützt, wenn die Handschrifterkennung aktiviert ist.
  • Die Bilderkennung wird nicht unterstützt, wenn die Handschrifterkennung aktiviert ist.
  • Die Tabellenerkennung wird nicht unterstützt, wenn die Handschrifterkennung aktiviert ist.

Die Handschrifterkennung kann auf der Registerkarte 'OCR/A' auf der Registerkarte 'Zones' (Zonen) in Datacap Studio aktiviert werden. Aktivieren Sie die Bearbeitung in der DCO-Baumstruktur und wählen Sie aus, welche Zielseite oder welches Zielfeld als handschriftlicher Text erkannt werden soll. Wählen Sie in der Eigenschaft "Text Type" (Texttyp) die Option "HandPrint" aus, damit handschriftlicher Text erkannt wird.

Auf der Registerkarte der Eigenschaft "OCR/A" finden Sie auch die Eigenschaft "Writing Style". Mit dieser Eigenschaft wird der Schreibstil von handschriftlichem Text konfiguriert. Diese Einstellung hat standardmäßig den Wert "Automatic Detection", mit dem die Engine versucht, den Stil zu erkennen. Durch die Festlegung des richtigen Schreibstils kann die Erkennung verbessert werden. Die Gruppe der unterstützten Zeichensätze für die Erkennung von handschriftlichem Text ist begrenzt. Symbole wie * ^ ™ © ® № § ¡ ¿ ‰ können nicht erkannt werden. Die automatische Layoutanalyse ist für handschriftlichen Text nicht verfügbar.

CCO-Datei

Bei CCO handelt es sich um die Darstellung eines erkannten Texts auf einer Seite mit Informationen zur Zeichenkonfidenz. Jedes erkannte Zeichen hat einen Verlässlichkeitsscore, bei dem es sich um eine Anzeige der Engine zur ermittelten Genauigkeit der Erkennung handelt. CCO ist für viele Datacap-Operationen wie die Funktion 'Klick-n-Taste' für eine Überprüfungsanzeige erforderlich. Aktionen, die für den vollständigen Seitentext ausgeführt werden, benötigen ebenfalls eine CCO-Datei, z. B Locate-Aktionen. Die OCR/A-Aktion 'RecognizePage' führt die Erkennung aus und erstellt und normalisiert die CCO-Datei automatisch. Mit der OCR/A-Aktion 'Recognize' wird nicht direkt eine CCO erstellt. Dabei wird eine Layoutdatei erstellt, die mithilfe der Aktion 'CreateCcoFromLayout' in der Aktionsbibliothek 'SharedRecognitionTools' in eine CCO-Datei konvertiert werden muss. Sobald die CCO-Datei erstellt wurde, können die nachfolgenden Funktionen verwendet werden, für die die CCO-Datei erforderlich ist.

Text mit Ausrichtung von rechts nach links

Beim Erkennen von Text, der von rechts nach links geschrieben wird, wie beispielsweise hebräischer oder arabischer Text, setzen Sie die DCO-Variable 'hr_bidi' auf den Wert 'RTL'. Dadurch wird angezeigt, dass der erwartete Text von rechts nach links gelesen werden soll. Mit dieser Variable wird angepasst, wie der Text in der CCO-Datei gespeichert wird. Dabei wird auch für Datacap Desktop angezeigt, ob die Seite oder das Feld bei der Anzeige von rechts nach links gelesen werden soll. Diese Variable muss für jede Erkennungsaktion wie 'RecognizePageOCR_A', 'RecognizePageFieldOCR_A', 'Recognize', usw. festgelegt werden. Wenn 'hr_bidi' nicht festgelegt ist oder auf 'LTR' gesetzt ist, wird der Text als linksgerichteter Text betrachtet. Wenn die Ausrichtung des erkannten Texts nicht mit der Einstellung von 'hr_bidi' übereinstimmt, kann die Reihenfolge der Zeichen möglicherweise falsch sein.

Hierarchische Variablen

Variablen, die mit 'hr_' beginnen, sind hierarchische Variablen. Die Variablen 'hr_locale' und 'hr_bidi' sind hierarchisch. Eine hierarchische Variable ist eine spezielle Variable, da ihr Wert an die weiter unten liegenden Objekte in der DCO-Baumstruktur weitergegeben wird. Wenn die Variable also auf Dokumentebene festgelegt ist, wird sie auch für alle Seiten unterhalb des Dokumentknotens und für alle Felder unter dem jeweiligen Seitenknoten angewendet, es sei denn, eine weitere 'hr_'-Variable ist in einer niedrigeren Ebene festgelegt, durch die der Wert aus der höheren Ebene überschrieben wird.

Wenn Sie beispielsweise eine Seite mit 10 Feldern haben, von denen 9 Felder als RTL und ein Feld als LTR behandelt werden sollen, müssen Sie 'hr_bidi' nur an zwei Stellen festlegen. Legen Sie die Variable zuerst auf Seitenebene als RTL fest. Dies wirkt sich auf alle Felder aus. Setzen Sie 'hr_bidi' dann bei dem einen Feld, das als LTR behandelt werden soll, auf 'LTR', um die Einstellung für die Seite auf höherer Ebene zu überschreiben.

Bild mit OCR/A-Aktionen anpassen

Durch die Aktionen 'RecongizePageOCR_A', 'Recognize', 'RecognizePageFieldsOCR_A' und 'RecognizeToPDF' kann die Engine das Bild während der Erkennungsaktion anpassen. Die Aktion 'RotateImageOCR_A' berücksichtigt außerdem die Einstellungen für die Anpassung. Die Aktionen passen zuerst das Bild auf Basis der aktivierten Funktionen zur Bildanpassung an und führen anschließend die Erkennung aus. Dies entspricht weitgehend der Verwendung des Regelsatzes 'Image Enhancement' vor dem Aufruf einer Erkennungsaktion. In einigen Fällen ist die Erkennungsengine zuverlässiger als der Regelsatz 'Image Enhancement', da die Zeichenform besser erkannt wird, während der Regelsatz 'Image Enhancement' nur auf Basis der Bildgeometrie funktioniert. Abhängig von der Anwendung kann es trotzdem erforderlich sein, Bildverbesserungen vor der Erkennung auszuführen. Beispielsweise sollten Bilder vor dem Fingerabdruck gedreht und ausgerichtet werden. Auch eine zusätzliche Bildbereinigung kann vor der Verwendung von Fingerabdrücken erforderlich sein.

Mit den folgenden Aktionen können Bildanpassungen während der Verarbeitung automatisch gedreht, ausgerichtet und ausgeführt werden:
  • RecognizePageOCR_A
  • Recognize
  • RecognizePageFieldsOCR_A
  • RotateImageOCR_A
Wenn der Text nicht korrekt erkannt wird, ist die Bildverbesserung das erste Tool, mit dem die Erkennung verbessert werden kann. Wenn beispielsweise Zeichen falsch erkannt werden oder der Text vollständig fehlt, wird normalerweise zuerst die Qualität des zu erkennenden Bildes geprüft. Bilder sollten sich in der richten Ausrichtung befinden und nicht schief sein, der Text sollte scharfe durchgezogene Linien mit minimalem Hintergrundrauschen haben. Wenn die Seite Blindfarben oder Schattierungen enthält, sollten diese ebenfalls vor der Erkennung entfernt werden. Selbst wenn der Text bereinigt und klar ist, kann es hilfreich sein, ihn vor der Erkennung fett zu machen, um Probleme bei der Erkennung zu korrigieren. Das Originalbild wird immer gespeichert, damit es weiterhin verwendet oder nach der Erkennung zur Archivierung wiederhergestellt werden kann.
Wenn Bildverbesserungen vor der Erkennung vorgenommen werden müssen, sind die folgenden Schritte vor der Erkennung oder ähnliche Schritte erforderlich (dabei handelt es sich wahrscheinlich um separate Regelsätze):
  • RotateImageOCR_A (zum Drehen, Ausrichten und Korrigieren von fehlerhaften Bildern).
  • Regelsatz 'ImageEnhancement' (für die Ausführung weiterer Verbesserungen wie z. B Zeilenentfernung).
  • Weitere Arten von Operationen, wie z. B. der Fingerabdruckabgleich.
  • RecognizePage, Recognize, RecognizePageFields oder RecognizeFields.
Bei Anwendungen, für die die Drehung und Ausrichtung nicht von der Erkennung getrennt ausgeführt werden muss, können die Erkennungsaktionen einige dieser Anpassungen in einem Schritt ausführen.

Drehung/Ausrichtung der Seite

Eine Seite muss vor der Erkennung korrekt ausgerichtet sein. Die Aktionen 'RecognizePageOCR_A', 'RecognizePageFieldOCR_A' und 'Recognize' können ein Bild während der Erkennung drehen. Alternativ kann das Bild vor der Erkennung mit der Aktion 'RotateImageOCR_A' oder dem Regelsatz 'Image Enhancement' gedreht werden, wenn die Drehung und Erkennung in verschiedenen Schritten ausgeführt werden müssen.

Die Drehung während des Erkennungsschritts kann mit der Aktion 'SetAutomaticRotationOCR_A' konfiguriert werden. Die automatische Drehung ist standardmäßig aktiviert. Wenn Bilder zuvor gedreht wurden oder die richtige Ausrichtung garantiert werden kann, kann die automatische Drehung mit dem Aufrufen von 'SetAutomaticRotationOCR_A(False)' vor einer OCRA-Erkennungsaktion inaktiviert werden. So kann es beispielsweise erforderlich sein, 'RotateImageOCR_A' vor dem Fingerabdruck aufzurufen, damit die automatische Drehung im Erkennungsschritt inaktiviert werden kann. Wenn ein Bild Text mit verschiedenen Ausrichtungen enthält, z. B. vertikal und horizontal, wird das Bild möglicherweise auf unerwünschte Weise gedreht.

Wenn der Texttyp auf 'Hand Print' (Handschrift) gesetzt ist, kann die Ausrichtung nicht automatisch angepasst werden.

Ausrichten der Seite

Beim Ausrichten wird ein Bild leicht gedreht, damit ein geneigter Text korrigiert werden kann. Ein ausgerichtetes Bild stellt eine bessere Erkennung bereit und erzielt in der Überprüfungstask bessere Ergebnisse. Wenn ein Bild nicht ausgerichtet ist, wird eine einzelne Textzeile möglicherweise schlecht erkannt oder in mehrere Zeilen aufgeteilt, anstatt als einzelne Zeile angezeigt zu werden. Wenn die Erkennung nach dem Ausrichten eines Bildes ausgeführt wird, erhöht dies die Qualität der Erkennung und es wird sichergestellt, dass die erkannten Koordinaten mit der Textposition im angepassten Bild übereinstimmen.

Eine Seite kann vor der Erkennung mithilfe der Aktionen zur Bildverbesserung ausgerichtet werden. Alternativ kann das Bild auch während der Erkennung mit den Aktionen 'Recognize' und 'RecognizePage' automatisch ausgerichtet werden. Die Erkennung kann durch das Festlegen der Variable 'y_correctSkewMode' in der Erkennungsengine ausgeführt werden. Wenn das Bild mithilfe der Erkennungsengine ausgerichtet wird, muss es nicht vorher mit den Aktionen zur Bildverbesserung ausgerichtet werden. Es kann allerdings hilfreich sein, abhängig von der Qualität Ihrer Eingabedokumente andere Aktionen zur Bildbereinigung vor der Erkennung vorzunehmen.

Wenn die Erkennungsengine ein Bild ausrichtet, wird eine Sicherungskopie des Originalbildes erstellt und das angepasste Bild wird als neues Seitenbild gespeichert, das in weiteren Schritten (z. B. bei der Überprüfung) verwendet werden kann. Ein Bild kann maximal um 15 Grad geneigt werden. Wenn dieser Wert überschritten wird, führt die Engine die Ausrichtung möglicherweise nicht durch.

Damit die Engine das Bild während der Erkennung ausrichtet, setzen Sie für 'y_correctSkewMode' einen der folgenden Werte fest:
  • 0 : Ausrichtung während der Erkennung ist inaktiviert.
  • 1 : Ausrichtung mit horizontalen schwarzen Registermarken.
  • 2 : Ausrichtung mit vertikalen schwarzen Registermarken.
  • 4 : Ausrichtung mit horizontalen Linien (nicht verwenden, falls Zeilen nicht auf der Seite angezeigt werden).
  • 8 : Ausrichtung mit vertikalen Linien (nicht verwenden, falls Zeilen nicht auf der Seite angezeigt werden).
  • 16: Ausrichtung mit horizontalem Text (Standardwert, wenn 'y_correctSkewMode' nicht festgelegt ist).
Das Ausrichten einer Seite kann dazu führen, dass die physische Größe eines Bildes etwas größer wird, da durch die Drehung zusätzliche Pixel entlang des Bildes hinzugefügt werden, damit dieses erhalten bleibt. Eine ausgerichtete Seite mit einer Größe von 8,5 x 11 Zoll kann anschließend eine Größe von 9,265 x 11,59 Zoll haben. Der Umfang der Zunahme hängt von der Neigung des Bildes ab. Bei einer vollständigen Seitenerkennung spielt diese Änderung normalerweise keine Rolle. Wenn Sie die Erkennung auf Feldebene vornehmen, werden Zonen möglicherweise falsch ausgerichtet. In dieser Situation kann es erforderlich sein, Anker für die Farbdichtesteuerung zu verwenden, um das Bild an die Zonen anzupassen oder auf Originalgröße abzuschneiden.

Korrektur der Bildgeometrie

Der Geometriefilter versucht, geometrische Verzerrungen (Perspektive auf Fotos, gekrümmte Linien bei gescannten Büchern, usw.) im Bildern zu korrigieren. Standardmäßig wird diese Funktion automatisch ausgeführt. Um die Funktion explizit zu aktivieren, setzen Sie die DCO-Variable 'y_pdfGeomCorrect' auf '1'. Zum Inaktivieren der Funktion setzen Sie den Wert '0' fest.

Kontrast verbessern

Die DCO-Variable 'y_EnhanceLocalContrast' kann aktiviert werden, damit die Engine den Kontrast vor der Erkennung erhöht. Wenn diese Einstellung aktiviert ist, wird der Kontrast eines Bildes vor der Erkennung erhöht. Dadurch kann die Qualität der Erkennung insbesondere bei Bildern mit einem Text vor einem farbigen Hintergrund verbessert werden, beispielsweise bei einer Fahrerlaubnis. Diese Einstellung kann nur für Farb- oder Graustufenbilder verwendet werden. Wenn diese DCO-Variable auf '1' gesetzt ist, wird die Kontrasteinstellung aktiviert; bei '0' ist die Anpassung inaktiviert. Wenn die Variable nicht festgelegt ist, ist sie standardmäßig inaktiviert. Beispiel: rrSet("1","@X.y_EnhanceLocalContrast")

Rauschfilter

Durch das Festlegen der DCO-Variable 'y_ApplySigmaFilter' kann ein Rauschfilter für das Bild angewendet werden. Standardmäßig wird der Filter automatisch angewendet. Der Filter kann spezifisch aktiviert werden, wenn der Wert '1' festgelegt wird, und ist mit dem Wert '0' inaktiviert. Durch diese Anpassung soll die Erkennung eines Bildes verbessert werden. Sie kann sich auf die Anpassung von Farben auf einem Bild oder einem Foto auswirken.

Korrektur von Negativbildern

Die Engine kann erkennen, ob es sich bei dem Bild um ein Negativbild handeln, in dem der Großteil der Seite weißer Text auf einem schwarzen Hintergrund ist. Die Engine konvertiert das Bild in einen schwarzen Text auf einem weißen Hintergrund. Diese Funktion ist standardmäßig inaktiviert. Sie kann aktiviert werden, indem die DCO-Variable 'y_CorrectNegativeImage' auf '1' gesetzt wird. Durch diese Anpassung soll die Erkennung eines Bildes verbessert werden. Sie funktioniert am besten bei einem Schwarzweißbild. Sie kann auch für ein Farbbild ausgeführt werden, aber dabei werden möglicherweise Farben für ein Bild oder ein Foto angepasst, obwohl es sich dabei nicht um ein Negativbild handelt.

Bild zuschneiden

In dieser Erweiterung werden die Bildkanten in einem Foto gesucht und das Bild wird zugeschnitten. Standardmäßig ist diese Einstellung automatisch aktiviert und die Engine trifft die Entscheidung, das Bild zuzuschneiden. Diese Funktion kann inaktiviert werden, indem die DCO-Variable "y_CropImage" auf "0" gesetzt wird, oder sie kann durch das Setzen von "y_CropImage" auf "1" aktiviert werden. Wenn das Zuschneiden immer aktiviert sein soll, wird empfohlen, den Vorgang zuerst mit einer Gruppe echter Bilder zu testen, um sicherzustellen, dass der Bildzuschnitt für Ihre Dokumente geeignet ist. Der Erfolg des Vorgangs kann variieren. Diese Einstellung unterstützt nur Farbbilder.

Anpassung der Auflösung

Bei der Ausführung der Erkennung versucht die Engine, Bilder mit einer niedrigen oder hohen Auflösung zu korrigieren, indem ein Maßstab für die Auflösung festgelegt wird, der für die Erkennung geeignet ist. Die DCO-Variable 'y_OverwriteResolution' ermittelt, ob die Engine die Auflösung des Bildes anpasst. Gültige Werte sind '0' (keine Anpassung), '1' (Bild wird angepasst) und '2' (die Engine ermittelt automatisch, ob das Bild angepasst werden soll). Wenn 'y_OverwriteResolution' nicht festgelegt ist, wird standardmäßig der Wert '2' (automatisch) verwendet. Wenn die Variable mit '0' inaktiviert und die Auflösung des Bildes zu niedrig (weniger als 50 dpi), zu hoch (über 3200 dpi) oder nicht definiert ist, schlägt die Erkennung fehl. Die Variable 'y_ResolutionToOverwrite' ermittelt die neue DPI des Bildes. Wenn sie nicht festgelegt ist werden standardmäßig 300 dpi verwendet.

Bild an empfohlene DPI anpassen

Die DPI eines Bilds kann sich auf die Qualität der Texterkennung auswirken. Bilder mit einer niedrigen DPI von 150 oder weniger können nur schlecht erkannt werden. Durch diese Funktion wird die Engine angewiesen, die DPI eines Bildes auf einen Wert anzupassen, der für das Bild vor der Erkennung am geeignetsten angesehen wird. Mit dieser Einstellung kann die DPI von Bildern erhöht werden. Wenn die Anwendung Bilder mit einer geringen Auflösung aufnimmt, kann die Erkennungsqualität mit diesem Bild verbessert werden. Führen Sie einen Test mit echten Beispielen aus, um festzustellen, ob die Erkennung von Bildern mit einer geringen Auflösung durch diese Funktion durchgängig verbessert werden kann. Diese Funktion wird durch das Setzen der DCO-Variable "y_UseSuggestedDPI" auf "1" aktiviert.

Datacap verfügt in anderen Aktionsbibliotheken über Aktionen (z. B. "ImageUtilities"), mit denen die Auflösung von Bildern mit einer niedrigen Auflösung ebenfalls verbessert werden kann. In einigen Fällen können mit diesen Aktionen, in denen die Auflösung auf eine vordefinierte Auflösung von 250 oder 300 DPI erhöht wird, bessere Ergebnisse als mit dieser Einstellung erzielt werden. Regeln können auf einfache Weise konfiguriert werden, um den aktuellen DPI-Wert eines Bildes festzustellen und optional zu erhöhen, falls er für das aktuelle Bild zu niedrig ist. Es wird empfohlen, mithilfe von Tests zu ermitteln, bei welcher Methode die besten Gesamtergebnisse erzielt werden.

Bilder mit niedriger DPI auf eine festgelegte DPI anpassen

Ähnlich wie in der vorherigen Einstellung können Bilder automatisch auf einen festgelegten Wert angepasst werden, deren DPI niedriger als ein bestimmter DPI-Wert ist. Wenn die DPI eines Bildes beispielsweise niedriger als 150 DPI ist, kann es vor der Erkennung auf 300 DPI angepasst werden. Die Variable "y_SetNewDPI" steuert die neue DPI für das Bild. Wenn die Variable leer ist, wird keine Anpassung durchgeführt. Die Variable "y_SetNewDPIMinDPI" steuert die minimale DPI eines Bildes. Wenn der Wert für das Bild über dieser DPI liegt, wird keine Anpassung vorgenommen.
rrSet("300", "@X.y_SetNewDPI")
rrSet("140", "@X.y_SetNewDPIMinDPI")
In diesem Beispiel werden alle Bilder mit einer DPI von weniger als 140 angepasst und in eine DPI von 300 konvertiert.

Korrektur von Schatten und Hervorhebungen

Das Bild wird angepasst, um starke Schattierungen und Hervorhebung zu korrigieren und somit die Qualität der Erkennung zu verbessern. Der Filter ist für die Verwendung in Fotos vorgesehen, in einigen Fällen können aber auch gescannte Dokumente verbessert werden. Standardmäßig ist dieser Filter automatisch festgelegt und die Engine entscheidet, ob er angewendet werden soll. Der Filter kann immer aktiviert werden, indem die DCO-Variable 'y_CorrectShadowsAndHighlights' auf '1' gesetzt wird, und er wird durch das Festlegen des Werts '0' inaktiviert. Durch diese Anpassung soll die Erkennung eines Bildes verbessert werden. Sie kann sich auf das Ändern der Schärfe eines Bildes oder Fotos auswirken.

Sicherungsdatei für das Bild

Wenn ein Bild gedreht oder ausgerichtet werden muss oder eine andere Funktion zur Bildverbesserung aktiviert ist, wird das ursprüngliche Bild in einer Sicherungsdatei mit einem Namen im Format 'filename.ocra.ext' im Stapel gespeichert. Wenn die Originaldatei beispielsweise den Namen 'TM000001.tif' hat, lautet der neue Name der Originaldatei 'TM000001.ocra.tif' und die Datei 'TM000001.tif' wird mit der richtigen Drehung, Ausrichtung, Bildanpassung usw. aktualisiert. Das der Originaldatei hinzugefügte Suffix kann durch das Festlegen der DCO-Variable 'y_ImageSuffix' gesteuert werden. Wenn kein Wert festgelegt ist, wird der Standardwert ".ocra" verwendet. Die Sicherungsdatei für das Bild wird erstellt, falls das Originalbild später noch erforderlich ist. Es ist beispielsweise üblich, ein Bild für die Erkennung und/oder Überprüfung zu bearbeiten und das Originalbild anschließend nach der Beendigung des Stapels zu archivieren. Das Standardsuffix kann folgendermaßen geändert werden, bevor eine OCR_A-Aktion zum Anpassen des Bildes aufgerufen wird: rrSet(".mybackup",@X.y_ImageSuffix)

Wenn nur Funktionen zum Drehen oder Ausrichten aktiviert sind, stellt die Engine nur dann eine Sicherungskopie des Originalbildes her, wenn das Bild gedreht oder ausgerichtet wurde. Wenn andere Funktionen zur Bildverbesserung aktiviert sind, kann die Engine nicht immer ermitteln, ob das Bild aktualisiert wurde, oder die Änderung ist möglicherweise nicht erkennbar. In diesen Fällen wird trotzdem eine Sicherungskopie der Originaldatei erstellt.

Textextraktion aus PDF im Vergleich zur Texterkennung

Beim Erkennen einer PDF wird der Text in den Ergebnissen der Erkennung standardmäßig aus einer Kombination aus automatischer Erkennung, die in der PDF ausgeführt wird, und aus durchsuchbarem Text bezogen, der in die PDF integriert ist. Falls auf der Seite Bilder eingeschlossen sind, wird der Text von der Engine erkannt. Falls Bereiche auf der Seite ein Bild und dem Bild zugeordneten, durchsuchbaren Text enthalten, wählt die Engine aus, ob der durchsuchbare Text verwendet werden muss oder der Text aus dem übereinstimmenden Bild erkannt wird. Da die Erkennung von der Engine ausgeführt wird, kann die Zuverlässigkeit des Texts möglicherweise abweichen, selbst wenn der gleiche durchsuchbare Text in die PDF integriert ist. Mit der Variable 'y_contentReuseMode' wird erzwungen, dass die Engine nur den erkannten Text auf der Seite oder den auf der Seite integrierten Text verwendet. Die ausschließliche Verwendung des integrierten Texts verhindert auch die Erkennung und liefert Ergebnisse mit einer hohen Zuverlässigkeit.

Ein Nachteil bei der ausschließlichen Verwendung des integrierten Texts kann entstehen, wenn der Text falsch oder unvollständig ist und keine Erkennung zum Erfassen dieser fehlenden Daten ausgeführt wird. Dadurch wird eine XML-Layoutdatei erstellt, die im Vergleich zu der dem Benutzer angezeigten PDF unvollständig ist. Verwenden Sie diese Einstellung nicht, wenn es sich bei der PDF-Quellendatei um eine Datei mit Bild im Text handelt, da die Textebene in diesem Fall nicht extrahiert wird.

Wenn eine Textzeile Zeichen enthält, die nicht im Alphabet der ausgewählten Sprache für die Erkennung enthalten sind, wird dieser Text nicht in das Ergebnis geschrieben und Modus 0 oder 1 muss verwendet werden. Diese Einstellungen von 'y_contentReuseMode' können auf dem DCO-Knoten festgelegt werden, der konvertiert wird:
  • rrSet("0", "@X.y_contentReuseMode") - Der standardmäßige Automatikmodus, in dem eine Kombination aus Erkennung und integriertem Text verwendet wird.
  • rrSet("1", "@X.y_contentReuseMode") - Es wird nur die Erkennung zum Erstellen der XML-Layoutdatei verwendet.
  • rrSet("2", "@X.y_contentReuseMode") - Es wird nur integrierter Text zum Erstellen der XML-Layoutdatei verwendet.
Wenn Sie mit der Aktion 'PDFFREDocumentToImage' nur Bilder aus der Quellen-PDF erstellen, in der die Erkennung in einem separaten Schritt ausgeführt wird, setzen Sie die Variable 'convPdfIgnoreContent' vor dem Aufrufen von 'DocumentFactory' fest, um das Erstellen unnötiger Erkennungsergebnisse zu verhindern und eine schnellere Konvertierung von PDF in TIF zu ermöglichen. In Informationen zur Aktion finden Sie weitere Einzelheiten.

Nur-Bild-PDFs und Vektor-PDFs werden für die Erkennung und Konvertierung in TIF unterstützt. Bearbeitbare PDFs oder PDFs mit einem XFA-Format werden nicht unterstützt.

Angepasste Parameter

Diese Einstellungen können konfiguriert werden, indem die Variable in dem DCO-Knoten festgelegt wird, der die Aktion ausführt. Die Einstellung kann im Setup-DCO für den Knoten fest codiert sein oder zur Laufzeit mit der Aktion 'rrSet()' festgelegt werden. Wenn die Einstellung dem Setup-DCO hinzugefügt wird, wird sie automatisch für alle Objekte dieses Typs angewendet. Dadurch sind keine zusätzlichen Schritte erforderlich und die Verarbeitung dauert auch nicht länger, wie das bei der Verwendung von 'rrSet' zur Laufzeit der Fall ist. Die Aktion verwendet die Variable unabhängig davon, ob sie im Setup-DCO oder zur Laufzeit festgelegt ist.

Zur Festlegung angepasster Erkennungsparameter verwenden Sie die folgenden Variablen:

Aggressive Text Recognition (Aggressive Texterkennung): Eine optionale Einstellung weist die Engine an, eine aggressive Texterkennung durchzuführen. Durch das Setzen der Variablen 'y_EnableAggressiveTextExtraction' auf '0' wird diese Funktion inaktiviert und mit dem Wert '1' wird der aggressive Modus aktiviert. Die Einstellung ist standardmäßig aktiviert.

Durch diese Einstellung wird die Engine angewiesen, so viel Text im Bild wie möglich zu extrahieren. Dieser Modus kann hilfreich sein, wenn das Bild einen Text mit schlechter Qualität enthält. Dieser Verarbeitungsmodus kann dazu führen, dass Bilder fälschlicherweise als Text interpretiert werden oder horizontaler Text vertikal angeordnet wird. Es wird empfohlen, Tests mit aktivierter und inaktivierter Einstellung durchzuführen, um zu sehen, welcher Modus für Ihre Dokumente besser funktioniert.

Detect Text on Pictures (Text in Bildern erkennen): Mit dieser Einstellung wir die Engine angewiesen, den gesamten Text in einem Seitenbild zu erkennen, einschließlich dem in Abbildungen und Bildern integrierten Text. Diese Einstellung ist standardmäßig aktiviert. Um sie zu inaktivieren, setzen Sie die DCO-Variable 'y_DetectTextOnPictures' auf '0'.

Detect Porous Text (Lückenhaften Text erkennen): Mit dieser Einstellung wird die Engine angewiesen, lückenhaften Text zu erkennen. Diese Einstellung ist standardmäßig aktiviert. Um sie zu inaktivieren, setzen Sie die DCO-Variable 'y_DetectPorousText' auf '0.

Detect Matrix Printer Text (Text aus Matrixdrucker erkennen): Mit dieser Einstellung wird die Engine angewiesen, Punktmatrixtext zu erkennen. Diese Einstellung ist standardmäßig aktiviert. Um sie zu aktivieren, setzen Sie die DCO-Variable 'y_DetectMatrixPrinter' auf '0'.

Exhaustive Analysis (Umfassende Analyse): Diese Einstellung kann die Verbesserung zu Lasten der Geschwindigkeit verbessern. Es wird empfohlen, diese Variable in Tests zu aktivieren und zu inaktivieren, um zu ermitteln, ob die Erkennung Ihrer Dokumente dadurch verbessert wird und die Variablen nur dann zu aktivieren, wenn sie erforderlich sind. Diese Einstellung ist standardmäßig inaktiviert.

Zum Aktivieren dieser Funktion setzen Sie die DCO-Variable 'y_EnableExhaustiveAnalysisMode' auf '1'.

Low Resolution Mode (Modus mit geringer Auflösung): Diese Einstellung zeigt an, dass das Bild eine geringe Auflösung hat. Dies kann die Qualität der Erkennung verbessern, wenn Faxe, kleiner Text auf Bildern, Bilder mit einer niedrigen Auflösung oder einer schlechten Druckqualität erkannt werden sollen. Zum Aktivieren dieses Modus setzen Sie die DCO-Variable 'y_LowResolutionMode' auf '1'. Inaktivieren Sie diesen Modus, indem Sie die Variable auf '0' setzen. Wenn keine Angabe erfolgt, ist dieser Modus standardmäßig inaktiviert. Bei Bedarf können Anwendungsregeln eingerichtet werden, mit denen diese Einstellung aktiviert wird, wenn ein Bild zu klein ist oder eine niedrige Auflösung hat. Mit der Aktion 'SaveImageInformation' können Bildeigenschaften im DCO gespeichert und anschließend mit der Aktion 'rrCompareNumeric' getestet werden, um Regeln auf Basis dieser Bildeigenschaften zu steuern. Beispiel: rrSet("1","@X.y_LowResolutionMode")

Photo Mode (Fotomodus): Diese Einstellung zeigt an, ob das Verarbeitungsbild als Foto behandelt werden soll oder als Bild, bei dem es sich nicht um ein Foto handelt. Wenn das Bild ein Foto ist, wird durch die Aktivierung dieser Einstellung angepasst, wie die Engine den Text auf dem Bild erkennt. Dies kann die Qualität des Bildes verbessern, das mit einer Kamera erfasst wurde. Diese Einstellung wird durch die DCO-Variable 'y_PhotoProcessingMode' konfiguriert. Die Einstellung hat drei Modi: '0' = Das Bild ist kein Foto; '1' = Das Bild ist ein Foto; '2' = Automatic - Die Engine versucht, automatisch zu ermitteln, ob das Bild ein Foto ist. Wenn diese Variable nicht festgelegt ist, wird standardmäßig 'Automatic' verwendet. Beispiel: rrSet("1","@X.y_PhotoProcessingMode")

Text Recognition Only (Nur Texterkennung): Wenn die Variable 'Setting y_EnableTextExtractionMode' auf '1' gesetzt ist, wird die Erkennung 'text only' (nur Text) aktiviert. Es werden keine Tabellen erkannt. Wenn auf der Seite kein Text gefunden wird, kann er durch das Aktivieren dieser Einstellung möglicherweise gefunden werden. Wenn keine Tabellenerkennung erforderlich ist, kann die Aktivierung dieser Einstellung die Erkennung einiger Dokumente möglicherweise verbessern. Diese Einstellung ist standardmäßig inaktiviert. Die Aktionen 'RecognizePage' und 'RecognizeField' unterstützen keine Tabellen und die Aktivierung dieser Einstellung kann die Ergebnisse der Erkennung verbessern. Diese Einstellung kann auch für die Aktion 'Recognize' aktiviert werden, wenn keine Tabellenerkennung erforderlich ist. Beispiel: rrSet("1","@X.y_EnableTextExtractionMode"). y_predefined Profile: Setzen Sie diese Variable auf den Namen eines vordefinierten Profils, das für die Erkennung verwendet werden soll. Gültige Werte sind:
  • DocumentConversion_Accuracy
  • DocumentConversion_Speed
  • DocumentArchiving_Accuracy
  • DocumentArchiving_Speed
  • TextExtraction_Accuracy
  • TextExtraction_Speed

Reducing Memory Usage (Speichernutzung verringern): Wenn eine Aktion ein sehr großes Dokument oder eine große Anzahl an Seiten verarbeitet, wird möglicherweise mehr Arbeitsspeicher benötigt, als verfügbar ist, was zu einem Fehler führt. Die meisten OCR/A-Aktionen können in einem Modus für einen reduzierten Speicher ausgeführt werden. Es können zwei Einstellungen konfiguriert werden.

Bei 'y_maxPagesForInMemoryProcessing' kann ausgewählt werden, wann die Platte verwendet werden kann, um den Speicherbedarf zu verringern. Beispiel: Wenn ein umfangreiches PDF-Dokument mit der Aktion 'RecognizeToPDF' erstellt oder mit 'PDFFREDocumentToImage' aufgeteilt wird, weist 'y_maxPagesForInMemoryProcessing' die Engine an, wann die Platte verwendet werden soll. Wenn beispielsweise '50' festgelegt ist, wird nur der Arbeitsspeicher verwendet, wenn das Dokument weniger als 50 Seiten enthält. Wenn sich im Dokument über 50 Seiten befinden, wird die Platte verwenden, damit der Speicher weniger ausgelastet ist.

Mit 'y_LowMemoryMode' wird die Engine angewiesen, so wenig Arbeitsspeicher wie möglich zu verwenden. Wenn diese Variable auf '1' gesetzt ist, ist der Modus für den Speicher mit geringer Kapazität aktiviert.

Die Variablen müssen vor dem Aufrufen der Problemaktion festgelegt werden. Beispiel:
rrSet("10", "@X.y_maxPagesForInMemoryProcessing")
rrSet("1", "@X.y_LowMemoryMode")
Recognize()

Limiting Simultaneous Recognition CPU Utilization (CPU-Auslastung bei simultaner Erkennung begrenzen): Einige OCR/A-Aktionen, z. B. 'Recognize' und 'RecognizeToPDFOCR_A', können die simultane Erkennung von Seiten in einem einzelnen Stapel ausführen. Durch die simultane Erkennung können Seiten parallel anstelle von nacheinander erkannt werden. Die Engine entscheidet standardmäßig, wie viele CPUs zur Ausführung der simultanen Erkennung verwendet werden. Wenn auf der Maschine andere Prozesse mit einer erheblichen CPU-Auslastung ausgeführt werden (z. B. andere Rulerunner-Prozesse), ist eine Übersättigung der Maschine möglich. Obwohl die Ausführung einer Maschine mit einer hohen CPU-Belastung allgemein zur Maximierung des Durchsatzes wünschenswert ist, kann die Übersättigung dazu führen, dass einige Prozesse blockiert werden und der Durchsatz dadurch verringert wird. Dabei müssen viele Faktoren berücksichtigt werden, die teilweise spezifisch für die jeweilige Umgebung sind.

Die Anzahl der von der OCR/A-Aktion verwendeten CPUs kann begrenzt werden, indem in der DCO-Variable _RecognitionProcessesCount die maximale Anzahl der CPUs angegeben wird, die verwendet werden können. Diese Variable ist standardmäßig auf '0' gesetzt, wodurch die Anzahl der verwendeten CPUs von der Engine festgelegt wird. Bei dieser Standardeinstellung kann ein einzelner Stapel in einem einzelnen Rulerunner-Prozess 70% - 100% der CPUs verwenden. Wenn zwei oder mehr Rulerunner-Prozesse konfiguriert sind und alle CPUs verwenden können, kann die Leistung dadurch reduziert werden. Durch das Festlegen dieser Variable kann die Anzahl der von der Erkennungsaktion verwendeten CPUs gesteuert werden.

Wenn auf der Maschine 8 CPUs vorhanden sind, kann der Standardwert alle verfügbaren CPUs verwenden. Wenn es 8 CPUs gibt und die Variable auf 8 gesetzt ist, versucht ein einzelner Prozess, bis zu 8 CPUs zu verwenden, sofern genügend Arbeit vorhanden ist.

Wenn 8 CPUs vorhanden sind und 'y_RecognitionProcessesCount' auf 4 gesetzt ist, werden in einer einzelnen Erkennungsaktion etwa 50% der CPUs verwendet. Die Auslastung kann abhängig vom aktuellen Schritt innerhalb der Aktion, den Eingabedokumenten und anderen im System ausgeführten Prozessen ansteigen. Wenn auf einer Maschine 8 CPUs vorhanden sind und zwei Rulerunner-Prozesse die simultane Erkennung verwenden, wird durch das Festlegen von maximal 4 CPUs die Aktion auf 4 CPUs begrenzt. Wenn also zwei Rulerunner-Prozesse die gleiche Erkennungsaktion zur gleichen Zeit ausführen, wird eine Maximierung auf 8 CPUs erreicht. Natürlich verfügt jede Anwendung über eine spezifische Gruppe aus Regeln und Aktionen, und ein optimaler Wert muss durch Tests ermittelt werden. Die optimale Einstellung kann vielleicht einfacher ermittelt werden, wenn die Erkennung nur in der entsprechenden Task ausgeführt wird und anschließend festgelegt wird, wie viele Rulerunner-Prozesse für die Ausführung der Erkennungstask erforderlich sind.

Diese Einstellung betrifft nur bestimmte OCR/A-Aktionen und ändert nicht die Ausführung von Aktionen aus anderen Aktionsbibliotheken.

Wenn die Erkennungsaktion in einem Knoten auf Dokumentebene ausgeführt wird, wird die simultane Verarbeitung auf 4 CPUs begrenzt:
rrSet("4","@X.y_RecognitionProcessesCount)
Recognize()

Die Variable sollte wie jede DCO-Variable mit der Aktion 'rrSet' zur Laufzeit festgelegt oder mithilfe von Datacap Studio in der Setup-DCO vordefiniert werden.

Additional Recognition Properties (Zusätzliche Erkennungseigenschaften): Die Eigenschaften auf der Registerkarte 'OCR/A' der Registerkarte 'Zones' in Datacap Studio enthalten zusätzliche Eigenschaften, die zur Anpassung der Erkennung festgelegt werden können. Die Registerkarte 'OCR/A' enthält eine Reihe zusätzlicher Eigenschaften, die zur Steuerung der Erkennung festgelegt werden können. Wenn Sie für diese Eigenschaften nicht die Standardwerte verwenden, sondern sie korrekt festlegen, kann die Genauigkeit bei der Erkennung verbessert werden. Zum Festlegen oder Ändern einer Eigenschaft wählen Sie den DCO-Knoten (z. B. eine Seite oder ein Feld) aus, sperren Sie das DCO und ändern Sie anschließend die Eigenschaften. Nachdem Sie eine Auswahl getroffen haben, speichern Sie das DCO und entsperren es.

'Text Type' (Texttyp) ist eine Einstellung, die auf der Registerkarte mit den OCR/A-Eigenschaften verfügbar ist. Mit dieser Einstellung wird die Schriftart in dem Dokument angegeben, das erkannt werden soll. Wenn keine Angabe erfolgt, führt die Engine die Erkennung standardmäßig mit den Einstellungen 'Normal' und 'Matrix' aus. Wenn eine Kombination der Einstellungen 'Matrix', 'Typewriter', 'OCR_A' oder 'OCR_B' verwendet wird, werden keine kursiven Schriftarten und keine hoch- oder tiefgestellten Zeichen erkannt. Standardmäßig sind 'Normal' und 'Matrix' aktiviert, und somit wird kursiver, hoch- und tiefgestellter Text nicht erkannt. Wenn Sie diesen Text erkennen müssen, legen Sie nur den Typ 'Normal' fest.

Tipp: Einige Konfigurationseigenschaften sind auf der Registerkarte 'OCR/A' nicht verfügbar und werden durch das Festlegen einer DCO-Variable konfiguriert, um bestimmte Funktionen zu aktivieren oder zu inaktivieren. Statt Variablen zur Laufzeit in den Regeln mithilfe der Aktion 'rrSet' festzulegen, kann eine Variable auch über die DCO-Baumstruktur im gewünschten DCO-Knoten im Setup-DCO in Datacap Studio konfiguriert werden. Wird eine Variable im Setup-DCO gesetzt, muss sie nicht zur Laufzeit über Regeln gesetzt werden. Wenn Sie beispielsweise 1.000 Seiten mit dem Typ 'Invoice' haben und eine Variable zur Laufzeit im Seitenobjekt 'Invoice' festgelegt wird, wird die Aktion 'rrSet' 1.000 mal ausgeführt, um die Variable einzeln für jeden Knoten im Laufzeit-DCO festzulegen. Wird die Variable dagegen im Setup-DCO gesetzt, dann ist sie bereits gesetzt und muss nicht zur Laufzeit in den Regeln gesetzt werden. Bei DCO-Variablen muss die Groß-/Kleinschreibung beachtet werden, unabhängig davon, ob sie im Setup-DCO oder im Laufzeit-DCO festgelegt sind.

Regular Expression Dictionary (Wörterbuch mit regulären Ausdrücken): Bei der Ausführung der Erkennung auf Feldebene kann ein regulärer Ausdruck angegebenen werden, der als Wörterbuch dient, damit die Engine die richtige Erkennung von Zeichen vornehmen kann. Der reguläre Ausdruck kann auf der Registerkarte mit den OCR/A-Eigenschaften auf der Registerkarte 'Zones' in Datacap Studio konfiguriert werden.

Bei der Angabe eines regulären Ausdrucks beschränken sich die ermittelten Wörter nicht strikt auf die Wörter, die durch den regulären Ausdruck angegeben werden. Wenn die Engine keine geeignete Variante des Worts erkennen kann, das mit der angegebenen Syntax verbunden ist, kann sie trotzdem ein Wort annehmen, das vermutlich passen könnte, auch wenn es nicht der angegebenen Syntax entspricht. Die Syntax des regulären Ausdrucks ist eine Untergruppe der Standardsyntax mit regulären Ausdrücken. In der folgenden Tabelle wird die Syntax der unterstützten regulären Ausdrücke beschrieben.
Syntaxbeschreibung Syntaxbeispiel Ergebnis
Beliebiges Zeichen c.t

Zeigt Wörter wie "cat", "cot" an.

Zeichen aus Zeichenbereich: []

[b-d]ell

[ty]ell

Zeigt Wörter wie "bell", "cell", "dell" an.

Zeigt die Wörter "tell" und "yell" an.

Zeichen aus einem Zeichenbereich: [^]

[^y]ell

[^n-s]ell

oder: |

c(a|u)t

Zeigt Wörter wie "dell", "cell", "tell" an, schließt aber "yell" aus.

Zeigt Wörter wie "bell", "cell" an, schließt aber "nell", "oell", "pell", "qell", "rell" und "sell" aus.

Zeigt Wörter wie "cat" und "cut" an.

0 oder mehr Vorkommen in einer Zeile: *

10*

Zeigt die Zahlen 1, 10, 100, 1000, usw. an.

1 oder mehr Vorkommen in einer Zeile: +

10+

Die Zahlen 10, 100, 1000, usw. sind zulässig, aber 1 ist ausgeschlossen.

Buchstabe oder Zahl: [0-9a-zA-Z]

[0-9a-zA-Z]

[0-9a-zA-Z]+

Ein einzelnes Zeichen ist zulässig.

Jedes Wort ist zulässig.

Lateinischer Großbuchstabe: [A-Z]

[A-Z][A-Z][A-Z][A-Z]

4 beliebige Zeichen sind zulässig, alle Wörter in Großschreibung.

Lateinischer Kleinbuchstabe: [a-z]

[a-z][a-z][a-z][a-z]

4 beliebige Zeichen sind zulässig, alle Wörter in Kleinschreibung.

Kyrillischer Großbuchstabe: [А-Я]

[А-Я][А-Я][А-Я][А-Я]

4 beliebige Zeichen sind zulässig, alle Wörter in Großschreibung.

Kyrillischer Kleinbuchstabe [а-я]

[а-я][а-я][а-я][а-я]

4 beliebige Zeichen sind zulässig, alle Wörter in Kleinschreibung.

Zahl: [0-9]

[0-9]

Jede Zahl zwischen 0 und 9 ist zulässig.

Leerzeichen: [\s]

[\s]

Ermöglicht die Angabe eines Leerzeichens.

Zeichenbereich: -

-

Ein Gedankenstrich ermöglicht die Angabe eines Zeichenbereichs. Mit [0-9] ist ein einzelnes Zeichen zwischen 0 und 9 zulässig.

Escapezeichen: \

\

Durch einen umgekehrten Schrägstrich kann ein Sonderzeichen als Literal verwendet werden. Beispiel: Mit [0-9\.]+ ist "123.45" ein gütiges Wort.

Systemzeichen: @

@

 
Einige Zeichen, die in regulären Ausdrücken verwendet werden, sind “Hilfszeichen”, d. h. sie werden zu Systemzwecken verwendet. Wie in der oberen Liste ersichtlich, gehören zu diesen Zeichen eckige Klammern, Punkte, usw. Wenn Sie ein Hilfszeichen als normales Zeichen eingeben möchten, fügen Sie vor das Zeichen einen umgekehrter Schrägstrich (\) ein. Beispiel: [t-v]x+ gibt Wörter wie 'tx', 'txx', 'txxx, usw., 'ux', 'uxx', usw. an, aber \[t-v\]x+ gibt Wörter wie '[t-v]x', '[t-v]xx', '[t-v]xxx' usw. an.

Wenn Sie bestimmte Elemente für reguläre Ausdrücke gruppieren müssen, verwenden Sie eckige Klammern. Beispiel: (a|b)+|c gibt 'c' an und alle Kombinationen wie 'abbbaaabbb', 'ababab', usw. (ein Wort mit einer beliebigen Länge außer null, in dem es eine beliebige Anzahl der Buchstaben a und b in einer beliebigen Reihenfolge gibt), während a|b+|c die Zeichen 'a', 'c' und 'b', 'bb', 'bbb', usw. angibt.

Beispiele für reguläre Ausdrücke:

Regulärer Ausdruck für das Datum: Die Zahl, mit der der Tag angegeben wird, kann aus einer Zahl (z. B. 1, 2 usw.) oder aus zwei Zahlen (z. B. 02, 12) bestehen, kann aber nicht null sein (00 oder 0). Der reguläre Ausdruck für den Tag sieht dann folgendermaßen aus:
((|0)[1-9])|([12][0-9])|(30)|(31)
Der reguläre Ausdruck für den Monat sieht folgendermaßen aus:
((|0)[1-9])|(10)|(11)|(12)
Der reguläre Ausdruck für das Jahr sieht folgendermaßen aus:
(((19)|(20))[0-9][0-9])|([0-9][0-9])
Dann müssen diese Ausdrücke noch kombiniert und die Zahlen müssen durch einen Punkt getrennt werden (z. B. 1.03.1999). Bei dem Punkt handelt es sich um ein Hilfszeichen, dem ein Backslash (\) vorangestellt werden muss. Der reguläre Ausdruck für das vollständige Datum sieht dann folgendermaßen aus:
(((|0)[1-9])|([12][0-9])|(30)|(31))\.(((|0)[1-9])|(10)|(11)|(12))\.((((19)|(20))[0-9][0-9])|([0-9][0-9]))
Regulärer Ausdruck für E-Mail-Adressen: Sie können eine Sprache zur Angabe von E-Mail-Adressen angeben. Der reguläre Ausdruck für eine E-Mail-Adresse kann folgendermaßen aussehen:
[a-zA-Z0-9_\-\.]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z]+

Optical Mark Recognition (OMR) (Optische Markierungserkennung)

Mithilfe der OMR-Technik kann festgestellt werden, ob auf einer Seite eine Auswahlmarkierung vorhanden ist. Als Auswahlmarkierung werden häufig einzelne oder mehrere leere Kreise oder Quadrate auf einer Seite dargestellt. Um eine Auswahl zu treffen, wird die entsprechende leere Markierung mithilfe eines dunklen Stifts ausgefüllt. Die Optionen können voneinander unabhängig, d. h. ohne inhaltlichen Zusammenhang sein, sodass es zulässig ist, keine, einige oder alle der Optionen auszuwählen. Mit der optischen Markierungserkennung wird ermittelt, ob diese Bereiche ausgefüllt oder leer gelassen wurden.

Eine der Optionen könnte beispielsweise 'Verheiratet' lauten, sodass der Benutzer angeben kann, ob er verheiratet ist. Die nächste Option könnte 'Tragen Sie einen Hut?' lauten. Die beiden Optionen haben keinen inhaltlichen Zusammenhang. In diesem Fall wäre es zulässig, eine der Optionen, beide Optionen oder keine der beiden Optionen auszuwählen.

Eine andere Einsatzmöglichkeit für die optische Markierungserkennung ist die Auswahl innerhalb einer Gruppe zusammengehöriger Markierungen, bei der nur eine der Optionen ausgewählt werden darf. Beispiel: Bei der Zahlungsart mit Kreditkarte wird eine Liste mit verschiedenen Kreditkarten angezeigt, von denen nur eine ausgewählt werden darf. Bei diesem Szenario sollte anschließend überprüft werden, ob die exakt erforderliche Anzahl von Optionen (in diesem Fall eine) ausgewählt, d. h. markiert wurde.

Eine optische Erkennungsmarkierung muss in einem Feld mit einer Zone konfiguriert werden, die für die Position der optischen Markierung erstellt wurde. Bei der optischen Markierungserkennung ist ein Feld mit zwei Ebenen erforderlich. Wenn es sich um einen einzelnen OMR-Eintrag handelt, muss das Feld ein Unterfeld haben. Die Unterfeldzone muss die OMR-Position einschließen. Die Zonenposition des übergeordneten Felds muss die Position des untergeordneten Felds einschließen.

Wenn es sich um eine Gruppe zusammengehöriger OMR-Optionen handelt, wird in der Setup-DCO-Datei ein Feld konfiguriert, das die gesamte Gruppe von Markierungen definiert. Und dieses Feld hat dann mehrere Unterfelder. Für jede Option innerhalb der OMR-Gruppe muss ein Unterfeld konfiguriert sein. Jedem dieser Unterfelder wird eine Zone zugeordnet, die eine der OMR-Positionen einschließt. Bei einer Gruppe mit 3 OMR-Optionen muss die Zone des ersten Unterfelds die erste OMR-Position, die Zone des zweiten Unterfelds die zweite OMR-Position und die Zone des dritten Unterfelds die dritte OMR-Position einschließen. Die Zone des übergeordneten Felds muss so konfiguriert werden, dass sie alle drei Unterfeldzonen einschließt. Dabei ist es nicht erforderlich, den Text mit einzuschließen, sondern es kommt nur auf die Zonen für die OMR-Markierungen an.

Die Beispielanwendung 'Survey', die Teil des Datacap Development Kit (DDK) ist, stellt Beispiele für die optische Markierungserkennung in einem Formular bereit.

OMR-Markierungen können unterschiedliche Formen haben, z. B. Kreise, Quadrate oder Ovale. OMR-Felder funktionieren am besten, wenn das Feld bei der Auswahl vollständig ausgefüllt wird. Wenn an der OMR-Position hingegen nur ein Kreuz (X) gesetzt wird, kann dies die Erkennungsgenauigkeit senken.

Es wird empfohlen, den Benutzer durch einen Hilfetext im Formular anzuweisen, die OMR-Markierungen vollständig auszufüllen, damit die Auswahl richtig erkannt wird. Obwohl die Erkennung auch dann korrekt funktionieren kann, wenn der Benutzer die Optionen lediglich ankreuzt, ist diese Ausfüllmethode nicht so zuverlässig wie das vollständige Ausfüllen der Bereiche.

Die optische Markierungserkennung funktioniert auch dann am besten, wenn Ausschlussfarben verwendet werden. Beim Einsatz von Ausschlussfarben haben die OMR-Felder normalerweise eine helle Farbe und werden beim Scanvorgang oder bei der nachfolgenden Bildbearbeitung entfernt Eine häufig verwendete Ausschlussfarbe ist z. B. Rot. Scanner können in diesem Fall so konfiguriert werden, dass rote Farben beim Scannen entfernt werden. Dadurch entsteht an der OMR-Position ein offensichtlich leerer Bereich. Und nur, wenn der Benutzer diese Option ausgewählt, d. h. markiert hat, bleibt die Markierung an dieser Stelle sichtbar. Dies erhöht die Zuverlässigkeit der Erkennung.

Beim Erstellen der Zone für ein OMR-Feld ist es am besten, wenn der Zonenbereich das gesamte sichtbare Feld mit zusätzlichem Raum für Ausrichtungsabweichungen einschließt. Wenn Sie hingegen versuchen, eine Zone nur innerhalb des Felds oder nur "knapp" darüber hinaus gehend zu erstellen, dann können Ausrichtungsfehler dazu führen, dass eventuell ein Teil der Feldumrandung innerhalb des OMR-Bereichs sichtbar ist und deshalb eine falsch-positive Auswahl erkannt wird. Wenn der Zonenbereich hingegen so groß ist, dass er stets den gesamten OMR-Bereich mit der Feldumrandung einschließt, kann die Feldumrandung bei geringfügigen Ausrichtungsabweichungen für die Erkennung ausgeklammert werden, um festzustellen, ob das Feld eine absichtliche Markierung enthält oder nicht.

Ein Feld wird als OMR-Feld definiert, indem dessen DCO-Variable RecogType auf '4' festgelegt wird. Damit die optische Markierungserkennung erfolgreich sein kann, muss diese Variable in der DCO-Datei zutreffend festgelegt werden.

Datacap stellt verschiedene Verfahren für die Erkennung von OMR-Optionen bereit. Die Aktion 'DetermineOMRThreshold' in der Aktionsbibliothek 'SharedRecognitionTools' ist eine Methode, um zu ermitteln, ob ein OMR-Feld ausgefüllt oder leer ist. Sie toleriert eine gewisse Menge von "Schwarz" in der OMR-Option als Linien, die sich nicht entfernen ließen, und erkennt eine absichtliche OMR-Markierung erst dann, wenn die Menge schwarzer Pixel den festgelegten Toleranzwert überschreitet.

Auch die RecognitionOCRA-Aktionen unterstützen die optische Markierungserkennung. Bei entsprechender Konfiguration kann diese Erkennungsmethode eine OMR-Position und deren Auswahlstatus ermitteln.

Wenn die OCR/A-Engine für die optische Markierungserkennung verwendet wird, muss das Feld auf der Registerkarte mit den OCR/A-Eigenschaften auf der Registerkarte 'Zones' (Zonen) in Datacap Studio konfiguriert werden. Es gibt folgende drei OMR-Eigenschaften: 'Häkchentyp', 'Länge' und 'Mehrfachauswahl'. 'Häkchentyp' gibt die Form der OMR-Markierung für die Engine an. 'Länge' gibt an, wie viele OMR-Markierungen sich in dem Feld befinden. 'Mehrfachauswahl' gibt an, ob die Auswahl mehrerer OMR-Optionen oder nur einer einzigen Option erwartet wird. Wenn ein Feld als OMR-Feld konfiguriert ist und die Engineeinstellungen entsprechend festgelegt wurden, erkennt die Engine das Feld als OMR-Feld.

Ein OMR-Wörterbuch ist ein Mechanismus, der mithilfe von DCO-Einstellungen "benutzerfreundliche" Bedeutungen für OMR-Optionen bereitstellt. Klicken Sie zum Erstellen von Wörterbüchern in Datacap Studio auf der Registerkarte 'Dokumenthierarchie' auf die Schaltfläche 'Wörterbücher'. Ein OMR-Wörterbuch enthält Wörter, die die Auswahlmöglichkeiten innerhalb einer OMR-Option beschreiben und auch in der Überprüfungsanzeige für OMR-Felder angezeigt werden.

Jedes Wörterbuch muss einen eindeutigen Namen haben. Ein Wörterbuch enthält eine Gruppe von Wort/Wert-Paaren. Häufig werden Wort und Wert innerhalb eines Paares so festgelegt, dass sie identisch sind. Das Wort-Element des Wort/Wert-Paares muss mit dem Namen des entsprechenden Felds übereinstimmen.

Beispiel: In der Anwendung 'Survey' gibt es ein OMR-Feld mit dem Namen 'Frequency' (Häufigkeit). Dieses Feld hat die vier Unterfelder 'Once' (Einmal), 'Monthly' (Monatlich), 'Quarterly' (Vierteljährlich) und 'Annual' (Jährlich). Diese Felder entsprechen vier OMR-Markierungen im Formular. Wenn die Auswahl einer dieser Optionen erkannt wird, wird der zugehörige Wörterbuchwert als Text in der Überprüfungsanzeige angegeben.

Um einem OMR-Feld ein Wörterbuch zuzuweisen, muss in der DCO-Datei die Variable 'DICT' erstellt und der Name des Wörterbuchs als deren Wert festgelegt werden.

Weitere Informationen finden Sie im Abschnitt Best Practices für eine optimale Texterkennung.