Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

Tesseract vs Microsoft OCR : Comparaison tête à tête

Les développeurs doivent souvent choisir entre l'outil d'OCR Tesseract et le moteur OCR de Microsoft en ce qui concerne la reconnaissance optique de caractères (OCR) en C#. Bien qu'ayant des capacités, une efficacité, une intégration et une facilité différentes, les deux sont des outils OCR efficaces pour extraire du texte à partir de photos ou de documents numérisés. Dans le cadre du développement C#, nous allons examiner en détail les avantages, les inconvénients et l'applicabilité des différents outils OCR comme Tesseract vs Microsoft OCR dans cet article.

Qu'est-ce que l'OCR ?

La reconnaissance optique de caractères est appelée OCR. C'est une technologie qui permet de transformer divers formats de documents - tels que des documents d'images numérisées, des fichiers PDF ou des photos d'appareils photo numériques - en données éditables et recherchables. Pour transformer les formes et motifs d'une image en texte lisible par machine, différents outils OCR tels que Google Cloud Vision ou Google Vision OCR analysent les images. En utilisant cette technique, les utilisateurs peuvent extraire du texte à partir de photographies et éditer, rechercher et modifier le contenu tout comme ils le feraient avec un document numérique.

OCR Tesseract

Tesseract OCR est un moteur de reconnaissance optique de caractères (OCR) open-source, parfois simplement appelé Tesseract. Tesseract, qui a été initialement créé par Hewlett-Packard Laboratories dans les années 1980 et est maintenant maintenu par Google, est l'un des moteurs OCR les plus populaires en usage aujourd'hui.

La fonction principale de Tesseract est d'identifier le texte inclus dans les images ou de manipuler des documents numérisés et de les traduire en texte lisible par machine. Cela rend le texte éditable, consultable et manipulable en permettant aux utilisateurs d'extraire du texte à partir de diverses sources, y compris l'analyse de documents numérisés, les photos et les fichiers PDF.

Caractéristiques clés de Tesseract OCR

  • Open-Source : Tesseract est librement disponible pour utilisation, modification et distribution par quiconque sous les termes de la licence Apache 2.0. Son design open-source a grandement aidé à son adoption large et son amélioration continue, grâce aux contributions de la communauté.
  • Support linguistique : Tesseract est capable de reconnaître plus de 100 scripts et ensembles de caractères différents en plus des langues. Il est approprié pour une large gamme d'applications OCR dans différentes langues et régions géographiques grâce à sa capacité multilingue.
  • Précision : Tesseract est bien connu pour son excellente précision de reconnaissance de texte, particulièrement lorsqu'il est correctement configuré et formé avec des données pertinentes. Il peut extraire de manière fiable du texte à partir de photos avec divers problèmes, y compris des angles déformés, une faible qualité, et un éclairage inadéquat.
  • Options : Tesseract offre une grande variété d'options de configuration et de personnalisation. Pour des cas d'utilisation particuliers, les utilisateurs peuvent ajuster plusieurs paramètres pour maximiser les performances de l'OCR. De plus, Tesseract peut être couplé avec une variété de plateformes et de langages de programmation, tels que Java, C++, Python, et C#, permettant aux développeurs de profiter de ses capacités dans un large éventail d'applications.
  • Tesseract subit un développement et une maintenance constants, avec de nouvelles fonctionnalités ajoutées régulièrement pour améliorer sa précision, ses performances et le support linguistique. La communauté open-source de Tesseract soutient son développement continu, garantissant qu'il sera toujours un outil OCR à la pointe de la technologie.

Installer Tesseract OCR pour .NET

Installer Tesseract OCR sur votre ordinateur est la première étape. Le dépôt GitHub officiel de Tesseract est l'endroit où vous pouvez obtenir l'installateur Tesseract : https://github.com/tesseract-ocr/tesseract.

Pour installer Tesseract OCR sur votre ordinateur, suivez les instructions de configuration spécifiques à votre système d'exploitation (Windows, macOS ou Linux). Après avoir installé Tesseract OCR, utilisez le gestionnaire de packages NuGet de Visual Studio pour ajouter le wrapper Tesseract.NET à votre projet C#.

