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 gocrGOCR 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-ocrZusä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 ocradOcrad 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 mitmkdir builddir cd builddir cmake -DCMAKE_BUILD_TYPE=relwithdebinfo .. make make installinstaliert. 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:- GOCR bei Sourceforge
- Tesseract bei Google Code
- GNU Ocrad Homepage
- OCRopus bei Google Code
- Cuneiform-Linux Homepage
- Optical character recognition - Wikipedia, the free encyclopedia
Drucken
Dezember 5th, 2009
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)
Dezember 5th, 2009
In der Tat. Danke für den freundlichen Hinweis.
Dezember 5th, 2009
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.
Dezember 5th, 2009
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
Dezember 5th, 2009
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)
Dezember 5th, 2009
Nachtrag zu meinem vorherigen Kommentar: Wenn man tesseract die Option “-l deu” (für Deutsch) übergibt, stimmt es auch mit den Umlauten.
Dezember 5th, 2009
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.
Dezember 5th, 2009
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
Dezember 6th, 2009
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…
Januar 19th, 2010
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.
Mai 19th, 2010
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
Mai 19th, 2010
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