Ćwiczenie — integrowanie usługi Azure Custom Vision

Ukończone

W tym module dowiesz się, jak używać usługi Azure Custom Vision. Wykonasz zestaw zdjęć śledzonego obiektu, przekażesz je do usługi Custom Vision i rozpoczniesz proces trenowania. Następnie użyjesz usługi, aby wykryć śledzony obiekt, przechwytując zdjęcia z kanału informacyjnego kamery internetowej.

Omówienie usługi Azure AI Custom Vision

Usługa Azure AI Custom Vision jest częścią rodziny usług Cognitive Services i służy do trenowania klasyfikatorów obrazów. Klasyfikator obrazu to usługa sztucznej inteligencji, która używa wytrenowanego modelu do stosowania pasujących tagów. Nasza aplikacja będzie używać tej funkcji klasyfikacji do wykrywania śledzonych obiektów.

Dowiedz się więcej o usłudze Custom Vision.

Przygotowywanie usługi Custom Vision

Przed rozpoczęciem należy utworzyć projekt usługi Custom Vision. Najszybszym sposobem utworzenia projektu usługi Custom Vision jest użycie portalu Custom Vision.

Wykonaj czynności opisane w tym samouczku Szybki start, aby skonfigurować konto i projekt. Wykonaj kroki opisane w sekcji Przekazywanie i tagowanie obrazów . Należy utworzyć jeden tag z pięcioma obrazami.

Ostrzeżenie

Aby wytrenować model, musisz mieć co najmniej dwa tagi i pięć obrazów na tag. Później dodamy więcej obrazów za pośrednictwem aplikacji. Aby jednak użyć tej aplikacji, musisz utworzyć co najmniej jeden tag z pięcioma obrazami, aby proces trenowania nie powiódł się później.

Przygotowywanie sceny

  1. W oknie Projekt przejdź do zestawu narzędzi Assets>MRTK. Tutorials.AzureCloudServices>Prefabs>Manager folder.

    Screenshot of Unity with Project window showing path to ObjectDetectionManager prefab.

  2. Następnie przeciągnij prefab ObjectDetectionManager do hierarchii sceny.

    Screenshot of Unity with ObjectDetectionManager script component configuration fields shown in Inspector.

  3. W oknie Hierarchy (Hierarchia) znajdź i wybierz obiekt ObjectDetectionManager . Prefab ObjectDetectionManager zawiera składnik ObjectDetectionManager (script) i, jak widać w oknie Inspector (Inspektor), zależy od ustawień platformy Azure i ustawień projektu.

Pobieranie poświadczeń zasobu interfejsu API platformy Azure

Niezbędne poświadczenia dla ustawień ObjectDetectionManager (script) można pobrać z witryny Azure Portal i portalu Custom Vision.

Pobieranie poświadczeń ustawień platformy Azure

Znajdź i znajdź zasób usługi Custom Vision typu usług Cognitive Services utworzony w sekcji Przygotowywanie sceny tego samouczka. W tym miejscu wybierz pozycję Przegląd lub Klucze i punkt końcowy , aby pobrać niezbędne poświadczenia.

  • Identyfikator subskrypcji zasobu platformy Azure: użyj identyfikatora subskrypcji z sekcji Przegląd .
  • Nazwa grupy zasobów platformy Azure: użyj nazwy grupy zasobów z sekcji Przegląd .

W polu Nazwa grupy usługi Cognitive Service użyj nazwy zasobu usługi Custom Vision, po której następuje ciąg -Prediction.

  • Punkt końcowy przewidywania bazy zasobów: użyj punktu końcowego z kluczy i punktu końcowego w zasobie Custom Vision -Prediction.
  • Klucz przewidywania interfejsu API: użyj klucza 1 z kluczy i punktu końcowego w zasobie Custom Vision -Prediction .

Pobieranie poświadczeń ustawień projektu

Na pulpicie nawigacyjnym usługi Custom Vision otwórz projekt utworzony na potrzeby tego samouczka, a następnie wybierz ikonę Ustawienia (koła zębatego) w prawym górnym rogu strony, aby otworzyć stronę Ustawienia. Niezbędne poświadczenia znajdziesz w sekcji Zasoby po prawej stronie i sekcji Ogólne po lewej stronie.

  • Punkt końcowy bazy zasobów: użyj punktu końcowego z sekcji Zasoby . Powinno to być zgodne z punktem końcowym w obszarze Klucze i punkt końcowy w zasobie usługi Custom Vision.
  • Klucz interfejsu API: użyj klucza z sekcji Zasoby . Powinno to być zgodne z kluczem w obszarze Klucze i punkt końcowy w zasobie usługi Custom Vision.
  • Identyfikator projektu: użyj identyfikatora projektu z sekcji Ogólne .
  1. Teraz, po poprawnej konfiguracji ObjectDetectionManager (script) znajdź obiekt SceneController w hierarchii sceny i wybierz go.

    Screenshot of Unity with SceneController script component configuration fields shown in Inspector.

  2. Pole Menedżer wykrywania obiektów w składniku SceneController jest puste. Przeciągnij element ObjectDetectionManager z hierarchii do składnika SceneController i zapisz scenę.

    Screenshot of Unity with SceneController script component configured.

Wykonywanie i przekazywanie obrazów

  1. Uruchom scenę i wybierz pozycję Ustaw obiekt. Wprowadź nazwę dla jednego z śledzonych obiektów utworzonych w poprzedniej lekcji. Wybierz przycisk przetwarzanie obrazów w dolnej części karty obiektu.

  2. Zostanie otwarte nowe okno. Wykonasz sześć zdjęć, aby wytrenować model do rozpoznawania obrazów. Wybierz przycisk Aparat i wykonaj funkcję AirTap, aby zobaczyć obiekt, który chcesz śledzić. Zrób to sześć razy.

    Napiwek

    Aby ulepszyć trenowanie modelu, spróbuj wykonać każdy obraz z różnych kątów i warunków oświetlenia.

  3. Po uzyskaniu wystarczającej ilości obrazów wybierz przycisk Trenuj , aby rozpocząć proces trenowania modelu w chmurze. Spowoduje to przekazanie wszystkich obrazów i rozpoczęcie trenowania. Proces może potrwać kilka minut. Komunikat w menu wskazuje bieżący postęp. Po zakończeniu procesu można zatrzymać aplikację.

    Napiwek

    Obiekt ObjectDetectionManager (skrypt) przekazuje bezpośrednio zrobione obrazy do usługi Custom Vision. Alternatywnie interfejs API usługi Custom Vision akceptuje adresy URL obrazów. W ramach ćwiczenia można zmodyfikować obiekt ObjectDetectionManager (skrypt), aby zamiast tego przekazać obrazy do magazynu obiektów blob.

Ostrzeżenie

Jeśli trenowanie zakończy się niepowodzeniem, sprawdź pulpit nawigacyjny usługi Custom Vision i upewnij się, że masz co najmniej dwa tagi i że każdy tag ma co najmniej pięć obrazów.

Wykrywanie obiektów

Teraz możesz umieścić wytrenowany model do testu. Uruchom aplikację. W menu Głównym wybierz pozycję Wyszukaj obiekt i wprowadź nazwę śledzonego obiektu. Zostanie wyświetlona karta obiektu. Następnie wybierz przycisk Custom Vision . *ObjectDetectionManager rozpocznie przechwytywanie obrazu w tle z aparatu. Menu będzie wskazywać postęp aplikacji. Wskaż aparat do obiektu użytego do wytrenowania modelu. Wkrótce powinien wykryć obiekt.