Tesseract OCR: Installation und Verwendung unter Ubuntu

Tesseract ist eine der leistungsstärksten Open Source OCR-Engine, die heute verfügbar ist. OCR steht für Optical Character Recognition (optische Zeichenerkennung). Dies ist der Prozess der Extraktion von Texten aus Bildern. Betrachten Sie zum Beispiel das folgende Bild, in dem sich ein Text befindet, der extrahiert werden muss:

Die Ausgabe der OCR-Engine wird, sobald die Verarbeitung abgeschlossen ist, ungefähr so aussehen:

  Open
  Access
  Button

So funktioniert die OCR. Es ist in vielen Anwendungen nützlich, wie z.B. bei der Erkennung von Fahrzeugkennzeichen, der Konvertierung von gescannten Kopien von Dokumenten in das Wortformat, der automatischen Extraktion von Details aus Belegen, etc. Es bildet auch den ersten Schritt in vielen Aufgaben der natürlichen Sprachverarbeitung. In diesem Tutorial werden wir untersuchen, wie man Tesseract und imagemagick schnell installiert und einstellt und wie man sie benutzt, um die bestmöglichen Ergebnisse bei der Vorverarbeitung von Bildern zu erzielen.

Die Bildvorverarbeitung ist ein wichtiger Bestandteil der OCR mit Tesseract. Dies stellt sicher, dass die Genauigkeit des extrahierten Textes hoch ist und reduziert den Fehler. Wir werden einige grundlegende Operationen durchgehen, um das Bild damit zu bearbeiten. Imagemagick ist ein auf der Kommandozeile basierendes Bildverarbeitungswerkzeug, das uns hilft, Operationen wie Beschneiden, Größenänderungen, Farbschemata, etc. durchzuführen.

1 Tesserakt einbauen

Es ist ziemlich einfach, tesseract zu installieren, führen Sie die folgenden Befehle aus:

sudo apt update sudo apt install tesseract-ocr

Hier wird der Tesserakt-Motor installiert. Das Bild unten zeigt die Leistung bei korrekter Installation:

Tesserakt installieren

Als nächstes müssen die Sprachpakete installiert werden. Tesseract ist sehr robust und kann über 100 verschiedene Sprachen extrahieren, sofern die Sprachpakete heruntergeladen werden. Sie können ein bestimmtes Sprachpaket herunterladen, indem Sie den allgemeinen Befehl unten verwenden:

sudo apt-get install tesseract-ocr-[lang]

Ersetzen Sie im obigen Befehl „[lang]“ mit der Sprache, die Sie herunterladen möchten. Beispiele für Englisch und Französisch sind unten aufgeführt:

sudo apt-get install tesseract-ocr-eng sudo apt-get install tesseract-ocr-fra

Normalerweise wird der Tesserakt standardmäßig mit dem englischen Paket geliefert. Das Bild unten zeigt, dass Englisch bereits installiert war und Französisch heruntergeladen und installiert werden musste:

Tesseraktanlage

Wenn Sie alle Sprachpakete herunterladen möchten, können Sie alternativ den folgenden Befehl ausführen:

sudo apt-get install tesseract-ocr-all

Damit ist die Installation des Tesseracts abgeschlossen.

2 Imagemagick installieren Führen Sie den folgenden Befehl aus, um Imagemagick zu installieren

sudo apt install imagemagick

Dieses Tool wird von der Kommandozeile aus mit dem Befehl convert verwendet. Um die korrekte Installation zu überprüfen, führen Sie den folgenden Befehl aus, und die Ausgabe sollte ähnlich wie in der Abbildung unten aussehen:

convert -h

Imagemagick installieren Führen Sie den folgenden Befehl aus, um Imagemagick zu installieren

3 Tesserakt Verwendung

Tesseract ist in der Lage, Bilder in vielen verschiedenen Formaten wie jpg, png, tiff, etc. aufzunehmen und Text daraus zu extrahieren. Dieser Abschnitt konzentriert sich auf das Laufen von Tesserakt und im nächsten Abschnitt werden wir sehen, wie wir die Genauigkeit verbessern können. Hier sind einige grundlegende Befehle zum Ausführen von tesseract :

Um die Ausgabe im Terminal zu erhalten, führen Sie den generischen Befehl mit dem Pfad des Bildes aus

tesseract [image_path] stdout

Um die OCR-Ausgabe in eine Datei zu speichern, führen Sie den folgenden allgemeinen Befehl aus:

tesseract [image_path] [file_name]

Die folgenden zwei Bilder zeigen das verwendete Bild und die Ausgabe der Ausführung der oben genannten Befehle auf diesem Bild

Beispieltext
Tesserakt-Verwendung

Wie Sie beobachten können, hat die Ausführung des zweiten Befehls zur Erstellung einer Datei namens „outfile.txt“ geführt, in der die Ausgabe zu finden ist.

