OCR auf Linux-Systemen [geschlossen]

14

Ich habe immer festgestellt, dass die OCR-Technologie auf Open Source-Systemen im Rückstand ist. Ich habe auch das Ocropus-Projekt von Anfang an gesehen. Ich habe versucht, was ich gehört habe, ist die beste OCR-Engine, die für Linux verfügbar ist, Tesseract , und habe festgestellt, dass es für Geschäftsdokumente schmerzlich fehlt. Gibt es noch vielversprechendere OCR-Implementierungen? Was ist mit dem noch hoffnungsvolleren Ziel, Handschrift zu interpretieren? Was ist auf * nix-Systemen in diesem Bereich möglich?

jjclarkson
quelle
1
Sollte dies auf Software migriert werden?
Jeff Schaller
@ Jeff wahrscheinlich nicht, da es fast sieben Jahre alt ist. Seitdem ist viel passiert. Einiges davon in OCR ... ;-)
Roaima

Antworten:

4

Tesseract

Ab 2018 ist Tesseract 4 (Beta) mit seinem neuen LSTM-OCR-Modell für neuronale Netze die beste verfügbare Open-Source-OCR-Software . Die OCR-Leistung ist viel besser als beim vorherigen OCR-Modell in Version 3.

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

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

Drucken Sie den erkannten Text auf stdout:

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

Liste installierter Sprachen:

$ tesseract --list-langs

Unterstützung für ziemlich viele Sprachen / Skripte gibt es in Form eines herunterladbaren trainierten Datensatzes , zB gibt es sogar einen Datensatz für Fraktur.

Mit dem neuen LSTM-Modell lässt sich Tesseract vom Forschungsprojekt OCRopus inspirieren .

Die Tesseract-Version 3 bietet selbst bei hochwertigen Eingabebildern eine relativ schlechte Leistung, dh, sie erkennt fälschlicherweise einzelne Zeichen in Staubpixeln (außerhalb eines beliebigen Textkontexts) und fügt in bekannten Wörtern leicht einzelne Zeichenfehler ein.

Keilschrift

Die Leistung von Cuneiform OCR ist nicht so schlecht, wird aber nicht aktiv gewartet (letzte Version im Jahr 2011, Version 1.1) und stürzt leicht ab und weist einige andere Probleme auf:

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.)

ocrad

$ ocrad -F utf8 image-0001

Der Text wird standardmäßig in Standardausgabe gedruckt.

In einem Geschäftsdokument fehlte ein unterstrichenes Wort, in dem Keilschrift / Tesseract / Gocr nicht vorkam.

gocr

$ gocr image-0001

Der Text wird standardmäßig in Standardausgabe gedruckt.

Hardware

Sane bietet eine sehr gute Unterstützung für viele Scanner mit automatischem Dokumenteneinzug (ADF), z. B. für die Scanner von Avision und Fujitsu .

In Sane ist das scanimageKommandozeilenprogramm enthalten, mit dem Sie geskriptete Scan-Pipelines erstellen können (vgl. ZB mein adf2pdf.pySkript).

maxschlepzig
quelle
Ich habe Cuneiform ausprobiert. Dies funktioniert gut, wenn Sie gescannte Bilder (keine Fotos) erkennen müssen. Ich habe Yagf als GUI verwendet.
Sergei
3

Ich habe eine ähnliche Frage bei StackOverflow gefunden und das Asprise OCR SDK , eines der verknüpften kommerziellen Produkte, verfügt über eine Linux-Version.

Larry Smithmier
quelle
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzuschließen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert. - Aus der Bewertung
Thomas
1
@Thomas der Link ist die einzig mögliche Antwort, da der Link auf ein bestimmtes Tool verweist, das vom OP angefordert wurde. Nicht alle Nur-Link-Antworten sind schlecht. Dies gibt den Namen einer bestimmten Software und einen Link zu ihrer Webseite an. Auch wenn der Link nicht funktioniert, sollten Sie ihn dennoch anhand des Namens finden können.
Terdon
1

