Category Archives

25 Articles

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

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

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.

Posted by Elisabeth Heigl on

Compare Samples

Release 1.10.1

Das Tool „Compare Samples“ überprüft, wie der Name schon sagt, die Fähigkeiten eines HTR-Modells nicht anhand eines manuell ausgewählten Testsets, sondern auf der Grundlage eines Samples. Wie man solche Samples erstellt, dass sie eine objektive Alternative zu konventionellen Testsets darstellen und warum sie mit wesentlich weniger Aufwand als diese erstellt werden können, haben wir in einem früheren Beitrag erklärt.

„Compare Samples“ sieht zwar aus wie ein Validierungs-Tool, gehört aber eigentlich nicht dazu. Nicht dass man damit ein HTR-Modell nicht validieren könnte, aber dafür ist das Advanced Compare eigentlich besser geeignet. Die eigentliche Funktion von „Sample Compare“ ist, dass es Voraussagen oder Prognosen über den Erfolg eines HTR-Modells auf einem bestimmten Material erstellt.

Ihr erinnert euch vielleicht an den Model Booster. Wenn man für ein geplantes HTR-Training unter den inzwischen zahlreichen verfügbaren Public Models ein geeignetes HTR-Modell sucht, das als Base Model dienen kann, dann bietet es sich an, das zuerst mit „Compare Samples“ auf seine Eignung zu überprüfen.

Um für ein Sample eine solche Voraussage zu erstellen, müsst ihr zuerst die ausgewählten HTR-Modelle über das gesamte Sample laufen lassen (Davor habt ihr natürlich für das Sample schon den GT erstellt). Anschließend öffnet ihr im „Compare Samples“-Tool den Reiter Samples. Darin sind sämtliche Samples deiner aktiven Collection aufgelistet. Ihr wählt das Sample aus, das als Grundlage für die Vorhersage dienen soll. Jetzt könnt ihr in der Mitte das Modell auswählen, dessen Textversion als Referenz für den GT dienen soll. „Compute“ starten und fertig.

Das Tool errechnet euch jetzt Durchschnittswerte für alle Zeilen des Samples mit jeweils einem oberen Durchschnittswert (upper bound), einem unteren (lower bound) und einem Mittelwert. In der Spanne zwischen upper bound und lower bound sollte dann für 95 % eures Materials die Character Error Rate liegen mit der das gewählte HTR-Modell voraussichtlich arbeitet. In unserem Beispiel unten also zwischen 4,7 und 2,9 %.

Ihr könnt auf diese Art beliebig viele Modelle für euer Material vergleichen. Aber das Tool erlaubt auch ein paar andere Dinge. Ihr könnt z.B. sehr gut überprüfen, wie ein HTR-Modell mit oder ohne language model oder dictionary auf eurem Material arbeitet und ob sich also der Einsatz des einen oder anderen lohnt. Das bietet sich natürlich vor allem für die Überprüfung der eigenen Modelle an.

 

Tipps & Tools
Erstellt lieber mehrere kleinere Samples als ein gigantisches Sample für all euer Material. Ihr könnt sie z. B. chronologisch oder nach Schreiberhänden trennen. Das erlaubt euch später eine differenzierte Voraussage für den Einsatz von HTR-Modellen auf eurem gesamten Material oder auf Teilen davon.

Posted by Elisabeth Heigl on

CER? Keine Sorge!

Release 1.10.1

Die Zeichenfehlerquote (Character Error Rate – CER) setzt für eine gegebene Seite die Gesamtzahl aller Zeichen (n) – dazu gehören auch die Leerzeichen – ins Verhältnis zur geringsten Anzahl der Einschübe (i), Änderungen (s) und Streichungen (d) von Zeichen, die nötig sind, um das GT-Ergebnis zu erhalten. Um es noch mathematischer auszudrücken:

CER = [ (i + s + d) / n ]*100

Das bedeutet, dass auch sämtliche Kleinigkeiten statistisch vollwertige Fehler sind. Jedes fehlende Komma, ein u statt eines v, ein zusätzliches Leerzeichen oder auch ein Groß- statt eines Kleinbuchstaben fließen als „ganzer Fehler“ in die CER mit ein. Dabei stören die Kleinigkeiten weder beim Lesen und Verstehen des Textes, noch hindern sie die Suchmaschine am Finden eines Begriffs.

Schaue deshalb nicht nur auf die Zahlen sondern immer mal wieder auch in den Textvergleich. Dein Modell ist in der Regel besser, als es die CER und erst recht die WER suggerieren.

Zur Veranschaulichung haben wir das mal an einem Beispiel durchgerechnet:

Posted by Dirk Alvermann on

Anwendungsfall: „Modell Booster“

Release 1.10.1

Unser Beispiel ist die Verbesserung unseres HTR-Modells für die Spruchakten. Das ist ein HTR-Modell, dass Kurrentschriften des 17. Jahrhunderts lesen kann. Auf der Suche nach einem möglichen Base Model findet man in den „public models“ von Transkribus zwei Kandidaten, die in Frage kommen: „German Kurrent M1+“ vom Transkribus Team und „German_Kurrent_XVI-XVIII_M1“ von Tobias Hodel. Beide könnten passen. Der Test auf dem Sample Compare ergibt allerdings, dass „German_Kurrent_XVI-XVIII_M1“ mit einer vorhergesagten mittleren CER von 9,3% auf unserem Sample Set die bessere Performance zeigte.

Für das Training wurde also „German_Kurrent_XVI-XVIII_M1“ als Base Model ausgewählt. Danach wurde der Ground Truth der Spruchakten (108.000 Wörter) und auch das Validation Set unseres alten Modells hinzugefügt. Die durchschnittliche CER unseres HTR-Modells hat sich nach dem Base Model Training erheblich verbessert, von 7,3% auf 6.6%. In der Grafik seht ihr, dass das Base Model auf dem Testset zwar wesentlich schlechter gelesen hat, als das Originalmodell, dass der Hybrid aus beiden aber besser ist als beide einzeln. Die Verbesserung des Modells ist in jedem einzelnen der getesteten Jahre zu beobachten und beträgt bis zu 1%.

Posted by Dirk Alvermann on

Modelle kombinieren

Release 1.10.1

Je länger man selbst HTR-Modelle trainiert, desto mehr beschäftigt man sich auch mit der Möglichkeit Modelle zu kombinieren. Es kann zum Beispiel sein, dass man mehrere Spezialmodelle für einzelne Schreiber oder auch Modelle, die auf besonderen Schriftarten oder Sprachen spezialisiert sind miteinander kombinieren möchte.

Ulm eine Kombination von Modellen zu erreichen gibt es verschiedenen Möglichkeiten. Hier möchte ich eine Technik vorstellen, die vor allem für sehr große generische Modelle aus meiner Erfahrung gut funktioniert – der „Model Booster“.

Dabei startet man ein Base Model Training und verwendet ein möglichst mächtiges fremdes HTR-Model als Base Model und den eigenen Ground Truth als Train Set. Bevor ihr startet aber noch zwei Ratschläge:

a) schaut euch genau die Eigenschaften des verwendeten Base Models an (für welche Zeit ist es Trainiert, für welchen Schriftstil und welche Sprache?) – sie müssen mit denen eures eigenen Materials möglichst übereinstimmen.

b) wenn möglich versucht die Performance des Base Models auf eurem eigenen Material vorherzusagen und entscheidet euch dann für das Base Model mit der besten Performance. Eine solche Vorhersage kann man recht über die Funktion Sample Compare machen. Eine andere Möglichkeit ist, das Basemodel mit dem Andvanced Compare auf dem eigenen Testset zu überprüfen.

Posted by Elisabeth Heigl on

Advanced Compare

Release 1.10.1

Im Gegensatz zur Visualisierung der Fehler über das Tool „Compare Text Versions“ gibt uns der gewöhnliche „Compare“ die gleichen Validierungsergebnisse als Zahlenwerte.

Hier erhalten wir neben der Wortfehlerquote auch die etwas aussagekräftigere Zeichenfehlerquote (CER). Außerdem können wir im „Advanced Compare“ diese Ergebnisse für das gesamte Dokument oder für bestimmte Seiten darin berechnen lassen – immer vorausgesetzt, dass die ausgewählten Seiten über eine GT Version verfügen. Denn beim Advanced Compare ist automatisch der GT als Referenz eingestellt.

Wähle also das zu validierende Modell als Hypothese aus und starte die Berechnung. Das Ergebnis gibt dir nicht nur den Durchschnittswert für das gesamte Dokument, sondern auch die entsprechenden Werte für jede einzelne Seite an. Und das macht den Advanced Compare zum wichtigsten Validierungstool in der systematischen Analyse bei der Entwicklung von Modellen.

In unserem recht komplexen Modelltraining für die Spruchakten (über 1000 Schreiberhänden aus über 150 Jahren) haben wir mit gesonderten kleinen Testsets gearbeitet an denen wir unsere neuen Modelle über das Advanced Compare immer wieder testen und die Ergebnisse genau analysieren konnten. So ließen sich nicht nur durchschnittliche Verbesserungen oder auch Verschlechterungen detailliert nachvollziehen. Wir konnten auch besondere Ausreißer, wie z.B. einzelne Konzeptschriften oder besonders „verschmierte“ ausmachen, die das sonst gute Gesamtergebnis verschlechterten. Darüber hinaus konnten wir aus diesem Zahlenmaterial viele Grafiken erstellen, die uns und euch bestimmte Phänomene und Entwicklungen veranschaulichen und dadurch verständlicher machen.

 

Tipps & Tools
Die Validierungsergebnisse des Advanced Compare kannst du dir auch als Excelltabelle auf deinen Rechner herunterladen. Dazu kannst du unter der Ergebnisdarstellung einen Ordner auswählen, in den das Dokument gespeichert werden soll. Klicke dann auf den Button „Download XLS“. Drücke nicht einfach Enter – sonst musst du wieder von vorne anfangen.