Texterkennung

Aus besserwiki.de
Video über den Prozess des Scannens und der optischen Zeichenerkennung (OCR) in Echtzeit mit einem tragbaren Scanner.

Optische Zeichenerkennung oder optischer Zeichenleser (OCR) ist die elektronische oder mechanische Umwandlung von Bildern mit getipptem, handgeschriebenem oder gedrucktem Text in maschinell kodierten Text, sei es aus einem gescannten Dokument, einem Foto eines Dokuments, einem Szenenfoto (z. B. der Text auf Schildern und Werbetafeln in einem Landschaftsfoto) oder aus einem Untertiteltext, der einem Bild überlagert ist (z. B. aus einer Fernsehsendung).

Die OCR ist eine weit verbreitete Form der Datenerfassung aus gedruckten Papierdatensätzen - seien es Passdokumente, Rechnungen, Kontoauszüge, computergesteuerte Quittungen, Visitenkarten, Briefe, Ausdrucke statischer Daten oder andere geeignete Unterlagen - und ist eine gängige Methode zur Digitalisierung gedruckter Texte, so dass diese elektronisch bearbeitet, durchsucht, kompakter gespeichert, online angezeigt und in maschinellen Verfahren wie kognitivem Computing, maschineller Übersetzung, (extrahierter) Text-to-Speech, Schlüsseldaten und Textmining verwendet werden können. OCR ist ein Forschungsgebiet im Bereich der Mustererkennung, der künstlichen Intelligenz und des Computerbildes.

Frühe Versionen mussten mit Bildern der einzelnen Zeichen trainiert werden und arbeiteten mit jeweils einer Schriftart. Inzwischen gibt es fortgeschrittene Systeme, die eine hohe Erkennungsgenauigkeit für die meisten Schriftarten bieten und eine Vielzahl von digitalen Bilddateiformaten unterstützen. Einige Systeme sind in der Lage, eine formatierte Ausgabe zu reproduzieren, die der Originalseite sehr nahe kommt, einschließlich Bildern, Spalten und anderen nicht textlichen Komponenten.

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.

Geschichte

Die Anfänge der optischen Zeichenerkennung gehen auf Technologien zurück, die sich mit der Telegrafie und der Entwicklung von Lesegeräten für Blinde befassen. Im Jahr 1914 entwickelte Emanuel Goldberg eine Maschine, die Zeichen lesen und in einen Standard-Telegrafencode umwandeln konnte. Gleichzeitig entwickelte Edmund Fournier d'Albe das Optophone, einen Handscanner, der, wenn er über eine gedruckte Seite bewegt wurde, Töne erzeugte, die bestimmten Buchstaben oder Zeichen entsprachen.

In den späten 1920er und in den 1930er Jahren entwickelte Emanuel Goldberg eine so genannte "Statistische Maschine" zum Durchsuchen von Mikrofilmarchiven mithilfe eines optischen Code-Erkennungssystems. Im Jahr 1931 erhielt er das USA-Patent Nr. 1.838.389 für diese Erfindung. Das Patent wurde von IBM erworben.

Blinde und sehbehinderte Benutzer

1974 gründete Ray Kurzweil das Unternehmen Kurzweil Computer Products, Inc. und setzte die Entwicklung der Omni-Font-OCR fort, mit der Text in praktisch jeder Schriftart erkannt werden konnte (Kurzweil wird oft die Erfindung der Omni-Font-OCR zugeschrieben, aber sie wurde bereits in den späten 1960er und 1970er Jahren von Unternehmen wie CompuScan eingesetzt). Kurzweil beschloss, dass die beste Anwendung dieser Technologie darin bestünde, eine Lesemaschine für Blinde zu entwickeln, die es blinden Menschen ermöglichen würde, sich Texte von einem Computer vorlesen zu lassen. Dieses Gerät erforderte die Erfindung von zwei Grundlagentechnologien - dem CCD-Flachbettscanner und dem Text-to-Speech-Synthesizer. Am 13. Januar 1976 wurde das fertige Produkt auf einer vielbeachteten Pressekonferenz unter der Leitung von Kurzweil und den Führern der National Federation of the Blind vorgestellt. Im Jahr 1978 begann Kurzweil Computer Products mit dem Verkauf einer kommerziellen Version des Computerprogramms zur optischen Zeichenerkennung. LexisNexis war einer der ersten Kunden, der das Programm kaufte, um juristische Dokumente und Nachrichten in seine im Entstehen begriffenen Online-Datenbanken hochzuladen. Zwei Jahre später verkaufte Kurzweil sein Unternehmen an Xerox, das an einer weiteren Kommerzialisierung der Umwandlung von Papier in Computertext interessiert war. Xerox gliederte es schließlich als Scansoft aus, das sich mit Nuance Communications zusammenschloss.

In den 2000er Jahren wurde OCR als Online-Dienst (WebOCR), in einer Cloud-Computing-Umgebung und in mobilen Anwendungen wie der Echtzeitübersetzung fremdsprachiger Zeichen auf einem Smartphone verfügbar gemacht. Mit dem Aufkommen von Smartphones und Smartglasses kann OCR in Anwendungen für internetfähige Mobilgeräte verwendet werden, die mit der Kamera des Geräts erfassten Text extrahieren. Diese Geräte, die nicht über eine im Betriebssystem integrierte OCR-Funktionalität verfügen, verwenden in der Regel eine OCR-API, um den Text aus der vom Gerät erfassten und bereitgestellten Bilddatei zu extrahieren. Die OCR-API gibt den extrahierten Text zusammen mit Informationen über die Position des erkannten Textes im Originalbild an die Geräte-App zur weiteren Verarbeitung (z. B. Text-to-Speech) oder Anzeige zurück.

Es gibt verschiedene kommerzielle und Open-Source-OCR-Systeme für die meisten gängigen Schriftsysteme, darunter lateinische, kyrillische, arabische, hebräische, indische, bengalische (Bangla), Devanagari-, tamilische, chinesische, japanische und koreanische Zeichen.

Anwendungen

OCR-Engines wurden für viele Arten von bereichsspezifischen OCR-Anwendungen entwickelt, wie z. B. OCR für Quittungen, Rechnungen, Schecks und juristische Abrechnungsdokumente.

Sie können verwendet werden für:

  • Dateneingabe für Geschäftsdokumente, z. B. Scheck, Reisepass, Rechnung, Kontoauszug und Quittung
  • Automatische Nummernschilderkennung
  • Auf Flughäfen zur Erkennung von Reisepässen und Extraktion von Informationen
  • Automatische Extraktion von Schlüsselinformationen aus Versicherungsdokumenten
  • Erkennung von Verkehrsschildern
  • Extrahieren von Visitenkarteninformationen in eine Kontaktliste
  • Schnellere Erstellung von Textversionen gedruckter Dokumente, z. B. Scannen von Büchern für das Projekt Gutenberg
  • Elektronische Bilder von gedruckten Dokumenten durchsuchbar machen, z. B. für Google Books
  • Umwandlung von Handschrift in Echtzeit zur Steuerung eines Computers (Pen-Computing)
  • Umgehen von CAPTCHA-Anti-Bot-Systemen, obwohl diese speziell zur Verhinderung von OCR konzipiert sind. Der Zweck kann auch darin bestehen, die Robustheit von CAPTCHA-Anti-Bot-Systemen zu testen.
  • Hilfsmittel für blinde und sehbehinderte Benutzer
  • Erstellung von Anleitungen für Fahrzeuge durch Identifizierung von CAD-Bildern in einer Datenbank, die dem sich in Echtzeit ändernden Fahrzeugdesign entsprechen.
  • Durchsuchbarkeit gescannter Dokumente durch Konvertierung in durchsuchbare PDFs
  • 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.

Arten

  • Optische Zeichenerkennung (OCR) - zielt auf maschinengeschriebenen Text, eine Glyphe oder ein Zeichen nach dem anderen.
  • Optische Worterkennung - erfasst maschinengeschriebenen Text, ein Wort nach dem anderen (für Sprachen, die ein Leerzeichen als Worttrennzeichen verwenden). (Gewöhnlich einfach "OCR" genannt.)
  • Intelligente Zeichenerkennung (ICR) - zielt ebenfalls auf handgeschriebenen druck- oder kursiven Text ab, eine Glyphe oder ein Zeichen nach dem anderen, wobei in der Regel maschinelles Lernen eingesetzt wird.
  • Intelligente Worterkennung (IWR) - zielt ebenfalls auf handgeschriebenen gedruckten oder kursiven Text ab, ein Wort nach dem anderen. Dies ist besonders nützlich für Sprachen, bei denen die Glyphen in Schreibschrift nicht getrennt sind.

OCR ist im Allgemeinen ein "Offline"-Prozess, bei dem ein statisches Dokument analysiert wird. Es gibt cloudbasierte Dienste, die einen Online-OCR-API-Dienst anbieten. Die Analyse der Handschriftbewegung kann als Input für die Handschrifterkennung verwendet werden. Anstatt nur die Formen von Glyphen und Wörtern zu verwenden, kann diese Technik auch Bewegungen erfassen, z. B. die Reihenfolge, in der Segmente gezeichnet werden, die Richtung und das Muster des Aufsetzens und Anhebens des Stifts. Diese zusätzlichen Informationen können den gesamten Prozess genauer machen. Diese Technik wird auch als "Online-Zeichenerkennung", "dynamische Zeichenerkennung", "Echtzeit-Zeichenerkennung" und "intelligente Zeichenerkennung" bezeichnet.

Techniken

Vorverarbeitung

OCR-Software verarbeitet Bilder häufig vor, um die Wahrscheinlichkeit einer erfolgreichen Erkennung zu erhöhen. Dazu gehören folgende Techniken:

  • De-skew - Wenn das Dokument beim Scannen nicht richtig ausgerichtet war, muss es möglicherweise um einige Grad im oder gegen den Uhrzeigersinn gekippt werden, damit die Textzeilen perfekt horizontal oder vertikal ausgerichtet sind.
  • Entflecken - Entfernen von positiven und negativen Flecken, Glätten von Kanten
  • Binarisierung - Konvertierung eines Bildes von Farbe oder Graustufen in Schwarz-Weiß (als "Binärbild" bezeichnet, weil es zwei Farben gibt). Die Binarisierung ist eine einfache Methode, um den Text (oder jede andere gewünschte Bildkomponente) vom Hintergrund zu trennen. Die Binarisierung selbst ist notwendig, da die meisten kommerziellen Erkennungsalgorithmen nur mit binären Bildern arbeiten, da dies einfacher ist. Darüber hinaus beeinflusst die Effektivität des Binarisierungsschritts in erheblichem Maße die Qualität der Zeichenerkennungsstufe, und es werden sorgfältige Entscheidungen bei der Wahl der Binarisierung für einen bestimmten Eingabebildtyp getroffen; denn die Qualität der Binarisierungsmethode, die zur Erzielung des Binärergebnisses eingesetzt wird, hängt von der Art des Eingabebilds ab (gescanntes Dokument, Szenentextbild, historisch verfallenes Dokument usw.).
  • Linienentfernung - Bereinigung von Nicht-Glyphen-Boxen und Linien
  • Layout-Analyse oder "Zoning" - Identifiziert Spalten, Absätze, Beschriftungen usw. als unterschiedliche Blöcke. Besonders wichtig bei mehrspaltigen Layouts und Tabellen.
  • Zeilen- und Worterkennung - Legt eine Basislinie für Wort- und Zeichenformen fest und trennt Wörter, falls erforderlich.
  • Schrifterkennung - In mehrsprachigen Dokumenten kann sich die Schrift auf der Ebene der Wörter ändern. Daher ist eine Identifizierung der Schrift erforderlich, bevor die richtige OCR zur Verarbeitung der spezifischen Schrift aufgerufen werden kann.
  • Zeichenisolierung oder "Segmentierung" - Bei der OCR pro Zeichen müssen mehrere Zeichen, die aufgrund von Bildartefakten miteinander verbunden sind, getrennt werden; einzelne Zeichen, die aufgrund von Artefakten in mehrere Teile zerbrochen sind, müssen verbunden werden.
  • Normalisierung von Seitenverhältnis und Maßstab

