kaffeeringe.de

Das papierlose Büro: OCR mit Tesseract und Imagemagick

Gescannte Vorlage
Gescannte Vorlage

„Wie be­kom­me ich die al­ten Texte in den Rechner?“ Vor die­ser Frage stand ich neu­li­ch. Den ers­ten Schritt macht na­tür­li­ch der Einzugsscanner. Der schmeißt aber PDFs aus. Ich ha­be dann al­so ei­nen Stapel PDFs mit Bildern drin. Mit den Texten kann kann dann no­ch lan­ge nicht ar­bei­ten. Da muss es doch was von Open-Source ge­ben, ha­be ich mir ge­dacht und wur­de fün­dig: Imagemagick wan­delt die PDFs in TIFs und Tesseract macht dann Texte draus.

Das letz­te mal mit ei­ner OCR-Software ha­be ich glau­be ich Ende der 90er ge­ar­bei­tet – nicht weil ich es mus­st, son­dern weil es ging. Oder sa­gen wir, es ging so la la… Das Programm war sper­rig, man mus­s­te den Text von Hand mar­kie­ren usw. Jetzt aber, auf der Suche nach ei­ner frei­en Lösung, bin ich auf Tesseract ge­sto­ßen. Das ist ein Kommando-Zeilentool, dass es für Windows, Linux und Mac gibt. Tesseract wur­de von 1985 bis 1995 von HP ent­wi­ckelt und war 1995 ei­ne der Top-OCR-Engines. 2005 hat HP den Code frei­ge­las­sen und seit 2006 küm­mert si­ch Google um die Entwicklung. Tesseract ist in­zwi­schen die Basis für die Texterkennung für Google Books.

Im Blog von Frans de Jonge ha­be ich ei­ne klei­ne Anleitung da­zu ge­fun­den, wie ich aus den PDFs zu­nächst TIFs er­stel­le und die dann an Tesseract über­ge­ben. Frans hat da­zu ein Bash-Skript ge­schrie­ben. In der Installation und in dem Skript mus­s­te ich nur das „nld“ für Holländisch durch „deu“ für Deutsch er­set­zen. Jetzt ha­be ich ein Skript mit dem Namen pdft­o­text – das muss ich je­weils mit dem Namen der PDF-Datei auf­ru­fen, um aus den PDFs Texte zu er­stel­len.

Das papierlose Büro

Ich könn­te mir auch vor­stel­len, dass das ein Ansatz für ein di­gi­ta­les Büro sei könn­te: Man schmeißt al­le Briefe in den Scanner, der spei­chert al­les in ei­nem Verzeichnis. Regelmäßig schaut ein Skript, ob neue PDFs vor­lie­gen. Die wer­den dann in Text ge­wan­delt – Tesseract kann die Dateien auch in hO­CR wan­deln und da­mit das Layout des Originals er­hal­ten. Mit hocr2PDF kann man dann wie­der PDFs dar­aus er­stel­len, die aus dem Originalbild und ei­ner Text-Schicht dar­über be­stehen. So wer­den die PDFs durch­such­bar. Und dann ver­schiebt man sie au­to­ma­ti­sch in Monatsordner. Die Archivierungssoftware Archivista macht das of­fen­bar so ähn­li­ch.

Die Ergebnisse kön­nen si­ch wirk­li­ch se­hen las­sen. Zwar ist das no­ch nicht so schwie­rig – sind die Vorlagen al­le rei­ner Text. Aber selbst ver­gilb­te Schreibmaschinenseiten wer­den äu­ßer­st zu­ver­läs­sig er­kannt. Insgesamt bin ich sehr zu­frie­den mit den Ergebnissen. Und ge­ra­de für grö­ße­re Menge PDFs ist das ei­ne flot­te Lösung. Wer Tesseract mal tes­ten möch­te, kann das mit dem Online-Service OCRexrACT ma­chen.

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?