Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Schnelle Antwort (QR) codes sind zu einem integralen Bestandteil unseres digitalen Lebens geworden und erleichtern den nahtlosen Austausch von Daten und das Abrufen von Informationen. Die Erkennung von QR-Codes in Bildern ist eine wertvolle Anwendung von Deep Learning, einem Teilbereich der künstlichen Intelligenz. In diesem Artikel führen wir Sie durch den Prozess der Erstellung eines QR-Code-Erkennungssystems mit Deep Learning in .NET/C#.
Beim Deep Learning, einem Zweig des maschinellen Lernens, werden neuronale Netze trainiert, um komplexe Muster aus Daten zu lernen. Im Zusammenhang mit der Erkennung von QR-Codes können Deep-Learning-Modelle trainiert werden, um QR-Codes aus Bildern mit unterschiedlichen Größen, Ausrichtungen und Bedingungen zu identifizieren und zu dekodieren. Faltungsneuronale Netze (CNNs) sind eine beliebte Wahl für bildbasierte Aufgaben wie die Erkennung von QR-Codes, da sie in der Lage sind, komplexe visuelle Merkmale zu erfassen.
In diesem Artikel werden wir Folgendes verwenden ML.NET Model Builder für das Training unseres Modells.
Model Builder ist ein leistungsfähiges Werkzeug, das von Microsoft als Teil des ML.NET framework für die Erstellung von Modellen für maschinelles Lernen in .NET/C#. Es vereinfacht und beschleunigt den Prozess der Erstellung benutzerdefinierter Machine-Learning-Modelle, ohne dass tiefgreifende Kenntnisse über Machine-Learning-Algorithmen oder umfangreiche Programmierkenntnisse erforderlich sind. Model Builder ist benutzerfreundlich und leicht zugänglich und damit ein hervorragendes Tool für Entwickler, die die Möglichkeiten des maschinellen Lernens für ihre Anwendungen nutzen möchten. Model Builder unterstützt AutoML, das automatisch verschiedene Algorithmen und Einstellungen für maschinelles Lernen untersucht, um Ihnen zu helfen, den für Ihr Szenario am besten geeigneten Algorithmus zu finden.
Das Training eines QR-Code-Erkennungsmodells mit 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 führen wir Sie durch jede Phase der Ausbildung eines QR-Code-Modells mit Model Builder in .NET/C#.
Bevor wir mit der Implementierung beginnen, sollten Sie sicherstellen, dass Sie die folgenden Voraussetzungen erfüllen:
Wir benötigen QR-Code-Bilder für das Training unseres Modells. Sie können QR-Code-Bilder erhalten von Kaggle oder Roboflow. Für dieses Beispiel habe ich QR-Code-Bilder von Roboflow heruntergeladen.
Visual Studio-Projekt öffnen.
Rechtsklick auf Projekt > Hinzufügen > Modell für maschinelles Lernen...
Das folgende Fenster wird angezeigt.
Geben Sie dem Modell einen Namen und klicken Sie auf die Schaltfläche Hinzufügen. Das folgende Fenster wird angezeigt:
Scrollen Sie nach unten und suchen Sie unter Computer Vision nach "Object Detection".
Wählen Sie Objekterkennung, da wir QR-Codes aus dem gegebenen Datensatz erkennen müssen. Wählen Sie je nach Vorliebe Lokal oder Azure. Wir wählen für dieses Beispiel die Option Lokal.
Nachdem Sie auf Lokal geklickt haben, wird das folgende Fenster angezeigt:
Wählen Sie eine lokale CPU oder GPU nach Ihrer Wahl. Sie können auch Azure auswählen. Dazu sollten Sie über ein Active Azure-Abonnement verfügen. Nachdem Sie Ihre Testumgebung ausgewählt haben, klicken Sie auf die Schaltfläche Weiter. Das folgende Fenster wird angezeigt.
Die Auswahl der Daten ist der wichtigste Teil des Schulungsprozesses. Wie bereits erwähnt, werde ich die Daten von Robo Flow. Öffnen Sie RoboFlow, suchen Sie nach QR-Code. Die Daten können weiße QR-Codes oder viele lokale Merkmale aufweisen. Ich verwende QR-Erkennung Computer Vision Datensatz für diesen Lehrgang. Laden Sie die Daten herunter, indem Sie das Format auswählen. Ich habe das COCO-Format gewählt, um diese Daten herunterzuladen. Dieses Format wird für die weitere Datenvorverarbeitung und Bilderkennung verwendet.
Da Sie nun Daten haben, kehren wir zu Visual Studio zurück. Wählen Sie den Eingabepfad der oben heruntergeladenen Coco-Datei. Sie können auch Vott wählen, aber dazu müssen Sie eine Vott-Datei für Ihre Daten erstellen. Das folgende Fenster wird angezeigt.
Klicken Sie nun auf die Schaltfläche Nächster Schritt und wechseln Sie zur Registerkarte Zug.
Klicken Sie nun auf Trainingsmodell starten, um das Training zu beginnen. Der Model Builder konvertiert automatisch in binäre Bilder und verwendet entsprechend bevorzugte neuronale Netze. Wir brauchen nichts zu spezifizieren. Das Beste an Model Builder ist, dass ein Entwickler mit minimalem Deep Learning-Hintergrund ein Modell trainieren, testen und verwenden kann.
Der Model Builder trainiert das Modell auf dem angegebenen Datensatz und zeigt den Trainingsfortschritt an. Die oben beschriebene Schulung wird je nach System einige Zeit in Anspruch nehmen. Das Modell nimmt alle QR-Codes nacheinander auf und lernt ihre Eigenschaften. Sie können Ihr Modell testen, indem Sie ein beliebiges Test-QR-Code-Bild an das Modell übergeben, sobald das Training abgeschlossen ist.
Nach dem Training bewertet der Model Builder die Leistung des Modells anhand der Validierungsdaten.
Sie sehen Auswertungsmetriken wie Genauigkeit, Präzision, Rückruf und F1-Score. Anhand dieser Metriken wird die Leistung des Modells bewertet.
Nun, da unser Modell trainiert und der QR-Code-Detektor fertig ist, müssen wir dieses Modell verwenden, um den Code zu erkennen und dann den erkannten QR-Code zu dekodieren. Dieses Modell erkennt nur, ob eine bestimmte Eingabe einen Schnellantwortcode enthält oder nicht. Dadurch wird der QR-Code nicht entschlüsselt. Für die Dekodierung von QR-Codes benötigen wir eine Bibliothek eines Drittanbieters. Iron Barcode ist die beste Bibliothek zum Lesen von QR-Code-Bildern. Bevor wir fortfahren, wollen wir uns ein wenig über Iron Barcode informieren.
IronBarcode ist eine .NET-Bibliothek, die speziell auf die Arbeit mit QR-Codes zugeschnitten ist. QR-Codes sind eine Art von 2D-Barcodes, die häufig zur Codierung von Informationen wie URLs, Text, Kontaktdaten usw. verwendet werden. Diese Bibliothek vereinfacht die Erstellung von QR-Codes, indem sie Entwicklern intuitive Werkzeuge zur Verfügung stellt, um QR-Codes mit anpassbaren Funktionen wie Größe, Farbe und Fehlerkorrektur zu erzeugen.
Darüber hinaus ermöglicht IronBarcode die Extraktion von Informationen aus QR-Codes, die in Bilder eingebettet sind, und ist damit eine unverzichtbare Ressource für die nahtlose Integration von QR-Code-Erzeugungs- und Dekodierungsfunktionen in .NET-Anwendungen.
In diesem Tutorial werden wir es zur Dekodierung des QR-Codes verwenden, wenn der QR-Code von unserem Modell erkannt wird.
Schreiben Sie den folgenden Befehl in die NuGet Package Manager Console, um die IronBarcode NuGet-Paket.
Install-Package BarCode
Der obige Befehl installiert das Iron Barcode-Paket und fügt eine Referenz zu unserem Projekt hinzu.
Schreiben Sie den folgenden Code, um den einzelnen erkannten QR-Code zu lesen.
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
Console.WriteLine(data.Value.ToString());
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
Console.WriteLine(data.Value.ToString());
Imports IronBarCode
Private qrCodeImagePath As String = "myQrCode.png"
Private data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath)
Console.WriteLine(data.Value.ToString())
Die Ausgabe sieht folgendermaßen aus:
Zusammenfassend lässt sich sagen, dass der Model Builder und die IronBarcode-Bibliothek eine wertvolle Kombination für .NET-Entwickler sind, die mit QR-Codes arbeiten möchten. Model Builder macht die schwierige Aufgabe des Erstellens und Trainierens von Modellen für die QR-Code-Erkennung ziemlich einfach. Und wenn Sie die IronBarcode-Bibliothek hinzufügen, wird alles noch einfacher - sie hilft, QR-Codes von Bildern ohne viel Aufhebens zu lesen. Diese Teamarbeit verbessert nicht nur die Inventarisierung und die Marketingaufgaben, sondern sorgt auch dafür, dass die Nutzung Ihrer Anwendungen mehr Spaß macht. Wenn Model Builder und IronBarcode zusammenkommen, ist es, als würde man superintelligente Technologie in seine .NET-Anwendungen einbauen, die alle möglichen coolen Möglichkeiten für QR-Codes eröffnet. Iron Barcode kommerzielle Lizenz ist zu einem sehr niedrigen Preis erhältlich mit einer kostenlose Testlizenz.
9 .NET API-Produkte für Ihre Bürodokumente