Uczenie maszynowe kodu QR: Samouczek dla deweloperów
Kody QR stały się integralną częścią współczesnego społeczeństwa, rewolucjonizując sposób udostępniania informacji i uzyskiwania do nich dostępu. Te dwuwymiarowe BARCODES składają się z matrycy czarnych i białych kwadratów, które można zeskanować za pomocą aparatu w smartfonie, aby szybko uzyskać przechowywane informacje, takie jak adresy URL, dane kontaktowe, adresy stron internetowych, szczegóły produktów i inne. Jednak wraz z rozwojem technologii zmieniają się również możliwości kodów QR. Uczenie maszynowe (ML) stało się potężnym narzędziem usprawniającym procesy generowania, rozpoznawania i dekodowania kodów QR, co prowadzi do poprawy komfortu użytkowania i zwiększenia funkcjonalności.
Świat wymiany informacji i danych uległ transformacji dzięki powszechnemu stosowaniu kodów QR i BARCODE-ów. Te dwuwymiarowe kody zapewniają szybki dostęp do treści cyfrowych i służą różnym celom w różnych branżach. Jednak rozróżnienie między kodami QR a kodami BARCODE może być trudne, zwłaszcza w przypadku szerokiej gamy kodów. Wykorzystując możliwości uczenia maszynowego (ML) oraz .NET Framework/C#, programiści mogą tworzyć inteligentne systemy, które precyzyjnie klasyfikują kody QR i kody BarCode, usprawniając przetwarzanie danych i poprawiając komfort użytkowania. Zintegrowanie funkcji dekodowania IronBarcode dodatkowo wzbogaca to rozwiązanie, umożliwiając dokładne wyodrębnianie treści z rozpoznanych kodów.
W tym artykułe wytrenujemy model, który sklasyfikuje podane dane wejściowe jako BarCode lub kod QR, a następnie zdekodujemy kod wejściowy za pomocą IronBarcode.
Wykorzystanie ML.NET Model Builder do klasyfikacji kodów QR
Model Builder, zintegrowane narzędzie w ramach Visual Studio, upraszcza proces tworzenia modeli uczenia maszynowego, zapewniając intuicyjny interfejs. Wykorzystamy Builder do stworzenia modelu klasyfikacyjnego, który rozróżnia kody QR od kodów BARCODE. Po zakończeniu klasyfikacji zintegrujemy IronBarcode w celu dekodowania rozpoznanych kodów.
Krok 1: Gromadzenie danych
Pierwszym krokiem w szkoleniu każdego rodzaju modelu jest zebranie danych. Potrzebujemy danych do szkolenia modelu. Pobrałem dane z serwisu Kaggle. Możesz pobrać go z dowolnego źródła, zgodnie z własnymi preferencjami. Po pobraniu zbioru danych utwórz katalog główny i umieść w nim oba zbiory danych. Dane są uporządkowane w dwóch podkatalogach:
- Kody kreskowe BarCode
- Kody QR

Następnym krokiem jest otwarcie programu Visual Studio i utworzenie nowego modelu uczenia maszynowego.
Krok 2: Utwórz projekt w Visual Studio i dodaj nowy model uczenia maszynowego
Utwórz projekt w Visual Studio. Projekt może być dowolnego typu, np. ASP.NET Web API, ASP.NET MVC, WEB Forms lub aplikacja konsolowa. W tym przykładzie używam aplikacji konsolowej. Kliknij prawym przyciskiem myszy na Projekt w Eksploratorze rozwiązań. Wybierz Dodaj > Model uczenia maszynowego, jak pokazano poniżej.

Nadaj nazwę modelowi uczenia maszynowego i kliknij przycisk Dodaj.

Krok 3: Wybierz scenariusz
Po dodaniu pliku modelu uczenia maszynowego pojawi się nowe okno. Przewiń w dół i wybierz opcję Klasyfikacja obrazów. Klasyfikacja obrazów to jedna z technik wizji komputerowej, którą wykorzystamy w tym samouczku. Wybieramy klasyfikację obrazów zamiast rozpoznawania obrazów, ponieważ musimy jedynie rozróżniać kody QR (Quick Response Code) od kodów BARCODE, a nie rozpoznawać je na podstawie danego obrazu.

Krok 4: Wybierz Środowisko
Kolejnym krokiem po wybraniu scenariusza jest wybór środowiska. Możemy wybrać albo nasz lokalny system do szkolenia modelu, albo chmurę Azure. Aby korzystać z Azure jako naszego środowiska, musimy posiadać aktywną subskrypcję tej platformy.
Krok 5: Wybierz dane
W tym kroku musimy przekazać dane, które zebraliśmy wcześniej w kroku nr 1. W kroku nr 1 uporządkowaliśmy już dane w podkategorie zgodnie z wymaganiami Builder'a.
W opcji Wybierz folder podaj ścieżkę do głównego katalogu swojego zbioru danych. Możemy wyświetlić podgląd naszych danych, jak pokazano poniżej.

Możemy również wyświetlić folder kodów QR, klikając zakładkę "Kody QR" w podglądzie danych.

Po wybraniu danych kliknij przycisk Dalej, aby przejść do ekranu szkolenia.
Krok 6: Trening modelu
Kliknij przycisk "Start Training Model" (Rozpocznij szkolenie modelu), a rozpocznie się szkolenie, jak pokazano poniżej. Upewnij się, że program Visual Studio nie jest uruchomiony w trybie administratora, w przeciwnym razie pojawi się błąd.

Rozpocznie się szkolenie, które potrwa pewien czas. Czas trwania szkolenia będzie zależał od możliwości systemu. Model Builder wykorzystuje AutoML. Automatycznie wykorzysta odpowiednie techniki uczenia maszynowego, poziom korekcji błędów, rozpoznawanie wzorców, redukcję szumów, regulację kontrastu, proces uczenia się i inne ustawienia.
Krok 7: Ocena modelu
Po zakończeniu szkolenia oceń wydajność modelu, przekazując mu dane testowe, aby upewnić się, że klasyfikacja jest dokładna.
Krok 8: Wykorzystanie modelu
Po wyszkoleniu i ocenie modelu możemy go wyeksportować i wykorzystać. W naszym przypadku użycia musimy odróżnić kod QR od BarCoda, a następnie odczytać zakodowane w nim dane. Potrzebujemy biblioteki zewnętrznej do dekodowania danych, ponieważ model uczenia maszynowego nie potrafi dekodować kodu QR ani BARCODE, a jedynie je klasyfikuje.
IronBarcode to idealna biblioteka do dekodowania zarówno kodów QR, jak i kodów BarCode. Możemy dekodować oba rodzaje kodów w prosty sposób, korzystając z jednej biblioteki. Zanim przejdziemy dalej, przedstawmy krótką prezentację IronBarcode.


