Erstellen Sie eine OCR-Umgebung nur mit Anaconda Ich weiß nicht, wie schwierig es ist, also suche ich nach einem einfachen Weg.
Windows10 Anaconda Python 3.6 Spyder 4.1.2
Nach der Untersuchung scheint es eine Methode von Tesseract + Pyocr für OCR mit Python zu geben Ich habe beschlossen, diese Methode auszuprobieren
tesseract Es handelt sich um eine OCR-Engine (Optical Character Recognition), die derzeit von Google entwickelt wird. Da v4.0 oder höher auf maschinellem LSTM basiert, In Anbetracht der Erkennungsrate scheint die neueste Version gut zu sein
pyocr OCR-Tool-Wrapper für Python Unterstützt auch Tesseract
Erstellen Sie eine Umgebung nur mit Anaconda und probieren Sie Python + OCR aus https://qiita.com/anzanshi/items/9ee94affecd74be33159
Ich habe es als Referenz verwendet, war aber wegen der unterschiedlichen Umgebung ein wenig süchtig danach.
Es scheint verschiedene Möglichkeiten zu geben, aber dieses Mal werde ich es mit Anaconda installieren
Tesseract befand sich im Conda-Forge-Repository https://anaconda.org/conda-forge/tesseract
Gehorsam installieren (v4.1.1 ab 14. April 2020)
conda install -c conda-forge tesseract
Dies ist ein selten gesehenes Repository namens brianjmcguirk ...? https://anaconda.org/brianjmcguirk/pyocr
Dies wird auch gehorsam installiert (dies ist derzeit v0.5)
conda install -c brianjmcguirk pyocr
Lesen Sie den obigen Artikel und überprüfen Sie den Code auf der offiziellen Seite
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]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'
langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))
# Ex: Will use lang 'fra'
# Note that languages are NOT sorted in any way. Please refer
# to the system locale settings for the default language
# to use.
Und das Ausführungsergebnis ist
Ausführungsergebnis
Will use tool 'Tesseract (sh)'
Available languages: eng, osd
Will use lang 'eng'
Es wird sein. Wie geschrieben steht, ist Japanisch noch nicht nur in Englisch OCR.
Lassen Sie uns jetzt OCR auf Japanisch machen
Laden Sie jpn.traineddata hier herunter Es scheint, dass sich der Ort gegenüber den alten Zeiten verändert hat, so dass es ein wenig schwierig war, ihn zu finden. https://github.com/tesseract-ocr/tessdoc/blob/master/Data-Files.md
Beachten Sie, dass die Daten je nach Version unterschiedlich sind! (Ich habe einmal einen Fehler gemacht ...)
Dies ist auch ein wenig mühsam ... In meiner Umgebung / Anaconda3 / envs / (Umgebungsname) / Library / bin / tessdata Ich konnte es lesen, als ich es darunter legte (Es gibt bereits eng.traineddata und osd.traineddata)
Es gibt auch ein Tessdata-Verzeichnis unter (Umgebungsname), Es scheint, dass dies nicht lesen wird
Führen Sie den Code erneut auf der offiziellen Seite aus
Ausführungsergebnis
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd
Will use lang 'eng'
"Jpn" wurde ebenfalls korrekt hinzugefügt Als nächstes werde ich Japanisch lesen
↓ Testbild
txt = tool.image_to_string(
Image.open('test.png'),
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )
Ausführungsergebnis
raise TesseractError(status, errors)
pyocr.error.TesseractError: (1, b"Error, unknown command line argument '-psm'\r\n")
Ein unerwarteter Fehler ist aufgetreten ... Dies war auch hilfreich für den Artikel der Person, die einen ähnlichen Fehler erhalten hat https://xkage.com/python-ocr.html
tesseract.pyとbuilders.py Ich konnte "-psm" in "--psm" umschreiben
txt = tool.image_to_string(
Image.open('test.png'),
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )
Ausführungsergebnis
Test Test
erledigt!
Sie können mit Anaconda eine Umgebung erstellen, aber ich bin ziemlich süchtig danach, weil es weniger Informationen gibt, als ich erwartet hatte. Nun, ich werde hart mit OCR spielen
Es gibt auch Informationen, dass pyocr nicht verwendet werden kann, wenn die Python-Version 3.7 ist. Es scheint sicher zu sein, eine Umgebung mit 3.6 zu erstellen
Recommended Posts