Passer au contenu du pied de page
UTILISATION D'IRONOCR

Comment extraire des données de reçus à l'aide de la reconnaissance optique de caractères (OCR) en C#

IronOCR fournit une puissante bibliothèque C# pour extraire du texte à partir d'images de reçus grâce à une technologie OCR avancée, permettant un suivi automatisé des dépenses et une analyse des données avec la prise en charge de 125 langues et un prétraitement d'image intégré.

Reçus et automatisation

Les reçus sont essentiels dans le monde rapide d'aujourd'hui. Que ce soit pour faire ses courses ou aller au restaurant, les reçus permettent de suivre ses dépenses et de faciliter la gestion de son budget. Parallèlement, les magasins utilisent des scanners de reçus pour analyser les données de vente, ce qui les aide à prévoir la demande et à gérer leurs stocks grâce à des techniques d'extraction de données .

Cependant, les reçus peuvent être difficiles à lire et les calculs ne sont pas toujours clairs. La saisie manuelle des données budgétaires est fastidieuse et sujette aux erreurs, surtout lorsqu'il y a de nombreux éléments. Perdre un reçu peut soudainement transformer vos dépenses mensuelles excessives en mystère. Les reçus papier traditionnels présentent souvent une mauvaise qualité d'impression, une encre qui s'estompe et une dégradation du papier thermique, ce qui rend l'optimisation de l'image OCR cruciale pour une extraction précise.

Pour résoudre ce problème, les applications budgétaires et financières ont adopté la technologie OCR (reconnaissance optique de caractères). En numérisant les reçus, la reconnaissance optique de caractères (OCR) minimise les erreurs, automatise la saisie des données, suit les dépenses et révèle les habitudes d'achat. Les solutions OCR modernes prennent en charge différents formats de reçus, des impressions traditionnelles de points de vente aux reçus numériques avec capacités de lecture de codes-barres et de codes QR .

La reconnaissance optique de caractères (OCR) utilise l'apprentissage automatique pour identifier et extraire le texte des images. Le processus comprend le prétraitement de l'image , la segmentation des caractères, la reconnaissance de formes et la validation. Cependant, la reconnaissance optique de caractères (OCR) n'est pas parfaite : les flous ou les taches peuvent entraîner des erreurs. Les systèmes avancés utilisent des techniques de vision par ordinateur pour améliorer la précision. Choisir une bibliothèque OCR fiable qui traite et optimise efficacement la lecture est crucial pour une automatisation documentaire réussie.

Pourquoi choisir IronOCR pour le traitement des reçus ?

IronOCR est une bibliothèque C# basée sur un moteur OCR Tesseract personnalisé. Contrairement à Tesseract standard, IronOCR intègre des optimisations Tesseract 5 et des fonctionnalités conçues spécifiquement pour les développeurs .NET. Voici ce qui le distingue :

  1. Compatibilité croisée : Fonctionne avec .NET 8, 7, 6, 5 et Framework 4.6.2+. Fonctionne sous Windows, macOS, Azure et Linux. Se déploie de manière transparente sur Docker , AWS Lambda et Azure Functions .

  2. Flexibilité et évolutivité : Prend en charge les formats JPG, PNG et GIF. S'intègre aux objets System.Drawing. Traite les flux TIFF et PDF multipages . Prend en charge le multithreading pour les scénarios à volume élevé.

  3. Facilité d'utilisation et assistance : documentation complète, API robuste et assistance 24h/24 et 5j/7. Offre des opérations simples en une seule ligne et des options de configuration détaillées . Comprend des guides de dépannage complets.

  4. Capacités multilingues : Prend en charge 125 langues internationales . Reconnaît efficacement les noms et les prix des produits. Gère plusieurs langues par document . Prend en charge les fichiers de données d'entraînement personnalisés.

  5. Traitement d'image avancé : des filtres intégrés améliorent automatiquement la qualité des reçus. Inclut la réduction du bruit , la correction de l'orientation et l'optimisation DPI . L'assistant de filtrage détermine automatiquement les paramètres optimaux.

Comment puis-je implémenter la reconnaissance optique de caractères (OCR) des reçus dans mon application ?

De quelle licence ai-je besoin pour commencer ?

