Passer au contenu du pied de page
UTILISATION D'IRONOCR

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

L'OCR est une technologie utilisée pour transformer des documents de nature différente en données éditables et consultables. Il transforme les images numérisées, les fichiers PDF et les photos d'appareils photo numériques en données pouvant être éditées et recherchées. Cette technologie est largement utilisée pour transformer des documents imprimés en format numérique à des fins d'édition, de recherche et de stockage, réduisant ainsi l'espace physique occupé par les documents. OCR joue un rôle important dans l'automatisation de la saisie des données, ce qui permet aux entreprises et aux organisations de gagner beaucoup de temps en réduisant la main-d'œuvre utilisée par les ressources humaines.

Il s'agit d'un processus qui utilise des techniques avancées d'apprentissage automatique et de reconnaissance des formes pour extraire avec précision le texte des images. Les dernières évolutions en matière d'OCR ont permis d'améliorer la précision de cette technologie et de prendre en charge un plus grand nombre de langues et d'écritures complexes telles que l'écriture arabe. Très utile dans les domaines de la finance, de la santé, de la législation et de l'éducation, l'OCR s'est imposé comme un outil indispensable lorsqu'il s'agit de traiter rapidement plusieurs documents imprimés. Cet article utilisera Tesseract pour l'OCR d'images en plusieurs langues.

Comment utiliser Tesseract OCR avec plusieurs langues

  1. Tout d'abord, installez le package NuGet IronOCR for .NET dans votre projet .NET.
  2. Créez une instance de la classe IronTesseract, qui initialisera le moteur OCR.
  3. La propriété linguistique prend en charge plus d'une langue.
  4. Indiquez le chemin d'accès au fichier image que vous souhaitez traiter, puis créez un objet OcrInput.
  5. Maintenant, effectuez la ROC sur l'image d'entrée à l'aide de 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 ouvert développé par Hewlett-Packard et maintenu par Google. Il est réputé pour sa grande précision et son adaptabilité, ce qui en fait l'un des principaux OCR. Tesseract prend en charge la détection des scripts, reconnaît le texte dans de nombreuses langues et peut gérer plusieurs langues ; par conséquent, elle est généralement utilisée pour des projets nécessitant des documents et une assistance multilingues.

Le moteur OCR de Tesseract travaille sur les informations contenues dans chaque pixel de l'image, en suivant des modèles représentant des caractères, des mots et des phrases qui sont finalement convertis en texte lisible par une machine. Les nombreux types de fichiers image pris en charge, tels que TIFF, JPEG et PNG, permettent à Tesseract de produire des textes dans des formats tels que le texte brut, le HTML et le PDF avec possibilité de recherche.

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

Créer un nouveau projet dans Visual Studio

Ouvrez le programme Visual Studio. À l'ouverture du programme, passez au "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 for Multiple Languages (Developer Tutorial) : Figure 1 - Créer un nouveau projet

Saisissez le nom de votre projet et l'emplacement du fichier dans les zones de texte prévues à cet effet. Ensuite, comme le montre l'image ci-dessous, cliquez sur le bouton Créer et sélectionnez le .NET Framework dont vous avez besoin.

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 2 - Sélectionnez le .NET Framework et indiquez un projet et un emplacement d'enregistrement.

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

Installer Tesseract OCR pour .NET

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

Le mieux est d'installer Tesseract OCR sur votre ordinateur en suivant les instructions d'installation spécifiques à votre système d'exploitation, qu'il s'agisse de 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 paquets NuGet dans votre projet Visual Studio à partir de Outils -> Gestionnaire de paquets NuGet -> Gérer les paquets NuGet pour la solution. Par la suite, recherchez "Tesseract" dans le gestionnaire de paquets NuGet pour obtenir le paquet "Tesseract" ou "Tesseract.NET". Sélectionnez ce paquet et cliquez sur le bouton Installer pour l'installer dans votre projet.

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 3 - Recherche de Tesseract dans l'onglet Parcourir

Tesseract OCR utilisant C#

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. 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 languages to the Tesseract 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 languages to the Tesseract 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 languages to the Tesseract 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
$vbLabelText   $csharpLabel

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

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 4 - Exemple d'entrée

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

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 5 - Exemple de sortie de console

L'image sera ensuite traitée à l'aide de la méthode Process de la classe du moteur, où elle sera analysée, le contenu textuel extrait et stocké dans la variable text. Le texte extrait est ensuite imprimé sur la console, ce qui permet de visualiser le fonctionnement de l'OCR.

