UTILISATION DE L'IRONOCR

OCR Tesseract pour plusieurs langues (Tutoriel pour développeurs)

Publié septembre 29, 2024
Partager:

Introduction

La reconnaissance optique de caractères (OCR) est une technologie utilisée pour transformer des documents de différentes natures en données modifiables et consultables. Il convertit les images numérisées, les fichiers PDF et les photos d'appareil photo numérique en données pouvant être modifiées et recherchées. Cette technologie est largement utilisée pour convertir les documents imprimés en format numérique afin de les éditer, rechercher et stocker, réduisant ainsi l'espace physique occupé par les documents. OCRjoue un rôle majeur dans l'automatisation de la saisie de données, ce qui permet ainsi aux entreprises et aux organisations de gagner beaucoup de temps en réduisant la main-d'œuvre utilisée par les ressources humaines.

C'est un processus qui utilise des techniques avancées d'apprentissage automatique et de reconnaissance des formes pour extraire précisément du texte à partir d'images. Les dernières avancées concernant l'OCR ont amélioré sa précision, soutenant ainsi davantage de langues et de scripts complexes tels que le script arabe. Très nécessaire dans la finance, la santé, la législation et l'éducation, l'OCR est apparu comme un outil indispensable là où le traitement rapide de plusieurs documents imprimés était une condition préalable. Cet article utilisera Tesseract pour effectuer l'OCR d'images dans plusieurs langues.

Comment utiliser Tesseract OCR avec plusieurs langues

  1. Tout d'abord, installez le package NuGet IronOCR/Tesseract dans votre projet .NET.

  2. Une instance de classe IronTesseract sera créée, initialisant ainsi le moteur OCR.

  3. Il est conçu de manière à ce que la propriété de langue supporte plus d'une langue.

  4. Spécifiez le chemin d'accès au fichier image que vous souhaitez traiter, puis créez un objet OcrInput.

  5. Maintenant, effectuez la reconnaissance optique des caractères (OCR) sur l'image d'entrée en utilisant la fonction Read de l'instance IronTesseract.

  6. Prenez le résultat et affichez le texte reconnu.

Qu'est-ce que Tesseract?

Tesseract est un moteur de reconnaissance optique de caractères open source développé par Hewlett-Packard et ensuite maintenu par Google. Il est réputé pour sa grande précision et son adaptabilité, ce qui en fait l'un des OCR les plus remarquables. Tesseract prend en charge la détection de script, reconnaît le texte dans de nombreuses langues et peut traiter plusieurs langues ; Par conséquent, il est généralement utilisé pour les projets nécessitant des documents multilingues et le support.

Le moteur OCR Tesseract fonctionne sur les informations contenues dans chaque pixel de l'image, suivant des motifs représentant des caractères, des mots et des phrases qui sont finalement convertis en texte lisible par machine. Les nombreux types de fichiers image qu'il prend en charge, tels que TIFF, JPEG et PNG, permettent à Tesseract de produire du texte dans des formats comme le texte brut, HTML et PDF consultable.

L'un des avantages significatifs de Tesseract est qu'il peut être entraîné à être sensible à des polices particulières ou à de nouvelles langues ajoutées. Il est également fréquemment utilisé dans diverses applications, allant de l'extraction de texte simple à des tâches complexes telles que la numérisation de documents historiques, le traitement de factures, ou même des logiciels d'accessibilité permettant la lecture pour les malvoyants.

Création d'un nouveau projet dans Visual Studio

Ouvrez le programme Visual Studio. À l'ouverture du programme, allez dans le "menu fichier." Sous le "menu fichier," il y a l'option "nouveau projet." Sous "nouveau projet," cliquez sur "Application Console." Dans cet article, nous allons créer des documents PDF à l'aide d'un programme console.

Tesseract OCR pour plusieurs langues (Tutoriel pour les développeurs) : Figure 1 - Créer un nouveau projet