Die Segmentierung von Schriften mit festem Seitenverhältnis erfolgt relativ einfach, indem das Bild an einem einheitlichen Raster ausgerichtet wird, das darauf basiert, wo sich vertikale Rasterlinien am seltensten mit schwarzen Bereichen schneiden. Bei Proportionalschriften sind ausgefeiltere Techniken erforderlich, da der Leerraum zwischen den Buchstaben manchmal größer ist als der zwischen den Wörtern und vertikale Linien mehr als ein Zeichen überschneiden können.

Texterkennung

Es gibt zwei Grundtypen von OCR-Algorithmen, die eine Rangliste der in Frage kommenden Zeichen erstellen können.

  • Beim Matrixabgleich wird ein Bild Pixel für Pixel mit einer gespeicherten Glyphe verglichen; er wird auch als "Musterabgleich", "Mustererkennung" oder "Bildkorrelation" bezeichnet. Dies setzt voraus, dass die eingegebene Glyphe korrekt vom Rest des Bildes isoliert ist und dass die gespeicherte Glyphe in einer ähnlichen Schriftart und im gleichen Maßstab vorliegt. Diese Technik funktioniert am besten bei maschinengeschriebenem Text und funktioniert nicht gut, wenn neue Schriftarten auftauchen. Dies ist die Technik, die die frühen physischen OCR-Systeme mit Fotozellen direkt umgesetzt haben.
  • Bei der Merkmalsextraktion werden Glyphen in "Merkmale" wie Linien, geschlossene Schleifen, Linienrichtung und Linienüberschneidungen zerlegt. Die Extraktion von Merkmalen reduziert die Dimensionalität der Darstellung und macht den Erkennungsprozess rechnerisch effizienter. Diese Merkmale werden mit einer abstrakten vektorähnlichen Darstellung eines Zeichens verglichen, die sich auf einen oder mehrere Glyphenprototypen reduzieren kann. Allgemeine Techniken der Merkmalserkennung in der Computer Vision sind auf diese Art der OCR anwendbar, die häufig in der "intelligenten" Handschrifterkennung und in der Tat in der meisten modernen OCR-Software zu finden ist. Klassifikatoren für die nächstgelegenen Nachbarn, wie der k-nearest neighbors-Algorithmus, werden verwendet, um Bildmerkmale mit gespeicherten Glyphenmerkmalen zu vergleichen und die nächstgelegene Übereinstimmung auszuwählen.

Software wie Cuneiform und Tesseract verwenden einen Ansatz mit zwei Durchgängen zur Zeichenerkennung. Der zweite Durchgang wird als "adaptive Erkennung" bezeichnet und verwendet die Buchstabenformen, die im ersten Durchgang mit hoher Sicherheit erkannt wurden, um die übrigen Buchstaben im zweiten Durchgang besser zu erkennen. Dies ist von Vorteil bei ungewöhnlichen Schriftarten oder bei Scans von schlechter Qualität, bei denen die Schrift verzerrt ist (z. B. verschwommen oder verblasst).

Zu den modernen OCR-Programmen gehören Google Docs OCR, ABBYY FineReader und Transym. Andere wie OCRopus und Tesseract verwenden neuronale Netze, die darauf trainiert sind, ganze Textzeilen zu erkennen, anstatt sich auf einzelne Zeichen zu konzentrieren.

