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 différentes natures en données éditables et recherchables. Elle transforme des images numérisées, des fichiers PDF et des photos d'appareil photo numérique en données qui peuvent être éditées et recherchées. Cette technologie est largement utilisée pour convertir des documents imprimés en format numérique pour l'édition, la recherche et le stockage, réduisant l'espace physique occupé par les documents. L'OCR joue un rôle majeur dans l'automatisation de la saisie de données, permettant ainsi aux entreprises et aux organisations de gagner beaucoup de temps en réduisant le travail manuel.

C'est un processus qui utilise des techniques avancées d'apprentissage automatique et de reconnaissance de formes pour extraire précisément le texte des images. Les derniers développements liés à l'OCR ont augmenté sa précision, prenant ainsi en charge 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 apparue comme un outil indispensable là où le traitement de plusieurs documents imprimés rapidement était une exigence. Cet article utilisera Tesseract pour l'OCR d'images avec des données en plusieurs langues.

Comment utiliser Tesseract OCR avec plusieurs langues

  1. Tout d'abord, installez le package NuGet IronOCR/Tesseract dans votre projet .NET.
  2. Créez une instance de la classe IronTesseract, qui initialisera le moteur OCR.
  3. La propriété de langue prend en charge plus d'une langue.
  4. Spécifiez le chemin du fichier image que vous souhaitez traiter, puis créez un objet OcrInput.
  5. Maintenant, effectuez l'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 plus tard maintenu par Google. Il est célèbre pour sa grande précision et son adaptabilité, ce qui en fait l'un des OCR les plus éminents. Tesseract prend en charge la détection de scripts, reconnaît le texte dans de nombreuses langues et peut gérer plusieurs langues ; ainsi, il est généralement utilisé pour les projets nécessitant des documents multilingues et une prise en charge.

Le moteur OCR Tesseract fonctionne sur les informations contenues dans n'importe quel pixel unique 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 d'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, le HTML et le PDF consultable.

L'un des grands avantages 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 simple de texte à des tâches complexes dans la numérisation de documents historiques, le traitement de factures, ou même des 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, procédez au "menu fichier." Sous le "menu fichier," il y a l'option "nouveau projet." Sous "nouveau projet," cliquez sur "Application Console." Dans ce post, nous créerons des documents PDF en utilisant 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 fournies. Puis, comme indiqué dans 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 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, il 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 l'installateur Tesseract : https://github.com/tesseract-ocr/tesseract.

Il serait préférable de télécharger Tesseract OCR sur votre ordinateur en suivant les instructions d'installation 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# en utilisant le gestionnaire de paquets NuGet de Visual Studio.

Ouvrez le gestionnaire de paquets NuGet dans votre projet Visual Studio depuis Outils -> Gestionnaire de paquets NuGet -> Gérer les paquets NuGet pour la solution. Ensuite, recherchez "Tesseract" dans le gestionnaire de paquets 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 for Multiple Languages (Developer Tutorial): Figure 3 - Rechercher Tesseract dans l'onglet de navigation

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é l'enveloppe 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. Il définit initialement le chemin vers les fichiers de données linguistiques de 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 for Multiple Languages (Developer Tutorial): Figure 4 - Exemple d'entrée

Il charge une image spécifiée par imagePath en utilisant la méthode Pix.LoadFromFile. Plus spécifiquement, 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 for Multiple Languages (Developer Tutorial): Figure 5 - Exemple de sortie console

L'image sera ensuite traitée en utilisant la méthode Process de la classe moteur, où elle est analysée, le contenu du texte extrait, et stocké dans la variable text. Le texte extrait est ensuite imprimé sur la console, créant une visualisation de la façon dont l'OCR fonctionne.

Qu'est-ce que IronOCR?

IronOCR est une bibliothèque OCR propriétaire axée sur .NET. Elle ajoute des capacités OCR aux applications .NET et permet l'extraction de texte à partir d'images, de documents numérisés, de PDF et de tous les autres médias visuels. IronOCR, basé sur le moteur Tesseract, inclut des fonctionnalités supplémentaires adaptées aux applications d'entreprise.

IronOCR offre un support linguistique considérable — plus de 120 langues avec une prise en charge de la détection automatique des langues et du 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 hautement critique.

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

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 exemples qui aideront tout développeur à démarrer rapidement. Il prend en charge une large gamme de formats d'image et de documents PDF. Des fonctionnalités intégrées de prétraitement d'image avancé, 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 à l'aide de l'outil de gestion des paquets 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

Il possède une boîte de recherche intégrée, qui affiche une liste de packages provenant du site Web NuGet. Comme montré dans la capture d'écran ci-dessous, nous rechercherons le gestionnaire de paquets pour la phrase IronOCR :

Tesseract OCR for Multiple Languages (Developer Tutorial): Figure 8 - Rechercher IronOCR dans l'explorateur de solutions

Les résultats de recherche peuvent proposer une liste de solutions potentielles. Vous devrez sélectionner le package de solution nécessaire à installer.

Installez également les packs linguistiques Tesseract nécessaires 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 et n'a pas besoin d'être installé.

Tesseract OCR for Multiple Languages (Developer Tutorial): Figure 9 - Installer le package de langue française

Installez l'espagnol depuis le package NuGet.

Tesseract OCR for Multiple Languages (Developer Tutorial): Figure 10 - Installer le package de langue espagnole

Lire plusieurs langues avec IronOCR avec le moteur Tesseract

L'exemple suivant démontre comment reconnaître du 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("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 la reconnaissance optique des caractères sur une image contenant des caractères en anglais, espagnol et français. Le programme commence par importer l'espace de noms requis pour IronOCR et déclarer une classe nommée Program avec une méthode Main, qui est 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 garantit que le moteur OCR peut reconnaître et traiter le texte dans l'une de ces trois langues.

Le chemin vers le fichier image d'entrée est défini à l'aide de la variable inputFile. L'image est ensuite chargée dans une instruction using avec une instance de la classe OcrInput pour une gestion et é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 pour utiliser 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 - Sortie de texte reconnu

Pourquoi IronOCR est-il meilleur que Tesseract ?

IronOCR est plus convivial par rapport à Tesseract et offre certains avantages. Tout d'abord, IronOCR offre un excellent support linguistique avec 125 langues directement utilisables, tandis que Tesseract peut nécessiter des configurations complexes et un entraînement supplémentaire pour une performance optimale avec certaines de ses 100 langues prises en charge. De plus, IronOCR s'intègre facilement dans les applications .NET et est livré avec une documentation complète.

IronOCR a une courbe d'apprentissage moins abrupte et nécessite moins de configuration technique que Tesseract. Il dispose également de fonctionnalités avancées de prétraitement d'image et de mises à jour régulières pour une meilleure précision et fiabilité avec des types de documents complexes. IronOCR est un excellent choix pour les développeurs cherchant une solution OCR solide, polyvalente et facilement applicable.

Conclusion

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

Bien que Tesseract et IronOCR soient des technologies OCR robustes, chacune a des capacités et des forces uniques. Tesseract, étant open-source, est fiable pour toute personne cherchant une solution gratuite et possède des communautés actives et une amélioration continue.

En revanche, IronOCR est une bibliothèque propriétaire pour le .NET Framework, offrant une meilleure expérience utilisateur avec une intégration plus facile et une prise en charge de la plupart des types de fichiers image. Il offre également de bonnes performances en reconnaissance de texte, notamment avec du contenu image 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 rentable et, une fois achetée, offre 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 un support en ligne d'ingénierie 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