Tesseract
Texterkennung ist Teil von ORC und bedeutet optische Zeichenerkennung, die im Volksmund auch als Texterkennung bekannt ist. Tesseract ist ein Tool zur Texterkennung, indem wir es in Verbindung mit Python verwenden. Doch vorher müssen wir noch eine mühsame Aufgabe erledigen.
(1) Installation und Konfiguration von Tesseract
Tesseract herunterladen unter https://digi.bib.uni-mannheim.de/tesseract/
Es stehen viele Versionen zur Auswahl, die Sie nach Ihren eigenen Bedürfnissen auswählen können. Unter ihnen bedeutet w32 ein 32-Bit-System und w64 ein 64-Bit-System. Sie können einfach die entsprechende Version auswählen. Die Download-Geschwindigkeit ist möglicherweise langsam.
Bei der Installation müssen wir den Speicherort unserer Installation kennen und das Installationsverzeichnis in der Systempfadvariablen konfigurieren. Unser Pfad ist D:CodeFieldTesseract-OCR.
Wir klicken mit der rechten Maustaste auf „Arbeitsplatz/Dieser Computer“->Eigenschaften->Erweiterte Systemeinstellungen->Umgebungsvariablen->Pfad->Bearbeiten-> Erstellen Sie ein neues und kopieren Sie unseren Pfad hinein. Nach dem Hinzufügen der Systemvariablen müssen wir noch der Reihe nach auf OK klicken, damit die Konfiguration abgeschlossen ist.
(2) Laden Sie das Sprachpaket herunter
Tesseract unterstützt standardmäßig kein Chinesisch. Wenn Sie Chinesisch oder andere Sprachen erkennen möchten, müssen Sie das entsprechende Sprachpaket herunterladen wie folgt: https://tesseract -ocr.github.io/tessdoc/Data-Files, nach dem Aufrufen der Website scrollen wir nach unten:
Es gibt zwei chinesische Sprachen Pakete, ein Chinesisch-vereinfachtes und ein Chinesisch-Traditionelles, es sind vereinfachtes Chinesisch und traditionelles Chinesisch, wir können das auswählen, das wir herunterladen möchten. Nachdem der Download abgeschlossen ist, müssen wir ihn im Tessdata-Verzeichnis unter dem Pfad von Tesseract ablegen. Unser Pfad lautet D:CodeFieldTesseract-OCRtessdata.
(3) Weitere Modul-Downloads
Zusätzlich zu den oben genannten Schritten müssen wir auch zwei Module herunterladen:
pip install pytesseract pip install pillow
Das erste dient der Texterkennung, das zweite one One wird zum Lesen von Bildern verwendet. Als nächstes können wir eine Texterkennung durchführen.
Texterkennung
(1) Einzelbilderkennung
Der nächste Vorgang ist viel einfacher: Hier sind die Bilder, die wir erkennen möchten:
Der nächste Schritt ist unser Texterkennungscode:
import pytesseract from PIL import Image # 读取图片 im = Image.open('sentence.jpg') # 识别文字 string = pytesseract.image_to_string(im) print(string)
Die Erkennungsergebnisse lauten wie folgt:
Do not go gentle into that good night!
Da standardmäßig Englisch unterstützt wird , Damit wir es direkt erkennen können, aber wenn wir Chinesisch oder andere Sprachen erkennen möchten, müssen wir einige Änderungen vornehmen:
import pytesseract from PIL import Image # 读取图片 im = Image.open('sentence.png') # 识别文字,并指定语言 string = pytesseract.image_to_string(im,) print(string)
Während der Erkennung setzen wir lang='chi_sim', also die Sprache zu vereinfachtem Chinesisch. Diese Einstellung wird nur wirksam, wenn sich in Ihrem tessdata-Verzeichnis ein Paket für vereinfachtes Chinesisch befindet. Das Folgende ist das Bild, das wir zur Erkennung verwendet haben:
Die Erkennungsergebnisse sind wie folgt:
Gehen Sie nicht demütig in diese gute Nacht
Der Bildinhalt wurde genau identifiziert. Eine Sache, die wir wissen müssen, ist, dass Tesseract immer noch englische Zeichen erkennen kann, nachdem wir die Sprache auf vereinfachtes Chinesisch oder andere Sprachen eingestellt haben.
(2) Stapelbilderkennung
Da wir nun die Einzelbilderkennung aufgelistet haben, müssen wir über die Funktion der Stapelbilderkennung verfügen, was die Vorbereitung einer TXT-Datei erfordert, wie ich sie habe eine text.txt-Datei mit folgendem Inhalt:
sentenceSo identifizieren Sie Text in Bildern mit Python sentenceSo identifizieren Sie Text in Bildern mit Python
Wir ändern den Code wie folgt:
import pytesseract # 识别文字 string = pytesseract.image_to_string('text.txt',) print(string)
Allerdings ist das Schreiben einer TXT-Datei selbst etwas mühsam, daher können wir sie ändern wie folgt:
import os import pytesseract # 文字图片的路径 path = 'text_img/' # 获取图片路径列表 imgs = [path + i for i in os.listdir(path)] # 打开文件 f = open('text.txt', 'w+', encoding='utf-8') # 将各个图片的路径写入text.txt文件当中 for img in imgs: f.write(img + '\n') # 关闭文件 f.close() # 文字识别 string = pytesseract.image_to_string('text.txt',) print(string)
Auf diese Weise müssen wir nur das Stammverzeichnis eines Textbilds übergeben, um die Stapelerkennung durchzuführen. Während des Tests wurde festgestellt, dass Tesseract elegante Schriftarten wie Handschrift und normale Schrift nicht genau erkannte und auch die Erkennung einiger komplexer Zeichen verbessert werden muss.
Allerdings ist die Erkennungsgenauigkeit von Schriftarten mit strengen Strichen wie Song-Dynastie und Blockschrift sehr hoch. Wenn die Neigung des Bildes außerdem einen bestimmten Winkel überschreitet, sind die Erkennungsergebnisse sehr unterschiedlich.
Weitere Informationen zu diesem Thema finden Sie in der Spalte Python-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo identifizieren Sie Text in Bildern mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!