UTILISATION DE L'IRONOCR

Comment créer un scanner de reçus OCR en C#

Kannaopat Udonpant
Kannapat Udonpant
février 18, 2024
Partager:

Ce tutoriel est conçu pour aider les débutants à créer un scanner de reçus OCR en utilisant IronOCR, une API OCR en C#. À la fin de ce guide, vous comprendrez comment implémenter la reconnaissance optique de caractères (OCR) pour convertir différents types de fichiers de reçus en données modifiables et consultables en utilisant l'API de reconnaissance des reçus. Cette technologie peut changer la donne pour les entreprises qui cherchent à automatiser la gestion des dépenses et à minimiser la saisie manuelle des données. Commençons !

Comment créer un scanner de reçus OCR en C#: 1. Créez un projet de console C# dans Visual Studio

  1. Installez la bibliothèque OCR à l'aide du gestionnaire de paquets NuGet3. Chargez le reçu dans le programme à l'aide de la méthode OcrInput

  2. Extraire le texte à l'aide de la méthode Read5. Afficher le texte extrait sur la console

Conditions préalables

Avant de nous plonger dans la partie codage, assurez-vous que vous disposez des éléments suivants :

  1. Visual Studio : Ce sera notre Environnement de Développement Intégré (IDE), où nous écrirons et exécuterons notre code C#.

  2. Bibliothèque IronOCR : Nous utiliserons IronOCR, une bibliothèque OCR avancée qui peut être facilement intégrée dans des applications C#.

    1. Reçu d'exemple : Un fichier image de reçu nommé Sample_Receipt.jpg, que nous utiliserons pour tester notre implémentation OCR.

    Comment créer un scanner de reçus OCR en C#: Figure 1 - Image d'un reçu exemple

Étape 1 : Mise en place du projet

Ouvrir Visual Studio : Localisez l'icône de Visual Studio sur votre bureau ou dans le menu de vos applications et double-cliquez dessus pour ouvrir le programme.

Créer un nouveau projet : Une fois Visual Studio ouvert, vous trouverez une fenêtre de lancement. Cliquez sur le bouton "Créer un nouveau projet". Si vous avez déjà ouvert Visual Studio et que vous ne voyez pas la fenêtre de lancement, vous pouvez y accéder en cliquant sur Fichier > Nouveau > Projet dans le menu supérieur.

Sélectionner le type de projet : Dans la fenêtre « Créer un nouveau projet », vous verrez une variété de modèles de projet. Dans la zone de recherche, tapez « Console App » pour filtrer les options, puis sélectionnez Console App (.NET Core) ou Console App (.NET Framework), selon votre préférence et compatibilité. Ensuite, cliquez sur le bouton Suivant.

Configurer votre nouveau projet : Vous verrez maintenant un écran intitulé « Configurer votre nouveau projet ».

  • Dans le champ Nom du projet, entrez OCRReceiptScanner comme nom de votre projet.
  • Choisissez ou confirmez l'emplacement où votre projet sera enregistré dans le champ de l'emplacement.
  • En option, vous pouvez également spécifier un nom de solution si vous souhaitez qu'il soit différent du nom du projet.
  • Cliquez sur le bouton Suivant après avoir rempli ces détails.

    Informations supplémentaires : Il se peut qu'on vous demande de sélectionner le Framework .NET cible. Choisissez la version la plus récente (sauf si vous avez des exigences de compatibilité spécifiques) et cliquez sur Créer.

Étape 2 : Intégration de l'IronOCR

Avant de pouvoir utiliser la bibliothèque IronOCR, nous devons l'inclure dans notre projet. Procédez comme suit :

  1. Cliquez avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions.

  2. Choisissez "Manage NuGet Packages".

  3. Dans la fenêtre du gestionnaire de packages NuGet, vous verrez plusieurs onglets comme Parcourir, Installé, Mises à jour, et Consolider. Cliquez sur l'onglet Parcourir.

  4. Dans la boîte de recherche, tapez IronOcr. Il s'agit du nom de la bibliothèque que nous souhaitons ajouter à notre projet. Appuyez sur la touche "Entrée" pour effectuer une recherche.

  5. Les résultats de la recherche afficheront le paquet de bibliothèques IronOCR. Ce devrait être l'un des premiers résultats que vous verrez. Cliquez dessus pour le sélectionner.

  6. Après avoir sélectionné le paquet IronOCR, vous remarquerez un panneau sur le côté droit affichant des informations sur le paquet, y compris sa description et sa version. Il y a également un bouton Installer dans ce panneau.

    Comment créer un scanner de reçus OCR en C#: Figure 2 - Installation de IronOCR via le gestionnaire de packages NuGet

  7. Cliquez sur le bouton Installer. Cette action peut vous inviter à revoir les changements et peut afficher une liste de dépendances qui seront incluses avec IronOCR. Examinez les modifications et les dépendances, et si tout semble correct, confirmez et procédez à l'installation.

Étape 3 : Configuration du projet

Après avoir installé IronOCR, la prochaine étape consiste à configurer votre projet. Voici comment :

Ajouter des espaces de noms : En haut de votre fichier Program.cs, incluez les espaces de noms suivants :

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
$vbLabelText   $csharpLabel

Paramètres de configuration : Si vous avez des paramètres de configuration tels qu'une clé API ou une clé de licence, assurez-vous de les inclure. Pour IronOCR, vous devrez définir la clé de licence comme indiqué dans le code fourni :

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
$vbLabelText   $csharpLabel

Étape 4 : Lecture du reçu

Maintenant, écrivons le code pour lire le reçu.

Définissez le chemin vers votre reçu : Spécifiez le chemin vers le fichier de reçu que vous souhaitez numériser.

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
$vbLabelText   $csharpLabel

