Steffen Voß - Technologie & Gesellschaft

Das papierlose Büro : OCR mit Tesseract und Imagemagick

Gescannte Vorlage
Gescannte Vorlage

Steffen Voß

„Wie bekomme ich die alten Texte in den Rechner?“ Vor dieser Frage stand ich neulich. Den ersten Schritt macht natürlich der Einzugsscanner. Der schmeißt aber PDFs aus. Ich habe dann also einen Stapel PDFs mit Bildern drin. Mit den Texten kann kann dann noch lange nicht arbeiten. Da muss es doch was von Open-Source geben, habe ich mir gedacht und wurde fündig: Imagemagick wandelt die PDFs in TIFs und Tesseract macht dann Texte draus.

Das letzte mal mit einer OCR-Software habe ich glaube ich Ende der 90er gearbeitet – nicht weil ich es musst, sondern weil es ging. Oder sagen wir, es ging so la la… Das Programm war sperrig, man musste den Text von Hand markieren usw. Jetzt aber, auf der Suche nach einer freien Lösung, bin ich auf Tesseract gestoßen. Das ist ein Kommando-Zeilentool, dass es für Windows, Linux und Mac gibt. Tesseract wurde von 1985 bis 1995 von HP entwickelt und war 1995 eine der Top-OCR-Engines. 2005 hat HP den Code freigelassen und seit 2006 kümmert sich Google um die Entwicklung. Tesseract ist inzwischen die Basis für die Texterkennung für Google Books.

Im Blog von Frans de Jonge habe ich eine kleine Anleitung dazu gefunden, wie ich aus den PDFs zunächst TIFs erstelle und die dann an Tesseract übergeben. Frans hat dazu ein Bash-Skript geschrieben. In der Installation und in dem Skript musste ich nur das „nld“ für Holländisch durch „deu“ für Deutsch ersetzen. Jetzt habe ich ein Skript mit dem Namen pdftotext – das muss ich jeweils mit dem Namen der PDF-Datei aufrufen, um aus den PDFs Texte zu erstellen.

Das papierlose Büro

Ich könnte mir auch vorstellen, dass das ein Ansatz für ein digitales Büro sei könnte: Man schmeißt alle Briefe in den Scanner, der speichert alles in einem Verzeichnis. Regelmäßig schaut ein Skript, ob neue PDFs vorliegen. Die werden dann in Text gewandelt – Tesseract kann die Dateien auch in hOCR wandeln und damit das Layout des Originals erhalten. Mit hocr2PDF kann man dann wieder PDFs daraus erstellen, die aus dem Originalbild und einer Text-Schicht darüber bestehen. So werden die PDFs durchsuchbar. Und dann verschiebt man sie automatisch in Monatsordner. Die Archivierungssoftware Archivista macht das offenbar so ähnlich.

Die Ergebnisse können sich wirklich sehen lassen. Zwar ist das noch nicht so schwierig – sind die Vorlagen alle reiner Text. Aber selbst vergilbte Schreibmaschinenseiten werden äußerst zuverlässig erkannt. Insgesamt bin ich sehr zufrieden mit den Ergebnissen. Und gerade für größere Menge PDFs ist das eine flotte Lösung. Wer Tesseract mal testen möchte, kann das mit dem Online-Service OCRexrACT machen.

Links

Pingbacks

  1. Ergebnisse der Woche ab dem 2013-07-19 | Iron Blogger Kiel
  2. Open Source: Eigene Scans in durchsuchbare PDFs umwandeln

Kommentare

Usul
Usul:

Eigentlich sollte gscan2pdf diese Funktionen alle unter einer Oberfläche bündeln: Scannen, OCR, PDF mit unsichtbarem, aber durchsuchbaren OCR-Layer erzeugen. Theoretisch soll gscan2pdf das machen, es hat aber bei mir nie funktioniert. Ist allerdings schon ein paar Monate her, dass ich das mal getestet habe, vielleicht funktioniert das mittlerweile besser. Hast du mal gscan2pdf probiert?

25.7.2013 um 18:22
Frans
Frans:

Ich freue mich, dass meine Notizen hilfreich waren. Ich schreibe sie in erster Linie für mich selbst, aber ich stelle sie online, da andere sie möglicherweise auch gebrauchen können.

25.7.2013 um 20:45
Steffen Voß
Steffen Voß:

@Frans: Danke! So mache ich das auch. Ich habe sogar schon beim Googeln nach bestimmten Problemen alte Artikel von mir wiedergefunden, die ich schon vergessen hatte.

25.7.2013 um 21:07
Steffen Voß
Steffen Voß:

@Usul: gscan2pdf habe ich noch nicht getestet – allerdings setzt das nicht auf Tesseract auf. Und soweit ich das herausfinden konnte, die Tesseract mit Abstand die beste freie OCR-Engine.

Ich habe mir aber OCR-Feeder angeschaut. Das nutzt Tesseract – allerdings habe ich nicht herausgefunden, wo man die Scan-Sprache einstellen kann – oder ob das überhaupt geht. Die Ergebnisse waren entsprechend katastrophal schlecht. Damit konnte man nicht einmal weiterarbeiten.

25.7.2013 um 21:11
Usul
Usul:

@Steffen

