Dirk Alvermann


Posted by Dirk Alvermann on

Einzelne Zeilen vom Training ausschließen

Manch einer wird das aus der Praxis kennen: ihr seid gerade dabei eine besonders schwierige Seite in Transkribus abzuschreiben und könnt beim besten Willen nicht alles entziffern. Was macht man da? Wenn die Seite so auf den Edit Status „Ground Truth“ gesetzt wird, dann geht die Transkription mit samt den offensichtlichen Fehlern (oder dem was ihr nicht lesen konntet) ins Training. Das ist nicht gewollt. Aber einfach „wegwerfen“ wollt ihr die Seite auch nicht.

Wir haben schon in einem anderen Beitrag über die Verwendung von Tags berichtet. Wir benutzen im Projekt in solchen Fällen von Beginn an das „unclear“-tag. Andere benutzen für solche Leseprobleme auch gerne das Tag „gap“.

Das erweist sich jetzt als großer Vorteil. Denn seit einigen Monaten gibt es im Trainings-Tool von Transkribus die Funktion „omit lines bei tag“.

Das Tool sorgt dafür, dass auf allen Seiten, die in das Trainings- oder Validaton-Set genommen werden, autormatisch die Zeilen, die ein Tag „unclear“ oder „gap“ aufweisen, nicht mit in das Training einbezogen werden. Das heißt, man kann jetzt selbst Seiten, die nicht perfekt transkribiert sind, bei denen aber die Stellen, die man nicht entziffern konnte, entsprechend durch Tags markiert sind, bedenkenlos mittrainieren.

Posted by Dirk Alvermann on

Automatisches Verbinden zu kurzer Zeilen

Diese Tool ist – wie „Remove small text lines”- mit der Verion 1.12.0 von Transkribus ausgeliefert worden. Die Idee dahinter ist vielversprechend.

Vielleicht hattet ihr schon einmal Probleme mit „zerrissenen“ Zeilen bei der automatischen Line detection (Citlab Advanced Layout Analyse). Wir haben in einem früheren Beitrag darüber berichtet, wie nervig dieses Problem sein kann.

Die Erwartungen an solch ein Tool waren daher bei uns natürlich hoch. Nach kurzer Zeit haben wir aber erkannt, dass seine Verwendung etwas Übung braucht und dass es nicht problemlos überall eingesetzt werden kann.

Hier zeigen wir ein einfaches Beispiel:

Auf der Seite wurden von der Citlab Advanced Layout Analyse fünf „überflüssige“ Textregionen erkannt und ebenso viele „zerrissene“ Baselines. In einem solchen Fall solltet ihr zuerst mit „remove small text regions“ die überflüssigen Textregionen entfernen und erst dann das automatische merge-tool starten.

Tips & Tools
Vorsicht bei komplizierten Layouts. Ihr müsst das Ergebnis von „merge small text lines“ immer überprüfen, weil öfter auch Baselines zusammengefügt werden, die nicht zusammengehören (aus Zeilen mit anderer Reading Order).

Posted by Dirk Alvermann on

Zu kurze Textzeilen automatisch Entfernen

Release 1.12.0

Viele von euch kennen sicher das Tool „Remove small text regions“, das es seit gut einem Jahr bei Transkribus gibt. Jetzt kommt sein kleiner Bruder „Remove small text lines“. Endlich – ein Tool das viele Anwender sich lange gewünscht haben.

Bei der Citlab Advanced Layout Analyse (auch auf völlig „normalen“ Seiten) kommt es immer wieder vor, das Textregionen oder Baselines erkannt werden, wo wir sie nicht brauchen oder wollen.

Häufig werden in verzierten Initialen oder auch zwischen den einzelnen Zeilen „Mini-Baselines“ erkannt. Das HTR-Modell kann damit natürlich später bei der Texterkennung nichts anfangen und im Transkript stehen dann „leere“ Zeilen. Mit diesem Tool könnt ihr dies Baselines leicht und automatisch Löschen

