Nichts liegt näher, als stupide Arbeiten wie das Abtippen von Text dem Rechner zu überlassen. Seit vielen Jahren gibt es dafür Texterkennungs-Software. Dieser Artikel testet die Praxistauglichkeit der freien Engines und stellt ihnen die kommerzielle Lösung OCR Shop XTR von Vividata gegenüber.
Während kommerzielle Texterkennungsprogramme längst die Schrift auf Scans nahezu fehlerfrei einlesen und selbst das Seitenlayout des Originals beibehalten, existierten lange Zeit keine konkurrenzfähigen freien Alternativen. Ende August kündigte Google die Release von Tesseract an, seiner freien Optical Character Recognition Engine. Am vierten Oktober erschien Version 1.0.2. Zeit für eine Neubewertung: Wie praxistauglich sind quelloffene Texterkennungssysteme unter Linux?
Außer Tesseract prüft dieser Artikel die freien OCR-Programme Gocr [1] und Ocrad [2] aus dem Gnu-Projekt. Alle drei Anwendungen wandeln Bitpmaps ohne vorausgehendes Training in Textdateien um. Neben diesen nicht trainierbaren OCR-Anwendungen gibt es mit Clara OCR [3] eine freie Software, die Bitmaps erst nach dem Eintippen eines Teils des gescannten Texts übersetzt. Da Clara OCR wegen dieser aufwändigen Vorbereitung nur unter bestimmten Umständen (Erkennung vieler Dokumente mit gleicher Schriftart) eine zeitsparende Alternative zum Eintippen bietet, blieb die trainierbare OCR-Lösung in dieser Bitparade außen vor. Stichproben ergaben außerdem, dass Clara OCR in der vorliegenden Version keine brauchbare Ergebnisse liefert.
Auf der Höhe der Zeit?
Zum Vergleich bezieht der Test eine kommerzielle Engine ein: Die Gegenüberstellung mit dem 2400 US-Dollar teuren OCR Shop XTR von Vividata [6] zeigt, wie sich die freien OCR-Programme im Vergleich mit Profilösungen schlagen (siehe Kasten “Im Vergleich: OCR Shop XTR”). Zwei kommerzielle Anbieter von OCR-Anwendungen unter Windows, Nuance (Omnipage, [4]) und Abby (Finereader, [5]), stellen seit kurzem auch ein SDK für Linux bereit.
|
Im Vergleich: OCR Shop |
|---|
|
OCR kann richtig Zeit sparen: Die Profi-Lösung OCR Shop XTR von Vividata [5] leistet sich außer beim Scan der Kopie mit Artefakten fast keine Fehler: Lediglich beim um 0,5 Grad gedrehten Text erkennt das Programm beim unterstrichenen deutschen Wort “Englischer” einen Buschstaben nicht. Alle anderen Scans des Laserausdrucks setzte die Software ohne Aussetzer um. OCR Shop XTR ist ein Commandline-Tool. Die englische Basisversion lässt sich um Sprachmodule für 56 verschiedene Sprachen erweitern. Außer Textdateien kann das OCR-System auch durchsuchbare PDFs erzeugen. Die Software erkennt außerdem Text in Spalten und das Layout der Vorlageseiten. |
Die Testanforderungen orientierten sich an der Praxis: Die Basis bildeten Scans eines Laserdrucks in 300 DPI mit einem älteren Flachbettscanner (Canon F915900). Die OCR-Software musste auch mit kopiertem und schräg in den Scanner eingelegtem Text zurechtkommen. Der Testtext enthält verschiedene Schriften (mit Serifen: Nimbus Roman, serifenlos: Arial) und Schriftgrößen sowie unterstrichenen und kursiven Text.
Gocr
Seit 2000 gibt es die Gocr-Projektseite auf Sourceforge [1]. Wer jedoch daraus schließt, bei Release 0.42 vom August 2006 handle es sich um ausgereifte Software, wird enttäuscht: Die Erkennungsleistung ist unter den beschriebenen Testbedingungen kaum gut genug, um gegenüber dem Abtippen Zeit zu sparen (Abbildungen 1, 2 und 3). Schon beim direkten Scan der Laserdruckvorlage macht Gocr zahlreiche Fehler. Vor allem bei nicht exakt gerade gescannten Texten schneidet die Texterkennungs-Software wesentlich schlechter ab als andere Engines: Bereits eine Drehung von 0,5 Grad verschlechtert die Erkennungsleistung erheblich. Mit dem um 5 Grad gedrehten Text kann die OCR-Engine überhaupt nichts mehr anfangen.

Abbildung 1: Weitgehend untauglich: Bereits beim direkten Scan des Laserdrucks leistet sich Gocr so viele Fehler (hier rot markiert), dass Abtippen effektiver wäre.

Abbildung 3: Völlig verdreht: Liegt die Vorlage nur um 0,5 Grad gedreht im Scanner, erkennt Gocr noch einzelne Wörter, bei 5 Grad Drehung ist die Erkennungsleistung null.
Gocr bringt ein einfaches, in Tcl/Tk geschriebenes GUI mit, das einen Zugriff auf Tuning-Optionen erlaubt, etwa einen Grenzwert für den Rauschfilter oder die Schwarz-Weiß-Schwelle. Leider gelang es auch hiermit nicht, die Erkennungsgenauigkeit wesentlich zu verbessern. Die beiden Scanprogramme Xsane [7] und Kooka [8] integrieren Gocr ebenfalls in eine grafische Oberfläche.
Immerhin erkennt das Programm als einziges der getesteten freien OCR-Systeme deutsche Umlaute. Gerade hier leistete sich die Software jedoch besonders viele Fehler: Es verwechselte bei Umlauten häufig Groß- und Kleinbuchstaben oder gab die Umlautpunkte als Anführungszeichen nach dem Buchstaben zurück.
|
Tabelle 1: Freie |
||||
|---|---|---|---|---|
|
|
Gocr |
Ocrad |
Tesseract |
|
|
Features |
|
|
|
|
|
Umlaute |
ja |
nein |
nein |
|
|
Text in Spalten |
nein |
ja |
nein |
|
|
Layouterkennung |
nein |
ja |
nein |
|
|
GUI |
Tcl/Tk-Frontend, Einbindung in Xsane |
Einbindung in Xsane |
nein |
|
|
Erkennungsleistung |
|
|
|
|
|
Laserdruck, Graustufen-Scan, 8 Bit |
ausreichend |
ausreichend |
befriedigend |
|
|
Laserdruck, SW-Scan, 1 Bit Farbtiefe (Tesseract 1.01) |
ausreichend |
ausreichend |
gut |
|
|
Kopie mit Artefakten |
ungenügend |
ungenügend |
mangelhaft |
|
|
Scan 0,5 Grad gedreht |
ungenügend |
mangelhaft |
befriedigend |
|
|
Scan 5 Grad gedreht |
ungenügend |
ungenügend |
ausreichend |
|
Ocrad
Die Texterkennungssoftware Ocrad [2] stammt aus dem Gnu-Projekt. Als einzige freie OCR-Engines enthält Ocrad eine automatische Layouterkennung: Nach Aufruf mit den Parameter »–layout=2« erkennt das Programm Spalten und Textblöcke.
Die Texterkennungsleistung beim direkten Scan des Laserausdrucks ist im Test etwa von derselben Qualität wie bei Gocr: Die Engine leistet sich zwar mehr falsche Einzelbuchstaben, erkennt dafür aber unterstrichenen, kursiven und kleiner formatierten Text ohne Probleme. Ocrad reagiert außerdem weniger sensibel auf schräg gescannten Text.
Insgesamt spielt die GNU-OCR-Engine in derselben Liga wie Gocr: Die solide Beherrschung des 10-Finger-Systems beim Tippen bleibt weiterhin gefragt, zumal Ocrad keine Umlaute erkennt und sich daher nicht für deutsche Texte eignet. (Abbildungen 5, 6 und 7).

Abbildung 7: Nicht der richtige Dreh: Bei schräg gescannten Vorlagen verschlechtert sich auch bei Ocrad die Erkennungsleistung. Sie ist nur etwas besser als bei Gocr.
Tesseract
Erst einige Monate nach Eröffnung der Sourceforge-Seite, Ende August, gab Google offiziell bekannt, dass die ursprünglich von HP entwickelte OCR-Engine Tesseract nun inklusive Quellen frei verfügbar sei [9]. Der Quelltext von Tesseract steht unter der Apache-License zum Download bereit [10]. Anders als bei Gocr und Ocrad bringen die Distributionen noch keine Pakete mit.
Nach dem Kompilieren ist zunächst das »tesseract«-Binary per Hand aus »/ccmain« in das Quelltext-Stammverzeichnis zu kopieren, da das Install-Target im Makefile noch nicht implementiert ist: Tesseract ist eindeutig noch Work in Progress. Es kann gegenwärtig nur Bitmap-Dateien im Tiff-Format verarbeiten. Ein GUI fehlt. Am stärksten stört jedoch in der Praxis, dass die Engine nicht mit Umlauten umgehen kann.
Nach Angaben der Entwickler eignet sich das Texterkennungssystem nur für englischen Text. Mit Spalten kann die freie Engine nicht umgehen. 1995, dem Jahr, in dem HP die Entwicklung einstellte, rangierte Tesseracts Vorläufer unter dem Namen HP Labs OCR im Annual Tests of OCR Accuracy der University of Nevada [11] auf Platz drei.
Vor knapp zwei Jahren stellte HP den Code der Universität von Nevada zur Verfügung. Da die Engine zu dieser Zeit viele Bugs enthielt, bat die Univeristät Google um Unterstützung und es gelang auch, das Interesse des Suchmaschinenbetreibers zu wecken.
Tatsächlich schlägt sich die Software, die es vor zehn Jahren aufs Siegertreppchen schaffte, auch in der Gegenwart noch gut: Tesseract liest den englischen Text beim Schwarzweiß-Scan eines Laserprinter-Ausdrucks mit nur einem Erkennungsfehler ein (Abbildung 8). Mit Graustufen-Scans hat die OCR-Engine etwas mehr Schwierigkeiten (zwei Erkennungsfehler, Abbildung 9). Eine Kopie mit für Thermokopierer typischen Artefakten führt jedoch wie bei den anderen Engines zu einem weitgehend unbrauchbaren Ergebnis.

