Fraktur-OCR mit Finereader

Heute nun der versprochene Beitrag zu meinen Erfahrungen mit der OCR von Frakturschriften mit Finereader 9.

Finereader 9 ist die aktuellste Version des Finereader von Abbyy und eigentlich nicht für Fraktur-OCR vorgesehen. Aber da sich Abbyy den Finereader XIX der Fraktur von Haus aus vergolden lässt und man mit einer Lizenz nur eine beschränkte Anzahl von Seiten mit Frakturtext durch die OCR jagen kann, habe ich halt versucht es mit der normalen OCR durchzuführen. Und mit etwas Arbeit und hoffentlich diesen Tipps gelingt auch meist eine recht ordentliche Erkennung des Textes.

Vorbereitungen

Die wichtigste Voraussetzung sind natürlich gute Scans der zu erkennenden Seite. Am besten eignen sich nach meiner Erfahrung dafür Graustufen- oder Farbscans. Diese sollte man auch bevor man Finereader damit füttert nicht umwandeln. Die auf diversen Web-Seiten, insbesondere etwas ältere Digitalisate von Universitäten, zu findenden Schwarz-Weiß-Scans eignen sich meist weniger gut. Der Grund hierfür ist, dass Flecken, Fliegendreck u.ä. nach der Umwandlung in Schwarz-Weiß den gleichen Helligkeitswert (nämlich Schwarz) aufweisen wie die Nutzinformation und Finereader dann auch den Dreck ernst nimmt. Überlässt man die Auswertung des Bildes aber Finereader komplett, ist das Ergebnis wesentlich besser und der Dreck wird im Normalfall sehr gut ausgefiltert.

Beim Einscannen sehr dicker Bücher und fast immer beim Fotografieren mit einer Digicam wird der Text im Bereich der Bindung verzerrt, was für eine OCR tödlich ist. Zum Glück hat Abbyy in die Version 9 eine automatische Entzerrung eingebaut, die man aber auch manuell auslösen kann. Meine Versuche mit den vorhergehenden Versionen sind an diesem Problem gescheitert, da mit solchen Dokumenten kein vernünftiges Training möglich war.

Zu den Bildern selbst nur kurz, da diese Thema eines eigenen Beitrages werden sollen:

  • 300 dpi sollten es mindestens sein
  • bei Bilder mit einer Digicam reicht nach Aussage von Joergens die geringste Qualitätsstufe aus
  • 8 Bit Graustufen reichen für die OCR aus, weniger sollte es aber nicht sein

Training

Nachdem man alle Bildchen geladen hat, geht es mit dem Training der Software, im Finereader-Jargon „Benutzermuster testen” genannt, los. Dafür sind im Finereader-Dokument erst mal ein paar Einstellungen vorzunehmen.

Grundsätzlich sollte man die integrierten Muster für Antiqua-Schrift ausschalten, auch wenn etwas Antiqua im Frakturtext vorhanden ist. Denn sonst versucht Finereader, wenn es ein Zeichen nicht mit den trainierten Mustern erkannt hat, mit den eingebauten Mustern zu erkennen, was meist recht großen Murks ergibt. So werden gerne die großen Frakturbuchstaben als Copyright-Zeichen und anderen exotischen Sonderzeichen erkannt.

Im Menü Extras – Optionen – Tab Lesen nimmt man deshalb folgende Einstellungen vor:

  • Lesemodus: Gründlich
  • Benutzermuster testen bzw. Benutzermuster verwenden, wenn man schon trainiert hat
  • Bei „Integrierte Muster verwenden” das Häkchen entfernen

Das sollte dann also wie im folgenden Screenshot aussehen:

image

Zusätzlich sollte man über den Button „Mustereditor” sich eine eigene Musterdatei anlegen, die man entsprechend benennt, z.B. Fraktur o.ä. Den Grund hierfür erläutere ich später.

Dann kann man mit dem eigentlichen Training anfangen. Damit die nachfolgende dargestellte Box erscheint, muss unbedingt „Benutzermuster testen” ausgewählt sein. Man wählt sich also eine möglichst repräsentative Seite aus und fängt am besten mit einem Block Fließtext an, indem man „Seite lesen” oder „Bereich lesen” auswählt.

image

Der eigentliche Trainingsvorgang ist in der Hilfe recht gut beschrieben, so dass ich mir genauere Erläuterungen dazu spare. Nur ein Hinweis: Wenn man mitten in der Seite die Trainingsbox mit dem Button “Schließen” schließt, muss man vor einem erneuten Training in den Optionen wieder die Option “Benutzermuster testen” auswählen, da in diesem Fall Finereader den Trainingsmodus beendet.

