[PYTHON] Créer un environnement OCR japonais avec Anaconda (tesseract + pyocr)

Aperçu

Créez un environnement OCR avec Anaconda seul Je ne sais pas à quel point c'est difficile, alors je cherche un moyen facile.

environnement

Windows10 Anaconda Python 3.6 Spyder 4.1.2

À propos de Tesseract et Pyocr

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

référence

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.

Installation de tesseract

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

Installez pyocr

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

Essayez d'exécuter le code sur la page officielle

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.

Création d'un environnement OCR japonais

Maintenant, faisons l'OCR en japonais

Télécharger les données apprises

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 ...)

Mettez-le au bon endroit

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

Ré-exécuter

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 test.PNG

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"

Courez à nouveau

test.PNG

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!

Résumé

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

Supplément

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

Créer un environnement OCR japonais avec Anaconda (tesseract + pyocr)
[Python] Créez un environnement virtuel avec Anaconda
Créez un environnement virtuel avec Anaconda installé via Pyenv
Créez un environnement virtuel avec Python!
Créer un environnement virtuel avec conda avec Python
Créer un environnement de construction python3 avec Sublime Text3
[Memo] Créez un environnement virtuel avec Pyenv + anaconda
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Créez un environnement de développement python avec vagrant + ansible + fabric
environnement en ligne de serveur de code (2) Créer un réseau virtuel avec Boto3
Remarques sur la création d'un environnement virtuel avec Anaconda Navigator
Créer un environnement django avec docker-compose (MariaDB + Nginx + uWSGI)
Créez un environnement d'apprentissage automatique à partir de zéro avec Winsows 10
Créer un environnement avec virtualenv
Créer une page d'accueil avec django
Créer un répertoire avec python
Créez un environnement de développement Python simple avec VSCode et Docker Desktop
Créer une application Todo avec Django ① Créer un environnement avec Docker
Comment créer rapidement un environnement d'apprentissage automatique à l'aide de Jupyter Notebook avec UbuntuServer 16.04 LTS avec Anaconda
Créer un environnement Kubernetes avec Ansible 2
Créer un environnement d'exécution Windows Python avec VScode + Remote WSL
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
Créer un environnement Python sur Mac (2017/4)
Essayez de créer un environnement python avec Visual Studio Code et WSL
Créer un environnement virtuel avec Python 3
Créer un environnement Linux sur Windows 10
Créer un environnement python dans centos
Créez un stepper de poisson avec numpy.random
Créer un environnement Kubernetes avec Ansible 1
Étapes rapides pour créer un environnement d'apprentissage automatique à l'aide de Jupyter Notebook sur macOS Sierra avec anaconda
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
Créer un téléchargeur de fichiers avec Django
[AWS] Créez un environnement Python Lambda avec CodeStar et faites Hello World
Procédure de création d'un environnement virtuel Python avec VS Code sous Windows
Créez un environnement Python 3 avec pyenv sur Mac et affichez des graphiques Network X
Procédure de création d'un environnement Django avec Win10 WSL Ubuntu18.04 + Anaconda + Apache2
[Pyenv] Construire un environnement python avec ubuntu 16.04
Créer un décorateur de fonction Python avec Class
Changer l'environnement Python 64 bits en environnement 32 bits avec Anaconda
Créez facilement un environnement de développement avec Laragon
Vue.js + Mémorandum de construction de l'environnement Flask ~ avec Anaconda3 ~
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Créez un environnement python sur votre Mac
Créons un environnement virtuel pour Python
Créons un groupe gratuit avec Python
Créer une application graphique avec Tkinter de Python
Création d'un environnement Python 3.6 avec Windows + PowerShell
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
Créez un environnement d'API rapide avec docker-compose
Remarques sur la réalisation de l'OCR japonais avec Python