Jak rozumieć rozpoznawanie kodu QR z użyciem głębokiego uczenia
Kody QR stały się integralną częścią naszego cyfrowego życia, ułatwiając płynną wymianę danych i wyszukiwanie informacji. Rozpoznawanie kodów QR na obrazach to cenne zastosowanie głębokiego uczenia się, które jest częścią sztucznej inteligencji. W tym artykułe przeprowadzimy Cię przez proces tworzenia systemu rozpoznawania kodów QR z wykorzystaniem głębokiego uczenia się w .NET/C#.
Zrozumienie rozpoznawania kodów QR dzięki głębokiemu uczeniu
Uczenie głębokie, będące gałęzią uczenia maszynowego, polega na szkoleniu sieci neuronowych w celu uczenia się złożonych wzorców na podstawie danych. W kontekście rozpoznawania kodów QR modele uczenia głębokiego można wyszkolić tak, aby identyfikowały i dekodowały kody QR z obrazów o różnych rozmiarach, orientacjach i w różnych warunkach. Sieci neuronowe konwolucyjne (CNN) są popularnym wyborem do zadań opartych na obrazach, takich jak rozpoznawanie kodów QR, ze względu na ich zdolność do uchwycenia skomplikówanych cech wizualnych.
W tym artykułe użyjemy ML.NET Model Builder do szkolenia naszego modelu.
ML.NET Model Builder
Model Builder to potężne narzędzie udostępniane przez firmę Microsoft w ramach platformy ML.NET, służące do tworzenia modeli uczenia maszynowego w środowisku .NET Framework/C#. Upraszcza i przyspiesza proces tworzenia niestandardowych modeli uczenia maszynowego bez konieczności posiadania dogłębnej wiedzy na temat algorytmów uczenia maszynowego lub rozległej wiedzy z zakresu kodowania. Builder został zaprojektowany z myślą o łatwości obsługi i dostępności, co czyni go doskonałym narzędziem dla programistów, którzy chcą wykorzystać możliwości uczenia maszynowego w swoich aplikacjach. Model Builder obsługuje funkcję AutoML, która automatycznie analizuje różne algorytmy uczenia maszynowego i ustawienia, aby pomóc Ci znaleźć ten, który najlepiej pasuje do Twojego scenariusza.
Szkolenie modelu rozpoznawania kodów QR
Trenowanie modelu rozpoznawania kodów QR za pomocą Builder obejmuje szereg kroków, które prowadzą użytkownika przez proces tworzenia i trenowania modelu. W tym przewodniku krok po kroku przeprowadzimy Cię przez każdy etap szkolenia modelu kodów QR przy użyciu Builder w .NET/C#.
Krok 1: Konfiguracja środowiska
Zanim przejdziemy do realizacji, upewnij się, że spełniasz następujące wymagania wstępne:
- Visual Studio: Pobierz i zainstaluj Visual Studio, wszechstronne zintegrowane środowisko programistyczne (IDE) do tworzenia aplikacji w .NET.
- ML.NET Model Builder: Możesz pobrać ML.NET Model Builder, klikając tutaj.
Krok 2: Przygotowanie danych
Potrzebujemy obrazów kodów QR do szkolenia naszego modelu. Obrazy kodów QR można pobrać z serwisów Kaggle lub Roboflow. Na potrzeby tego przykładu pobrałem obrazy kodów QR z serwisu Roboflow.
Krok 3: Otwórz Builder
Otwórz projekt Visual Studio.
Kliknij prawym przyciskiem myszy Projekt > Dodaj > Model uczenia maszynowego...

Pojawi się następujące okno.

Podaj nazwę modelu i kliknij przycisk Dodaj. Pojawi się następujące okno:

Przewiń w dół i znajdź "Wykrywanie obiektów" w sekcji "Wizja komputerowa".

Krok 4: Wybierz środowisko szkoleniowe
Wybierz opcję wykrywania obiektów, ponieważ musimy wykrywać kody QR z podanego zbioru danych. Wybierz Local lub Azure zgodnie z własnymi preferencjami. W tym przykładzie wybieramy opcję "Lokalnie".
Po kliknięciu przycisku "Lokalne" pojawi się następujące okno:

Wybierz lokalny procesor lub kartę graficzną według własnego uznania. Możesz również wybrać platformę Azure. W tym celu należy posiadać aktywną subskrypcję Azure. Po wybraniu środowiska testowego kliknij przycisk Dalej. Pojawi się następujące okno.

Krok 5: Wybierz dane
Wybór danych jest najważniejszą częścią procesu szkolenia. Jak wspomniano wcześniej, dane pozyskam z Robo Flow. Otwórz RoboFlow, wyszukaj kod QR. Dane mogą zawierać białe kody QR lub wiele elementów lokalnych. W tym samouczku korzystam z zestawu danych Computer Vision do wykrywania kodów QR. Pobierz dane, wybierając format. Do pobrania tych danych wybrałem format COCO, ponieważ format ten będzie dalej wykorzystywany do wstępnego przetwarzania danych i rozpoznawania obrazów.

Teraz, gdy masz już dane, wróćmy do Visual Studio. Wybierz ścieżkę wejściową pliku COCO pobranego powyżej. Możesz również wybrać Vott, ale w tym celu musisz utworzyć plik Vott dla swoich danych. Pojawi się następujące okno.

Teraz kliknij przycisk "Kolejny krok" i przejdź do zakładki "Szkolenie".

Krok 6: Trening modelu wykrywania kodów QR
Teraz kliknij "Rozpocznij szkolenie modelu", aby rozpocząć szkolenie. Model Builder automatycznie przekształci dane w obrazy binarne i odpowiednio wykorzysta preferowane sieci neuronowe. Nie musimy niczego określać. Największą zaletą Builder jest to, że programista z minimalną wiedzą z zakresu uczenia głębokiego może trenować, testować i wykorzystywać model.

Model Builder wytrenuje model na podanym zbiorze danych i wyświetli postęp szkolenia. Powyższe szkolenie zajmie trochę czasu w zależności od systemu. Model przeanalizuje wszystkie kody QR jeden po drugim i nauczy się ich cech. Po zakończeniu szkolenia można przetestować model, przekazując mu dowolny obraz testowego kodu QR.
Krok 7: Ocena modelu
Po zakończeniu szkolenia Builder oceni wydajność modelu na danych walidacyjnych.
Zobaczysz wskaźniki oceny, takie jak dokładność, precyzja, współczynnik odzysku i wynik F1. Te wskaźniki oceniają, jak dobrze działa model.
Krok 8: Wykorzystaj
Teraz, gdy nasz model jest już wytrenowany, a detektor kodów QR gotowy, musimy wykorzystać ten model do wykrycia kodu, a następnie zdekodować wykryty kod QR. Ten model wykrywa jedynie, czy dane wejściowe zawierają kod QR, czy nie. To nie odszyfruje kodu QR. Do dekodowania kodów QR potrzebujemy biblioteki zewnętrznej. Iron BarCode to najlepsza biblioteka do odczytu obrazów kodów QR. Zanim przejdziemy dalej, przyjrzyjmy się nieco bliżej Iron BarCode.
Iron BarCode – biblioteka do dekodowania kodów QR
Biblioteka IronBarcode to biblioteka .NET stworzona specjalnie do pracy z kodami QR, czyli rodzajem kodów kreskowych 2D, które są często używane do kodowania informacji, takich jak adresy URL, tekst, dane kontaktowe i inne. Biblioteka ta upraszcza tworzenie kodów QR, zapewniając programistom intuicyjne narzędzia do generowania kodów QR z możliwością dostosowania takich parametrów, jak rozmiar, kolor i korekcja błędów.
Ponadto IronBarcode umożliwia wyodrębnianie informacji z kodów QR osadzonych w obrazach, co czyni go nieodzownym narzędziem do płynnej integracji funkcji generowania i dekodowania kodów QR z aplikacjami .NET.
W tym samouczku wykorzystamy go do dekodowania kodu QR, jeśli zostanie on wykryty przez nasz model.
Zainstaluj pakiet NuGet Iron BarCode
Wpisz następujące polecenie w konsoli NuGet Package Manager Console, aby pobrać pakiet NuGet IronBarcode.
Install-Package BarCode
Powyższe polecenie zainstaluje pakiet Iron BarCode i doda odwołanie do naszego projektu.

Odkoduj kody QR
Napisz poniższy kod, aby odczytać wykryty kod QR.
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())
Poniżej znajduje się wynik:

Wnioski
Podsumowując, Model Builder i biblioteka IronBarcode to cenne połączenie dla programistów .NET, którzy chcą pracować z kodami QR. Model Builder sprawia, że trudne zadanie tworzenia i uczenia modeli do rozpoznawania kodów QR staje się całkiem proste. A gdy dodasz bibliotekę IronBarcode, wszystko staje się jeszcze prostsze – pomaga ona bez problemu odczytywać kody QR ze zdjęć. Ta praca zespołowa nie tylko usprawnia zadania związane z zarządzaniem zapasami i marketingiem, ale także sprawia, że korzystanie z aplikacji staje się przyjemniejsze. Połączenie Model Builder i IronBarcode to jak wplecenie superinteligentnej technologii w aplikacje .NET, otwierające mnóstwo fajnych możliwości związanych z kodami QR. Licencja komercyjna Iron BarCode jest dostępna w bardzo niskiej cenie wraz z bezpłatną licencją probną.


