Test von OCR-Scannern: die beste Software für Texterkennung
Fabian Gringel
Die optische Zeichenerkennung (kurz: OCR) hat die Aufgabe, Text automatisch aus Bildern zu extrahieren (die in typischen Bildformaten wie PNG oder JPG vorliegen können, aber auch als PDF-Datei). Heutzutage gibt es eine Vielzahl von Werkzeugen und Diensten zu Texterkennung, die einfach zu bedienen sind und diese Aufgabe zu einem Kinderspiel machen. In diesem Blogbeitrag werde ich vier der beliebtesten Tools vergleichen:
Tesseract-OCR
ABBYY FineReader
Google Cloud-Vision
Amazon-Textrakt
Ich werde zeigen, wie man sie einsetzt und ihre Stärken und Schwächen auf der Grundlage ihrer Leistung bei einer Reihe von Aufgaben bewerten kann. Nach der Lektüre dieses Artikels werden Sie in der Lage sein, ein OCR-Tool auszuwählen und anzuwenden, das den Anforderungen Ihres Projekts entspricht.
Beachten Sie, dass wir uns auf die OCR nur für Dokumentenbilder konzentrieren, im Gegensatz zu Bildern, die lediglich nebenbei auch Text enthalten.
Werfen wir nun einen Blick auf die Dokumentenbilder, die wir zur Beurteilung der OCR-Engines verwenden werden.
Unsere Testbilder
Bilder von Dokumenten gibt es in unterschiedlichen Formen und Qualitäten. Manchmal werden sie gescannt, andere Male werden sie von Handheld-Geräten erfasst. Neben gedrucktem Text können sie auch Handschrift und Strukturelemente wie Kästen und Tabellen enthalten. Daher sollte das ideale OCR-Werkzeug
gut gescannten Text zuverlässig erkennen,
robust gegenüber schlechter Bildqualität und Handschrift sein,
Informationen über die Formatierung und Struktur des Dokuments ausgeben.
Unter diesen Voraussetzungen werden wir die OCR-Werkzeuge an den folgenden vier Bildern testen:
Alle Bilder stammen aus einem großen Korpus von Dokumenten der Tabakindustrie. Das dritte wurde ausgedruckt und dann mit einem Smartphone erfasst, wobei typische Störungen entstehen.
Zunächst wird untersucht, wie Tesseract-OCR in Bezug auf diese Aufgaben funktioniert.
Tesseract OCR
Das Beste an Tesseract ist, dass es kostenlos und einfach zu benutzen ist. Im Grunde ist es ein Kommandozeilenwerkzeug, aber es gibt auch einen Python-Wrapper namens Pytesseract und das GUI-Frontend gImageReader, so dass Sie das für Ihre Zwecke am besten geeignete Werkzeug auswählen können.
Die Verwendung des Kommandozeilen-Werkzeugs ist einfach:
tesseract imagename outputbase [outputformat]
Wenn wir kein Ausgabeformat angeben, ist die Standardeinstellung eine Textdatei, die die erkannten Zeichen enthält. Alternativ gibt pdf
ein durchsuchbares PDF sowie hocr
und alto
XML-Dateien aus, die zusätzliche Informationen wie Zeichenpositionen (im gleichnamigen XML-Standard) enthalten. Siehe hier für weitere optionale Argumente.
Hier ist, was Tesseract in unseren Testbildern findet:
Wie Sie feststellen werden, erkennt Tesseract OCR den Text in der gut gescannten E-Mail ziemlich gut. Wenn es jedoch um den handgeschriebenen Brief und das mit dem Smartphone erfasste Dokument geht, wird entweder Unsinn oder buchstäblich nichts ausgegeben.
Für die Ausgabe aus dem Tabellenbild habe ich gImageReader, das oben erwähnte GUI-Frontend, verwendet. Es stellt sich heraus, dass Tesseract für Bereiche des Bildes, die Text enthalten, Begrenzungsrahmen ausgibt, aber das kommt nicht einmal annähernd an eine korrekte Tabellenextraktion heran. Natürlich können Sie die Ausgabe von Tesseract mit Ihrem eigenen Tabellenextraktionswerkzeug verarbeiten. Unsere Blog-Posts über die Anwendung von OCR auf technische Zeichnungen und die Extraktion von Daten aus Briefen geben eine Vorstellung davon, wie.
ABBYY FineReader
ABBYY bietet eine Reihe von OCR-bezogenen Produkten an. Ich werde die ABBYY Cloud OCR SDK-API verwenden. Dieser Cloud-Service verwendet das ABBYY FineReader OCR-Modul, das auch lokal installiert werden kann. Im Gegensatz zu Tesseract ist ABBYY Cloud OCR nicht kostenlos (Preise).
Wenn Sie lernen möchten, wie die API zu verwenden ist, finden Sie alles, was Sie wissen müssen, in diesen Kurzanleitungen.
Auch hier haben wir verschiedene Optionen in Bezug auf das OCR-Ausgabeformat. Abgesehen von den Optionen, die auch von Tesseract angeboten werden, können wir ABBYY zusätzlich bitten, XLSX-Tabellen auszugeben. Ich werde diese Option für unser Tabellenbild verwenden.
ABBYY FineReader hat keine Probleme mit der gut gescannten E-Mail und kommt mit dem Smartphone-Dokument einigermaßen gut zurecht. Auf dem handgeschriebenen Dokument schlägt es jedoch völlig fehl.
Sein größter Vorzug ist die Tabellenextraktion: Wie Sie auf dem letzten Bild sehen können, bleibt bei der Ausgabe die tabellarische Struktur erhalten. Ein genauerer Blick auf die XML-Ausgabe zeigt, dass FineReader die Tabellenabschnitte und die einzelnen Zellen tatsächlich erkennt und sogar Details wie den Schriftstil extrahiert (siehe hier für eine Beschreibung des XML-Schemas von ABBYY).
Google Cloud Vision
Als nächstes kommt Google Cloud Vision, das wir über die API nutzen werden. Genau wie FineReader ist es ein kostenpflichtiger Dienst (Preisgestaltung).
Die Verwendung der Cloud Vision API ist etwas schwieriger als die Verwendung der API von ABBYY oder Tesseract. Um zu erfahren, wie es funktioniert, finden Sie hier und hier gute Ansatzpunkte.
Wir erhalten die folgende Ausgabe:
Google schneidet bei der gescannten E-Mail gut ab und erkennt den Text in dem mit dem Smartphone erfassten Dokument ähnlich gut wie ABBYY. Allerdings ist es bei der Handschrifterkennung viel besser als Tesseract oder ABBYY, wie das zweite Ergebnisbild zeigt: noch lange nicht perfekt, aber immerhin hat es einige Dinge richtig gemacht. Auf der anderen Seite kann Google Cloud Vision mit Tabellen nicht sehr gut umgehen: Es extrahiert den Text, aber das war's auch schon.
Tatsächlich ist die ursprüngliche Ausgabe von Cloud Vision eine JSON-Datei, die Informationen über Zeichenpositionen enthält. Genau wie bei Tesseract könnte man versuchen, auf der Grundlage dieser Informationen Tabellen zu erkennen, aber auch hier ist diese Funktionalität nicht eingebaut.
Beachten Sie, dass es jetzt auch eine Betaversion der Google Document Understanding AI gibt, die wir bis jetzt noch nicht getestet haben.
Amazon Textract
Unser letzter Kandidat ist ebenfalls eine bezahlte Cloud-basierte Lösung (Preisgestaltung).
Zu Testzwecken können Sie Textract bequem mit der Drag&Drop-Benutzeroberfläche des Browsers verwenden, aber für produktionsreife Anwendungen werden Sie wahrscheinlich eher die mitgelieferte API verwenden wollen.
Bei Verwendung der Browser-Schnittstelle gibt Textract Folgendes aus:
die API-Antwort als JSON-Datei,
den Rohtext,
erkannte Tabellen in separaten CSV-Dateien,
Schlüssel-Werte-Paare (Interpretation der Eingabe als Formular) als CSV-Datei.
Daraus ergeben sich die folgenden Resultate:
Wie zuvor sieht die E-Mail gut aus, aber anscheinend kommt Textract mit handgeschriebenen Texten nicht sehr gut zurecht. Außerdem sieht das mit einem Smartphone aufgenommene Dokument zwar auf den ersten Blick in Ordnung aus, aber bei genauerem Hinsehen stellt sich heraus, dass die OCR von Amazon die Zeilen verwechselt hat (aufgrund der Krümmung des Dokumentenbildes).
Für das tabellarische Dokument zeigen wir nur eine der drei von Textract identifizierten Tabellen. Aber es ist bereits sichtbar, dass einige Spaltenüberschriften fehlen und einige Zahlen an den falschen Stellen stehen.
Fazit
Diese Tabelle fasst die Ergebnisse unserer Tests zusammen:
OCR tool |
Ideal document image |
Handwriting |
Smartphone-captured |
Table extraction |
Tesseract OCR |
Acceptable |
Bad |
Bad |
Bad |
ABBYY FineReader |
Good |
Bad |
Good |
Good |
Google Cloud Vision |
Good |
Acceptable |
Good |
Bad |
Amazon Textract |
Good |
Bad |
Acceptable |
Acceptable |
Die wichtigsten Takeaways in Worten:
Wenn Sie mit maschinell geschriebenen und gut gescannten Dokumenten oder vielleicht PDF-Dateien ohne Metadaten arbeiten, dann könnte die OCR von Tesseract die Aufgabe übernehmen, obwohl die kommerziellen Dienste zuverlässiger sind.
Wenn die Erkennung handgeschriebener Zeichen für Sie wichtig ist, ist Google Cloud Vision Ihre einzige praktikable Option unter den getesteten.
Wenn die Bildqualität des Dokuments schlecht ist, leisten sowohl ABBYY FineReader als auch Google Cloud Vision immer noch gute Arbeit.
Wenn Ihr Ziel darin besteht, tabellarische Informationen zu extrahieren, sollten Sie ABBYY FineReader wählen.
Falls Ihnen diese OCR-Tools für die erfolgreiche Umsetzung Ihres Machine Learning Projekts nicht genügen, können sie einen kostenlosen Machine Learning Experten-Talk mit uns buchen.