Passer au contenu du pied de page
OUTILS DE CODES-BARRES

Comment comprendre la reconnaissance de codes QR avec l'apprentissage profond

Les codes QR (Quick Response) sont devenus une partie intégrante de nos vies numériques, facilitant le partage de données et la récupération d'informations sans effort. La reconnaissance des codes QR dans les images est une application précieuse de l'apprentissage profond, un sous-ensemble de l'intelligence artificielle. Dans cet article, nous vous guiderons à travers le processus de construction d'un système de reconnaissance de code QR utilisant l'apprentissage profond en .NET/C#.

Comprendre la reconnaissance des codes QR avec l'apprentissage profond

L'apprentissage profond, une branche de l'apprentissage automatique, implique l'entraînement de réseaux neuronaux pour apprendre des modèles complexes à partir de données. Dans le contexte de la reconnaissance des codes QR, les modèles d'apprentissage profond peuvent être entraînés à identifier et décoder des codes QR à partir d'images de tailles, d'orientations et de conditions variées. Les réseaux de neurones convolutifs (CNN) sont un choix populaire pour les tâches basées sur les images comme la reconnaissance de codes QR en raison de leur capacité à capturer des caractéristiques visuelles complexes.

Dans cet article, nous utiliserons ML.NET Model Builder pour entraîner notre modèle.

ML.NET Model Builder

Model Builder is a powerful tool provided by Microsoft as part of the cadre ML.NET pour créer des modèles d'apprentissage automatique en .NET/C#. Il simplifie et accélère le processus de création de modèles d'apprentissage automatique personnalisés sans nécessiter de connaissances approfondies en algorithmes d'apprentissage automatique ou une expertise en codage étendue. Model Builder est conçu pour être convivial et accessible, ce qui en fait un excellent outil pour les développeurs qui souhaitent exploiter les capacités de l'apprentissage automatique dans leurs applications. Model Builder prend en charge AutoML, qui explore automatiquement différents algorithmes d'apprentissage automatique et paramètres pour vous aider à trouver celui qui convient le mieux à votre scénario.

Entraînement du modèle de reconnaissance des codes QR

L'entraînement d'un modèle de reconnaissance de codes QR à l'aide de Model Builder implique une série d'étapes qui vous guident dans le processus de création et d'entraînement du modèle. Dans ce guide étape par étape, nous vous expliquerons chaque étape de l'entraînement d'un modèle de code QR en utilisant Model Builder en .NET/C#.

Étape 1 : Configuration de votre environnement

Avant de plonger dans l'implémentation, assurez-vous d'avoir les prérequis suivants :

  • Visual Studio : Téléchargez et installez Visual Studio, un environnement de développement intégré (IDE) polyvalent pour le développement .NET.
  • Model Builder : Vous pouvez télécharger Model Builder ML.NET en cliquant ici.

Étape 2 : Préparation des données

Nous avons besoin d'images de codes QR pour entraîner notre modèle. You can get QR Code Images from Kaggle or Roboflow. J'ai téléchargé des images de codes QR depuis Roboflow pour cet exemple.

Étape 3 : Ouvrir Model Builder

Ouvrir le projet Visual Studio.

Clic droit sur le projet > Ajouter > Modèle d'apprentissage automatique...

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 1

La fenêtre suivante apparaîtra.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 2

Donnez un nom au modèle et cliquez sur le bouton Ajouter. La fenêtre suivante apparaîtra :

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 3

Faites défiler vers le bas et trouvez "Détection d'objets" sous Vision par ordinateur.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 4

Étape 4 : Sélectionner l'environnement d'entraînement

Sélectionnez la détection d'objets car nous devons détecter les codes QR à partir du jeu de données fourni. Sélectionnez Local ou Azure selon votre préférence. Nous sélectionnons Local pour cet exemple.

Après avoir cliqué sur Local, la fenêtre suivante apparaîtra :

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 5

Sélectionnez un processeur ou une carte graphique locale selon votre choix. Vous pouvez également sélectionner Azure. Pour cela, vous devez avoir un abonnement Azure actif. Après avoir sélectionné votre environnement de test, cliquez sur le bouton Suivant. La fenêtre suivante apparaîtra.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 6

Étape 5 : Sélectionner les données

La sélection des données est la partie la plus importante du processus d'entraînement. Comme mentionné précédemment, j'obtiendrai les données de Robo Flow. Ouvrez RoboFlow, recherchez le code QR. Les données peuvent contenir des codes QR blancs ou avoir de nombreuses caractéristiques locales. J'utilise l'apprentissage par ordinateur pour la détection des QR Jeu de données pour ce tutoriel. Téléchargez les données en sélectionnant le format. J'ai choisi le format COCO pour télécharger ces données, car ce format sera utilisé par la suite pour le prétraitement des données et la reconnaissance des images.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 7