Accédez aux Outils -> Gestionnaire de packages NuGet -> Gérer les packages NuGet pour la solution après avoir ouvert votre projet C# dans Visual Studio. Vous devriez pouvoir localiser le package nommé "Tesseract" ou "Tesseract.NET" en recherchant "Tesseract" dans le gestionnaire de packages NuGet. Pour inclure le package dans votre projet, choisissez-le et cliquez sur Installer.

Tesseract vs Microsoft OCR (Comparaison des fonctionnalités d'OCR) : Figure 1 - Tesseract

OCR Tesseract utilisant C

Suivez ces étapes pour utiliser Tesseract dans votre projet C# :

using Tesseract;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            // Load the image from which to extract text
            using (var img = Pix.LoadFromFile("image.png"))
            {
                // Process the image and extract the text
                using (var page = engine.Process(img))
                {
                    // Get the extracted text
                    var text = page.GetText();
                    Console.WriteLine(text); // Print the extracted text
                }
            }
        }
    }
}
using Tesseract;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            // Load the image from which to extract text
            using (var img = Pix.LoadFromFile("image.png"))
            {
                // Process the image and extract the text
                using (var page = engine.Process(img))
                {
                    // Get the extracted text
                    var text = page.GetText();
                    Console.WriteLine(text); // Print the extracted text
                }
            }
        }
    }
}
Imports Tesseract

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
		Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
			' Load the image from which to extract text
			Using img = Pix.LoadFromFile("image.png")
				' Process the image and extract the text
				Using page = engine.Process(img)
					' Get the extracted text
					Dim text = page.GetText()
					Console.WriteLine(text) ' Print the extracted text
				End Using
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Pour accomplir cela, fournissez la localisation de votre répertoire d'installation Tesseract et la langue ou langues que vous souhaitez utiliser dans les options du constructeur TesseractEngine. Remplacez "eng" par le code langue pour la langue ou les langues que vous souhaitez utiliser (par exemple, "eng" pour l'anglais) et "path_to_tesseract_folder" par le chemin réel de votre répertoire d'installation de Tesseract.

Après avoir configuré Tesseract dans votre projet C#, vous pouvez désormais utiliser ses fonctionnalités d'OCR pour extraire du texte à partir d'images. L'instance TesseractEngine peut être utilisée pour traiter une image une fois chargée en utilisant la classe Pix pour extraire le texte ou exécuter l'OCR sur un fichier image, en remplaçant "image.png" par le chemin du fichier image.

Qu'est-ce que Microsoft OCR ?

Le package de services cognitifs de Microsoft inclut Microsoft OCR, parfois appelé reconnaissance optique de caractères Microsoft. Microsoft Azure propose une solution OCR basée sur le cloud qui peut extraire du texte à partir de documents et de photos avec des capacités de reconnaissance de texte améliorées. Microsoft OCR utilise des réseaux neuronaux profonds et des techniques d'apprentissage automatique pour reconnaître du texte à partir de diverses sources avec une excellente précision.

Principales caractéristiques

  • Intégration avec Azure Cognitive Services : Microsoft OCR fonctionne en harmonie avec Azure Cognitive Services, une collection d'APIs et de services Microsoft Azure alimentés par l'IA. Grâce à cette connexion, les développeurs peuvent facilement intégrer les fonctionnalités de Microsoft OCR dans des applications et flux de travail en utilisant des API REST, des SDK et des bibliothèques clientes.
  • Haute précision et performance : Grâce à ses modèles d'apprentissage automatique sophistiqués qui ont été formés sur d'énormes ensembles de données, Microsoft OCR offre une reconnaissance de texte avec une haute précision et performance. Avec sa capacité à extraire précisément du texte à partir de photographies avec des mises en page complexes et divers caractères, il est approprié pour un large éventail d'applications OCR.
  • Évolutivité et fiabilité : Microsoft OCR, un composant d'Azure Cognitive Services, fournit évolutivité et fiabilité, le rendant approprié pour des applications avec des besoins de traitement différents. Il peut gérer efficacement de grandes quantités de documents et plusieurs requêtes à la fois, garantissant disponibilité et performance stable.
  • Support multilingue : Microsoft OCR, comme d'autres programmes OCR, permet la reconnaissance multilingue, permettant aux utilisateurs d'extraire du texte à partir de photos dans une variété de langues et d'ensembles de caractères. Il est approprié pour des applications mondiales avec une variété de besoins linguistiques grâce à son support multilingue.