Wichtig beim Training ist, dass man die OCR nicht übertrainiert. Als Übertraining bezeichne ich für mich persönlich den Versuch jedes gerade noch für den Menschen erkennbare Zeichen auch der Software beizubringen. Das bringt nichts, sondern verschmutzt quasi nur die Muster, so dass die Software nicht mehr weiß welches Zeichen denn nun wirklich vorliegt. Also deshalb verwischte, unvollständige, zusammenklumpende, nicht eindeutige Buchstaben am besten überspringen.

Dass man übertrainiert hat, bemerkt man daran, dass sich die Erkennungsleistung drastisch verschlechtert. Dann am besten komplett neu anfangen und vorsichtiger trainieren. Der Versuch die vermeintlich fehlerhaften Zeichen aus dem Muster zu löschen, bringt nach meiner Erfahrung nichts, da nicht erkennbar ist welche Zeichen tatsächlich die Probleme verursachen. Vermutlich verwendet Finereader zusätzlich zu den für den Nutzer einsehbaren Mustern, noch viel mehr Informationen, die die Erkennung beeinflussen.

Genauso sollte man nicht versuchen der Software krampfhaft beizubringen sehr ähnliche Zeichen zu unterscheiden. So werden gern u und n, das lange s und f verwechselt. Hier meine Empfehlung prototypische und gut erkennbare Zeichen zu trainieren und bei offensichtlichen Fehlern, die Software zu korrigieren. Ansonsten die Buchstaben überspringen. Alles andere bringt mehr Frust und Arbeit, aber keine wesentlich bessere Erkennungsleistung. Eher im Gegenteil besteht auch hier die Gefahr des Übertrainierens.

Was sehr gute Resultate, besonders bei etwas schlechteren Vorlagen, bringt, ist das exzessive Training von Ligaturen, auch wenn es eigentlich keine sind. Zuerst natürlich die in Frakturschrift häufig anzutreffenden Verbindungen von s und t und langes s und i, sowie f und i, t und z u.ä. Weiterhin wird man während des Trainings feststellen, dass einem Finereader immer wieder die gleichen Buchstabenkombinationen als ein Zeichen vorschlägt. In solchen Fällen einfach eine neue Ligatur anlegen und die gesamte Buchstabengruppe in Zukunft zusammen erkennen lassen.

Das kann bis zur Anlage eines ganzen Wortes wie „und” als Ligatur gehen. Ein Vorteil von Ligaturen ist auch, dass sich durch die erhöhte Anzahl der Buchstaben, und damit an signifikanten Merkmalen, die Treffergenauigkeit wesentlich erhöht. Wenn man also das Wort „und” als Ligatur trainiert hat, weil die Buchstaben immer gern aneinanderkleben, dann kommt eine Verwechslung von u und n zumindest in diesem Wort wesentlich seltener vor.

Was sollte extra trainiert werden:

  • Antiquaschrift, falls solche im Text vorkommt
  • Zahlen
  • Sonderzeichen, wie Klammern, Semikolons etc.

Für diese Zeichen also schauen wo sie etwas gehäufter vorkommen und dann diesen Bereich trainieren. Der Einfachheit halber kann man auch einen extra Bereich manuell anlegen, damit man nicht erst eine halbe Seite trainieren muss, um zu der gewissen Stelle zu gelangen. Den Bereich kann man nach dem Training wieder löschen.

Zu beachten ist außerdem, dass für unterschiedliche Schriftgrößen (Überschriften, Fußnoten etc.) sehr oft unterschiedliche Schriften eingesetzt wurden. In solchen Fällen muss man dann auch diese Bereiche extra trainieren. Wenn die Schrift allerdings nur an einigen wenigen Stellen, z.B. der Titelseite, vorkommt, dann sollte man sich die Arbeit sparen. Abtippen ist da meist schneller.

Wenn man der Meinung ist, dass die OCR eine ausreichend große Anzahl an Buchstaben erkennt, kann man das ganze Dokument oder wahlweise einzelnen Seiten komplett durch die OCR jagen. Wenn sich dabei an einigen Stellen Probleme ergeben, z.B. wegen wechselnder Schrift oder anderer Schriftgröße, muss man diese Stellen nachtrainieren. Anschließend sollte man dann das ganze Dokument neu erkennen lassen.

Nach meiner Erfahrung gelingt eine gute OCR nach etwa 1 bis 3 Stunden Training, je nach Qualität der Vorlage. Manchmal bekommt man aber selbst nach stundenlangem Training nichts Vernünftiges hin. Da hilft dann nur Abtippen.

Nachbereitung

Da die OCR, wie oben bereits angedeutet, immer mal wieder gern Buchstaben verwechselt, sollte man nach der OCR eine Textersetzung drüberlaufen lassen, die zumindest die gröbsten und häufigsten Fehlerkennungen ersetzt. Das Resultat ist dann schon meist ein recht gut lesbarer Text. Bei mir erledigt das vor dem Hochladen nach Wikisource mein Bot, der auch gleich die dazugehörigen Seiten anlegt und mit der OCR füllt.

Wiederverwendung

Schön ist, dass man die Musterdateien mit den trainierten Zeichen wiederverwenden kann. Das lohnt sich insbesondere bei der OCR mehrerer Bände eines Werks oder Jahrgängen von Zeitschriften. Aber auch bei unterschiedlichen Büchern lohnt nach meiner Erfahrung die Wiederverwendung, da sich die Trainingszeit, zumindest bei ähnlicher Schrift, dadurch drastisch verringern lässt. Schaden tut die Wiederverwendung aber auf keinen Fall. Im schlechtesten Fall muss man die verwendete Frakturschrift komplett neu trainieren, was man aber auch so hätte tun müssen.

Die Wiederverwendung geht leider nicht direkt über die Oberfläche, aber mit wenigen Handgriffen. Am einfachsten ist es ein älteres Fraktur-Projekt zu laden und unter neuem Namen zu speichern und anschließend die alten Bilder aus dem neuen Projekt zu löschen.

Als Alternative legt man sich einfach ein neues Projekt an, speichert es und kopiert aus einem älteren Frakturprojekt die Datei mit der Endung *.ptn in den neuen Projektordner. Und wenn wir oben dem Benutzermuster den Namen „Fraktur” gegeben haben, dann heißt die dazugehörige Datei fraktur.ptn. Deshalb die Empfehlung dem Benutzermuster einen Namen zu geben. Ansonsten landet die PTN-Datei nämlich in irgendeinem temporären Verzeichnis in den Tiefen der Festplatte. Im Anschluss muss man die kopierte Musterdatei noch aktivieren. Das geht mit Hilfe des Buttons „Mustereditors” in den Optionen (siehe oben den ersten Screenshot).

Fazit

Bei guten Vorlagen mit Texten aus dem späten 18. und 19. Jahrhundert, die maschinell gesetzt wurden und einheitliche Schriften innerhalb des Textes verwenden, ist meist eine akzeptable Qualität erreichbar. Die Texte müssen selbstverständlich noch korrigiert werden, um wirklich vorzeigbar zu sein.

Bei früheren Texten bin ich bisher gescheitert, da die Jungs damals sehr oft ziemlich wahllos in ihren Setzkasten griffen und für ein denselben Buchstaben Typen aus verschiedenen Schriften verwendeten, womit kaum ein vernünftiges Training möglich ist. Hinzu kommen krumme und schiefe Zeilen, unterschiedliche Zeichenabstände, ineinander ragende Zeilen und ähnliches. In solchen Fällen ist man mit dem Abtippen meist besser bedient.

Über Ergänzungen, Korrekturen oder Erfahrungsberichte zur Fraktur-OCR mit Finereader oder anderer Software würde ich mich freuen und gern hier veröffentlichen.