Entrez le nom de votre projet et l'emplacement du fichier dans les champs de texte fournis. Ensuite, comme indiqué dans l'image ci-dessous, cliquez sur le bouton Créer et sélectionnez le Framework .NET dont vous avez besoin.

Tesseract OCR pour plusieurs langues (Tutoriel pour les développeurs) : Figure 2 - Sélectionnez le .NET Framework ainsi que le projet et l'emplacement d'enregistrement.

Maintenant que la version de l'application a été sélectionnée, le projet Visual Studio créera sa structure. Si vous avez choisi les versions console, Windows ou web, cela ouvrira le fichier programme .cs pour ajouter du code et créer/exécuter l'application.

Installer Tesseract OCR For .NET

La première étape consiste à télécharger et installer le logiciel Tesseract OCR sur votre ordinateur. Voici le dépôt officiel GitHub de Tesseract avec l'installateur de Tesseract : https://github.com/tesseract-ocr/tesseract.

Il serait préférable d'installer Tesseract OCR sur votre ordinateur en suivant les instructions de configuration spécifiques à votre système d'exploitation, que ce soit Windows, macOS ou Linux. Une fois installé, ajoutez le package Tesseract.NET à votre projet C# à l'aide du Gestionnaire de packages NuGet de Visual Studio.

Ouvrez le gestionnaire de packages NuGet dans votre projet Visual Studio à partir de Outils -> Gestionnaire de packages NuGet -> Gérer les packages NuGet pour la solution. Ensuite, recherchez "Tesseract" dans le gestionnaire de packages NuGet pour obtenir soit le package "Tesseract" soit "Tesseract.NET". Sélectionnez ce package et cliquez sur le bouton Installer pour l'installer dans votre projet.

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 3 - Recherchez Tesseract dans l'onglet de navigation

OCR Tesseract utilisant C&num ;

Vous devez configurer Tesseract dans votre projet C# pour spécifier l'emplacement de l'exécutable Tesseract OCR et des fichiers de données linguistiques après avoir installé le wrapper Tesseract.NET. En voici un exemple :

using System;
using System.Drawing;
using Tesseract;
class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add tesseract languages into engine
            using (var engine = new TesseractEngine(tessDataPath,  "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using System;
using System.Drawing;
using Tesseract;
class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add tesseract languages into engine
            using (var engine = new TesseractEngine(tessDataPath,  "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports System
Imports System.Drawing
Imports Tesseract
Friend Class Program
	Shared Sub Main()
		' Set the path to the Tesseract data files (traineddata files)
		Dim tessDataPath As String = "./tessdata" ' Ensure this directory contains the language data files
		' Load the image
		Dim imagePath As String = "path_to_your_image.png"
		Using img = Pix.LoadFromFile(imagePath)
			' Add tesseract languages into engine
			Using engine = New TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default)
				Using page = engine.Process(img)
					' Extract the text
					Dim text As String = page.GetText()
					Console.WriteLine("Recognized Text:")
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
VB   C#

Le code ci-dessus explique comment Tesseract OCR peut détecter et extraire du texte à partir d'images contenant plusieurs langues. Il définit initialement le chemin vers les fichiers de données linguistiques Tesseract. Les fichiers .traineddata nécessaires pour chaque langue correspondante, tels que l'anglais, l'espagnol et le français, doivent être présents dans le chemin.

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 4 - Exemple d'entrée

Il charge une image spécifiée par imagePath dans la méthode Pix.LoadFromFile. Plus précisément, on s'attendrait à une image avec du texte en anglais, espagnol et français. Ensuite, une instance de TesseractEngine sera initialisée avec les chemins vers les fichiers de données linguistiques et les langues d'intérêt, "eng+spa+fra," pour reconnaître le texte. Le moteur fonctionnera en mode par défaut.

Tesseract OCR pour plusieurs langues (Tutoriel développeur) : Figure 5 - Exemple de sortie console

L'image sera ensuite passée dans la méthode Process de la classe moteur, où elle sera analysée, le contenu textuel extrait et stocké dans la variable text. Enfin, le texte extrait sera imprimé dans la console, créant une visualisation du fonctionnement de l'OCR.

Qu'est-ce que IronOCR ?

IronOCR est une bibliothèque OCR propriétaire axée sur Dot NET. Il ajoute des capacités OCR aux applications .NET et permet l'extraction de texte à partir d'images, de documents numérisés, de PDFs et de tous les autres supports visuels. Propulsé par le moteur Tesseract incroyablement performant pour la reconnaissance de texte de pointe, IronOCR comprend également plusieurs fonctionnalités supplémentaires qui le rendent adapté à l'utilisation dans des applications d'entreprise.

Cela rend IronOCR extrêmement performant—son incroyable support linguistique—plus de 120 langues avec prise en charge de la détection automatique de langue et traitement de documents contenant plusieurs langues simultanément. Cela rend IronOCR très polyvalent et déployable à l'échelle mondiale, là où le traitement de documents multilingues est extrêmement crucial.

Tesseract OCR pour plusieurs langues (Tutoriel Développeur) : Figure 6 - IronOCR : La bibliothèque OCR en C#

D'autre part, IronOCR met toujours l'accent sur la simplicité d'utilisation et d'intégration. Son API extrêmement facile à utiliser est complétée par une documentation détaillée et un ensemble de projets d'exemples qui aideront tout développeur à se lancer rapidement. Il prend en charge une large gamme de formats d'image et de documents PDF. Les fonctionnalités avancées intégrées de prétraitement d'image, de réduction de bruit et de correction d'erreurs améliorent la précision et la performance de l'OCR.

Installer IronOCR

Vous pouvez installer les packages directement dans votre solution en utilisant l'outil de gestion de packages NuGet de Visual Studio. L'instantané suivant montre comment ouvrir le Gestionnaire de Packages NuGet.

Tesseract OCR pour plusieurs langues (Tutoriel développeur) : Figure 7 - Comment accéder au gestionnaire de packages NuGet via Visual Studio

Il possède une boîte de recherche intégrée, qui doit afficher une liste de packages depuis le site Web NuGet. Comme on peut le voir sur la capture d'écran ci-dessous, nous allons rechercher le gestionnaire de packages avec la phrase IronOCR :

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 8 - Recherchez IronOCR dans l'explorateur de solutions

Le graphique ci-dessus pourrait offrir une liste de termes de recherche valides. Nous devons sélectionner ce qui est nécessaire pour installer le package de solution.

De plus, installez les packs linguistiques Tesseract requis un par un, comme celui ci-dessous pour cet exemple.

Dans cet exemple, nous utiliserons les codes de langue espagnol, français et anglais. L'anglais est le pack linguistique par défaut, il ne nécessite donc pas d'installation.

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 9 - Installer le paquet de langue français

Installez Spanish à partir du package NuGet.

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 10 - Installer le pack de langue espagnole

Lisez plusieurs langues avec IronOCR avec le moteur Tesseract

L'exemple suivant démontre comment reconnaître le texte en plusieurs langues à partir d'une image en utilisant C# et le moteur IronOCR et Tesseract.

using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();
        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
        // 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 + OcrLanguage.Spanish + OcrLanguage.French;
        // 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 + OcrLanguage.Spanish + OcrLanguage.French
		' 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
VB   C#

Le programme C# ci-dessus est un exemple d'utilisation de la bibliothèque IronOCR pour effectuer de la reconnaissance optique de caractères sur une image contenant des caractères anglais, espagnols et français. Cet exemple commence par l'importation de l'espace de noms requis par IronOCR, suivi par la déclaration d'une classe nommée program avec une méthode Main, qui est le point d'entrée de l'application.

Tout d'abord, dans la méthode Main, une instance de la classe IronTesseract est instanciée. Cette instance sera ensuite assignée à la variable Ocr. Ensuite, lePropriété de languede cette instance est configurée pour inclure l'anglais, l'espagnol et le français en combinant OcrLanguage.English, OcrLanguage.Spanish et OcrLanguage.French. Tout cela garantira que le moteur OCR puisse reconnaître et traiter le texte dans l'une de ces trois langues.

Tout d'abord, définissez le chemin vers le fichier image d'entrée en utilisant la variable inputFile. Sur la ligne suivante, chargez cette image dans une instruction de la classe OcrInput pour une gestion et une élimination efficaces des ressources sonores. Enfin, appelez la méthode Read de l'instance IronTesseract avec l'objet d'entrée et effectuez le OCR sur l'image.

Enfin, le résultat est vérifié pour le texte reconnu et imprimé dans la console. Ces instructions Console.WriteLine afficheront le texte détecté afin que l'utilisateur puisse voir les résultats de l'OCR. Le programme illustre une méthode efficace pour utiliser la capacité multilingue d'IronOCR afin d'extraire le texte d'images de mots dans différentes langues.

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 11 - Sortie du texte reconnu

Pourquoi IronOCR est-il meilleur que Tesseract ?

Il est assez convivial par rapport à Tesseract et présente certains avantages par rapport à ce dernier. Tout d'abord, IronOCR offre un excellent support linguistique. Le moteur prend en charge 127 langues dès sa sortie de l'emballage, tandis que pour Tesseract, il y a des rapports indiquant qu'il prend en charge environ 100 langues. cependant, souvent, cela nécessite des configurations complexes et une formation supplémentaire pour des performances optimales. De plus, IronOCR est plus facile à utiliser, car il s'intègre facilement dans les applications .NET et complète la documentation.

Beaucoup plus facile à utiliser que Tesseract, IronOCR a une courbe d'apprentissage moins abrupte et nécessite moins de configuration technique. Comme si cela ne suffisait pas, IronOCR est livré avec un prétraitement d'image avancé et des mises à jour régulières de ses fonctionnalités pour une meilleure précision et fiabilité avec des types de documents complexes et variés. IronOCR est un bien meilleur choix pour tout développeur cherchant une solution OCR solide, polyvalente et facile à appliquer.

Conclusion

Tesseract OCR pour plusieurs langues (Tutoriel pour développeurs) : Figure 12 - page de licence IronOCR

Bien que Tesseract et IronOCR représentent des technologies OCR très robustes, chacune a des capacités et des forces uniques. Encore une fois, étant donné qu'il est open-source, largement utilisé et en position de leader en ce qui concerne la disponibilité et la flexibilité des langues, Tesseract se distingue. C'est fiable pour quiconque cherche une solution gratuite avec des communautés actives et une amélioration continue.

En revanche, IronOCR est une bibliothèque propriétaire du .NET Framework qui a amélioré l'expérience utilisateur grâce à une intégration plus facile et un excellent support pour la plupart des types de fichiers image. Il se distingue également par une performance exceptionnelle en reconnaissance de texte, notamment pour le traitement de contenu d'images de faible qualité. IronOCR prend en charge de nombreuses langues et offre des fonctionnalités supplémentaires qui le rendent plus convivial et complet pour le développeur recherchant la simplicité et un support complet.

Une édition de développement économique est disponible pour IronOCR. Lorsque vous achetez le package IronOCR, vous recevez une licence à vie. Étant donné que les offres d'IronOCR commencent à 749 $, un coût unique pour plusieurs systèmes, cela offre un excellent rapport qualité-prix. Il offre une assistance en ligne 24h/24 et 7j/7 aux utilisateurs licenciés d'IronOCR. Veuillez vous référer à laIronOCRsite web pour en savoir plus sur les frais; pour plus d'informations sur les produits d'Iron Software, consultezici.

SUIVANT >
Comment créer une démo de logiciel d'OCR en C#