Category Archives

15 Articles

Posted by Anna Brandt on

Transkribieren ohne Layoutanalyse?

Release 1.10.1

Wir haben in vorherigen Posts immer wieder betont wie wichtig die LA ist. Ohne sie hat ein HTR-Modell, und mag es noch so gut sein, keine Chance einen Text vernünftig zu transkribieren. Die Schritte von automatischer LA (oder einem P2PaLA-Model) und HTR löst man normalerweise getrennt voneinander aus. Jetzt ist uns aufgefallen, dass wenn ein HTR-Modell über eine komplett neue bzw. unbearbeitete Seite läuft, das Programm selbstständig eine LA ausführt.

Diese LA läuft mit den Default-Einstellungen von CITLab-Advanced LA. Dies bedeutet bei den reinen Seiten weniger Linien zu mergen und es werden zum Teil mehr als eine Textregion erkannt.

Es bedeutet jedoch auch, dass nur horizontale Schrift erkannt wird. Dasselbe Problem war bei uns auch bei unseren P2PaLA-Modellen aufgefallen. Alles was schräg steht oder gar vertikal kann so nicht erkannt werden. Dafür muss die LA manuell ausgelöst werden, mit der Einstellung ‚Text Orientation‘ auf ‚Heterogeneous‘.

Die HTR Ergebnisse sind bei dieser Methode interessanterweise besser als bei einer HTR die über eine korrigierte Layoutanalyse gelaufen ist. Wir haben dazu an bei einigen Seiten die CER ausgerechnet.

Damit ist diese Methode eine sehr gute Alternative, vor allem bei Seiten mit unkompliziertem Layout. Man spart Zeit, da man nur einen Vorgang auslösen muss und hat am Ende ein besseres Ergebnis.

Posted by Anna Brandt on

Tools im Layout-Reiter

Release 1.10.

Der Layout-Reiter hat zwei weitere Tools, auf die wir in unserem letzten Post noch nicht eingegangen sind. Sie sind vor allem bei der Layoutkorrektur sehr nützlich und ersparen lästige Kleinarbeit.

Das erste ist dazu da, um die Reading Order zu korrigieren. Wenn eine oder mehrere Textregions ausgewählt sind, werden durch dieses Tool Baselines („children of the selected element“) automatisch nach ihrer Position im Koordinatensystem der Seite geordnet. Also Baseline 1 beginnt links oben und von da weiterzählend bis rechts unten. In dem unten stehenden Beispiel wurde eine TR in mehrere zerschnitten, dabei ist aber die RO der Marginalien durcheinander gekommen. Das Tool erspart in so einem Fall die Arbeit, jede BL einzeln umbenennen zu müssen.

Das zweite Tool („assign child shapes“) hilft die BL der richtigen TR zuzuordnen. Dies kann nach dem Schneiden von Textregionen oder auch bei Baselines, die sich durch mehrere TRs ziehen, notwendig werden. Die BLs müssen dann einzeln im Layout-Reiter markiert und dort in die richtige TR geschoben werden. Alternativ markiert man die TR, in die die BL gehören und startet das Tool. Die Reading Order sollte anschließend noch einmal überprüft werden.

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.

Posted by Dirk Alvermann on

P2PaLA vs. Standard LA

Release 1.9.1

Im vorigen Post haben wir beschrieben, dass – wenn die Layouts der Dokumente sehr anspruchsvoll sind – die Standard LA in Transkribus nicht immer befriedigende Ergebnisse liefert. Für ein perfektes HTR-Ergebnis braucht man aber eine perfekte LA.

Vor allem in den Dokumenten des 16. und frühen 17. Jahrhunderts konnte die CITlab Advanced LA uns nicht überzeugen. Wir hatten von Anfang an nicht erwartet, dass die Standard LA die anspruchsvolleren Layouts (Textregionen) differenziert erkennt. Es war aber die line detection, die am Ende unseren Ansprüchen bei diesen Dokumenten nicht mehr genügen konnte.

Ein Beispiel dafür, wie (im schlimmsten Fall) die line detection der Standard LA auf unserem Material arbeitete, seht ihr hier:


1587, page 41

Dies kann ein Einzelfall sein. Wenn man aber große Mengen von Dokumenten in Transkribus verarbeitet, können solche Fälle häufiger auftreten. Um das Problem richtig bewerten zu können, haben wir daher an zwei Konvoluten unseres Materials eine repräsentative Fehlerstatistik aufgenommen. Es zeigt sich, dass die Standard LA hier mit durchschnittlich 12 Fehlern in der line detection pro Seite arbeitete (siehe Grafik unten, 1598). Das hat natürlich unerwünschte Auswirkungen auf das HTR-Ergebnis, die wir im nächsten Post näher beschreiben.

Posted by Dirk Alvermann on

P2PaLA oder Strukturtraining

Release 1.9.1

Die Page-to-Page-Layoutanalyse (P2PaLA) ist eine Form der Layoutanalyse für die, ähnlich wie bei der HTR, individuelle Modelle trainiert werden können. Diese Modelle können trainiert werden, sodass sie entweder nur Textregionen erkennen oder Textregionen und Baselines – sie erfüllen also dieselben Funktionen, die auch von der Standard Layoutanalyse (CITlab Advanced) ausgeführt werden. Die P2PaLA ist vor allem geeignet wenn ein Dokument viele Seiten mit mixed Layout aufweist. Die Standard Layoutanalyse erkennt in solchen Fällen meist nur eine TR – und das kann im Text zu Problemen bei der Reading Order führen.

Mit Hilfe eines Strukturtrainings kann die Layoutanalyse lernen, wo in etwa oder auch wie viele TRs sie erkennen soll.

Die CITlab Advanced LA hatte bei unserem Material häufig Probleme Textregionen ausreichend differentziert zu erkennen. Daher haben wir in unserem Projekt früh mit der P2PaLA experimentriert. Zunächst probierten wir Strukturmodelle aus, die ausschließlich Textregionen setzten (Haupttext, Marginalien, Fußnoten etc.). In den so erzeugten TRs konnte dann die gewöhnliche Line detection durchgeführt werden. Aber auch hier waren die Ergebnisse für uns nicht immer zufriedenstellend.

Die BLs waren oft zu kurz (am Zeilenanfang oder Zeilenende) oder vielfach zerrissen – auch bei Seiten mit einfachem Layout. Deshalb haben wir auf Grundlage unseres bereits funktionierenden P2PaLA-Modells ein weiteres, mit zusätzlicher Erkennung der BLs, trainiert. Unser neuestes Modell erkennt mittlerweile alle ‚einfachen‘ Seiten fast fehlerlos. Bei Seiten mit sehr differenzierten Layouts müssen die Ergebnisse immer noch korrigiert werden, allerdings mit deutlich geringerem Aufwand als zuvor.

Posted by Anna Brandt on

Layout-Reiter

Release 1.7.1

Wenn ihr die Layoutanalyse korrigiert, könnt ihr dies einmal im Image direkt machen oder ihr navigiert über den Layout-Reiter auf der linken Seite. Dort werden alle Formen, wie die Textregions und die Baselines, mit ihrer Position im Image und ihren Strukturtags angezeigt. Es ist möglich Formen zu löschen oder zu verschieben. Im Image seht ihr dabei immer, wo ihr euch gerade befindet, welches Element gerade markiert ist und was ihr also verändert könnt.

Wenn ihr zwei Baselines zusammenfügen möchtet, könnt ihr sie im Layout-Reiter markieren statt im Image zu versuchen die schmale Linie zu treffen.

Die Navigation im Reiter ist vor allem dann praktisch, wenn ihr das Image im rechten Fenster dabei komplett sehen wollt. Ihr behaltet so einen besseren Überblick, da alles im Image und im Reiter gleichzeitig geändert wird.

Tipps & Tools
Die Reading Order der Baselines könnt ihr entweder verändern indem ihr die Lines im Layoutreiter verschiebt oder durch anklicken und ändern der Zahl in der Spalte „Reading Order“.

Posted by Dirk Alvermann on

Mixed Layouts

Release 1.7.1

Die CITlab Advanced Layout Analysis kommt mit den meisten „ordentlichen“ Layouts in über 90% der Fälle gut zurecht. Reden wir hier also über die anderen 10%.

Wie man vorgeht, um sich Ärger mit der Reading Order zu ersparen, hatten wir schon besprochen. Aber was passiert, wenn wir es mit wirklich gemischten – verrückten – Layouts zu tun bekommen, z. B. bei Konzepten?

Bei komplizierten Layouts werdet ihr schnell merken, dass die manuell gezogenen TRs sich überlappen. Das ist nicht gut – denn in solchen überlappenden Textregionen funktioniert die automatische Line Detection nicht zuverlässig. Auch dieses Problem lässt sich leicht beheben, denn TRs müssen nicht nur viereckig sein. Sie können als Vielecke (Polygons) gezogen werden und sind dadurch leicht voneinander abzugrenzen.

Es ist sinnvoll, dass ihr diese vielen Textregionen mit strukturellen Tags verseht, um sie besser auseinanderhalten zu können und um sie bei der späteren Weiterverarbeitung evtl. bestimmten Verarbeitungsroutinen zuzuweisen. Das ist ein kleiner Aufwand mit großem Nutzen, denn das Strukturtagging ist nicht aufwendiger, als das Tagging im Kontext.

Tipps & Tools
Eine echte Herausforderung kann hier die automatische Line Detection sein. Abschnitte, bei denen Ihr schon (mit ein wenig Erfahrung) vorhersehen könnt, dass das nichts wird, bearbeitet ihr am besten manuell. Bei der automatischen Line Detection sollte CITlab Advanced so konfiguriert werden, dass die Default Einstellung gegen „Heterogeneous“ getauscht wird. Die LA wird jetzt sowohl waagerechte als auch senkrechte oder schiefe und schräge Zeilen berücksichtigen. Das dauert zwar etwas länger, aber dafür ist das Ergebnis auch besser.

Sollten solche komplizierten Layouts ein durchgängiges Merkmal eures Materials sein, dann lohnt es sich ein P2PaLA-Training zu konzipieren. Damit schafft ihr Euch ein eigenes Layout-Analyse-Modell, das für die spezifischen Herausforderungen eures Materials zugeschnitten ist. Für ein solches Training ist das Strukturtagging übrigens die Grundvoraussetzung.

Posted by Anna Brandt on

Toolbar – die wichtigsten Werkzeuge und wie man sie benutzt, Teil 2

Release 1.7.1

Layout korrigieren

Wenn die groben Textregionen gezogen sind, können diese bearbeitet werden. Dazu wählt ihr eine der Regionen aus, dann werden die anderen Tools auf der Toolbar aktiv.

Mit 1 können zu der ausgewählten Form (TR oder BL!) ein oder mehrere Punkte hinzufügt werden. Alle Formen bestehen aus Punkten, an denen ihr die Form verschieben könnt und geraden Linien, welche diese Punkte verbinden. Um aus der groben Textregion ein Polygon zu machen, welches an den Textfluss angepasst ist, benutzt ihr dieses Tool.

Mit 2 wird von der ausgewählten Form ein Punkt entfernt. Dieses Tool ist besonders geeignet, um Baselines zu korrigieren oder zu kürzen. Das ist häufig der Fall wenn man ausgewählte Elemente teilt.

Mit 3,4 und 5 ist es nämlich möglich die ausgewählte Form zu teilen. Auch das geht sowohl bei Textregions als auch bei Baselines: 3 teilt horizontal, 4 vertikal. Mit 5 zieht ihr eine eigene Linie, die nicht nur waagerecht oder senkrecht verlaufen muss.

Das letzte wichtige Werkzeug (roter Kreis) ist das Merge-Werkzeug. Das ist besonders wichtig, wenn die automatische LA Baselines im Image zerrissen hat. Ihr könnt mit Merge alle Formen wieder zusammenfügen. Also Baselines mit Baselines und Textregionen mit Textregionen. Dazu müsst ihr die entsprechenden Formen markieren, was ihr im Image direkt oder im Layout-Reiter tun könnt.

 

Tipps & Tools
Beim Teilen müsst ihr darauf achten, dass die TR und BL nur an den Stellen geteilt werden können, wo sie Linien haben. Ein Schnitt durch die Punkte, die auf der Form sitzen, ist nicht möglich.
Außerdem ist wichtig zu wissen, dass bei der Teilung einer Form die Reading Order automatisch verändert wird. Wenn zum Beispiel aus einer TR zwei gemacht werden, wird in jeder TR eine neue Zählung angefangen.