Das stimmt so nicht, tatsächlich unterstützt gscan2pdf sogar verschiedene OCR-Enginen, die man je nach Wunsch installieren kann. Die gnadenlos schlecht lesbare Anleitung unter

http://gscan2pdf.sourceforge.net/

listet diese unterstützten Engines auf: gocr, tesseract, ocropus, cuneiform. Die kann man, wenn installiert, ganz einfach in der Programmkonfiguration auswählen.

25.7.2013 um 22:18
Frans
Frans:

@Steffen, Usul: Do you mind if I write in English to be a bit quicker? I’m a tad out of practice speaking German, and writing German is a step up from that.

Anyway, back when I wrote that shell script, I also found that Tesseract was supposed to be the best, and I think that gscan2pdf might’ve only supported gocr then? In any case, I was actually looking for plain-text output, not for merging the text back in with the PDF or anything like that. But it looks like gscan2pdf supports several different OCR engines, and on Debian Wheezy it defaults to Tesseract. I just did a quick test and it seems to be doing the trick. Nevertheless, I’d argue that using a shell script can often be both more satisfying and ultimately faster, but of course everyone will have to decide when that’s the case for themselves.

25.7.2013 um 22:33
Steffen Voß
Steffen Voß:

@Frans: Englisch is okay. 😉 I took a look at gscan2pdf and it look quite promising for manual scanning. But I really like the commando line option and the possible automatisation. I don’t want to take care of everything manually.

Have you seen unpaper (http://unpaper.berlios.de/). It seems to be a sensible step in between imagemagick’s pdf to tif and tesseract. At least if you have to scan a lot of books. Normal documents shouldn’t have this kind of quality problem…

26.7.2013 um 14:05
Jonathan
Jonathan:

Cool! Tesseract kannte ich noch nicht und wusste auch nicht, dass Google das benutzt. Ich glaube die füttern re-captcha mit den Worten, die es nicht ganz versteht und lässt die Nutzer es dann in den captchas für sie crowd-lösen.

In DK gibt es wenig Papier, da hier so ein de-mail Klon existiert, der quasi Pflicht ist, schön mit JavaApplet als Login (würg)

28.7.2013 um 14:05
Tobias
Tobias:

Das klingt ja interessant. Welchen Vorlagenscanner benutzt Du, und kannst Du den empfehlen?

6.8.2013 um 15:16
Steffen
Steffen:

@Tobias: Ich befürchte, dass Dir das nicht hilft: Das ist so ein Profigerät bei der Arbeit. Unter Linux sollen aber die Kombi-Geräte von HP ganz gut funktionieren. Ich habe mich da aber noch nicht dran gewagt.

6.8.2013 um 15:19
Jurek
Jurek:

Ich wollte das Thema „Papierloses Büro“ nocheinmal aufgreifen, da sich ja auf diesem Gebiet immer mal wieder was tut. Ich bin gerade dabei, unser komplettes Büro von Windows 7 auf Linux umzustellen. Wir habe auch schon für die meisten unserer Arbeitsschritte einen passenden Ersatz unter Linux gefunden.

Einzig eine intuitiver PDF-Workflow fehlt uns noch. Wir nutzen mehrere Dokumentenscanner vom Typ Samsung ScanSnap S1500. Die funktionieren zum Glück unter Linux.

Workflow unter Windows ist bisher so:

1. Eingehende Post wird in den Einzugsschacht eines der Scansnap S1500 eingelegt. Ein Druck auf die Scantaste startet den Scanprozess.

2. Die Windows-Software des Scanners erstellt nun aus den Dateien ein PDF-Dokument und führt mit dem mitgelieferten ABBY eine OCR-Texterkennung durch. Danach wird das PDF-Dokument automatisch umbenannt (YYYY_MM_DD_HH_MM.pdf) und auf einem unserer Netzlaufwerke abgelegt.

Die Qualität des Scans an sich und die Texterkennung durch ABBY ist perfekt. Ich versuche nun gerade unter Linux, exakt diesen Workflow ebenso hinzubekommen. Der User soll einfach nur die Scantaste betätigen und der Rest wird automatisch erledigt.

Derzeit experimentiere ich mit gscan2pdf in Verbindung mit Tesseract und unpaper. Von einer Automatisierung bin ich aber leider noch recht weit entfernt. Bin also für jeden Tip dankbar, wie ich die einzelnen Arbeitsschritte automatisieren kann (bin Linux-Neuling).

P.S. Habe auf einem unserer PCs nicht Ubuntu, sondern Linux Mint 16 (Petra) laufen und gscan2pdf über die Softwareverwaltung installiert. Hier wurde jedoch lediglich gscan2pdf in der Version 1.0.4 installiert. Diese ist jedoch nicht mit Tesseract komaptibel. Abhilfe schaffte erst die Befehlskette:

sudo add-apt-repository ppa:jeffreyratcliffe/ppa
sudo apt-get update
sudo apt-get install gscan2pdf

Dies installierte gscan2pdf in Version 1.2.4. Danach musste noch unpaper nachinstalliert werden. Nun klapt die OCR-Erkennung mit gscan2pdf und Tesseract auch unter Mint.

18.4.2014 um 14:37

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Möchtest Du per E-Mail benachrichtigt werden, wenn Dir hier jemand antwortet?