Texterkennung ist ein Begriff aus der Informationstechnik. Es bezeichnet die automatisierte Text- bzw. Schrifterkennung innerhalb von Bildern.
Ursprünglich basierte die automatische Texterkennung auf optischer Zeichenerkennung (englisch optical character recognition, Abkürzung OCR). Diese Technik wird zunehmend abgelöst durch neuronale Netze, die ganze Zeilen statt einzelner Zeichen verarbeiten.
Texterkennung ist deshalb notwendig, weil optische Eingabegeräte (Scanner oder Digitalkameras, aber auch Faxempfänger) als Ergebnis ausschließlich Rastergrafiken liefern können, d. h. in Zeilen und Spalten angeordnete Punkte unterschiedlicher Färbung (Pixel). Texterkennung bezeichnet dabei die Aufgabe, die so dargestellten Buchstaben als solche zu erkennen, d. h. zu identifizieren und ihnen den Zahlenwert zuzuordnen, der ihnen nach üblicher Textcodierung zukommt (ASCII, Unicode). Automatische Texterkennung und OCR werden im deutschen Sprachraum oft als Synonym verwendet. In technischer Hinsicht bezieht sich OCR jedoch nur auf den Teilbereich der Mustervergleiche von separierten Bildteilen als Kandidaten zur Erkennung von Einzelzeichen. Diesem OCR-Prozess geht eine globale Strukturerkennung voraus, in der zuerst Textblöcke von graphischen Elementen unterschieden, die Zeilenstrukturen erkannt und schließlich Einzelzeichen separiert werden. Bei der Entscheidung, welches Zeichen vorliegt, kann über weitere Algorithmen ein sprachlicher Kontext berücksichtigt werden.
Ursprünglich wurden zur automatischen Texterkennung eigens entworfene Schriftarten entwickelt, die zum Beispiel für das Bedrucken von Scheckformularen verwendet wurden. Diese Schriftarten waren so gestaltet, dass die einzelnen Zeichen von einem OCR-Lesegerät schnell und ohne großen Rechenaufwand unterschieden werden konnten. So zeichnet sich die Schriftart OCR-A (DIN 66008, ISO 1073-1) durch einander besonders unähnliche Zeichen, besonders bei den Ziffern, aus. OCR-B (ISO 1073-2) ähnelt mehr einer serifenlosen, nicht-proportionalen Schriftart, während OCR-H (DIN 66225) handgeschriebenen Ziffern und Großbuchstaben nachempfunden wurde.
Die gestiegene Leistungsfähigkeit moderner Computer und verbesserte Algorithmen erlauben inzwischen auch die Erkennung von „normalen“ Druckerschriftarten bis hin zu Handschriften (etwa bei der Briefverteilung); wenn jedoch Lesbarkeit durch Menschen nicht vorrangig ist, werden drucktechnisch und erkennungstechnisch einfacher handhabbare Strichcodes genutzt.
Moderne Texterkennung umfasst inzwischen mehr als reine OCR (definiert als Verfahren der automatischen Schrifterkennung[1]), das heißt die Übersetzung einzelner Schriftzeichen. Zusätzlich werden Methoden der Kontextanalyse, Intelligent Character Recognition (ICR), hinzugezogen, mit denen die eigentlichen OCR-Ergebnisse korrigiert werden können. So kann ein Zeichen, das eigentlich als „8“ erkannt wurde, zu einem „B“ korrigiert werden, wenn es innerhalb eines Wortes steht. Statt „8aum“ wird also „Baum“ erkannt, aber eine Umwandlung von „8te“, also eine alphanumerische Kombination, sollte nicht vorgenommen werden. Im Bereich industrieller Texterkennungssysteme wird daher von OCR/ICR-Systemen gesprochen. Die Grenzen des OCR-Begriffes sind jedoch fließend, denn OCR und ICR dienen auch als Marketingbegriffe, um technische Weiterentwicklungen besser vermarkten zu können. Auch Intelligent Word Recognition (IWR) fällt unter diese Kategorie. Dieser Ansatz versucht das Problem bei der Erkennung von Fließhandschriften zu lösen, bei der die Einzelzeichen nicht eindeutig separiert und daher nicht über herkömmliche OCR-Methoden erkannt werden können.
Ein prinzipiell anderer Ansatz der Texterkennung wird bei der Handschriftenerkennung auf Touchscreens oder Eingabefeldern (PDA usw.) verwendet. Hier werden vektorbasierte Muster verarbeitet, entweder ‚offline‘ als gesamtes Wort oder ‚online‘ mit zusätzlicher Analyse des Eingabeflusses (beispielsweise Apples Inkwell).
Eine Sonderform der Texterkennung ergibt sich beispielsweise bei der automatischen Verarbeitung des Posteingangs großer Firmen. Eine Aufgabenstellung ist das Sortieren der Belege. Dafür braucht nicht immer der Inhalt analysiert zu werden, sondern es genügt manchmal schon, die groben Merkmale, etwa das charakteristische Layout von Formularen, Firmenlogos etc., zu erkennen. Die Klassifikation bestimmter Textarten erfolgt wie bei der OCR über eine Mustererkennung, die sich jedoch global auf das gesamte Blatt oder definierte Stellen anstelle einzelner Buchstaben bezieht.
Ausgangspunkt ist eine Bilddatei (Rastergrafik), die von der Vorlage per Scanner, Digitalfotografie oder Videokamera erzeugt wird. Die Texterkennung selbst erfolgt dreistufig:
Die Bilddatei wird in relevante Bereiche (Texte, Bildunterschriften) und irrelevante Bereiche (Abbildungen, Weißflächen, Linien) aufgeteilt.
Die Rohpixel können durch ihre Nachbarschaftsbeziehungen zu angrenzenden Pixeln korrigiert werden. Einzelne Pixel werden gelöscht. Fehlende Pixel können ergänzt werden. Dadurch erhöht sich die Trefferquote bei einem reinen Mustervergleich. Dies ist stark abhängig vom Kontrast der Vorlage.
Die Pixelmuster der Textbereiche werden mit Mustern in einer Datenbank verglichen, Rohdigitalisate werden erzeugt.
Die Rohdigitalisate werden mit Wörterbüchern verglichen sowie nach linguistischen und statistischen Verfahren hinsichtlich ihrer wahrscheinlichen Fehlerfreiheit bewertet. In Abhängigkeit von dieser Bewertung wird der Text ausgegeben oder gegebenenfalls einer erneuten Layout- oder Mustererkennung mit veränderten Parametern zugeführt.
Fließhandschrift, bei der die Einzelzeichen nicht voneinander getrennt erkannt werden können, wird anhand globaler Charakteristiken mit Wörterbüchern verglichen. Die Treffergenauigkeit verringert sich mit der zunehmenden Größe des eingebundenen Wörterbuches, da die Verwechslungsmöglichkeiten zunehmen. Einsatzbereiche sind definierte Feldbereiche mit eingeschränkten Angabenmöglichkeiten, zum Beispiel handgeschriebene Adressen auf Briefumschlägen.
Viele Programme bieten darüber hinaus einen besonderen Modus zur manuellen Korrektur nicht sicher erkannter Zeichen.
Im einfachsten Fall wird eine Textdatei in einem definierten Format wie UTF-8 erzeugt. Je nach Aufgabenstellung kann die Ausgabe auch in eine Datenbank oder als PDF-Datei erfolgen. Spezialisierte Ausgabeformate wie die XML-basierten Formate ALTO und PAGE oder hOCR, eine HTML-Variante, speichern den Text mit Layout-Information.
Die Qualität der Texterkennung bestimmen unter anderem mehrere Faktoren:
Die Zahl der unerkannten Fehler in einem Dokument lässt sich abschätzen, siehe Rechtschreibfehler. Während Texte Redundanzen enthalten und deshalb eine höhere Fehlerrate zulassen, erfordern Zahlenlisten, wie beispielsweise Telefonnummern, ein mehrmaliges Korrekturlesen.
In jüngster Zeit erzielten künstliche neuronale Netzwerke bei Handschriftanwendungen oft bessere Ergebnisse als konkurrierende Lernverfahren. Zwischen 2009 und 2012 gewannen die rekurrenten bzw. tiefen vorwärtsgerichteten neuronalen Netzwerke der Forschungsgruppe von Jürgen Schmidhuber am Schweizer KI Labor IDSIA eine Serie von acht internationalen Wettbewerben in den Bereichen Mustererkennung.[2] Insbesondere gewannen ihre rekurrenten LSTM-Netzwerke[3][4] drei Wettbewerbe zur verbundenen Handschrifterkennung bei der „2009 Intl. Conf. on Document Analysis and Recognition (ICDAR)“, ohne eingebautes a priori-Wissen über die drei verschiedenen zu lernenden Sprachen. Die LSTM-Netze erlernten gleichzeitige Segmentierung und Erkennung[5]. Dies waren auch die ersten internationalen Wettbewerbe, die durch Deep Learning[6][7] oder durch rekurrente Netze gewonnen wurden.
Auch tiefe vorwärtsgerichtete Netzwerke wie Kunihiko Fukushimas Konvolutionsnetz der 1980er Jahre[8] sind heute wieder wichtig für Handschrifterkennung. Sie verfügen über alternierende Konvolutionslagen und Lagen von Neuronen, die miteinander im Wettbewerb stehen. Yann LeCuns Team von der New York University wendete den 1989 schon gut bekannten backpropagation Algorithmus auf solche Netze an[9]. Moderne Varianten verwenden sogenanntes „max-pooling“ für die Wettbewerbslagen[10]. Zum Abschluss krönt man das tiefe Netz durch mehrere voll vernetzte Neuronenlagen. Schnelle GPU-Implementierungen dieser Kombination wurden 2010 durch Scherer und Kollegen eingeführt[11]. Sie gewannen seither zahlreiche Wettbewerbe zur Erkennung von Handschrift und anderen Mustern[12]. GPU-basierte „max-pooling“ Konvolutionsnetze waren auch die ersten Verfahren, die die handgeschriebenen Ziffern des MNIST Benchmarks so gut erkennen konnten wie Menschen[13].
Auch bei gedrucktem Text gibt es einen Trend, die klassische zeichenweise Texterkennung durch zeilenweise Texterkennung mittels neuronaler Netze zu ersetzen. Diese Technik wird beispielsweise in den Programmen OCRopus, Tesseract (ab Version 4), PERO OCR und Loghi eingesetzt.
Als Nebenfunktion in proprietärer Software:
Cloudbasiert: