Passer au contenu du pied de page
UTILISATION D'IRONOCR

API de numérisation de reçus (Tutoriel pour développeurs)

Une API de numérisation des reçus permet d'extraire les données clés des reçus à l'aide d'une technologie OCR avancée. Elle rationalise le processus de saisie des données en éliminant les erreurs manuelles et en améliorant la productivité. L'API, polyvalente et précise, prend en charge plusieurs langues, devises et formats. L'automatisation de l'analyse des reçus permet aux entreprises de mieux comprendre les habitudes de consommation et de prendre des décisions fondées sur des données. Cet article montrera comment utiliser la bibliothèque C# OCR, IronOCR, pour extraire des informations importantes d'un reçu.

IronOCR

IronOCR est une bibliothèque et une API OCR polyvalente développée par Iron Software, offrant aux développeurs une solution puissante pour l'extraction de texte à partir de diverses sources telles que les documents numérisés, les images et les PDF. Grâce à ses algorithmes d'OCR avancés, à sa vision par ordinateur et à ses modèles d'apprentissage automatique, IronOcr garantit une précision et une fiabilité élevées, même dans des scénarios difficiles. La bibliothèque prend en charge plusieurs langues et styles de polices, ce qui la rend adaptée aux applications internationales. En intégrant IronOcr avec des capacités de modèles d'apprentissage automatique dans leurs applications, les développeurs peuvent facilement automatiser la saisie de données, l'analyse de texte et d'autres tâches, améliorant ainsi la productivité et l'efficacité.

Avec IronOCR, les développeurs peuvent récupérer sans effort du texte à partir de diverses sources, notamment des documents, des photographies, des captures d'écran et même des flux de caméra en direct sous forme de réponses JSON. En utilisant des algorithmes sophistiqués et des modèles d'apprentissage automatique, IronOCR analyse les données d'image, reconnaît les caractères individuels et les convertit en texte lisible par une machine. Le texte extrait peut ensuite être utilisé à diverses fins, telles que la saisie de données, la recherche d'informations, l'analyse de texte et l'automatisation de tâches manuelles.

Prérequis

Avant de commencer à travailler avec IronOCR, quelques conditions préalables doivent être réunies. Ces conditions préalables sont les suivantes :

  1. Assurez-vous que vous disposez d'un environnement de développement approprié sur votre ordinateur. Cela implique généralement l'installation d'un environnement de développement intégré (IDE) tel que Visual Studio.
  2. Il est important d'avoir une compréhension de base du langage de programmation C#. Cela vous permettra de comprendre et de modifier efficacement les exemples de code fournis dans l'article.
  3. La bibliothèque IronOcr doit être installée dans votre projet. Pour ce faire, il est possible d'utiliser le gestionnaire de paquets NuGet au sein de Visual Studio ou par le biais de l'interface de ligne de commande.

En vous assurant que ces conditions préalables sont remplies, vous serez prêt à plonger dans le processus de travail avec IronOcr.

Créer un nouveau projet Visual Studio

Pour commencer avec IronOCR, la première étape consiste à créer un nouveau projet Visual Studio.

Ouvrez Visual Studio et allez dans Fichiers, puis survolez Nouveau et cliquez sur Projet.

Receipt Scanning API (Developer Tutorial), Figure 1 : Nouvelle image de projet Nouvelle image du projet

Dans la nouvelle fenêtre, sélectionnez Application Console et cliquez sur Suivant.

Receipt Scanning API (Developer Tutorial), Figure 2 : Console Application Application console

Une nouvelle fenêtre apparaît. Indiquez le nom de votre nouveau projet et son emplacement, puis cliquez sur Suivant.

Receipt Scanning API (Developer Tutorial), Figure 3 : Configuration du projet Configuration du projet

Enfin, indiquez le cadre cible et cliquez sur Créer.

Receipt Scanning API (Developer Tutorial), Figure 4 : Target Framework Cadre cible

Maintenant que votre nouveau projet Visual Studio est créé, installons l'IronOCR.

Installation d'IronOCR

Il existe plusieurs méthodes pour télécharger et installer la bibliothèque IronOcr. Cependant, voici les deux approches les plus simples.

  1. Utilisation du gestionnaire de paquets NuGet de Visual Studio
  2. Utilisation de la ligne de commande de Visual Studio

Utilisation du gestionnaire de paquets NuGet de Visual Studio

IronOcr peut être inclus dans un projet C# en utilisant le gestionnaire de paquets NuGet de Visual Studio.

Accédez à l'interface graphique de NuGet Package Manager en sélectionnant Outils > NuGet Package Manager > Gestion des packages NuGet pour la solution

Receipt Scanning API (Developer Tutorial), Figure 5 : NuGet Package Manager NuGet Package Manager

Une nouvelle fenêtre apparaît ensuite. Recherchez IronOCR et installez le paquet dans le projet.

Receipt Scanning API (Developer Tutorial), Figure 6 : IronOCR IronOCR

Des packs linguistiques supplémentaires pour IronOCR peuvent également être installés en utilisant la même méthode que celle décrite ci-dessus.

Utilisation de la ligne de commande de Visual Studio

  1. Dans Visual Studio, allez dans Outils > NuGet Package Manager > Console du gestionnaire de paquets
  2. Saisissez la ligne suivante dans l'onglet Console du gestionnaire de paquets :

    Install-Package IronOcr

    Receipt Scanning API (Developer Tutorial), Figure 7 : Console du gestionnaire de paquets Console de gestion des paquets

Le paquet sera maintenant téléchargé/installé dans le projet en cours et sera prêt à être utilisé.

Extraction de données à l'aide de l'API OCR de la réception

L'extraction de données à partir d'images de reçus à l'aide d'IronOcr et leur enregistrement sous forme de données structurées est une bouée de sauvetage pour la plupart des développeurs. À l'aide d'IronOCR, vous pouvez y parvenir en quelques lignes de code seulement. Grâce à cet outil, vous pouvez extraire des postes, des prix, des montants de taxes, des montants totaux et bien d'autres choses encore avec différents types de documents.

using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class ReceiptScanner
{
    static void Main()
    {
        var ocr = new IronTesseract();
        // Load the image of the receipt
        using (var input = new OcrInput(@"r2.png"))
        {
            // Perform OCR on the input image
            var result = ocr.Read(input);

            // Regular expression patterns to extract relevant details from the OCR result
            var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
            var pricePattern = @"\$\d+(\.\d{2})?";

            // Variables to store extracted data
            var descriptions = new List<string>();
            var unitPrices = new List<decimal>();
            var taxes = new List<decimal>();
            var amounts = new List<decimal>();

            var lines = result.Text.Split('\n');
            foreach (var line in lines)
            {
                // Match each line against the description pattern
                var descriptionMatch = Regex.Match(line, descriptionPattern);
                if (descriptionMatch.Success)
                {
                    descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
                    unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));

                    // Calculate tax and total amount for each item
                    var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
                    taxes.Add(tax);
                    amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
                }
            }

            // Output the extracted data
            for (int i = 0; i < descriptions.Count; i++)
            {
                Console.WriteLine($"Description: {descriptions[i]}");
                Console.WriteLine($"Quantity: 1.00 Units");
                Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
                Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
                Console.WriteLine($"Amount: ${amounts[i]:0.00}");
                Console.WriteLine("-----------------------");
            }
        }
    }
}
using IronOcr;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