Abbildung 8: Direkter Scan eines Laser-Ausdrucks in Schwarzweiß (1-Bit Farbtiefe): Beim englischen Text schlägt sich Tesseract wacker, beim deutschen fehlen sämtliche Umlaute.

Abbildung 9: Auch der Testsieger leistet sich Schwächen: Mit Graustufen-Scans tut sich Tesseract schwerer, die Artefakte der Kopie überfordern auch diese OCR-Engine.
Wenig Probleme bereiten Tesseract dagegen schräg in den Scanner eingelegte Vorlagen: Auch bei um 5 Grad gedrehter Vorlage erkennt die Software noch relativ viel Text (Abbildung 10). Bei 0,5 Grad Drehung litt die Erkennungsleistung nur geringfügig.

Abbildung 10: Bei gedrehtem Text nimmt auch Tesseracts Erkennungsleistung ab, doch selbst bei der starken Drehung von 5 Grad liefert die Erkennung noch brauchbare Ergebnisse.
Der Test mit dem Schwarzweiß-Scan (1 Bit Farbtiefe) erfolgte mit Version 1.01 von Tesseract: Die Anfang Oktober erschienene Version 1.02 zeigt den leichten Leistungszuwachs bei 1-Bit-Schwarzweiß-Scans der Vorgängerversion erstaunlicherweise nicht mehr. Die Erkennungsgenauigkeit liegt hier auch bei Scans mit 1-Bit Farbtiefe auf dem etwas niedrigeren Niveau der 8-Bit-Graustufen-Scans.
Vorteil für Google
Für englische Texte ist Tesseract klarer Sieger: Als einzige freie OCR-Engine liefert die Software Ergebnisse, die ihren Einsatz als Arbeitserleichterung lohnend machen. Leider kann Tesseract bislang nicht mit Umlauten umgehen.
Grund für das Interesse Googles an Tesseract ist das ebenso ehrgeizige wie umstrittene Digitalisierungsprojekt Google Book Search [12] (Abbildung 11). Gegenwärtig findet Googles Buchsuche auch für Goethes Faust überwiegend englische Übersetzungen. Auf Dauer dürfte sich der um internationale Präsenz bemühte Suchmaschienenbetreiber damit kaum zufrieden geben. Bleibt zu hoffen, dass auch Googles OCR-System davon profitieren wird.

Abbildung 11: Hintergrund für das Engagement bei Tesseract: Googles Buchsuche durchstöbert die digitalisierten Bücher nach Schlagwörtern.
Bis dies so weit ist, bleibt bei deutschen Texten eigentlich nur Abtippen oder der Einsatz einer kommerzielle Software wie OCR Shop von Vividata: Die Erkennungsgenauigkeit der einzigen freien deutschsprachigen OCR-Lösung Gocr ist einfach nicht gut genug, um wirklich Zeit zu sparen.
In der Praxis lassen sich Faktoren wie Scanqualität oder Schriftart meist nicht beeinflussen. Der vorliegende Test geht bei diesen Parametern daher nicht ins Detail. Dennoch ergibt sich eindeutig als Fazit, dass das über zehn Jahre nicht gepflegte und erst kürzlich wiederbelebte Tesseract immer noch “more accurate than any other Open Source OCR package out there” arbeitet, wie es das Google Code Blog formuliert.
Bleibt zu hoffen, dass möglichst bald auf Basis der jüngst veröffentlichten Linux-SDKs konkurrenzfähige und dennoch erschwingliche OCR-Anwendungen für Linux entstehen.
|
Infos |
|---|
|
[1] Gocr auf Sourceforge.net [http://jocr.sourceforge.net] [2] Gnu-Projektseite zu Ocrad: [http://www.gnu.org/software/ocrad/ocrad.html] [3] Download Clara-OCR: [http://www.geocities.com/claraocr] [4] Omipage 15 Capture SDK: [http://www.nuance.com/omnipage/capturesdk] [5] Finereader-SDK für Linux [http://www.abbyy.com/sdk/?param=28804] [6] OCR Shop XTR: [http://www.vividata.com/be_xtr_overview.html] [7] Xsane: [http://www.xsane.org] [8] Kooka: [http://kooka.kde.org] [9] Google-Ankündigung zu Tesseract: [http://google-code-updates.blogspot.com/2006/08/announcing-tesseract-ocr.html] [10] Tesseract auf Sourceforge.net: [http://sourceforge.net/projects/tesseract-ocr] [11] OCR-Test der Universität von Nevada aus dem Jahr 1995: [http://www.isri.unlv.edu/downloads/AT-1995.pdf] [12] Google Buchsuche: [http://books.google.org] |