Bloc Try-Catch : Implémentez la gestion des erreurs en utilisant un bloc try-catch. Cela vous aidera à gérer les exceptions qui surviennent au cours du processus de ROC.

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Étape 5 : Mise en œuvre du RCO

À l'étape 5, nous abordons la fonctionnalité principale de notre application : la mise en œuvre de la reconnaissance optique de caractères (OCR) pour lire et interpréter les données de notre reçu. Il s'agit d'initialiser le moteur d'OCR, de configurer l'entrée, d'effectuer l'opération d'OCR et d'afficher les résultats.

Initialiser IronTesseract

La première partie du code crée une instance de la classe IronTesseract :

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
$vbLabelText   $csharpLabel

En créant une instance de IronTesseract, nous configurons essentiellement notre outil OCR, le préparant à effectuer les tâches de reconnaissance de texte. C'est comme démarrer le moteur d'une voiture avant de pouvoir la conduire. Cet objet sera utilisé pour contrôler le processus d'OCR, y compris la lecture de l'entrée et l'extraction du texte.

Configuration de l'entrée OCR

Ensuite, nous définissons les données d'entrée de notre processus d'OCR :

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
$vbLabelText   $csharpLabel

Dans ce segment, OcrInput est utilisé pour spécifier le fichier que nous voulons traiter. pdfFilePath est une variable qui contient le chemin vers notre fichier de reçu. En passant cette variable à OcrInput, nous disons au moteur OCR : "Voici le fichier que je veux que tu lises." L'instruction using est une construction spéciale en C# qui garantit que les ressources utilisées par OcrInput (comme les descripteurs de fichiers) sont correctement libérées une fois le traitement terminé. C'est un moyen de gérer efficacement les ressources et de veiller à ce que votre application fonctionne sans utiliser inutilement de la mémoire.

Effectuer l'OCR

Dans le bloc using, nous appelons la méthode Read sur notre instance ocr :

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
$vbLabelText   $csharpLabel

La méthode Read prendra le chemin du fichier d'entrée comme paramètre. Cette ligne lancera la numérisation du reçu. Il effectue l'OCR du fichier d'entrée donné, extrait les données et les stocke dans une variable résultat. Nous pouvons utiliser le texte extrait de cette méthode pour effectuer n'importe quelle opération sur le texte.

Produire les résultats

Enfin, nous produisons le texte qui a été reconnu par le processus d'OCR :

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

La variable result contient le résultat du processus OCR et result.Text contient le texte réellement extrait du reçu. La fonction Console.WriteLine prend ensuite ce texte et l'affiche sur la console. Cela vous permet de voir et de vérifier les résultats du processus d'OCR. Voici le code complet du fichier Program.cs :

using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports Microsoft.Extensions.Configuration
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "Your-License-Key"
		Dim pdfFilePath As String = "Sample_Receipt.jpg"
		Try
			Dim ocr = New IronTesseract()
			Using input = New OcrInput(pdfFilePath)
				Dim result = ocr.Read(input)
					Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

Étape 6 : Exécution de l'application

  1. Construire le projet : Cliquez sur le menu 'Build', puis sélectionnez 'Build Solution'.

  2. Exécuter le projet : Appuyez sur F5 ou cliquez sur le bouton 'Démarrer' pour exécuter votre application.

    Vous voyez maintenant le texte de votre reçu s'afficher dans la console. Ce texte représente les données extraites de l'image de votre reçu. C'est ainsi que nous scannons les reçus avec IronOCR. Il s'agit d'un exemple simple d'utilisation des fonctionnalités OCR pour extraire des données de reçus papier. Il s'agit d'une mise en œuvre très générique. Vous pouvez modifier votre code pour qu'il corresponde à la présentation des images de vos reçus.

    Comment créer un scanner de reçus OCR en C# : Figure 3 - Texte produit par l'exemple de code précédent

    Ensuite, vous pouvez utiliser les données non structurées des reçus que nous avons obtenues après avoir scanné les reçus. Nous pouvons obtenir des informations importantes à partir d'une section particulière du reçu. Nous pouvons également présenter les données relatives aux reçus de manière plus organisée. Nous pouvons créer une application logicielle de numérisation de reçus OCR à l'aide de l'IronOCR. Cela nous aidera à extraire des données précises des champs de réception.

Conclusion

Félicitations ! Vous avez réussi à construire un scanner de reçus OCR en utilisant C# et IronOCR. Ce scanner permet d'améliorer considérablement la précision de l'extraction des données pour divers besoins professionnels tels que le suivi des dépenses, la gestion de la chaîne d'approvisionnement, etc. Il ne sera plus nécessaire d'examiner les reçus scannés et d'extraire les données manuellement.

IronOCR propose une version d'essai gratuite, permettant aux utilisateurs d'explorer et d'évaluer ses capacités sans coût initial. Pour ceux qui souhaitent intégrer et exploiter l'ensemble des fonctionnalités dans un cadre professionnel, les licences commencent à $749, offrant une solution complète pour des besoins robustes de numérisation de reçus OCR et d'extraction de données.

N'oubliez pas que ce n'est que le début. Vous pouvez étendre cette application pour prendre en charge différents types de fichiers, améliorer la confidentialité des données ou intégrer des fonctionnalités supplémentaires telles que la reconnaissance des reçus pour des champs spécifiques comme le montant de la taxe, la date, les postes, etc. Avec la technologie OCR, les possibilités sont vastes et ouvrent la voie à des processus commerciaux plus efficaces et plus intelligents. Bon codage !

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. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT
Comment lire des documents d'identité à l'aide de l'OCR en C#
SUIVANT >
Comment créer une solution OCR pour les factures ?