Trainieren Sie ein Objekterkennungsmodell mit AutoML Vision Edge

Ein Objekterkennungsmodell ist einem Bildkennzeichnungsmodell ähnlich, aber anstatt ganzen Bildern Etiketten zuzuweisen, weist es Bildregionen Etiketten 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 Objektbezeichnungen 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

1. Stellen Sie Ihre Trainingsdaten zusammen

Zuerst müssen Sie einen Trainingsdatensatz aus 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 darf maximal 30 MB groß 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 Genauigkeitsvorteil bietet.

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

  • Fügen Sie jedem Etikett mehrere Blickwinkel, Auflösungen und Hintergründe hinzu.

  • Die Trainingsdaten sollten so nah wie möglich an den Daten liegen, auf denen Vorhersagen getroffen werden sollen. Wenn Ihr Anwendungsfall beispielsweise verschwommene Bilder mit niedriger Auflösung beinhaltet (z. B. von einer Sicherheitskamera), 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 zuweisen können. Wenn also ein Mensch keine Labels zuweisen kann, indem er das Bild 1-2 Sekunden lang betrachtet, kann das Modell wahrscheinlich auch nicht darauf 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 in Google Cloud Storage hoch und bereiten Sie eine CSV-Datei vor, die die URL jedes Bildes und optional die korrekten Objektbezeichnungen und Begrenzungsbereiche für jedes Bild auflistet. Diese Option ist hilfreich, wenn Sie große Datensätze 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 CSV für Trainingsdaten formatieren .

Die Bilder müssen in einem Bucket gespeichert werden, der sich in der Region us-central1 befindet und Teil des entsprechenden Google Cloud-Projekts Ihres Firebase-Projekts ist.

Option 2: Unbeschriftete Bilder

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 nächster Schritt.

2. Trainieren Sie Ihr Modell

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

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

  2. Klicken Sie auf Neuer Datensatz , geben Sie einen Namen für den Datensatz ein, wählen Sie den Modelltyp aus, den Sie trainieren möchten, und klicken Sie auf Datensatz erstellen .

  3. Laden Sie auf der Registerkarte „ Importieren “ Ihres Datensatzes Ihre Trainingsbilder, ein ZIP-Archiv Ihrer Trainingsbilder oder eine CSV-Datei mit den Cloud-Speicherorten hoch, in die Sie sie hochgeladen haben. Siehe Trainingsdaten zusammenstellen .

  4. Verwenden Sie nach Abschluss der Importaufgabe die Registerkarte Bilder , um die Trainingsdaten zu überprüfen.

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

  6. Klicken Sie auf der Registerkarte Trainieren auf Training starten .

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

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

      Modell optimieren für... Die zu verwendende Modellkonfiguration. Sie können schnellere, kleinere Modelle trainieren, wenn niedrige Latenz oder kleine Paketgröße wichtig sind, oder langsamere, größere Modelle, wenn Genauigkeit am wichtigsten ist.
      Knotenstundenbudget

      Die maximale Zeit in Rechenstunden für das Trainieren des Modells. 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 genutzten Stunden in Rechnung gestellt.

      Typische Trainingszeiten
      Sehr kleine Sätze 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 das Training abgeschlossen ist, können Sie auf die Registerkarte Evaluieren klicken, um Leistungsmetriken für das Modell anzuzeigen.

Eine wichtige Verwendung dieser Seite besteht darin, den Konfidenzschwellenwert zu bestimmen, der für Ihr Modell am besten geeignet ist. Der Vertrauensschwellenwert ist das minimale Vertrauen, das das Modell haben muss, damit es einem Bild eine Bezeichnung zuweisen kann. Durch Verschieben des Schiebereglers Konfidenzschwellenwert können Sie sehen, wie sich verschiedene Schwellenwerte auf die Leistung des Modells auswirken. Die Modellleistung wird anhand von zwei Metriken gemessen: Präzision und Abruf .

Im Zusammenhang mit der Bildklassifizierung ist Genauigkeit das Verhältnis der Anzahl der Bilder, die korrekt gekennzeichnet wurden, zur Anzahl der Bilder, die das Modell unter Berücksichtigung des ausgewählten Schwellenwerts gekennzeichnet hat. Wenn ein Modell eine hohe Genauigkeit aufweist, weist es Labels seltener falsch zu (weniger falsch positive Ergebnisse).

Recall ist das Verhältnis der Anzahl der korrekt beschrifteten Bilder zur Anzahl der Bilder mit Inhalten, die das Modell hätte beschriften können. Wenn ein Modell einen hohen Wiedererkennungswert hat, weist es seltener ein Etikett zu (weniger falsch negative Ergebnisse).

Ob Sie für Präzision oder Rückruf optimieren, hängt von Ihrem Anwendungsfall ab. Weitere Informationen finden Sie im AutoML Vision-Einsteigerleitfaden und im Inklusiven ML-Leitfaden – AutoML .

Wenn Sie einen Konfidenzschwellenwert finden, der Metriken erzeugt, mit denen Sie zufrieden sind, notieren Sie sich diesen; 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 Optionen, aus denen Sie eine beliebige Kombination auswählen können: Stellen Sie das Modell für die Onlinevorhersage bereit, veröffentlichen Sie das Modell in Firebase oder laden Sie das Modell herunter und bündeln Sie es mit Ihrer App.

Stellen Sie das Modell bereit

Auf der Registerkarte „ Testen und verwenden “ Ihres Datasets können Sie Ihr Modell für die Onlinevorhersage bereitstellen, die Ihr Modell in der Cloud ausführt. Diese Option wird in den Cloud AutoML-Dokumenten behandelt . Die Dokumente auf dieser Seite befassen sich mit den verbleibenden zwei Optionen.

Veröffentlichen Sie das Modell

Indem Sie das Modell in Firebase veröffentlichen, 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 unterschiedliche Modelle dynamisch für unterschiedliche Gruppen von Benutzern bereitzustellen.

Wenn Sie das Modell nur bereitstellen, indem Sie es bei Firebase hosten, und es nicht mit Ihrer App bündeln, können Sie die anfängliche Downloadgröße Ihrer App reduzieren. Denken Sie jedoch daran, dass, wenn das Modell nicht mit Ihrer App gebündelt ist, alle modellbezogenen Funktionen erst verfügbar sind, wenn 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 von der Seite „ Testen und verwenden “ Ihres Datasets in der Google Cloud Console herunter und laden Sie das Modell dann auf der Seite „ Benutzerdefiniertes Modell “ der Firebase-Konsole hoch. Dies ist normalerweise der einfachste Weg, um ein einzelnes Modell zu veröffentlichen.
  • Veröffentlichen Sie das Modell mithilfe des Admin SDK direkt aus Ihrem Google Cloud-Projekt in Firebase. Sie können diese Methode verwenden, um mehrere Modelle im Batch zu veröffentlichen oder um automatisierte Veröffentlichungspipelines zu erstellen.

So veröffentlichen Sie das Modell mit der Modellverwaltungs-API des Admin SDK:

  1. Installieren und initialisieren Sie das SDK .

  2. Veröffentlichen Sie das Modell.

    Sie müssen die Ressourcenkennung 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 des Dashboards der Google Cloud-Konsole.
    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 auf der Test- und Verwendungsseite Ihres Datasets auf TF Lite .

Nächste Schritte

Nachdem Sie das Modell veröffentlicht oder heruntergeladen haben, erfahren Sie, wie Sie das Modell in Ihren iOS+ - und Android -Apps verwenden.