OCR auf Linux-Systemen

OCR auf Linux-Systemen

Ich habe immer gefundenOCR-Technologiebei Open-Source-Systemen hinterher zu sein. Ich habe auch dieOcropus-Projektseit seiner Kindheit. Ich habe versucht, was ich gehört habe, ist die beste OCR-Engine für Linux,Tesseraktund habe festgestellt, dass es für Geschäftsdokumente völlig unzureichend ist. Gibt es andere, vielversprechendere OCR-Implementierungen? Und was ist mit dem noch vielversprechenderen Ziel der Handschrifterkennung? Was ist auf *nix-Systemen in diesem Bereich möglich?

Antwort1

Tesserakt

Ab 2020 ist die beste verfügbare Open-Source-OCR-SoftwareTesserakt 4mit seinem neuenOCR-Modell für neuronale LSTM-Netzwerke. Seine OCR-Leistung ist viel besser als die des vorherigen OCR-Modells, das in Version 3 verwendet wurde.

Beispiel (Erstellen einer PDF-Datei output.pdfmit einer Textebene für ein gescanntes deutsches Dokument):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

( --oem 1aktiviert die LSTM-Engine)

Drucken Sie den erkannten Text auf stdout:

$ tesseract --oem 1 -l deu page page-0001.png stdout

Liste der installierten Sprachen:

$ tesseract --list-langs

Unterstützung für viele Sprachen/Skripte ist in Form einer herunterladbarentrainierte Datensätze, es gibt beispielsweise sogar einen Datensatz für Fraktur.

Mit dem neuen LSTM-Modell lässt sich Tesseract von derOCRopusForschungsprojekt.

Die Leistung von Tesseract Version 3 ist sogar bei qualitativ guten Eingabebildern relativ schlecht. So erkennt es häufig fälschlicherweise einzelne Zeichen in Staubpixeln (außerhalb jeglichen Textkontexts) und führt leicht Einzelzeichenfehler in bekannte Wörter ein.

Keilschrift

KeilschriftDie OCR-Leistung ist nicht so schlecht, aber es wird nicht aktiv gepflegt (letzte Veröffentlichung 2011, Version 1.1) und stürzt leicht ab und hat einige andere Probleme:

Sie können den Layout-Algorithmus wie folgt deaktivieren:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

( -lgibt die Sprache des Quelldokuments an)

Abonnieren

OcradBeispielaufruf:

$ ocrad -F utf8 image-0001

Der Text wird standardmäßig auf stdout gedruckt.

In einem Geschäftsdokument fehlte ein unterstrichenes Wort, was bei Cuneiform/Tesseract/GOCR nicht der Fall war.

Das Ocrad-Handbuch enthält einen Abschnitt überdie verwendeten Algorithmen, z.B:

5) Zeichen erkennen und in Zeilen gruppieren.
6) Zeichen erkennen (sehr ad hoc; ein Algorithmus pro Zeichen).
7) Einige Mehrdeutigkeiten korrigieren (1.000 in 1.000 umwandeln usw.).

GOCR

GOCRBeispielaufruf:

$ gocr image-0001

Der Text wird standardmäßig auf stdout gedruckt.

Die GOCR-Dokumentation enthält nicht viele Details darüber, welche Modelle/Methoden für OCR verwendet werden.

Hardware

Vernünftigbietet sehr gute Unterstützung für einige ADF-Scanner (Automated Document Feeder), z. B. für denEine VisionUndFujitsuEinsen.

Im Lieferumfang von Sane ist ein scanimageKommandozeilenprogramm enthalten, mit dem Sie geskriptete Scan-Pipelines erstellen können (vgl. z. B. meineadf2pdf.pySkript).

Antwort2

Ich habe einen ... gefundenähnliche Frage bei StackOverflowund dasAsprise OCR SDK, einer der verknüpftenkommerziellProdukte, verfügt über eine Linux-Version.

Antwort3

... OCR ist mehr als „nur Zeichenerkennung“. Bildbearbeitung, Vorverarbeitung – Seiten-/Layoutanalyse, um Texte, Bilder, Tabellen oder Barcodes zu finden. Bei der Erkennung müssen Sie mit verschiedenen Schriftarten, -größen und -sprachen umgehen. Das ist wichtig, denn um gute Ergebnisse zu erzielen, müssen Sie Wörterbücher und Sprachdefinitionen verwenden. Schließlich erwarten die Leute mehr Exportoptionen als nur Text (z. B. XML, RTF oder durchsuchbares PDF). Es gibt einige kommerzielle Optionen für SDKs, aber diese sind nicht billig und kostenlos.

Kürzlich fand ich eineCLI OCR für Linux von ABBYY. Es gibt eine kostenlose 100-seitige Testversion.

Antwort4

Wenn Sie ein Budget haben, empfehle ich dringendABBYY FineReader Engine CLI für Linux. Unser Unternehmen verwendet es seit einem Jahr in unserer Webanwendung und wir planen, die Lizenz zu erneuern. Sehr gute Erkennungsqualität, Befehlszeilenschnittstelle, Erkennung in vielen Sprachen.

verwandte Informationen