Monthly Archives

4 Articles

Posted by Dirk Alvermann on

Strukturtagging – wofür das noch gut ist (Layout and beyond)

Im einem der letzten Beiträge habt Ihr gelesen, wie bei uns ein Strukturtagging durchführt wird. Wie der gesamte Werkzeugkasten des Strukturtaggings funktioniert, könnt ihr hier nachlesen. In unserem Projekt dient es v.a. dazu, ein angepasstes LA-Modell für die mixed layouts zu erstellen. Aber da steckt noch mehr Potential drin.

Wer kennt das Problem nicht?

Wenn sich auf einer Seite mehrere, sehr unterschiedliche Handschriften befinden, wird es schwierig, gleichmäßig gute HTR-Ergebnisse zu bekommen. Am häufigsten kommt das vor, wenn eine ‚saubere‘ Handschrift von einem weiteren Schreiber in einer Konzeptschrift kommentiert worden ist. Hier seht ihr so ein Beispiel:

Der eigentliche Grund für das Problem ist, dass die HTR bislang ausschließlich auf der Ebene der Seite ausgeführt wird. Das heißt, ich kann die Seite oder Seiten entweder mit dem einen oder dem anderen HTR-Modell lesen lassen, aber nicht mit zwei verschiedenen, die den jeweils vorkommenden Handschriften angepasst wären.

Seit Version 1.10. ist es möglich,  HTR-Modelle auf der Ebene der Textregionen anzuwenden und nicht nur den Seiten zuzuweisen. Dadurch können die Inhalte einzelner spezifischer Textregionen auf einer Seite mit unterschiedlichen HTR-Modellen gelesen werden. Hier spielt das Strukturtagging eine wichtige Rolle, zum Beispiel bei Textregionen, mit vom Haupttext abweichenden Schriften. Diese erhalten einen bestimmten Strukturtag, dem wiederum ein spezielles HTR-Modell zugewiesen wird. Grund genug also, sich mit Strukturtagging auseinander zu setzen.

Posted by Anna Brandt on

P2PaLA – line detection und HTR

Release 1.9.1

Wie bereits in unserem vorherigen Post erwähnt, ist uns im Laufe unseres Projekts aufgefallen, dass die CITLabAdvanced-LA das Layout in unserem Material nicht optimal erkennt. Das geschieht nicht nur auf den optisch ’schlimmen‘ Seiten mit mixed Layouts, sondern auch bei einfachen Layouts; auf Seiten, die nur ein Textfeld benötigen, keine Notizen am Rand, großartige Streichungen im Text oder ähnliches aufweisen. Hier erkennt die automatische LA die TRs richtig, die Baselines sind jedoch meistens fehlerhaft.

Das ist nicht nur für die spätere Anzeige des Volltextes schlecht, die dadurch zum Teil verwirrend oder für den Leser unverständlich wird. Eine unzureichende LA beeinflusst auch das Ergebnis der HTR. Egal wie gut euer HTR-Modell auch ist: wenn die LA nicht eine adäquate Qualität bietet, ist das ein Problem.

Da die HTR nicht die einzelnen Zeichen liest, sondern zeilenbasiert arbeitet und Muster erkennen soll, kommen bei Zeilen, deren Anfang oder Ende von der line detection nicht richtig erkannt wurden (in denen also Buchstaben oder Wörter nicht von der LA erkannt wurden) oft falsche Ergebnisse heraus. Das hat zum Teil dramatische Auswirkungen auf die Accuracy Rate einer Seite oder eines ganzen Dokuments, wie unser Beispiel zeigt.


1587, page 41

Aus diesem Grund haben wir ein P2PaLA-Modell trainiert, welches auch BL erkennt. Das war sehr hilfreich. Es lassen sich für diese Modelle keine automatischen Statistiken wie für die CER errechnen, aber von der Ansicht her scheint es auf ‚reinen‘ Seiten fast fehlerfrei zu arbeiten. Außerdem ist der Schritt des Postprocessings in vielen Fällen nicht mehr nötig.

Das Trainigsmaterial wird ähnlich erstellt wie bei Modellen die nur TRs erkennen sollen. Man kann auch das dort verwendet Material quasi erweitern und erneut nutzen. Die einzelnen Baselines müssen für die Strukturanalyse nicht manuell getaggt werden, auch wenn das Modell es später tut, um sie den getaggten TRs zuzuordnen. Wir haben mit Unterstützung des Transkribus Teams und einem Trainingsmaterial von 2500 Seiten ein Strukturmodell trainieren können, das wir heute anstelle der Standard LA einsetzen.

Posted by Anna Brandt on

P2PaLA – Postprocessing

Release 1.9.1

Gerade am Anfang der Entwicklung eines Strukturmodells kam es bei uns vor, dass das Modell einfach jede Unregelmäßigkeit im Layout als eigene TR erkennen wollte. Das führt zu übermäßig – und überflüssig – vielen Textregions. Viele dieser TRs waren außerdem extrem klein.