Qu'est-ce que IronOCR?

IronOcr est une bibliothèque OCR propriétaire axée sur .NET. Il ajoute des capacités d'OCR aux applications .NET et permet l'extraction de texte à partir d'images, de documents scannés, de PDF et de tout autre support visuel. Pilotant une reconnaissance de texte de pointe grâce au moteur Tesseract, qui connaît un succès incroyable, IronOCR comprend également plusieurs fonctionnalités supplémentaires qui le rendent adapté à une utilisation dans les applications d'entreprise.

IronOcr offre une formidable prise en charge des langues : plus de 120 langues avec une prise en charge de la détection automatique des langues et du traitement des documents contenant plusieurs langues simultanément. IronOCR est donc très polyvalent et peut être déployé à l'échelle mondiale, où le traitement de documents multilingues est hautement critique.

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 6 - IronOCR : La bibliothèque C# OCR

D'autre part, IronOCR met 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'exemple qui aideront tout développeur à être rapidement opérationnel. Le logiciel prend en charge un large éventail de formats d'images et de documents PDF. Les fonctions intégrées de prétraitement avancé des images, de réduction du bruit et de correction des erreurs améliorent la précision et les performances de l'OCR.

Installer IronOCR

Vous pouvez installer les packages directement dans votre solution à l'aide de l'outil de gestion de packages NuGet de Visual Studio. L'instantané suivant montre comment ouvrir le gestionnaire de paquets NuGet.

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 7 - Comment accéder au gestionnaire de paquets NuGet via Visual Studio

Elle dispose d'un champ de recherche intégré, qui affiche une liste de packages provenant du site web de NuGet. Comme le montre la capture d'écran ci-dessous, nous allons rechercher l'expression IronOCR dans le gestionnaire de paquets :

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 8 - Recherche d'IronOcr dans l'explorateur de solutions

Les résultats de la recherche peuvent proposer une liste de solutions potentielles. Vous devrez sélectionner le paquet de solutions nécessaire à l'installation.

Installez également les packs linguistiques Tesseract requis un par un, comme celui ci-dessous pour cet exemple.

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

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 9 - Installation du paquetage pour la langue française

Installez Spanish à partir du package NuGet.

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 10 - Installation du paquetage pour la langue espagnole

Lisez plusieurs langues avec IronOCR avec moteur Tesseract

L'exemple suivant montre comment reconnaître du texte en plusieurs langues à partir d'une image à l'aide de C# et du 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("Recognized 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("Recognized 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("Recognized Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Le programme C# ci-dessus utilise la bibliothèque IronOcr pour effectuer une reconnaissance optique de caractères sur une image contenant des caractères anglais, espagnols et français. Le programme commence par importer l'espace de noms requis pour IronOcr et par déclarer une classe nommée Programme avec une méthode Main, qui constitue le point d'entrée de l'application.

Dans la méthode Main, une instance de la classe IronTesseract est instanciée et assignée à la variable Ocr. La propriété Language est définie pour inclure l'anglais, l'espagnol et le français en combinant OcrLanguage.English, OcrLanguage.Spanish, et OcrLanguage.French. Cela permet de s'assurer que le moteur d'OCR peut reconnaître et traiter du texte dans n'importe laquelle de ces trois langues.

Le chemin d'accès au fichier image d'entrée est défini à l'aide de la variable inputFile. L'image est ensuite chargée dans une déclaration using avec une instance de la classe OcrInput pour une gestion et une élimination appropriées des ressources. Enfin, la méthode Read de l'instance IronTesseract est appelée avec l'objet d'entrée pour effectuer l'OCR sur l'image.

Le texte reconnu est ensuite imprimé sur la console à l'aide de la méthode Console.WriteLine. Ce programme illustre une méthode efficace d'utilisation de la capacité multilingue d'IronOcr pour extraire du texte à partir d'images contenant des mots dans différentes langues.

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 11 - Texte reconnu

Pourquoi IronOCR est meilleur que Tesseract?

IronOCR est plus convivial que Tesseract et offre certains avantages. Tout d'abord, IronOCR offre une excellente prise en charge linguistique avec 125 langues dès la sortie de la boîte, tandis que Tesseract peut nécessiter des configurations complexes et une formation supplémentaire pour des performances optimales avec certaines de ses 100 langues prises en charge. En outre, IronOCR s'intègre facilement dans les applications .NET et s'accompagne d'une documentation complète.

IronOCR présente une courbe d'apprentissage moins abrupte et nécessite moins de configuration technique que Tesseract. IronOCR propose également un prétraitement avancé des images et des mises à jour régulières pour une meilleure précision et une plus grande fiabilité avec des types de documents complexes. IronOCR est un excellent choix pour les développeurs à la recherche d'une solution d'OCR solide, polyvalente et facile à appliquer.

Conclusion

Tesseract OCR for Multiple Languages (Developer Tutorial) : Figure 12 - Page de licence IronOCR

Bien que Tesseract et IronOcr soient toutes deux des technologies d'OCR robustes, chacune possède des capacités et des atouts uniques. Tesseract, en tant que logiciel libre, est fiable pour tous ceux qui recherchent une solution gratuite et dispose de communautés actives et d'améliorations continues.

En revanche, IronOCR est une bibliothèque propriétaire pour le .NET Framework, qui offre une expérience utilisateur améliorée grâce à une intégration plus facile et à la prise en charge de la plupart des types de fichiers d'images. Elle offre également de bonnes performances en matière de reconnaissance de texte, en particulier avec des images de faible qualité. IronOCR prend pleinement en charge de nombreuses langues et dispose de fonctionnalités supplémentaires qui le rendent plus convivial.

IronOCR propose une édition de développement économique et, à l'achat, fournit une licence à vie. Le package IronOcr commence à $liteLicense en tant que coût unique pour plusieurs systèmes, offrant un excellent rapport qualité-prix et une assistance technique en ligne 24/7 aux utilisateurs licenciés. Pour plus d'informations, consultez le site web IronOCR.

Questions Fréquemment Posées

Comment puis-je utiliser Tesseract OCR avec plusieurs langues dans un projet .NET ?

Vous pouvez utiliser la bibliothèque IronOCR, qui simplifie l'intégration de Tesseract OCR pour traiter des images avec du texte en plusieurs langues. Ajoutez le paquet NuGet IronOCR/Tesseract à votre projet .NET et configurez les langues en utilisant la propriété Language de la classe IronTesseract.

Quels avantages IronOCR offre-t-il par rapport à Tesseract standard ?

IronOCR fournit une API plus conviviale pour les applications .NET, prend en charge plus de 120 langues prêtes à l'emploi et offre un prétraitement d'images avancé pour améliorer la précision. Il s'intègre parfaitement aux projets .NET, offrant une documentation complète et un support pour les développeurs.

IronOCR peut-il gérer des documents en plusieurs langues simultanément ?

Oui, IronOCR peut traiter des documents multilingues en définissant plusieurs langues dans la propriété Language. Cette fonctionnalité est particulièrement utile pour les applications mondiales où les documents peuvent contenir du texte en différentes langues.

Quel est le processus pour configurer IronOCR dans un projet C# ?

Pour configurer IronOCR dans un projet C#, installez d'abord le paquet NuGet IronOCR/Tesseract via le Gestionnaire de paquets NuGet de Visual Studio. Ensuite, créez une instance de la classe IronTesseract dans votre code et utilisez ses méthodes pour traiter les images contenant du texte.

Comment IronOCR améliore-t-il la précision des résultats OCR ?

IronOCR améliore la précision grâce à des techniques avancées de prétraitement d'images, qui améliorent la qualité de l'image avant l'extraction du texte. Cette fonctionnalité aide à reconnaître avec précision le texte provenant d'images de qualité variable.

Quels types de documents IronOCR peut-elle traiter ?

IronOCR peut traiter une variété de types de documents, y compris les images numérisées, les PDF et les photos prises par des appareils photo numériques. Il convertit ces documents en formats de données éditables et consultables.

IronOCR est-il adapté pour automatiser les tâches de saisie de données ?

Oui, IronOCR est très efficace pour automatiser la saisie de données en convertissant les documents imprimés en texte numérique, réduisant ainsi le travail manuel et faisant gagner du temps. Il est largement utilisé dans des secteurs tels que la finance, la santé et l'éducation.

Comment IronOCR soutient-il les développeurs dans la mise en œuvre de la technologie OCR ?

IronOCR fournit une documentation complète, une API conviviale et un support en ligne 24h/24 et 7j/7 par des ingénieurs, ce qui facilite la mise en œuvre de la technologie OCR dans les applications .NET par les développeurs.

Quelles sont les principales utilisations d'IronOCR ?

IronOCR est utilisé pour numériser des documents imprimés, automatiser la saisie de données, traiter des factures et développer des logiciels d'accessibilité pour les utilisateurs malvoyants. Il est applicable dans divers secteurs, y compris la finance, la santé et l'éducation.

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