Text aus Bildern extrahieren mit Python

Wie extrahiert man Text aus Bildern mit Python?

OCR (Optical Character Recognition) ist der Prozess der elektronischen Umwandlung von digitalen Bildern in maschinencodierten Text. Bei dem digitalen Bild handelt es sich im Allgemeinen um ein Bild, das Bereiche enthält, die Zeichen einer Sprache ähneln. OCR ist ein Forschungsgebiet in den Bereichen Mustererkennung, künstliche Intelligenz und Computer Vision. Dies ist darauf zurückzuführen, dass neuere OCR-Systeme durch die Bereitstellung von Beispieldaten trainiert werden, die über einen maschinellen Lernalgorithmus laufen. Diese Technik der Textextraktion aus Bildern wird im Allgemeinen in Arbeitsumgebungen eingesetzt, in denen es sicher ist, dass das Bild Textdaten enthalten würde. In diesem Artikel werden wir uns mit der Extraktion von Text aus Bildern beschäftigen. Wir werden dazu die Programmiersprache Python verwenden.

Damit unser Python-Programm über Zeichenerkennungsfähigkeiten verfügt, werden wir die OCR-Bibliothek pytesseract verwenden. Die Bibliothek kann in unserer Python-Umgebung installiert werden, indem der folgende Befehl im Befehlsinterpreter des Betriebssystems ausgeführt wird:

pip install pytesseract

Die Bibliothek (sofern sie unter Windows verwendet wird) erfordert, dass die Binärdatei tesseract.exe ebenfalls vorhanden ist, damit die Bibliothek ordnungsgemäß installiert werden kann. Während der Installation der oben erwähnten ausführbaren Datei werden wir aufgefordert, einen Pfad für sie anzugeben. Diesen Pfad muss man sich merken, da er später im Code verwendet wird. Bei den meisten Installationen lautet der Pfad C:\Program Files (x86)\\Tesseract-OCR\\tesseract.exe.

Erläuterung:

Zunächst importierten wir das Image-Modul aus der PIL-Bibliothek (zum Öffnen eines Bildes) und dann das pytesseract-Modul aus der pytesseract-Bibliothek (zur Textextraktion). Danach haben wir die Variable path_to_tesseract definiert, die den Pfad zur ausführbaren Binärdatei (tesseract.exe) enthält, die wir in der Voraussetzung installiert haben (dieser Pfad hängt von dem Ort ab, an dem die Binärdatei installiert ist). Dann haben wir die Variable image_path definiert, die den Pfad zu der Bilddatei enthält. Dieser Pfad wird an die Funktion open() übergeben, um ein Image-Objekt aus unserem Image zu erstellen. Danach haben wir der Variable pytesseract.tesseract_cmd den in der Variable path_to_tesseract gespeicherten Pfad zugewiesen (dieser wird von der Bibliothek verwendet, um die ausführbare Datei zu finden und sie für die Extraktion zu verwenden). Danach übergeben wir das Bildobjekt (img) an die Funktion image_to_string(). Diese Funktion nimmt als Argument ein Bildobjekt und gibt den darin erkannten Text zurück. Am Ende haben wir den Text, der im Bild gefunden wurde, mit text[:-1] angezeigt (aufgrund eines zusätzlichen Zeichens (^L), das standardmäßig angehängt wird).

Der vollständige Code:


from PIL import Image 
from pytesseract import pytesseract 
  
path_to_tesseract = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image_path = r"path\img.png"
 
img = Image.open(image_path) 
  
pytesseract.tesseract_cmd = path_to_tesseract 

text = pytesseract.image_to_string(img) 
  
# Gibt the Text in der Console aus
print(text[:-1])

Zusammenfassung

OCR ist der Prozess der elektronischen Umwandlung von Bildern in Text. Wie das obige Beispiel zeigt, ist es mit wenigen Zeilen Python-Code möglich, Texte aus Bildern zu extrahieren. Dazu wird das Programm tesseract.exe benötigt, das kostenlos heruntergeladen werden kann.

Kommentar verfassen

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