Es gibt nur wenige beliebte OCR-Befehlszeilentools:

  • Tesseract ( ReadMe , FAQ ) (Python)

    Auch verfügbar für: Tesseract .NET , Tesseract iOS

    Eine OCR-Engine, die zwischen 1985 und 1995 bei HP Labs und jetzt bei Google entwickelt wurde. Tesseract ist wahrscheinlich die genaueste Open-Source-OCR-Engine, die es gibt.

    Verwendung:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    Beispiel: Vorhandenes PDF über Befehlszeile / Skript durchsuchbar machen

  • GOCR

    Open-Source-Zeichenerkennung. Es konvertiert gescannte Bilder von Text zurück in Textdateien. GOCR kann mit verschiedenen Frontends verwendet werden, wodurch es sehr einfach ist, auf verschiedene Betriebssysteme und Architekturen zu portieren. Es kann viele verschiedene Bildformate öffnen und seine Qualität hat sich täglich verbessert.

  • OCRopus ™ ( FAQ ) (geschrieben in Python, NumPy und SciPy)

    OCR-System mit Schwerpunkt auf maschinellem Lernen in großem Maßstab zur Behebung von Problemen bei der Dokumentenanalyse, einschließlich steckbarer Layoutanalyse, steckbarer Zeichenerkennung, statistischer Modellierung natürlicher Sprachen und mehrsprachigen Funktionen.

    Die OCRopus-Engine basiert auf zwei Forschungsprojekten: einem Hochleistungs-Handschrifterkenner, der Mitte der 90er Jahre entwickelt und vom US-amerikanischen Volkszählungsamt eingesetzt wurde, und neuartigen Hochleistungs-Layoutanalysemethoden.

    Die Entwicklung von OCRopus wird von Google gesponsert und ist zunächst für die Konvertierung von Dokumenten mit hohem Durchsatz und großem Volumen gedacht. Wir erwarten, dass es auch für viele andere Anwendungen ein hervorragendes OCR-System sein wird.

  • Tessnet2 (Open Source, Texterkennung , Tesseract, .NET, DOTNET, C #, VB.NET, C ++ / CLI)

    Tesseract ist eine C ++ - Open-Source-OCR-Engine. Tessnet2 ist eine .NET-Assembly, die sehr einfache Methoden zum Ausführen von OCR bereitstellt. Tessnet2 steht unter der Apache 2-Lizenz (wie Tesseract), dh, Sie können es nach Belieben verwenden und es ist in kommerziellen Produkten enthalten.

Andere bereits vorgeschlagen: ABBYY CLI OCR für Linux , Asprise OCR .

Lesen Sie auch:

Eine vollständige Liste finden Sie unter: Liste der optischen Zeichenerkennungssoftware bei Wikipedia.

Kenorb
quelle
0

... OCR ist mehr als "nur Zeichenerkennung". Bildbearbeitung, Vorverarbeitung - Seiten- / Layoutanalyse zum Auffinden der Texte, Bilder, Tabellen oder Barcodes. Für die Erkennung müssen Sie sich mit verschiedenen Schriftarten, Größen und Sprachen auseinandersetzen. Dies ist wichtig, da Sie Wörterbücher und Sprachdefinitionen verwenden müssen, um gute Ergebnisse zu erzielen. Schließlich erwarten die Benutzer mehr Exportoptionen als Text (z. B. XML, RTF oder durchsuchbares PDF). Es gibt einige kommerzielle Optionen für SDKs, die jedoch nicht billig und kostenlos sind.

Kürzlich habe ich eine CLI OCR für Linux von ABBYY gefunden . Es gibt eine kostenlose 100-Seiten-Testversion.

Tshepang
quelle
0

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

minaev
quelle
2
Dieses Produkt wurde bereits in einer früheren Antwort erwähnt . Bitte keine doppelten Antworten!
David Foerster