Trainingsziel Text
Texterkennung
Erst lernen, dann scannen!
GOCR ist lernfähig – am besten trainieren Sie das OCR-Programm, bevor Sie die Texterkennung in den grafischen Programmen einsetzen. Dazu ist ein kleiner Ausflug auf die Shell nötig.
Bevor Sie mit dem Training beginnen, erstellen Sie einen neuen Ordner namens db, zum Beispiel im eigenen Home-Verzeichnis. GOCR sucht im interaktiven Modus (auf der Kommandozeile) nach einem solchen Verzeichnis, um dort die Datenbank db.lst und die Grafiken für nicht erkannte Raster abzulegen. Danach öffnen Sie ein Terminalfenster (z. B. über [Alt]+[F2] und Eingabe von konsole oder gnome-terminal). Geben Sie darin den folgenden Befehl ein und schicken ihn über die Eingabetaste ab:
gocr -i datei.ppm -o datei.txt -m 130
Obwohl Sie vorher den Ordner db erstellt haben, schreibt das OCR-Programm dennoch eine Warnung ins Terminalfenster (DB ./db/db.lst not found) – die können Sie getrost ignorieren, denn sie erscheint nur beim ersten Trainingslauf. Zurück zum Shell-Befehl: Hinter dem Programmnamen gocr definieren Sie über -i die einzulesende Datei (hier datei.ppm), und hinter -o schreiben Sie den Namen der Ausgabedatei (z. B. datei.txt). Über -m 130 schalten Sie in den interaktiven Modus – sobald GOCR ein Raster nicht erkennt, bittet es um Ihre Mithilfe (Abbildung 4).
Zur besseren Einordnung sehen Sie neben dem nicht erkannten Zeichen noch die Nachbarbuchstaben. Wenn Sie neben dem Terminalfenster die Bilddatei in einem Betrachter öffnen, können Sie gut vergleichen. Das, was GOCR nicht erkennt, stellt es als ASCII-Grafik in Rautezeichen dar; in Abbildung 4 ist das der kleine Buchstabe "p". Die anderen Zeichen, die zur besseren Orientierung eingeblendet werden, setzt GOCR als ASCII-Grafik aus mehreren "O"s zusammen; in Abbildung 4 erkennen Sie die Buchstaben "e" und "r", die das kleine "p" einschließen. Hinter dem Prompt
Enter correct UTF-8 char or string for it:
tippen Sie nun das oder die fraglichen Zeichen ein und drücken [Eingabe]. GOCR fragt nach:
Store the pattern? 0=no 1=into_memory 2=to_database
Im Klartext heißt das: "Soll ich das Muster speichern?" Drei Antworten sind möglich.
- Die Eingabe von 0 verwirft die Aktion,
- über 1 landet das Zeichen im Arbeitsspeicher und ist damit nur für diesen Trainingslauf verfügbar,
- und mit 2 nehmen Sie das Raster in die persönliche Datenbank auf.
Zeichen, die Sie eindeutig zuordnen können, sollten Sie in Ihrer Datenbank speichern, damit sie dauerhaft zur Verfügung stehen. Dinge, die Sie hingegen nicht zweifelsfrei identifizieren können, sind im Arbeitsspeicher besser aufgehoben, um GOCR bei weiteren Erkennungsversuchen nicht zu verwirren. Nachdem GOCR den Trainingslauf beendet hat, sehen Sie wieder den Shell-Prompt und können nun in der Textdatei das Ergebnis überprüfen und es gegebenenfalls im Texteditor (z. B. kate oder gedit) nachbessern.
Die neue Datenbank finden Sie im vorher angelegten Verzeichnis. Dort sollten Sie neben vielen kleinen PBM-Grafiken die Textdatei db.lst sehen: Sie enthält die Zuordnungen von Bildern und Buchstaben(-gruppen) (Abbildung 5).
GOCR als XSane-Teammitglied
Das neu erworbene Wissen machen Sie sich zunutze, indem Sie GOCR aus XSane und Kooka heraus verwenden. Wenn Sie XSane verwenden, gehen Sie so vor:
- Wählen Sie Menü des Hauptfensters Einstellungen / Konfiguration. Im erscheinenden Dialog wechseln Sie zum Reiter Texterkennung.
Das Kommando im Feld OCR Befehl passen Sie an und erweitern es um die Optionen -m 2 und -p /home/Benutzername/db/. Der Parameter -m 2 weist GOCR an, auf die persönliche Datenbank zurückzugreifen, und -p /home/Benutzername/db/ teilt dem Programm mit, wo diese Datenbank zu finden ist. Achtung: Der abschließende Schrägstrich hinter db/ muss dort unbedingt stehen.
- Alle anderen Einstellungen können Sie übernehmen; über OK speichern und beenden Sie die Konfiguration.
Um GOCR aus XSane heraus zu starten, scannen Sie das Dokument ein und wählen dann im Betrachter-Fenster aus dem Menü Datei / OCR - als Text speichern aus. Im folgenden Dialog geben Sie den Namen für die Textdatei ein und klicken auf OK. Abbildung 6 zeigt das Ergebnis.