Vous devez combiner Microsoft OCR avec Azure Cognitive Services - plus spécifiquement, l'API de vision par ordinateur - pour l'utiliser dans un projet C#. Voici comment vous pouvez commencer :

Créer un compte Azure

Vous devez créer un compte Azure si vous n'en avez pas déjà un. Vous pouvez créer un compte Azure gratuit et avoir accès à plusieurs services pendant la période d'essai.

Configurer Azure Cognitive Services

Le service de vision par ordinateur dans Azure Cognitive Services doit être configuré lorsque vous possédez un compte Azure.

  • Ouvrez le Portail Azure.
  • Recherchez "Computer Vision" en cliquant sur "Créer une ressource".
  • Cliquez sur "Créer" après avoir sélectionné le service de vision par ordinateur.
  • Pour configurer le service, choisissez l'abonnement et le niveau de prix en suivant les instructions.
  • Après la création du service, allez à la ressource et sauvegardez la clé d'abonnement et l'URL du point d'accès ; vous aurez besoin d'eux pour vérifier l'authenticité de vos requêtes.

Installer le SDK Azure Cognitive Services

Utiliser Microsoft Azure est possible. Pour communiquer avec l'API de vision par ordinateur dans votre projet C#, utilisez le package NuGet CognitiveServices.Vision.ComputerVision.

Accédez aux Outils -> Gestionnaire de packages NuGet puis Gérer les packages NuGet pour la solution après avoir ouvert votre projet C# dans Visual Studio.

Installez le package en effectuant une recherche pour "Microsoft.Azure.CognitiveServices.Vision.ComputerVision".

Tesseract vs Microsoft OCR (Comparaison des fonctionnalités d'OCR) : Figure 2 - Microsoft.Azure.CognitiveServices.Vision.ComputerVision

Microsoft OCR utilisant C

Après l'installation du SDK, vous pouvez utiliser l'API de vision par ordinateur pour effectuer l'OCR. Un exemple introductif d'utilisation de l'API de vision par ordinateur pour effectuer l'OCR sur une image se trouve ci-dessous :

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Set your endpoint and subscription key for authentication
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";

        // Create a new instance of the ComputerVisionClient
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };

        // Perform OCR on the specified image
        var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");

        // Iterate over the results and print the recognized text
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Set your endpoint and subscription key for authentication
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";

        // Create a new instance of the ComputerVisionClient
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };

        // Perform OCR on the specified image
        var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");

        // Iterate over the results and print the recognized text
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Set your endpoint and subscription key for authentication
		Dim endpoint = "YOUR_ENDPOINT"
		Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"

		' Create a new instance of the ComputerVisionClient
		Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}

		' Perform OCR on the specified image
		Dim result = Await client.RecognizePrintedTextInStreamAsync(True, "image.png")

		' Iterate over the results and print the recognized text
		For Each region In result.Regions
			For Each line In region.Lines
				For Each word In line.Words
					Console.WriteLine(word.Text)
				Next word
			Next line
		Next region
	End Function
End Class
$vbLabelText   $csharpLabel

Pour effectuer l'OCR sur un fichier image, remplacez "image.png" dans l'exemple de code ci-dessus par le chemin vers le fichier image. Ce code récupérera le texte reconnu à partir de l'image en l'envoyant à l'API de vision par ordinateur. L'URL du point d'accès et la clé d'abonnement que vous avez reçues après avoir configuré le service de vision par ordinateur dans Azure Cognitive Services doivent être substituées par "YOUR_ENDPOINT" et "YOUR_SUBSCRIPTION_KEY".

Qu'est-ce qu'IronOCR?

