ADMIN

2024

09

2024-08-29T12:00:00

Collaboration

SCHWERPUNKT

084

Collaboration

Optical Character Recognition

Dokumente digital erfassen

Von Papier zu Pixel

von Andreas Stolzenberger

Veröffentlicht in Ausgabe 09/2024 - SCHWERPUNKT

Wer den Inhalt seiner Papierkorrespondenz mit Volltextsuchen durchstöbern will, muss diese erst einmal in den Computer bekommen. Das Zauberwort lautet OCR, kurz für Optical Character Recognition. Neben proprietären Programmen gibt es eine Reihe interessanter Open-Source-Projekte, um aus großen Mengen Gedrucktem durchsuchbare PDFs zu erstellen. Wir stellen drei davon auf Basis von Tesseract vor.

Obwohl wir in einer - zumindest größtenteils - digitalen Welt leben, stapelt sich jeden Tag neues Papier im klassischen Posteingang von Unternehmen und Privatanwendern. Wer Behörden oder Versicherungen darum bittet, seine Korrespondenz anstelle von Briefen auf Papier doch bitte als E-Mail mit PDF-Anhang zu erhalten, bekommt auch im Jahr 2024 noch die Antwort: Aufgrund gesetzlicher Vorgaben ist es verpflichtend, Papier zu senden. Das war es dann also mit der Volltextsuche. Wer aus seinen Unterlagen ein Stück Papier heraussuchen muss, darf sich dann stundenlang durch Aktenordner wühlen.
Um das zu vermeiden, wollen Anwender und Unternehmen ihre klassischen Papierdokumente digitalisieren. Scannen allein hilft noch nicht weiter, denn damit erhalten Nutzer zunächst nur ein Bild, das sich nicht nach dem darin enthaltenen Text durchsuchen lässt. Das Zauberwort heißt OCR, kurz für Optical Character Recognition - wobei der pure Text allein aber auch nicht ausreicht. Das Endergebnis eines gescannten Dokuments sollte sowohl das originale Aussehen als auch den durchsuchbaren Text enthalten. Das Format der Wahl hierfür ist ein durchsuchbares PDF.
Das "Portable Document Format" stammt ursprünglich von Adobe. Seit dem Jahr 2008 ist das PDF-Format jedoch offen und von der ISO zertifiziert (ISO 32000-2, PDF 2.0 vom Dezember 2020). Eine der populärsten Applikationen, die Papierscans mittels OCR erkennt und in PDFs umwandelt, ist nach wie vor Adobe Acrobat. Allerdings ist es um die Beliebtheit des Herstellers aktuell schlecht bestellt. Ein paar umstrittene Lizenzänderungen, das teure Abo-Modell und der Versuch, die Kunden in die eigene Cloud einzusperren, kommen bei vielen Kunden nicht besonders gut an.
Obwohl wir in einer - zumindest größtenteils - digitalen Welt leben, stapelt sich jeden Tag neues Papier im klassischen Posteingang von Unternehmen und Privatanwendern. Wer Behörden oder Versicherungen darum bittet, seine Korrespondenz anstelle von Briefen auf Papier doch bitte als E-Mail mit PDF-Anhang zu erhalten, bekommt auch im Jahr 2024 noch die Antwort: Aufgrund gesetzlicher Vorgaben ist es verpflichtend, Papier zu senden. Das war es dann also mit der Volltextsuche. Wer aus seinen Unterlagen ein Stück Papier heraussuchen muss, darf sich dann stundenlang durch Aktenordner wühlen.
Um das zu vermeiden, wollen Anwender und Unternehmen ihre klassischen Papierdokumente digitalisieren. Scannen allein hilft noch nicht weiter, denn damit erhalten Nutzer zunächst nur ein Bild, das sich nicht nach dem darin enthaltenen Text durchsuchen lässt. Das Zauberwort heißt OCR, kurz für Optical Character Recognition - wobei der pure Text allein aber auch nicht ausreicht. Das Endergebnis eines gescannten Dokuments sollte sowohl das originale Aussehen als auch den durchsuchbaren Text enthalten. Das Format der Wahl hierfür ist ein durchsuchbares PDF.
Das "Portable Document Format" stammt ursprünglich von Adobe. Seit dem Jahr 2008 ist das PDF-Format jedoch offen und von der ISO zertifiziert (ISO 32000-2, PDF 2.0 vom Dezember 2020). Eine der populärsten Applikationen, die Papierscans mittels OCR erkennt und in PDFs umwandelt, ist nach wie vor Adobe Acrobat. Allerdings ist es um die Beliebtheit des Herstellers aktuell schlecht bestellt. Ein paar umstrittene Lizenzänderungen, das teure Abo-Modell und der Versuch, die Kunden in die eigene Cloud einzusperren, kommen bei vielen Kunden nicht besonders gut an.
Allerdings kommen Anwender in der Zwischenzeit sehr gut ohne Adobe-Software aus, wenn es darum geht, Volltext-durchsuchbare PDFs zu erstellen. Seit Jahrzehnten gibt es vor allem eine leistungsstarke, quelloffene OCR-Engine, die mit dem richtigen Toolkit Acrobat vollständig ersetzen kann: Tesseract. Zudem stehen neue OCR-Engines wie docTR in den Startlöchern, die KI-Modelle für eine Zuverlässige Texterkennung verwenden. Wir sehen uns mit Paperwork und zwei weiteren Tools simple, aber nichtsdestotrotz vielseitige Vertreter der Tesseract-basierten Toolkits an und werfen einen ersten Blick auf docTR.
Tesseract als Grundlage
Wie viele andere Open-Source-Entwicklungen auch startete die Bibliothek Tesseract [1] als proprietärer C-Code, entworfen von Hewlett-Packard in den 1980er- und 90er-Jahren. Allerdings geschah die darauffolgenden Jahre herzlich wenig, bis der Hersteller das Projekt im Jahr 2005 als Open Source freigab. Seither hat das Werkzeug mächtig zugelegt, verbesserte Methoden zur Texterkennung eingeführt und kann in der aktuellen Version 5 nun Texte in über 100 Sprachen erfassen. Damit steht es kommerzieller OCR-Software in nichts nach. Es gibt eine Vielzahl freier und kostenpflichtiger Projekte, die Tesseract als Engine verwenden. Drei davon dürften das Interesse professioneller Anwender wecken.
Paperwork
Das Tool Paperwork [2] sieht auf den ersten Blick nur wie eine simple GUI-Anwendung auf Basis von Tesseract aus. Der Anwender kann Dokumente mit verschiedenen Formaten importieren und erkennen lassen, die Paperwork in einem Ordner sichert. Zudem gibt es Tags, die ein Nutzer den Dokumenten zuweisen kann. Über eine Suchleiste kann der Anwender Volltextsuchen mit logischen Verknüpfungen wie "und" oder "nicht" erstellen. Paperwork filtert dann die Dokumente heraus, die den Suchkriterien entsprechen.
Damit eignet sich die App für ein kleineres Dokumentenarchiv im lokalen Ordner eines Benutzers. Das Ganze wird leider schnell unübersichtlich, da Paperwork keine Ordnerstruktur für die Sortierung der Dokumente nutzt, sondern nur via Tags gruppiert. Innerhalb des Dokumentenordners sortiert die Software jedes einzelne Dokument in einen Unterordner, der das Originalformat der Datei, einen Thumbnail und ein "Words"-File enthält. Beil letzterem handelt es sich um eine HTML-Datei, die sowohl die erkannten Worte als auch deren Position und Größe auf der gescannten Seite enthält. Damit kann Paperwork das Dokument mit Text-Overlay im eigenen Applikationsfenster darstellen. Optional baut das Tool aus diesen Informationen ein durchsuchbares PDF und exportiert es.
Von Anwendern mit einer größeren Menge an Unterlagen scheint Paperwork jedoch überfordert zu sein, wäre da nicht die Kommandozeile. Auf den unterstützten Betriebssystemen wie Windows oder Linux gibt es neben der GUI-Applikation auch einen CLI-Client. Das Windows-Paket beispielsweise enthält das Tool "paperwork-json.exe", das alle Ausgaben als JSON-formatiert, sodass diese sich in einem Skript mit "jq" auswerten lassen. Mithilfe der CLI kann der Anwender größere Mengen an Dokumenten automatisiert verarbeiten. Mit der Import-Anweisung fügt das Tool Dokumente zur eigenen Bibliothek hinzu und gibt eine eindeutige ID zurück. Das Kommando "ocr" startet die Texterkennung und via "export" kann die Anwendung einzelne Unterlagen oder Seiten davon als PDF mit Text-Overlay exportieren.
Mit dieser CLI lassen sich somit sehr einfach Workflows scripten, die eine große Zahl von bestehenden, aber noch nicht mit OCR bearbeiteten Schriftstücken verarbeiten. Oftmals verfügen PDFs bereits über einen OCR-Layer. Dieser stammt von anderen Tools wie Acrobat oder von Dokumentenscannern, die selbst OCR-Funktionen besitzen. Aber oftmals sind diese bestehenden Informationen unvollständig oder nicht präzise, weil sie von einer älteren OCR-Software stammen. Oder die Erkennung wurde mit einem OCR-Tool ohne deutsches Sprachpaket durchgeführt und enthält keine Umlaute. Sollten Anwender mit solchem Quellmaterial umgehen müssen, können Sie einen weiteren Schritt in Ihr Skript einbauen, den "reset". Dabei entfernt Paperwork nach dem Import den bestehenden, aber eventuell unvollständigen OCR-Layer und scannt das Dokument neu. Automatisiert hilft Paperwork somit auch professionellen Anwendern mit der korrekten OCR-Erkennung größerer Archive.
Bild 1: Paperwork erkennt Texte und lässt den Anwender nach Dokumentinhalten suchen.
OCRmyPDF
Während Paperwork dem Anwender neben der CLI auch eine grafische Oberfläche bietet, konzentriert sich OCRmyPDF [3] ausschließlich auf die Kommandozeile. Das Tool lässt sich auf allen gängigen Linux-Distributionen und macOS über den jeweiligen Paketmanager installieren. Auf Windows läuft OCRmyPDF nur in einer WSL-Umgebung. Das Setup richtet die benötigten Tesseract-Abhängigkeiten mit ein. Der Anwender muss lediglich Sprachpakete nachinstallieren, falls er andere Sprachen außer Englisch erkennen möchte. Im Unterschied zu Papermerge, das automatisch die OCR-Einstellungen festlegt, sind bei OCRmyPDF gegebenenfalls manuell Parameter anzupassen. In einem Test erkannte die Software zunächst keinen Text auf einer Heftseite, die mit einem Samsung-Handy fotografiert wurde. Erst eine Reihe zusätzlicher Parameter führte zum Ergebnis:
ocrmypdf -l deu --deskew --clean --image-dpi 72 seite1.jpg seite1.pdf
Das ist jedoch nicht weiter tragisch. Wer eine größere Anzahl von Dokumenten in einem Batch-OCR-Auftrag verarbeiten möchte, wird diese Dokumente in der Regel von einem Scanner und mit dem stets gleichen Bildformat erhalten. Hier kann der Anwender also mit einzelnen Scans erst einmal herausfinden, welche Settings für den OCR-Auftrag am besten funktionieren und diese dann für den Batch-Lauf verwenden.
Papermerge
Einen ähnlichen Ansatz wie Paperwork verfolgt auch Papermerge [4]. Allerdings arbeitet das Tool nicht als Desktop-Applikation, sondern als webbasiertes DMS mit OCR-Funktion. Das Backend stellt eine Datenbank, einen Webserver und einen oder mehrere OCR-Worker bereit. Der Anwender pflegt seine Dokumente über das Webinterface ein, das über den gleichen Funktionsumfang wie Paperwork verfügt. Die Volltextsuche wickelt dann aber die Datenbank im Backend ab und es können mehrere Benutzer mit dem DMS arbeiten. Neuere Versionen der Software unterstützen dabei auch Apache Solr im Backend, eine Volltext-Search-Datenbank auf Basis von Lucene, ähnlich wie Elasticsearch. Damit eignet sich Papermerge auch für sehr große Archive. Die Option der Scale-out-Worker, die parallel OCR-Dienste in mehreren Containern offerieren, unterstützt diesen Ansatz.
Eigentlich wollten wir Papermerge an dieser Stelle ausführlich beschreiben. Allerdings befindet sich das Projekt im Wandel und der Kern der Entwicklung scheint sich vom fertigen, vollintegrierten Web-DMS hin zum Rest-API-basierten Backend zu bewegen [5]. Im Testsetup bekamen wir jedenfalls nur die etwas ältere "All-in-one"-Version (3.0.3) als komplette Webapplikation zum Laufen, jedoch nicht die aktuellen Builds der Version 3.3. Dennoch sollten Sie das Projekt im Auge behalten. Wenn daraus eine solide DMS-Plattform entsteht, vielleicht mit einem alternativen Webfrontend, kann sich das zum professionellen Dokumentenmanagement für gescannte PDFs entwickeln.
KI erkennt Texte
Tesseract setzt noch auf weitgehend herkömmliche Methoden zur Texterkennung, auch wenn diese bereits neuronale Netzwerke verwenden. Moderne Engines für Machine Learning wie TensorFlow oder PyTorch können die OCR-Erkennung noch weiter verbessern. Eine freie Open-Source-OCR-Implementierung, die wahlweise mit beiden der genannten ML-Implementierungen arbeitet, ist docTR [6].
Dieses Tool verfolgt einen dualen Ansatz mit zwei ML-Modellen: Das Erste analysiert die gescannte Seite und findet die Bereiche, die erkennbaren Text enthalten. Ein zweites Modell übernimmt dann die eigentliche Texterkennung. Der Hersteller Mindee offeriert kein fertiges, universelles DMS-Tool mit OCR. Vielmehr konzentriert sich das Unternehmen auf spezialisierte Programme zur Formular- oder Kennzeichenerkennung.
In unserem kleinen Testsetup zeigte docTR bereits sehr eindrucksvolle Ergebnisse. Selbst wenn der Engine statt sauberer Seiten vom Flachbettscanner nur schiefe Handyfotos vorliegen, kann sie dennoch nahezu den kompletten Text erkennen. Zwar ist Tesseract hier auch schon ziemlich gut, bevorzugt jedoch schwarze, möglichst gerade Buchstaben auf weißem Papier. docTR findet aber auch problemlos weiße oder bunte Buchstaben auf farbigem Hintergrund. Zudem fiel uns auf, dass docTR bei fotografierten Heft- oder Buchseiten besser mit den Zeilen zurechtkommt, die sich in den Mittelfalz biegen.
Bild 2: Das KI-basierte OCR-Tool docTR kommt besser mit schiefen oder inversen Texten zurecht als das klassische Tesseract.
In der vorliegenden Version lässt sich docTR in eigene Python-Anwendungen integrieren. Das Git-Repository liefert Skriptbeispiele mit. Zudem gibt es eine simple Demo-Webapplikation. Darin lassen sich verschiedene Modelle für Erkennung und OCR ausprobieren und das Ergebnis auf einer lokalen Webseite betrachten. Als Output liefert docTR ein JSON-formatiertes Ergebnis. Dieses enthält wie bei Tesseract sowohl den Text als auch die Informationen zu Position und Größe. Mit etwas Coding oder Scripting lässt sich daher auch docTR in einen Batch-Prozess integrieren, um größere Mengen an gescannten Dokumenten zu erkennen und als durchsuchbare PDFs abzusichern.
Fazit
Um Texte zu scannen und per OCR zu erkennen, müssen Anwender keine teuren proprietären Tools kaufen. Tesseract und diverse Programme, die diese Bibliothek implementieren, leisten hier gute Dienste. Während Tesseract die besten Ergebnisse mit sauber gescannten Seiten aus dem Flachbett- oder Einzugsscanner liefert, kommt der KI-Ansatz in docTR auch hervorragend mit schrägen und inversen Texten zurecht, die von Kameras statt Scannern stammen. Immerhin wurde diese OCR-Software für die Erkennung von Formularen und Nummernschildern entwickelt. Beide Engines können in Batch-Prozessen gute Dienste leisten und den Anwendern helfen, bestehende Papierdokumente zu digitalisieren und Volltext-durchsuchbar zu machen.
(dr)
Link-Codes
[4] Papermerge: https://papermerge.com/
[5] Weiterentwicklung von Papermerge: https://hub.docker.com/r/papermerge/papermerge