Trainieren Sie ein Objekterkennungsmodell mit AutoML Vision Edge

Ein Objekterkennungsmodell ähnelt einem Bildbeschriftungsmodell, weist jedoch nicht ganzen Bildern Beschriftungen zu, sondern weist Bildbereichen Beschriftungen zu. Sie können Objekterkennungsmodelle verwenden, um Objekte in einem Bild zu erkennen und zu lokalisieren oder um die Bewegungen eines Objekts über eine Reihe von Bildern hinweg zu verfolgen.

Um ein Objekterkennungsmodell zu trainieren, stellen Sie AutoML Vision Edge eine Reihe von Bildern mit entsprechenden Objektbeschriftungen und Objektgrenzen bereit. AutoML Vision Edge verwendet dieses Dataset, um ein neues Modell in der Cloud zu trainieren, das Sie für die Objekterkennung auf dem Gerät verwenden können.

Bevor Sie beginnen

  • Wenn Sie nicht bereits über ein Projekt Firebase, erstellen Sie in der Firebase Konsole .

  • Machen Sie sich mit den vorgestellten Richtlinien Inclusive ML Führer - AutoML .

  • Wenn Sie AutoML Vision Edge nur ausprobieren möchten und keine eigenen Trainingsdaten haben, laden Sie einen Beispieldatensatz wie einen der folgenden herunter:

1. Stelle deine Trainingsdaten zusammen

Zuerst müssen Sie ein Trainings-Dataset mit beschrifteten Bildern zusammenstellen. Beachten Sie die folgenden Richtlinien:

  • Die Bilder müssen in einem der folgenden Formate vorliegen: JPEG, PNG, GIF, BMP, ICO.

  • Jedes Bild muss 30 MB oder kleiner sein. Beachten Sie, dass AutoML Vision Edge die meisten Bilder während der Vorverarbeitung herunterskaliert, sodass die Bereitstellung von Bildern mit sehr hoher Auflösung im Allgemeinen keinen Vorteil bei der Genauigkeit bringt.

  • Fügen Sie mindestens 10 und vorzugsweise 100 oder mehr Beispiele für jedes Etikett ein.

  • Fügen Sie für jedes Etikett mehrere Winkel, Auflösungen und Hintergründe hinzu.

  • Die Trainingsdaten sollten so nah wie möglich an den Daten liegen, zu denen Vorhersagen gemacht werden sollen. Wenn Ihr Anwendungsfall beispielsweise verschwommene Bilder mit niedriger Auflösung enthält (z. B. von einer Überwachungskamera), sollten Ihre Trainingsdaten aus verschwommenen Bildern mit niedriger Auflösung bestehen.

  • Die von AutoML Vision Edge generierten Modelle sind für Fotografien von Objekten in der realen Welt optimiert. Sie funktionieren möglicherweise nicht gut für Röntgenbilder, Handzeichnungen, gescannte Dokumente, Quittungen usw.

    Außerdem können die Modelle im Allgemeinen keine Labels vorhersagen, die Menschen nicht zuordnen können. Wenn ein Mensch also keine Labels zuweisen kann, indem er das Bild 1-2 Sekunden lang betrachtet, kann das Modell wahrscheinlich auch nicht dafür trainiert werden.

Wenn Sie Ihre Trainingsbilder fertig haben, bereiten Sie sie für den Import in Google Cloud vor. Sie haben zwei Möglichkeiten:

Option 1: Cloud Storage mit CSV-Index

Laden Sie Ihre Trainingsbilder auf Google Cloud Storage und bereiten eine CSV - Datei die URL jedes Bildes Listing, und gegebenenfalls die richtigen Objektbeschriftungen und begrenzenden Regionen für jedes Bild. Diese Option ist hilfreich, wenn Sie große Datasets verwenden.

Laden Sie beispielsweise Ihre Bilder in Cloud Storage hoch und bereiten Sie eine CSV-Datei wie die folgende vor:

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,,

Objektbegrenzungsrahmen werden als relative Koordinaten im Bild angegeben. Siehe eine Trainingsdaten CSV Formatierung .

Die Bilder müssen in einem Eimer gespeichert werden , die in dem sind us-central1 Region und einen Teil Ihrer Firebase Projektes entsprechend Google Cloud - Projektes.

Option 2: Bilder ohne Label