Avant d'utiliser IronOCR, vous aurez besoin d'une clé de licence. Obtenez un essai gratuit ici . Les options de licence comprennent les niveaux Lite, Plus et Professionnel pour différentes tailles d'équipe et différents déploiements. Consultez la documentation relative à l'application des clés de licence .

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
$vbLabelText   $csharpLabel

Pour les applications web, configurez la clé de licence dans le fichier Web.config pour une configuration centralisée. Le système de licences prend en charge les extensions et les mises à niveau au fur et à mesure de votre croissance.

Comment puis-je lire un ticket de caisse de supermarché avec IronOCR ?

Explorons l'utilisation d'IronOCR dans une application qui scanne les tickets de caisse des supermarchés avec des smartphones, en extrayant les noms et les prix des produits pour attribuer des points de fidélité en fonction des achats. Cela implique la capture d'images, le prétraitement, l'exécution de la reconnaissance optique de caractères (OCR) et la validation des données à l'aide de scores de confiance des résultats .

À quoi ressemble l'image d'un reçu type ?

Exemple de ticket de caisse de supermarché affichant du texte de remplissage (Lorem ipsum) avec les articles, les prix, le sous-total de 107,60 $ et les détails du paiement - illustrant la mise en page typique d'un ticket de caisse avec en-tête, liste des articles, totaux et code-barres

Les problèmes courants liés aux reçus comprennent la qualité du papier thermique, les polices de caractères variées, les mises en page chargées et les dommages causés par le pliage ou l'humidité. Le prétraitement d'IronOCR gère ces problèmes grâce à des techniques de correction de la qualité d'image et de correction des couleurs .

Quel code C# me faut-il pour extraire les données d'un reçu ?

using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
$vbLabelText   $csharpLabel

Le code démontre :

  1. Importez la bibliothèque IronOcr.
  2. Instanciez le moteur OCR ( IronTesseract ) avec les options de configuration .
  3. Créez un nouvel OcrInput pour charger l'image du reçu.
  4. Appliquer un prétraitement pour une meilleure précision.
  5. Utilisez la méthode Read pour extraire le texte.
  6. Traiter les résultats à l'aide de la classe OcrResult pour les données structurées.

IronOCR prend en charge la lecture de photos , de captures d'écran et de documents numérisés pour différents formats de reçus. Il peut également extraire des données tabulaires à partir de reçus structurés.

Comment puis-je vérifier l'exactitude des données extraites ?

Pour garantir la cohérence, vérifiez le niveau de confiance des données extraites. IronOCR fournit des indicateurs de confiance complets à plusieurs niveaux :

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
$vbLabelText   $csharpLabel

La propriété Confidence mesure la précision statistique de 0 (faible) à 100 (élevée). Utilisez ces niveaux de confiance pour déterminer comment traiter les données. Pour les systèmes de production, mettez en œuvre un suivi des progrès afin de contrôler les opérations de reconnaissance optique de caractères (OCR).

Comment améliorer la précision de la reconnaissance optique de caractères (OCR) grâce au prétraitement des images ?

Avant le traitement, utilisez ces méthodes pour préparer les images et obtenir de meilleurs résultats :

using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
$vbLabelText   $csharpLabel

Ces étapes de prétraitement améliorent la précision de l'extraction. L' assistant de filtres trouve automatiquement la meilleure combinaison de filtres pour vos reçus. Pour les reçus avec un fond coloré , la correction des couleurs est essentielle.

Dans des scénarios plus avancés, il pourrait être nécessaire d' utiliser une reconnaissance optique de caractères (OCR) spécifique à la région pour se concentrer sur les totaux ou les informations fiscales. Pour les reçus avec codes-barres , activez la lecture des codes-barres en plus de l'extraction du texte.

Quels sont les principaux avantages de l'utilisation d'IronOCR pour le traitement des reçus ?

La page de licences IronOCR présente trois niveaux de prix (Lite : 749 $, Plus : 1 499 $, Professionnel : 2 999 $) avec une option permettant de basculer entre IronOCR et Iron Suite. Elle affiche les détails de la licence Professionnelle et son coût total de 5 998 $, offrant ainsi des options de tarification flexibles pour les équipes et les entreprises, avec des licences individuelles et la suite Iron Suite pour un meilleur rapport qualité-prix.

