Rorschachs Tagebuch

Scannen und OCR unter Linux März 4, 2011

Filed under: Uncategorized — Rorschach @ 10:20

Als ich dies das letzte mal vor ein paar Jahren ausprobiert hatte bin ich kläglich gescheitert. gorc war einfach mies und Abby musste her.

Nun die Tage musste ich mal wieder einen etwas längeren Text (ca. 50 Seiten) einscannen und in ein LaTeX-Dokument hieven und habe es mal wieder mit Linux probiert und siehe da, es gibt neue Tools und mit denen funktioniert es wunderbar!

Scannen
Zuerst musste das ganze mal eingescanned werden, was ich mit scanimage gemacht habe. Auflösung von 300dpi sollte ausreichen und Graustufen-Modus:

$ scanimage -d epson2:libusb:001:004 --mode Gray --resolution 300dpi -x 186 -y 250 > 33.pnm

OCR Vorbereitung
Zur Vorbereitung der OCR habe ich Tools von ImageMagick und Scan Tailor benutzt.

Zuerst einmal waren die Seiten verdreht was mit dem Befehl:

$ mogrify -rotate 90 *.pnm

schnell behoben war (Scan Tailor kann das auch aber das hab ich erst danach gemerkt..). Damit ich die Seiten mit Scan Tailor bearbeiten konnte mussten sie ins tif-Format, was dieser Oneliner erledigt (ZSH!!):

$ for i in *.pnm; do convert $i ${i:r}.tif;done

Nun kam Scan Tailor dran. Damit konnte ich problemlos die Seiten richtig ausrichten, unnötiges an den Rändern wegschneiden, Kontrast verbessern, usw.. Wirklich ein Hammertool um Bilder auf OCR vorzubereiten!

OCR
So und hier kam das Tool tesseract zum Einsatz, welches mich gnadenlos überzeugt hat! Die Texterkennung war fantastisch, bei über 99%. Probleme gab es nur an Stellen wo der Text Unterstreichungen hatte, was zum Glück nur sehr selten war ansonsten wäre das Ergebnis sicher schlechter gewesen, denn an diesen Stellen hat sich tesseract die Zähne ausgebissen.

Das Konvertieren hat auch hier wieder ein ZSH-Oneliner erledigt:

$ for i in *.tif;do tesseract $i ${i:r} -l deu;done

Hier sollte man aufpassen, dass man als Input die von Scan Tailor verbesserten *.tif Dateien nimmt und nicht die anfänglich erzeugten😉

So der Durchlauf von tesseract dauert ein bischen und wenn er fertig ist, dann kann man das alles in ein Dokument zusammenbasteln:

$ cat *.txt > dokument.txt

und ist fast fertig!

LaTeX

Man hat jetzt nämlich immernoch das Seitenlayout des gescannten Dokumentes, also die Zeilen sind so lange wie in dem ursprünglichen Dokument und natürlich sind die Wörter auch so getrennt.. Das ist natürlich uncool wenn man das ganze in ein LaTeX-Dokument verwandeln will. Um das zu beheben habe ich ein kleines Skript geschrieben. Das setzt Absätze im LaTeX-Dokument, wo im Originaldokument welche sind und löst das Problem mit den Zeilenenden.

Danach einbischen Nachbearbeitung mit TeXMaker und das wars.

 

4 Responses to “Scannen und OCR unter Linux”

  1. Steffen Says:

    Hört sich stark an nach der Guttenberg Methode:
    „…etwas längeren Text (ca. 50 Seiten) einscannen und in ein LaTeX-Dokument hieven“

  2. thom_raindog Says:

    Waren das gedruckte Seiten oder handschriftliches? Für Handschriftliches bräuchte ich nämlich auch noch so eine Lösung….

  3. Marcel Koch Says:

    Schöner Artikel! Hast Du Dich auch schon mal damit beschäftigt, mit diesen Mittlen, PDFs durchsuchbar zu machen?

    Danke und Gruß
    Marcel

  4. saddy Says:

    Hast du Lust den Artikel mal ins Ubuntuusers Wiki zu stellen? Ich bin mir sicher, dass ich das irgendwann mal brauchen werde.


Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s