Trenowanie modelu wykrywania obiektów za pomocą AutoML Vision Edge

Model wykrywania obiektów jest podobny do modelu oznaczania obrazów, ale nie przypisuje etykiety do całych obrazów, przypisuje etykiety do obszarów obrazów. Dostępne opcje używać modeli wykrywania obiektów do rozpoznawania i lokalizowania obiektów na obrazie oraz śledzić ruch obiektu na wielu zdjęciach.

Aby wytrenować model wykrywania obiektów, musisz przekazać AutoML Vision Edge do obrazów z odpowiednimi etykietami i granicami obiektów. AutoML Vision, Edge używa tego zbioru danych do trenowania nowego modelu w chmurze, którego można używać do wykrywanie obiektów na urządzeniu.

Zanim zaczniesz

1. Zbieranie 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 każdego 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.

  • Dla każdej etykiety dołącz różne kąty, rozdzielczość i tło.

  • 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 Google Cloud Dostępne są dwie opcje:

Opcja 1. 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 obiektów i regiony ograniczające dla każdego obrazu. Ta opcja jest co jest pomocne przy korzystaniu z dużych zbiorów 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,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

Ramki ograniczające obiekty są określane na obrazie jako względne współrzędne. Zobacz Formatowanie pliku CSV z danymi treningowymi.

Obrazy muszą być przechowywane w zasobniku w regionie us-central1 oraz z odpowiedniego projektu Google Cloud powiązanego z Twoim projektem Firebase.

Opcja 2. Obrazy bez etykiet

Po przesłaniu etykietuj obrazy szkoleniowe i narysuj granice obiektów w konsoli Google Cloud. Zalecamy to tylko w przypadku małych w wielu zbiorach danych. 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 zbioru danych prześlij obrazy do trenowania w postaci archiwum ZIP. obrazów do trenowania lub plik CSV zawierający Cloud Storage lokalizacji, do których zostały przesłane. Zobacz Zbieranie danych do trenowania

  4. Po zakończeniu importowania na karcie Obrazy możesz sprawdzić dane szkoleniowe.

  5. Jeśli nie przesłałeś pliku CSV, w przypadku każdego obrazu narysuj ramki ograniczające wokół które chcesz rozpoznawać i oznaczać etykietami.

  6. Na karcie Trenowanie 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óra ma zostać użyta. 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 tys. 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 to minimalny poziom ufności modelu jest niezbędna 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 stosunek liczby obrazów, które zostały prawidłowo otagowane, do liczby obrazów, które model otagował przy wybranej wartości progowej. Gdy model ma dużą precyzję, przypisuje etykiety rzadziej (mniejsza liczba wyników fałszywie pozytywnych).

Czułość to stosunek liczby obrazów prawidłowo oznaczonych etykietami do liczby liczba obrazów zawierających treści, które model powinien móc oznaczyć etykietą. Kiedy model ma wysoką czułość, nie przypisuje żadnej etykiety rzadziej (mniej fałszywych minus).

To, czy optymalizujesz model pod kątem dokładności czy trafności, zależy od przypadku użycia. Zobacz AutoML Vision dla początkujących oraz Więcej informacji znajdziesz w przewodniku po systemach uczących się uwzględniających integrację społeczną – AutoML.

Gdy znajdziesz przedział ufności, który dostarcza odpowiednich wskaźników, je zanotować, użyjesz progu ufności do skonfigurowania modelu . (Za pomocą tego narzędzia możesz w każdej chwili uzyskać odpowiednią wartość progową).

4. Publikowanie lub pobieranie modelu

Jeśli wydajność modelu spełnia Twoje oczekiwania i chcesz go używać w aplikacji, masz trzy opcje, które mają do wyboru dowolną kombinację: wdrożenie do prognozowania online, opublikować model w Firebase lub pobrać model i pakowanie go z aplikacją.

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. Dokumenty na tej stronie dotyczą pozostałych 2 opcji.

Publikowanie modelu

Gdy opublikujesz model w Firebase, możesz go zaktualizować bez konieczności publikowania nową wersję aplikacji. Możesz używać Remote Config i A/B Testing, dynamicznie udostępniać różne modele różnym grupom użytkowników.

Jeśli zdecydujesz się udostępniać model tylko poprzez hosting w Firebase, a nie pakietu z aplikacją, możesz zmniejszyć początkowy rozmiar pobieranej aplikacji. Pamiętaj jednak, że jeśli do aplikacji nie dołączony jest model, funkcje związane z modelem będą dostępne dopiero po pobraniu przez aplikację z użyciem modelu po raz pierwszy.

Aby opublikować model, możesz użyć jednej z tych 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. Możesz użyć tej metody, aby opublikować kilka modeli w grupie lub utworzyć automatyczne procesy 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, który zawiera model. Może to być Twój projekt Firebase lub inny projekt Google Cloud. 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ą

Dzięki złączeniu modelu z aplikacją możesz mieć pewność, że funkcje ML w aplikacji będą działać, gdy model hostowany w Firebase będzie niedostępny.

Jeśli opublikujesz model i umieścisz go w pakiecie z aplikacją, aplikacja będzie używać najnowszej dostępnej wersji.

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

Dalsze kroki

Po opublikowaniu lub pobraniu modelu dowiedz się, jak go używać w aplikacjach iOS+Android.