Eine neue Technik, die als iterative OCR bekannt ist, unterteilt ein Dokument automatisch in Abschnitte auf der Grundlage des Seitenlayouts. Die OCR wird für die einzelnen Abschnitte unter Verwendung variabler Schwellenwerte für die Zeichenkonfidenz durchgeführt, um die OCR-Genauigkeit auf Seitenebene zu maximieren. Für diese Methode wurde vom US-Patentamt ein Patent erteilt.

Das OCR-Ergebnis kann im standardisierten ALTO-Format gespeichert werden, einem speziellen XML-Schema, das von der United States Library of Congress gepflegt wird. Andere gängige Formate sind hOCR und PAGE XML.

Eine Liste von Software zur optischen Zeichenerkennung finden Sie unter Vergleich von Software zur optischen Zeichenerkennung.

Nachbearbeitung

Die OCR-Genauigkeit kann erhöht werden, wenn die Ausgabe durch ein Lexikon eingeschränkt wird - eine Liste von Wörtern, die in einem Dokument vorkommen dürfen. Dabei kann es sich z. B. um alle Wörter der englischen Sprache oder um ein eher technisches Lexikon für ein bestimmtes Gebiet handeln. Diese Technik kann problematisch sein, wenn das Dokument Wörter enthält, die nicht im Lexikon stehen, wie z. B. Eigennamen. Tesseract verwendet sein Wörterbuch, um den Schritt der Zeichensegmentierung zu beeinflussen und so die Genauigkeit zu verbessern.

Der Ausgabestrom kann ein reiner Textstrom oder eine Zeichendatei sein, aber anspruchsvollere OCR-Systeme können das ursprüngliche Layout der Seite beibehalten und z. B. eine kommentierte PDF-Datei erzeugen, die sowohl das Originalbild der Seite als auch eine durchsuchbare Textdarstellung enthält.

Die "Near-Neighbor-Analyse" kann die Häufigkeit des gemeinsamen Auftretens nutzen, um Fehler zu korrigieren, indem sie feststellt, dass bestimmte Wörter häufig zusammen vorkommen. Zum Beispiel ist "Washington, D.C." im Englischen viel häufiger als "Washington DOC".

Die Kenntnis der Grammatik der gescannten Sprache kann auch dabei helfen, festzustellen, ob ein Wort wahrscheinlich ein Verb oder ein Substantiv ist, was eine größere Genauigkeit ermöglicht.

Der Levenshtein-Distanz-Algorithmus wurde auch bei der OCR-Nachbearbeitung eingesetzt, um die Ergebnisse einer OCR-API weiter zu optimieren.

Anwendungsspezifische Optimierungen

In den letzten Jahren haben die großen OCR-Technologieanbieter damit begonnen, OCR-Systeme so zu optimieren, dass sie mit bestimmten Eingabearten effizienter umgehen können. Über ein anwendungsspezifisches Lexikon hinaus kann eine bessere Leistung erzielt werden, indem Geschäftsregeln, Standardausdrücke oder die in Farbbildern enthaltenen umfangreichen Informationen berücksichtigt werden. Diese Strategie wird als "anwendungsorientierte OCR" oder "kundenspezifische OCR" bezeichnet und wurde bei der OCR von Nummernschildern, Rechnungen, Screenshots, Personalausweisen, Führerscheinen und im Automobilbau angewandt.

Die New York Times hat die OCR-Technologie in ein firmeneigenes Tool mit dem Namen Document Helper integriert, mit dem ihr interaktives Nachrichtenteam die Verarbeitung von zu prüfenden Dokumenten beschleunigen kann. Die New York Times gibt an, dass sie damit bis zu 5.400 Seiten pro Stunde verarbeiten kann, damit die Reporter den Inhalt prüfen können.

Umgehungen

Es gibt mehrere Techniken, um das Problem der Zeichenerkennung mit anderen Mitteln als verbesserten OCR-Algorithmen zu lösen.

Erzwingen einer besseren Eingabe

