Connect with us

Wie man

So führen Sie OCR über die Linux-Befehlszeile mit Tesseract durch

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri / Shutterstock

Mit der Tesseract OCR-Engine können Sie Text aus Bildern in der Linux-Befehlszeile extrahieren. Es ist schnell, genau und funktioniert in etwa 100 Sprachen. Hier erfahren Sie, wie Sie es verwenden.

Optische Zeichenerkennung

Optische Zeichenerkennung (OCR) ist die Fähigkeit, Wörter in einem Bild zu betrachten und zu finden und sie dann als bearbeitbaren Text zu extrahieren. Diese einfache Aufgabe für den Menschen ist für Computer sehr schwierig. Frühe Bemühungen waren, gelinde gesagt, klobig. Computer waren oft verwirrt, wenn die Schrift oder Größe nicht den Wünschen der OCR-Software entsprach.

Trotzdem wurden die Pioniere auf diesem Gebiet immer noch hoch geschätzt. Wenn Sie die elektronische Kopie eines Dokuments verloren haben, aber noch eine gedruckte Version haben, kann OCR eine elektronische, bearbeitbare Version neu erstellen. Auch wenn die Ergebnisse nicht zu 100 Prozent genau waren, war dies eine große Zeitersparnis.

Mit etwas manuellem Aufräumen hätten Sie Ihr Dokument zurück. Die Leute verzeihen die Fehler, die sie gemacht haben, weil sie die Komplexität der Aufgabe verstanden haben, mit der ein OCR-Paket konfrontiert ist. Außerdem war es besser, als das gesamte Dokument erneut einzugeben.

Seitdem haben sich die Dinge erheblich verbessert. Die Tesseract OCR-Anwendung, geschrieben von Hewlett Packard, begann in den 1980er Jahren als kommerzielle Anwendung. Es wurde 2005 als Open-Source-Version bereitgestellt und wird jetzt von unterstützt Google. Es verfügt über mehrsprachige Funktionen, gilt als eines der genauesten verfügbaren OCR-Systeme und kann kostenlos verwendet werden.

Tesseract OCR installieren

Verwenden Sie diesen Befehl, um Tesseract OCR unter Ubuntu zu installieren:

sudo apt-get install tesseract-ocr

Auf Fedora lautet der Befehl:

sudo dnf install tesseract

Auf Manjaro müssen Sie Folgendes eingeben:

sudo pacman -Syu tesseract

Verwenden von Tesseract OCR

Wir werden Tesseract OCR vor eine Reihe von Herausforderungen stellen. Unser erstes Bild, das Text enthält, ist ein Auszug aus Erwägungsgrund 63 des Allgemeine Datenschutzbestimmungen. Mal sehen, ob OCR dies lesen kann (und wach bleiben).

Auszug aus Erwägungsgrund 63 der DSGVO

Es ist ein kniffliges Bild, weil jeder Satz mit einer schwachen hochgestellten Zahl beginnt, wie es in Gesetzgebungsdokumenten typisch ist.

Wir müssen das geben tesseract Befehl einige Informationen, einschließlich:

  • Der Name der Bilddatei, die verarbeitet werden soll.
  • Der Name der Textdatei, die für den extrahierten Text erstellt wird. Wir müssen die Dateierweiterung nicht angeben (es wird immer .txt sein). Wenn eine Datei mit demselben Namen bereits vorhanden ist, wird sie überschrieben.
  • Wir können die verwenden --dpi Option zu erzählen tesseract was zum Punkte pro Zoll (dpi) Auflösung des Bildes ist. Wenn wir keinen dpi-Wert angeben, tesseract werde versuchen, es herauszufinden.

Unsere Bilddatei heißt „recital-63.png“ und hat eine Auflösung von 150 dpi. Wir werden daraus eine Textdatei mit dem Namen „recital.txt“ erstellen.

Unser Befehl sieht folgendermaßen aus:

tesseract recital-63.png recital --dpi 150

Die Ergebnisse sind sehr gut. Das einzige Problem sind die hochgestellten Zeichen – sie waren zu schwach, um richtig gelesen zu werden. Ein Bild von guter Qualität ist entscheidend, um gute Ergebnisse zu erzielen.

Extrahierter Text aus Erwägungsgrund 63.

tesseract hat die hochgestellten Zahlen als Anführungszeichen (“) und Gradsymbole (°) interpretiert, aber der eigentliche Text wurde perfekt extrahiert (die rechte Seite des Bildes musste zugeschnitten werden, um hierher zu passen).

Das letzte Zeichen ist ein Byte mit dem Hexadezimalwert 0x0C, was ein Wagenrücklauf ist.

Unten sehen Sie ein weiteres Bild mit Text in verschiedenen Größen sowie fett und kursiv.

Bild mit verschiedenen Textgrößen in Fettdruck und Kursivschrift.

Der Name dieser Datei lautet „fett-kursiv.png“. Wir möchten eine Textdatei mit dem Namen „bold.txt“ erstellen, daher lautet unser Befehl:

tesseract bold-italic.png bold --dpi 150

Dieser warf keine Probleme auf und der Text wurde perfekt extrahiert.

Verwenden verschiedener Sprachen

Tesseract OCR unterstützt rund 100 Sprachen. Um eine Sprache zu verwenden, müssen Sie sie zuerst installieren. Wenn Sie die Sprache finden, die Sie in der Liste verwenden möchten, beachten Sie deren Abkürzung. Wir werden Support für Walisisch installieren. Die Abkürzung lautet „cym“ und steht für „Cymru“, was Walisisch bedeutet.