La technologie OCR de reconnaissance optique de caractères (OCR) des reçus aide les entreprises et les particuliers à gérer leur budget, à prévenir la fraude et à automatiser la collecte de données. IronOCR offre précision, rapidité et une intégration facile avec les plateformes existantes, ce qui en fait la solution idéale pour la numérisation de reçus.

Les principaux avantages comprennent :

  1. Optimisation des performances : Le multithreading et l'optimisation de la vitesse permettent de traiter efficacement des milliers de reçus.

  2. Flexibilité d'exportation : Convertissez les reçus en PDF consultables ou en HTML hOCR pour l'intégration Web.

  3. Fonctionnalités d'entreprise : Déploiement sur des serveurs Azure , Docker et Linux pour une meilleure évolutivité.

  4. Reconnaissance spécialisée : Lire les notes manuscrites sur les reçus et extraire les structures de tableaux .

  5. Outils de débogage : les fonctions de visualisation du texte surligné et d'exportation des résultats facilitent le dépannage.

Essayez la licence d'essai d'IronOCR pour découvrir ses fonctionnalités. La documentation complète et les exemples de code vous aident à implémenter rapidement la reconnaissance optique de caractères (OCR) des reçus.

Questions Fréquemment Posées

Comment la technologie OCR peut-elle être utilisée pour automatiser le traitement des reçus de supermarché ?

La technologie OCR peut automatiser le traitement des reçus de supermarché en convertissant les reçus numérisés en données numériques. Avec IronOCR, les reçus peuvent être lus et le texte peut être extrait automatiquement, réduisant le besoin de saisie manuelle de données et minimisant les erreurs humaines.

Quels avantages offre IronOCR pour le traitement des reçus de supermarché ?

IronOCR offre plusieurs avantages pour le traitement des reçus de supermarché, y compris la compatibilité multiplateforme, la prise en charge de plusieurs formats d'image, une API robuste pour une intégration facile, et la capacité de traiter jusqu'à 125 langues, ce qui le rend idéal pour les reçus internationaux.

Comment intégrer IronOCR dans une application C# pour lire les reçus de supermarché ?

Pour intégrer IronOCR dans une application C#, vous devez obtenir une clé de licence, importer la bibliothèque IronOcr, et utiliser le moteur IronTesseract pour lire et extraire du texte à partir d'images de reçus de supermarché.

Quelles techniques de prétraitement améliorent la précision de l'OCR dans la numérisation des reçus ?

IronOCR fournit des techniques de prétraitement telles que DeNoise et ToGrayScale pour améliorer la précision de l'OCR. Ces techniques aident à éliminer le bruit d'image et à convertir les images en niveaux de gris, améliorant l'extraction du texte à partir des reçus.

Pourquoi le test de confiance est-il important en OCR, et comment est-il appliqué ?

Le test de confiance dans IronOCR est important car il mesure la précision des données extraites, avec des valeurs allant de 0 (basse) à 1 (haute). Il aide les utilisateurs à évaluer la fiabilité des résultats OCR et à informer les décisions de traitement des données.

IronOCR peut-il gérer les reçus de supermarché multilingues ?

Oui, IronOCR prend en charge le traitement OCR dans jusqu'à 125 langues, ce qui le rend capable de gérer efficacement les reçus de supermarché multilingues.

Une version d'essai est-elle disponible pour les développeurs intéressés par IronOCR ?

Oui, une version d'essai gratuite de IronOCR est disponible pour les développeurs, leur permettant d'explorer ses fonctionnalités et capacités avant de s'engager à un achat.

Quelles plateformes sont supportées par IronOCR pour la numérisation des reçus ?

IronOCR est compatible avec les plateformes .NET, y compris .NET 8, 7, 6, 5, et Framework 4.6.2 et au-delà, et il supporte l'opération sur les environnements Windows, macOS, Azure, et Linux.

Qu'est-ce qui rend IronOCR adapté pour intégrer la numérisation des reçus dans les applications ?

IronOCR est adapté pour intégrer la numérisation des reçus dans les applications grâce à sa grande précision, sa facilité d'utilisation, son support multiplateforme, et sa capacité à gérer divers formats d'entrée et langues de manière transparente.

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