LinuxLounge.net und ab auf die Couch!

5Dez/0912

Optische Zeichenerkennung

Unter Optischer Zeichenerkennung (OCR) versteht man das Erkennen von Textelementen innerhalb von Grafiken. Solch eine Software ist nützlich um z.B. Text aus einem Bildschirmfoto zu übernehmen, ein Dokument zu digitalisieren oder auch blinden Menschen zu ermöglichen, Texte in Bildern vorgelesen zu bekommen.

Leider ist es um freie Programme, die unter Linux laufen und diesen Zweck erfüllen können, nicht sonderlich gut bestellt. Insbesondere verschiedene Schriftarten, Schriftgrößen, tabellarische Anordnungen und Formatierungen wie Kursivdruck, Fettdruck oder gar Durchgestrichen stellen die Programme auf die Probe. Vier der größeren Projekte sind GOCR, Tesseract, Ocrad, OCRopus und CuneiformLinux, die sich mit unterschiedlichen Stärken und Schwächen präsentieren. Wir haben alle fünf unter die Lupe genommen und ein paar einfache Produktivtests durchgeführt.

Installation und Vorstellung

Während drei davon einfach aus den Paketquellen installierbar sind, muss man bei Googles OCRopus und Cuneiform-Linux durchaus viel Hand anlegen. Wir beginnen aber zunächst mit GOCR.

GOCR

(getestete Version: 0.46-2.1) Auch bekannt als JOCR wird diese Engine seit dem Millenium von einem Team um Jörg Schulenburg entwickelt. Es stellt scheinbar einen All-Rounder des Linux OCR dar, denn auf der Homepage geht das Autorenteam auf keinerlei Limitierungen ein - wir sind gespannt.
# aptitude -r install gocr
GOCR verarbeitet Bilder in gängigen Formaten (JPEG, PNG, EPS, Bitmap, GIF, TIFF), sowie einzelne Seiten im verbreiteten Postscript-Format und ebenfalls in PPM, PGM und PBM. Das Einlesen einer Datei erfolgt durch
$ gocr -i [FILE]

Tesseract

(getestete Version: 2.04-2) Tesseract wurde ursprünglich 1995 von Hewlett-Packard entwickelt und 2005 an Google übergeben. Obwohl zwischen der Erstentwicklung und der Übergabe kaum an der Engine gearbeitet wurde, zählte sie wohl immernoch zu den Großen unter den Freien. Bei Google wurde es schließlich überarbeitet und anschließend weiterhin als Open-Source Software rausgegeben.
# aptitude -r install tesseract-ocr
Zusätzlich gibt es Sprachpakete für en, de, it, fr und einige mehr. Tesseract verarbeitet ausschließlich Bilder im TIFF-Format (tagged image file format). Bedienung:
$ tesseract [FILE].tif [OUTPUT_DATEI]

Ocrad

(getestete Version: 0.17-4) Ocrad ist teil des GNU-Projkts. Aus den Repositories installiert werden kann es mit:
# aptitude -r install ocrad
Ocrad verarbeitet Bilder im PPM, PGM und PBM-Format. Die Datei wird so an Ocrad übergeben:
$ ocrad [FILE]

OCRopus

(getestete Version: 0.4.3) Von Google unterstützt und weiterentwickelt um Google Books zu indizieren verwendet OCRopus als Zeichenerkennungs-Modul das weiter oben bereits beschriebene Tesseract, es soll jedoch bald auf ein auf dem OpenFST-Projekt basierenden Erkennungsmodul umgestellt werden. Zur Verbesserung von Tesseracts Ergebnissen werden zusätzlich statische Sprachmodelle verwendet. Bisher ist OCRopus ausdrücklich nur eine Vorabversion, zu einem stabilen Release soll dann auch eine grafische Oberfläche mitgeliefert werden. Ocrad verarbeitet Bilder in den Formaten JPEG, GIF, PNG und TIFF.
$ ocropus page [FILE]
Da die Installation von OCRopus derzeit noch eine gewaltige Abhängigkeitskette hat überspringen wir diese hier erst einmal, wenn jedoch nachträglich noch Bedarf besteht, werden wir dies in einem weiteren Artikel aufarbeiten.

Cuneiform-Linux

(getestete Version: 0.8) Cuneiform-Linux ist eine Linux Portierung der Software Cuneiform. In den Paketquellen ist es nicht zu finden und die Instalation ist, wie bei OCRopus aufwändiger. Die zurzeit neueste Version gibt es hier zum download. Nach dem entpacken wird es mit
mkdir builddir
cd builddir
cmake -DCMAKE_BUILD_TYPE=relwithdebinfo ..
make
make install
instaliert. Cuneiform kommt mit Bildern aller gebräuchlichen Formaten klar. Es unterscheidet verschiedene Sprachen und lässt auch bei der Ausgabe die Wahl. Neben einer text Ausgabe bietet es unter anderem auch HTML und rtf an. Der Aufruf sieht so aus:
$ cuneiform -o [OUTPUT_DATEI] [FILE]
Die Sprache kann optional mit -l [LANGUAGE] angegeben werden.

Doch was und wieviel können diese Programme erkennen? Getestet wurden alle 5 mit mehreren Standard-Schrift Bildern (normal, kursiv, fett, usw.) und einigen Zeitungsartikeln.

Unsere Testreihen

1. Standard-Schrift: kursiv, fett, unterstrichen und farbig

Bildschrift GOCR Tesseract Ocrad OCRopus Cuneiform
LinuxLounge LinuxLounge LinuxLounge LinuxLounge LinuxLounge Linux Lounge
LinuxLounge Lin4xLo4nge LinuxLounge LinuxLounge LinuxLounge Linux Lounge
LinuxLounge LinuxLounge LinuxLounge LinuxLounge LinuxLounge Linux Lounge
LinuxLounge _ LinuxLounge LinuxLounge LinuxLounge LinuxLounge
LinuxLounge _0 0000 0 000
LinuxLounge Linux \||\ ..........` iiii ww ·‘’‘‘·· wm wm ....,., LinuxLounge [beam search failed] L I II U X
LinuxLounge LinuxLounge LinuxLounge LinuxLounge LinuxLounge Linux Lounge

2. Zeitungsartikel (Zusammenfassung)

Die genauen Ergebnisse der einzelnen Programme und die verwendeten Bilder sind hier zu finden: Für GOCR, OCRopus, Ocrad und Tesseract.
Kriterium GOCR Tesseract Ocrad OCRopus Cuneiform
Zeichen erkannt Mehrere Wörter fehlerhaft Einzelne Wörter fehlerhaft Mehrere Wörter fehlerhaft Einzelne Worte fehlerhaft Kaum Worte fehlerhaftt
Formatierung Erhalten Erhalten Erhalten Nicht vollständig erhalten Erhalten
enthaltene Bilder Darstellungs- versuch Darstellungs- versuch Darstellungs- versuch Übersprun- gen Korrekt Dargestellt

Fazit

Mit der Standardschrift kommen die Programme recht gut zurecht, durchgestrichene Schrift konnte allerdings keins lesen und die farbige, sehr helle Schrift wurde nur von Ocrad richtig erkannt. Bei den Zeitungsartikeln konnten Cuneiform und OCRopus am besten abschneiden. Sie werten zwar einige Buchstaben falsch aus, geben aber alles in allem einen lesbaren und weiterverwendbarem Text aus. OCRopus gibt zwar die Formatierung nicht korrekt wieder, kann aber Bilder erkennen und ignoriert sie in der Ausgabe. Cuneiform-Linux geht noch einen Schritt weiter, indem es Bilder im Text-Ausgabeformat nicht nur ignoriert, sondern bei HTML-Ausgabe auch richtig einfügt. Tesseracts Ausgabe lässt sich auch recht gut lesen, jedoch stellt es Bilder, genauso wie auch GOCR und Ocrad als Zeichen-Wirrwarr dar. Bei GOCRs Ausgabe schleichen sich schon öfters fehlerhafte Buchstaben und Zahlen ein. Ocrad konnte zwar auch noch einiges erkennen, die aber doch zahlreichen, falsch erkannten Zeichen erschweren das lesen. Bei einer größeren Auflösung kann es GOCR aber Konkurenz machen. Verlassen kann man sich leider (noch) auf keines der Programme vollständig. Die Empfehlungen gehen jedoch derzeit noch tendenziell zu Cuneiform und OCRopus. Das sind auch die beiden Projekte, bei denen man eine einigermaßen aktive Entwicklung vernehmen kann. Weiterführende Links: Drucken Drucken

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

About Natalie

Der Autor hat keine Beschreibung über sich erstellt.
Kommentare (12) Trackbacks (0)
  1. Standart (Art und Weise des Stehens) != Standard (eine mehr oder weniger einheitliche/vereinheitlichte, weithin anerkannte Art und Weise, etwas zu tun, die sich gegenüber anderen Arten und Weisen durchgesetzt hat, eine von vielen beachtete (oft stillschweigende) Übereinkunft bezüglich Vereinheitlichung (Standardisierung) von Produkten, Vorgängen oder Methoden: besonders im technischen Bereich gebräuchlicher Begriff (zur Unterscheidung zwischen den Begriffen „Norm“ und „Standard“: siehe auch unter Normung), Standard — Wikipedia)

  2. In der Tat. Danke für den freundlichen Hinweis.

  3. Freundlich?!? Lese ich da eine gewisse Ironie heraus? xD
    Wie auch immer, danke für den Artikel, bisher dachte ich immer, diese Programme würden zu nichts taugen, dabei hätte ich sie bloss mit einer höheren Auflösung füttern sollen.
    Ocrad konnte in einer Stichprobe allerdings auch nichts mit Umlauten anfangen.

  4. Es wäre durchaus mal interessant hier einen Webservice anzubieten, den man mit Bildern füttern kann, der dann eine größere Anzahl an Eingabedaten mit den gegebenen Softwarepaketen vergleicht. Eine gewisse Grundfunktionalität besteht ja bei (fast) allen, oftmals hängt es auch stark von der Aufbereitung der Eingabedaten ab. Die Faktoren sind schier endlos, da Computer sich dummerweise etwas schwer tun 2D-Pixel-Arrays zu interpretieren.

    P.S.: Ironie versüßt den Tag ;)

    Gruß Martin

  5. Ich konnte kaum glauben, dass Tesseract so schlecht sein soll (war es mir doch eigtl. als recht gute Lösung bekannt). Hab dementsprechend es auch kurzerhand selber installiert (Version 2.04-2), mir die beiden Bilder runtergeladen, mittels imagemagick nach tif konvertiert und Tesseract drauf losgelassen, und siehe da, fast fehlerfreie Ergebnisse! Vielleicht wären Version von Tesseract, Konvertierung des Inputs und ähnliches ganz interessant. Als Anhang meine Eingabe und Ausgabe:

    convert ocr-test-2.jpg -background white -flatten +matte -compress None -depth 8 -colorspace Gray ocr-test-2.tif

    (selbiges für ocr-test-1.jpg)

    Ausgabe:
    für ocr-test-2.jpg:
    .
    Klemes Konzert auf dem See
    Fiir Sénger Eickhoff war es schon seit Jah-
    ren ein Traum, mal den zugefrorenen A _ 4
    Maschsee zu rocken. Erlaubt war das nicht, ‘ ~ ‘ ” 4 *1..* r_ ‘ V J ` `
    aber; “Manche Sachen muss man einfach ‘
    tun”, sagte der Frontmann der hannover- _ ` ‘V 1-` g ‘
    schen Band Piiotshop. Und gemerkt hat es _; ` Y _ _.
    kein Offiziellar. Einzige Panne: Die Elek- N ‘ A Y QQ “‘
    tronik der Akustikgitarre fiel wegen der [
    Kélte beim Ietzten Stiick aus. Zum Spielen _r —·§,j’v · ‘ _ i . ‘ L ‘T V ‘ ’
    wares hingegen nicht zu kaltz ,,Da wird ei- · ; ` 7. X if
    nem ganz schnell warm”, sagte Schlagzeu- ° ,) Q _` if Q
    gerin Edda Litfin. Nach sechs Stfncken ° /al-{
    réumten die Musiker den See. Aber vie|— l “‘“` · .
    leicht kommen sia bald wieder – das Eis Q’ · · _ [ ‘_
    scheint schliefilich zu tragen. med `* H I ,$,#;7‘§

    für ocr-test-1:
    Investor zieht
    Kaufabsicht zurfnck
    Aldenhoven. Wie aus der Ge-
    sellschafterversamrnlung der
    Aldenhovener Wohnungsver-
    waltungsgesellschaft (Woga)
    zu erfahren war, hat der Inves-
    tor m-concept seine Kaufab-
    sicht fur die Héiuser an der
    Frauenrather- und Probsteistra-
    Be sowie der Siersdorfer Von-
    Goer-Strafée zuriickgezogen.
    Begrtindet wurde dieser Schritt
    mit der Veroffentlichung des
    Artikels nlmmobilienkrise an
    der Woga-Basis”, der am 6.
    November in dieser Zeitung
    erschienen war,
    Wie weiter zu erfahren war,
    hat es in diesem Zusammen-
    hang heftige Vorwiirfe gegen
    Udo Wassenhoven (SPD) gege-
    ben, Vorsitzender der Gesell-
    schafterversammlung. So sei es
    dem Vernehmen nach zu teil-
    weise lautstarken Auseinander—
    setzungen zwischen CDU-Fral<-
    tionsvorsitzendem Reinhard
    Paffen und Wassenhoven ge-
    kommen. (zts)

  6. Nachtrag zu meinem vorherigen Kommentar: Wenn man tesseract die Option “-l deu” (für Deutsch) übergibt, stimmt es auch mit den Umlauten.

  7. Die Tests wurden mit der Version 2.03-2, welche derzeit in den Ubuntu Karmic Repositorys ist, durchgeführt. Nachdem ich sie gerade nochmal mit der neuesten Version getestet habe, muss ich Dir Recht geben: Die Ergebnisse sind tatsächlich viel besser!
    Ich habe die Bewertungen und das Fazit dementsprechend korrigiert und angepasst; Die Ausgaben korriegieren wir gleich.

  8. Wunderbar (und ärgerlich, dass bei Ubuntu eine anscheinend defekte Version dabei ist).
    Vielen Dank für die so zügige Antwort und das Korrigieren des Artikels :)

  9. http://wiki.ubuntuusers.de/Cuneiform-Linux
    http://de.wikipedia.org/wiki/CuneiForm

    habe ich leider noch nicht testen können, sieht auf den Wiki-Seiten aber sehr vielversprechend aus…

  10. Cuneiform-Linux habe ich gerade testweise installiert und die Ergebnisse sind richtig gut. Die verschiedenen Ausgabeformate gefallen auch :)
    Eine Zusammenfassung der Ergebnisse steht im Artikel, die genauen Outputs folgen.

  11. Es wäre durchaus mal interessant hier einen Webservice anzubieten, den man mit Bildern füttern kann, der dann eine größere Anzahl an Eingabedaten mit den gegebenen Softwarepaketen vergleicht. Eine gewisse Grundfunktionalität besteht ja bei (fast) allen, oftmals hängt es auch stark von der Aufbereitung der Eingabedaten ab. Die Faktoren sind schier endlos, da Computer sich dummerweise etwas schwer tun 2D-Pixel-Arrays zu interpretieren.

    P.S.: Ironie versüßt den Tag ;)

    Gruß Martin

  12. Keine Frage wäre das äußerst interessant, allerdings nur, wenn die Projekte davon profitieren würden, also die Engines anlernbar wären. Die Ergebnisse hätten ja sonst keinen Vorteil ggü. lokal erstellten – und hierfür kann man sich ja ein kleines Skript basteln, dass zunächst die geg. Grafiken in die entsprechenden Formate konvertiert und dann die verschiedenen genannten “Parser” darüber laufen lässt.

    Ironie? Hier? Iwoo!

    Ebenfalls Gruß von Martin ;)


Kommentar schreiben


Noch keine Trackbacks.