OUTILS OCR

Comment obtenir du texte à partir d'images à l'aide de Tesseract

Kannaopat Udonpant
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.

Comment obtenir la reconnaissance de texte OCR, Figure 1 : Installer le package Tesseract dans le gestionnaire de packages 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.

Comment obtenir la reconnaissance de texte OCR, Figure 2 : Texte extrait de l'image

Texte extrait de l'image

1.3 Considérations sur le Tesseract

  1. 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.

  2. 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é.

  3. Tesseract peut faire la distinction entre un texte monospace et un texte à espacement proportionnel.

  4. 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.

  5. 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

    Pour en savoir plus sur Tesseract en C#, veuillez visiter le tutoriel Tesseract.

2. L'OCR avec IronOCR

2.1. Installation de l'IronCR

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.

Comment obtenir la reconnaissance de texte OCR, Figure 3 : Installer IronOcr et les packages de langues via le gestionnaire de packages NuGet

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.

Comment obtenir la reconnaissance de texte OCR, Figure 4 : Résultat du texte extrait à l'aide de la bibliothèque IronOCR

Texte extrait en utilisant la bibliothèque IronOCR

2.3 Considérations relatives à l'IronOCR

  1. IronOCR est une extension de la bibliothèque Tesseract, qui apporte plus de stabilité et de précision.

  2. 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.

  3. Les résultats peuvent être restitués sous forme de texte brut, de données structurées, de codes-barres ou de codes QR.

  4. La bibliothèque reconnaît 127 langues dans le monde entier.

  5. 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.

  6. IronOCR propose une version d'essai gratuite et dispose d'une édition de développement à prix réduit. En savoir plus sur les licences.

    Pour un tutoriel détaillé sur IronOCR, consultez cet article pour lire le texte à partir d'une image en C#.

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. 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)