Przejdź do treści stopki
NARZęDZIA DO KODóW KRESKOWYCH

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...

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 1

Pojawi się następujące okno.

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 2

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

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia się: Rysunek 3

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

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 4

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:

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 5

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.

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 6

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.

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 7

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.

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 8

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

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 9

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.

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 10

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.

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 11

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())
$vbLabelText   $csharpLabel

Poniżej znajduje się wynik:

Jak zrozumieć rozpoznawanie kodów QR za pomocą głębokiego uczenia: Rysunek 12

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ą.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie