Passer au contenu du pied de page
OUTILS OCR

Easyocr vs Tesseract (Comparaison des fonctionnalités d'OCR)

La reconnaissance optique de caractères (OCR) est la technologie qui aide à traiter les documents, tels que les documents papier numérisés, les fichiers PDF ou les images haute résolution capturées par caméra, en données imprimables et consultables. La reconnaissance des caractéristiques du texte extrait et les opérations morphologiques permettent à l'OCR d'automatiser la saisie des données, ce qui accélère le processus de traitement de l'information et le rend plus précis.

L'OCR scanne le document, reconnaît les caractères, tels que des lettres, des chiffres ou des symboles, et les traduit en un format lisible par machine. Ses usages incluent la numérisation de livres, le traitement de formulaires, l'automatisation du flux de travail documentaire et l'amélioration de l'accessibilité pour les personnes aveugles. Avec le développement de l'apprentissage profond et de l'IA, les moteurs OCR sont devenus très précis dans la reconnaissance de formats complexes, de documents multilingues et même d'images de mauvaise qualité.

Les outils et bibliothèques OCR populaires, comme EasyOCR, Tesseract OCR, Keras-OCR, et IronOCR, sont couramment utilisés pour intégrer cette fonctionnalité dans les applications modernes.

EasyOCR

EasyOCR est une bibliothèque Python open-source qui vise à rendre l'extraction de texte à partir d'images simple et efficace. Il utilise des techniques d'apprentissage profond et prend en charge plus de 80 langues, y compris le latin, le chinois, l'arabe, et bien d'autres. Son API est suffisamment simple pour que quiconque puisse facilement intégrer la fonctionnalité de prédiction OCR dans ses applications sans beaucoup de configuration. Avec EasyOCR Tesseract, on peut faire une simple numérisation de documents, une reconnaissance de plaques d'immatriculation, ou même extraire du texte d'une image.

EasyOCR est bien connu pour ses capacités robustes de reconnaissance de texte, notamment avec du texte multiligne et des images de faible qualité. Par conséquent, il est adapté aux cas d'utilisation dans le monde réel, ne nécessitant que peu de dépendances. Il est léger et fonctionne efficacement sans besoin de GPU sur le matériel moderne, ce qui le rend très attirant pour les développeurs ayant besoin de capacités OCR flexibles.

Fonctionnalités de EasyOCR

Il y a plusieurs fonctionnalités qui font de EasyOCR un utilitaire OCR complet et puissant :

  • Reconnaît plus de 80 langues : EasyOCR peut lire le chinois, le japonais, le coréen, l'arabe, les langues à base de latin, et bien d'autres incluant des mots et langues complexes.

  • Reconnaissance avancée basée sur l'apprentissage profond : Il prend en charge des techniques avancées d'apprentissage profond avec des performances et une précision élevées, en particulier dans les mises en page de texte bruyantes ou déformées et les images.

  • API simple : Cette API facile à utiliser permet aux utilisateurs d'obtenir rapidement des capacités OCR dans une application sans configuration supplémentaire.

  • Détection de texte multiligne : Il reconnaît plusieurs lignes de texte, ce qui est utile pour des documents, des livres ou des panneaux multiligne.

  • Léger : Il fonctionne bien sur le CPU et peut exploiter un GPU pour des performances améliorées, tout en restant fonctionnel avec du matériel de base.

  • Pré-traitement d'image : Des outils de prétraitement d'image de base sont disponibles pour nettoyer la sortie OCR à partir d'images bruyantes ou de basse résolution.

  • Déploiement flexible : Fonctionne sur diverses plates-formes et est relativement simple à intégrer dans les applications Python.

Installation

EasyOCR peut être installé à l'aide de pip, le gestionnaire de paquets de Python. Assurez-vous que toutes les dépendances ont été satisfaites au préalable. Les dépendances essentielles incluent les bibliothèques PyTorch : torch et torchvision. Celles-ci peuvent être installées conjointement avec EasyOCR :

Installer EasyOCR : Ouvrez un terminal ou une ligne de commande et entrez la commande :

pip install easyocr
pip install easyocr
SHELL

Installer PyTorch, si non installé (requis par EasyOCR) : EasyOCR fonctionne sur PyTorch. Si non installé automatiquement dans votre environnement, suivez le guide officiel d'installation de PyTorch.

Une fois installé, vous serez prêt à utiliser EasyOCR pour des tâches d'extraction de texte.

Image OCR à l'aide de EasyOCR

Ce qui suit est un exemple de code Python démontrant comment utiliser EasyOCR pour effectuer un OCR sur une image :

import easyocr
import matplotlib.pyplot as plt
import cv2

# Initialize the EasyOCR reader with the English language specified
reader = easyocr.Reader(['en'])  # Specify the languages (e.g., 'en' for English)

# Load the image
image_path = 'sample_image.png'  # Path to the image
image = cv2.imread(image_path)

# Perform OCR on the image
result = reader.readtext(image_path)

# Print detected text and its bounding boxes
for (bbox, text, prob) in result:
    print(f"Detected Text: {text} (Confidence: {prob:.4f})")

# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
    # Unpack the bounding box
    top_left, top_right, bottom_right, bottom_left = bbox
    top_left = tuple(map(int, top_left))
    bottom_right = tuple(map(int, bottom_right))

    # Draw a rectangle around the text
    cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)

# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
import easyocr
import matplotlib.pyplot as plt
import cv2

# Initialize the EasyOCR reader with the English language specified
reader = easyocr.Reader(['en'])  # Specify the languages (e.g., 'en' for English)

# Load the image
image_path = 'sample_image.png'  # Path to the image
image = cv2.imread(image_path)

# Perform OCR on the image
result = reader.readtext(image_path)

# Print detected text and its bounding boxes
for (bbox, text, prob) in result:
    print(f"Detected Text: {text} (Confidence: {prob:.4f})")

# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
    # Unpack the bounding box
    top_left, top_right, bottom_right, bottom_left = bbox
    top_left = tuple(map(int, top_left))
    bottom_right = tuple(map(int, bottom_right))

    # Draw a rectangle around the text
    cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)

# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
PYTHON

L'image ci-dessous est la sortie générée à partir du code ci-dessus.

EasyOCR vs Tesseract  (Comparaison des fonctionnalités OCR): Figure 3 - Résultat de EasyOCR

Tesseract

Tesseract est l'un des moteurs de reconnaissance optique de caractères open-source les plus populaires, prenant en charge plusieurs options d'hyperparamètres pour la personnalisation. Il peut être accessible à partir d'applications Python à l'aide de pytesseract. Le développement de Tesseract a été initié par Hewlett-Packard et plus tard amélioré par Google. Il est très polyvalent, capable d'extraire du texte d'images et de fichiers PDF dans plus de 100 langues. Le wrapper Python permet une interaction transparente avec Tesseract via pytesseract.

EasyOCR vs Tesseract  (Comparaison des fonctionnalités OCR): Figure 4 - Tesseract

Tesseract est réputé pour sa capacité à détecter et extraire le texte imprimé par machine. Il offre des capacités de reconnaissance multilingue, supporte l'entraînement sur de nouvelles polices de caractère, et effectue une analyse de la mise en page du texte. Tesseract est largement utilisé dans la numérisation de documents, le scan de reçus, l'automatisation de la saisie des données, et la possibilité de créer des PDF consultables. En Python, Tesseract forme une combinaison puissante pour les développeurs travaillant sur des tâches liées à l'OCR.

Fonctionnalités de Tesseract OCR

Les fonctionnalités notables de pytesseract incluent :

  • Support multilingue : Tesseract peut lire plus de 100 langues, et pytesseract offre un support OCR multilingue facile dans les scripts Python. Il permet également l'entraînement pour des polices et langues personnalisées supplémentaires, étendant ses capacités.

  • Conversion d'image en texte : Pytesseract extrait le contenu texte de divers formats d'image comme PNG, JPEG, BMP, GIF, et TIFF, activant l'OCR sur des sources diverses.

  • Transformation de PDF en PDF consultable : Tesseract lit le texte d'un fichier PDF et le convertit en un format consultable, permettant aux utilisateurs d'indexer le contenu des documents numérisés.

  • Reconnaissance de mises en page complexes : Il peut lire des mises en page complexes, y compris les documents à colonnes multiples et les tableaux, extrayant le texte de formats non standard de manière plus précise.

  • Configuration personnalisée : Les utilisateurs peuvent passer des paramètres de configuration personnalisés de Tesseract à travers pytesseract pour affiner la performance de l'OCR, utilisant des modes de reconnaissance ou des attributs d'image appropriés.

  • API simple : L'API simple dans pytesseract facilite pour les développeurs l'ajout de l'OCR aux projets Python avec un minimum de code d'interaction.