Spezielle Schriftarten wie OCR-A, OCR-B oder MICR-Schriftarten mit genau festgelegten Größen, Abständen und charakteristischen Zeichenformen ermöglichen eine höhere Genauigkeit bei der Transkription bei der Bearbeitung von Bankschecks. Ironischerweise wurden einige bekannte OCR-Engines jedoch für die Erfassung von Text in gängigen Schriftarten wie Arial oder Times New Roman entwickelt und sind nicht in der Lage, Text in diesen speziellen und von den gängigen Schriftarten stark abweichenden Schriftarten zu erfassen. Da Google Tesseract darauf trainiert werden kann, neue Schriftarten zu erkennen, kann es OCR-A, OCR-B und MICR-Schriftarten erkennen.

"Kammfelder" sind vorgedruckte Kästchen, die den Menschen dazu anregen sollen, besser lesbar zu schreiben - eine Glyphe pro Kästchen. Diese sind oft in einer "Auslassungsfarbe" gedruckt, die vom OCR-System leicht entfernt werden kann.

Palm OS verwendet einen speziellen Satz von Glyphen, bekannt als "Graffiti", die gedruckten englischen Zeichen ähneln, aber zur leichteren Erkennung auf der rechenschwachen Hardware der Plattform vereinfacht oder verändert wurden. Die Benutzer mussten lernen, wie man diese speziellen Glyphen schreibt.

Bei der zonenbasierten OCR wird das Bild auf einen bestimmten Teil eines Dokuments beschränkt. Dies wird oft als "Template OCR" bezeichnet.

Crowdsourcing

Das Crowdsourcing von Menschen zur Durchführung der Zeichenerkennung kann Bilder ähnlich schnell verarbeiten wie die computergestützte OCR, jedoch mit einer höheren Erkennungsgenauigkeit als die von Computern erzielte. Zu den praktischen Systemen gehören Amazon Mechanical Turk und reCAPTCHA. Die finnische Nationalbibliothek hat eine Online-Schnittstelle entwickelt, über die Benutzer OCR-erkannte Texte im standardisierten ALTO-Format korrigieren können. Crowd Sourcing wurde auch eingesetzt, um Softwareentwickler zur Entwicklung von Bildverarbeitungsalgorithmen aufzufordern, z. B. durch die Verwendung von Rangordnungswettbewerben, und nicht um die Zeichenerkennung direkt durchzuführen.

Genauigkeit

Im Auftrag des US-Energieministeriums (DOE) hatte das Information Science Research Institute (ISRI) die Aufgabe, die Verbesserung automatisierter Technologien zum Verständnis maschinell gedruckter Dokumente zu fördern, und führte von 1992 bis 1996 den maßgeblichen jährlichen Test der OCR-Genauigkeit durch.

Die Erkennung von maschinengeschriebenem Text in lateinischer Schrift ist immer noch nicht zu 100 % genau, selbst wenn ein klares Bild vorhanden ist. Eine Studie, die sich mit der Erkennung von Zeitungsseiten aus dem 19. und frühen 20. Jahrhundert befasste, kam zu dem Schluss, dass die OCR-Genauigkeit kommerzieller OCR-Software zwischen 81 % und 99 % schwankt; eine vollständige Genauigkeit kann durch menschliche Überprüfung oder Data Dictionary Authentication erreicht werden. Andere Bereiche - wie die Erkennung von Handschrift, Schreibschrift und gedrucktem Text in anderen Schriften (insbesondere in ostasiatischen Sprachen, die viele Striche für ein einzelnes Zeichen haben) - sind noch Gegenstand aktiver Forschung. Die MNIST-Datenbank wird üblicherweise verwendet, um die Fähigkeit von Systemen zu testen, handgeschriebene Ziffern zu erkennen.

