Lesen Sie Bilddaten mit Python und konvertieren Sie sie mit OCR in Textdaten.
Python In diesem Artikel wurde Python 2.7 verwendet.
Tesseract-ocr Es ist eine OCR-Engine. Tesseract-ocr Ich habe 3.0.4 verwendet. Wenn Sie unter MacOS X installieren möchten, lesen Sie auch Installieren von Tesseract-OCR-Trainingstools unter MacOS X.
pyocr Ein Wrapper zur Verwendung der OCR-Engine von Python. Es gibt viele ähnliche Wrapper, nach denen man suchen muss, aber ich habe einige ausprobiert und den ausgewählt, für den es einfach zu sein scheint, Code zu schreiben. Das Repository ist hier.
$ pip install pyocr
PIL Eine Bibliothek zum Behandeln von Bildern in Python. Ich habe Pillow installiert und verwendet.
$ pip install pillow
Der Code, der den Text aus dem Bild liest und basierend auf dem Beispielcode ausgibt, ist wie folgt.
pyocr_sample.py
from PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
txt = tool.image_to_string(
Image.open('sample.png'),
lang="jpn+eng",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print txt
Der Teil von tesseract_layout = 6 ist nicht im Dokument geschrieben, entspricht jedoch der Option -psm 6
des Befehls von tesseract. Es ist eine Option anzunehmen, welche Art von Layout analysiert werden soll. Durch die Auswahl des richtigen wird die Genauigkeit der Kistenextraktion erheblich verbessert. Der Standardwert ist "-psm 3", der automatisch ermittelt wird. Es ist jedoch besser, ihn nach Möglichkeit anzugeben.
Wenn die von tesseract-ocr verteilten Sprachdaten so verwendet werden, wie sie sind, ist das Ergebnis auf einer Ebene schrecklich, die mich fragen lässt, ob sie richtig gelesen werden können. Wenn Sie jedoch ordnungsgemäß trainierte Sprachdaten verwenden, verbessert sich die Genauigkeit entsprechend.
Recommended Posts