class ReceiptScanner
{
    static void Main()
    {
        var ocr = new IronTesseract();
        // Load the image of the receipt
        using (var input = new OcrInput(@"r2.png"))
        {
            // Perform OCR on the input image
            var result = ocr.Read(input);

            // Regular expression patterns to extract relevant details from the OCR result
            var descriptionPattern = @"\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)";
            var pricePattern = @"\$\d+(\.\d{2})?";

            // Variables to store extracted data
            var descriptions = new List<string>();
            var unitPrices = new List<decimal>();
            var taxes = new List<decimal>();
            var amounts = new List<decimal>();

            var lines = result.Text.Split('\n');
            foreach (var line in lines)
            {
                // Match each line against the description pattern
                var descriptionMatch = Regex.Match(line, descriptionPattern);
                if (descriptionMatch.Success)
                {
                    descriptions.Add(descriptionMatch.Groups[1].Value.Trim());
                    unitPrices.Add(decimal.Parse(descriptionMatch.Groups[2].Value));

                    // Calculate tax and total amount for each item
                    var tax = unitPrices[unitPrices.Count - 1] * 0.15m;
                    taxes.Add(tax);
                    amounts.Add(unitPrices[unitPrices.Count - 1] + tax);
                }
            }

            // Output the extracted data
            for (int i = 0; i < descriptions.Count; i++)
            {
                Console.WriteLine($"Description: {descriptions[i]}");
                Console.WriteLine($"Quantity: 1.00 Units");
                Console.WriteLine($"Unit Price: ${unitPrices[i]:0.00}");
                Console.WriteLine($"Taxes: ${taxes[i]:0.00}");
                Console.WriteLine($"Amount: ${amounts[i]:0.00}");
                Console.WriteLine("-----------------------");
            }
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions

Friend Class ReceiptScanner
	Shared Sub Main()
		Dim ocr = New IronTesseract()
		' Load the image of the receipt
		Using input = New OcrInput("r2.png")
			' Perform OCR on the input image
			Dim result = ocr.Read(input)

			' Regular expression patterns to extract relevant details from the OCR result
			Dim descriptionPattern = "\w+\s+(.*?)\s+(\d+\.\d+)\s+Units\s+(\d+\.\d+)\s+Tax15%\s+\$(\d+\.\d+)"
			Dim pricePattern = "\$\d+(\.\d{2})?"

			' Variables to store extracted data
			Dim descriptions = New List(Of String)()
			Dim unitPrices = New List(Of Decimal)()
			Dim taxes = New List(Of Decimal)()
			Dim amounts = New List(Of Decimal)()

			Dim lines = result.Text.Split(ControlChars.Lf)
			For Each line In lines
				' Match each line against the description pattern
				Dim descriptionMatch = Regex.Match(line, descriptionPattern)
				If descriptionMatch.Success Then
					descriptions.Add(descriptionMatch.Groups(1).Value.Trim())
					unitPrices.Add(Decimal.Parse(descriptionMatch.Groups(2).Value))

					' Calculate tax and total amount for each item
					Dim tax = unitPrices(unitPrices.Count - 1) * 0.15D
					taxes.Add(tax)
					amounts.Add(unitPrices(unitPrices.Count - 1) + tax)
				End If
			Next line

			' Output the extracted data
			For i As Integer = 0 To descriptions.Count - 1
				Console.WriteLine($"Description: {descriptions(i)}")
				Console.WriteLine($"Quantity: 1.00 Units")
				Console.WriteLine($"Unit Price: ${unitPrices(i):0.00}")
				Console.WriteLine($"Taxes: ${taxes(i):0.00}")
				Console.WriteLine($"Amount: ${amounts(i):0.00}")
				Console.WriteLine("-----------------------")
			Next i
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Comme vous pouvez le voir ci-dessous, IronOCR peut facilement extraire le texte requis du reçu.

Receipt Scanning API (Developer Tutorial), Figure 8 : Output Sortie

Extraire le ticket de caisse complet

Si vous souhaitez extraire l'intégralité du reçu, vous pouvez facilement le faire avec quelques lignes de code sur le reçu OCR.

using IronOcr;
using System;

class WholeReceiptExtractor
{
    static void Main()
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput(@"r3.png"))
        {
            // Perform OCR on the entire receipt and print text output to console
            var result = ocr.Read(input);
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;
using System;

class WholeReceiptExtractor
{
    static void Main()
    {
        var ocr = new IronTesseract();
        using (var input = new OcrInput(@"r3.png"))
        {
            // Perform OCR on the entire receipt and print text output to console
            var result = ocr.Read(input);
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr
Imports System

Friend Class WholeReceiptExtractor
	Shared Sub Main()
		Dim ocr = New IronTesseract()
		Using input = New OcrInput("r3.png")
			' Perform OCR on the entire receipt and print text output to console
			Dim result = ocr.Read(input)
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Receipt Scanning API (Developer Tutorial), Figure 9 : Scan receipt API output Scanner la sortie de l'API de réception

L'API de numérisation d'images de reçus, telle qu'IronOCR, offre une solution logicielle puissante pour automatiser l'extraction de données à partir de reçus. En tirant parti d'une technologie OCR avancée, les entreprises peuvent facilement extraire des informations importantes des images ou des scans de reçus, notamment les noms des fournisseurs, les dates d'achat, les listes détaillées, les prix, les taxes et les montants totaux. With support for multiple languages, currencies, receipt formats, and barcode support, businesses can streamline their receipt management processes, save time, gain insights into spending patterns, and make data-driven decisions. IronOcr, en tant que bibliothèque et API OCR polyvalente, fournit aux développeurs les outils dont ils ont besoin pour extraire du texte de diverses sources avec précision et efficacité, ce qui permet d'automatiser les tâches et d'améliorer l'efficacité globale. En remplissant les conditions préalables nécessaires et en intégrant IronOcr à leurs applications, les développeurs peuvent débloquer les avantages du traitement des données de réception et améliorer leurs flux de travail.

Pour plus d'informations sur IronOCR, consultez cette page de licence. Pour savoir comment utiliser la vision artificielle pour trouver du texte, consultez cette page computer vision how-to. Pour plus de tutoriels sur l'IronOcr, consultez le tutoriel IronOcr C# suivant.

Questions Fréquemment Posées

Comment puis-je automatiser l'extraction de données de reçus en utilisant l'OCR en C# ?

Vous pouvez automatiser l'extraction de données de reçus en C# en utilisant IronOCR, qui vous permet d'extraire des détails clés comme les articles, les prix, les taxes, et les montants totaux à partir d'images de reçus avec une haute précision.

Quels sont les prérequis pour configurer un projet de numérisation de reçus en C# ?

Pour configurer un projet de numérisation de reçus en C#, vous avez besoin de Visual Studio, de connaissances de base en programmation C#, et de la bibliothèque IronOCR installée dans votre projet.

Comment puis-je installer la bibliothèque OCR en utilisant le gestionnaire de packages NuGet dans Visual Studio ?

Ouvrez Visual Studio et allez dans Outils > Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution, recherchez IronOCR et installez-le dans votre projet.

Puis-je installer la bibliothèque OCR en utilisant la ligne de commande de Visual Studio ?

Oui, vous pouvez installer IronOCR en ouvrant la console du gestionnaire de packages dans Visual Studio et en exécutant la commande : Install-Package IronOcr.

Comment puis-je extraire le texte d'un reçu entier en utilisant l'OCR ?

Pour extraire le texte d'un reçu entier, utilisez IronOCR pour effectuer une OCR sur l'image complète du reçu, puis affichez le texte extrait à l'aide du code en C#.

Quels avantages une API de numérisation de reçus fournit-elle ?

Une API de numérisation de reçus comme IronOCR automatise l'extraction de données, minimise les erreurs manuelles, améliore la productivité et fournit des informations sur les habitudes de dépense pour de meilleures décisions commerciales.

La bibliothèque OCR prend-elle en charge plusieurs langues et devises ?

Oui, IronOCR prend en charge plusieurs langues, devises et formats de reçus, ce qui le rend idéal pour des applications globales.

Quelle est la précision de la bibliothèque OCR dans l'extraction de texte à partir d'images ?

IronOCR assure une haute précision en utilisant des algorithmes OCR avancés, la vision par ordinateur, et des modèles d'apprentissage automatique, même dans des scénarios complexes.

Quels types de données peuvent être extraits des reçus en utilisant l'OCR ?

IronOCR peut extraire des données telles que les articles, les prix, les montants de taxes, les montants totaux et d'autres détails de reçu.

Comment l'automatisation de l'analyse des reçus peut-elle améliorer les processus commerciaux ?

L'automatisation de l'analyse des reçus avec IronOCR améliore les processus commerciaux en réduisant l'entrée manuelle, permettant une collecte de données précise et facilitant la prise de décisions basées sur les données.

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