Les développeurs peuvent incorporer des capacités de reconnaissance de texte dans leurs applications C# ou VB.NET avec IronOCR, une bibliothèque OCR .NET. Il offre une API conviviale pour l'extraction de texte à partir de PDF, d'images et d'autres types de supports. Iron Software, une entreprise de développement de logiciels spécialisée dans les composants et bibliothèques .NET, crée et maintient IronOCR.

Principales fonctionnalités de IronOCR

  • Intégration simple : Vous pouvez intégrer IronOCR dans vos projets C# ou VB.NET facilement en utilisant des packages NuGet ou en accédant directement à la bibliothèque dans votre projet.
  • OCR polyvalent : IronOCR peut reconnaître du texte à partir d'une large gamme de sources, telles que des captures d'écran, des documents numérisés, des fichiers PDF et des photographies. Il est capable de gérer plusieurs types d'images, y compris BMP, TIFF, PNG et JPEG.
  • Reconnaissance de texte précise : IronOCR atteint une excellente précision de reconnaissance de texte en utilisant des algorithmes OCR sophistiqués. Le texte contenu dans des photos avec diverses résolutions, polices et arrière-plans peut être extrait de manière fiable avec lui.
  • Support de plusieurs langues : IronOCR est approprié pour les applications multilingues car il peut reconnaître plusieurs langues. Il permet une formation linguistique personnalisée et inclut des packs linguistiques intégrés pour les langues populaires.
  • Extraction de texte PDF : Les fichiers PDF numérisés et basés sur des images peuvent tous deux avoir leur texte extrait par IronOCR. Lors de l'extraction de texte à partir de documents PDF, il peut conserver la mise en forme originale et la disposition du contenu.
  • Prétraitement d'images : Avant le traitement OCR, IronOCR peut améliorer la qualité des images entrantes grâce à des fonctionnalités de prétraitement d'images. Cela couvre des tâches comme la désinclinaison, l'ajustement du contraste et la réduction du bruit.

IronOCR utilisant C

Voici un exemple C# basique utilisant IronOCR :

// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
    // Add the image for OCR processing
    Input.AddImage(@"Demo.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the recognized text
    Console.WriteLine(Result.Text);
    Console.ReadKey(); // Wait for user input before closing
}
// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
    // Add the image for OCR processing
    Input.AddImage(@"Demo.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the recognized text
    Console.WriteLine(Result.Text);
    Console.ReadKey(); // Wait for user input before closing
}
' Create an instance of IronTesseract
Dim Ocr = New IronTesseract() ' nothing to configure
' Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Prepare the image input and perform OCR
Using Input = New OcrInput()
	' Add the image for OCR processing
	Input.AddImage("Demo.png")
	' Read the text from the image
	Dim Result = Ocr.Read(Input)
	' Print the recognized text
	Console.WriteLine(Result.Text)
	Console.ReadKey() ' Wait for user input before closing
End Using
$vbLabelText   $csharpLabel

Nous pouvons extraire des données de l'image avec la plus haute précision d'OCR en utilisant le code mentionné ci-dessus. De plus, IronOCR facilite la conversion de texte extrait de documents en formats de fichiers éditables, y compris Word. Le document numérisé peut également être transformé en PDF consultable par nous. Avec IronOCR, le résultat peut être stocké dans divers formats de sortie OCR. Pour en savoir plus sur le code, référez-vous ici.

Image Source :

