Trenowanie modelu oznaczania obrazów za pomocą AutoML Vision Edge

Aby wytrenować model etykietowania obrazów, musisz dostarczyć AutoML Vision Edge zestaw obrazów i odpowiadających im etykiet. AutoML Vision Edge używa tego zbioru danych do wytrenowania nowego modelu w chmurze, którego możesz używać do etykietowania obrazów na urządzeniu w swojej aplikacji. (Ogólne informacje o tej funkcji znajdziesz w sekcji Omówienie).

AutoML Vision Edge to pakiet Google Usługa w chmurze. Korzystanie z usługi podlega Umowie licencyjnej Google Cloud Platform i szczegółowym warunkom korzystania z usługi oraz jest odpowiednio rozliczane. Informacje rozliczeniowe znajdziesz w AutoML Ceny stronę.

Zanim zaczniesz

1. Przygotowanie danych do trenowania

Najpierw musisz utworzyć zbiór danych treningowych z obrazami oznaczonymi etykietami. Zachowaj pami��taj o tych wskazówkach:

  • Obrazy muszą być w jednym z tych formatów: JPEG, PNG, GIF, BMP, ICO.

  • Rozmiar żadnego obrazu nie może przekraczać 30 MB. Pamiętaj, że AutoML Vision Edge większość obrazów podczas wstępnego przetwarzania, więc zwykle nie ma wpływu na dokładność. dostarczając zdjęcia o bardzo wysokiej rozdzielczości.

  • Podaj co najmniej 10, a najlepiej 100 lub więcej przykładów każdej etykiety.

  • Uwzględnij różne kąty, rozdzielczości i tła dla każdej etykiety.

  • Dane treningowe powinny być jak najbardziej zbliżone do danych, na których dla prognozy. Na przykład: jeśli Twój przypadek użycia zawiera rozmyte obrazy, obrazów o niskiej rozdzielczości (np. z kamery monitoringu), danych treningowych; powinny składać się z rozmytych zdjęć o niskiej rozdzielczości.

  • Modele generowane przez AutoML Vision Edge są zoptymalizowane pod kątem zdjęć w świecie rzeczywistym. Nie sprawdzają się w przypadku zdjęć rentgenowskich, rysunków odręcznych, zeskanowane dokumenty, paragony itd.

    Modele nie mogą też przewidywać etykiet, których ludzie nie mogą przypisać. Jeśli więc człowiek nie może przypisać etykiet, patrząc na obraz przez 1–2 sekundy, model prawdopodobnie nie będzie w stanie tego zrobić.

Po przygotowaniu obrazów do trenowania przygotuj je do zaimportowania do Firebase. Dostępne są 3 opcje:

Opcja 1. Uporządkowane archiwum ZIP

Uporządkuj obrazy do trenowania w katalogi, z których każdy ma nazwę odpowiadającą etykiecie, zawierające obrazy, które są przykładami tej etykiety. Następnie skompresuj strukturę katalogu do archiwum ZIP.

Nazwy katalogów w tym archiwum ZIP mogą mieć maksymalnie 32 znaki ASCII. i może zawierać tylko znaki alfanumeryczne i znak podkreślenia (_).

Przykład:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

Opcja 2. Cloud Storage z indeksem CSV

Prześlij obrazy do trenowania do usługi Google Cloud Storage i przygotować plik CSV z URL-ami każdego zdjęcia poprawne etykiety dla każdego zdjęcia. Ta opcja jest przydatna przy bardzo dużych w wielu zbiorach danych.

Na przykład prześlij obrazy do usługi Cloud Storage i przygotuj plik CSV, taki jak następujące:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

Obrazy muszą być przechowywane w zasobniku, który jest częścią komponentu Firebase odpowiadającego mu projektu Google Cloud.

Zobacz Przygotowywanie danych do trenowania w Cloud AutoML Dokumentacja Vision, która zawiera więcej informacji na temat przygotowywania pliku CSV.

Opcja 3. Obrazy bez etykiet

Po przesłaniu oznacz etykietami obrazy do trenowania w konsoli Firebase. pojedynczo lub w nieuporządkowanym pliku ZIP. Zobacz następny krok.

2. Trenowanie modelu

Następnie wytrenuj model z użyciem swoich obrazów:

  1. Otwórz zbiory danych Vision. w konsoli Google Cloud. Gdy pojawi się prośba, wybierz projekt.

  2. Kliknij Nowy zbiór danych, podaj nazwę zbioru danych, wybierz typ model, który chcesz wytrenować, i kliknij Utwórz zbiór danych.

  3. Na karcie Import w swoim zbiorze danych prześlij archiwum ZIP ze swoimi obrazami treningowymi lub plik CSV zawierający ich Cloud Storagelokalizacje. Zobacz Przygotowanie danych do trenowania.

  4. Po zakończeniu importu użyj karty Obrazy, aby sprawdzić poprawność danych treningowych i oznaczyć etykietami wszystkie obrazy bez etykiet.

  5. Na karcie Trenuj kliknij Rozpocznij trenowanie.

    1. Nazwij model i wybierz typ modelu Edge.

    2. Skonfiguruj poniższe ustawienia trenowania, które określają wydajność wygenerowanego modelu:

      Optymalizuj model pod kątem... Konfiguracja modelu, której chcesz użyć. Możesz trenować szybsze, mniejsze modele, gdy ważna jest mała opóźnienie lub mały rozmiar pakietu, albo wolniejsze, większe modele, gdy najważniejsza jest dokładność.
      Budżet w godzinach pracy węzłów

      Maksymalny czas (w godzinach obliczeniowych) na trenowanie model atrybucji. Dłuższy czas trenowania zapewnia zwykle większą dokładność model atrybucji.

      Pamiętaj, że trenowanie może zakończyć się w krótszym czasie niż określony, jeśli system uzna, że model jest zoptymalizowany i dodatkowe trenowanie nie poprawi jego dokładności. Opłaty są naliczane tylko dla faktycznie wykorzystanych godzin.

      Typowe czasy trenowania
      Bardzo małe zestawy1 godzina
      500 obrazów2 godziny
      1000 obrazów3 godziny
      5000 obrazów6 godzin
      10 000 obrazów7 godzin
      50 000 obrazów11 godzin
      100 tys. zdjęć13 godzin
      1 000 000 obrazów18 godzin