Cette bibliothèque fonctionne bien avec d'autres bibliothèques, comme OpenCV, PIL (Python Imaging Library), ou NumPy, pour le prétraitement d'images afin d'améliorer la précision de l'OCR.

Installation

Après avoir installé Tesseract, installez le package pytesseract à l'aide de pip :

pip install pytesseract
pip install pytesseract
SHELL

EasyOCR vs Tesseract  (Comparaison des fonctionnalités OCR): Figure 5 - pytesseract

Image OCR à l'aide de pytesseract

Voici un exemple de code Python utilisant pytesseract pour effectuer un OCR sur une image :

import pytesseract
from PIL import Image

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'

# Open the image and perform OCR
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)

# Print the extracted text
print(text)
import pytesseract
from PIL import Image

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'

# Open the image and perform OCR
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)

# Print the extracted text
print(text)
PYTHON

Ci-dessous la sortie générée à partir du code ci-dessus.

EasyOCR vs Tesseract  (Comparaison des fonctionnalités OCR): Figure 6 - Résultat de Tesseract

IronOCR

IronOCR est une puissante bibliothèque de reconnaissance optique de caractères qui permet aux développeurs .NET d'utiliser IronOCR pour une extraction de texte efficace à partir d'images, de PDF, et d'autres formats de documents. Des algorithmes avancés offrent une grande précision même pour des mises en page complexes ou des environnements multilingues, prenant en charge les formats JPEG, PNG, GIF, et TIFF. La bibliothèque offre des paramètres configurables, permettant d'affiner le processus du moteur OCR avec des paramètres tels que la résolution d'image ou l'orientation du texte.

La fonctionnalité de prétraitement d'image assure que de meilleures images d'entrée de qualité entraînent une plus grande précision de reconnaissance et par la suite des documents de sortie comme la conversion de PDF consultables pour une récupération d'information facilitée. Avec son intégration transparente dans les applications web, IronOCR est un choix fort pour les développeurs cherchant à implémenter des solutions fiables d'extraction de texte et de numérisation de documents à travers différents domaines.

Fonctionnalités de IronOCR

  • Haute précision : Utilise des algorithmes avancés pour fournir des niveaux élevés de précision dans la reconnaissance de texte indépendamment de la complexité des documents ou de l'utilisation de polices.

  • Support de multiples formats : Accepte des formats d'image comme JPEG, PNG, GIF, et TIFF, en plus des PDF, pour plus de polyvalence dans les applications.

  • Reconnaissance multilingue : Supporte l'OCR multilingue, délivrant des résultats précis dans divers contextes linguistiques.

  • Préservation de la mise en page du texte : Maintient la mise en page originale du document, garantissant que le texte extrait conserve sa structure formatée.

  • OCR configurable : Offre des paramètres configurables pour la résolution d'image, l'orientation du texte, et plus encore, permettant aux développeurs d'optimiser la performance de l'OCR pour des images spécifiques.

  • Prétraitement d'image : Inclut des outils basiques pour améliorer les images, tels que la suppression du bruit, l'ajustement du contraste, et le redimensionnement, pour améliorer la précision de l'OCR.

  • Conversion de PDF consultable : Convertit directement des images scannées et des documents en PDF consultables pour une gestion et une récupération des données efficaces.

  • Intégration facile : Facilite une intégration directe dans les applications .NET, permettant aux utilisateurs d'ajouter facilement des fonctionnalités OCR.

  • Traitement par lots : Supporte le traitement de plusieurs images ou documents simultanément, utile pour traiter de gros volumes de données.

Installation

Pour installer IronOCR, ouvrez le gestionnaire de paquets NuGet dans Visual Studio, démarrez un nouveau projet, recherchez "IronOCR", sélectionnez la dernière version, et cliquez sur Installer.

EasyOCR vs Tesseract  (Comparaison des fonctionnalités OCR): Figure 7 - Installer le package de langue français

Exemple de code utilisant IronOCR

Le code C# suivant montre comment utiliser IronOCR pour le traitement OCR :

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add languages to the OCR engine
        Ocr.Language = OcrLanguage.English;

        // Define the path to the input image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            var result = Ocr.Read(input);

            // Display the extracted text
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add languages to the OCR engine
        Ocr.Language = OcrLanguage.English;

        // Define the path to the input image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            var result = Ocr.Read(input);

            // Display the extracted text
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize IronTesseract engine
		Dim Ocr = New IronTesseract()

		' Add languages to the OCR engine
		Ocr.Language = OcrLanguage.English

		' Define the path to the input image
		Dim inputFile = "path\to\your\image.png"

		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			Dim result = Ocr.Read(input)

			' Display the extracted text
			Console.WriteLine("Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Évaluation comparative

Haute Précision

IronOCR se distingue par sa précision avec des mises en page complexes, des images bruyantes et des textes de basse résolution par rapport à Tesseract ou EasyOCR. Ses outils intégrés de prétraitement d'image, tels que la réduction du bruit et les ajustements de contraste, contribuent à atteindre une grande précision dans des applications du monde réel.

Multi-format et Préservation de la mise en page

IronOCR excelle dans le traitement de divers formats d'image, de fichiers PDF, et de mises en page à colonnes multiples tout en préservant la structure et le formatage originaux des documents. Il est bien adapté aux projets où la préservation de la mise en page est primordiale.

Sa capacité à convertir directement des images et des documents scannés en PDFs entièrement consultables sans dépendre d'outils ou bibliothèques supplémentaires lui donne un avantage sur Tesseract et EasyOCR.

IronOCR Offre Un Prétraitement Avancé

Même les images de mauvaise qualité peuvent atteindre une haute précision OCR en utilisant les fonctionnalités avancées de prétraitement d'IronOCR, réduisant la nécessité d'une bibliothèque supplémentaire comme OpenCV, faisant de lui une solution complète pour l'extraction de texte.

Évolutivité et Performance

Optimisé pour un traitement OCR à grande vitesse et économe en ressources, IronOCR supporte l'évolutivité pour les tâches de traitement de documents volumineux, une priorité pour les applications d'entreprise.

Support et Mises à Jour

Avec un support commercial, IronOCR bénéficie de mises à jour régulières, de corrections de bogues, et d'une assistance dédiée, offrant une fiabilité à long terme et les dernières avancées en OCR, contrairement aux options open-source comme Tesseract et EasyOCR.

Conclusion

Dans le domaine des bibliothèques OCR significatives, IronOCR se distingue par sa précision supérieure, sa facilité d'intégration, ses capacités de prétraitement, et la création de PDFs consultables. Il gère habilement des mises en page complexes et des images bruyantes tout en préservant la structure du document, supportant plusieurs langues d'emblée. Ces fonctionnalités le rendent préférable aux solutions open-source comme Tesseract et EasyOCR.

En intégrant de manière transparente avec .NET et Python, IronOCR sert de package complet pour les développeurs en quête d'un OCR de haute qualité dans des projets divers. Étant donné sa performance louable, son évolutivité, et son support commercial, IronOCR convient bien aux initiatives d'envergure et de numérisation de documents à grande échelle, offrant une reconnaissance de texte fiable et efficace.

Pour en savoir plus sur IronOCR et ses fonctionnalités, vous pouvez visiter la page de documentation. Pour plus de détails sur les produits Iron Software, référez-vous à la page de la suite de bibliothèque.

Kannaopat Udonpant
Ingénieur logiciel
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Pendant qu'il poursuivait son diplôme, Kannapat est également devenu membre du laboratoire de robotique de véhicules, qui fait partie du département de bioproduction. En 2022, il a utilisé ses compé...
Lire la suite