Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
OCR est l'abréviation de Optical Character Recognition (reconnaissance optique de caractères). Il permet de convertir un fichier image en texte codé machine. Les documents numérisés sont toujours enregistrés sous forme de fichier image par l'ordinateur. Les données contenues dans ces fichiers images ne peuvent pas être recherchées, modifiées ou enregistrées au format texte à l'aide d'un éditeur de texte normal ou même d'une application de traitement de texte. Le traitement OCR permet de convertir ces images en texte lisible par la machine pour un traitement ultérieur par les utilisateurs.
À l'ère moderne, les documents numérisés partagés sur int.NET sont au format numérique et le plus souvent sous forme de PDF ou d'images. Il existe un grand nombre de ressources en ligne qui convertissent l'image en texte. Cependant, la plupart des entreprises ont besoin de cette fonctionnalité dans leurs applications logicielles. C'est pourquoi il existe de nombreuses bibliothèques qui fournissent une technologie de traitement OCR à intégrer dans les applications logicielles.
Dans cet article, nous allons aborder deux des bibliothèques OCR les plus populaires pour C#. Il s'agit de
IronOCR for .NET est une bibliothèque C# permettant de numériser, de rechercher et de lire des images et des PDF. Il prend une image ou un fichier PDF en entrée et utilise le dernier moteur d'OCR Tesseract 5 custom build .NET pour produire du texte, des données structurées ou des documents PDF consultables. Son Tesseract est disponible dans plus de 125 langues ainsi qu'un support multiplateforme dans .NET Core, Standard, de la 2.0 jusqu'à la 7.
IronOCR est une API conviviale qui permet aux développeurs C# de convertir automatiquement des images en texte, en utilisant simplement la classe IronTesseract
et la clé API. Il privilégie la rapidité, la précision et la facilité d'utilisation. Il aide également l'API de vision par ordinateur à trouver le texte à l'aide d'un ensemble de modèles formés.
Une autre caractéristique puissante d'IronOCR est qu'il peut scanner les codes-barres et les codes QR de tous les fichiers images et lire leur texte. D'autres caractéristiques importantes de l'IronOCR sont présentées ci-dessous.
System.Drawing Objects
, Streams, documents PDF(dPI cible optimisé)Simple Data Output: .NET Text Strings, Barcode and QR Data, Images
Jetons maintenant un coup d'œil à l'API Google Cloud Vision.
Google Cloud Vision API est une bibliothèque client Google Cloud OCR qui prend en charge le langage C#. Il permet aux développeurs C# d'intégrer facilement les fonctions de détection de la vision par ordinateur dans les applications logicielles. Il effectue l'OCR et détecte le texte à partir de fichiers images, d'étiquettes d'images, de détection de visages et de points de repère.
L'API Google Cloud Vision utilise les API REST et RPC pour fournir un puissant système de ML pré-entraîné(apprentissage automatique) modèle. Grâce à l'API de vision d'importation du nuage, vous pouvez rapidement classer les images dans des millions de catégories prédéfinies. Il peut également détecter des objets, lire du texte dans des documents imprimés et du texte manuscrit.
Détection d'étiquettes : Renvoie des étiquettes généralisées pour l'image
Le reste de l'article se lit comme suit :
Création d'un projet Visual Studio
Installation de l'IronOCR
Installation de Google OCR
De l'image au texte
Code-barres et QR vers texte
PDF vers texte
Licences
Dans ce tutoriel, nous allons utiliser la dernière version de Visual Studio 2022. Je suppose donc que vous l'avez déjà téléchargé et installé pour C#. Si ce n'est pas le cas, vous pouvez le télécharger à partir deSite web de Visual Studio.
Nous devons maintenant créer un projet Console pour commencer à utiliser les deux bibliothèques. Suivez les étapes pour créer un projet :
Cliquez sur Créer un nouveau projet.
Sélectionnez l'application console C# parmi les options proposées.
Cliquez sur Suivant.
À partir d'informations complémentaires, sélectionnez le Framework .NET 6.0, car il s'agit de la version la plus stable.
Cliquez sur Créer et le projet sera créé à l'emplacement spécifié.
Ensuite, nous allons installer les bibliothèques dans notre projet à des fins de comparaison.
Il existe plusieurs façons d'installer la bibliothèque IronOCR. Examinons-les un par un.
NuGet est le gestionnaire de paquets qui permet de télécharger et d'installer les dépendances dans votre projet. Ses paquets contiennent le code compilé(DLL) et le fichier manifeste. Accédez-y en utilisant la méthode suivante :
Cliquez sur Gérer les paquets NuGet pour la solution
Cliquez sur Gérer les paquets NuGet
La fenêtre du gestionnaire de paquets NuGet s'ouvre alors. Recherchez IronOCR et cliquez sur Installer.
Il peut être téléchargé directement depuis le site officiel de NuGet. Suivez les étapes indiquées :
Cliquez sur le lien : "".
Cliquez sur l'option Télécharger le paquet sur le côté droit de la page.
Ouvrez le paquet téléchargé et l'installation commencera.
Il suffit de se rendre sur le site Web d'Iron Software et de naviguer jusqu'à la page Web IronOCR for .NET. Descendez jusqu'en bas et cliquez sur Download DLL ou Download Windows Installer.
Un fichier Zip sera téléchargé. Extrayez-le et ajoutez-le dans votre fichier de projet ou exécutez le programme d'installation Windows. Suivez les étapes ci-dessous pour l'ajouter à votre projet.
Cliquez avec le bouton droit de la souris sur les dépendances du projet dans Visual Studio à partir de l'explorateur de solutions.
Sélectionnez ensuite l'option Ajouter une référence de projet.
Parcourez l'emplacement du fichier DLL téléchargé.
Accédez à l'onglet Outils dans Visual Studio.
Extension de l'option NuGet Package Manager.
Install-Package IronOCR
Ceci téléchargera et installera automatiquement IronOCR dans votre projet.
Nous sommes maintenant prêts à utiliser IronOCR dans notre projet.
Un seul espace de noms est nécessaire et doit être ajouté en haut du fichier de code source où nous devons accéder à ses fonctions.
using IronOCR;
using IronOCR;
Imports IronOCR
Installons maintenant Google Vision OCR.
Pour pouvoir utiliser l'API Vision dans votre projet C#, les conditions suivantes doivent être remplies
Créer un compte Google
Créer un nouveau projet à partir de Google Cloud Console
Activer la facturation
Activer l'API Vision
Créer un compte de service et définir les informations d'identification
Télécharger les informations d'identification du compte de service au format JSON
Vous pouvez consulter la documentation officielle pour en savoir plus sur la configuration et les conditions d'utilisation de Google Cloud Visionici.
Pour installer la bibliothèque client de Google Cloud pour le traitement OCR dans Visual Studio, nous devons utiliser le gestionnaire de paquets NuGet.
Vous pouvez y accéder en utilisant la méthode suivante :
Cliquez sur Gérer les paquets NuGet pour les solutions
Cliquez sur Gérer les paquets NuGet
La fenêtre du gestionnaire de paquets NuGet s'ouvre alors. Recherchez Google Cloud Vision OCR et cliquez sur Installer.
Incluez l'espace de noms suivant pour utiliser l'API Vision de Google OCR :
using Google.Cloud.Vision.V1;
using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
Définissez également la variable d'environnement avec les informations d'identification téléchargées dans le fichier JSON.
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Maintenant, tout est installé et prêt à l'emploi.
La lecture de données à partir d'images est une tâche assez fastidieuse. La résolution et la qualité des images jouent un rôle important lors de l'extraction du contenu. Les deux bibliothèques proposent la reconnaissance optique de caractères(OCR) pour extraire le texte des images.
IronOCR permet aux développeurs de lire très facilement le contenu d'un fichier image grâce à sa puissante classe IronTesseract
. Nous utiliserons ici une image PNG pourlire le texte d'un fichier image et le code est le suivant :
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
Using Input = New OcrInput()
Input.AddImage("test-files/employmentapp.png")
Dim Result = OCR.Read(Input)
Console.WriteLine(Result.Text)
End Using
La sortie d'IronOCR correspond à l'image originale qui lui a été donnée. Le code est propre et facile à comprendre sans aucune technicité.
Google Cloud Vision OCR convertit également l'image en texte avec différentes polices. Tout d'abord, nous devons créer un client à l'aide du fichier d'informations d'identification. Ensuite, en utilisant cet objet client, nous pouvons appeler la méthode DetectText
pour obtenir une réponse sous forme d'annotation. Le code est donné comme suit :
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Dim client = ImageAnnotatorClient.Create()
Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
Dim response = client.DetectText(image)
For Each annotation In response
If annotation.Description IsNot Nothing Then
Console.WriteLine(annotation.Description)
End If
Next annotation
La même image est donnée en entrée afin de comparer les résultats des deux bibliothèques.
La sortie ci-dessus montre clairement qu'IronOCR préserve les formats de sortie de l'image. Bien que l'OCR de Google ait produit un texte de sortie précis, le formatage du tableau n'est pas préservé. IronOCR a conservé le formatage du tableau exactement comme dans l'image donnée.
IronOCR offre une fonction unique et utile lors de la lecture d'images, c'est-à-dire qu'il peut lire les codes-barres et les codes QR. Il peut détecter les codes-barres et afficher leur valeur en toute simplicité. Tout d'abord, définissez la configuration ReadBarCodes
à true (vrai), puis parcourez chaque code-barres dans les résultats de l'OCR. Le code de lecture des codes-barres est donné ci-dessous :
var OCR = new IronTesseract();
OCR.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()){
input.AddImage("test-files/Barcode.png");
var Result = OCR.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
var OCR = new IronTesseract();
OCR.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()){
input.AddImage("test-files/Barcode.png");
var Result = OCR.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
Dim OCR = New IronTesseract()
OCR.Configuration.ReadBarCodes = True
Using input = New OcrInput()
input.AddImage("test-files/Barcode.png")
Dim Result = OCR.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
Les trois codes-barres de l'entrée sont lus avec succès et leur texte caché est affiché.
L'API Google Vision ne permet pas encore cette fonctionnalité. La lecture des codes-barres peut s'avérer utile dans les applications logicielles. Cependant, Google OCR vous permet d'extraire du texte manuscrit et de récupérer le texte d'un document numérisé sous forme de fichier image. Le code pour la détection des étiquettes est le suivant :
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
Imports System
Dim client = ImageAnnotatorClient.Create()
Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
Dim labels = client.DetectLabels(image)
Console.WriteLine("Labels (and confidence score):")
Console.WriteLine(New String("="c, 30))
For Each label In labels
Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
Next label
La lecture des fichiers PDF est aussi facile que celle des fichiers image dans IronOCR. Il suffit de remplacer la méthode AddImage
par AddPdf
dans le code de lecture des images. Le code est le suivant :
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddPdf("test-files/example.PDF");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddPdf("test-files/example.PDF");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
Using Input = New OcrInput()
Input.AddPdf("test-files/example.PDF")
Dim Result = OCR.Read(Input)
Console.WriteLine(Result.Text)
End Using
Le texte extrait est formaté de la même manière que le fichier PDF.
Google OCR permet également d'extraire du texte d'un document PDF/TIFF. Cependant, il ne détecte le texte que si le fichier se trouve dans Google Cloud Storage. Pour ce faire, vous devez créer un panier de stockage Google. Le code pour C# n'est pas simple et assez long à mettre en œuvre ici. Il n'y a pas d'exemples disponibles pour la détection de textes dans des fichiers en C#. Vous pouvez consulterCode Java comme référence pour l'essayer.
IronOCR est gratuit à des fins de développement, mais il doit faire l'objet d'une licence pour une utilisation commerciale. Il propose également une version d'essai gratuite pour tester tout son potentiel en fonction de vos besoins. Le paquet Lite démarre à partir de $749 avec un fichieressai gratuit. IronOCR offre un an d'assistance et de mises à jour gratuites, puis 399 $ par an. Toutes les licences sont perpétuelles, ce qui signifie qu'elles ne sont achetées qu'une seule fois et qu'il n'y a pas de frais cachés. Vous pouvez également choisir une couverture de redistribution libre de droits pour les produits SaaS et OEM pour un achat unique de seulement 199 $. Pour plus d'informations sur les paquets de licences et les plans tarifaires, veuillez consulter le site suivantici.
Les plans tarifaires de Google Cloud Vision sont basés sur le nombre d'opérations effectuées par l'application sur une image. Pour les fichiers comme le PDF qui comportent plusieurs pages, chaque page est traitée comme une image. En outre, chaque élément appliqué à une image constitue une unité facturable distincte. Par exemple, si vous appliquez la détection de texte et la détection d'étiquette à la même image, chaque fonction sera facturée séparément. Les plans tarifaires sont indiqués ci-dessous et pour plus d'informations, veuillez consulter le site suivantlien.
IronOCR fournit aux développeurs C# l'API Tesseract la plus avancée que nous connaissons, sur n'importe quelle plateforme. IronOCR peut être déployé sur Windows, Linux, Mac, Azure, AWS, Lambda et prend en charge les projets du Framework .NET ainsi que .NET Standard et .NET Core_. Nous pouvons également lire les codes-barres dans les scans OCR, et même exporter notre OCR sous forme de HTML et de PDF consultables.
Google Cloud Vision API est une API avancée basée sur l'IA. Il fournit une variété de fonctions d'analyse d'images qui peuvent être très utiles dans la construction d'applications de ML. Il permet aux développeurs de communiquer directement avec le nuage Google à l'aide d'une clé API, ce qui signifie qu'il n'est pas nécessaire de stocker les fichiers localement.
Les licences IronOCR sont basées sur l'utilisateur, ce qui signifie que vous devez toujours acheter une licence en fonction du nombre de développeurs qui utiliseront le produit. Les licences Google Cloud Vision sont basées sur le nombre d'images à extraire et à analyser. Les licences sont mensuelles et les prix deviennent très élevés pour un grand nombre d'images par rapport à la licence IronOCR. De plus, la licence IronOCR est achetée une seule fois et peut être utilisée à vie. Elle prend en charge la distribution OEM et SaaS.
En conclusion, les deux bibliothèques possèdent des capacités d'apprentissage automatique. IronOCR a un léger avantage sur Google OCR car il est spécialement conçu pour le cadre C# .NET, ce qui permet de gagner du temps et de la rapidité. Il fournit toutes les fonctionnalités avec très peu de lignes de code, ce qui évite aux développeurs d'avoir à écrire de longs codes. Il est construit sur l'API Tesseract 5, la plus populaire, qui facilite l'intégration et l'analyse d'images et d'autres formats de fichiers avec des résultats précis. D'autre part, Google Vision OCR est construit sur l'IA et plus axé sur Java, Python et REST et ne peut fonctionner que lorsqu'il est connecté à Google Cloud. Cela peut prendre du temps car la réponse vient du côté du serveur. Vous pouvez choisir la bibliothèque en fonction de vos besoins spécifiques.
Désormais, vous pouvez obtenir 5 produits Iron pour le prix de 2. Les outils suivants sont inclus dans Iron Suite :
9 produits de l'API .NET pour vos documents de bureau