Beschriften Sie Ihre Trainingsbilder und zeichnen Sie Objektgrenzen in der Google Cloud Console, nachdem Sie sie hochgeladen haben. Dies wird nur für kleine Datensätze empfohlen. Siehe den nächsten Schritt.

2. Trainieren Sie Ihr Modell

Trainieren Sie als Nächstes ein Modell mit Ihren Bildern:

  1. Öffnen Sie die Vision - Datasets Seite in der Google Cloud Console. Wählen Sie Ihr Projekt aus, wenn Sie dazu aufgefordert werden.

  2. Klicken Sie auf Neuer Datensatz einen Namen für den Datensatz, wählen Sie den Typ des Modells Sie trainieren möchten, und klicken Sie auf Dataset erstellen.

  3. Auf dem Datenmenge Registerkarte Import, laden Sie Ihre Trainingsbilder, ein Zip - Archiv Ihrer Trainingsbilder oder eine CSV - Datei , die die Cloud - Speicherplätze enthält , die Sie sie hochgeladen. Siehe Bauen Sie Ihre Trainingsdaten .

  4. Nachdem die Importaufgabe abgeschlossen ist , verwenden Sie die Registerkarte Bilder der Trainingsdaten zu überprüfen.

  5. Wenn Sie keine CSV-Datei hochgeladen haben, zeichnen Sie für jedes Bild Begrenzungsrahmen um die Objekte, die Sie erkennen möchten, und beschriften Sie jedes Objekt.

  6. Im Zuge Registerkarte klicken Sie auf Start - Training.

    1. Nennen Sie das Modell und wählen Sie den Edge - Modelltyp.

    2. Konfigurieren Sie die folgenden Trainingseinstellungen, die die Leistung des generierten Modells regeln:

      Modell optimieren für... Die zu verwendende Modellkonfiguration. Sie können schnellere, kleinere Modelle trainieren, wenn eine geringe Latenz oder eine kleine Paketgröße wichtig sind, oder langsamere, größere Modelle, wenn es auf die Genauigkeit ankommt.
      Knotenstundenbudget

      Die maximale Zeit in Rechenstunden, die für das Trainieren des Modells aufgewendet wird. Mehr Trainingszeit führt im Allgemeinen zu einem genaueren Modell.

      Beachten Sie, dass das Training in weniger als der angegebenen Zeit abgeschlossen werden kann, wenn das System feststellt, dass das Modell optimiert ist und zusätzliches Training die Genauigkeit nicht verbessern würde. Ihnen werden nur die tatsächlich verbrauchten Stunden in Rechnung gestellt.

      Typische Trainingszeiten
      Sehr kleine Sets 1 Stunde
      500 Bilder 2 Stunden
      1.000 Bilder 3 Stunden
      5.000 Bilder 6 Stunden
      10.000 Bilder 7 Stunden
      50.000 Bilder 11 Stunden
      100.000 Bilder 13 Stunden
      1.000.000 Bilder 18 Stunden

3. Bewerten Sie Ihr Modell

Wenn die Ausbildung abgeschlossen ist , können Sie die Registerkarte auswerten klicken Performance - Metriken für das Modell zu sehen.

Eine wichtige Verwendung dieser Seite besteht darin, den Konfidenzschwellenwert zu bestimmen, der für Ihr Modell am besten geeignet ist. Der Konfidenzschwellenwert ist die minimale Konfidenz, die das Modell haben muss, damit es einem Bild eine Beschriftung zuweisen kann. Durch Bewegen des Confidence Schwelle Schieber, können Sie sehen , wie unterschiedliche Schwellenwerte des Modells Leistung auswirken. Modell Leistung wird unter Verwendung von zwei Metriken gemessen: Precision und Recall.

Im Zusammenhang mit der Bildklassifikation, Präzision ist das Verhältnis der Anzahl der Bilder , die korrekt auf die Anzahl der Bilder , das Modell die gewählte Schwelle gegeben markiert markiert wurden. Wenn ein Modell eine hohe Genauigkeit aufweist, weist es seltener falsch Labels zu (weniger Fehlalarme).

Recall ist das Verhältnis der Anzahl der Bilder , die richtig auf die Anzahl der Bilder markiert wurden , dass das Modell Inhalt hatte , soll beschriften kann. Wenn ein Modell einen hohen Wiedererkennungswert hat, weist es seltener ein Label zu (weniger falsch negative Ergebnisse).

