COMPARAISON AVEC D'AUTRES COMPOSANTS

Tesseract vs Microsoft OCR : comparaison tête-à-tête

Publié mars 26, 2024
Partager:

Introduction

Les développeurs doivent souvent choisir entre l'outil OCR de Tesseract et le moteur OCR de Microsoft lorsqu'il s'agit de reconnaissance optique de caractères(OCR) en C#. Malgré des capacités, une efficacité, une intégration et une facilité différentes, les deux sont des outils d'OCR efficaces pour extraire du texte à partir de photos ou de documents numérisés. Dans le cadre du développement C#, nous examinerons en détail dans cet article les mérites, les inconvénients et l'applicabilité de différents outils d'OCR tels que Tesseract par rapport à Microsoft OCR.

Qu'est-ce que l'OCR ?

La reconnaissance optique de caractères est appelée OCR. Il s'agit d'une technologie qui permet de transformer différents formats de documents (documents image numérisés, fichiers PDF ou photos d'appareil photo numérique) en données modifiables et consultables. Pour transformer les formes et les motifs d'une image en texte lisible par une machine, différents outils d'OCR tels que Google Cloud Vision ou Google Vision OCR analysent les images. Grâce à cette technique, les utilisateurs peuvent récupérer du texte à partir de photographies et l'éditer, le rechercher et en modifier le contenu comme ils le feraient avec un document numérique.

Tesseract OCR

Tesseract OCR est un logiciel libre de reconnaissance optique de caractères(OCR) parfois appelé simplement Tesseract. Tesseract, initialement créé par les laboratoires Hewlett-Packard dans les années 1980 et aujourd'hui maintenu par Google, est l'un des moteurs d'OCR les plus populaires utilisés aujourd'hui.

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

Principales caractéristiques de Tesseract OCR

  • Open-Source : Tesseract est librement disponible pour utilisation, modification et distribution par quiconque selon les termes de la licence Apache 2.0. Sa conception open-source a grandement contribué à son adoption à grande échelle et à son amélioration continue, grâce aux contributions de la communauté.
  • Prise en charge des langues : Tesseract est capable de reconnaître plus de 100 scripts et jeux de caractères différents en plus de ces langues. Grâce à sa capacité multilingue, il convient à un large éventail d'applications d'OCR dans différentes langues et zones géographiques.
  • Précision : Tesseract est réputé pour son excellente précision en matière de reconnaissance de texte, en particulier lorsqu'il est configuré correctement et entraîné avec des données pertinentes. Il peut extraire de manière fiable du texte à partir de photos présentant divers problèmes, notamment des angles déformés, une qualité médiocre et un éclairage inadéquat.
  • Options : Tesseract offre un grand nombre d'options de configuration et de personnalisation. Pour des situations d'utilisation particulières, les utilisateurs peuvent régler plusieurs paramètres afin de maximiser les performances de l'OCR. En outre, Tesseract peut être couplé à une variété de plateformes et de langages informatiques, tels que Java, C++, Python et C#, ce qui permet aux développeurs de tirer parti de ses capacités dans un large éventail d'applications.
  • Tesseract fait l'objet d'un développement et d'une maintenance constants, de nouvelles fonctionnalités étant régulièrement ajoutées pour améliorer sa précision, ses performances et la prise en charge des langues. La communauté open-source de Tesseract soutient son développement continu, garantissant qu'il sera toujours un outil OCR de pointe.

Installer Tesseract OCR For .NET

La première étape consiste à installer Tesseract OCR sur votre ordinateur. Le dépôt GitHub officiel de Tesseract est l'endroit où vous pouvez obtenir le programme d'installation de Tesseract : https://github.com/tesseract-ocr/tesseract.

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

Naviguez vers Outils -> NuGet Package Manager -> Gérer les paquets NuGet pour la solution après avoir ouvert votre projet C# dans Visual Studio. Vous devriez pouvoir localiser le paquet nommé "Tesseract" ou "Tesseract.NET" en recherchant "Tesseract" dans le gestionnaire de paquets NuGet. Pour inclure le paquet 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&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 Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports Tesseract
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
			Using img = Pix.LoadFromFile("image.png")
				Using page = engine.Process(img)
					Dim text = page.GetText()
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
VB   C#

Pour ce faire, indiquez l'emplacement de votre répertoire d'installation de Tesseract et la ou les langues que vous souhaitez utiliser dans les options du constructeur de TesseractEngine. Remplacez "eng" par le code de la langue ou des langues que vous souhaitez utiliser(par exemple, "eng" pour l'anglais) et "path\to_tesseract_folder" avec le chemin réel de votre répertoire d'installation de Tesseract.

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

Qu'est-ce que Microsoft OCR ?

L'offre Cognitive Services de Microsoft comprendMicrosoft OCRparfois appelée Microsoft Optical Character Recognition (reconnaissance optique de caractères). Microsoft Azure propose une solution de reconnaissance optique de caractères basée sur le cloud(OCR) qui permet d'extraire du texte à partir de documents et de photos grâce à des fonctions de reconnaissance de texte améliorées. Microsoft OCR utilise des réseaux neuronaux profonds et des techniques d'apprentissage automatique pour reconnaître avec une excellente précision des textes provenant de sources diverses.

Caractéristiques principales

  • Intégration avec Azure Cognitive Services : Microsoft OCR fonctionne à l'unisson avec Azure Cognitive Services, un ensemble d'API et de services Microsoft Azure alimentés par l'IA. Grâce à cette connexion, les développeurs peuvent facilement intégrer les fonctions Microsoft OCR dans les applications et les flux de travail en utilisant les API REST, les SDK et les bibliothèques client.
  • Précision et performances élevées : Grâce à ses modèles d'apprentissage automatique sophistiqués qui ont été formés sur d'énormes ensembles de données, Microsoft OCR permet une reconnaissance de texte avec une précision et des performances élevées. Grâce à sa capacité à extraire avec précision du texte à partir de photographies à la mise en page complexe, de caractères variés et de textes manuscrits, il convient à un large éventail d'applications d'OCR.
  • Évolutivité et fiabilité : Microsoft OCR, un composant d'Azure Cognitive Services, offre évolutivité et fiabilité, ce qui le rend approprié pour les applications ayant des exigences de traitement différentes. Il peut gérer efficacement de grandes quantités de documents et de multiples demandes à la fois, en garantissant un temps de fonctionnement et des performances stables.
  • Prise en charge multilingue : Microsoft OCR, comme d'autres programmes d'OCR, permet la reconnaissance multilingue, ce qui permet aux utilisateurs d'extraire le texte des photos dans une variété de langues et de jeux de caractères. Grâce à sa prise en charge multilingue, il convient aux applications internationales nécessitant une grande variété de langues.

    Vous devez combiner Microsoft OCR avec Azure Cognitive Services - et plus particulièrement l'API de vision par ordinateur - pour l'utiliser dans un projet C#. C'est ainsi que 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 accéder à plusieurs services pendant la période d'essai.

Configurer Azure Cognitive Services

Le service Computer Vision dans Azure Cognitive Services doit être configuré lorsque vous disposez d'un compte Azure.

  • Ouvrir lePortail Azure.
  • Recherchez "Computer Vision" en cliquant sur "Create a resource".
  • 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 invites.
  • Une fois le service construit, allez dans la ressource et enregistrez la clé d'abonnement et l'URL du point final ; vous en aurez besoin pour vérifier l'authenticité de vos demandes.

Installer le SDK Azure Cognitive Services

Il est possible d'utiliser Microsoft Azure. Pour communiquer avec l'API Computer Vision dans votre projet C#, utilisez le package NuGet CognitiveServices.Vision.ComputerVision.

Naviguez vers Tools -> NuGet Package Manager puis Manage NuGet Packages for Solution après avoir ouvert votre projet C# dans Visual Studio.

Installez le paquet en recherchant "Microsoft.Azure.CognitiveServices.Vision.ComputerVision".

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

Microsoft OCR à l'aide de C# ;

Après avoir installé le SDK, vous pouvez utiliser l'API Computer Vision pour effectuer l'OCR. Vous trouverez ci-dessous un exemple d'introduction à l'utilisation de l'API Vision par ordinateur pour effectuer une reconnaissance optique de caractères (OCR) sur une image :

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        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;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        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
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
		Dim endpoint = "YOUR_ENDPOINT"
		Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
		Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
		Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
		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
VB   C#

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

Qu'est-ce que l'IronOCR ?

Les développeurs peuvent intégrer des fonctions de reconnaissance de texte dans leurs applications C# ou VB.NET grâce à 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 médias. Iron Software, une entreprise de développement de logiciels spécialisée dans les composants et les bibliothèques .NET, crée et entretient IronOCR.

Principales caractéristiques de l'IronOCR

  • Intégration simple : Vous pouvez incorporer IronOCR dans vos projets C# ou VB.NET en toute simplicité en utilisant les packages NuGet ou en accédant à la bibliothèque directement dans votre projet.
  • OCR polyvalente : IronOCR peut reconnaître du texte à partir d'un large éventail de sources, telles que des captures d'écran, des documents numérisés, des fichiers PDF et des photographies. Il est capable de traiter plusieurs types d'images, notamment BMP, TIFF, PNG et JPEG.
  • Reconnaissance précise du texte : IronOCR atteint une excellente précision de reconnaissance de texte en utilisant des algorithmes d'OCR sophistiqués. Il permet d'extraire de manière fiable du texte dans des photographies ayant des résolutions, des polices et des arrière-plans différents.
  • Prise en charge de plusieurs langues : IronOCR convient aux applications multilingues car il peut reconnaître plusieurs langues. Il permet une formation linguistique personnalisée et est livré avec des packs linguistiques intégrés pour les langues les plus courantes.
  • Extraction de texte PDF : IronOCR peut extraire le texte des PDF numérisés ou basés sur des images. Lorsqu'il supprime du texte dans des documents PDF, il peut conserver la mise en forme et la présentation d'origine du contenu.
  • Prétraitement de l'image : Avant le traitement OCR, IronOCR peut améliorer la qualité des images entrantes grâce à des fonctions de prétraitement d'image. Il s'agit de tâches telles que le désalignement, la modification du contraste et la réduction du bruit.

IronOCR utilisant C&num ;

Voici un exemple de base en C# :

var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	Input.AddImage("Demo.png")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
	Console.ReadKey()
End Using
VB   C#

Nous pouvons extraire des données de l'image avec la plus grande précision OCR en utilisant le code mentionné ci-dessus. En outre, IronOCR facilite la conversion de textes extraits de documents manuscrits en formats de fichiers modifiables, notamment Word. Le document scanné peut également être transformé en un PDF consultable par nos soins. Avec IronOCR, le résultat peut être stocké dans différents formats de sortie de l'OCR. Pour en savoir plus sur le code, consultezici.

Image source :

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

Résultat :

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

Conclusion

En conclusion, Tesseract et Microsoft OCR, qui présentent chacun des avantages et des inconvénients uniques, offrent de solides capacités d'OCR aux développeurs C#. Parce que Tesseract offre personnalisation et flexibilité, c'est un bon choix pour les applications qui requièrent une grande finesse de réglage. Cependant, Microsoft OCR est la meilleure option pour les applications C# qui nécessitent des fonctionnalités de reconnaissance de texte sophistiquées, en raison de sa grande précision, de son évolutivité et de sa connexion transparente avec les services Azure. Pour leurs projets C#, les développeurs doivent évaluer leurs besoins individuels, leurs exigences en matière de modification et leurs limites financières avant de choisir entre Tesseract et Microsoft OCR.

Enfin, IronOCR est une solution d'OCR remarquable qui offre une intégration, une flexibilité et une précision exceptionnelles. Grâce à sa précision inégalée, à ses algorithmes avancés et à sa capacité à identifier un large éventail de types de documents, y compris manuscrits, IronOCR est la meilleure solution d'OCR actuellement disponible sur le marché. Parce qu'IronOCR s'intègre en douceur dans de nombreux documents et langages informatiques courants, il garantit l'accessibilité aux développeurs tout en conservant une interface intuitive.

Vous pouvez essayer gratuitement l'édition de développement abordable d'IronOCR, et si vous achetez l'ensemble IronOCR, vous obtiendrez une licence à vie. Avec un prix de départ de $749, l'offre groupée IronOCR est un excellent rapport qualité-prix car elle propose un prix unique pour plusieurs appareils. Pour en savoir plus sur le coût, visitez le site de l'IronOCRsite web. Cliquez icilien pour en savoir plus sur les produits d'Iron Software.

< PRÉCÉDENT
ABBYY FineReader vs Tesseract : Comparaison OCR
SUIVANT >
Comparaison de l'OCR de factures en Open Source : Trouver le meilleur outil