Maintenant que vous avez les données, revenons à Visual Studio. Sélectionnez le chemin d'entrée du fichier COCO téléchargé ci-dessus. Vous pouvez également choisir Vott, mais pour cela, vous devez créer un fichier Vott pour vos données. La fenêtre suivante apparaîtra.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 8

Maintenant, cliquez sur le bouton Étape suivante et passez à l'onglet Entraînement.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 9

Étape 6 : Entraîner le modèle de détection des codes QR

Maintenant, cliquez sur Démarrer l'entraînement du modèle pour démarrer l'entraînement. Le Model Builder convertira automatiquement en images binaires et utilisera les réseaux neuronaux préférés en conséquence. Nous n'avons pas besoin de spécifier quoi que ce soit. La meilleure chose à propos de Model Builder est qu'un développeur ayant peu de connaissances en apprentissage profond peut entraîner, tester et utiliser un modèle.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 10

Model Builder entraînera le modèle sur le jeu de données spécifié et affichera la progression de l'entraînement. L'entraînement ci-dessus prendra du temps en fonction du système. Le modèle prendra tous les codes QR un par un et apprendra leurs caractéristiques. Vous pouvez tester votre modèle en y passant n'importe quelle image de test de code QR une fois l'entraînement terminé.

Étape 7 : Évaluer le modèle

Après l'entraînement, Model Builder évaluera les performances du modèle sur les données de validation.

Vous verrez des métriques d'évaluation telles que la précision, la précision, le rappel et le score F1. Ces métriques évaluent la performance du modèle.

Étape 8 : Consommation

Maintenant que notre modèle est entraîné et que le détecteur de codes QR est prêt, nous devons consommer ce modèle pour détecter le code et ensuite décoder le code QR détecté. Ce modèle ne détectera que si une entrée donnée contient un code de réponse rapide ou non. Il ne décodera pas le code QR. Pour le décodage du code QR, nous avons besoin d'une bibliothèque tierce. Iron Barcode est la meilleure bibliothèque pour lire l'image de code QR. Explorons un peu le fonctionnement d'Iron Barcode avant de continuer.

Iron Barcode - La bibliothèque de décodage des codes QR

IronBarcode est une bibliothèque .NET spécialement conçue pour travailler avec les codes QR, un type de code-barres 2D largement utilisé pour encoder des informations telles que des URL, du texte, des coordonnées, et plus encore. Cette bibliothèque simplifie la création de codes QR en offrant aux développeurs des outils intuitifs pour générer des codes QR avec des caractéristiques personnalisables comme la taille, la couleur et la correction d'erreurs.

De plus, IronBarcode permet l'extraction d'informations à partir de codes QR intégrés dans des images, en faisant une ressource indispensable pour intégrer sans heurts les capacités de génération et de décodage de codes QR dans les applications .NET.

Dans ce tutoriel, nous l'utiliserons pour décoder le code QR si le code QR est détecté par notre modèle.

Installer le package Iron Barcode NuGet

Écrivez la commande suivante dans la console du gestionnaire de packages NuGet pour télécharger le package NuGet IronBarcode.

Install-Package BarCode

La commande ci-dessus installera le package Iron Barcode et ajoutera une référence à notre projet.

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 11

Décoder les codes QR

Écrivez le code suivant pour lire le code QR détecté unique.

using IronBarCode;

string qrCodeImagePath = "myQrCode.png";

// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);

// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
using IronBarCode;

string qrCodeImagePath = "myQrCode.png";

// Quickly reads a single QR Code from the provided image path
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);

// Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString());
Imports IronBarCode

Private qrCodeImagePath As String = "myQrCode.png"

' Quickly reads a single QR Code from the provided image path
Private data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath)

' Outputs the decoded value from the QR Code
Console.WriteLine(data.Value.ToString())
$vbLabelText   $csharpLabel

Voici le résultat :

Comment comprendre la reconnaissance des codes QR avec l'apprentissage profond : Figure 12

Conclusion

En conclusion, Model Builder et la bibliothèque IronBarcode forment un combo précieux pour les développeurs .NET souhaitant travailler avec des codes QR. Model Builder rend le travail délicat de création et d'entraînement de modèles pour la reconnaissance des codes QR assez facile. Et lorsque vous ajoutez la bibliothèque IronBarcode, les choses deviennent encore plus simples – elle aide à lire les codes QR à partir d'images sans tracas. Cette collaboration ne rend pas seulement les tâches d'inventaire et de marketing plus efficaces, mais rend aussi vos applications plus amusantes à utiliser. Quand Model Builder et IronBarcode se rejoignent, c'est comme intégrer une technologie super-intelligente dans vos applications .NET, ouvrant toutes sortes de possibilités cool pour le travail avec les codes QR. Iron Barcode commercial license is available at a very low cost with a licence d'essai gratuite.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite