Wprowadzenie do klasyfikacji obrazów na platformie Azure

Ukończone

Klasyfikację obrazów można wykonać przy użyciu usługi Azure AI Custom Vision dostępnej w ramach ofert usług Azure AI Services. Jest to na ogół łatwiejsze i szybsze niż pisanie własnego kodu trenowania modelu oraz umożliwia osobom, które nie posiadają specjalistycznej wiedzy z zakresu uczenia maszynowego, utworzenie skutecznego rozwiązania do klasyfikacji obrazów.

Zasoby platformy Azure dla usługi Azure AI Custom Vision

Tworzenie rozwiązania do klasyfikacji obrazów za pomocą usługi Azure AI Custom Vision składa się z dwóch głównych zadań. Najpierw należy użyć istniejących obrazów do trenowania modelu, a następnie opublikować model, aby aplikacje klienckie mogły używać go do generowania przewidywań.

Do każdego z tych zadań potrzebny jest zasób w ramach subskrypcji platformy Azure. Można użyć następujących typów zasobów:

  • Custom Vision: dedykowany zasób dla usługi Custom Vision, który może być trenowany, przewidywanie lub oba zasoby.
  • Usługi azure AI: ogólny zasób obejmujący usługę Azure AI Custom Vision wraz z wieloma innymi usługami azure AI. Tego typu zasobu można użyć do trenowania, przewidywania lub w obu przypadkach.

Rozdzielenie zasobów trenowania i przewidywania jest przydatne, gdy chcesz śledzić wykorzystanie zasobów na potrzeby trenowania modeli niezależnie od aplikacji klienckich używających modelu do przewidywania klas obrazów. Może to jednak spowodować, że opracowanie rozwiązania do klasyfikacji obrazów stanie się nieco skomplikowane.

Najprostszym podejściem jest użycie ogólnego zasobu usług Azure AI na potrzeby trenowania i przewidywania. Oznacza to, że wystarczy tylko jeden punkt końcowy (adres HTTP, pod którym jest hostowana usługa) i klucz (wartość wpisu tajnego używana przez aplikacje klienckie do uwierzytelniania się).

Jeśli zdecydujesz się utworzyć zasób Custom Vision, zostanie wyświetlony monit o wybranie opcji trenowanie, przewidywanie lub oba — należy pamiętać, że w przypadku wybrania opcji „oba” tworzone są dwa zasoby — jeden do trenowania, drugi do przewidywania.

Istnieje również możliwość zastosowania podejścia mieszanego i dopasowanego, w którym do trenowania jest używany dedykowany zasób usługi Custom Vision, ale wdrażanie modelu w zasobie usług AI platformy Azure na potrzeby przewidywania. Aby ta funkcja działała, zasoby trenowania i przewidywania należy utworzyć w tym samym regionie.

Trenowanie modelu

Aby wytrenować model klasyfikacji, należy przekazać obrazy do zasobów trenowania i oznaczyć je odpowiednimi etykietami klas. Następnie należy przystąpić do trenowania modelu i oszacować wyniki trenowania.

Możesz wykonać te zadania w portalu Custom Vision lub jeśli masz niezbędne środowisko kodowania, możesz użyć jednego z zestawów SDK (SDK) specyficznych dla języka programowania usługi Azure AI Custom Vision Service.

Jednym z kluczowych zagadnień związanych z używaniem obrazów do klasyfikacji jest zapewnienie wystarczającej liczby obrazów obiektów, które mają być używane, i te obrazy powinny przedstawiać obiekt z wielu różnych kątów.

Ocena modelu

Proces trenowania modelu to proces iteracyjny, w którym usługa Azure AI Custom Vision wielokrotnie szkoli model przy użyciu niektórych danych, ale powstrzymuje niektóre z nich, aby ocenić model. Na koniec procesu trenowania wydajność dla wytrenowanego modelu jest wskazywana przez następujące metryki oceny:

  • Precyzja: Jaki procent przewidywań klas wykonanych przez model był poprawny? Jeśli na przykład model przewiduje, że na 10 obrazach są pomarańcze, z czego na ośmiu rzeczywiście były pomarańcze, precyzja wynosi 0,8 (80%).
  • Przypomnij sobie: Jaki procent przewidywań klas prawidłowo zidentyfikował model? Jeśli na przykład istnieje 10 obrazów przedstawiających jabłka i model znalazł 7 z nich, wówczas kompletność wynosi 0,7 (70%).
  • Average Precision (AP): Ogólna metryka, która uwzględnia zarówno precyzję, jak i kompletność.

Używanie modelu do przewidywania

Po wytrenowaniu modelu i uzyskaniu satysfakcjonującej oceny jego wydajności można opublikować model w zasobie przewidywania. Po opublikowaniu modelu można przypisać mu nazwę (domyślnie jest to „IterationX”, gdzie X to informacja o tym, ile razy model był trenowany).

Aby użyć modelu, deweloperzy aplikacji klienckich potrzebują następujących informacji:

  • Identyfikator projektu: unikatowy identyfikator utworzonego projektu usługi Custom Vision w celu wytrenowania modelu.
  • Nazwa modelu: nazwa przypisana do modelu podczas publikowania.
  • Punkt końcowy przewidywania: adres HTTP punktów końcowych zasobu przewidywania , do którego opublikowano model (a nie zasób trenowania).
  • Klucz przewidywania: klucz uwierzytelniania zasobu przewidywania , do którego opublikowano model (a nie zasób trenowania).