Versucht es selbst einmal. Wir haben die besten Erfahrungen damit gemacht, wenn wir den Schwellenwert auf 0,05 einstellen.

Posted by Dirk Alvermann on

Automatisch ausgewählte Validierungssets

Über Validierung und die verschiedenen Arten, ein Validierungsset zusammenzustellen, findet ihr in diesem Blog schon einige Beiträge.

Seit der letzten Version von Transkribus (1.12.0) gibt es eine neue Möglichkeit, Validierungssets zu erstellen. Dabei entnimmt Transkribus während der Zusammenstellung des Trainings aus dem Train-Set einen bestimmten Anteil (2%, 5% oder 10%) des Ground Truth und bildet daraus automatisch ein Validierungsset. Dieses Set besteht aus zufällig ausgewählten Seiten.

Gebildet werden diese Validierungssets im Trainings-Tool von Transkribus. Ihr beginnt dafür wie üblich mit der Eingabe der Trainingsparameter für das Modell. Bevor ihr aber den Ground Truth zum Train-Set hinzufügt, wählt ihr den gewünschten Prozentsatz für das Validierungsset aus. Diese Reihenfolge ist wichtig. Bei jedem neuen Dokument, das ihr jetzt dem Train-Set hinzufügt, werden von Transkribus die entsprechenden Seiten für das Validierungsset extrahiert. Das ist auch schon alles.

Das neue Tool eignet sich sehr gut für große Modelle mit entsprechend viel Ground Truth, vor allem, wenn euch die Aufstellung besonderer Validierungssets nicht wichtig ist, oder es euch für repräsentative schwer fällt.

Posted by Dirk Alvermann on

HTR+ oder Pylaia Teil 2

Release 1.12.0

Vor einigen Wochen haben wir über unsere ersten Erfahrungen mit PyLaia beim Training eines generischen Modells (600.000 Wörter GT) berichtet.

Heute wollen wir einen weiteren Versuch machen, PyLaia und HTR+ zu vergleichen. Diesmal steht uns dafür ein größeres Modell (German_Kurrent_17th-18th; 1,8 Mio Wörter GT) zur Verfügung. Das Modell wurde sowohl als PyLaia als auch als HTR+-Modell trainiert, mit identischem Ground Truth und denselben Voraussetzungen (from the scratch).

Unsere Vermutung, dass PyLaia seine Vorzüge gegenüber HTR+ bei größeren generischen Modellen besonders entfalten kann, hat sich hier bestätigt. In dem gezeigten Fall ist PyLaia HTR+ in allen Belangen überlegen. Sowohl mit als auch ohne Language Model hat das PyLaia Modell auf all unseren Testsets um etwa einen Prozentpunkt (in der CER) besser abgeschnitten als HTR+.

In den letzten Wochen hat sich übrigens auch die Performance von PyLaia bei „gebogenen“ Textzeilen deutlich verbessert.

Posted by Dirk Alvermann on

Tag Export II

Im letzten Post haben wir den Nutzen von Tags für die Visualisierung von Ergebnissen anhand der Darstellung von Place-Tags auf einer Karte vorgestellt. Es gibt aber noch andere Möglichkeiten.

Tags können nicht nur separat, wie in Form einer Excel-Tabelle exportiert werden. Einige Tags (place oder person) werden auch in den ALTO-Dateien mit ausgegeben. Diese Dateien sind unter anderem dafür verantwortlich, dass wir in unserem Viewer/Presenter die Treffer der Volltextsuche anzeigen können. Dazu wählt man einfach beim Export der METS-Dateien zusätzlich „Export ALTO (Split lines into words)“.

In unserem Presenter in der Digitalen Bibliothek Mecklenburg-Vorpommern werden die Tags dann als „named entities“ getrennt nach Orten und Personen für das jeweilige Dokument angezeigt. Das ganze ist noch in der Versuchsphase und soll in nächster Zeit so weiterentwickelt werden, dass man über eine tatsächliche Tagcloud direkt auf die entsprechenden Stellen im Dokumente springen kann.

Posted by Dirk Alvermann on

Neues Public Modell – German Kurrent 17th-18th

Heute dürfen wir unser zweites öffentlich zugängliches HTR-Modell vorstellen.

„German_Kurrent_17th-18th“ ist ein HTR-Modell für Kurrentschriften des 17. und 18. Jahrhunderts. Für dieses Modell ist Ground Truth aus unseren verschiedenen größeren und kleineren Projekten der letzten vier Jahre verwendet worden.

Es handelt sich um ein generische Modell, das Material von ca. 2000 individuellen Schreiberhänden umfasst. Der Ground Truth stammt zu etwa 35% aus Handschriften des 17. Jahrhunderts und zu 50% aus solchen des 18. Jahrhunderts. Die übrigen 15% verteilen sich auf die Jahrzehnte davor und danach. Die für das Training ausgewählten Unterlagen bestehen hauptsächlich aus amtlichen Protokollen und juristischen Schriftstücken, aber auch aus Privaten Aufzeichnungen und Briefen der Zeit. Daneben wurden auch wenige zeitgenössische Drucksachen (Fraktur), die hin und wieder in den Akten vorkommen, für das Training verwendet. Die Sprache der verwendeten Texte ist überwiegend Deutsch und Latein. Daneben wurden auch einige niederdeutsche und französische Texte verwendet.

Viel Spaß beim ausprobieren. Nutzt gerne die Kommentarfunktion um uns wissen zu lassen, wie das Modell bei euch funktioniert.

Posted by Dirk Alvermann on

Tag Export I

Wenn man sich einmal die Mühe gemacht hat, ein oder mehrere Dokumente zu taggen, hat man verschiedene Möglichkeiten diesen „Mehrwert“ auch außerhalb von Transkribus zu nutzen. Die Tags lassen sich leicht über das Export-Tool von Transkribus als Excel-Tabelle exportieren.

Von hier aus stehen Euch viele Möglichkeiten offen. Wir hatten unser „Tagging-Experiment“ durchgeführt, um zu erfahren, ob das ein guter Weg wäre, um die geographische Verteilung unserer Dokumente zu visualisieren und zugleich über eine Karte den Zugriff auf die digitalisierten Dokumente im Presenter zu ermöglichen.

Unterm Strich sind wir mit dem Ergebnis des Versuches zufrieden. Man kann bestimmte Jahre oder Zeiträume auswählen, nach Orten suchen und über die Punkte auf der Karte zu den Dokumenten gelangen. Hier könnt Ihr euch ansehen, was dabei herausgekommen ist.

Letztendlich hat sich der Aufwand für diese Art der Weiterverwendung des Taggings aber als so hoch erwiesen, dass wir ihn im Rahmen dieses Projektes nicht leisten können. Aber es gibt noch andere Möglichkeiten Tags im Export zu nutzen, über die wir im nächsten Post schreiben.

Posted by Dirk Alvermann on

HTR+ oder Pylaia

Version 1.12.0

Wie ihr sicher schon gesehen habt, gibt es seit dem vergangenen Sommer neben HTR+ eine zweite Technologie für die Handschriftentexterkennung in Transkribus verfügbar – PyLaia.

Wir haben in den vergangenen Wochen mit PyLaia-Modellen experimentiert und möchten hier einige erste Erfahrungen und Eindrücke zu den Unterschieden von HTR+ und PyLaia dokumentieren. Heißt billiger auch schlechter? – Definitiv nein! Hinsichtlich der Accuracy Rate kann PyLaia es ohne weiteres mit HTR+ aufnehmen. Es ist oft sogar etwas besser. Die folgende Grafik vergleicht ein HTR+ und ein PyLaia-Modell, die mit identischem Ground Truth (ca. 600.000 Wörter) unter denselben Voraussetzungen (from the scratch) trainiert wurden. Verglichen wird die Perfomance mit und ohne Language Model.

Der vielleicht auffälligste Unterschied ist, dass die Ergebnisse von PyLaia-Modellen sich mit dem Einsatz eines Language Models nicht ganz so stark verbessern lassen, wie das bei HTR+ der Fall ist. Das ist nicht unbedingt ein Nachteil, sondern spricht eigentlich eher für eine hohe Grundverlässlichkeit dieser Modelle. Anders ausgedrückt: PyLaia braucht nicht unbedingt ein Language Model um sehr gute Ergebnisse zu erzielen.

Es gibt auch ein Gebiet, auf dem PyLaia schlechter abschneidet, als HTR+. PyLaia hat größere Schwierigkeiten „gebogene“ Zeilen korrekt zu lesen. Bei senkrechten Textzeilen ist das Ergebnis sogar noch schlechter.

Im Training ist PyLaia etwas langsamer als HTR+, das heißt, das Training dauert länger. Auf der anderen Seite ist PyLaia sehr viel schneller im „Antritt“. Es benötigt verhältnismäßig wenige Trainingsdurchgänge, um gute Ergebnisse zu erzielen. In den beiden Lernkurven kann man das recht gut erkennen.

Unsere Beobachtungen sind natürlich nicht erschöpfend. Sie beziehen sich bisher nur auf generische Modelle, die mit einem hohen Einsatz von Ground Truth trainiert wurden. Wir haben insgesamt den Eindruck, das PyLaia bei solchen großen generischen Modellen seine Vorzüge voll ausspielen kann.

Posted by Dirk Alvermann on

Wie man PyLaia-Modelle trainiert

Release 1.12.0

Seit der Version 1.12.0 ist es möglich in Transkribus neben den bewährten HTR+ Modellen auch PyLaia Modelle zu trainieren. Wir haben in den letzten Monaten damit einige Erfahrungen gesammelt und sind von der Performance der Modelle recht beeindruckt.

PyLaia Modell können wie HTR oder HTR+ Modelle über das übliche Trainings-Tool trainiert werden. Es gibt aber einige Unterschiede.

Wie bei einem normalen HTR+ Modell müsst Ihr den Namen des Modells, eine Beschreibung und die Sprachen für die das Modell eingesetzt werden kann, angeben. Anders als beim Training von HTR+ Modellen ist die Anzahl der Iterationen (epochs) auf 250 beschränkt. Damit kommt man aber nach unseren Erfahrungen sehr gut zurecht. Man kann auch PyLaia Modelle mit base models trainieren, also längere aufeinander aufbauende Trainingsserien konzipieren. Im Unterschied zum üblichen Training gibt es bei PyLaia eine Einstellung „Early Stopping“. Sie legt fest, wann das Training beendet werden kann, sofern ein gutes Ergebnis erreicht wird. Diesen Wert solltet Ihr zu Beginn eurer Trainingsversuche immer auf dieselbe Anzahl von Iterationen einstellen, die Ihr für das gesamte Training gewählt habt. Wenn Ihr also mit 250 epochs trainiert, sollte der Wert bei „Early Stopping“ genauso hoch sein. Andernfalls riskiert ihr, dass das Training zu früh beendet wird.

Der wichtigste Unterschied ist jedoch, dass im PyLaia Training ausgewählt werden kann, ob Ihr mit den Original-Images oder mit komprimierten Images trainieren möchtet. Hier lautet die Empfehlung ganz klar: trainiert mit komprimierten Images. Das PyLaia Training mit Original-Images kann im schlimmsten Fall (bei entsprechend großer Menge von GT) Wochen dauern. Mit komprimierten Images ist auch ein PyLaia Training innerhalb weniger Stunden oder Tage (wenn ihr bspw. mit etwa 500.000 Wörtern trainiert) beendet.

Tips & Tools
Für ausführlichere Informationen, besonders zur Einstellung spezifischer Trainingsparameter empfehlen wir euch das Tutorial von Annemieke Romein und die Richtlinien der READ Coop.