Comment obtenir du texte à partir d'images à l'aide de Tesseract
Kannapat Udonpant
juin 6, 2023
Mise à jour janvier 28, 2024
Partager:
L'exploitation de bibliothèques telles qu'IronOCR et Tesseract accorde aux développeurs l'accès à des algorithmes avancés et à des techniques d'apprentissage automatique pour l'extraction d'informations textuelles à partir d'images et de documents numérisés. Ce tutoriel montrera aux lecteurs comment utiliser la bibliothèque Tesseract pour effectuer l'extraction de texte à partir d'images, puis conclura en présentant l'approche unique d'IronOCR.
1. OCR avec Tesseract
1.1. Installer Tesseract
Dans la console du gestionnaire de paquets NuGet, entrez la commande suivante.
Install-Package Tesseract
Ou téléchargez le paquetage via le gestionnaire de paquets NuGet.
Installer le package Tesseract dans le Gestionnaire de Packages NuGet
Vous devez installer et enregistrer manuellement les fichiers de langue dans le dossier du projet après avoir installé le paquet NuGet. Cela peut être considéré comme une lacune de cette bibliothèque spécifique.
Visitez le site web suivant pour télécharger les fichiers de langue. Une fois téléchargés, décompressez les fichiers et ajoutez le dossier "tessdata" au dossier debug de votre projet.
1.2. Utilisation de Tesseract (démarrage rapide)
L'OCR sur une image donnée peut être réalisée à l'aide du code source ci-dessous :
using Tesseract;
var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
using Tesseract;
var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
Imports Tesseract
Private ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
Private img = Pix.LoadFromFile("Demo.png")
Private res = ocrEngine.Process(img)
Console.WriteLine(res.GetText())
Console.ReadKey()
$vbLabelText $csharpLabel
Tout d'abord, un objet TerreractEngine doit être créé et charger les données linguistiques dans le moteur. Ensuite, le fichier image souhaité est chargé à l'aide de Tesseract Pix. Ensuite, cette image est transmise au TerreractEngine pour extraire le texte reconnu correct en utilisant la méthode GetText disponible dans le TesseractEngine. Voici le résultat du code.
Texte extrait de l'image
1.3 Considérations sur le Tesseract
Tesseract prend en charge le formatage du texte de sortie, les données positionnelles de l'OCR et l'analyse de la mise en page à partir de la version 3.00.
Tesseract est disponible sur Windows, Linux et Mac OS X. Cependant, le fonctionnement de Tesseract n'a été confirmé que sur Windows et Ubuntu en raison d'un support de développement limité.
Tesseract peut faire la distinction entre un texte monospace et un texte à espacement proportionnel.
En utilisant un front-end comme OCRopus, Tesseract est idéal pour une utilisation en back-end et peut être utilisé pour des travaux d'OCR plus difficiles, tels que l'analyse de la mise en page.
Quelques-unes des lacunes de Tesseract :
Les dernières versions n'ont pas été conçues pour compiler sous Windows
Les wrappers de l'API C# de Tesseract ne sont pas maintenus fréquemment et ont des années de retard sur les nouvelles versions de Tesseract
Entrez la commande suivante dans la console du gestionnaire de paquets NuGet.
Install-Package IronOcr
Vous pouvez également installer la bibliothèque IronOCR via le gestionnaire de paquets NuGet, ainsi que des paquets supplémentaires pour d'autres langues, qui sont simples et pratiques à utiliser.
Installez IronOcr et les packages de langues via NuGet Package Manager
2.2. Utilisation de l'IronOCR
Vous trouverez ci-dessous un exemple de code permettant de reconnaître le texte d'une image donnée.
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())
{
input.LoadImage(@"Demo.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.ReadKey();
}
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())
{
input.LoadImage(@"Demo.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Console.ReadKey();
}
Dim ocr = New IronTesseract()
ocr.Language = OcrLanguage.EnglishBest
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using input = New OcrInput()
input.LoadImage("Demo.png")
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
Console.ReadKey()
End Using
$vbLabelText $csharpLabel
Le code ci-dessus instancie un objet IronTesseract. De plus, un objet OcrInput est créé pour ajouter un ou plusieurs fichiers image, en fournissant le chemin d'accès local avec la méthode LoadImage. Vous êtes libre de télécharger autant de photos que vous le souhaitez. La fonctionnalité Read dans l'objet IronTesseract analysera le fichier image et en extraira le résultat dans le résultat OCR.
Texte extrait en utilisant la bibliothèque IronOCR
2.3 Considérations relatives à l'IronOCR
IronOCR est une extension de la bibliothèque Tesseract, qui apporte plus de stabilité et de précision.
IronOCR peut lire le contenu texte des PDFs et des photos. IronOCR peut également lire plus de 20 types différents de codes-barres et de codes QR.
Les résultats peuvent être restitués sous forme de texte brut, de données structurées, de codes-barres ou de codes QR.
IronOCR fonctionne de manière flexible dans tous les environnements .NET (console, Web, bureau, etc.) et prend également en charge les derniers frameworks mobiles tels que Mono, Xamarin, Azure, et MAUI.
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 OCR C# Open Source (Liste pour les développeurs)
SUIVANT > Meilleure API OCR (Comparaison de la liste mise à jour)
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