# Texterkennung

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 durch neuronale Netze, die ganze Zeilen statt einzelner Zeichen verarbeiten, abgelöst.

## Grundsätzliches

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), 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.

## Verfahren

Ausgangspunkt ist eine Bilddatei (Rastergrafik), die von der Vorlage per Scanner, Digitalfotografie oder Videokamera erzeugt wird. Die Texterkennung selbst erfolgt dreistufig:

### Seiten- und Gliederungserkennung

Die Bilddatei wird in relevante Bereiche (Texte, Bildunterschriften) und irrelevante Bereiche (Abbildungen, Weißflächen, Linien) aufgeteilt.

### Mustererkennung
#### Fehlerkorrektur auf Pixelebene

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.

#### Mustervergleich Mapping

Die Pixelmuster der Textbereiche werden mit Mustern in einer Datenbank verglichen, Rohdigitalisate werden erzeugt.

#### Fehlerkorrektur Zeichenebene (Intelligent Character Recognition, ICR)

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.

#### Fehlerkorrektur auf Wortebene (Intelligent Word Recognition, IWR)

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.

#### Manuelle Fehlerkorrektur

Viele Programme bieten darüber hinaus einen besonderen Modus zur manuellen Korrektur nicht sicher erkannter Zeichen.

### Codierung in das Ausgabeformat

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:
* Qualität der Layouterkennung,
* Umfang und Qualität der Muster-Datenbank,
* Umfang und Qualität der Wörterbücher,
* Qualität der Algorithmen zur Fehlerkorrektur,
* Farbigkeit, Kontrast, Layout und Schriftart des Originaldokumentes,
* Auflösung und Qualität der Bilddatei.
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.

## Erfolge durch neuronale Netze

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. Insbesondere gewannen ihre rekurrenten LSTM-Netzwerke 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. Dies waren auch die ersten internationalen Wettbewerbe, die durch Deep Learning oder durch rekurrente Netze gewonnen wurden.
Auch tiefe vorwärtsgerichtete Netzwerke wie Kunihiko Fukushimas Konvolutionsnetz der 1980er Jahre 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. Moderne Varianten verwenden sogenanntes „max-pooling“ für die Wettbewerbslagen. 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. Sie gewannen seither zahlreiche Wettbewerbe zur Erkennung von Handschrift und anderen Mustern. GPU-basierte „max-pooling“ Konvolutionsnetze waren auch die ersten Verfahren, die die handgeschriebenen Ziffern des MNIST Benchmarks so gut erkennen konnten wie Menschen.
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.

## Anwendungen

* Wiedergewinnen von Textinformation aus Bilddateien, um diese mit Hilfe einer Textverarbeitung weiter zu bearbeiten oder elektronisch durchsuchbar zu machen
* Erkennung von relevanten Merkmalen (zum Beispiel Postleitzahl, Vertragsnummer, Rechnungsnummer) zur mechanischen (Poststraße) oder elektronischen (Workflow-Management-System) Einsortierung eines Schriftstücks
* Eine erweiterte Volltextsuche in Datenbanken oder Document-Management-Systemen, um auch PDFs und Bilder durchsuchen zu können.
* Erkennung von Merkmalen zur Registrierung und gegebenenfalls Verfolgung von Gegenständen (beispielsweise Kfz-Kennzeichen)
* Layouterkennung: Es wird ein formatiertes Dokument erstellt, das der Vorlage bezüglich Text-, Bild- und Tabellenanordnung möglichst nahekommt.
* Blindenhilfsmittel: Für Blinde wird es durch die Texterkennung möglich, eingescannte Texte über Computer und Braillezeile zu lesen oder sich per Sprachausgabe vorlesen zu lassen.

## OCR-Software
### Proprietäre Software

* BIT-Alpha von B.I.T. Bureau Ingénieur Tomasi
* FineReader von ABBYY
* FormPro von OCR Systeme
* KADMOS best OCR/ICR
* Ocelus von Teklia
* OCRKit für Mac OS und iOS
* OmniPage von Kofax (früher: ScanSoft, Nuance Communications)
* Readiris von Image Recognition Integrated Systems Group (I. R. I. S), seit 2013 zu Canon
* NSOCR von Nicomsoft
* IDA Recognition von PLANET AI
* Screenworm für Mac OS von Funchip
* Transkribus
Als Nebenfunktion in proprietärer Software:
* Acrobat Text Capture in Adobe Acrobat von Adobe Inc.
* Corel OCR-Trace in CorelDRAW von Corel
* Microsoft OneNote, seit Version 2010
* Microsoft 365, Word ab Version 2013
* ExactScan Pro für Mac OS
* PDF-XChange Viewer (kostenlos, auch als portable Version verfügbar)
Cloudbasiert:
* ABBYY Cloud OCR
* Google Cloud Vision (Beta)
* Microsoft Azure Computer Vision API
* OCR.space Online OCR (proprietär, aber frei verwendbar)
* TextScan Online OCR

### Freie Software

* eScriptorium (eine auf Kraken basierende Web-Applikation)
* GT Text
* OCRopus (ocropy) und die davon abgeleiteten Programme Kraken und Calamari
* GOCR
* Loghi
* CuneiForm
* Ocrad
* Tesseract (mit z. B. gImageReader als grafische Benutzeroberfläche)
* OCRFeeder
* OCRmyPDF
* dpScreenOCR
* OCR4all
* OCR-D
* PERO OCR
* PyLaia