Tesseract vs Microsoft OCR (Comparaison des fonctionnalités d'OCR) : Figure 3 - Image d'entrée

Résultat :

Tesseract vs Microsoft OCR (Comparaison des fonctionnalités d'OCR) : Figure 4 - Sortie console

Conclusion

En conclusion, Tesseract et Microsoft OCR, chacun avec des avantages et des inconvénients uniques, offrent de puissantes capacités OCR pour les développeurs C#. Parce que Tesseract offre personnalisation et flexibilité, il est un bon choix pour les applications qui nécessitent beaucoup de réglages fins. Cependant, Microsoft OCR est la meilleure option pour les applications C# qui ont besoin de capacités de reconnaissance de texte sophistiquées en raison de sa haute précision, son évolutivité et sa connexion transparente avec les services Azure. Pour leurs projets C#, les développeurs devraient peser leurs besoins individuels, les exigences de modification, et les limitations budgétaires avant de décider entre Tesseract et Microsoft OCR.

Enfin, IronOCR est une solution OCR remarquable qui offre une intégration exceptionnelle, une flexibilité, et une précision. Grâce à son incomparable précision, ses algorithmes avancés et sa capacité à identifier un large éventail de types de documents, IronOCR est la meilleure solution OCR actuellement sur le marché. Car IronOCR s'intègre harmonieusement à travers de nombreux documents et langages informatiques courants, il assure l'accessibilité des développeurs tout en maintenant une interface intuitive.

Vous pouvez essayer l'édition de développement abordable de IronOCR gratuitement, et si vous achetez le package IronOCR, vous recevrez une licence à vie. Avec un prix de départ de $799, le package IronOCR est d'une excellente valeur car il propose un prix unique pour plusieurs appareils. Pour en savoir plus sur le coût, visitez le site web d'IronOCR. Cliquez sur ce lien pour en savoir plus sur les produits Iron Software.

Veuillez noterTesseract et Microsoft OCR sont des marques déposées de leurs propriétaires respectifs. Ce site n'est affilié ni approuvé ni parrainé par Tesseract ou Microsoft OCR. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont uniquement à des fins d'information et reflètent les informations disponibles publiquement au moment de la rédaction.

Questions Fréquemment Posées

Comment Tesseract et Microsoft OCR se comparent-ils en termes de support linguistique ?

Tesseract prend en charge plus de 100 langues et offre de nombreuses options de personnalisation pour les données linguistiques, ce qui le rend très polyvalent. Microsoft OCR fournit également un support multilingue via Azure Cognitive Services, permettant un traitement linguistique évolutif via le cloud.

Quel outil OCR offre une meilleure intégration avec les projets C# ?

Microsoft OCR s'intègre parfaitement avec les projets C# via Azure Cognitive Services, offrant une évolutivité basée sur le cloud. Tesseract peut être intégré en utilisant le wrapper Tesseract.NET. Alternativement, IronOCR offre une intégration facile avec les projets C# et inclut des fonctionnalités supplémentaires adaptées aux développeurs .NET.

Quels sont les principaux avantages de l'utilisation de Microsoft OCR ?

Microsoft OCR offre une grande précision, une scalabilité et un support multilingue grâce à son système cloud, Azure Cognitive Services, qui utilise des réseaux de neurones profonds pour la reconnaissance de texte.

Qu'est-ce qui rend Tesseract OCR adapté à la personnalisation ?

Tesseract OCR est open-source et fournit de nombreuses options de personnalisation permettant aux développeurs de l'adapter à divers besoins de projet. Il permet la formation linguistique personnalisée et l'affinement des paramètres de reconnaissance.

Comment IronOCR peut-il améliorer un projet C# par rapport à Tesseract et Microsoft OCR ?

IronOCR offre une intégration facile, une grande précision et un support multilingue, ainsi que des fonctionnalités avancées comme le prétraitement d'image et l'extraction de texte PDF. Il est conçu pour une utilisation transparente dans les applications .NET, offrant une interface intuitive pour les développeurs.

Quels facteurs doivent être pris en compte lors du choix d'un outil OCR pour C# ?

Lors du choix d'un outil OCR pour C#, considérez des facteurs tels que le support linguistique, la facilité d'intégration, les options de personnalisation, l'évolutivité et les exigences spécifiques du projet. Tesseract est idéal pour la personnalisation, Microsoft OCR pour l'évolutivité basée sur le cloud, et IronOCR pour la facilité d'intégration avec .NET.

IronOCR peut-il être utilisé pour convertir des images en texte dans une application C# ?

Oui, IronOCR peut être utilisé pour convertir des images en texte dans une application C#. Il prend en charge plusieurs formats d'image et offre une précision élevée dans la reconnaissance de texte, ce qui en fait un choix fiable pour les développeurs.

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