Ob Sie auf Präzision oder Rückruf optimieren, hängt von Ihrem Anwendungsfall ab. Siehe die AutoML Vision - Anfänger Leitfaden und die Inclusive ML Führer - AutoML für weitere Informationen.

Wenn Sie einen Konfidenzschwellenwert gefunden haben, der Messwerte liefert, mit denen Sie zufrieden sind, notieren Sie ihn. Sie verwenden den Konfidenzschwellenwert, um das Modell in Ihrer App zu konfigurieren. (Sie können dieses Tool jederzeit verwenden, um einen geeigneten Schwellenwert zu erhalten.)

4. Veröffentlichen oder laden Sie Ihr Modell herunter

Wenn Sie mit der Leistung des Modells zufrieden sind und es in einer App verwenden möchten, haben Sie drei Möglichkeiten, aus denen Sie eine beliebige Kombination wählen können: Modell für Onlinevorhersagen bereitstellen, Modell in Firebase veröffentlichen oder Modell herunterladen und bündeln mit Ihrer App.

Bereitstellen des Modells

Auf dem Datenmenge Test & Verwendung Registerkarte können Sie Ihr Modell für Online - Vorhersage implementieren, die Ihr Modell in der Cloud läuft. Diese Option wird in dem abgedeckten Wolke AutoML docs . Die Dokumente auf dieser Site behandeln die verbleibenden zwei Optionen.

Veröffentlichen Sie das Modell

Durch das Veröffentlichen des Modells in Firebase können Sie das Modell aktualisieren, ohne eine neue App-Version zu veröffentlichen, und Sie können Remote Config und A/B-Tests verwenden, um verschiedene Modelle dynamisch für verschiedene Benutzergruppen bereitzustellen.

Wenn Sie das Modell nur bereitstellen, indem Sie es mit Firebase hosten, und es nicht mit Ihrer App bündeln, können Sie die anfängliche Downloadgröße Ihrer App reduzieren. Beachten Sie jedoch, dass keine modellbezogenen Funktionen verfügbar sind, wenn das Modell nicht mit Ihrer App gebündelt ist, bis Ihre App das Modell zum ersten Mal herunterlädt.

Um Ihr Modell zu veröffentlichen, können Sie eine von zwei Methoden verwenden:

  • Laden Sie das TF Lite - Modell aus dem Datensatz des Test & Verwendung Seite in dem Google Cloud Console, und laden Sie dann das Modell auf der Benutzerdefinierte Modell Seite der Konsole Firebase. Dies ist normalerweise der einfachste Weg, ein einzelnes Modell zu veröffentlichen.
  • Veröffentlichen Sie das Modell mit dem Admin SDK direkt aus Ihrem Google Cloud-Projekt in Firebase. Sie können diese Methode verwenden, um mehrere Modelle im Stapel zu veröffentlichen oder um automatisierte Veröffentlichungspipelines zu erstellen.

Um das Modell mit dem Admin SDK zu veröffentlichen Modell - Management - API :

  1. Installieren und das SDK initialisieren .

  2. Veröffentlichen Sie das Modell.

    Sie müssen die Ressourcen-ID des Modells angeben, bei der es sich um eine Zeichenfolge handelt, die wie im folgenden Beispiel aussieht:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Die Projektnummer des Cloud Storage-Buckets, der das Modell enthält. Dies kann Ihr Firebase-Projekt oder ein anderes Google Cloud-Projekt sein. Sie finden diesen Wert auf der Seite Einstellungen der Firebase-Konsole oder im Dashboard der Google Cloud Console.
    MODEL_ID Die ID des Modells, die Sie von der AutoML Cloud API erhalten haben.

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

Laden Sie das Modell herunter und bündeln Sie es mit Ihrer App

Indem Sie Ihr Modell mit Ihrer App bündeln, können Sie sicherstellen, dass die ML-Funktionen Ihrer App auch dann funktionieren, wenn das von Firebase gehostete Modell nicht verfügbar ist.

Wenn Sie das Modell sowohl veröffentlichen als auch mit Ihrer App bündeln, verwendet die App die neueste verfügbare Version.

Um Ihr Modell herunterzuladen, klicken Sie TF Lite auf Ihrem Daten - Set Test & Verwendung Seite.

Nächste Schritte

Nun , da Sie veröffentlicht oder heruntergeladen haben , das Modell, lernen , wie man das Modell verwenden in Ihrem iOS + und Android - Apps.