Zum Inhalt

Erkennung

Die Erkennung wird eingesetzt, um Seiten eines gescannten Dokumentes mit Text- und Bilderkennungstechniken nach Informationen zu durchsuchen. Nach folgenden Informationen kann auf einer Seite gesucht werden:

  • Barcodes (1D und 2D)
  • Text
  • Formulartypen

Screenshot

In Docuflair können beliebig viele Erkennungen definiert werden, wobei bei der Suche nach Text und Barcodes der Suchbereich eingeschränkt werden kann. Zu beachten ist, dass sich die Verarbeitungszeit mit jeder Erkennung erhöhen kann, insbesondere wenn nach Text gesucht werden soll. Durch Klick auf Suchaktion erstellen kann eine neue Erkennung eingerichtet werden.

Um zwischen mehreren Erkennungen unterscheiden zu können, muss jedes Suchergebnis einem Variablennamen zugeteilt werden. Auf diesen Variablennamen in späteren Verarbeitungsschritten bei der Ausgabe und Speicherung zurückgegriffen werden und zur Prüfung von Bedingungen oder zum Schreiben von Metadaten verwendet werden.

  • In Docuflair dienen Variablen dazu, Daten zu verwalten. Hier können Sie sich eine Variable als Behälter vorstellen, dessen Inhalt sich ändern kann.
  • Als bildliches Beispiel kann man sich ein ein Paket vorstellen. Das Paket selbst ist die Variable. Den Inhalt des Paketes lässt sich beliebig verändern - im Fall von Docuflair wird das Paket (die Variable) mit erkannten Textstellen oder Barcodes befüllt. Der Inhalt von Variablen wird "Wert" genannt.
  • Ein typisches Beispiel für Variablen beim Programmieren sind Benutzerinformationen. Hier werden zum Beispiel Namen, Adressen und Telefonnummern gespeichert.

Ein in Docuflair gültiger Variablenname beginnt mit einem Buchstaben und darf dann mit beliebigen Alphanumerischen Zeichen und Zahlen fortgesetzt werden, bis zu einer maximalen Länge von 32 Zeichen. Sonderzeichen und Umlaute sind nicht erlaubt. Zwischen Groß- und Kleinschreibung wird unterschieden.

Gültige Variablennamen sind zum Beispiel:

  • meinBarcode
  • MeinBarcode
  • Mein1Barcode
  • MeinBarcode1
  • barcode
  • barcode2020

Ungültige Namen sind zum Beispiel:

  • meineVariableHatEinenZuLangenNamenUndWirdNichtFunktionieren33
  • 33keineZahlAmAnfang
  • Kein/Sonderzeichen
  • AuchKein-Minus
  • .unzulässigWeilPunktUndUmlaute

Die Suche nach Barcodes und Text erlaubt eine Filterung durch Regular Expressions (Reguläre Ausdrücke). Mit Regular Expressions können nicht benötigte Informationen oder unerwünschte Informationen ausgefiltert werden. Eine derartige Anforderung könnte sich aus folgenden Situationen ergeben:

  • Es sollen Lieferscheine verarbeitet und dafür ein Barcode ausgelesen werden. Ungünstiger weise werden aber mehrere Barcodes erkannt, weil auch die Logistik Barcodes aufdruckt. Mit Regular Expressions kann eine Filterung durchgeführt werden und nur Barcodes mit einer bestimmten Länge oder mit einem bestimmten Präfix durchgelassen werden.
  • Ein Eingangsdokument der Hauspost soll geprüft werden, ob es sich um eine Rechnung oder um eine Mahnung handelt. Durch Regular Expressions können alle übrigen Wörter, die für die weitere Verarbeitung nicht relevant sind, ausgefiltert werden.

Reguläre Ausdrücke stellen vor allem eine Art Filterkriterium für Texte dar, indem der jeweilige reguläre Ausdruck in Form eines Musters mit dem Text abgeglichen wird. So ist es beispielsweise möglich, alle Wörter, die mit D beginnen und mit R enden, zu suchen, ohne die zwischenliegenden Buchstaben explizit vorgeben zu müssen.

Für die Erstellung von regulären Ausdrücken gelten die folgenden Regeln:

Ausdruck Beschreibung
. (Punkt) genau EIN beliebiges Zeichen. Es kann ein A oder ein 9 sein oder eine Leerstelle usw. Aber irgendein Zeichen muss kommen. Genau eines.
- (Minus) entweder als Bereich-Angabe, z.B. [A-Z] – ein Großbuchstabe A bis Z ODER wenn es am Anfang oder am Ende von REGEXP steht, dann einfach ein Minus (dasselbe wie \-)
Also [A-Z] heißt alle Großbuchstaben von A bis Z und [-A-Z] heißt das Minuszeichen UND alle Großbuchstaben von A bis Z und [A-Z-] heißt ebenfalls alle Großbuchstaben von A bis Z und Minuszeichen.
Wenn das Minuszeichen nicht am Anfang steht, muss es mit \ markiert werden.
\ (backslash) Hebt die Metafunktionen von Metazeichen auf. Z.B. Suche nach einem Punkt im Text. Da der Punkt als solcher eine Metafunktion hat (ein Punkt ersetzt genau ein beliebiges Zeichen, egal, was es ist), würde eine Suche nach . alle möglichen Ergebnisse bringen. Wenn tatsächlich nach einen Punkt gesucht werden soll, muss der Punkt als . geschrieben werden.
^ wenn es in eckigen Klammern ist, negiert es den Inhalt, z.B. [^d-z] heißt keine Kleinbuchstaben zwischen d und z ansonsten Anfang einer Zeichenkette oder Zeilenanfang (also ^a heißt, dass am Anfang a stehen muss).
$ Ende einer Zeichenkette oder Zeilenende, z.B. bei "toller" trifft "r\(" zu, ein "a\)" jedoch nicht.
| Alternativen (=oder), z.B. [a-z]|[0-9] sucht nach einem Kleinbuchstaben (a-z) ODER einer Ziffer (0-9)
+ das Zeichen vor dem Plus muss min. einmal bis x-mal vorkommen, z.B. a+ für a, aa, aaa...
* das Zeichen vor dem Stern muss 0 bis x-mal vorkommen, z.B. a* steht für nichts (0 Vorkommen) bis aaaaaaaa.... x beliebig oft
? das Zeichen vor dem ? muss 0 bis 1-mal vorkommen, "H..?se" findet 'Hase', aber auch 'Hirse'
{x,y} Häufigkeit des Vorkommens: x- bis y-mal, z.B. \d{2,4) heißt 2 bis 4 Ziffern, {2,} heißt mindestens 2 mal, {3} heißt genau 3 mal.
[] genau ein Zeichen, was zw. den Klamern ist, z.B. [abc] sucht nach Vorkommen von a, b oder c (also nicht den String "abc", sondern genau einen Buchstaben a oder b oder c. EIN Buchstaben ist gefragt.
() runde Klammern zur Zusammenfassung der Ausdrücke, z.B. ^(abc
\d genau eine Ziffer [0-9] (d wie digit)
\D ein Zeichen, das keine Ziffer ist, also [^\d]
\w genau ein Buchstabe, eine Ziffer oder der Unterstrich, also [a-zA-Z_0-9] (und evtl. weitere Buchstaben, z. B. Umlaute)
\W ein Zeichen, das weder Buchstabe noch Zahl noch Unterstrich ist, also [^\w]
\s Whitespace; meistens die Klasse der Steuerzeichen \f, \n, \r, \t und \v
\S ein Zeichen, das kein Whitespace ist [^\s]
\b leere Zeichenkette am Wortanfang oder am Wortende (erkennt Anfang eines Wortes) z.B. '\bdies oder das' findet 'dies oder das' aber nicht 'Paradies und das Weib'
\B leere Zeichenkette, die nicht den Anfang oder das Ende eines Wortes bildet
\< leere Zeichenkette am Wortanfang
\> leere Zeichenkette am Wortende
\n ein Zeilenumbruch (im Unix-Format)
\t Tabulator

Docuflair unterstützt verschiedene Modi, wie Reguläre Ausdrücke verarbeitet werden:

Modus Beschreibung
Keine Die Suche nach Regular Expressions wird nicht ausgeführt. Der erkannte Inhalt wird ungefiltert der Zielvariablen zugewiesen.
Groß-/Kleinschreibung ignorieren Sucht nach Regular Expressions, ignoriert aber Unterschiede zwischen Groß- und Kleinschreibung
Mehrzeilig Fürht eine Prüfung über Regular Expressions aus, auch wenn ein Zeilenumbruch im erkannten Text vorhanden ist
Explizite Erfassung Erfassen von unbenannten Gruppen ausschließen. Die einzigen gültigen Erfassungen sind explizit benannte oder nummerierte Gruppen der Form (?\<Name>Unterausdruck).
Einzeilig Einzeiliger Modus, bei dem der Punkt (.) auf jedes Zeichen passt (statt auf jedes Zeichen außer einem Zeilenumbruch).
Ignorieren von Leerzeichen im Muster Schließen nicht überflüssige Leerzeichen aus dem Muster aus, und aktivieren Kommentare nach einem Nummernzeichen (#).
Von rechts nach links Ändert die Suchrichtung. Die Suche bewegt sich von rechts nach links statt von links nach rechts.
ECMA-Script Aktivieren Sie ECMAScript-kompatibles Verhalten für den regulären Ausdruck.
Kulturelle Unterschiede in Sprachen ignorieren Ignorieren von kulturellen Unterschieden in der Sprache.

Suche nach Barcodes

Bei der Suche nach Barcodes kommt eine Mustererkennung zum Einsatz, da gescannte Dokumente normalerweise nur als Bilddaten zur Verfügung stehen. Der Vorgang der Mustererkennung kann die Verarbeitungszeit geringfügig erhöhen, da in mehreren internen Arbeitsschritten Algorithmen zur Bildverbesserungen und -erkennungen durchgeführt werden müssen.

Der Begriff "Barcode" steht im folgenden für alle 1D- und 2D-Barcodes, beinhaltet also auch QR-Codes, Aztec-Codes, etc.

Screenshot

Nach Anklicken von Suchaktion erstellen muss als Suchtyp Barcode / QR-Code ausgewählt werden und im Feld Variable-Name muss der Name der Variable vergeben werden, zum Beispiel MeinBarcode. Wie zuvor beschrieben, wird der Wert des erkannten Barcodes in dieser Variablen abgelegt und kann für die spätere Verarbeitung und Ausgabe wiederverwendet werden. Werden mehrere Barcodes gefunden, werden alle Barcodes in dieser Variablen gespeichert.

In der Auswahlliste Suche Unterkategorie kann festgelegt werden, ob nach allen Barcode-Typen oder nach bestimmten 1D- oder 2D-Barcodes gesucht werden soll. Die Liste der unterstützten Barcodetypen finden Sie hier.

Ist die Option ganze Seite durchsuchen aktiviert, wird überall nach Barcodes gesucht. Bei Deaktivierung kann der Bereich eingeschränkt werden und zum Beispiel nur in der Kopf- oder Fußzeile gesucht werden. In Docuflair können beliebig viele Erkennungen definiert werden, daher können, wenn sowohl Fuß- wie auch Kopfzeile benötigt werden, zwei oder noch mehr Erkennungen mit jeweils unterschiedlichen Bereichen und eindeutigen Variablennamen konfiguriert werden.

Die Option Regulärer Ausdruck Modus legt fest, ob und wie eine Filterung mittels regulärer Ausdrücke (siehe oben) durchgeführt werden soll. Dadurch können unerwünschte oder nicht benötigte Textstellen entfernt werden, ehe das Ergebnis der Variable zugewiesen wird. Im Feld Regulärer Ausdruck muss das Muster eingetragen werden, mit dem eine Filterung des Textes durchgeführt werden soll.

Suche nach Text

Bei der Suche nach Text kommt eine OCR (Optical Character Recognition) zum Einsatz, da gescannte Dokumente normalerweise nur als Bilddaten zur Verfügung stehen. Der Vorgang der Texterkennung kann sehr zeitintensiv sein, da in mehreren internen Arbeitsschritten Algorithmen zur Bildverbesserungen und -erkennungen durchgeführt werden müssen. Für hochwertige Resultate muss ein gutes OCR-System in der Lage sein, die wichtigsten Parameter jedes einzelnen Algorithmus anzupassen, auch wenn nur wenige Merkmale der Bilder vorabbekannt sind. Manchmal ist die manuelle Konfiguration der Vorverarbeitung der einzige Weg, die Erkennungsqualität zu verbessern. Leider gibt es bis heute keine OCR-Systeme, die an die Erkennungsleistung eines Menschen heranreichen, ob heute der Anteil falsch oder nicht erkannter Zeichen bereits in den Promille Bereich optimiert werden konnte.

Screenshot

Nach Anklicken von Suchaktion erstellen muss als Suchtyp Text ausgewählt werden und im Feld Variable-Name muss der Name der Variable vergeben werden, zum Beispiel MeinText. Wie zuvor beschrieben, wird der erkannte Text in dieser Variablen abgelegt und kann für die spätere Verarbeitung und Ausgabe wiederverwendet werden.

Ist die Option ganze Seite durchsuchen aktiviert, wird überall nach erkennbaren Text gesucht. Bei Deaktivierung kann der Bereich eingeschränkt werden und zum Beispiel nur in der Kopf- oder Fußzeile gesucht werden. In Docuflair können beliebig viele Erkennungen definiert werden, daher können, wenn sowohl Fuß- wie auch Kopfzeile benötigt werden, zwei oder noch mehr Erkennungen mit jeweils unterschiedlichen Bereichen und eindeutigen Variablennamen konfiguriert werden.

Mit Text Hintergrundfarbe kann nach allen Textstellen gesucht werden, die mit einem färbigen Hintergrund hinterlegt sind, also zum Beispiel mit einem bunten Marker gekennzeichnet wurden.

Die Option Regulärer Ausdruck Modus legt fest, ob und wie eine Filterung mittels regulärer Ausdrücke (siehe oben) durchgeführt werden soll. Dadurch können unerwünschte oder nicht benötigte Textstellen entfernt werden, ehe das Ergebnis der Variable zugewiesen wird. Im Feld Regulärer Ausdruck muss das Muster eingetragen werden, mit dem eine Filterung des Textes durchgeführt werden soll.

Die OCR-Sprache legt den Zeichensatz und die Wörterbücher fest, die für die Texterkennung zum Einsatz kommen sollen. Diese Angabe ist erforderlich, weil dadurch bessere Ergebnisse von der OCR geliefert werden, weil zum Beispiel die englische Sprache ohne Umlaute auskommt oder im Französischen andere Sonderzeichen auftreten können.

Mit der OCR Zeichensatz Whitelist kann die Menge der Zeichen eingeschränkt werden, die von der OCR erkannt werden können. Beinhaltet zum Beispiel ein Dokument nur Zahlen, kann in diesem Feld "0123456789" eingetragen werden. Die OCR versucht dann, jeden gefundenen Buchstaben einem dieser Zeichen zuzuordnen.

Die OCR Zeichensatz Blacklist definiert Zeichen, die von der OCR auf keinen Fall erkannt werden dürfen. Beinhaltet zum Beispiel ein Dokument niemals mathematische Operatoren, kann in diesem Feld "+-*/" eingetragen werden. Die OCR versucht dann, jeden gefunden Buchstaben einem anderen Zeichen, das nicht in dieser Liste ist, zuzuordnen.

Suche nach Formularen

Screenshot

Mit dem Suchtyp Formulare kann nach zuvor angelernten Formulartypen gesucht werden. Wird ein angelerntes Formular mittels Ähnlichkeitssuche erkannt, wird der Name des Formulars der Variable zugewiesen.

Weitere Optionen sind für die Formularerkennung nicht erforderlich, da bereits alle relevanten Zonen, die Text oder Barcodes beinhalten, beim Anlernen neuer Formulare definiert werden können.