Je mehr Trainingsmaterial man investiert, desto geringer wird dieses Problem. Bei uns verschwanden diese Mini-TRs, die überall auf der Seite zu finden waren, nachdem wir unser Modell mit etwa 1000 Seiten trainiert hatten. Bis dahin stören sie aber, denn sie alle von Hand zu entfernen ist mühsam.

Um diese Arbeit zu vermindern, habt ihr zwei Möglichkeiten. Einmal könnt ihr beim Start der P2PaLA schon festlegen, wie groß die kleinste TR sein darf. Dafür müsst ihr den entsprechenden Wert im „P2PaLA structure analysis tool“ vor dem Start des Jobs auswählen („Min area“).

Sollte diese Möglichkeit nicht den gewünschten Erfolg bringen, gibt es auf der linken Toolbar unter dem Punkt „other segmentation tools“ die Option „remove small textregions“. In dem geöffneten Fenster kann man die Seiten, auf denen der Filter laufen soll, einstellen und auch die Größe der zu entfernenden TRs. Die Größe wird hier in „Prozent des bestehenden Images“ gerechnet. Und hier lässt sich der Wert auch feiner kalibrieren als bei der oben genannten Möglichkeit. Wenn das Material, wie in unserem Fall, oftmals kleine Notizen oder auch nur einzelne Wörter in eigenen Textregions aufweist, dann sollte immer der kleinste oder zweitkleinste Wert gewählt werden. Wir verwenden in der Regel eine „Threshold percentage“ von 0,005.

Selbst mit einem guten Strukturmodell kann es immer noch möglich sein, dass einzelne TRs manuell verschmolzen, geteilt oder entfernt werden müssen – aber in einem deutlich geringeren Maße, als das bei der Standard LA notwendig wäre.

Tipps & Tools
Wichtig: Wenn man sicher sein will, dass man nicht zu viele TRs beseitigt, kann man mit einem „dry run“ starten. Dann wird zunächst die Anzahl der potentiell zu entfernenden TRs aufgelistet. Sobald man den Haken aus dem Kästchen entfernt, werden die betroffenen TRs beim Filtern unmittelbar gelöscht.

Posted by Anna Brandt on

P2PaLA – Training für Textregions

Release 1.9.1

An einer anderen Stelle dieses Blogs findet ihr Hinweise und Tipps zum Strukturtagging. Diese Art des Taggings kann für vieles gut sein – hier soll es um seinen Nutzen für eine verbesserte Layout Analyse gehen. Denn das Strukturtagging ist ein wichtiger Teil beim Training P2PaLA-Modelle.

Bei unseren Mixed Layouts musste die Standard LA einfach versagen. Für eine manuelle Erstellung des Layouts war das Material zu umfangreich. Also entschieden wir uns, es mit der P2PaLA zu versuchen. Dazu haben wir Trainingsmaterial erstellt, für das wir möglichst typische ’schwierige‘ Seiten aus unserem Material ausgewählt haben. Das waren Seiten, die neben dem eigentlichen Haupttext außerdem noch Randbemerkungen, Nachsätze und ähnliches enthielten.

 


coll: UAG Strukturtagging, doc. UAG 1618-1, image 12

Beim Trainingsmaterial sind nur die richtig gezogenen und getaggten Textregions wichtig. Line detection oder HTR interessieren an diesem Punkt noch nicht. Es können also auch bereits vollständig bearbeitete Seiten ins Training aufgenommen werden. Wenn man neue Seiten nimmt, auf denen nur die TR gezogen und getaggt werden muss, geht es allerdings schneller. So können in einer Stunde schon mal achtzig bis hundert Seiten für ein Training vorbereitet werden. 

Während wir bei unserem ersten Modell sieben unterschiedliche Strukturtypen getaggt hatten, haben wir die Zahl später auf fünf reduziert. Eine zu starke Differenzierung der Strukturtypen wirkt sich nach unserer Erfahrung eher negativ auf das Training aus.

Natürlich hängt der Erfolg des Trainings auch von der Menge des Trainingsmaterials ab, das man investiert. Nach unseren Erfahrungen (und bezogen auf unser Material) kann man mit 200 Seiten einen guten Anfang machen, mit 600 Seiten erhält man ein Modell mit dem man schon arbeiten kann, ab 2000 Seiten ist es sehr zuverlässig.

Tipps & Tools
Wenn man das Material für ein Strukturtraining erstellt ist es anfangs schwierig sich bewusst zu machen, dass es hier nicht um Inhalte geht. Das heißt egal welcher Inhalt dort steht, die TR in der Mitte ist immer der Paragraph. Auch wenn in der Mitte nur eine Notiz steht und das Konzept darunter viel länger ist und inhaltlich viel bedeutender. Nur so können im Training wirklich die nötigen Muster erkannt werden.