Heim > Backend-Entwicklung > Python-Tutorial > So identifizieren Sie Text in Bildern mit Python

So identifizieren Sie Text in Bildern mit Python

Freigeben: 2020-06-15 16:42:35
nach vorne
4786 Leute haben es durchsucht

So identifizieren Sie Text in Bildern mit Python

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/

So identifizieren Sie Text in Bildern mit Python

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.

So identifizieren Sie Text in Bildern mit Python

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:

So identifizieren Sie Text in Bildern mit Python

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
Nach dem Login kopieren

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:

So identifizieren Sie Text in Bildern mit Python

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)
Nach dem Login kopieren

Die Erkennungsergebnisse lauten wie folgt:

Do not go gentle into that good night!
Nach dem Login kopieren

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)
Nach dem Login kopieren

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:

So identifizieren Sie Text in Bildern mit Python

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
Nach dem Login kopieren

Wir ändern den Code wie folgt:

import pytesseract
# 识别文字
string = pytesseract.image_to_string('text.txt',)
print(string)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage