Passer au contenu du pied de page
OUTILS OCR

Comment obtenir du texte à partir d'images en utilisant Tesseract

Exploiter des bibliothèques telles qu'IronOCR et Tesseract permet aux développeurs d'accéder à des algorithmes avancés et à des techniques d'apprentissage automatique pour extraire des 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, et conclura ensuite en présentant l'approche unique d'IronOCR.

1. OCR avec Tesseract

1.1. Installer Tesseract

En utilisant la console du gestionnaire de packages NuGet, entrez la commande suivante :

Install-Package Tesseract

Ou téléchargez le package via le gestionnaire de packages 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 manuellement et enregistrer les fichiers de langue dans le dossier du projet après avoir installé le package NuGet. Cela peut être considéré comme un défaut 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 de débogage de votre projet.

1.2. Utilisation de Tesseract (Démarrage rapide)

L'OCR sur une image donnée peut être effectué en utilisant le code source ci-dessous :

using Tesseract;

class Program
{
    static void Main()
    {
        // Initialize Tesseract engine with English language data
        using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);

        // Load the image to be processed
        using var img = Pix.LoadFromFile("Demo.png");

        // Process the image to extract text
        using var res = ocrEngine.Process(img);

        // Output the recognized text
        Console.WriteLine(res.GetText());
        Console.ReadKey();
    }
}
using Tesseract;

class Program
{
    static void Main()
    {
        // Initialize Tesseract engine with English language data
        using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);

        // Load the image to be processed
        using var img = Pix.LoadFromFile("Demo.png");

        // Process the image to extract text
        using var res = ocrEngine.Process(img);

        // Output the recognized text
        Console.WriteLine(res.GetText());
        Console.ReadKey();
    }
}
Imports Tesseract

Friend Class Program
	Shared Sub Main()
		' Initialize Tesseract engine with English language data
		Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)

		' Load the image to be processed
		Dim img = Pix.LoadFromFile("Demo.png")

		' Process the image to extract text
		Dim res = ocrEngine.Process(img)

		' Output the recognized text
		Console.WriteLine(res.GetText())
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel
  • Tout d'abord, un objet TesseractEngine doit être créé, chargeant les données linguistiques dans le moteur.
  • Le fichier image souhaité est ensuite chargé à l'aide de Pix.LoadFromFile.
  • L'image est transmise dans le TesseractEngine pour extraire le texte à l'aide de la méthode Process.
  • Le texte reconnu est obtenu avec la méthode GetText et imprimé dans la console.

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

1.3 Considérations Tesseract

  1. Tesseract supporte le formatage du texte de sortie, les données positionnelles OCR, et l'analyse de mise en page depuis la version 3.00.
  2. Tesseract est disponible sur Windows, Linux et MacOS, bien qu'il soit principalement confirmé pour fonctionner comme prévu sur Windows et Ubuntu en raison d'un support de développement limité.
  3. Tesseract peut faire la distinction entre le texte à espacement fixe et à espacement proportionnel.
  4. En utilisant une interface frontale comme OCRopus, Tesseract est idéal pour être utilisé comme un back-end et peut être utilisé pour des tâches OCR plus complexes, telles que l'analyse de mise en page.
  5. Quelques défauts de Tesseract :
    • Les dernières versions n'ont pas été conçues pour être compilées sur Windows
    • Les wrappers de l'API C# de Tesseract sont maintenus rarement et ont des années de retard par rapport aux nouvelles versions de Tesseract

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

2. OCR avec IronOCR

2.1. Installation d'IronOCR

Entrez la commande suivante dans la console du gestionnaire de packages NuGet :

Install-Package IronOcr

Ou installez la bibliothèque IronOCR via le gestionnaire de packages NuGet, ainsi que des packages 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 Installer IronOcr et les packages de langues via le gestionnaire de packages NuGet

2.2. Utilisation de l'IronOCR

Ci-dessous un exemple de code pour reconnaître le texte de l'image donnée :

using IronOcr;

class Program
{
    static void Main()
    {
        // Create an IronTesseract instance with predefined settings
        var ocr = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
        };

        // Create an OcrInput instance for image processing
        using var input = new OcrInput();

        // Load the image to be processed
        input.AddImage("Demo.png");

        // Process the image and extract text
        var result = ocr.Read(input);

        // Output the recognized text
        Console.WriteLine(result.Text);
        Console.ReadKey();
    }
}
using IronOcr;

class Program
{
    static void Main()
    {
        // Create an IronTesseract instance with predefined settings
        var ocr = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
        };

        // Create an OcrInput instance for image processing
        using var input = new OcrInput();

        // Load the image to be processed
        input.AddImage("Demo.png");

        // Process the image and extract text
        var result = ocr.Read(input);

        // Output the recognized text
        Console.WriteLine(result.Text);
        Console.ReadKey();
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main()
		' Create an IronTesseract instance with predefined settings
		Dim ocr = New IronTesseract() With {
			.Language = OcrLanguage.EnglishBest,
			.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
		}

		' Create an OcrInput instance for image processing
		Dim input = New OcrInput()

		' Load the image to be processed
		input.AddImage("Demo.png")

		' Process the image and extract text
		Dim result = ocr.Read(input)

		' Output the recognized text
		Console.WriteLine(result.Text)
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel
  • Ce code initialise un objet IronTesseract, configurant la langue et la version de Tesseract.
  • Un objet OcrInput est ensuite créé pour charger les fichiers image en utilisant la méthode AddImage.
  • La méthode Read d'IronTesseract traite l'image et extrait le texte, qui est ensuite imprimé dans la console.

Comment obtenir la reconnaissance de texte OCR, Figure 4 : Sortie de texte extrait en utilisant la bibliothèque IronOCR Sortie de texte extrait en utilisant la bibliothèque IronOCR

2.3 Considérations IronOCR

  1. IronOCR est une extension de la bibliothèque Tesseract, introduisant plus de stabilité et une précision plus élevée.
  2. IronOCR peut lire le contenu textuel de PDF et de photos. Il peut également lire plus de 20 types distincts de codes-barres et de QR codes.
  3. La sortie peut être restituée soit sous forme de texte brut, de données structurées, de codes-barres ou de QR codes.
  4. La bibliothèque reconnaît 125 langues dans le monde.
  5. IronOCR fonctionne dans tous les environnements .NET de manière flexible (console, Web, bureau, etc.), et prend également en charge les derniers cadres mobiles tels que Mono, Xamarin, Azure, et MAUI.
  6. IronOCR propose une version d'essai gratuite et dispose d'une édition de développement à moindre coût. Apprenez-en plus sur la licence.

Pour un tutoriel détaillé sur IronOCR, référez-vous à cet article pour lire le texte 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. 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