11 Gedanken zu „Fraktur-OCR mit Finereader“

  1. Danke für diesen Beitrag. Ich habe Frakturerkennung mal mit Finereader Version 6 versucht, aber das Experiment abgebrochen, sei es wegen schlechter Resultate, sei es wegen mangelnder Geduld meinerseits. Ich habe mir inzwischen 9.0 zugelegt und werde es mit dieser Anleitung noch einmal angehen. Mir geht es um Frakturtexte der 1920er und 30er Jahre, die ich auf dem PDA lesen möchte. Im Lesen schlecht oder mäßig erkannter Texte habe ich über die Jahre Routine bekommen. 9.0 ist übrigens sonst für mich wegen der Langsamkeit eine große Enttäuschung. Ich benutze außer bei sehr schlechten Vorlagen fast nur 6.0.

  2. Auch von mir vielen Dank

    Ich bin gerade dabei ein Buch in Fraktur einzulesen, aber mit dem Finereader 9.0 war es bisher nicht so toll. Bis ich in deinem Beitrag den Tip las, daß man die integrierten Muster abschalten soll. Das allein hat mir schon viel weitergeholfen. In der Vergangenheit hatte 9.0 immer Probleme zwischen dem f und dem langen s zu unterscheiden – das ist jetzt viel besser geworden.

  3. Vielen dank für diese Tips, die mir als Einsteiger weitergeholfen haben. Allerdings stehe ich noch vor Problemen: Ich bin davon ausgegangen, dass das Programm die von mir trainierten Zeichen automatisch unter dem von mir angelegten Muster speichert. Das scheint nicht so zu sein, bei jeder neu eingelesenen Seite, wurden die vorher bereits erkannten Zeichen nicht mehr erkannt. Wie kann ich denn diese trainierten Zeichen abspeichern? Bin für jede Hilfe dankbar, denn 300 Seiten Fraktur abtippen, gehört nicht zu meinen bevorzugten Aktivitäten…

  4. @Andreas: Wenn die Seiten alle in einem Projekt sind, dann verwendet er auch die bereits trainierten Muster. Ansonsten musst du die Musterdatei *.ptn in das neue Projekt kopieren.

    Wenn die Probleme innerhalb eines Projektes auftreten, dann kann es an verschiedenen Dingen liegen: unterschiedliche Auflösung der Scans, andere Schriftarten und ähnliches.

  5. Vielen Dank afür die Anleitung. Sie hat mir gut weitergeholfen, da man Seitenvorrat von XIX erschöpft war und ich mit einem neukauf warten wollte, bis es eine verbesserte Version gibt, da nach meiner Meinung XIX noch verbesserungwürdig ist (vor allem bei diesen Preisen!).
    Ich habe den Vorschlag auf die Version 7 angewendet und er funktioniert auch damit sehr gut. Die Version 9 ist mir zu langsam, nicht besser in der Erkennungsleistung (bei Bildern sogar schlechter).
    Mit schiefen Scan’s habe ich keine Probleme, da ich einen Buchscanner verwende, der auch das arbeiten mit dickeren Werken ermöglicht. Außerdem bereite ich grundsätzlich die Scan’s in einer Bildbearbeitung auf (zuschneiden, bereinigen etc.). Ich lege Wert auf eine möglichst genaue Wiedergabe des Originals und nicht nur auf einen lesbaren Text.
    Daher habe ich auch nur schlechte Erfahrungen mit Digitalfotos. Sie sind dafür eigentlich völlig unbrauchbar. Da die Auflösung dieser Fotos ja nur 100 bpi (egal wieviel Mega’s die Kamera bietet) beträgt, rechnet die OCR auf mindestens 300 hoch. Dabei werden dann die Schriften so klein, dass sie mit dem Original nichts mehr zu tun haben. Wenn man nur auf den Text wert legt (z. B. bei Romanen) kann man dies bei der Nachbearbeitung ja ändern, bei Sachbüchern mit Abb. etc. ergibt dies nur ganzh miese Ansichten. Es scheint außerdem so zu sein, das Finereader 9 gegenüber 7 grundsätzlich eine kleinere Schriftart wählt. Ergebnisse mit 7 liegen im Aussehen immer besser beim Original. Insgesamt scheint die Version 9 nicht gerade ein guter Wurf gewesen zu sein (leidet wohl auch unter dem VISTA-Symdrom). Deshalb schiebt man jetzt wohl auch schon die Version 10 nach.
    :-) :-) :-) :-) :-)

  6. Wie wäre es denn, wenn wir alle unsere treinierten Schriften tauschen und sammeln… grassroot fraktur-erkennung sozusagen…

  7. Ich werde die nächsten Tage mal meine aktuelle fraktur-Erkennung hier hochladen, damit die zumindest als Grundlage für einige andere Verwendung finden kann.

    Neuere Tipps habe ich eigentlich nicht, aber ich werde mal scharf nachdenken und schauen ob ich einen zweiten Teil machen kann.

    Vielen Dank an alle Kommentatoren für das Lob.

    1. vielen dank erstmals für die tipps etc.

      ich bin wohl ein wenig unbedarft, aber wie bringe ich vietcor auf windows7 zum laufen ,nachdem ich den ordner heruntergeladen und entpackt habe? ich habs einfach nicht kapiert.

  8. Würde gerne nochmal wegen deiner Fraktur-Erkennung nachhaken, die du hochladen wolltest. Wäre super, wenn du das noch machen würdest!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *