Tworzenie niestandardowego modelu analizy obrazów (wersja zapoznawcza)

Usługa Image Analysis 4.0 umożliwia trenowanie modelu niestandardowego przy użyciu własnych obrazów szkoleniowych. Ręcznie oznaczając obrazy, możesz wytrenować model, aby zastosować tagi niestandardowe do obrazów (klasyfikacja obrazów) lub wykryć obiekty niestandardowe (wykrywanie obiektów). Modele analizy obrazów 4.0 są szczególnie skuteczne w przypadku uczenia przy użyciu kilku strzałów, dzięki czemu można uzyskać dokładne modele z mniejszymi danymi treningowymi.

W tym przewodniku pokazano, jak utworzyć i wytrenować niestandardowy model klasyfikacji obrazów. Zanotowano kilka różnic między trenowaniem modelu klasyfikacji obrazów a modelem wykrywania obiektów.

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz bezpłatnie
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Vision w witrynie Azure Portal, aby uzyskać klucz i punkt końcowy. Jeśli korzystasz z tego przewodnika przy użyciu programu Vision Studio, musisz utworzyć zasób w regionie Wschodnie stany USA. Po wdrożeniu wybierz pozycję Przejdź do zasobu. Skopiuj klucz i punkt końcowy do lokalizacji tymczasowej do późniejszego użycia.
  • Zasób usługi Azure Storage — tworzenie jednego
  • Zestaw obrazów do trenowania modelu klasyfikacji. Możesz użyć zestawu przykładowych obrazów w usłudze GitHub. Możesz też użyć własnych obrazów. Potrzebujesz tylko około 3–5 obrazów na klasę.

Uwaga

Nie zalecamy używania modeli niestandardowych w środowiskach krytycznych dla działania firmy ze względu na potencjalne duże opóźnienie. Gdy klienci szkolą modele niestandardowe w programie Vision Studio, te modele niestandardowe należą do zasobu przetwarzania obrazów, w ramach którego zostali przeszkoleni, a klient może wykonywać wywołania tych modeli przy użyciu interfejsu API analizowania obrazów . Podczas wykonywania tych wywołań model niestandardowy jest ładowany do pamięci, a infrastruktura przewidywania jest inicjowana. W takim przypadku klienci mogą doświadczać dłuższych niż oczekiwano opóźnień, aby otrzymywać wyniki przewidywania.

Tworzenie nowego modelu niestandardowego

Zacznij od wybrania karty Analiza obrazów w programie Vision Studio. Następnie wybierz kafelek Dostosuj modele.

Zrzut ekranu przedstawiający kafelek Dostosowywanie modeli.

Następnie zaloguj się przy użyciu konta platformy Azure i wybierz zasób usługi Vision. Jeśli go nie masz, możesz go utworzyć na tym ekranie.

Ważne

Aby wytrenować model niestandardowy w programie Vision Studio, subskrypcja platformy Azure musi zostać zatwierdzona w celu uzyskania dostępu. Zażądaj dostępu przy użyciu tego formularza.

Zrzut ekranu przedstawiający ekran wybierania zasobu.

Przygotowywanie obrazów treningowych

Musisz przekazać obrazy szkoleniowe do kontenera usługi Azure Blob Storage. Przejdź do zasobu magazynu w witrynie Azure Portal i przejdź do karty Przeglądarka magazynu. W tym miejscu możesz utworzyć kontener obiektów blob i przekazać obrazy. Umieść je wszystkie w katalogu głównym kontenera.

Dodawanie zestawu danych

Aby wytrenować model niestandardowy, musisz skojarzyć go z zestawem danych , w którym podajesz obrazy i ich informacje o etykiecie jako dane szkoleniowe. W programie Vision Studio wybierz kartę Zestawy danych, aby wyświetlić zestawy danych.

Aby utworzyć nowy zestaw danych, wybierz pozycję Dodaj nowy zestaw danych. W oknie podręcznym wprowadź nazwę i wybierz typ zestawu danych dla danego przypadku użycia. Modele klasyfikacji obrazów stosują etykiety zawartości do całego obrazu, a modele wykrywania obiektów stosują etykiety obiektów do określonych lokalizacji na obrazie. Modele rozpoznawania produktów to podkategoria modeli wykrywania obiektów zoptymalizowanych pod kątem wykrywania produktów detalicznych.

Wybieranie usługi Blob Storage

Następnie wybierz kontener z konta usługi Azure Blob Storage, na którym są przechowywane obrazy szkoleniowe. Zaznacz pole wyboru, aby umożliwić programowi Vision Studio odczytywanie i zapisywanie w kontenerze magazynu obiektów blob. Jest to krok niezbędny do zaimportowania danych oznaczonych etykietami. Utwórz zestaw danych.

Tworzenie projektu etykietowania Edukacja maszyny platformy Azure

Potrzebujesz pliku COCO, aby przekazać informacje o etykietowaniu. Łatwym sposobem wygenerowania pliku COCO jest utworzenie projektu usługi Azure Machine Edukacja, który jest dostarczany z przepływem pracy etykietowania danych.

Na stronie szczegółów zestawu danych wybierz pozycję Dodaj nowy projekt etykietowania danych. Nadaj mu nazwę i wybierz pozycję Utwórz nowy obszar roboczy. Spowoduje to otwarcie nowej karty witryny Azure Portal, na której można utworzyć projekt usługi Azure Machine Edukacja.

Wybieranie Edukacja maszyny platformy Azure

Po utworzeniu projektu usługi Azure Machine Edukacja wróć do karty Vision Studio i wybierz go w obszarze Obszar roboczy. Portal usługi Azure Machine Edukacja zostanie otwarty na nowej karcie przeglądarki.

Azure Machine Edukacja: tworzenie etykiet

Aby rozpocząć etykietowanie, postępuj zgodnie z monitem Dodaj klasy etykiet, aby dodać klasy etykiet.

Klasy etykiet

Dodawanie etykiet klas

Po dodaniu wszystkich etykiet klas zapisz je, wybierz pozycję Rozpocznij w projekcie, a następnie wybierz pozycję Etykieta danych u góry.

Rozpoczynanie etykietowania

Usługa Azure Machine Edukacja: ręczne etykietowanie danych treningowych

Wybierz pozycję Rozpocznij etykietowanie i postępuj zgodnie z monitami, aby oznaczyć wszystkie obrazy. Po zakończeniu wróć do karty Vision Studio w przeglądarce.

Teraz wybierz pozycję Dodaj plik COCO, a następnie wybierz pozycję Importuj plik COCO z projektu etykietowania danych usługi Azure ML. Spowoduje to zaimportowanie danych oznaczonych etykietą z usługi Azure Machine Edukacja.

Właśnie utworzony plik COCO jest teraz przechowywany w kontenerze usługi Azure Storage połączonym z tym projektem. Teraz możesz zaimportować go do przepływu pracy dostosowywania modelu. Wybierz ją z listy rozwijanej. Po zaimportowaniu pliku COCO do zestawu danych zestaw danych może służyć do trenowania modelu.

Uwaga

Importowanie plików COCO z innego miejsca

Jeśli masz gotowy plik COCO, który chcesz zaimportować, przejdź do karty Zestawy danych i wybierz pozycję Add COCO files to this dataset. Możesz dodać określony plik COCO z konta usługi Blob Storage lub zaimportować go z projektu etykietowania usługi Azure Machine Edukacja.

Obecnie firma Microsoft rozwiązała problem powodujący niepowodzenie importowania plików COCO z dużymi zestawami danych podczas inicjowania w programie Vision Studio. Aby wytrenować przy użyciu dużego zestawu danych, zaleca się użycie interfejsu API REST.

Wybierz pozycję COCO

Informacje o plikach COCO

Pliki COCO to pliki JSON z określonymi wymaganymi polami: "images", "annotations"i "categories". Przykładowy plik COCO będzie wyglądać następująco:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Dokumentacja pola pliku COCO

Jeśli generujesz własny plik COCO od podstaw, upewnij się, że wszystkie wymagane pola są wypełnione prawidłowymi szczegółami. W poniższych tabelach opisano każde pole w pliku COCO:

"obrazy"

Klucz Type Opis Wymagane?
id integer Unikatowy identyfikator obrazu, począwszy od 1 Tak
width integer Szerokość obrazu w pikselach Tak
height integer Wysokość obrazu w pikselach Tak
file_name string Unikatowa nazwa obrazu Tak
absolute_url lub coco_url string Ścieżka obrazu jako bezwzględny identyfikator URI do obiektu blob w kontenerze obiektów blob. Zasób przetwarzania obrazów musi mieć uprawnienia do odczytywania plików adnotacji i wszystkich plików obrazów, do których się odwołujesz. Tak

Wartość parametru absolute_url można znaleźć we właściwościach kontenera obiektów blob:

bezwzględny adres URL

"Adnotacje"

Klucz Type Opis Wymagane?
id integer Identyfikator adnotacji Tak
category_id integer Identyfikator kategorii zdefiniowanej categories w sekcji Tak
image_id integer Identyfikator obrazu Tak
area integer Wartość wartości "Width" x "Height" (trzecie i czwarte wartości bbox) Nie.
bbox list[float] Współrzędne względne pola ograniczenia (od 0 do 1) w kolejności od "Lewa", "Góra", "Szerokość", "Wysokość" Tak

"kategorie"

Klucz Type Opis Wymagane?
id integer Unikatowy identyfikator dla każdej kategorii (klasa etykiety). Powinny one znajdować się w annotations sekcji . Tak
name string Nazwa kategorii (klasa etykiety) Tak

Weryfikacja pliku COCO

Możesz użyć naszego przykładowego kodu w języku Python, aby sprawdzić format pliku COCO.

Trenowanie modelu niestandardowego

Aby rozpocząć trenowanie modelu przy użyciu pliku COCO, przejdź do karty Modele niestandardowe i wybierz pozycję Dodaj nowy model. Wprowadź nazwę modelu i wybierz Image classification lub Object detection jako typ modelu.

Tworzenie modelu niestandardowego

Wybierz zestaw danych, który jest teraz skojarzony z plikiem COCO zawierającym informacje o etykietowaniu.

Następnie wybierz budżet czasu i wytrenuj model. W przypadku małych przykładów można użyć 1 hour budżetu.

Przeglądanie szczegółów trenowania

Ukończenie szkolenia może zająć trochę czasu. Modele analizy obrazów 4.0 mogą być dokładne tylko przy użyciu tylko małego zestawu danych treningowych, ale trenowanie niż w poprzednich modelach trwa dłużej.

Ocena wytrenowanego modelu

Po zakończeniu trenowania można wyświetlić ocenę wydajności modelu. Używane są następujące metryki:

  • Klasyfikacja obrazów: średnia precyzja, dokładność top 1, dokładność top 5
  • Wykrywanie obiektów: średnia precyzja @ 30, średnia precyzja @ 50, średnia precyzja @ 75

Jeśli zestaw oceny nie zostanie podany podczas trenowania modelu, zgłoszona wydajność jest szacowana na podstawie części zestawu treningowego. Zdecydowanie zalecamy użycie zestawu danych oceny (przy użyciu tego samego procesu, co powyżej), aby uzyskać wiarygodne oszacowanie wydajności modelu.

Zrzut ekranu przedstawiający ocenę

Testowanie modelu niestandardowego w programie Vision Studio

Po utworzeniu modelu niestandardowego możesz przetestować, wybierając przycisk Wypróbuj na ekranie oceny modelu.

Zrzut ekranu przedstawiający ekran oceny modelu z wyświetlonym przyciskiem Wypróbuj.

Spowoduje to przejście do strony Wyodrębnianie typowych tagów z obrazów . Wybierz model niestandardowy z menu rozwijanego i przekaż obraz testowy.

Zrzut ekranu przedstawiający model testowy selekingu w programie Vision Studio.

Wyniki przewidywania są wyświetlane w prawej kolumnie.

Następne kroki

W tym przewodniku utworzono i wytrenujesz niestandardowy model klasyfikacji obrazów przy użyciu analizy obrazów. Następnie dowiedz się więcej na temat interfejsu API analizowania obrazu 4.0, dzięki czemu możesz wywołać model niestandardowy z aplikacji przy użyciu zestawów SDK REST lub biblioteki.