3. Ocenianie modelu

Po zakończeniu trenowania możesz kliknąć kartę Ocena, aby wyświetlić dane o skuteczności modelu.

Ważnym zastosowaniem tej strony jest określenie odpowiedniego progu ufności dla Twojego modelu. Próg ufności określa minimalny poziom ufności modelu wymagany do przypisania etykiety do obrazu. Zmieniając Poziom ufności. zobaczysz, jak różne progi wpływają na wydajność modelu. Skuteczność modelu jest mierzona za pomocą 2 rodzajów danych: precyzji i czułości.

W kontekście klasyfikacji obrazów precyzja to współczynnik proporcji liczby z obrazów, które zostały prawidłowo oznaczone etykietą z liczbą obrazów oznaczonych przez model dla wybranego progu. Gdy model ma dużą precyzję, przypisuje etykiety rzadziej (mniejsza liczba wyników fałszywie pozytywnych).

Przywołanie to stosunek liczby obrazów, które zostały prawidłowo otagowane, do liczby obrazów, które zawierały treści, które model powinien rozpoznać. Kiedy model ma wysoką czułość, nie przypisuje żadnej etykiety rzadziej (mniej fałszywych minus).

To, czy wybierzesz optymalizację pod kątem precyzji czy czułości, zależy od konkretnego przypadku użycia. Więcej informacji znajdziesz w przewodniku dla początkujących użytkowników AutoML Visionprzewodniku Inclusive ML – AutoML.

Gdy znajdziesz próg ufności, który generuje wskaźniki, które Ci odpowiadają, zanotuj go. Użyjesz go do skonfigurowania modelu w aplikacji. (W dowolnym momencie możesz użyć tego narzędzia, aby uzyskać odpowiednią wartość progową).

4. Publikowanie i pobieranie modelu

Jeśli jesteś zadowolony z wyników działania modelu i chcesz go używać w aplikacji, masz do wyboru 3 opcje: wdrożenie modelu na potrzeby prognozowania online, opublikowanie modelu w Firebase lub pobranie modelu i dodanie go do aplikacji.

Wdróż model

Na stronie Test & Użyj karty, możesz wdrożyć swój model online. która uruchamia model w chmurze. Ta opcja jest omówiona w dokumentów Cloud AutoML. dokument w tej witrynie dotyczy dwóch pozostałych opcji.

Publikowanie modelu

Publikując model w Firebase, możesz go aktualizować bez wydawania nowej wersji aplikacji. Możesz też używać funkcji Remote ConfigA/B Testing, aby dynamicznie wyświetlać różne modele różnym grupom użytkowników.

Jeśli zdecydujesz się udostępnić tylko model, hostując go w Firebase, a nie dołączając go do aplikacji, możesz zmniejszyć początkowy rozmiar pobierania aplikacji. Pamiętaj jednak, że jeśli model nie jest dołączony do aplikacji, żadne funkcje związane z modelem nie będą dostępne, dopóki aplikacja nie pobierze modelu po raz pierwszy.

Aby opublikować model, możesz użyć jednej z dwóch metod:

  • Pobierz model TF Lite ze zbioru danych w narzędziu Test & użyj w tabeli Google Cloud, a potem prześlij model do Strona modelu niestandardowego w konsoli Firebase. Zwykle jest to najprostszy sposób na opublikowanie pojedynczego modelu.
  • Opublikuj model bezpośrednio z projektu Google Cloud w Firebase za pomocą pakietu Admin SDK. Za pomocą tej metody możesz zbiorczo opublikować kilka modeli lub pomagają tworzyć automatyczne potoki publikowania.

Aby opublikować model za pomocą interfejsu API do zarządzania modelem z pakietu Admin SDK:

  1. Zainstaluj i zainicjuj pakiet SDK.

  2. Opublikuj model.

    Musisz podać identyfikator zasobu modelu, który jest ciągiem znaków wygląda podobnie do tego:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Numer projektu zasobnika Cloud Storage zawierającego model atrybucji. Może to być Twój projekt Firebase lub inny Google Cloud w projektach AI. Tę wartość znajdziesz na stronie Ustawienia w Firebase lub panel konsoli Google Cloud.
    MODEL_ID Identyfikator modelu pobrany z interfejsu AutoML Cloud API.

    Python

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

Pobierz połącz model ze swoją aplikacją

Jeśli połączysz model z aplikacją, będziesz mieć pewność, że funkcje ML w aplikacji będą działać. działają też wtedy, gdy model hostowany przez Firebase jest niedostępny.

Jeśli opublikujesz model i spakujesz go z aplikacją, aplikacja będzie używać atrybutu Najnowsza dostępna wersja.

Aby pobrać model, kliknij TF Lite w sekcji Testowanie i .

Dalsze kroki

Po opublikowaniu lub pobraniu modelu dowiedz się, jak z niego korzystać w iOS+ oraz Aplikacje na Androida.