Kleiner Vergleichstest Finereader 9 und Tesseract

Gestern wurde ich im Chat gefragt, welche OCR-Software ich empfehlen würde und da der Markt recht überschaubar ist und ich selbst seit einigen Jahren den Finereader einsetze und sehr zufrieden damit bin, blieben aus meiner Sicht eigentlich nur Finereader und als kostenlose Alternative Tesseract übrig.

Da mein Gegenüber etwas skeptisch war bezüglich der Qualität der von Finereader wurde ich gebeten eine Datei auf Commons mit einer Schreibmaschinenseite (Bild rechts) durch die OCR zu jagen. Und da zu einem Vergleichstest ja mindestens zwei gehören, war die gleiche Datei vorher bereits durch den Webservice Free OCR, der Tesseract verwendet, die Texterkennung durchgeführt worden.

Bei Free OCR kann man nur die Textsprache auswählen. Beim Finereader hab ich die OCR vollautomatisch ohne Auswahl der Textsprache oder eine Bildoptimierung durchführen lassen. Somit sollten die Ergebnisse sicherlich halbwegs vegleichbar sein. Ich habe derzeit den Finereader 9 in Benutzung. Vermutlich sähe das Ergebniss mit der aktuellen Version 10 nicht wesentlich anders aus.

Hier nun die Ergebnisse:

 Vergleich OCR-Ergebnis
Free OCR (Tesseract) Finereader 9
– I
§u*‘M~.. ‘ – , .’-‘J , ‘ms JOINT cl-uses or-‚ srass ‚
9* /f-<2» ~
‘Q _ _ wasmuoron fs.o.o.
-~~ .
i mmssnnw
IEMORMIDWKFOBTIESEOBMARYOFDEFENSE .‘ –
‘ Subject: Justification tor US Military Intervention
in cube (rs) ,-_- – .
‘ 1. ‘The Joint Chiefs of Staff have considered the attached
Memorandum“ for the Chief ’01‘ Operations, Cuba Project, which
responds to 3*-request of that office for brief but precise
‚ description of pretexts _which would provide Justification
for U8 military intervention in cube. _
H 2.‘ ‘the Joint Chiefs of staff recommend that the
proposed memorandum be forwarded as a preliminary submission
suitable for planning purposes. It is assumed that there
will be similar submissions from other agencies and that
these inputs will be used as a basis for developing a
_ time-phased plan. Individual projects can then be
considered on a case-by~case basis.
3. Further, it is assumed that a single agency will be
given the primary responsibility for developing military
and para-military aspects of the basic plan. It is
, recommended that _th:l.s responsibility for both overt and
-covert military operations be assigned the Joint Chiefs of
“ . – I . .
. _ . For the Joint Chiefs of Staff:
svsrsnnoua I ‚ ‘
BY J68 Ii}?! -5?‘ C aim“. -.“ – — _ –
msslr – … .‘ ‘ .
– L. L. LEMRITZER
‚ – _‘ _ Chairman ‚
‚ Joint Chiefs .01‘ S
l Enclosure . ‚ I –
Illemo for Ohio!‘ oi‘ Operations, Cuba. Project CXCI-UDED mom 00$
‚ ‚ . . p ‚_ sxcwnno non umamrc
_ Bmamllwz non DIR 5200.10
. _‘ _ – ‚ DOES NM‘ APPLY
~-
THE JOINT CHIEFS OF STAFF WASHINGTON £3, D.C.
1
13 March 196a
IffiMORAtfDUM FOR THE SECRETARY OF DEFENSE
Subject: Justification for US Military Intervention
1* The Joint Chiefs of Staff have considered the attached Memorandum-for the Chief of Operations, Cuba Project, which responds to aNr_equest of that office for brief but precise description of „pretexts which would provide justification for US military intervention in Cuba.
2. The .Joint Chiefs of Staff recommend that the proposed memorandum be forwarded as a preliminary submission suitable for planning purposes. It is assumed that there will be similar submissions from other agencies and that these inputs will be used as a basis for developing a time-phased plan. Individual projects can then be considered on a case-by-case basis.
3. Further, it is assumed that a single agency will be given the primary responsibility for developing military and para-military aspects of the basic plan. It is reoommended that this responsibility for both overt and covert military operations be assigned the Joint Chiefs of Staff,
in Cuba (TS)
For the Joint Chiefs of Staff:
1 Enclosure
Memo for Chief of
Operations, Cuba project
EXCLUDED fROM GD$
EXCLUDED PROff AUTOMAT IC BEGRADING; DOD DIR 5200,10 ¦ DOES NOT APPLY

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.