# Optical Character Recognition ## Daria Pigasova, Fabian Drach, Florian Landes, Marcel Eisterhues ### Dokumentation des aktuellen Ist-Zustands
### 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. ### 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. --- ### 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. --- ### 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. --- ### 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. --- ### 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. --- ### 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. --- ### 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. --- ### 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.