kaffeeringe.de

Das papierlose Büro: OCR mit Tesseract und Imagemagick

Gescannte Vorlage
Gescannte Vorlage

„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

Eigentlich soll­te gscan2pdf die­se Funktionen al­le un­ter ei­ner Oberfläche bün­deln: Scannen, OCR, PDF mit un­sicht­ba­rem, aber durch­such­ba­ren OCR-Layer er­zeu­gen. Theoretisch soll gscan2pdf das ma­chen, es hat aber bei mir nie funk­tio­niert. Ist al­ler­dings schon ein paar Monate her, dass ich das mal ge­tes­tet ha­be, viel­leicht funk­tio­niert das mitt­ler­wei­le bes­ser. Hast du mal gscan2pdf pro­biert?

Frans

Ich freue mi­ch, dass mei­ne Notizen hilf­reich wa­ren. Ich schrei­be sie in ers­ter Linie für mi­ch selbst, aber ich stel­le sie on­line, da an­de­re sie mög­li­cher­wei­se auch ge­brau­chen kön­nen.

Steffen Voß

@Frans: Danke! So ma­che ich das auch. Ich ha­be so­gar schon beim Googeln nach be­stimm­ten Problemen al­te Artikel von mir wie­der­ge­fun­den, die ich schon ver­ges­sen hat­te.

Steffen Voß

@Usul: gscan2pdf ha­be ich no­ch nicht ge­tes­tet – al­ler­dings setzt das nicht auf Tesseract auf. Und so­weit ich das her­aus­fin­den konn­te, die Tesseract mit Abstand die be­s­te freie OCR-Engine. 

Ich ha­be mir aber OCR-Feeder an­ge­schaut. Das nutzt Tesseract – al­ler­dings ha­be ich nicht her­aus­ge­fun­den, wo man die Scan-Sprache ein­stel­len kann – oder ob das über­haupt geht. Die Ergebnisse wa­ren ent­spre­chend ka­ta­stro­phal schlecht. Damit konn­te man nicht ein­mal wei­ter­ar­bei­ten.

Usul

@Steffen

Das stimmt so nicht, tat­säch­li­ch un­ter­stützt gscan2pdf so­gar ver­schie­de­ne OCR-Enginen, die man je nach Wunsch in­stal­lie­ren kann. Die gna­den­los schlecht les­ba­re Anleitung un­ter

http://gscan2pdf.sourceforge.net/

lis­tet die­se un­ter­stütz­ten Engines auf: go­cr, tes­ser­act, ocro­pus, cun­ei­form. Die kann man, wenn in­stal­liert, ganz ein­fach in der Programmkonfiguration aus­wäh­len.

Frans

@Steffen, Usul: Do you mind if I wri­te in English to be a bit quicker? I’m a tad out of prac­tice spea­king German, and wri­ting German is a step up from that.

Anyway, back when I wro­te that shell script, I al­so found that Tesseract was sup­po­sed to be the be­st, and I think that gscan2pdf might’ve on­ly sup­por­ted go­cr then? In any ca­se, I was ac­tual­ly loo­king for plain-text out­put, not for mer­ging the text back in wi­th the PDF or any­thing li­ke that. But it looks li­ke gscan2pdf sup­ports se­ver­al dif­fe­rent OCR en­gi­nes, and on Debian Wheezy it de­faults to Tesseract. I just did a quick test and it seems to be do­ing the trick. Nevertheless, I’d ar­gue that using a shell script can of­ten be bo­th mo­re sa­tis­fy­ing and ul­ti­mate­ly fas­ter, but of cour­se ever­yo­ne will ha­ve to de­ci­de when that’s the ca­se for them­sel­ves.

Steffen Voß

@Frans: Englisch is okay. 😉 I took a look at gscan2pdf and it look qui­te pro­mi­sing for ma­nu­al scan­ning. But I re­al­ly li­ke the com­man­do li­ne op­ti­on and the pos­si­ble au­to­ma­ti­sa­ti­on. I don’t want to ta­ke ca­re of ever­y­thing ma­nu­al­ly.

Have you se­en un­pa­per (http://unpaper.berlios.de/). It seems to be a sen­si­ble step in bet­ween imagemagick’s pdf to tif and tes­ser­act. At least if you ha­ve to scan a lot of books. Normal do­cu­ments shouldn’t ha­ve this kind of qua­li­ty pro­blem…

Jonathan

Cool! Tesseract kann­te ich no­ch nicht und wuss­te auch nicht, dass Google das be­nutzt. Ich glau­be die füt­tern re-captcha mit den Worten, die es nicht ganz ver­steht und lässt die Nutzer es dann in den capt­chas für sie crowd-lösen.

In DK gibt es we­nig Papier, da hier so ein de-mail Klon exis­tiert, der qua­si Pflicht ist, schön mit JavaApplet als Login (würg)

Tobias

Das klingt ja in­ter­es­sant. Welchen Vorlagenscanner be­nutzt Du, und kann­st Du den emp­feh­len?

Steffen

@Tobias: Ich be­fürch­te, dass Dir das nicht hilft: Das ist so ein Profigerät bei der Arbeit. Unter Linux sol­len aber die Kombi-Geräte von HP ganz gut funk­tio­nie­ren. Ich ha­be mi­ch da aber no­ch nicht dran ge­wagt.

Jurek

Ich woll­te das Thema „Papierloses Büro“ noch­ein­mal auf­grei­fen, da si­ch ja auf die­sem Gebiet im­mer mal wie­der was tut. Ich bin ge­ra­de da­bei, un­ser kom­plet­tes Büro von Windows 7 auf Linux um­zu­stel­len. Wir ha­be auch schon für die meis­ten un­se­rer Arbeitsschritte ei­nen pas­sen­den Ersatz un­ter Linux ge­fun­den.

Einzig ei­ne in­tui­ti­ver PDF-Workflow fehlt uns no­ch. Wir nut­zen meh­re­re Dokumentenscanner vom Typ Samsung ScanSnap S1500. Die funk­tio­nie­ren zum Glück un­ter Linux.

Workflow un­ter Windows ist bis­her so:

1. Eingehende Post wird in den Einzugsschacht ei­nes der Scansnap S1500 ein­ge­legt. Ein Druck auf die Scantaste star­tet den Scanprozess.

2. Die Windows-Software des Scanners er­stellt nun aus den Dateien ein PDF-Dokument und führt mit dem mit­ge­lie­fer­ten ABBY ei­ne OCR-Texterkennung durch. Danach wird das PDF-Dokument au­to­ma­ti­sch um­be­nannt (YYYY_MM_DD_HH_MM.pdf) und auf ei­nem un­se­rer Netzlaufwerke ab­ge­legt.

Die Qualität des Scans an si­ch und die Texterkennung durch ABBY ist per­fekt. Ich ver­su­che nun ge­ra­de un­ter Linux, ex­akt die­sen Workflow eben­so hin­zu­be­kom­men. Der User soll ein­fach nur die Scantaste be­tä­ti­gen und der Rest wird au­to­ma­ti­sch er­le­digt.

Derzeit ex­pe­ri­men­tie­re ich mit gscan2pdf in Verbindung mit Tesseract und un­pa­per. Von ei­ner Automatisierung bin ich aber lei­der no­ch recht weit ent­fernt. Bin al­so für je­den Tip dank­bar, wie ich die ein­zel­nen Arbeitsschritte au­to­ma­ti­sie­ren kann (bin Linux-Neuling).

P.S. Habe auf ei­nem un­se­rer PCs nicht Ubuntu, son­dern Linux Mint 16 (Petra) lau­fen und gscan2pdf über die Softwareverwaltung in­stal­liert. Hier wur­de je­doch le­dig­li­ch gscan2pdf in der Version 1.0.4 in­stal­liert. Diese ist je­doch nicht mit Tesseract ko­map­ti­bel. Abhilfe schaff­te er­st die Befehlskette:

su­do add-apt-repository ppa:jeffreyratcliffe/ppa
su­do apt-get up­date
su­do apt-get in­stall gscan2pdf

Dies in­stal­lier­te gscan2pdf in Version 1.2.4. Danach mus­s­te no­ch un­pa­per nach­in­stal­liert wer­den. Nun klapt die OCR-Erkennung mit gscan2pdf und Tesseract auch un­ter Mint.

Schreibe einen Kommentar

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

Möchtest Du benachrichtigt werden, wenn Dir hier jemand antwortet?