Masterprojekt: Webanwendung OCRopus

ground_truthUm mit Informationen aus gedruckten Quellen sinnvoll arbeiten zu können, müssen sie zunächst maschineninterpretierbar gemacht werden. Der bevorzugte Weg dafür die Optical Character Recognition (OCR), da man sich dann die manuelle Tipparbeit spart. Wenn man es nicht mit Fließtext zu tun hat, und das hat man in der Regel bei historischen seriellen Quellen nicht, schneiden wörterbuchbasierte OCR-Programme sehr schlecht ab. Es gibt aber ein Opensource-Programm OCRopus, das keine Wörterbücher verwendet und sehr gute Erkennungsraten erzielt. In einem Fall ließen sich statistisch verlässliche 99,7% Zeichengenauigkeit (weniger als 10 Fehler auf 10.000 Zeichen) erreichen. Leider ist OCRopus in der Bedienung etwas umständlich.

Ziel des Projekts soll es sein, eine Webanwendung zu erstellen, mit deren Hilfe OCRopus verteilt als Web bedient werden kann. Es handelt sich bei OCRopus um eine Reihe von Kommandozeilenprogrammen, die Schritt für Schritt aufgerufen werden müssen und Konfiguration benötigen.
1. Binarisieren des Bildes – hier ist so gut wie nichts zu tun
2. Bildanalyse und Erkennen von Zeilen – Dieser Schritt ist besonders kompliziert und erfordert eine Kontrolle, ob das Bild richtig analysiert wurde. Mit etwas Eingriff an dieser Stelle (z.B. Markieren von Spalten) lässt sich das Ergebnis stark verbessern.
3. Eingabe von Trainingdaten – Die sehr guten Erkennungsraten lassen sich nur durch Training erreichen. Man tippt dazu als Mensch einen Teil der Bildschnipsel ab. Das Abtippen kann man gut auf mehrere Personen verteilen.
4. Trainieren des Modells – Die abgetippten Trainingsdaten werden in zwei Gruppen geteilt: 90% zum maschinellen Lernen, 10% zur Evaluation der erreichten Genauigkeit. Natürlich muss man Buch darüber führen, welche Daten zum Lernen und welche zum Evaluieren verwendet wurden.
5. Erkennung – OCRopus erkennt nun einzelne Linien, die sich mit einem weiteren Programm wieder zu Text zusammensetzen lassen.
6. Korrekturlesen – Möglicherweise möchte man den Text Korrektur lesen. Dazu sollte man im Browser den erkannten Text entweder direkt neben dem Scan oder überlagert auf dem Scan sehen.

Neben der Einzelnutzung soll auch Kollaboration ermöglicht werden: der Workflow von OCRopus bietet viele Möglichkeiten der Aufteilung und Parallelisierung. Da das Trainieren von Modellen aufwändig ist, kann man diese gut Tauschen. Das lässt sich sicherlich schick machen, z.B. durch Beispielbildchen. Oder man wählt einige vielversprechende Modelle aus und lässt sich mit diesen ein kleines Probebild durchrechnen.

Als Framework zur Erstellung der Webanwendung soll Grails verwendet werden, da man so leicht Zugriff auf weitere Java-Bibliotheken zur maschinellen Textverarbeitung hat.

Da das Projekt zahlreiche Teilaufgaben enthält, bietet es sich für eine gemeinsame Arbeit an.

Comments are closed.