Das Installationspaket heißt „tesseract-ocr-„, wobei die Sprachabkürzung am Ende markiert ist. Um die walisische Sprachdatei in Ubuntu zu installieren, verwenden wir:

sudo apt-get install tesseract-ocr-cym

Das Bild mit dem Text ist unten. Es ist der erste Vers der walisischen Nationalhymne.

Bild mit Text des ersten Verses der walisischen Nationalhymne.

Mal sehen, ob Tesseract OCR der Herausforderung gewachsen ist. Wir werden das benutzen -l (Sprach-) Option zu vermieten tesseract kennen die Sprache, in der wir arbeiten wollen:

tesseract hen-wlad-fy-nhadau.png anthem -l cym --dpi 150

tesseract kommt perfekt zurecht, wie im extrahierten Text unten gezeigt. , Tesseract OCR.

Extrahierter walisischer Text.

Wenn Ihr Dokument zwei oder mehr Sprachen enthält (z. B. ein Walisisch-Englisch-Wörterbuch), können Sie ein Pluszeichen verwenden (+) erzählen tesseract um eine andere Sprache hinzuzufügen, wie folgt:

tesseract image.png textfile -l eng+cym+fra

Verwenden von Tesseract OCR mit PDFs

Das tesseract Der Befehl funktioniert mit Bilddateien, kann jedoch keine PDF-Dateien lesen. Wenn Sie jedoch Text aus einer PDF-Datei extrahieren müssen, können Sie zuerst ein anderes Dienstprogramm verwenden, um eine Reihe von Bildern zu generieren. Ein einzelnes Bild repräsentiert eine einzelne Seite des PDF.

Das pdftppm Dienstprogramm, das Sie benötigen sollte bereits installiert sein auf Ihrem Linux-Computer. Das PDF, das wir für unser Beispiel verwenden, ist eine Kopie von Alan Turings wegweisendem Artikel über künstliche Intelligenz, „Computing Machinery and Intelligence“.

PDF der Titelseite von "Computermaschinen und Intelligenz" von AM Turing.

Wir nehmen das -png Option, um anzugeben, dass PNG-Dateien erstellt werden sollen. Der Dateiname unserer PDF-Datei lautet „turing.pdf“. Wir nennen unsere Bilddateien „turing-01.png“, „turing-02.png“ und so weiter:

pdftoppm -png turing.pdf turing

Laufen tesseract Für jede Bilddatei mit einem einzigen Befehl müssen wir a verwenden für Schleife. Für jede unserer „turing-.png“ -Dateien führen wir aus tesseractund erstellen Sie eine Textdatei mit dem Namen „text-“ plus „turing-“ als Teil des Bilddateinamens:

for i in turing-??.png; do tesseract "$i" "text-$i" -l eng; done;

Um alle Textdateien zu einer zu kombinieren, können wir verwenden cat::

cat text-turing* > complete.txt

Also, wie hat es gemacht? Sehr gut, wie Sie unten sehen können. Die erste Seite sieht jedoch ziemlich herausfordernd aus. Es hat verschiedene Textstile und -größen sowie Dekoration. Es gibt auch ein vertikales „Wasserzeichen“ am rechten Rand der Seite.

Die Ausgabe liegt jedoch nahe am Original. Offensichtlich ging die Formatierung verloren, aber der Text ist korrekt.

Erste Seite mit extrahiertem Text aus dem Turing PDF.

Das vertikale Wasserzeichen wurde als Kauderwelsch am unteren Rand der Seite transkribiert. Der Text war zu klein, um gelesen zu werden tesseract genau, aber es wäre leicht genug, es zu finden und zu löschen. Das schlechteste Ergebnis wären streunende Zeichen am Ende jeder Zeile gewesen.

Seltsamerweise wurden die einzelnen Buchstaben am Anfang der Liste der Fragen und Antworten auf Seite zwei ignoriert. Der Abschnitt aus dem PDF wird unten gezeigt.

Eine Liste mit Fragen und Antworten aus dem PDF des Turing-Papiers.

Wie Sie unten sehen können, bleiben die Fragen bestehen, aber das „Q“ und „A“ am Anfang jeder Zeile gingen verloren.

Extrahierter Text aus der Frage- und Antwortseite des Turing-PDF.

Diagramme werden auch nicht korrekt transkribiert. Schauen wir uns an, was passiert, wenn wir versuchen, das unten gezeigte aus dem Turing-PDF zu extrahieren.

Ein Diagramm von "Eingang" und "Letzter Status" aus dem Turing PDF.

Wie Sie in unserem Ergebnis unten sehen können, wurden die Zeichen gelesen, aber das Format des Diagramms ging verloren.

Extrahierter Text aus einem Diagramm im Turing PDF.

Nochmal, tesseract kämpfte mit der geringen Größe der Indizes, und sie wurden falsch gerendert.

Fairerweise war es dennoch ein gutes Ergebnis. Wir konnten keinen einfachen Text extrahieren, aber dieses Beispiel wurde absichtlich ausgewählt, weil es eine Herausforderung darstellte.

Eine gute Lösung, wenn Sie sie brauchen

OCR müssen Sie nicht täglich verwenden. Wenn es jedoch nötig ist, ist es gut zu wissen, dass Sie über eine der besten OCR-Motoren verfügen.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia