Wprowadzenie do wykrywania obiektów na platformie Azure

Ukończone

Model uczenia maszynowego dotyczący wykrywania obiektów można utworzyć przy użyciu zaawansowanych technik uczenia głębokiego. Jednak takie podejście wymaga specjalistycznej wiedzy i dużej ilości danych trenowania. Usługa Azure AI Custom Vision na platformie Azure umożliwia tworzenie modeli wykrywania obiektów spełniających potrzeby wielu scenariuszy przetwarzania obrazów z minimalną wiedzą w zakresie uczenia głębokiego i mniejszą liczbą obrazów szkoleniowych.

Zasoby platformy Azure dla usługi Azure AI Custom Vision

Tworzenie rozwiązania do wykrywania obiektów za pomocą usługi Azure AI Custom Vision składa się z trzech głównych zadań:

  • Przekazywanie i tagowanie obrazów
  • Szkolenie modelu
  • Publikowanie wytrenowanego modelu, 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 Azure AI Custom Vision. Zasób szkoleniowy, zasób przewidywania lub zasób trenowania i przewidywania można utworzyć.
  • 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. Jeśli używasz zasobu ogólnego, musisz się martwić tylko o jeden punkt końcowy (adres HTTP, pod którym jest hostowana usługa) i klucz (wartość wpisu tajnego używanego przez aplikacje klienckie do uwierzytelniania się).

Jeśli zdecydujesz się utworzyć zasób usługi Custom Vision, możesz wybrać trenowanie, przewidywanie lub oba te zasoby. Należy pamiętać, że jeśli wybierzesz wartość "obie", zostaną utworzone dwa zasoby — jeden do trenowania i jeden na potrzeby 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. Dzięki temu podejściu upewnij się, że zasoby szkoleniowe i przewidywania są tworzone w tym samym regionie.

Oznaczanie obrazów tagami

Przed rozpoczęciem trenowania modelu wykrywania obiektów należy oznaczyć klasy i współrzędne pola ograniczenia w zestawie obrazów do trenowania. Ten proces może być czasochłonny, ale portal usługi Custom Vision udostępnia interfejs graficzny, który ułatwia te czynności. Interfejs może automatycznie wykrywać dyskretne obiekty na obrazie i sugerować te obszary. Etykietę klasy można zastosować do tych sugerowanych pól ograniczenia lub przeciągnąć, aby dostosować obszar pola ograniczenia. Ponadto po tagowaniu i trenowaniu przy użyciu początkowego zestawu danych usługa Azure AI przetwarzanie obrazów może używać tagowania inteligentnego do sugerowania klas i pól ograniczenia obrazów dodanych do zestawu danych trenowania.

Podczas tagowania obrazów treningowych na potrzeby wykrywania obiektów należy pamiętać o kilku kluczowych kwestiach. Upewnij się, że masz wystarczające obrazy obiektów, o których mowa, najlepiej z wielu kątów. Ważne jest również, aby upewnić się, że pola ograniczenia są ciasne wokół każdego obiektu.

Trenowanie i ocena modelu

Aby wytrenować model, możesz użyć portalu Custom Vision lub jeśli masz niezbędne środowisko kodowania, możesz użyć jednego z zestawów SDK (SOFTWARE Development Kit) specyficznych dla języka programowania usługi Azure AI. Trenowanie modelu wykrywania obiektów może zająć trochę czasu, w zależności od liczby obrazów trenowania, klas i obiektów w poszczególnych obrazach.

Proces trenowania modelu jest procesem iteracyjnym. 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 końcu procesu trenowania można użyć następujących metryk oceny, aby ocenić wydajność wytrenowanego modelu:

  • Precyzja: Jaki procent przewidywań klas prawidłowo zidentyfikował model? 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 wykonanych przez model był poprawny? 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%).
  • Średnia precyzja (mAP): ogólna metryka, która uwzględnia zarówno precyzję, jak i kompletność we wszystkich klasach.

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