Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
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.
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 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.
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.
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
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.
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.
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 :
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.
Le service Computer Vision dans Azure Cognitive Services doit être configuré lorsque vous disposez d'un compte Azure.
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".
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
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".
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.
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
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 :
Résultat :
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.
9 produits de l'API .NET pour vos documents de bureau