Recherche de site Web

7 meilleures bibliothèques Python OCR pour la conversion d'image en texte


La Reconnaissance optique de caractères (OCR) est une technologie qui extrait du texte lisible à partir d'images, de documents numérisés et même de notes manuscrites. En Python, les outils OCR ont considérablement évolué au fil des années et, avec la dernière version, ces bibliothèques offrent désormais des solutions encore plus puissantes et efficaces.

Cet article couvrira les sept principales bibliothèques OCR de Python, mettant en évidence leurs points forts, leurs fonctionnalités uniques et des exemples de code pour vous aider à démarrer.

1. Tesseract OCR (pytesseract)

Tesseract est sans aucun doute la bibliothèque OCR la plus populaire et la plus utilisée de l'écosystème Python. Développé à l'origine par HP et désormais géré par Google, Tesseract offre des fonctionnalités OCR de haute qualité dans plus de 100 langues.

Principales fonctionnalités :

  • Open source et gratuit à utiliser.
  • Prend en charge plusieurs langues, y compris les alphabets non latins.
  • Reconnaît le texte dans les images, les documents numérisés et les PDF.
  • Peut être personnalisé avec des données de formation personnalisées pour des cas d'utilisation spécialisés.
  • Fonctionne bien avec des outils de prétraitement tels que OpenCV pour améliorer la précision.

Pour installer Tesseract OCR sur Linux, suivez ces étapes en fonction de votre distribution :

sudo apt install tesseract-ocr     [On Debian, Ubuntu and Mint]
sudo yum install tesseract         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tesseract  [On Gentoo Linux]
sudo apk add tesseract             [On Alpine Linux]
sudo pacman -S tesseract           [On Arch Linux]
sudo zypper install tesseract      [On OpenSUSE]    
sudo pkg install tesseract         [On FreeBSD]

Une fois Tesseract installé, si vous souhaitez l'utiliser avec Python, vous devez installer le package pytesseract à l'aide du gestionnaire de packages pip.

pip3 install pytesseract
OR
pip install pytesseract

Voici un exemple de code Python pour utiliser Tesseract OCR avec la bibliothèque pytesseract pour extraire le texte d'une image.

import pytesseract
from PIL import Image

Load an image
img = Image.open("image_sample.png")

Use Tesseract to extract text
text = pytesseract.image_to_string(img)

Print the extracted text
print(text)

2. FacileOCR

EasyOCR est une autre excellente bibliothèque Python OCR qui prend en charge plus de 80 langues et est facile à utiliser pour les débutants. Il repose sur des techniques d’apprentissage profond, ce qui en fait un excellent choix pour ceux qui souhaitent tirer parti de la technologie OCR moderne.

Principales fonctionnalités :

  • Haute précision avec des modèles d'apprentissage profond.
  • Prend en charge un large éventail de langues.
  • Peut détecter du texte dans des images verticales et multilingues.
  • API simple et facile à comprendre.

Pour installer EasyOCR sur Linux, vous pouvez utiliser la commande pip suivante en fonction de votre distribution.

pip3 install easyocr
OR
pip install easyocr

Une fois l'installation terminée, vous pouvez utiliser EasyOCR pour extraire le texte d'une image.

import easyocr

Initialize the OCR reader
reader = easyocr.Reader(['en'])

Extract text from an image
result = reader.readtext('image_sample.png')

Print the extracted text
for detection in result:
    print(detection[1])

3.OCRopus

OCRopus est un système OCR open source développé par Google. Bien qu'il soit principalement utilisé pour les documents et les livres historiques, OCRopus peut également être appliqué à une grande variété de tâches d'extraction de texte.

Principales fonctionnalités :

  • Spécialisé dans l’analyse de la mise en page de documents et l’extraction de texte.
  • Construit dans un souci de modularité, permettant une personnalisation facile.
  • Peut fonctionner avec des documents de plusieurs pages et de grands ensembles de données.

Voici un exemple de code Python pour extraire le texte d'une image.

import subprocess

Use OCRopus to process an image
subprocess.run(['ocropus', 'identify', 'image_sample.png'])

4. PyOCR

PyOCR est un wrapper Python autour de plusieurs moteurs OCR, notamment Tesseract et CuneiForm. Il fournit une interface simple pour intégrer la fonctionnalité OCR dans les applications Python.

Principales fonctionnalités :

  • Peut s'interfacer avec plusieurs moteurs OCR.
  • Fournit une API simple pour l’extraction de texte.
  • Peut être combiné avec des bibliothèques de prétraitement d’images pour de meilleurs résultats.

PyOCR nécessite Tesseract (moteur OCR) et Pillow (bibliothèque de traitement d'image). Vous pouvez les installer à l'aide des commandes suivantes :

sudo apt install tesseract-ocr     [On Debian, Ubuntu and Mint]
sudo yum install tesseract         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tesseract  [On Gentoo Linux]
sudo apk add tesseract             [On Alpine Linux]
sudo pacman -S tesseract           [On Arch Linux]
sudo zypper install tesseract      [On OpenSUSE]    
sudo pkg install tesseract         [On FreeBSD]

Maintenant, vous pouvez installer les bibliothèques pyocr et pillow en utilisant pip :

pip3 install pyocr pillow
OR
pip install pyocr pillow

Voici un exemple Python qui extrait le texte d'une image à l'aide de PyOCR et Tesseract :

import pyocr
from PIL import Image

Choose the OCR tool (Tesseract or CuneiForm)
tool = pyocr.get_available_tools()[0]

Load the image
img = Image.open('image_sample.png')

Extract text from the image
text = tool.image_to_string(img)

Print the extracted text
print(text)

5. PaddleOCR

PaddleOCR est une bibliothèque OCR développée par PaddlePaddle, un framework d'apprentissage en profondeur. Il prend en charge plus de 80 langues et offre une précision de pointe grâce à son utilisation de modèles d'apprentissage en profondeur.

Principales fonctionnalités :

  • Hautes performances, notamment pour les images avec des arrière-plans complexes.
  • Prend en charge la détection de texte, la reconnaissance et l'analyse de la mise en page.
  • Comprend des modèles pré-entraînés pour une variété de langues.

Pour installer PaddleOCR sous Linux, utilisez :

pip3 install paddlepaddle paddleocr
OR
pip install paddlepaddle paddleocr

Voici un exemple Python qui extrait le texte d'une image à l'aide de la bibliothèque paddleocr :

from paddleocr import PaddleOCR

Initialize the OCR
ocr = PaddleOCR(use_angle_cls=True, lang='en')

Perform OCR on an image
result = ocr.ocr('image_sample.png', cls=True)

Print the extracted text
for line in result[0]:
    print(line[1])

6. Kraken

Kraken est une bibliothèque OCR hautes performances spécialement conçue pour les textes historiques et multilingues. Il est construit sur OCRopus et fournit des fonctionnalités supplémentaires pour les mises en page complexes et l'extraction de texte.

Principales fonctionnalités :

  • Idéal pour les livres anciens et l'OCR multilingue.
  • Gère les mises en page de texte complexes et les polices historiques.
  • Utilise l'apprentissage automatique pour une meilleure précision de reconnaissance.

Pour installer Kraken sous Linux, utilisez :

pip3 install kraken
OR
pip install kraken

Voici un exemple Python qui extrait le texte d'une image à l'aide de la bibliothèque kraken :

import kraken

Load the model and recognize text
text = kraken.binarize("image_sample.png")

Print the recognized text
print(text)

7. Texte (AWS)

AWS Texttract est le service OCR basé sur le cloud d'Amazon qui peut analyser des documents et des formulaires et extraire du texte avec une grande précision. Il s'intègre parfaitement aux autres services AWS.

Principales fonctionnalités :

  • OCR basé sur le cloud avec des solutions évolutives.
  • Prend en charge l'analyse de la structure des documents, y compris les tableaux et les formulaires.
  • Intégration avec les services AWS pour un traitement ultérieur des données.

Pour installer Textract sous Linux, utilisez :

pip3 install boto3
OR
pip install boto3

Voici un exemple de script Python qui utilise AWS Texttract pour extraire le texte d'un document (par exemple, un PDF numérisé ou un fichier image).

import boto3

Initialize a Textract client
client = boto3.client('textract')

Path to the image or PDF file you want to analyze
file_path = 'path_to_your_file.png'  # Replace with your file path

Open the file in binary mode
with open(file_path, 'rb') as document:
    # Call Textract to analyze the document
    response = client.detect_document_text(Document={'Bytes': document.read()})

Print the extracted text
for item in response['Blocks']:
    if item['BlockType'] == 'LINE':
        print(item['Text'])
Conclusion

Le choix de la bonne bibliothèque OCR en Python dépend du cas d'utilisation spécifique, des exigences linguistiques et de la complexité des documents que vous traitez. Que vous travailliez sur des documents historiques, des textes multilingues ou de simples PDF numérisés, ces bibliothèques fournissent des outils puissants d'extraction de texte.

Pour les débutants, Tesseract et EasyOCR sont d'excellents points de départ en raison de leur facilité d'utilisation et de leur large adoption. Cependant, pour les tâches plus avancées ou spécialisées, des bibliothèques telles que PaddleOCR, OCRopus et Kraken offrent une plus grande flexibilité et précision.

Articles connexes: