3.10.2. Optical Character Recognition

3.10.2.1. Daria Pigasova, Fabian Drach, Florian Landes, Marcel Eisterhues

3.10.2.1.1. Dokumentation des aktuellen Ist-Zustands

3.10.2.1.2. Ziel

In der Finder-App WiTTFind werden die Bildausschnitte der Manu- oder Typoskripte zusammen mit den Treffern einer Suche angezeigt. Dieser Ausschnitt zeigt immer den kompletten Textblock, in dem das Ergebnis vorkommt. Mit einer Reihe von Werkzeugen werden die Positionen von eben diesen Textblöcken auf einer Seite gesucht. Voraussetzung hierfür ist eine Transkriptionsdatei, in der die Anzahl der Blöcke pro Seite, so wie der textuelle Inhalt der Blöcke definiert ist. Die gefundenen Koordinaten werden anschließend in den Koordinatenkorrektor geladen, in welchem die Ergebnisse angezeigt und händisch nachkorrigiert werden können.

3.10.2.1.3. Datenvorbereitung

Die hochauflösenden Faksimiles, die aus Bergen bereitgestellt werden und auf marmolata.cis.lmu.de abgelegt sind, müssen zunächst auf 20% skaliert werden, bevor die nachfolgenden Werkzeuge eingesetzt werden können. Die Skalierung erfolgt mit orig2highdensity.sh in wittgenstein-faksimile-download. Da dieser Schritt auch notwendig ist, um die Faksimiles in WiTTFind anzuzeigen, kann es gut sein, dass er für das aktuelle Dokument schon durchgeführt wurde.


Um die nötigen Tools der Schritte verwenden zu können, müssen diese auch noch installiert werden. Diese sind im Github des Wittfind-Projektes der LMU München zu finden, im Branch Coordinates-Extractor.
Dieser ganze Branch kann entweder in die virtuelle Maschine der OCR-Gruppe oder in ein anderes Linux-System kopiert werden. In diesem Verzeichnis findet sich das Bash-Skript Installation.sh, das ausgeführt werden muss.


Auf dem System müssen zusätzlich tesseract 3 und die Sprachpakete deu und deu-frak z.B. über einen Paketmanager installiert werden.

sudo apt-get tesseract-ocr-deu tesseract-ocr-deu-frak


In den folgenden Schritten werden Bash-Skripte ausgeführt, diese müssen über das Terminal aufgerufen werden.


3.10.2.1.4. Initialisierung

Ausführen von Initialisierung.sh mit dem Namen des zu bearbeitenden Dokuments, z.B. Initialisierung Ms-114, legt einen Ordner mit dem Dokumentnamen an und lädt die herunterskalierten Faksimiles, sowie die in Bergen erstellten Editionsdatei mit den Transkripten herunter. Nun navigiert man sich in den neu-erstellten Ordner und führt alle weiteren Schritte dort durch.


Der erste Schritt ist das (noch manuelle) angeben der eigentlichen Seiten- oder Textbereiche. Dies ist notwendig, da die Scans schwarze Bereiche enthalten, die die OCR-Anwendung stören. Der Abstand oben, links, rechts und unten vom Anfang des Bildes zum eigentlichen Text muss in einem Bildprogramm abgelesen werden und in die Datei Konfiguration eingetragen werden. Dies muss jeweils für eine Verso- und für eine Recto-Seite durchgeführt werden. Wenn alle diese Werte in die Konfigurationsdatei eingetragen wurde, können die eigentlichen Werkzeuge ausgeführt werden.


3.10.2.1.5. Seitendurchlauf

Der erste Schritt im Vorgehen wird durch das Bash-Skript Seitendurchlauf.sh durchgeführt.
In diesem Schritt werden die Bilder mit Hilfe der eingetragenen Koordinaten beschnitten. Das heißt in diesem Kontext, der bisher schwarze Rand der Datei wird durch einen weißen Rand ersetzt, der das weitere Vorgehen der OCR-Software nicht behindert.
Das Skript wird mit dem Aufruf

Seitendurchlauf 1

gestartet.
Wichtig ist hierbei das Setzten der 1, ohne diese Parameterübergabe wird ein Testdurchlauf gestartet, der allerdings keine Dateien speichert.


3.10.2.1.6. Binarisierung

Der zweite Schritt ist das Umwandeln der Bilder in ein schwarz-weiß Format, mit fest eingestelltem Kontrast.
Da die Bücher Wittgensteins teilweise über einhundert Jahre alt sind, sind zum Teil Gelbfärbungen oder Ähnliches vorhanden. All diese zusätzlichen Farbeindrücke sind Störquellen der OCR-Software.
Das Skript Binarisierung.sh übernimmt die Umwandlung der Dateien, und wird im Verzeichnis mit dem Befehl

Binarisierung

gestartet.
Die bearbeiteten Bilder sollten nun alle Monochrom vorliegen, und können dem nächsten Schritt der OCR-Software übergeben werden.


3.10.2.1.7. Texterkennung

In diesem Schritt wird nun die OCR-Software des Systems gestartet. Ohne Abänderung des Skriptes ist die Standardsoftware Tesseract, Texterkennung.sh, die mit dem Befehl

Texterkennung

gestartet wird.
Die Ausgabe dieses Skriptes sind .hocr-Dateien, die das Standardformat Tesseracts sind. Jedoch kann im Skript diese Ausgabe auch als .xml ausgegeben werden werden, indem im Skript das Argument -hocr zu -xml geändert wird.


3.10.2.1.8. Hervorhebung

In Hervorhebung werden die erhaltenen Daten weiter verarbeitet. Mit den erkannten Textbereichen der Seite wird eine neue Datei, conf.json, gefüllt. In dieser Datei sollen sich nun alle relevanten Informationen befinden, die für die weitere Bearbeitung benötigt wird. Das Skript wird mit dem Befehl

Hervorhebung

gestartet.
Dabei müssen keine weiteren Argumente übergeben werden.


3.10.2.1.9. Koordinatenbestimmung

Aus der json-Datei werden nun die Koordinaten der Textbereiche ausgelesen.
In diesem Schritt werden die Informationen gewonnen, die zur Darstellung der Bereiche verwendet werden. Gestartet wird das Skript mit dem Befehl

Koordinatenbestimmung

Dieses Skript benötigt keine Argumente.


3.10.2.1.10. HTML-Tag-Integration

Abschließend müssen die Daten noch weiterverarbeitet werden, sodass sie auf der WittFindseite angezeigt werden können.
Das passiert im letzten Schritt, HTML-Tag-Integration, in der nun zu den Informationen die nötigen HTML-Tags hinzugefügt werden.
Dieses Skript wird mit dem Befehl

HTML-Tag-Integration

gestartet, und benötigt keine Übergabeargumente.