UTILISATION DE L'IRONOCR

OCR des reçus de supermarché en C# (Tutoriel pour développeurs)

Kannaopat Udonpant
Kannapat Udonpant
décembre 15, 2024
Partager:

Les reçus sont attendus dans le monde occupé d'aujourd'hui. Que vous achetiez des courses ou que vous mangiez au restaurant, avoir un reçu aide à connaître le montant dépensé et peut être utilisé pour budgétiser en conséquence. Pendant ce temps, lorsque les magasins d'alimentation utilisent un scanner de reçus pour scanner les reçus, ils peuvent obtenir un aperçu de la façon dont leur produit se vend et peut être planifié selon une prévision des ventes.

Cependant, les reçus sont généralement difficiles à lire, et parfois les gens ne sont pas sûrs du montant total. De plus, si quelqu'un souhaite gérer son budget, la saisie manuelle de toutes les données des reçus est fastidieuse, compte tenu du nombre d'articles que l'on peut acheter. Perdre un reçu peut signifier que vous n'êtes soudainement plus sûr de la raison pour laquelle le budget du mois a été dépassé.

Pour ce problème, les applications de gestion budgétaire et financière se sont orientées vers l'utilisation de OCR (reconnaissance optique de caractères) pour aider les clients à suivre facilement tous les reçus en les scannant et en les transformant en reçus numériques. Cela, en retour, minimise les erreurs humaines lors de la saisie des reçus tout en permettant aux clients d'automatiser la saisie des données, de suivre les dépenses et d'obtenir des informations sur le comportement d'achat.

La technologie OCR extrait des données des reçus et des images numériques en utilisant des algorithmes d'apprentissage automatique pour identifier les zones de texte ou de chiffres. Cependant, il n'est pas sans défauts. Si l'image contient beaucoup de bruit numérique, comme du flou et des bavures, les données renvoyées deviennent souvent incorrectes ou embrouillées. Par conséquent, choisir une bibliothèque fiable qui permet aux développeurs de déboguer et d'optimiser les méthodes de lecture des reçus est essentiel.

IronOCR est une telle bibliothèque. Il propose des méthodes spécialisées pour lire les reçus tout en offrant des options de personnalisation aux développeurs qui souhaitent filtrer l'image avant d'extraire les données. Il permet même aux développeurs de déboguer et de tester si les données sont exactes.

Cet article abordera probablement des exemples concrets de la manière dont IronOCR traite et filtre les reçus de supermarché pour garantir l'exactitude des données.

IronOCR: Une bibliothèque OCR C#

Reçus de supermarché OCR en C# (Tutoriel pour développeurs) : Figure 1 - IronOCR : Une bibliothèque OCR pour C#

IronOCR est une bibliothèque C# qui utilise une version personnalisée du moteur OCR Tesseract en arrière-plan. La bibliothèque propose des méthodes faciles à utiliser et une fonctionnalité flexible pour tous les besoins liés à l'OCR. En plus des techniques standard, IronOCR permet aux développeurs d'exploiter pleinement et de personnaliser une version de Tesseract afin d'accomplir toutes les tâches connexes. Certains des aspects critiques qui aident avec les reçus de supermarché :

  1. Compatibilité croisée : IronOCR est entièrement compatible avec un large éventail de plateformes .NET, y compris .NET 8, 7, 6 et 5 ainsi que .NET Framework 4.6.2 et versions ultérieures. Il prend en charge de manière transparente tous les systèmes d'exploitation, y compris Windows, macOS, Azure et Linux, de sorte que la compatibilité croisée ne pose pas de problème.

  2. Flexibilité et évolutivité : La flexibilité de la bibliothèque se manifeste par sa capacité à gérer divers formats d'entrée OCR, y compris les formats d'image populaires comme jpg, png et gif. Il s'intègre également parfaitement avec les "System.Drawings.Objects" natifs de C#, ce qui facilite l'intégration dans les bases de code existantes.

  3. Facilité d'utilisation et support étendu : IronOCR est abondamment documenté, avec une API robuste et des didacticiels couvrant toutes les fonctionnalités. De plus, les développeurs peuvent compter sur un support 24/5 pour toute assistance.

  4. Multi-Langue : Avec la prise en charge de jusqu'à 125 langues et de langues personnalisées, IronOCR est un outil incroyablement polyvalent pour le traitement de documents internationaux. Il excelle dans la reconnaissance des noms de produits et des prix, ce qui le rend parfait pour identifier les reçus.

Lecture du ticket de caisse du supermarché avec IronOCR

Clé de licence

Veuillez vous rappeler qu'IronOCR nécessite une clé de licence pour fonctionner. Vous pouvez obtenir une clé dans le cadre d'un essai gratuit en visitant ce lien.

//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";
'Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
$vbLabelText   $csharpLabel

Après avoir reçu une clé d'évaluation, définissez cette variable dans votre projet.

Exemple de code

Imaginons un scénario dans lequel un développeur crée des applications mobiles permettant aux clients de scanner leurs reçus avec leurs téléphones pour gagner des points supplémentaires en fonction des achats totaux.

Le code ci-dessous montre comment IronOCR prend un reçu de supermarché standard et, grâce à l'API OCR, extrait toutes les données pertinentes, telles que le nom du produit, les articles, les prix et tous les noms.

Image d'entrée

Reçus de supermarché OCR en C# (Tutoriel Développeur) : Figure 2 - Exemple de reçu de supermarché

Mise en œuvre du OCR de reçus

