Passer au contenu du pied de page
OUTILS OCR

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

L'utilisation de bibliothèques telles qu'IronOCR et Tesseract offre aux développeurs un accès à 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 extraire du texte à partir d'images, et se terminera par la présentation de l'approche unique d'IronOCR.

1. OCR avec Tesseract

1.1. Installer Tesseract

Dans la console du gestionnaire de packages NuGet, saisissez la commande suivante :

Install-Package Tesseract

Ou téléchargez le package via le gestionnaire de packages NuGet.

Comment obtenir la reconnaissance optique de caractères (OCR), Figure 1 : Installer le package Tesseract dans le gestionnaire de packages NuGet Installez 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 package NuGet. Cela peut être considéré comme une lacune de cette bibliothèque en particulier.

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)

La reconnaissance optique de caractères (OCR) d'une image donnée peut être effectuée à l'aide du 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();
    }
}
$vbLabelText   $csharpLabel
  • Tout d'abord, un objet TesseractEngine doit être créé, chargeant les données de langue dans le moteur.
  • Le fichier image souhaité est ensuite chargé à l'aide de Pix.LoadFromFile.
  • L'image est transmise à TesseractEngine pour extraire le texte à l'aide de la méthode Process.
  • Le texte reconnu est obtenu avec la méthode GetText et imprimé sur la console.

Comment obtenir une reconnaissance optique de caractères (OCR), Figure 2 : Texte extrait de l'image Texte extrait de l'image

1.3 Considérations relatives au tesseract

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

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

2. OCR avec IronOCR

2.1. Installation d'IronOCR

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

Install-Package IronOcr

Vous pouvez également installer 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 optique de caractères (OCR), Figure 3 : Installation IronOCR et des packages de langues via le gestionnaire de packages NuGet Installez IronOcr et les packages de langues via le gestionnaire de packages NuGet.

2.2. Utilisation d'IronOCR

Voici un exemple de code permettant de reconnaître le texte à partir 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();
    }
}
$vbLabelText   $csharpLabel
  • Ce code initialise un objet IronTesseract, en configurant la langue et la version de Tesseract.
  • Un objet OcrInput est ensuite créé pour charger des fichiers image à l'aide de la méthode AddImage.
  • La méthode Read de IronTesseract traite l'image et extrait le texte, qui est ensuite imprimé sur la console.

Comment obtenir une reconnaissance optique de caractères (OCR), Figure 4 : Texte extrait à l'aide de la bibliothèque IronOCR Sortie de texte extraite à l'aide de la bibliothèque IronOCR

2.3 Considérations relatives à IronOCR

  1. IronOCR est une extension de la bibliothèque Tesseract, offrant une plus grande stabilité et une précision accrue.
  2. IronOCR peut lire le contenu textuel des fichiers PDF et des photos. Il peut également lire plus de 20 types différents de codes-barres et de codes QR.
  3. La sortie peut être affichée sous forme de texte brut, de données structurées, de codes-barres ou de codes QR.
  4. La bibliothèque reconnaît 125 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 un essai gratuit et dispose d'une édition de développement moins chère. En savoir plus sur la licence.

Pour un tutoriel détaillé sur IronOCR, consultez cet article pour lire du 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. 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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi