Easyocr vs Tesseract (Comparaison des fonctionnalités OCR)
Kannapat Udonpant
décembre 15, 2024
Partager:
Introduction
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 à 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 les lettres, chiffres ou symboles, et les traduit en un format lisible par machine. Ses utilisations incluent la numérisation de livres, le traitement de formulaires, l'automatisation du flux de travail des documents 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 n'importe qui puisse facilement intégrer la fonctionnalité de prédiction OCR dans ses applications sans beaucoup de configuration. Avec EasyOCR Tesseract, on peut effectuer une numérisation de documents simple, la reconnaissance de plaques d'immatriculation, ou même extraire du texte d'une image.
-->
EasyOCR est bien connu pour sa reconnaissance de texte. La plupart des autres solutions OCR n'offrent pas cette fonctionnalité. Il gère également le texte multiligne et fonctionne sur n'importe quel type d'image, même de faible qualité. Par conséquent, il est robuste pour les cas d'utilisation réels, ne reposant que sur quelques dépendances. Il est léger et fonctionne efficacement sans nécessiter de GPU sur du matériel moderne. Cela rend EasyOCR particulièrement attractif pour les développeurs qui pourraient avoir besoin de capacités OCR flexibles.
Fonctionnalités de EasyOCR
De nombreuses fonctionnalités font d'EasyOCR un utilitaire OCR complet et véritablement 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 en écrivant des mots complexes et des langues compliquées.
Il reconnaîtra les textes à partir d'images, élargissant ainsi davantage le champ des applications possibles.
Basé sur l'apprentissage profond avancé : La reconnaissance prend en charge de puissants algorithmes de techniques avancées d'apprentissage profond avec des niveaux élevés de performance et de précision, en particulier dans les dispositions de texte et les images bruyantes ou déformées.
API simple : Très facile à implémenter avec une API très conviviale qui permet aux utilisateurs d'obtenir rapidement des fonctionnalités OCR dans une application sans configuration supplémentaire.
Détection de texte multi-lignes : Reconnaissance de plusieurs lignes de texte ; utile pour les documents, les livres ou les enseignes multi-lignes.
Léger : Il fonctionne bien sur le CPU et peut tirer parti d'un GPU pour améliorer les performances, tout en restant utilisable avec un matériel de base.
Prétraitement d'image : Contient des outils principaux de prétraitement d'image pour améliorer la sortie de l'OCR à partir d'images bruyantes ou de basse résolution.
Déploiement flexible : Fonctionne sur de nombreuses plateformes et s'intègre relativement facilement dans les applications Python.
Installation
EasyOCR peut être installé via pip, qui est le gestionnaire de paquets pour Python. Tout d'abord, assurez-vous que toutes les dépendances ont été satisfaites.
Tout d'abord, parmi ceux-ci, se trouvent les bibliothèques PyTorch : torch et torchvision. Torch et torchvision peuvent être installés ensemble avec EasyOCR :
Installer EasyOCR : Pour l'installer, ouvrez simplement un terminal ou une ligne de commande et saisissez la commande :
pip install easyocr
-->
Installez PyTorch, si ce n'est pas déjà fait (requis par EasyOCR) : EasyOCR fonctionne sur PyTorch. Si installé automatiquement dans votre environnement, installez une version spécifique ; suivez le guide officiel d'installation de PyTorch.
Vous êtes maintenant prêt à utiliser EasyOCR pour les tâches d'extraction de texte.
Image OCR avec EasyOCR
import easyocr
import matplotlib.pyplot as plt
import cv2
# Initialize the EasyOCR reader
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 the 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
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 the 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 le résultat généré par le code ci-dessus.
Tesseract
Tesseract est parmi les moteurs de reconnaissance optique de caractères open-source les plus populaires avec une gamme d'options d'hyperparamètres. Il peut être accédé depuis des applications Python en utilisant pytesseract. Le développement de Tesseract a été initié par Hewlett-Packard mais a ensuite été amélioré par Google. Il est extrêmement polyvalent et peut extraire le texte des images et des PDF dans plus de 100 langues. Le wrapper en Python permet une interaction fluide avec Tesseract via pytesseract.
Tesseract est un leader dans la détection et l'extraction de texte imprimé par machine, possède des capacités de reconnaissance multi-langues, prend en charge l'entraînement sur de nouvelles polices et effectue également une analyse de mise en page du texte. Tesseract est largement utilisé pour la numérisation de documents, le scan de reçus, l'automatisation de la saisie de données et la création de PDF consultables. Mettre toute cette flexibilité à disposition de Python et Tesseract peut constituer une combinaison assez puissante entre les mains des développeurs travaillant sur des tâches liées à l'OCR.
Fonctionnalité de Tesseract OCR
Certaines des fonctionnalités les plus importantes de pytesseract sont :
Support multilingue : Tesseract peut lire plus de 100 langues, et pytesseract offre un support OCR multilingue assez simple au sein des scripts Python. Il prend également en charge la formation pour des polices ou des langues personnalisées supplémentaires, étendant ainsi les capacités à davantage de langues ou de polices.
Utilisation pour la conversion d’image en texte : pytesseract extrait le contenu textuel de plusieurs formats d'images tels que PNG, JPEG, BMP, GIF et TIFF pour exécuter l'OCR sur de nombreux types de sources différents.
Transformation de PDF en PDF indexable : Tesseract lira le texte d'un fichier PDF et rendra ce PDF indexable. Les utilisateurs peuvent rechercher et indexer le contenu de documents numérisés.
Il peut lire des mises en page de texte complexes incluant des documents multi-colonnes, des tableaux et un contenu mixte de texte et d'images. Ainsi, il peut extraire du texte à partir de mises en page non standard de manière plus précise.
Configuration personnalisée : les utilisateurs peuvent passer des paramètres de configuration Tesseract personnalisés via pytesseract afin que l'optimisation de la performance de l'OCR puisse être affinée, avec des modes de reconnaissance appropriés ou des images pour attribuer certains attributs aux textes selon les besoins.
API simple : Il s'agit d'une API simple sur pytesseract, ce qui permet aux développeurs d'ajouter facilement la reconnaissance optique de caractères (OCR) à leurs projets Python avec moins de code pour son interaction.
Cette bibliothèque fonctionne bien avec d'autres bibliothèques, telles qu'OpenCV PIL (Python Imaging Library) ou NumPy pour traiter le prétraitement des images afin d'améliorer la précision de l'OCR.
Installation
Une fois Tesseract installé, installez le package pytesseract en utilisant pip :
pip install pytesseract
OCR image à l'aide de pytesseract
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example: Read text from an image
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)
print(text)
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example: Read text from an image
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)
print(text)
PYTHON
Voici le résultat généré par le code ci-dessus.
IronOCR
Une bibliothèque de reconnaissance optique de caractères puissante permet aux développeurs .NET de tirer parti de IronOCR pour une extraction efficace de texte à partir d'images, de PDF et de plusieurs autres formats de documents. Des algorithmes avancés garantissent une très grande précision même pour des mises en page complexes ou des environnements multilingues. Prend en charge les formats JPEG, PNG, GIF et TIFF. La bibliothèque propose des réglages variables, permettant de peaufiner le processus du moteur OCR à l'aide de paramètres tels que la résolution ou l'orientation de l'image pour le texte.
La fonctionnalité de prétraitement des images garantit que des images d'entrée de meilleure qualité peuvent être traduites en une précision de reconnaissance plus élevée et en documents de sortie supplémentaires sous forme de conversion en PDF consultable pour une récupération d'information plus facile. Ainsi, compte tenu de son intégration facile dans les applications web, IronOCR est le meilleur outil pour les développeurs souhaitant mettre en œuvre les solutions d'extraction de texte et de numérisation de documents les plus fiables dans plusieurs domaines.
Caractéristiques de l'IronOCR
Haute précision : Il utilise des algorithmes avancés et complexes pour fournir des niveaux de précision élevés dans la reconnaissance de texte, quelles que soient la complexité du document ou l'utilisation de différentes polices.
Accepte plusieurs formats : Il accepte les formats d'images tels que JPEG, PNG, GIF et TIFF en plus des PDF pour garantir qu'il peut exécuter les fonctions prévues dans diverses applications.
Prend en charge la reconnaissance multilingue : Il est multilingue, offrant des résultats précis pour une extraction de texte réussie dans divers contextes linguistiques.
Préservation de la mise en page du texte : Cela préserve la mise en page originale du document afin que le texte extrait ait la même disposition, ce qui est important pour une lisibilité claire.
OCR configurable : Il offre des paramètres configurables pour la résolution des images, la direction du texte, et plus encore, permettant au développeur d'optimiser l'outil OCR spécifique à l'image dans une certaine mesure.
Prétraitement de l'image : Il est fourni avec quelques outils de base conçus pour améliorer les images, en commençant par la suppression du bruit, l'ajustement du contraste ainsi que le redimensionnement, le tout dans le but d'augmenter la précision de l'OCR.
PDF indexable : Les images et documents numérisés peuvent être convertis directement en PDF indexables pour une gestion et une récupération des données efficaces.
Intégration facile : Il permet une intégration facile dans .NET, ce qui, en effet, permet à un utilisateur d'ajouter des fonctionnalités OCR assez facilement.
Traitement par lots : Il est utile pour le traitement simultané de plusieurs images ou documents. Il est extrêmement utile pour traiter de grandes quantités de données.
Installation
L'installation est assez simple : ouvrez le gestionnaire de packages NuGet pour les solutions et démarrez un nouveau projet Visual Studio. Il suffit de taper "IronOCR" et de rechercher la liste. Ensuite, sélectionnez la dernière version de IronOCR et cliquez sur Installer.
Exemple de code utilisant IronOCR
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Text:");
Console.WriteLine(result.Text);
}
}
}
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
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 multiple languages
Ocr.Language = OcrLanguage.English
' Path to the image
Dim inputFile = "path\to\your\image.png"
' Read the image and perform OCR
Using input = New OcrInput(inputFile)
' Perform OCR
Dim result = Ocr.Read(input)
' Display the result
Console.WriteLine("Text:")
Console.WriteLine(result.Text)
End Using
End Sub
End Class
$vbLabelText $csharpLabel
Évaluation comparative
Précision élevée
IronOCR est plus précis avec des mises en page complexes, des images bruyantes et des textes basse résolution que ses concurrents les plus proches, Tesseract ou EasyOCR. Les outils de prétraitement d'image intégrés, tels que la réduction du bruit et les ajustements de contraste, augmentent toutes les possibilités d'obtenir une précision dans les applications du monde réel.
Préservation multi-format et de la mise en page
IronOCR surpasse les deux ici, car il traite facilement tous types de formats d'image, de fichiers PDF et de mises en page à plusieurs colonnes tout en préservant la structure et le formatage du document original. Par conséquent, cela devient le meilleur choix pour les projets de numérisation plus traditionnels où la préservation de la mise en page est un atout.
Il présente un énorme avantage en ce qu'il convertit les images et les documents numérisés directement en PDF entièrement consultables sans dépendance à des outils ou bibliothèques supplémentaires, contrairement à Tesseract et EasyOCR.
IronOCR offre un prétraitement avancé
Même les images de très mauvaise qualité produisent une haute précision de reconnaissance optique de caractères grâce à cette fonctionnalité. Cela minimise la dépendance à d'autres bibliothèques comme OpenCV et en fait ainsi une solution complète pour l'extraction de texte de qualité.
Scalabilité et Performance
Optimisé pour la reconnaissance optique de caractères à haute vitesse et à faible consommation de ressources, IronOCR garantit l'évolutivité pour le traitement de gros volumes de documents - la priorité de toute application d'entreprise.
Soutien et mises à jour
IronOCR offre un support commercial, ce qui se traduit positivement par une augmentation des mises à jour et des corrections de bogues ainsi qu'une assistance dédiée à long terme, offrant ainsi une assurance de fiabilité à long terme et des avancées récentes dans l'OCR, absentes chez les concurrents open source comme Tesseract et EasyOCR.
Conclusion
Parmi les bibliothèques OCR les plus critiques, la meilleure est sans conteste IronOCR pour sa précision supérieure et sa facilité d'intégration, sans oublier d'autres fonctionnalités comme le prétraitement de l'image et la création d'un PDF consultable. Il peut gérer des mises en page complexes et des images plus bruyantes avec précision tout en maintenant la structure du document intacte, et il prend en charge plusieurs langues dès le départ, par rapport à des solutions open-source comme Tesseract et EasyOCR.
Les outils inclus et l'intégration transparente avec .NET et Python garantissent que cet ensemble tout-en-un est destiné aux développeurs qui souhaitent intégrer une OCR de haute qualité dans tout type de projet. Sa bonne performance à elle seule, sa scalabilité et son support commercial le positionnent également bien pour certains projets de numérisation de documents à petite et grande échelle, en faisant ainsi le choix ultime pour une reconnaissance de texte fiable et efficace.
Pour en savoir plus sur IronOCR et son fonctionnement, vous pouvez visiter cette page de documentation, où IronOCR propose un essai gratuit. Pour en savoir plus sur les produits Iron Software, consultez la page de la suite de bibliothèques.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Power Automate OCR (Tutoriel pour développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier