Ocropus-Infrastruktur: Ordnersystem und Stapelverarbeitung

Im Normalfall möchte man mehrere Bildseiten erkennen. Für die Stapelverarbeitung ist es von Vorteil eine gewisse Infrastruktur einzurichten, damit möglichst viele Schritte automatisch abgearbeitet werden können.

Am Beginn steht eine gleichbleibende Ordnerstruktur, durch die man sich leicht bewegen kann. Manche Ordner werden von den Ocropus-Modulen selbstständig angelegt, andere kann man selbst definieren. Abbildung 1 zeigt die Ordnerstrukur, mit der ich arbeite.

Abbildung 1: Ordner, Dateien, Erzeuger
Abbildung 1: Ordner, Dateien, Erzeuger

Im Hauptordner book lege ich die Ausgangsdateien ab, z.B. jpg-Dateien.

In einem vorhergehenden Artikel habe ich ScanTailor als Vorverarbeitungsprogramm beschrieben. ScanTailor gibt tif-Dateien aus, standardmäßig im Ordner out.

Diese Dateien lassen sich mit dem Programm mogrify in png-Dateien umwandeln. Ich habe das kleine Bash-Script ocr-conv geschrieben, dass

1. einen Ordner ./ocr erstellt (./ bedeutet im gleichen Verzeichnis, also book/ocr),

2. tif-Dateien, die in einem Ordner „./out“ liegen, batchartig png-Dateien umwandelt

3. diese png-Dateien in den Ordner ./ocr kopiert

4. diese png-Dateien eine sechsstellige Laufnummer gibt.

Damit es funktioniert muss man sich im Ordner book befinden, mit einem Unterordner ocr in dem die ScanTailor-tifs gespeichert sind, dann einfach

$ bash ocr-conv.bash

Ist dieser Schritt erledigt, folgt die Bildsegmentierung, Texterkennung, Korrektur und der Textexport. Erklärungen zu diesen Schritten folgen in den nächsten Artikeln. Hier geht es erst einmal hauptsächlich um eine funtkionierende Ordnerstruktur bzw. um eine Stapelverarbeitung.

Je nachdem wie viele Bilder (und Zeilen in diesen Bildern) erkannt werden sollen, erstellen die ocropus-Module entsprechend viele Ordner und Dateien. Die Fragezeichen symbolisieren hier die Laufnummern. Für die drei Dateien 0000001.png, 000002.png und 000003.png würden also immer die dazugehörigen Ordner ./0000001 , ./0000002 und ./0000001 und Verarbeitungsdateien ??????.bin.png angelegt werden.

Mit dem kleinen Script ocr-png2html.bash laufen die Segmentierung, Texterkennung und Transformation zur html automatisch durch. Auch dieses muss sich im Hauptordner book befinden. Dann starten mit:

$ bash ocr-png2html.bash

Hierbei erzeugt ocropus-gpageseg die Dateien ??????.pseg.png, die Ordner ./ocr/?????? mit den darin befindlichen Dateien ??????.bin.png

Das Texterkennungmodul ocropus-lpred die dazugehörigen ??????.txt und

ocropus-gtedit die Korrektur correction.html.

Wenn man will, kann man jetzt Fehler korrigieren. Um zu schauen, ob die Ordnerstruktur konzise ist, mache ich jedoch gleich weiter mit

$ ocorpus-gtedit extract correction.html

Damit werden die Groundtruth-Text-Dateien ??????.gt.txt in den Ordnern ./ocr/?????? erzeugt.

Mit cat erstellt man sich zum Schluss die finale *.txt-Datei.

$ cat ./ocr/??????/??????.gt.txt > ocr.txt

Wie man sieht sind die Ergebnisse noch sehr schlecht. In den folgenden Artikeln gehe ich näher darauf ein, wie man die einzelnen Module anpasst und sich eigene Erkennungsmodule trainiert, um schnellere und bessere Ergebnisse zu erzielen.

 

20 Replies to “Ocropus-Infrastruktur: Ordnersystem und Stapelverarbeitung”

Schreibe einen Kommentar