Zum Fußzeileninhalt springen
BARCODE-WERKZEUGE

Wie man die QR-Code-Erkennung mit Deep Learning versteht

QR-Codes (Quick Response) sind ein integraler Bestandteil unseres digitalen Lebens geworden, da sie nahtlosen Datenaustausch und Informationsabruf ermöglichen. Das Erkennen von QR-Codes in Bildern ist eine wertvolle Anwendung des Deep Learning, eines Teilbereichs der künstlichen Intelligenz. In diesem Artikel führen wir Sie durch den Prozess des Aufbaus eines QR-Code-Erkennungssystems mithilfe von Deep Learning in .NET/C#.

Verständnis der QR-Code-Erkennung mit Deep Learning

Deep Learning, ein Zweig des maschinellen Lernens, beinhaltet das Training von neuronalen Netzwerken, um komplexe Muster aus Daten zu lernen. Im Kontext der QR-Code-Erkennung können Deep-Learning-Modelle trainiert werden, um QR-Codes in Bildern mit unterschiedlichen Größen, Ausrichtungen und Bedingungen zu identifizieren und zu decodieren. Convolutional Neural Networks (CNNs) sind eine beliebte Wahl für bildbasierte Aufgaben wie die QR-Code-Erkennung, da sie in der Lage sind, komplexe visuelle Merkmale zu erfassen.

In diesem Artikel werden wir den ML.NET Model Builder zum Training unseres Modells verwenden.

ML.NET Model Builder

Model Builder is a powerful tool provided by Microsoft as part of the Der ML.NET Frameworks zur Erstellung von Modellen des maschinellen Lernens in .NET/C# bereitgestellt wird. Es vereinfacht und beschleunigt den Prozess der Erstellung benutzerdefinierter Modelle des maschinellen Lernens, ohne dass tiefgehende Kenntnisse von Algorithmen des maschinellen Lernens oder umfangreiche Programmierkenntnisse erforderlich sind. Der Model Builder ist benutzerfreundlich und zugänglich gestaltet und bietet eine hervorragende Unterstützung für Entwickler, die die Möglichkeiten des maschinellen Lernens in ihren Anwendungen nutzen möchten. Model Builder unterstützt AutoML, das automatisch verschiedene Algorithmen und Einstellungen des maschinellen Lernens erkundet, um Ihnen zu helfen, dasjenige zu finden, das am besten zu Ihrem Szenario passt.

Training eines QR-Code-Erkennungsmodells

Das Training eines QR-Code-Erkennungsmodells mit dem Model Builder umfasst eine Reihe von Schritten, die Sie durch den Prozess der Erstellung und des Trainings des Modells führen. In dieser Schritt-für-Schritt-Anleitung werden wir Sie durch jede Phase der Ausbildung eines QR-Code-Modells mit dem Model Builder in .NET/C# führen.

Schritt 1: Einrichtung Ihrer Umgebung

Bevor wir uns der Implementierung widmen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen haben:

  • Visual Studio: Laden Sie Visual Studio herunter und installieren Sie es, eine vielseitige integrierte Entwicklungsumgebung (IDE) für die .NET-Entwicklung.
  • Model Builder: Sie können den ML.NET Model Builder hier herunterladen.

Schritt 2: Datenvorbereitung

Wir benötigen QR-Code-Bilder zum Training unseres Modells. You can get QR Code Images from Kaggle or Roboflow. Ich habe QR-Code-Bilder von Roboflow für dieses Beispiel heruntergeladen.

Schritt 3: Model Builder öffnen

Öffnen Sie das Visual Studio-Projekt.

Klicken Sie mit der rechten Maustaste auf Projekt > Hinzufügen > Machine Learning Modell...

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 1

Das folgende Fenster wird angezeigt.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 2

Geben Sie den Modellnamen ein und klicken Sie auf die Schaltfläche Hinzufügen. Das folgende Fenster wird angezeigt:

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 3

Scrollen Sie nach unten, und finden Sie "Objekterkennung" unter Computer Vision.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 4

Schritt 4: Auswahl der Trainingsumgebung

Wählen Sie Objekterkennung, da wir QR-Codes aus dem gegebenen Datensatz erkennen müssen. Wählen Sie Lokal oder Azure nach Ihrer Präferenz. Wir wählen für dieses Beispiel Lokal.

Nachdem Sie auf Lokal geklickt haben, wird das folgende Fenster angezeigt:

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 5

Wählen Sie je nach Wahl eine lokale CPU oder GPU. Sie können auch Azure auswählen. Dafür sollten Sie ein aktives Azure-Abonnement haben. Nachdem Sie Ihre Testumgebung ausgewählt haben, klicken Sie auf die Schaltfläche Weiter. Das folgende Fenster wird angezeigt.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 6

Schritt 5: Auswahl von Daten

Die Auswahl der Daten ist der wichtigste Teil des Trainingsprozesses. Wie bereits erwähnt, werde ich die Daten von Robo Flow beziehen. Öffnen Sie RoboFlow und suchen Sie nach QR Code. Die Daten können weiße QR-Codes enthalten oder viele lokale Merkmale aufweisen. Ich verwende das QR Detection Computer Vision Dataset für dieses Tutorial. Laden Sie die Daten herunter, indem Sie das Format auswählen. Ich habe mich für das COCO-Format entschieden, um diese Daten herunterzuladen, da dieses Format später für die Datenvorverarbeitung und Bilderkennung verwendet wird.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 7

