Créez un environnement OCR avec Anaconda seul Je ne sais pas à quel point c'est difficile, alors je cherche un moyen facile.
Windows10 Anaconda Python 3.6 Spyder 4.1.2
Après enquête, il semble y avoir une méthode de tesseract + pyocr pour OCR avec Python, donc J'ai décidé d'essayer cette méthode
tesseract Il s'agit d'un moteur OCR (reconnaissance optique de caractères) en cours de développement par Google. La version 4.0 ou ultérieure étant basée sur le machine learning LSTM, Compte tenu du taux de reconnaissance, la dernière version semble être bonne
pyocr Encapsuleur d'outil OCR pour Python Prend également en charge tesseract
Créez un environnement uniquement avec Anaconda et essayez Python + OCR https://qiita.com/anzanshi/items/9ee94affecd74be33159
Je l'ai utilisé comme référence, mais j'étais un peu accro à cause de la différence d'environnement.
Il semble y avoir plusieurs façons, mais cette fois je vais l'installer avec Anaconda
tesseract était dans le référentiel conda-forge https://anaconda.org/conda-forge/tesseract
Installez docilement (v4.1.1 à partir du 14 avril 2020)
conda install -c conda-forge tesseract
C'est un référentiel rarement vu appelé brianjmcguirk ...? https://anaconda.org/brianjmcguirk/pyocr
Ceci est également installé docilement (c'est actuellement v0.5)
conda install -c brianjmcguirk pyocr
Reportez-vous à l'article ci-dessus et vérifiez avec le code sur la page officielle
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.
Et le résultat de l'exécution est
Résultat d'exécution
Will use tool 'Tesseract (sh)'
Available languages: eng, osd
Will use lang 'eng'
Ce sera. Tel qu'il est écrit, le japonais n'est pas encore OCR en anglais uniquement.
Maintenant, faisons l'OCR en japonais
Téléchargez jpn.traineddata à partir d'ici Il semble que l'endroit ait changé par rapport à l'ancien temps, donc c'était un peu difficile à trouver. https://github.com/tesseract-ocr/tessdoc/blob/master/Data-Files.md
Notez que les données diffèrent selon la version! (J'ai fait une erreur une fois ...)
C'est aussi un peu gênant ... Dans mon environnement / Anaconda3 / envs / (nom de l'environnement) / Library / bin / tessdata J'ai pu le lire quand je l'ai mis en dessous (Il existe déjà eng.traineddata et osd.traineddata)
Il existe également un répertoire tessdata sous (nom de l'environnement), Il semble que cela ne lira pas
Exécutez à nouveau le code sur la page officielle
Résultat d'exécution
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd
Will use lang 'eng'
"Jpn" a également été ajouté correctement Ensuite, je lirai le japonais
↓ Image de test
txt = tool.image_to_string(
Image.open('test.png'),
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )
Résultat d'exécution
raise TesseractError(status, errors)
pyocr.error.TesseractError: (1, b"Error, unknown command line argument '-psm'\r\n")
Une erreur inattendue s'est produite ... Cela a également été utile pour l'article de la personne qui a eu une erreur similaire https://xkage.com/python-ocr.html
tesseract.pyとbuilders.py J'ai pu réécrire "-psm" dans "--psm"
txt = tool.image_to_string(
Image.open('test.png'),
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )
Résultat d'exécution
Test de test
l'a fait!
Vous pouvez créer un environnement avec Anaconda, mais j'y suis assez accro car il y a moins d'informations que ce à quoi je m'attendais. Eh bien, je vais jouer dur avec l'OCR
Il existe également des informations selon lesquelles pyocr ne peut pas être utilisé si la version python est 3.7. Il semble sûr de créer un environnement avec 3.6
Recommended Posts