Texterkennung

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Optical Character Recognition)
Zur Navigation springen Zur Suche springen
Beispiel einer fehlerhaften automatischen Texterkennung. Aktuelle OCR-Software erkennt diesen Text fehlerfrei.

Texterkennung ist ein Begriff aus der Informationstechnik. Es bezeichnet die automatisierte Texterkennung bzw. automatische 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[Bearbeiten | Quelltext bearbeiten]

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.

Verfahren[Bearbeiten | Quelltext bearbeiten]

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

Seiten- und Gliederungserkennung[Bearbeiten | Quelltext bearbeiten]

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

Mustererkennung[Bearbeiten | Quelltext bearbeiten]

Fehlerkorrektur auf Pixelebene[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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

Fehlerkorrektur Zeichenebene (Intelligent Character Recognition, ICR)[Bearbeiten | Quelltext bearbeiten]

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)[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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

Codierung in das Ausgabeformat[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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.

Anwendungen[Bearbeiten | Quelltext bearbeiten]

  • 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[Bearbeiten | Quelltext bearbeiten]

Proprietäre Software[Bearbeiten | Quelltext bearbeiten]

Als Nebenfunktion in proprietärer Software:

Cloudbasiert:

  • ABBYY Cloud OCR[15]
  • Google Cloud Vision (Beta)[16]
  • Microsoft Azure Computer Vision API[17]
  • OCR.space Online OCR (proprietär, aber frei verwendbar)[18]
  • TextScan Online OCR[19]

Freie Software[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Hans F. Ebel, Claus Bliefert: Vortragen in Naturwissenschaft, Technik und Medizin. 1991; 2., bearbeitete Auflage 1994, VCH, Weinheim ISBN 3-527-30047-3, S. 300.
  2. 2012 Kurzweil AI Interview mit Jürgen Schmidhuber zu den acht Wettbewerben, die sein Deep Learning Team zwischen 2009 und 2012 gewann
  3. Graves, Alex; and Schmidhuber, Jürgen; Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks, in Bengio, Yoshua; Schuurmans, Dale; Lafferty, John; Williams, Chris K. I.; and Culotta, Aron (eds.), Advances in Neural Information Processing Systems 22 (NIPS'22), December 7th–10th, 2009, Vancouver, BC, Neural Information Processing Systems (NIPS) Foundation, 2009, S. 545–552; ein gleichnamiges Preprint befindet sich unter: [1]
  4. A. Graves, M. Liwicki, S. Fernandez, R. Bertolami, H. Bunke, J. Schmidhuber. A Novel Connectionist System for Improved Unconstrained Handwriting Recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, Band 31, Nummer 5, 2009.
  5. Schmidhuber, Jürgen; Winning Handwriting Recognition Competitions Through Deep Learning, http://www.idsia.ch/~juergen/handwriting.html
  6. Bengio, Y. (2009). Learning Deep Architectures for AI. Now Publishers. Archivierte Kopie (Memento vom 21. März 2014 im Internet Archive)
  7. Schmidhuber, Jürgen; My First Deep Learning System of 1991 + Deep Learning Timeline 1962-2013, http://www.idsia.ch/~juergen/firstdeeplearner.html
  8. Fukushima, K.: Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. In: Biological Cybernetics. 36. Jahrgang, Nr. 4, 1980, S. 93–202, doi:10.1007/BF00344251.
  9. Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, L. D. Jackel. Backpropagation Applied to Handwritten Zip Code Recognition. Neural Computation, 1(4):541-551, 1989. PDF
  10. M. Riesenhuber, T. Poggio. Hierarchical models of object recognition in cortex. Nature Neuroscience, 1999. PDF
  11. Dominik Scherer, Andreas C. Müller, and Sven Behnke: Evaluation of Pooling Operations in Convolutional Architectures for Object Recognition. In 20th International Conference on Artificial Neural Networks (ICANN), S. 92–101, 2010. doi:10.1007/978-3-642-15825-4_10, PDF
  12. J. Schmidhuber, 2009–2013: Deep Learning since 1991: First Deep Learners to Win Contests in Pattern Recognition, Object Detection, Image Segmentation, Sequence Learning, Through Fast & Deep / Recurrent Neural Networks. www.deeplearning.it
  13. D. C. Ciresan, U. Meier, J. Schmidhuber. Multi-column Deep Neural Networks for Image Classification. IEEE Conf. on Computer Vision and Pattern Recognition CVPR 2012. http://www.idsia.ch/~juergen/cvpr2012.pdf
  14. Microsoft Word Supportseite
  15. ABBYY Cloud OCR SDK. Abgerufen am 4. Dezember 2017 (englisch).
  16. Vision API – Analyse von Bildinhalten  |  Google Cloud Platform. Abgerufen am 4. Dezember 2017.
  17. Computer Vision API - Image Processing | Microsoft Azure. Abgerufen am 4. Dezember 2017 (englisch).
  18. OCR.space Free Online OCR. Abgerufen am 15. März 2019 (englisch).
  19. TextScan OCR. Abgerufen am 25. Oktober 2019 (englisch).
  20. Scripta / eScriptorium. Abgerufen am 30. Juni 2022 (englisch).
  21. Thijs van der Veen: Unique software to transcribe historical texts now open source available. Digital Infrastructure. KNAW Humanities Cluster, 21. April 2023, abgerufen am 26. April 2023 (englisch).
  22. gImageReader › Wiki › ubuntuusers.de. Abgerufen am 23. Mai 2021.
  23. DCGM / pero-ocr. Abgerufen am 30. Juni 2022 (englisch).