Extraire du texte d'images avec Python

Aperçu

Lisez les données d'image avec Python et convertissez-les en données texte avec OCR.

environnement

Python Cet article a utilisé Python 2.7.

Tesseract-ocr C'est un moteur OCR. J'ai utilisé Tesseract-ocr 3.0.4. Si vous souhaitez installer sur MacOS X, consultez également Installation des outils de formation tesseract-ocr sur MacOS X.

pyocr Un wrapper pour utiliser le moteur OCR de Python. Il existe de nombreux wrappers similaires à rechercher, mais j'en ai essayé quelques-uns et j'ai choisi celui pour lequel il semblait facile d'écrire du code. Le référentiel est ici.

$ pip install pyocr

PIL Une bibliothèque pour gérer les images en Python. J'ai installé et utilisé Pillow.

$ pip install pillow

Exemple de code

Le code qui lit le texte de l'image et le produit en fonction de l'exemple de code est comme ceci.

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

La partie de tesseract_layout = 6 n'est pas écrite dans le document, mais c'est la même chose que l'option -psm 6 de la commande de tesseract. C'est une option pour supposer quel type de mise en page analyser. Choisir le bon améliorera considérablement la précision de l'extraction de la boîte. La valeur par défaut est -psm 3, qui est automatiquement déterminée, mais il est préférable de la spécifier si possible.

Si vous utilisez les données de langage distribuées par tesseract-ocr telles quelles, le résultat est terrible au point que vous vous inquiétez de savoir si elles peuvent être lues correctement. Cependant, si vous utilisez des données linguistiques correctement formées, la précision s'améliorera en conséquence.

Recommended Posts

Extraire du texte d'images avec Python
Extraire des chaînes de fichiers avec Python
Télécharger des images à partir de la liste d'URL en Python
Lire des caractères dans des images avec Python OCR
[Python] (Line) Extraire les valeurs des images graphiques
Charger des images à partir d'une URL à l'aide de Pillow dans Python 3
Traitement de texte UTF8 avec python
Encodage base64 des images en Python 3
OCR à partir de PDF en Python
Parler avec Python [synthèse vocale]
Extraire plusieurs doublons de liste en Python
Reconnaissance des nombres dans les images avec Python
J'ai essayé de [gratter] des images de mode et des phrases de texte avec Python.
Manipulation des pixels d'image en Python
GOTO en Python avec Sublime Text 3
Obtenir des données de Quandl en Python
Comment collecter des images en Python
Générer des images de texte multilingues à l'aide de Python
[Python] Extrayez des données texte à partir de données XML de 10 Go ou plus.
Trier les gros fichiers texte en Python
Publier une image de Python sur Tumblr
Lire et écrire du texte en Python
Travailler avec des images DICOM en Python
Extraire le texte du pdf [python] et lire les caractères à haute voix avec Open-Jtalk
Extraire des images des ensembles de données Cifar et CUCUMBER-9
Appliquer diverses formes de mosaïques aux images (Python, OpenCV)
Relancé de "pas d'accès Internet" en Python
Empêcher le double lancement de cron en Python
# 5 [python3] Extraire des caractères d'une chaîne de caractères
Extraire du texte japonais d'un PDF avec PDFMiner
Comment extraire une zone de polygone en Python
Obtenez le niveau de la batterie de SwitchBot avec Python
Générer une classe à partir d'une chaîne en Python
Générer un langage C à partir d'une expression S avec Python
Essayez de fouiller votre journal avec Python
Convertir de Markdown en HTML en Python
Obtenez la probabilité de précipitation de XML avec Python
Débarrassez-vous des images DICOM en Python
Obtenir l'historique des métriques de MLflow en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Lecture à partir de fichiers texte et SQLite avec Python (+ Pandas), R, Julia (+ DataFrames)
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
Époque en Python
Discord en Python
Allemand en Python
sql à sql
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Extraire tous les n éléments d'un tableau (liste) en Python et Ruby
Constante en Python
MeCab de Python