Objekterkennungsmodell mit AutoML Vision Edge trainieren

Ein Objekterkennungsmodell ähnelt einem Modell zur Bildlabeling, weist aber nicht ganzen Bildern, sondern Bildbereichen Labels zu. Mit Objekterkennungsmodellen können Sie Objekte in einem Bild erkennen und lokalisieren oder die Bewegungen eines Objekts in einer Reihe von Bildern verfolgen.

Um ein Objekterkennungsmodell zu trainieren, stellen Sie AutoML Vision Edge eine Reihe von Bildern mit entsprechenden Objektlabels und Objektgrenzen zur Verfügung. 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.

Die Modelltrainingsfunktion von

Hinweis

  • Wenn Sie noch kein Firebase-Projekt haben, erstellen Sie eines in der Firebase-Konsole.

  • Machen Sie sich mit den Richtlinien im Leitfaden zu inklusivem ML – AutoML vertraut.

  • Wenn Sie AutoML Vision Edge nur ausprobieren möchten und keine eigenen Trainingsdaten haben, können Sie ein Beispieldataset wie eines der folgenden herunterladen:

1. Trainingsdaten zusammenstellen

Zuerst müssen Sie ein Trainings-Dataset mit gelabelten 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. Hinweis: AutoML Vision Edge skaliert die meisten Bilder während der Vorverarbeitung herunter. Daher ist es in der Regel nicht von Vorteil, Bilder mit sehr hoher Auflösung bereitzustellen.

  • Geben Sie mindestens 10 und vorzugsweise 100 oder mehr Beispiele für jedes Label an.

  • Fügen Sie für jedes Label mehrere Blickwinkel, Auflösungen und Hintergründe ein.

  • Die Trainingsdaten sollten den Daten, für die Vorhersagen getroffen werden sollen, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Bilder mit niedriger Auflösung (etwa von einer Überwachungskamera) beinhaltet, sollten Ihre Trainingsdaten aus verschwommenen Bildern mit niedriger Auflösung bestehen.

  • Die von AutoML Vision Edge generierten Modelle sind für Fotos von Objekten aus dem richtigen Leben optimiert. Bei Röntgenbildern, handgezeichneten Bildern, gescannten Dokumenten, Belegen usw. funktionieren sie möglicherweise nicht gut.

    Außerdem können die Modelle in der Regel keine Labels vorhersagen, die von Menschen nicht zugewiesen werden können. Wenn also ein Mensch nicht in der Lage ist, beim Betrachten eines Bildes innerhalb von 1 bis 2 Sekunden ein Label zuzuweisen, 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. Es stehen zwei Optionen zur Verfügung:

Option 1: Cloud Storage mit CSV-Index

Laden Sie Ihre Trainingsbilder in Google Cloud Storage hoch und erstellen Sie eine CSV-Datei mit der URL jedes Bildes und optional den richtigen Objektlabels und Begrenzungsregionen für jedes Bild. Diese Option ist hilfreich, wenn Sie große Datasets verwenden.

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

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

Begrenzungsrahmen für Objekte werden als relative Koordinaten im Bild angegeben. Weitere Informationen finden Sie unter Trainingsdaten-CSV-Datei formatieren.

Die Bilder müssen in einem Bucket gespeichert sein, der sich in der Region us-central1 befindet und zum entsprechenden Google Cloud-Projekt Ihres Firebase-Projekts gehört.

Option 2: Bilder ohne Label

Nachdem Sie die Trainingsbilder hochgeladen haben, müssen Sie sie in der Google Cloud-Konsole mit Labels versehen und Objektgrenzen zeichnen. Dies wird nur für kleine Datasets empfohlen. Fahren Sie mit dem nächsten Schritt fort.

2. Modell trainieren

Als Nächstes trainieren Sie ein Modell mit Ihren Bildern:

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

  2. Klicken Sie auf Neues Dataset, geben Sie einen Namen für das Dataset ein, wählen Sie den Typ des Modells aus, das Sie trainieren möchten, und klicken Sie auf Dataset erstellen.

  3. Laden Sie auf dem Tab Importieren Ihres Datasets Ihre Trainingsbilder, ein ZIP-Archiv Ihrer Trainingsbilder oder eine CSV-Datei mit den Cloud Storage-Speicherorten hoch, an die Sie sie hochgeladen haben. Weitere Informationen finden Sie unter Trainingsdaten zusammenstellen.

  4. Prüfen Sie nach Abschluss des Importvorgangs auf dem Tab Bilder die Trainingsdaten.

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

  6. Klicken Sie auf dem Tab Trainieren auf Training starten.

    1. Geben Sie einen Namen für das Modell ein und wählen Sie den Modelltyp Edge aus.

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

      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 die Genauigkeit am wichtigsten ist.
      Knotenstundenbudget

      Die maximale Zeit in Rechenstunden, die für das Training des Modells aufgewendet werden soll. Eine längere Trainingszeit führt in der Regel zu einem genaueren Modell.

      Das Training kann in kürzerer Zeit als angegeben abgeschlossen werden, 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.

      Übliche Trainingszeiten
      Sehr kleine Mengen1 Stunde
      500 Bilder2 Stunden
      1.000 Bilder3 Stunden
      5.000 Bilder6 Stunden
      10.000 Bilder7 Stunden
      50.000 Bilder11 Stunden
      100.000 Bilder13 Stunden
      1.000.000 Bilder18 Stunden

3. Modell bewerten

Wenn das Training abgeschlossen ist, können Sie auf den Tab Bewerten klicken, um die Leistungsmesswerte für das Modell aufzurufen.

Ein wichtiger Zweck dieser Seite ist es, den Konfidenzgrenzwert zu ermitteln, der für Ihr Modell am besten geeignet ist. Der Konfidenzschwellenwert ist das minimale Vertrauen, das das Modell haben muss, um einem Bild ein Label zuzuweisen. Wenn Sie den Schieberegler für den Konfidenzwert bewegen, können Sie sehen, wie sich unterschiedliche Schwellenwerte auf die Leistung des Modells auswirken. Die Modellleistung wird anhand von zwei Messwerten gemessen: Precision und Recall.

Im Kontext der Bildklassifizierung ist Precision das Verhältnis der Anzahl der Bilder, die korrekt gelabelt wurden, zur Anzahl der Bilder, die das Modell mit dem ausgewählten Schwellenwert gelabelt hat. Wenn ein Modell eine hohe Precision hat, weist es seltener fälschlicherweise Labels zu (weniger falsch positive Ergebnisse).

Die Trefferquote ist das Verhältnis zwischen der Anzahl der Bilder, die korrekt gelabelt wurden, und der Anzahl der Bilder, die Inhalte enthielten, die das Modell hätte labeln können. Wenn ein Modell einen hohen Recall hat, weist es seltener kein Label zu (weniger falsch negative Ergebnisse).

Ob Sie die Genauigkeit oder die Trefferquote optimieren, hängt von Ihrem Anwendungsfall ab. Weitere Informationen finden Sie im Leitfaden für Einsteiger zu AutoML Vision und im Leitfaden zu inklusivem ML – AutoML.

Wenn Sie einen Konfidenzschwellenwert finden, mit dem Sie zufrieden sind, notieren Sie ihn. Sie verwenden ihn, um das Modell in Ihrer App zu konfigurieren. Sie können dieses Tool jederzeit verwenden, um einen geeigneten Schwellenwert zu ermitteln.

4. Modell veröffentlichen oder herunterladen

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.

Modell bereitstellen

Auf dem Tab Test und Nutzung Ihres Datasets können Sie Ihr Modell für die Onlinevorhersage bereitstellen. Dabei wird Ihr Modell in der Cloud ausgeführt. Diese Option wird in der Cloud AutoML-Dokumentation beschrieben. Die Dokumente auf dieser Website befassen sich mit den verbleibenden zwei Optionen.

Modell veröffentlichen

Wenn Sie das Modell in Firebase veröffentlichen, können Sie es aktualisieren, ohne eine neue App-Version zu veröffentlichen. Außerdem können Sie mit Remote Config und A/B Testing verschiedene Modelle dynamisch für verschiedene Nutzergruppen bereitstellen.

Wenn Sie das Modell nur über Firebase hosten und nicht in Ihre App einbinden, können Sie die ursprüngliche Downloadgröße Ihrer App verringern. Wenn das Modell jedoch nicht in Ihre App eingebunden ist, sind alle modellbezogenen Funktionen erst verfügbar, wenn Ihre App das Modell zum ersten Mal herunterlädt.

Sie haben zwei Möglichkeiten, Ihr Modell zu veröffentlichen:

  • Laden Sie das TF Lite-Modell auf der Seite Test und Nutzung Ihres Datasets in der Google Cloud-Konsole herunter und laden Sie es dann in der Firebase-Konsole auf der Seite Benutzerdefiniertes Modell hoch. Das ist in der Regel die einfachste Möglichkeit, ein einzelnes Modell zu veröffentlichen.
  • Veröffentlichen Sie das Modell direkt aus Ihrem Google Cloud-Projekt in Firebase. Verwenden Sie dazu das Admin SDK. Mit dieser Methode können Sie mehrere Modelle im Batch veröffentlichen oder automatisierte Veröffentlichungs-Pipelines erstellen.

So veröffentlichen Sie das Modell mit der Admin SDK Model Management API:

  1. SDK installieren und initialisieren

  2. Veröffentlichen Sie das Modell.

    Sie müssen den Ressourcen-Identifier des Modells angeben. Das ist ein String, der 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. Das kann Ihr Firebase-Projekt oder ein anderes Google Cloud-Projekt sein. Sie finden diesen Wert auf der Seite „Einstellungen“ der Firebase-Konsole oder des Google Cloud-Konsolen-Dashboards.
    MODEL_ID Die ID des Modells, die Sie über die 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);
    

Modell herunterladen und mit Ihrer App bündeln

Wenn Sie Ihr Modell mit Ihrer App bündeln, können Sie dafür sorgen, dass die ML-Funktionen Ihrer App auch dann funktionieren, wenn das in Firebase gehostete Modell nicht verfügbar ist.

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

Klicken Sie zum Herunterladen Ihres Modells auf der Seite Test und Nutzung Ihres Datasets auf TF Lite.

Nächste Schritte

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