Nun, da Sie die Daten haben, kehren wir zu Visual Studio zurück. Wählen Sie den Eingabepfad der oben heruntergeladenen COCO-Datei aus. Sie können auch Vott wählen, aber dafür müssen Sie eine Vott-Datei für Ihre Daten erstellen. Das folgende Fenster wird angezeigt.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 8

Klicken Sie nun auf die Schaltfläche Nächster Schritt und wechseln Sie zur Registerkarte Trainieren.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 9

Schritt 6: Trainiere das QR-Code-Erkennungsmodell

Klicken Sie jetzt auf Modelltraining starten, um das Training zu beginnen. Der Model Builder wird automatisch in binäre Bilder konvertieren und entsprechend bevorzugte neuronale Netzwerke verwenden. Wir müssen nichts angeben. Das Beste am Model Builder ist, dass ein Entwickler mit minimalem Hintergrund im Deep Learning ein Modell trainieren, testen und nutzen kann.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 10

Model Builder wird das Modell auf dem angegebenen Datensatz trainieren und den Fortschritt anzeigen. Das obige Training wird je nach System Zeit in Anspruch nehmen. Das Modell wird alle QR-Codes nacheinander nehmen und ihre Merkmale lernen. Sie können Ihr Modell testen, indem Sie nach Abschluss des Trainings ein beliebiges Test-QR-Code-Bild an das Modell übergeben.

Schritt 7: Modell bewerten

Nach dem Training wird der Model Builder die Leistung des Modells an den Validierungsdaten bewerten.

Sie werden Evaluierungsmetriken wie Genauigkeit, Präzision, Rückruf und F1-Score sehen. Diese Metriken bewerten, wie gut das Modell funktioniert.

Schritt 8: Nutzen

Jetzt, da unser Modell trainiert ist und der QR-Code-Detektor bereit ist, müssen wir dieses Modell nutzen, um den Code zu erkennen und dann den erkannten QR-Code zu dekodieren. Dieses Modell wird nur erkennen, ob ein gegebener Eingang einen QR-Code enthält oder nicht. Dies wird den QR-Code nicht dekodieren. Zum Dekodieren des QR-Codes benötigen wir eine Drittanbieter-Bibliothek. Iron Barcode ist die beste Bibliothek, um das QR-Code-Bild zu lesen. Lassen Sie uns ein bisschen über Iron Barcode erkunden, bevor wir weiter fortfahren.

Iron Barcode – Die QR-Code-Dekodierungsbibliothek

IronBarcode ist eine .NET-Bibliothek, die speziell für die Arbeit mit QR-Codes entwickelt wurde, einem Typ von 2D-Barcodes, der weit verbreitet ist, um Informationen wie URLs, Text, Kontaktdaten und mehr zu codieren. Diese Bibliothek vereinfacht die Erstellung von QR-Codes, indem sie den Entwicklern intuitive Werkzeuge zur Verfügung stellt, um QR-Codes mit anpassbaren Funktionen wie Größe, Farbe und Fehlerkorrektur zu generieren.

Darüber hinaus ermöglicht IronBarcode das Extrahieren von Informationen aus QR-Codes, die in Bildern eingebettet sind, und macht es zu einer unverzichtbaren Ressource für die nahtlose Integration von QR-Code-Generierung und -Dekodierungsfunktionen in .NET-Anwendungen.

In diesem Tutorial werden wir es verwenden, um den QR-Code zu dekodieren, falls der QR-Code von unserem Modell erkannt wird.

Iron Barcode NuGet-Paket installieren

Schreiben Sie den folgenden Befehl in die NuGet-Paket-Manager-Konsole, um das IronBarcode NuGet-Paket herunterzuladen.

Install-Package BarCode

Der obige Befehl installiert das Iron Barcode-Paket und fügt unserem Projekt einen Verweis hinzu.

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 11

QR-Codes dekodieren

Schreiben Sie den folgenden Code, um den einzelnen erkannten QR-Code zu lesen.

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

Im Folgenden sehen Sie die Ausgabe:

Wie man die QR-Code-Erkennung mit Deep Learning versteht: Abbildung 12

Abschluss

Abschließend sind der Model Builder und die IronBarcode-Bibliothek eine wertvolle Kombination für .NET-Entwickler, die mit QR-Codes arbeiten möchten. Model Builder erleichtert die schwierige Aufgabe, Modelle für die Erkennung von QR-Codes zu erstellen und zu trainieren. Und mit der IronBarcode-Bibliothek wird die Sache noch einfacher – sie hilft dabei, QR-Codes aus Bildern ohne Aufwand zu lesen. Diese Zusammenarbeit verbessert nicht nur Aufgaben in der Inventur und im Marketing, sondern macht Ihre Apps auch unterhaltsamer. Wenn der Model Builder und IronBarcode zusammenkommen, ist es wie das Einbinden superintelligenter Technologie in Ihre .NET-Anwendungen, die alle möglichen coolen Möglichkeiten für QR-Code-Dinge eröffnet. Iron Barcode commercial license is available at a very low cost with a kostenlosen Testlizenz erhältlich.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen