Udostępnij przez


Klasyfikacja obrazów przy użyciu ML.NET i usługi Windows Machine Learning

Przepływ klasyfikacji obrazów

W tym przewodniku przedstawiono sposób trenowania modelu sieci neuronowej w celu klasyfikowania obrazów żywności przy użyciu narzędzia ML.NET Model Builder, eksportowania modelu do formatu ONNX i wdrażania modelu w aplikacji windows Machine Learning działającej lokalnie na urządzeniu z systemem Windows. Nie jest wymagana żadna poprzednia wiedza na temat uczenia maszynowego i przeprowadzimy Cię krok po kroku przez proces.

Jeśli chcesz dowiedzieć się, jak skompilować i wytrenować model za pomocą narzędzia ML.NET Model Builder, możesz przejść do sekcji Trenowanie modelu.

Jeśli masz model i chcesz dowiedzieć się, jak utworzyć aplikację WinML od podstaw, przejdź do kompletnego samouczka aplikacji WinML.

Jeśli chcesz uzyskać wstępnie zdefiniowane rozwiązanie dla aplikacji WinML, możesz sklonować plik rozwiązania i przetestować go od razu.

Scenariusz

W tym samouczku utworzymy aplikację klasyfikującą żywność z wykorzystaniem uczenia maszynowego, działającą na urządzeniach z systemem Windows. Model będzie trenowany do rozpoznawania określonych wzorców, aby sklasyfikować obraz żywności, a po otrzymaniu obrazu zwróci tag klasyfikacji oraz związaną z nim wartość procentową pewności tej klasyfikacji.

Wymagania wstępne dotyczące trenowania modelu

Aby skompilować i wytrenować model, użyjesz ML.NET Model Buider w programie Visual Studio.

  • Do korzystania z narzędzia ML.NET Model Builder będzie potrzebny program Visual Studio 2019 16.6.1 lub nowszy. Program Visual Studio można uzyskać tutaj.
  • Do wytrenowania modelu za pomocą narzędzia ML.NET Model Builder w obszarze roboczym usługi Azure ML będzie potrzebne konto platformy Azure. Jeśli dopiero zaczynasz korzystać z platformy Azure, możesz utworzyć bezpłatne konto platformy Azure.

Uwaga / Notatka

Chcesz dowiedzieć się więcej na temat opcji tworzenia konta platformy Azure i bezpłatnych kont platformy Azure? Zapoznaj się z pozycją Tworzenie konta platformy Azure.

ML.NET Model Builder to intuicyjne graficzne rozszerzenie programu Visual Studio służące do kompilowania, trenowania i wdrażania niestandardowych modeli uczenia maszynowego. Używa zautomatyzowanego uczenia maszynowego (AutoML) do eksplorowania różnych algorytmów i ustawień uczenia maszynowego, aby ułatwić znalezienie tego, który najlepiej pasuje do danego scenariusza.

program ML.NET Model Builder jest dostarczany z programem Visual Studio w wersji 16.6.1 lub nowszej podczas instalowania jednego z obciążeń platformy .NET. Upewnij się, że składnik ML.NET Model Builder został zaewidencjonowany w instalatorze podczas pobierania lub modyfikowania programu Visual Studio. Aby sprawdzić, czy program VS ma składniki ML.NET Model Builder, przejdź do pozycji Rozszerzenia i wybierz pozycję Zarządzaj rozszerzeniami. Wpisz Model Builder na pasku wyszukiwania, aby przejrzeć wyniki rozszerzenia.

Rozszerzenie konstruktora modelu

ML.NET Model Builder jest obecnie funkcją w wersji zapoznawczej. Aby korzystać z narzędzia, w programie Visual Studio należy przejść do Narzędzia > Opcje > Środowisko > Funkcje w wersji zapoznawczej i włączyć ML.NET Model Builder:

Włączanie rozszerzenia konstruktora modelu

Uwaga / Notatka

Chcesz dowiedzieć się więcej na temat narzędzia ML.NET Model Builder i różnych obsługiwanych scenariuszy? Zapoznaj się z dokumentacją narzędzia Model Builder.

Wymagania wstępne dotyczące wdrażania aplikacji windows ML

Aby utworzyć i wdrożyć aplikację Windows ML, potrzebujesz następujących elementów:

  • System Windows 10 w wersji 1809 (kompilacja 17763) lub nowszy. Numer wersji kompilacji można sprawdzić, uruchamiając polecenie winver Uruchom (Windows logo key + R).
  • Zestaw Windows SDK dla kompilacji 17763 lub nowszej. Zestaw SDK można uzyskać tutaj.
  • Program Visual Studio 2019 w wersji 16.6.1 lub nowszej. Program Visual Studio można uzyskać tutaj.
  • Rozszerzenie Visual Studio - Windows ML Code Generator (mlgen). Pobierz VS 2019.
  • Jeśli zdecydujesz się utworzyć aplikację UWP, musisz włączyć pakiet narzędzi do programowania na platformie Uniwersalnych aplikacji Windows w programie Visual Studio.
  • Należy również włączyć tryb dewelopera na komputerze

Uwaga / Notatka

Interfejsy API uczenia maszynowego systemu Windows są wbudowane w najnowsze wersje systemów Windows 10 (1809 lub nowszych) i Windows Server 2019. Jeśli platforma docelowa jest starszą wersją systemu Windows, możesz przenieść aplikację WinML do pakietu redystrybucyjnego NuGet (Windows 8.1 lub nowszego).

Przygotowywanie danych

Modele uczenia maszynowego muszą być trenowane przy użyciu istniejących danych. W tym przewodniku użyjesz zestawu danych obrazów żywności z witryny Kaggle Open Datasets. Ten zestaw danych jest dystrybuowany w ramach licencji domeny publicznej.

Ważne

Aby użyć tego zestawu danych, należy przestrzegać terminu korzystania z witryny Kaggle i terminów liscence towarzyszących samemu zestawowi danych Food-11. Firma Microsoft nie udziela żadnej gwarancji ani reprezentacji dotyczącej witryny ani tego zestawu danych.

Zestaw danych ma trzy podziały — oceny, szkolenia i walidacji — i zawiera 16643 obrazy żywności pogrupowane w 11 głównych kategoriach żywności. Obrazy w zestawie danych każdej kategorii żywności są umieszczane w osobnym folderze, co sprawia, że proces trenowania modelu jest wygodniejszy.

Pobierz zestaw danych tutaj. Należy pamiętać, że zestaw danych ma rozmiar około 1 GB i może zostać wyświetlony monit o utworzenie konta w witrynie internetowej Kaggle w celu pobrania danych.

Zestaw danych obrazu żywności

Jeśli chcesz, możesz swobodnie użyć jakiegokolwiek innego zbioru danych dotyczących odpowiednich obrazów. Zalecamy co najmniej użycie co najmniej 30 obrazów na tag w początkowym zestawie treningowym. Warto również zebrać kilka dodatkowych obrazów, aby przetestować model po tym, jak zostanie wytrenujesz.

Ponadto upewnij się, że wszystkie obrazy szkoleniowe spełniają następujące kryteria:

  • format .jpg, .png, .bmplub .gif.
  • rozmiar nie większy niż 6 MB (4 MB dla obrazów do przewidywania).
  • nie mniej niż 256 pikseli na najkrótszej krawędzi; wszystkie obrazy krótsze niż te zostaną automatycznie skalowane w górę przez usługę Custom Vision Service.

Dalsze kroki

Teraz, gdy masz już uporządkowane wymagania wstępne i przygotowany zestaw danych, możesz przystąpić do tworzenia modelu WinML. W następnej części użyjesz narzędzia ML.NET Model Builder do utworzenia i wytrenowania modelu klasyfikacji.