About

This page contains a single entry from the blog posted on October 26, 2008 5:12 PM.

The previous post in this blog was Das leidige Thema 'Ruby und Strings'.

The next post in this blog is @shop.products.published.for_category(@category).since(3.years.ago).bought_by(@me).

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31

« Das leidige Thema 'Ruby und Strings' | Main | @shop.products.published.for_category(@category).since(3.years.ago).bought_by(@me) »

Dokumentenarchivierung und OCR unter Linux

Seit einiger Zeit suche ich nach einer Lösung, um meine ganzen Quittungen, Rechnungen und amtlichen Dokumente elektronisch zu archivieren. Ich weiß, dass es dafür unter MacOS das eine oder andere hervorragende System gibt, aber unter Linux sieht es da ziemlich mau aus.

Das Archivieren von Dokumenten sieht nach meiner Vorstellung so aus:

  • einscannen des Dokuments mit einem normalen Flachbettscanner @ 300dpi
  • automatisches Konvertieren des Bildes mittels ImageMagics convert-Kommando: normalisieren des Kontrastes, entfernen von Staub und Rauschen, speichern als monochrom-Bild
  • automatisches Erkennen der Zeichen (OCR) und Speicherung als Plaintext, zusammen mit dem bild für spätere Volltextsuche
  • Das ganze liegt irgendwo über ein Webinterface erreichbar in einer MySQL-Datenbank.

Der erste Schritt ist der zeitaufwändigste, da das Scannen leider nicht gerade schnell von Statten geht. Der Rest soll automatisch und ohne mein Zutun geschehen, wenn ich ein Bild über besagtes Webinterface hochlade. Insbesondere die Texterkenung ist dabei aber leider ein kleines Sorgenkind, wie die folgenden Beispiele zeigen.

Getestete OCR-Programme

Die Programme testete ich mit (unter anderem) volgendem Bild (Ausschnitt):

Nach der Konvertierung mit convert kscan_0026.png -crop 2450x3450+20+20 -unsharp 8 -normalize -monochrome ocr.tif sah selbiges so aus:

Und nun zu den Programmen:

gOCR: einfach zu bedienen, relativ flott, kommt mit so ziemlich allen Bitmapformaten zurecht.

$ gocr ocr.png

<auszug>
  Erlauterungen
  Untertttzun9sle1stungen der E7tern s1nd nict einkommensteuerpflchtig.


  S1e  aen  Ihre E1nkommensteuererlrung auf nǐchtamtl1chem Vorruck oder auf elektron1schem ege
  agegeen.  Aus  Ko5tengründen  werden  wir  zukünft1g aur de Versendung von amtl1chen Vordrucken
  verz1chten.
</auszug>

Das sieht nicht ganz übel aus, aber die Fehlerrate ist für einen so einfachen Text (im Sinne von Zeichen- und Schriftenvielfalt) eigentlich inakzeptabel. Zusammen mit einem Wörterbuch könnte man hier sicherlich noch mehr herausholen, aber leider unterstützt gOCR das nicht. Das Programm erkennt jedoch Seitenlayoute ohne Fließtext relativ gut, wie sich an einigen Formularen zeigte.

OCRAD: bietet etwas umfangreichere Kommandozeilenargumente. Bei nicht-englischen Texte empfiehlt es sich, den Ausgabe-Zeichensatz auf utf8 zu setzen. Außerdem verfügt OCRAD über die Möglichkeit, "Layouterkennung" in drei Stufen einzustellen. Dabei werden die erkannten Fließtextblöcke nacheinander ausgegeben und nicht, wie in gOCR, unter Beibehaltung des ursprünglichen Layouts.

$ ocrad --format=utf8 --layout=2 ocr.pbm

<auszug>
  Er | autarung_n
  Unterstützung5lelstungen der Eltern s1nd nlcht elnkommen5teuerpfllchtlg.

  Sle haben Inre Elnkommen5teuererklárung avf nichtamtllcnem vordruck oder auf elektronlschem wege
  abgegeben . Au5 Ko5tengründen werden wlr zukünrt1g auf d1e ver5endung von amtl1chen Vordrucken
  verz1c_ten.
</auszug>

Nunja -- nicht bedeutend besser. Ein paar zusätzliche Wörter werden korrekt erkannt, aber die Fehlerrate ist nicht bedeutend geringer. Manche Ausgaben erinneren wirklich an 1337-5p34k ;).

Tesseract-OCR: Diese Software wurde Ende der 1980er von HP entwickelt und ist mittlerweile Open Source. Die Software soll zu den Top-OCR-Programmen gehört haben. Sie verfügt über sprachspezifische Bibliotheken, die auch selbst erstellt werden können. Die Verarbeitung dauert etwas länger als mit den o.g. Programmen und funktioniert auch nur mit TIFF-Dateien, aber das Resultat spricht für sich:

$ tesseract ocr.tif out -l deu

<auszug>
  Erläuterungen
  Unterstützungsleistungen der Eltern sind nicht einkommensteuerpflichtig.
  Sie haben Ihre Einkommensteuererklärung auf nichtamtlichem Vordruck oder auf elektronischem Wege
  abgegeben. Aus Kostengründen werden wir zukünftig auf die Versendung von amtlichen Vordrucken
  verzichten.
</auszug>

WOW sag ich nur! Der kontrollbereich ist komplett fehlerfrei; auch der Rest des Textes weist nur hier und da Unstimmigkeiten auf. Es sieht also so aus, als würde diese Software meine Wünsche erfüllen ;-)

Leider sieht es noch nicht danach aus, als würde Tesseract Layouterkennung unterstützen, was allerdings für den gewünschten Zewck, nämlich Volltextsuche in der Datenbank, völlig unerheblich ist.

TrackBack

TrackBack URL for this entry:
http://www.innoq.com/movabletype/mt-tb.cgi/3062

Comments (1)

Felix:

Teste mal Cuneiform (https://launchpad.net/cuneiform-linux)

Das kann auch Layoutanalyse und spuckt dann ein hocr File aus. Das laesst sich dann zum Beispiel mit Firefox anzeigen oder mittels hocr2pdf in passgenaue PDFs umwandeln (also Text genau ueber Bild).
hocr2pdf findest du im Exactimage Paket (http://www.exactcode.de/site/open_source/exactimage/).

Um Tesseract Layoutanalyse beizubringen gibt es Ocropus. Prinzipiell sollte aber Cuneiform besser sein.

Ansonsten gibt es noch auch noch Live-Images von Archivista-Box. Vielleicht genau das, was du suchst.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)