4 Bildvorverarbeitung

Aus der vorherigen Ausgabe haben Sie vielleicht bemerkt, dass es einen Fehler in der Ausgabe gibt, und auch einen Fehler, der besagt, dass die Pixelgröße klein ist. Dies ist einer der Nachteile von Tesseract, es erwartet von Ihnen ein verarbeitetes Bild, an dem es OCR durchführen kann. In diesem Abschnitt gehen wir einige der Taktiken durch, die Sie mit Hilfe von imagemagick anwenden können, um die Qualität des Bildes zu verbessern und damit die Genauigkeit der Ausgabe zu erhöhen.

4.1 Größenänderung

Die Größenänderung ist einer der hilfreichsten Tricks zur Verbesserung der OCR-Genauigkeit. Das liegt daran, dass die meisten Bilder eine sehr kleine Schriftgröße haben, die von Tesseract nicht richtig gelesen werden kann. Sie können die Größe eines Bildes mit dem folgenden Befehl ändern. Der prozentuale Betrag gibt die Größenbeschränkung an. Da wir die Größe erhöhen wollen, müssen wir einen Wert größer als 100 angeben. Hier haben wir einen Wert von 150% angegeben ( benutzen Sie eine Trial-and-Error-Methode, um das perfekte Resizing % für Ihren Anwendungsfall zu bestimmen).

convert -resize 150% [input_file_path] [output_file_path]

Ersetzen Sie im obigen Befehl den [input_file_path] durch den Pfad des Bildes, das in der Größe verändert werden soll und [output_file_path] durch den Pfad des Bildes, in dem die Ausgabe gespeichert werden soll. Das folgende Bild ist die Ausgabe, wenn ich den Befehl ausgeführt habe: convert -resize 150% image7.png image7_resize.png

Bildvorverarbeitung - Größenänderung

4.2 Graustufenbilder verwenden

Wenn Sie ein farbiges Bild haben, dann ist es ratsam, es zuerst in Graustufen zu konvertieren. Es besteht eine gute Chance, dass genau dies ausreicht, um die gewünschte OCR-Genauigkeit zu erreichen. Ansonsten können Sie zur weiteren Verarbeitung die Graustufenbilder zur Binarisierung des Bildes verwenden. Benutzen Sie den folgenden Befehl, um Ihr Bild in Graustufen umzuwandeln

convert [input_file_path] -type Grayscale [output_file_path]

Das folgende Bild zeigt die Ausgabe zur Ausführung des Befehls convert image6_resize.png -type Grayscale image6_gray.png

Bildvorverarbeitung - Graustufen

4.3 Das Bild binarisieren

Bei der Binarisierung oder dem Thresholding wird das Bild in reine Schwarzweißwerte umgewandelt. Jedes Pixel in diesem Bild hat nur einen von zwei Werten, entweder schwarz oder weiß. Dies reduziert die Komplexität der Bilder drastisch. Wenn Sie Bilder mit Rauschen oder Bilder mit Schatten oder viel Text haben, können Sie diese Methode der Vorverarbeitung verwenden. Um dieses Bild zu binarisieren, stellen Sie sicher, dass Sie zuerst ein Graustufenbild haben, und verwenden Sie dann den folgenden Befehl:

convert [input_file_path] -threshold 55% [output_file_path]

Der Schwellenwert % kann variiert werden, um das beste Ergebnis für Ihren Anwendungsfall zu erhalten. Die folgende Abbildung zeigt ein Beispiel. Es ist wichtig zu beachten, dass für das vorliegende Bild die Binarisierung nicht die beste Option ist, da sie einige Daten verliert.

Das Bild binarisieren

Die folgenden Punkte müssen vor der Anwendung einer oder aller der oben genannten Vorverarbeitungstechniken beachtet werden:

  • Je nach Anwendungsfall ist eine oder eine Kombination der Vorverarbeitungsschritte sinnvoll.
  • Wenn ein Vorverarbeitungsschritt zu einer Verringerung der Genauigkeit führt, sollte er bei den Vorverarbeitungsschritten ignoriert werden.
  • Die Prozentsätze bei der Größenänderung oder dem Schwellenwert variieren von Bild zu Bild, und daher muss eine Trial-and-Error-Methode angewendet werden, um den bestmöglichen Prozentwert zu erhalten, um die höchste Genauigkeit zu erreichen, wenn Tesseract ausgeführt wird.

Wenn Sie die Vorverarbeitung abgeschlossen haben, lassen Sie Tesseract mit dem verarbeiteten Bild laufen, um die Genauigkeit zu überprüfen. Tesseract ist sehr mächtig, hat aber einige Einschränkungen, wenn es um die Art des Bildes geht, das als Eingabe gegeben wird. Ich hoffe, Sie fanden dieses Tutorial hilfreich.

Das könnte dich auch interessieren …