using IronOcr;
#region
IronOcr.License.LicenseKey = "YOUR-KEY";
#endregion
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("supermarketexample.jpg");
// Perform OCR
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
using IronOcr;
#region
IronOcr.License.LicenseKey = "YOUR-KEY";
#endregion
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("supermarketexample.jpg");
// Perform OCR
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Imports IronOcr
#Region ""
IronOcr.License.LicenseKey = "YOUR-KEY"
'#End Region
' Instantiate OCR engine
Dim ocr = New IronTesseract()
Dim inputPhoto = New OcrInput()
inputPhoto.LoadImage("supermarketexample.jpg")
' Perform OCR
Dim result As OcrResult = ocr.Read(inputPhoto)
Dim text As String = result.Text
Console.WriteLine(text)
$vbLabelText   $csharpLabel
  1. Nous importons d'abord le module `IronOcr` dans l'exemple de code.

  2. Nous instancions ensuite le moteur OCR et créons une nouvelle variable `IronTesseract`.

  3. Nous créons ensuite un nouveau OcrInput et chargeons l'image. Dans cet exemple, nous fournissons le `chemin du fichier` à la variable. Bien que le format de reçu existe sous diverses formes, la méthode peut accepter tous les formats populaires.

  4. Nous lisons ensuite l'image en utilisant la méthode `Read`.

  5. Nous imprimons ensuite les résultats sur la sortie de la console.

Sortie de la console : Données du reçu

Reçus de supermarché OCR en C# (Tutoriel pour développeur) : Figure 3 - Sortie console

Notez que la sortie de la console ci-dessus affiche le produit et les articles de ligne sur une seule ligne. La méthode fonctionne en mode de segmentation de page, en ignorant les blocs de lignes qui servent de séparateurs dans le reçu.

Débogage et test de confiance

Le reçu ci-dessus est une image raffinée et ne correspond pas à une photo ordinaire qu'un client prendrait de son reçu. Lorsque nous traitons des exemples réels, nous devons vérifier la confiance des données extraites afin de garantir un seuil à partir duquel les données sont considérées comme invalides pour assurer la cohérence dans votre application.

IronOCR dispose d'une propriété intégrée appelée `confidence` qui permet aux développeurs de vérifier la précision des données extraites.

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine(result.Confidence);
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine(result.Confidence);
Dim result As OcrResult = ocr.Read(inputPhoto)
Dim text As String = result.Text
Console.WriteLine(text)
Console.WriteLine(result.Confidence)
$vbLabelText   $csharpLabel

Ce code est identique à celui ci-dessus. La principale différence est qu'il affiche également le niveau de confiance.

OCR des reçus de supermarché en C# (Tutoriel pour développeurs) : Figure 4

La propriété `Confidence` dans `OcrResult` est un nombre à virgule flottante crucial représentant la confiance statistique de précision de l'OCR. Cette valeur est calculée comme une moyenne de chaque caractère. Une valeur inférieure indique des problèmes potentiels, tels qu'une image de passeport floue ou des informations supplémentaires. Le niveau de confiance le plus élevé est représenté par 1, tandis que le plus bas est représenté par 0. Plus la valeur est élevée, plus nous pouvons supposer en toute sécurité que les données extraites sont exactes et précises.

Comme vous pouvez le voir, le niveau de confiance, même sur une image de stock, n'est que de 75. Dans des scénarios réels, la confiance pourrait être encore plus faible en raison du bruit numérique.

Suppression du bruit et filtrage

Comme indiqué ci-dessus, en plus de rejeter les données avec une faible confiance, IronOCR permet également aux développeurs d'éliminer et de filtrer le bruit avant de l'entrer sous forme d'image, garantissant ainsi une grande précision dans l'extraction des données. Voici quelques configurations que nous pouvons effectuer avant d'utiliser les reçus de supermarché dupliqués.

inputPhoto.DeNoise();
inputPhoto.ToGrayScale();
inputPhoto.DeNoise();
inputPhoto.ToGrayScale();
inputPhoto.DeNoise()
inputPhoto.ToGrayScale()
$vbLabelText   $csharpLabel

La première méthode, "DeNoise," aplatie le canal alpha en blanc, ce qui pourrait augmenter la précision de la photo puisque les photos numériques contiennent beaucoup de bruit attendu.

La deuxième méthode, "ToGrayScale," bien qu'elle ne soit pas strictement une manière d'améliorer la précision, aide à l'efficacité du traitement par lots des reçus en transformant chaque nuance de pixel en niveaux de gris.

En plus de ces méthodes, les développeurs doivent tester et affiner les paramètres disponibles en utilisant IronOCR pour filtrer selon les critères souhaités pour les données extraites des reçus de supermarché.

Conclusion

OCR Reçus de Supermarché en C# (Tutoriel Développeur) : Figure 5 - IronOCR

En plus de l'automatisation, la technologie OCR pour reçus est une technologie puissante qui peut aider les entreprises à extraire des informations précieuses des données de reçus. C'est également un outil puissant pour les particuliers afin d'aider à budgétiser leurs dépenses et à identifier personnellement les domaines d'intérêt. Non seulement cela, mais la technologie OCR peut également servir à améliorer la prévention des reçus falsifiés ou modifiés en vérifiant les numéros de transaction sur le reçu.

Ainsi, choisir la bonne solution OCR pour les reçus est crucial et essentiel pour l'exactitude, la rapidité et la scalabilité. IronOCR intègre tout cela et est facile à intégrer aux plateformes existantes, offrant aux développeurs un avantage en matière de numérisation de reçus.

Vous pouvez utiliser la licence d'essai de IronOCR si les développeurs sont intéressés.

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
Traitement des factures par OCR en C# (Tutoriel pour développeur)
SUIVANT >
Passport OCR SDK (Tutoriel pour développeurs)