Ein Überblick in OCR Anwendungsfälle und wie man ein Programm zur Texterkennung entwickeln kann
Bei Accso haben wir uns in letzter Zeit damit beschäftigt was man machen muss, um automatisch Text in Bildern zu erkennen, und wie man so eine Anwendung bereitstellen kann. Speziell geht es um Texterkennung in Dokumenten mit Tesseract OCR. Unsere Erfahrung damit vermitteln wir euch in diesem Artikel.
Was ist OCR?
Unter Optical Character Recognition (OCR) versteht man, dass bei einem visuellen Input (Bild, Video) Text automatisch erkannt wird. Diese Idee hat viele Anwendungsbereiche, darunter:
- Selbstfahrende Autos (Erkennung von Straßenschildern etc.)
- Digitalisierung schriftlicher Dokumente (Einscannen + automatische Konvertierung in PDF Dateien mit markierbarem und suchbarem Text)
- Kennzeichenerkennung auf Fotos von Blitzern
- Computerassistenten für Menschen mit Sehbehinderungen und Analphabeten
Wenn man OCR Probleme ganz simpel formulieren will, dann kommt es immer auf folgende zwei Fragen an:
- Welcher Teil eines Bildes enthält den für mich relevanten Text?
- Das macht den Großteil des Aufwands aus. Hierfür sind sowohl ML-basierte, als auch andere Algorithmen verbreitet.
- Was ist dieser relevante Text?
- Das kann man meistens relativ einfach und genau bestimmen, wenn die vorherige Aufgabe gut gelöst wurde. Für diesen Teil wird mittlerweile ausschließlich ML verwendet.
Warum OCR?
Einige von euch fragen sich jetzt bestimmt warum wir uns damit beschäftigen, obwohl es kein „neues“ Thema ist und etablierte Anbieter bereits existieren. Kurze Antwort: Es gibt (noch) nicht die perfekte Lösung.
Im Jahr 2019 haben wir bereits eine Marktrecherche durchgeführt. Will man für seinen konkreten Anwendungsfall eine OCR-Lösung, so findet man auf dem Markt in der Regel einerseits sehr templatespezifische Lösungen, welche mit den kleinsten Änderungen Schwierigkeit haben, oder weniger genaue und sehr allgemeine Lösungen, bei denen man letztendlich trotzdem ergänzen muss welcher Teil eines Bildes relevant ist und in welcher Form der Output generiert/verschickt werden soll. Hat man also spezifische Anforderungen an die Segmentierung (Welcher Teil des Bildes ist relevant?), oder will man mehr API als „Als CSV exportieren“ o.ä., so muss man auch bei den fertigen Produkten mit, manchmal erheblichem, Zusatzaufwand rechnen.
Um solche Anwendungsfälle abdecken zu können möchten wir vorbereitet sein, Kunden bei der Lösung von OCR-Problemen unterstützen zu können.