Genauigkeitsraten können auf verschiedene Weise gemessen werden, und die Art der Messung kann die angegebene Genauigkeitsrate stark beeinflussen. Wenn beispielsweise der Wortkontext (im Grunde ein Wortlexikon) nicht verwendet wird, um Software zu korrigieren, die nicht existierende Wörter findet, kann eine Zeichenfehlerrate von 1 % (99 % Genauigkeit) zu einer Fehlerrate von 5 % (95 % Genauigkeit) oder mehr führen, wenn die Messung darauf beruht, ob jedes ganze Wort ohne falsche Buchstaben erkannt wurde. Die Verwendung eines ausreichend großen Datensatzes ist für eine auf einem neuronalen Netz basierende Handschrifterkennung sehr wichtig. Andererseits ist die Erstellung natürlicher Datensätze sehr kompliziert und zeitaufwändig.

Ein Beispiel für die Schwierigkeiten bei der Digitalisierung alter Texte ist die Unfähigkeit der OCR, zwischen den Zeichen "langes s" und "f" zu unterscheiden.

Webbasierte OCR-Systeme zur Erkennung von handgeschriebenem Text sind in den letzten Jahren als kommerzielle Produkte bekannt geworden (siehe Geschichte der Tablet PCs). Bei sauberen, handschriftlichen Zeichen können mit Pen-Computing-Software Genauigkeitsraten von 80 % bis 90 % erreicht werden, aber diese Genauigkeitsrate bedeutet immer noch Dutzende von Fehlern pro Seite, so dass diese Technologie nur für sehr begrenzte Anwendungen nützlich ist.

Die Erkennung von kursivem Text ist ein aktives Forschungsgebiet, wobei die Erkennungsraten sogar noch niedriger sind als die von handgeschriebenem Text. Höhere Erkennungsraten bei allgemeiner Schreibschrift sind ohne die Verwendung von kontextuellen oder grammatikalischen Informationen wahrscheinlich nicht möglich. So ist es zum Beispiel einfacher, ganze Wörter aus einem Wörterbuch zu erkennen, als zu versuchen, einzelne Zeichen aus der Schrift herauszulesen. Das Lesen der Betragszeile eines Schecks (die immer eine ausgeschriebene Zahl ist) ist ein Beispiel dafür, dass die Verwendung eines kleineren Wörterbuchs die Erkennungsrate erheblich steigern kann. Die Formen der einzelnen kursiven Zeichen selbst enthalten einfach nicht genug Informationen, um alle handgeschriebenen kursiven Schriftzeichen genau (zu mehr als 98 %) zu erkennen.

Die meisten Programme ermöglichen es dem Benutzer, "Vertrauensraten" festzulegen. Das bedeutet, dass ein Benutzer zur manuellen Überprüfung benachrichtigt werden kann, wenn die Software den gewünschten Genauigkeitsgrad nicht erreicht.

Ein Fehler, der durch OCR-Scannen entsteht, wird manchmal als "Scanno" bezeichnet (in Analogie zum Begriff "Tippfehler").

Unicode

Zeichen zur Unterstützung von OCR wurden im Juni 1993 mit der Veröffentlichung der Version 1.1 in den Unicode-Standard aufgenommen.

Einige dieser Zeichen werden von speziellen MICR-, OCR-A- oder OCR-B-Schriften abgebildet.

Optische Zeichenerkennung
Offizielle Codetabelle des Unicode-Konsortiums (PDF)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
U+244x
U+245x
Anmerkungen
1.^ Ab Unicode-Version 14.0
2.^ Graue Bereiche zeigen nicht zugewiesene Codepunkte an.

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 in den Programmen OCRopus und Tesseract (ab Version 4) eingesetzt.

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
  • 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
  • ARGUS Script von Planet IS GmbH
  • 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 2010
  • Microsoft 365, Word ab Version 2013 (Supportseite)
  • 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
  • CuneiForm
  • Ocrad
  • Tesseract (mit z. B. gImageReader als grafische Benutzeroberfläche)
  • OCRFeeder
  • dpScreenOCR
  • OCR4all
  • OCR-D
  • PERO OCR